1、c语言复习题答案练习一一、选择题12345678910CDACDCBCCC1112131415ABDCB二、填空题(注:答案中的代表空格)1编译6主函数(或main函数)2.exe7/* */3编译8算法4顺序结构9main函数5函数10流程图三、编程/思考题1C语言的主要特点有:(1)C语言具有结构化的高级编程语言应有的所有高级指令,使程序员不需要知道硬件细节。同时,C也具有一些低级指令,允许程序员能够直接快速地访问硬件。(2)C语言是结构式语言。(3)C语言是一种高效的语言。(4)C语言简洁紧凑,使用方便灵活。(5)C语言运算符丰富。(6)C语言是一种可移植性语言。2编辑C语言程序源代码,
2、编译源文件,连接程序,执行程序。3算法具有以下特点:(1)有穷性;(2)确定性;(3)有零个或多个输入;(4)有一个或多个输出;(5)有效性。4算法流程图如下:5#includevoid main() printf(*n); printf(This is a simple C program!n);printf(*n);练习二一、选择题12345678910BCBADADBDA11121314151617181920CDBDACDADB2122232425CBBAB二、填空题1float,double6doube a=5.6,b=5.6;2普通常量和符号常量7int x=327683字母、数字
3、、下划线8a4回车换行,回车不换行99,905float、double 、char10BeijingChina三、思考题1解:C语言中,要求对所有用到的变量“先定义,后使用”,这样做的好处是:能够保证程序中变量名使用得正确;在编译时就能为变量分配相应的存储单元;便于在编译过程中检查对该变量进行的运算是否合法。2解:字符常量是一个字符,在程序中是用单撇号括起来的;字符串常量由0个或若干个字符组合而成,在程序中是用双撇号括起来的,在存储时,系统自动在字符串最后加上一个字符串结束符0。3.解:在内存中,字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII码对应一个整数值,
4、大写字母与其对应小写字母的ASCII码对应整数值相差32。因此,要将一个大写字母转换为小写字母,只需将该变量的值加上32即可。4.解:常量a与”a”在内存中所占用的字节数不相同,因为a是字符常量,在内存中占用一个字节存储,而”a”是字符串常量,在内存中存储时,系统自动在其后加上一个字符串结束符0,在内存中占用2个字节存储。5. 若有定义int a;float f,则表达式c+a+f的结果为double型。因为表达式中f为float型,在计算之前必须先转换为double型,根据数据类型的自动转换规则,表达式的结果为double型。6.解:整数在内存中以补码形式存储,负数的补码为反码+1,所以,当
5、x=-12时,其在内存中的存储形式为:1111 1111 1111 0100。7.解:输出结果为-32768,因为一个short型数据在内存中占用2个字节存储,所能表示的数值范围为-3276832767,当x=32768时,超出了其能表示的范围,发生了溢出,数值32768的二进制编码的16位正好对应数值-32768。8.解:若有x为int型变量,则执行x=3.14后,变量x的值为3,因为x为int型变量,不能存储实型数据,当把一个实型数据赋给x时,发生了数据类型转换,系统自动把实型数据的小数部分舍去。9.解:两个程序的运行结果相同。因为字符型数据以ASCII码存储,ASCII码是一串二进制编码
6、,每个字符的ASCII码对应一个整数值。因此,在一定范围内,整型数据和字符型数据是可以通用的。字符a和b对应的ASCII编码值分别为97,98。10.解:(注:答案中的代表空格)运行结果为:aAbBcCabcABB练习三一、选择题12345678910CDABCCDBDB11121314151617181920CCCDBCDDDA21222324252627282930CCCBADADAA31323334353637383940BBADBCCDCD二、填空题(注:答案中的代表空格)111112212135.513x=0&x=-1&x=043.514-165115-60601626701710,
7、68&,|,!1839019A100204三、编程题1(1) 2.5, (2) 4.5;2如果一个表达式的值为“真”,则以1表示,如果值为“假”,则以0表示;当判断一个量的逻辑值时,系统将0判断为“假”,将非0判断为“真”。3(1) 0; (2) 1;(3)1;(4)0;(5)14(1) 30; (2) 10;(3)45;(4)0;(5)0;(6)-420;(7)0;5a=4,b=6,表达式的值为6;611,9,11,1072,0 3,-1859#includevoid main( )int x;printf(请输入x的值:);scanf(%d,&x);x%2?printf(奇数n):prin
8、tf(偶数n);10#include stdio.hvoid main()char ch;printf(请输入一个大写字母:);scanf(“%c”,&ch);ch=ch+32;printf(%cn,ch);练习四一、选择题12345678910ABADBDDAAB11121314151617181920CABDBACDBD21222324252627282930DBABADBBAD二、填空题(注:答案中的代表空格)1;(分号)9202输出数据左对齐1012 343可以使同一输出语句中的输出宽度得以改变11*3.140000,3.14*4x=1 y=2 *sum*=3122,48,20.0,2
9、0.05261133.66scanf(%d%f%f%c%c,&a,&b,&c1,&c2);14a=66,b=E7a=%dnb=%dn15AB810,11三、编程题1#includemain( )int a;a=0x123;printf(“%dn”,A.;2#includemain( )int h,m,t=450; h=t/24; m=t%24;printf(450分钟换算成小时和分钟表示:%d小时,%d分钟n,h,m);3#includemain( ) float pi,r,h,c1,cs,cvz; printf(请输入圆的半径r和圆柱的高h:); scanf(%f,%f,&r,&h); pi
10、=3.14159; c1=2*pi*r; cs=pi*r*r; cvz=pi*r*r*h; printf(圆的周长为: %6.2fn,c1); printf(圆的面积为: %6.2fn,cs); printf(圆柱的体积为:%6.2fn,cvz);4#includemain( ) char ch; printf(请输入一个字母:); scanf(%c,&ch); printf(字母%c对应的ASCII码为%dn,ch,ch);5#includemain( ) int x,y; printf(请输入两个整数:); scanf(%d%d,&x,&y); printf(两数的商是%5.2f,两数的余
11、数是%dn,(double)x/y,x%y);6#includemain( )float f,c;printf(请输入华氏温度:);scanf(%f,&f);c=5.0/9.0*(f-32);printf(摄氏温度为:%fn,C.;7#includemain( )char ch;printf(请输入一个大写字母:);scanf(%c,&ch);ch=ch+32;printf(小写字母为:%cn,ch);8#includemain( )int num1,num2,num3;float aver;printf(请输入三个整数:);scanf(%d,%d,%d,&num1,&num2,&num3);
12、aver=(num1+num2+num3)/3.0;printf(三个整数分别为:%d,%d,%dn,num1,num2,num3);printf(平均值=%7.2fn,aver);9#includemain( )int x,y,t;printf(请输入两个整数:);scanf(%d,%d,&x,&y);printf(交换前:x=%d,y=%dn,x,y);t=x;x=y;y=t;printf(交换后:x=%d,y=%dn,x,y);XX文库 - 让每个人平等地提升自我XX文库 - 让每个人平等地提升自我10#include stdio.hmain()char ch1,ch2;printf(请
13、输入两个字符:);ch1=getchar();ch2=getchar();printf(用putchar函数输出结果为:);putchar(ch1);putchar(ch2);putchar(n);printf(用printf函数输出结果为:);printf(%c,%cn,ch1,ch2);练习五一、选择题12345678910DCBBDACBDB11121314151617181920DCDCABBBAC21222324252627282930DBADDDABBA31323334353637383940CBBBDCAADC二、填空题1your $ 3.0 yuan/xiaoshi11x=10
14、02当a0,b=112x=5The value of x is unknown.33635.413F4xy14输入两个数x,y,比较x+y和x*y哪个大。5x=2152,0,06x1&xc&b+ca&a+cb1755181180ab90,119mark/1010x:y20606960Error!三、编程题1#includemain( )int x; printf(请输入一个整数:);scanf(%d,&x); if(x%2= =0) printf(%d是偶数!n,x); else printf(%d是奇数!n,x);2. #includemain( ) int a,b,x,y; scanf(%
15、d,%d,&a,&b); x=a*a+b*b; if(x100) y=x/100; printf(%d,y); else printf(%d,x);3. #includemain( ) int x; float y; scanf(%d,&x); if(x0&x=10) y=x; else y=-0.5*x+20; printf(%f,y);4. #includemain()int y=0,m=0,d=0,yt=0,mt=0,dt=0,age=0;printf(请输入生日日期:);scanf(%d%d%d,&y,&m,&d);printf(请输入今天日期:);scanf(%d%d%d,&yt,&
16、mt,&dt); age=yt-y;if(mtm) age-;else if(mt=m&dtd) age-; printf(实际年龄:%d,age);5.#includemain()char ch;printf(请输入一个字符:);scanf(%c,&ch);if(ch=0&ch=A&ch=a&ch=z) printf(%c是小写字母!n,ch); else printf(%c是其他字符!n,ch); 6#includemain( ) int x; scanf(%d,&x); if(x%3=0)&(x%5=0)&(x%7=0) printf(%d能被3,5,7整除!n,x); else if(
17、x%3=0)&(x%5=0) printf(%d能被3,5整除!n,x); else if(x%3=0)&(x%7=0) printf(%d能被3,7整除!n,x); else if(x%5=0)&(x%7=0) printf(%d能被5,7整除!n,x); else if(x%3=0) printf(%d能被3整除!n,x); else if(x%5=0) printf(%d能被5整除!n,x); else if(x%7=0) printf(%d能被7整除!n,x); else printf(%d不能被3,5,7整除!n,x);7#includemain( ) float x; int y;
18、 printf(x=); scanf(%f,&x); switch(x0) case 1:y=-1;break; case 0: switch(x=0) case 1:y=0;break; default:y=1; printf(y=%d,y);8#include#includemain() float data1,data2,data3; char op; printf(表达式:); scanf(%f%c%f,&data1,&op,&data2); switch(op) case +:data3=data1+data2;break; case -:data3=data1-data2;brea
19、k; case *:data3=data1*data2;break; case /:if(data2=0) printf(除数为0!); exit (1); data3=data1/data2;break; printf(%6.2f%c%6.2f=%6.2fn,data1,op,data2,data3);9#includemain( ) int score,temp; char grade; printf(请输入分数:); scanf(%d,&score); temp=score/10; if(score100)|(score0) printf(输入错误!n); else switch(tem
20、p) 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(score=%d,grade=%cn,score,grade); 10#includemain( ) int a,b; char symbol; printf(请输入一个复数:); scanf(%d%c%di,&a,&symbol,&b); printf(复数为:%d%c%din,a,symbol,b); if(symbol=-) symbol=+;
21、 else symbol=-; printf(共轭复数为:%d%c%din,a,symbol,b);练习六一、选择题12345678910CCBDBCCBCB11121314151617181920BAADCCCBBB21222324252627282930DBDACCDDDC31323334353637383940DCBAADCBAA二、填空题(注:答案中的代表空格)1* *11k=14,n=122*x+4*y= =9012sum=343313* * * * #4j%3!=014break52 5 8 11 141586sjhiu16m+=i7s=25417x=1,y=2083618m=19
22、319continue10sum%4= =020a=16 y=60三、编程题1.#includemain()int i,sum=0;for(i=1;i=50;i+) if(i%7= =0)sum+=i;printf(%d,sum);2.#includemain() int r,m,n; scanf(%d%d,&m,&n); if(mn) r=m;m=n;n=r; r=m%n; while(r) m=n;n=r;r= m%n; printf(%dn,n); 3. #includemain()int x,i;scanf(%d,&x);for(i=1;i=x;i+) if(x%i=0) printf(%3d,i);4. #includemain() int i,t=1,s=0; for(i=1;i=101;i+=2) t=t*i;s=s+t;t=-t/i; printf(%dn,s); 5.#includemain()int i,j=0; for(i=1;i=1000;i+) if(i%3=2&i%5=3&i%7=2) printf(%4d,i); j=j+1; if(j%5=0) printf(n); 6. #include#includemain()long i=1; double pi=0; while(i*i=1e-6)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2