C语言基础程序设计题

1.个人所得税计算

应纳税款的计算公式如下:收入<=1000元部分税率为0%,2000元>=收入>1000元的部分税率为5%,3000元>=收入>2000元的部分税率为10%,6000元>=收入>3000元的部分税率为15%,收入>6000元的部分税率为20%。输入某人的收入,计算出应纳税额及实际得到的报酬。(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)

#include<stdio.h>
int main() 
{int grade;float income,tax,money;printf("please input your income:");scanf("%f",&income);if(income<0)printf("the input is error!");else	{grade=(int)income/1000;switch(grade){case 0:tax=0;break;case 1:tax=(income-1000)*0.05;break;case 2:tax=50+(income-2000)*0.1;break;case 3:tax=150+(income-3000)*0.15;break;default:tax=600+(income-6000)*0.2;}money=income-tax;printf("tax=%0.2f,money=%0.2f",tax,money);}	} 

改进:

#include<stdio.h>void TaxC(int income) {
{if(income<0)printf("the input is error!");else	{grade=(int)income/1000;switch(grade){case 0:tax=0;break;case 1:tax=(income-1000)*0.05;break;case 2:tax=50+(income-2000)*0.1;break;case 3:tax=150+(income-3000)*0.15;break;default:tax=600+(income-6000)*0.2;}money=income-tax;printf("tax=%0.2f,money=%0.2f",tax,money);}	
}int main() 
{int grade;float income,tax,money;printf("please input your income:");scanf("%f",&income);while (income>=0) {TaxC(income);scanf("%f",&income);}return 0;} 

2. 从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

#include<stdio.h>
int main()
{int data;char grade;printf("please enter the score:");scanf("%d",&data);switch(data/10){case 10:case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;default:grade='E';}printf("the grade is %c",grade);
}

3. 编程设计一个简单的计算器程序。从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果。

#include<stdio.h>
int main()
{int data1,data2;  //定义两个操作符 char op;          //定义运算符printf("Please enter the expression:");scanf("%d%c%d",&data1,&op,&data2);switch(op){case '+':printf("%d+%d=%d\n",data1,data2,data1+data2);break;case '-':printf("%d-%d=%d\n",data1,data2,data1-data2);break;case '*':printf("%d*%d=%d\n",data1,data2,data1*data2);break;case '/':if(0==data2)printf("Division by zero!\n");elseprintf("%d/%d=%d\n",data1,data2,data1/data2);break;default:printf("Unknown operator!\n");}
}

4. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。

#include<stdio.h>
int main()
{int a[10],i,iNum1=0,iNum2=0,iNum3=0;for(i=0;i<10;i++){printf("please input number:");scanf("%d",&a[i]);if(a[i]>0)iNum1++;else if(a[i]<0)iNum2++;else iNum3++;printf("正数:%d个,负数:%d个,零:%d\n个",iNum1,iNum2,iNum3);}
} 

5. 从键盘上输入10个数,求其平均值。

#include <stdio.h>
int main()
{int a[10], sum = 0;float ave = 0;printf("please input number:\n");for (int i = 0; i < 10; i++){scanf("%d", &a[i]);sum += a[i];}ave = (float)sum / 10; // ave=sum/10.0;printf("ave=%f\n", ave);
}

6. 编程序实现求1-1000之间的所有奇数的和并输出。

#include<stdio.h>
int main()
{int i;long sum=0;for(i=1;i<=1000;i=i+2){sum=sum+i;}printf("the sum of odd is:%ld",sum);
}

7. 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13……编程求这个序列的前20项之和。

#include<stdio.h>
int main()
{int i,t,n=20;float num1=2,num2=1,sum=0;for(i=1;i<=n;i++){sum=sum+num1/num2;t=num1;num1=num1+num2;num2=t;}printf("sum=%0.2f",sum);
}

8. 用循环的方法构造一个5行5列的二维数组,使主对角线上的变量为1,其它为0,并将数组中所有项按行按列显示出来。

#include<stdio.h>
int main()
{int a[5][5],i,j,s=0;for(i=0;i<5;i++){for(j=0;j<5;j++){if(i==j)a[i][j]=1;elsea[i][j]=0;}}for(i=0;i<5;i++){for(j=0;j<5;j++){if(j==0)printf("\n");printf("%d",a[i][j]);}}
}

9. 输入n的值,n代表行数,输出如图所示的图形。\

     **  *  **  *  *  *  **  *  *  *  *  *  *    (此图为n=4时的输出结果)

每行输出2*i+1个

#include<stdio.h>
int main()
{int i,j,k;for(i=1;i<=4;i++){ //控制行数 for(k=1;k<=(2*i-1);k++){ //控制每行输出的*号个数 printf("*");}printf("\n");//输出一行后换行 }
} 

 10. 从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。(提示:用数组存放成绩数据)

#include<stdio.h>
#define M 30
int main()
{float score[M],max,min,aver;int i;printf("please input score:\n");for(i=0;i<M;i++){scanf("%f",&score[i]);}aver=0.0;max=score[0];min=score[0];for(i=0;i<M;i++){if(max<score[i])max=score[i];if(min>score[i])min=score[i];aver+=score[i];}printf("max=%0.2f,min=%0.2f,aver=%0.2f",max,min,aver/M);
}

11. 从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序

#include<stdio.h>
#define ARR_SIZE 40
int main()
{float score[ARR_SIZE],maxScore,minScore,sum;int n,i;long maxNum,minNum,num[ARR_SIZE];printf("please enter total number:");scanf("%d",&n);printf("Please enter the number and score:\n");for(i=0;i<n;i++){scanf("%ld%f",&num[i],&score[i]);}maxScore=score[0];minScore=score[0];maxNum=num[0];minNum=num[0];sum=score[0];for(i=1;i<n;i++){if(score[i]>maxScore){maxScore=score[i];maxNum=num[i];}else if(score[i]<minScore){minScore=score[i];minNum=num[i];}sum=sum+score[i];}printf("maxScore=%0.2f,maxNum=%ld\n",maxScore,maxNum);printf("minScore=%0.2f,minNum=%ld\n",minScore,minNum);printf("sum=%0.2f,average=%0.2f\n",sum,sum/n);
}

12. 从键盘上输入一个23的矩阵,将其转置后形成32的矩阵输出。

#include<stdio.h>
int main()
{int a[2][3],b[3][2],i,j;printf("enter array a:\n");for(i=0;i<2;i++){for(j=0;j<3;j++){scanf("%d",&a[i][j]);}}for(i=0;i<3;i++){for(j=0;j<2;j++){b[i][j]=a[j][i];}}printf("Now,array a:\n");for(i=0;i<3;i++){for(j=0;j<2;j++){printf("%5d",b[i][j]);}printf("\n");}
}

13. 编写两个函数分别求两个整数的最小公倍数和最大公约数,用主函数调用这两个函数并输出结果。两个整数由键盘输入。

#include<stdio.h>
int main()
{
int mingy(int a,int b);
int maxgb(int a,int b);
int m,n,gys,gbs;
printf("please input two numbers:");
scanf("%d %d",&m,&n);
gys=mingy(m,n);
gbs=maxgb(m,n);
printf("the result is:%d %d",gys,gbs);
return 0;  
}int mingy(int x, int y)
{  
int z;for (z=x%y; z!=0; x=y,y=z,z=x%y);return y;
}int maxgb(int x, int y)
{
int t;
t=(x*y)/mingy(x,y);return t;
}

14. 从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。

#include<stdio.h>
int main()
{int a[4][3],i,j;printf("please enter data:\n");for(i=0;i<4;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);int min=a[0][0];int m=0,n=0;for(i=0;i<4;i++)for(j=0;j<3;j++)if(a[i][j]<min){min=a[i][j];m=i;n=j;}printf("最小的数是=%d\n 行=%d 列=%d",min,m,n);
}

15. 编程实现如下功能:从键盘输入一行字符,统计其中英文字符,数字字符和其他字符的个数。

#include<stdio.h>
#include<string.h>
#define ARR_SIZE 80
int main()
{char str[ARR_SIZE];int len,i,letter=0,digit=0,space=0,others=0;printf("please input a string:");gets(str);len=strlen(str);for(i=0;i<len;i++){if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')letter++;else if (str[i]>='0'&&str[i]<='9')digit++;elseothers++;}printf("English character:%d\n",letter);printf("digit character:%d\n",digit);printf("other character:%d\n",others);
}

16. 编程实现如下功能:1)在主函数中,实现从键盘输入10名学生某门课的成绩,保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输出。2)编写排序函数,使用数组名做函数参数,实现对该成绩的排序。

#include<stdio.h>
#define ARR_SIZE 40
void Sort(float score[],long num[],int n);
int main()
{float score[ARR_SIZE];int n,i;long num[ARR_SIZE];printf("please enter total number:");scanf("%d",&n);printf("please enter the number and score:\n");for(i=0;i<n;i++){scanf("%ld%f",&num[i],&score[i]);}Sort(score,num,n);printf("Sorted results:\n");for(i=0;i<n;i++){printf("%ld\t%4.0f\n",num[i],score[i]);}
}
void Sort(float score[],long num[],int n)
{int i,j;float temp1;long temp2;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(score[j]>score[i]){temp1=score[j];score[j]=score[i];score[i]=temp1;//交换学号temp2=num[j];num[j]=num[i];num[i]=temp2;}}}
}

17. 编程实现如下功能: 实现从键盘输入两个字符串,分别存入两个不同的字符数组中;将两个字符串连接为一个字符串,并打印输出连接后的整个字符。

#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80void MyStrcat(char dstStr[], char srcStr[]);
int main()
{  char  s[ARR_SIZE], t[ARR_SIZE];printf("Please enter source string: ");gets(s);printf("Please enter destination string: ");gets(t);MyStrcat(s,t);printf("The concatenate string is: ");puts(s);
}void MyStrcat(char dstStr[], char srcStr[])
{   int i = 0, j;while(dstStr[i] != '\0'){   i++;}for (j=0; srcStr[j]!='\0'; j++, i++){dstStr[i] = srcStr[j];}dstStr[i] = '\0';
}

18. 猜数游戏。系统随机产生一个整数,通过键盘输入数据猜数,猜对为止,并要求统计猜的次数。注:rand()函数可以产生0~32767间的正整数,程序中需包含stdlib.h。

#include <stdio.h>
#include <stdlib.h>
int main()
{int  magic;                 int  guess;                  int  counter;                    magic = rand() % 100 + 1;   counter = 0;            
do{printf("Please guess a magic number:");scanf("%d", &guess);       counter ++;               if (guess > magic)     printf("Wrong!Too high!\n");else if (guess < magic)  printf("Wrong!Too low!\n");} while (guess != magic);printf("Right!\n");           printf("counter = %d\n", counter);
}

19. 输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能,并将交换后的数据重新输出。

#include<stdio.h>
void Swap(int *x, int *y);
int main()
{ int  a, b;printf("Please enter a,b:");scanf("%d,%d", &a, &b);printf("Before swap: a = %d,b = %d\n", a,b);Swap(&a, &b);printf("After swap: a = %d,b = %d\n", a, b);  
}
void Swap(int *x, int *y)
{	int  temp;temp = *x;*x = *y;*y = temp;   
}

20. 随机输入若干个学生的体重,以输入负数或零结束,分别求最重和最轻的体重,并计算平均体重。

#include<stdio.h>
int main()
{ int n=0;float weight,max=0,min=100,sum=0,ave;printf("please input the weight:");scanf("%f",&weight);
while(weight>0){ sum=weight+sum;n++;if (weight<min)min=weight;else if(weight>max)max=weight;scanf("%f",& weight);}
if(n>0)
{ ave=sum/n;printf("maxweight = %f\n ",max);  printf("minweight = %f\n",min);printf("ave = %f\n",ave);
}
else  printf("NO VALID DATA");
}

21. 输入m,k的值,编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题)

#include <stdio.h>
unsigned long Factorial(unsigned int number);
int main()
{ unsigned int m, k;double p;printf("Please input m, k:");scanf("%u, %u", &m, &k);p = (double)Factorial(k) / Factorial (m-k);printf("p=%0.2f\n", p);
}
unsigned long Factorial(unsigned int number)
{ unsigned long i, result = 1;for (i=2; i<=number; i++)result *= i;return result;
}

22. 编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。

#include <stdio.h>
#include <math.h>
int IsPrimeNumber(int number)
{ int i;if(number <= 1)return 0;for(i=2; i<sqrt(number); i++)    // 2 > sqrt(2){ if ((number % i) == 0)return 0; }return 1;
}
int main()
{ int n;printf("Please input n:");scanf("%d",&n);if(IsPrimeNumber(n))printf("\n%d is a Prime Number",n);else  printf("\n%d is not a Prime Number",n);
}

23. 编写程序计算某年某月某日是该年中的第几天。

输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。

输出格式:
在一行输出日期是该年中的第几天。

输入样例1:
2009/03/02
输出样例1:
61
输入样例2:
2000/03/02
输出样例2:
62
 

#include<iostream>
#include<array>
using namespace std;
int main()
{   int year=0,month=0,day=0,n=0;array<int,13>a={0,31,28,31,30,31,30,31,31,30,31,30,31};cin>>year;cin.get();    // 斜杠用cin.get()吃掉cin>>month;cin.get();cin>>day;cin.get();if((year%4==0&&year%100)||year%400==0)a[2]=29;for(int i=0;i<=month-1;i++)n+=a[i];int sum=n+day;
cout<<sum;return 0;
}

24. 编程输出所有水仙花数 “水仙花数”是指一个三位数,其每位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。   

#include<stdio.h>
#include<stdlib.h>
//主函数
int main(){int i,j,k,n,sumi,sumj,sumk;//定义7个整型数据printf("\n100-1000 包含的“水仙花”数分别有: \n\n"); for(n=100;n<1000;n++){     //循环求数字个位、十位、百位上的数字i=n/100;//求百位       j=n/10%10; //求十位       k=n%10; //求个位//求i、j、k的立方和sumi=i*i*i;//求个位立方和  sumj=j*j*j;//求十位立方和  sumk=k*k*k;//求百位立方和//判断是否为 水仙花数if(n==sumi+sumj+sumk){      			printf("%-5d",n);//输出 水仙花数 } }printf("\n");//换行 	return 0;
}

西交之软件专业编程题扩展(答案在网上找)
1、从尾到头打印链表
2、旋转数组的最小数字
3、一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
4西输区软个整数数咱团实规编个辆数来调器该数纸数字的颜序,停所有的奇数做于数组的前分了所
有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
5、数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组
{1,2,3,2,2,2,5,4,2},由于数字2在数组中出现了5次,超过数细长度的一半,因此输出2。如果不存在则输出0.
6、输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321823。
7、统计一个数字在排序数组中出现的次数。
8、一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
西交软件科创团队直播分享淘宝店铺;软件科创团队820
5.5西交之软件专业编程题扩展
9、输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是8,如果有多对数字的和等于S,输出两个数的乘积最小的。
10、在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数子是重复的,但不知道有几个数字是重复的件也木愈道每补数寄重复几整,瑞找出数组中任寓一方重过的数学用:例,体果输创长度为的数
组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2.
11、给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组
{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动输口,他们的最大值分别为{4,4,6,6,6,5):针对数
组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个:{12,3,4],2,6,2,5,1},{2,134,270,2,5,1},{2,3,[4,2,6],2,5,1},
{2,3,4,[2,6,2],5,1},{2,3,4,2,[6,2,5],1},{2,3,4,2,6,[2,5,1]}.
12、给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>每段绳了的长度记为k[0],k[1]…k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时。我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/229848.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通用闪存存储(UFS)市场研究,预计2029年将达到1,930.99百万美元

UFS产品定义及统计范围 UFS &#xff08;Universal Flash Storage&#xff0c;通用闪存存储&#xff09;&#xff0c;UFS是一种高性能接口&#xff0c;设计用于需要最小化功耗的应用&#xff0c;包括智能手机和平板电脑等移动系统以及汽车应用&#xff0c;其高速串行接口和优化…

RocketMQ源码剖析之createUniqID方法

目录 版本信息&#xff1a; 写在前面&#xff1a; 源码剖析&#xff1a; 总计&#xff1a; 版本信息&#xff1a; RocketMQ-5.1.3 源码地址&#xff1a;https://github.com/apache/rocketmq 写在前面&#xff1a; 首先&#xff0c;笔者先吐槽一下RocketMQ的官方&#xff0…

AMIS【部署 01】amis前端低代码框架可视化编辑器amis-editor本地部署流程

amis-editor本地部署流程 1.amis-editor是什么1.1 amis是什么1.2 amis-editor是什么 2.amis-editor本地部署2.1 准备阶段2.2 源码修改2.3 构建项目2.4 nginx配置2.5 启动nginx 3.总结 官网仅贴出了本地运行这个项目的步骤&#xff1a; # 1.安装依赖 npm i # 2.等编译完成后本地…

springboot基础配置及maven运行

目录 1、spring快速开始&#xff1a; 2、通过idea工具打开导入包 3、maven打包 1、springboot快速开始&#xff1a; 环境依赖&#xff1a;jdk17 Spring | Quickstart spring初始化包下载&#xff1a; 点击generate&#xff0c;下载包 2、通过idea工具打开导入包 我之前写了…

多模态大模型总结2(主要2023年)

LLaVA-V1&#xff08;2023/04&#xff09; 论文&#xff1a;Visual Instruction Tuning 网络结构 如下图 所示为 LLaVA-v1 的模型结构&#xff0c;可以看出其简化了很多&#xff0c;但整体来说还是由三个组件构成&#xff1a; Vision Encoder&#xff1a;和 Flamingo 模型的 V…

基于Pix2Struct的文档信息提取【DocVQA】

文档信息提取涉及使用计算机算法从非结构化或半结构化文档&#xff08;例如报告、电子邮件和网页&#xff09;中提取结构化数据&#xff08;例如员工姓名、地址、职务、电话号码等&#xff09;。 提取的信息可用于各种目的&#xff0c;例如分析和分类。 DocVQA&#xff08;文档…

RHCSA---基本命令使用

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 Linux中终端中的很多操作都是通过命令行实现的&#xff0c;最常用的输入命令的方法有以下两种。 (1).打开自带的终端&#xff0c;类似于Windows中的CMD (2).ssh远程连接&#xff0c;关于…

MYSQL存储

注意&#xff1a; 1.如果没有指定的SESSION/GLOBAL&#xff0c;默认是SESSION&#xff0c;会话变量。 2.mysql服务重新启动之后&#xff0c;所设置的全局参数会失效&#xff0c;要想不失效&#xff0c;可以在/etc/my.cnf中配置。 变量 用户定义变量是用户根据需要自己定义变量…

注解Annotation - Java

注解Annotation 一、介绍二、使用三、三个基本的Annotation四、JDK内置的基本注解类型1、Override2、Deprecated3、SuppressWarnings 五、JDK的元注解1、Retention2、Target3、Documented4、Inherited 一、介绍 注解&#xff08;Annotation&#xff09;也被称为元数据&#xf…

【分布式系统学习】CAP原理详解

CAP原理详解 前言CAP一张图 一、概念1.1 关键词解读1.2 关于CAP&#xff08;拆分解读&#xff09;1.3 CAP原理精髓 二、CAP模拟场景举例理解三、CAP原理证明为什么不能同时满足&#xff08;下面举例说明&#xff09;3.1 必须满足分区容错性P下的处理方式3.2 不是必须满足分区容…

如何通过“闻香”给葡萄酒分类?

有句话叫做“闻香识女人”&#xff0c;葡萄酒也如同美女&#xff0c;千娇百媚风情万种&#xff0c;所以通过“闻香”也可以给葡萄酒进行分类。 那么&#xff0c;云仓酒庄的品牌雷盛红酒分享葡萄酒都有哪些不同的香呢&#xff1f; 云仓酒庄是云仓酒庄的结合&#xff0c;也就是在…

可以免费使用的Axure在线版来了

Axure作为一种功能强大的原型设计工具&#xff0c;一直受到设计师的青睐。然而&#xff0c;其高昂的价格可能成为一个门槛&#xff0c;限制了一些设计师的选择。但不用担心&#xff0c;现在有一个免费的Axure在线工具即时设计&#xff0c;功能更完整&#xff0c;更划算&#xf…