一、第1题
1、题目
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?分别是多少?
2、代码
# includevoid main() { int i,j,k,a[100]; int n = 0; for(i=1; i<=4; i++) for(j=1; j<=4; j++) for(k=1; k<=4; k++) if(i!=j && i!=k && j!=k) //确保组成数字不重复 { a[n] = i * 100 + j * 10 + k; n++; } printf("能组成%d个无重复数字的三位数n",n); printf("分别是:n"); for(i=0; i 3、运行结果
二、第2题
1、题目
企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元低于 20万元时,低于10万元的部分按10%提成,高于10万元的部分提成7.5%;20万到40万元之间时,高于20万元的部分可提成5%;40万到60万元之间时,高于40万元的部分,可提成3%;60万到100万元之间时,高于100万元的部分,可提成1.5%;高于100万元的部分,可提成1%。从键盘输入当月利润i,求应发放奖金总数?
2、代码
# includevoid main() { double i; double bonus; printf("请输入当月利润(万元): i = "); scanf("%lf",&i); //double的格式为 %lf,float的格式为 %f if(i <= 10) { bonus = i * 0.1; } else if(i > 10 && i <= 20) { bonus = 10 * 0.1 + (i - 10) * 0.075; } else if(i > 20 && i <= 40) { bonus = 10 * 0.1 + (20 - 10) * 0.075 + (i - 20) * 0.05; } else if(i > 40 && i <= 60) { bonus = 10 * 0.1 + (20 - 10) * 0.075 + (40 - 20) * 0.05 + (i - 40) * 0.03; } else if(i > 60 && i <= 100) { bonus = 10 * 0.1 + (20 - 10) * 0.075 + (40 - 20) * 0.05 + (60 - 40) * 0.03 + (i - 60) * 0.015; } else { bonus = 10 * 0.1 + (20 - 10) * 0.075 + (40 - 20) * 0.05 + (60 - 40) * 0.03 + (100 - 60) * 0.015 + (i - 100) * 0.01; } printf("当月利润为i = %lf(万元)n",i); printf("应发奖金总数为%lf万元n",bonus); } 3、运行结果
三、第3题
1、题目
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
2、代码
# includevoid main() { int i,j,k; for(i=0; i<10000; i++) { for(j=0; j<100; j++) { for(k=0; k<100; k++) { if (i + 100 == j * j && i + 168 == k * k) { printf("一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,这个整数是%dn",i); } } } } } 3、运行结果
四、第4题
1、题目
输入某年某月某日,判断这一天是这一年的第几天?
2、代码
# includevoid main() { //指引用户输入日期 int year,mon,day,num; printf("请输入年:"); scanf("%d",&year); printf("请输入月:"); scanf("%d",&mon); printf("请输入日:"); scanf("%d",&day); //计算除去当月有多少天 switch(mon) { case 1:num = 0; break; case 2:num = 31; break; case 3:num = 31 + 28; break; case 4:num = 31 + 28 + 31; break; case 5:num = 31 + 28 + 31 + 30; break; case 6:num = 31 + 28 + 31 + 30 + 31; break; case 7:num = 31 + 28 + 31 + 30 + 31 + 30; break; case 8:num = 31 + 28 + 31 + 30 + 31 + 30 + 31; break; case 9:num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31; break; case 10:num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30; break; case 11:num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31; break; case 12:num = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30; break; default:; } //计算特殊年份,闰年的2月份 num = num + day; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { if (mon > 2) { num++; } } //输出结果 printf ("%d年%d月%d日是这一年的第%d天n",year,mon,day,num); } 3、运行结果
五、第5题
1、题目
输入三个整数x、y、z,请把这三个数由小到大输出。
2、代码
# include//构造由小到大排列函数 int shunxu_pailei(int *a,int *b) { int t; if (*a > *b) { t = *a; *a = *b; *b = t; } else { *a = *a; *b = *b; } return 0; } void main () { int x,y,z; printf("请输入三个整数(用空格相隔,如 1 2 3 ):"); scanf("%d %d %d",&x,&y,&z); //调用函数,实现功能 shunxu_pailei(&x,&y); shunxu_pailei(&x,&z); shunxu_pailei(&y,&z); //输出结果 printf("这三个数由小到大输出为%d % d % dn",x,y,z); } 3、运行结果



