1、C语言备考键入文档副标题7# 229 室2012/5/2913.1 上机课作业:1.编程要求输入一个五位数,输出它的各个数位上数字之和。参考程序:#include int main()int n,sum;printf(“请输入一个五位数:“);scanf(“%d“,sum=n/10000+n/1000%10+n/100%10+n/10%10+n%10;printf(“n 此五位数 %d 的各个数位上的数字之和是: %dnn“,n,sum);return 0;2.编程定义两个变量 X、Y 且给它们初值,之后交换两个变量的值,并将 X、Y 输出。参考程序:#include “stdio.h“int
2、 main()int x,y,z;printf(“请输入两个变量:“);scanf(“%d,%d“,printf(“原数为:x=%d, y=%dn“,x,y);z=x;x=y;y=z;printf(“交换后:x=%d, y=%dn“,x,y);return 0;3.编程将“China”译成密码。密码规律是:用原来字母后面的第三个字母代替原来的字母。参考程序:#include “stdio.h“int main()char c1,c2,c3,c4,c5;c1=c;c2=h;c3=i;c4=n;c5=a;printf(“n 原码为:%c %c %c %c %c“,c1,c2,c3,c4,c5);p
3、rintf(“n 加密后:%c %c %c %c %cn“,c1+3,c2+3,c3+3,c4+3,c5+3);return 0;字符串解法:#include “stdio.h“int main()int i;char c=“China“;printf(“原码为:“);for(i=0;iint main()int n;printf(“请输入学生的成绩:“);scanf(“%d“,if(n=90)printf(“该学生的成绩等级是:优n“);else if(n=80)printf(“该学生的成绩等级是:良n“);else if(n=70)printf(“该学生的成绩等级是:中n“);else i
4、f(n=60)printf(“该学生的成绩等级是:及格n“);elseprintf(“该学生的成绩等级是:不及格n“);return 0;优化后:#include int main()int n;printf(“请输入学生的成绩:“);scanf(“%d“,if(n100)printf(“errorn“);elseif(n=90)printf(“该学生的成绩等级是:优n“);else if(n=80)printf(“该学生的成绩等级是:良n“);else if(n=70)printf(“该学生的成绩等级是:中n“);else if(n=60)printf(“该学生的成绩等级是:及格n“);el
5、seprintf(“该学生的成绩等级是:不及格n“);return 0;(2 )用 switch 语句编程:#include int main()int n;printf(“请输入学生的成绩:“);scanf(“%d“,switch(n/10)case 10:case 9:printf(“该学生的成绩等级是:优n“);break;case 8:printf(“该学生的成绩等级是:良n“);break;case 7:printf(“该学生的成绩等级是:中n“);break;case 6:printf(“该学生的成绩等级是:及格n“);break;case 5:case 4:case 3:case
6、 2:case 1:4case 0:printf(“该学生的成绩等级是:不及格n“);break;default:printf(“输入成绩错误!“);return 0;优化后:#include int main()int n;printf(“请输入学生的成绩:“);scanf(“%d“,if(n100)printf(“errorn“);elseswitch(n/10)case 10:case 9:printf(“该学生的成绩等级是:优n“);break;case 8:printf(“该学生的成绩等级是:良n“);break;case 7:printf(“该学生的成绩等级是:中n“);break
7、;case 6:printf(“该学生的成绩等级是:及格n“);break;case 5:case 4:case 3:case 2:case 1:case 0:printf(“该学生的成绩等级是:不及格n“);break;default:printf(“输入成绩错误!“);return 0;2.输入一个整数,判断此数是否同时能被 3 和 7 整除。参考程序:#includeint main()int n;printf(“请输入数字:“);scanf(“%d“,if(n%3=0 elseprintf(“%d 不是 3 和 7 的倍数n“,n);return 0;3.输入一个形式如“操作数 运算符
8、 操作数”的四则运算表达式,输出运算结果。(例如: 输入 3 * 2,输出 6)参考程序:#includevoid main()float x,y,s;char c;scanf(“%f %c %f “,switch(c)case+:s=x+y;break;case-:s=x-y;break;case*:s=x*y;break;case/:if(y!=0)s=x/y;break;default:printf(“操作错误!“);printf(“=%.3fn“,s);4.输入一个英文字母,判断该字母是大写字母还是小写字母。参考程序:#includevoid main()char c;printf(“
9、请输入一个英文字母:“);scanf(“%c“,if(c=Aprintf(“请输入年份月份:“);scanf(“%d,%d“,if(y%4=0elsel=0;if(l=1)switch(m)case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:case 6:case 9:case 11:d=30;break;case 2:d=29;break; elseswitch(m)case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:ca
10、se 6:case 9:case 11:d=30;break;case 2:d=28;break;printf(“%d 年的%d 月有%d 天n“,y,m,d);return 0;6.从键盘输入三个整数,输出其中的最大值。参考程序:#includeint main()int a,b,c,max;printf(“请输入三个数:“);scanf(“%d,%d,%d“,max=a;if(bmax)max=b;if(cmax)max=c;printf(“此三个数中最大的数为%dn“,max);return 0;3 月 22 日上机课及课后作业:(循环结构应用练习)1.用 while 语句编程,输出能被
11、 3、5 整除的 3 位数。要求输出时每 10 个数字一行。参考:void main()int i,m=0;for(i=100;iq) min=q;printf(“此%d 个数中最小值是: %d “,n,min); 3、编写程序,计算并输出下面数列前 20项的和。要求结果保留 4 位小数。 数列为:2/1,3/2,5/3,8/5,13/8,21/13参考:int i,n1=1,n2=2,t;float m,s=0.0;for(i=1;im/2)printf(“%d is a prime number!n“,m);elseprintf(“%d is not a prime number!n“,m
12、);5.4 编写程序,求 (即求1! +2!+3!+4!+ +20!)参考程序:#include“stdio.h“void main()int i,j;double sum=0,item;for(i=1;i0)x1=(x2+1)*2;x2=x1;day-;printf(“the total is %dn“,x1);. 编写程序,使用双循环输出下列三角形(不能使用两维数组)。m n o p q r sm n o p qm n om.编写程序,用循环输出下面的图形。(不能使用两维数组)。*编写程序,计算并输出下列数列前 20 项的和。(1-2-3),(4-5-6),(7-8-9), (注意,n=0
13、,1,2,3)第六章函数练习(2)1、(1 )自定义函数 int num(int x) 判断一个整数是否是奇数。并把该函数放在头文件pd.h 中以便在主函数中调用该函数.(2 )在主函数中调用上述函数并把所有两位数中的奇数(每行 10 个数字)和奇数个数分别输出到屏幕上显示出来。参考程序:、主函数:#include “stdio.h“#include “pd.h“void main() int i,k=0;for (i=100;i=0h1.h 头文件:int max(int x,int y) int k,m;for (k=1;k=0) ,并把该函数放在头文件 qg.h 中以便于在主函数中调用该
14、函数。(2 )在主函数中输入一元二次方程的系数,调用上述函数,并输出结果。参考程序:主函数:#include “stdio.h“#include “math.h“#include “qg.h“void main() int a,b,c;scanf(“%d,%d,%d“,if(d(a,b,c)=0)printf(“方程%dx2+%dx+%d=0 的根是:“,a,b,c);printf(“%.2lfn“,-1.0*b/(2.0*a);elseprintf(“方程%dx2+%dx+%d=0 的根是:“,a,b,c);printf(“%.2lf“,(-1.0*b+d(a,b,c)/(2.0*a);printf(“和%.2lfn“,(-1.0*b-d(a,b,c)/(2.0*a);头文件 qg.h:double d(int a,int b,int c) double k;k=sqrt(b*b-4*a*c);return k;