c语言期末复习.docx
- 文档编号:4468286
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:47
- 大小:46.33KB
c语言期末复习.docx
《c语言期末复习.docx》由会员分享,可在线阅读,更多相关《c语言期末复习.docx(47页珍藏版)》请在冰豆网上搜索。
c语言期末复习
一、选择题
1、一个C语言程序总是从____
A、主过程开始执行 B、主函数开始执行
C、子程序开始执行 D、主程序开始执行
2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为_
A、4 B、16
C、32 D、52
3、下面四个选项中,均是C语言关键字的选项是____
A、autoenuminclude
B、switchtypedefcontinue
C、signedunionscanf
D、ifstructtype
4、若有说明语句:
charch1='\065';charch2="2";charch3='2';则:
ch1中____,ch2中____,ch3中____
A、包含1个字符 B、包含2个字符
C、包含3个字符D、字符个数不确定,说明不正确
5、若有运算符:
>、*=、?
:
、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)____
A、*=→?
:
→%→>→sizeofB、?
:
→*=→>→%→sizeof
C、*=→>→?
:
→sizeof→%D、*=→?
:
→>→%→sizeof
6、若有以下类型说明语句:
chara;intb;floatc;doubled;
则表达式a*b+d-c的结果类型为____
A、float B、char C、int D、double
7、以下运算符中优先级最高的运算符是____
A、&& B、++ C、?
:
D、!
=
8、若有定义:
intk=7;floata=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是___
A、2.500000 B、2.7500000
C、3.500000 D、0.000000
9、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是____
A、y=(y*100+0.5)/100.0
B、x=y*100+0.5,y=x/100.0
C、y=y*100+0.5/100.0
D、y=(y/100+0.5)*100.0
10、设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是____
A、0~255 B、0~65535
C、-32768~+32767 D、-256~+255
11、若有说明:
inta=1,b=2,c=3,d=4;则表达式a
a:
c c: d的值是____ A、4 B、3 C、2 D、1 12、若x为int类型,则逗号表达式(x=4*5,x*5),x+25的结果是___,x的值是___ A、20 B、100 C、表达式不正确 D、45 13、若有以下变量说明和数据的输入方式,则正确的输入语句为('└─┘'代表空格)____ 变量说明: floatx1,x2; 数据的输入方式: 4.52<回车> 3.5<回车> A、scanf("%f,%f",&x1,&x2); B、scanf("%f%f",&x1,&x2); C、scanf("%3.2f└─┘%2.1f",&x1,&x2); D、scanf("%3.2f%2.1f",&x1,&x2); 14、已知a、b、c为int类型变量,若有输入语句: scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是____ A、132<回车> B、a=1b=3c=2<回车> C、1<回车>3<回车>2<回车>D、a=1<回车>b=3<回车>c=2<回车> 15、以下能正确定义整型变量x、y和z并为其赋初值5的语句是____ A、intx=y=z=5; B、intx,y,z=5; C、intx=5,y=5,z=5; D、x=5,y=5,z=5; 16、下面程序段的输出结果是____ inta=023; printf("%d\n",--a); A、23 B、17 C、18 D、24 17、已知ch是字符型变量,则不正确的赋值语句是____ A、ch=5+9; B、ch='\0'; C、ch='7'+'9'; D、ch='a+b'; 18、以下程序段的输出结果是____ inti=1,j=4,k=2; floatx=5.5,y=9.0,z; z=(i+j)/k+sqrt((double)y)*1.2/k+x; printf("%f\n",z); A、9.800000 B、9.300000 C、8.500000 D、8.000000 19、若a为int类型变量,则执行以下程序段后a的值为____ a=5; a*=a/=a++; A、2 B、1 C、40 D、3 20、若x为unsignedint类型变量,则执行以下程序段后x的值是____ x=65535; printf("%d\n",x); A、65535 B、1 C、无定值 D、-1 21、执行语句printf("Theprogram'snameisc: \\tools\book.txt");后的输出是____ A、Theprogram'snameisc: toolsbook.txt B、Theprogram'snameisc: \toolsbook.txt C、Theprogram'snameisc: \\toolsbook.txt D、Theprogram'snameisc: \toolook.txt 22、设a、b、c、d均是int类型变量,为了使以下程序段的输出为: 1234+123+12+1,正确的输入形式应当是____ scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d); printf("%4d+%3d+%2d+%1d",a,b,c,d); A、1234123121<回车>B、1234123412341234<回车> C、1234+1234+1234+1234<回车>D、1234+123+12+1<回车> 23、逻辑运算符两侧运算对象的数据____ A、只能是0或1 B、只能是0或非0正数 C、只能是整型或字符型数据D、可以是任何类型的数据 24、判断char型变量c1是否为大写字母的正确表达式是____ A、'A'<=c1<='Z' B、(c1>='A')&(c1<='Z') C、(c1>='A')&&(c1<='Z')D、('A'<=c1)AND('Z'>=c1) 25、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是____ A、'i'&&'j' B、i<=j C、i||j+k&&j-k D、! ((i k||1) 二、填空题 1、在C语言中,输入操作可以由库函数____完成,输出操作可以由库函数____完成。 2、若有定义: inty=7;floatx=2.5,z=4.7;,则表达式x+(int)(y/3*(int)(x+z)/2)%4的值为____。 3、若采用十进制数的表示形式,则077为___,0111为___,0x29为___,0xab为___。 4、设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的结果类型为____。 5、设有以下变量说明: inta=5,b=10; floatx=3.5,y=10.8; charc1='A',c2='B'; 请根据以下输出格式和结果,完成printf语句中的填空。 a=5,b=10,x+y=14.3 printf("________",_____); x-y=-7.3└─┘a-b=-5 printf("________",_____); c1='A'or65(ASCII)└─┘c2='B'or66(ASCII) printf("________",_____); 6、已有定义intm;floatn,k;charch1,ch2;,为使m=3,n=6.5,k=12.6,ch1='a',ch2='A',对应的scanf语句是___________________,输入数据的方式是___________。 7、在C语言中,&作为双目运算符时表示的是___,而作为单目运算符时表示的是__。 8、设x、y、z均为int型变量,且x=3,y=-4,z=5,请写出下面每个表达式对应的结果。 、(x&&y)==(x||z) ____ 、! (x>y)+(y! =z)||(x+y)&&(y-z)____ 、x++-y+(++z) ____ 9、以下程序的输出结果为____ main() { intx,y,z=246; x=z/100%9; y=(-1)&&(-1); printf("%d,%d\n",x,y); } C语言程序设计第4章练习题 一、选择题 1、以下正确的if语句是____ A、if(n>0)printf("%f",n) printf("%f",-n); B、if(n>0) {n=n+m;printf("%f",n);} elseprintf("%f",-n); C、if(n>0) {n=n+m;printf("%f",n);}; elseprintf("%f",-n); D、if(n>0) {n=n+m;printf("%f",n)}; elseprintf("%f",-n); 2、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定: else子句总是与__ A、缩排位置相同的if配对B、其之前最近且不带else的if配对 C、其之前最近的if配对D、第一个if配对 3、下面程序段所表示的数学函数关系是____ x=-1; if(a! =0) if(a>0)x=1; elsex=0; -1(a<0) 1(a<0) A、x=0(a=0)B、x=-1(a=0) 1(a>0)0(a>0) 0(a<0)-1(a<0) C、x=-1(a=0) D、x=1(a=0) 1(a>0)0(a>0) 4、以下关于switch语句和break语句的描述中正确的是____ A、在switch语句中必须使用break语句 B、break语句只能用于switch语句体中 C、break语句只能用于循环语句中 D、在switch语句中使用break语句或continue语句的作用相同 5、设有程序段____ intx=10; while(x=0) x=x-1; A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行D、循环体语句只执行一次 6、以下关于do-while循环不正确的描述是___ A、d0-while的循环体至少执行一次 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作 D、do-while的循环体可以是复合语句 7、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是____ for(y=100;x! =y;++x,y++) printf("****\n"); A、循环体只执行一次 B、是无限循环 C、循环体一次都不执行 D、for语句中存在语法错误 8、语句for(表达式1;;表达式3)等价于____ A、for(表达式1;0;表达式3) B、for(表达式1;1;表达式3) C、for(表达式1;表达式1;表达式3) D、for(表达式1;表达式3;表达式3) 9、以下程序段的执行结果是____ intx=-3; do {printf("%d\n",x++); }while(! x); A、-3D、-3 B、-2-2 C、陷入死循环-1 10、执行以下程序段后,y的值是____,x的值是____ intx=1,y=10; do {y-=x; x++; }while(y--<0); A、9B、8C、-2D、2 E、4F、3 11、执行以下程序段后a的值是____,b的值是____ inta,b; for(b=1,a=1;b<=50;b++) {if(a>=10)break; if(a%2==1) {a+=5; continue; } a-=3; } A、10B、6C、7D、8E、4 12、下面程序的运行结果是____ main() {intm=0; while(m<=2) {m++; printf("%d\n",m); } } A、1 B、1 2 C、1D、1 22 33 13、若有以下程序段: for(m=1;m<=100;m++) {scanf("%d",&y); if(y<0) continue; printf("%3d",m);} 正确的描述是____ A、当y<0时整个循环结束 B、y>=0时什么也不输出 C、printf函数永远也不执行 D、最多允许输出100个非负整数 14、以下程序段等价于____ for(k=100;k<=200;k++) {if(k%3==0) continue; printf("%4d",k); } A、for(k=100;(k%3)&&k<=200;k++) printf("%4d",k); B、for(k=100;(k%3)||k<=200;k++) printf("%4d",k); C、for(k=100;k<=200;k++) if(k%3! =0)printf("%4d",k); D、for(k=100;k<=200;k++) {if(k%3) printf("%4d",k); else continue; break; } 二、填空题 1、以下程序的功能是: 输入一个小写字母,按字母排列顺序后移5个位置后输出(如把'a'变为'f','w'变成'b')。 请填空。 #include"stdio.h" main() {charc1; c1=getchar(); if(c1>='a'&&c1<='u') ______; elseif(c1>='v'&&c1<='z') ______; putchar(c1); } 2、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。 请填空。 main() {charch1; scanf("%c",ch1); if(________________) ch1=ch1+32; elseif(ch1>='a'&&ch1<='z') ________; printf("%c",ch1); } 3、以下程序的功能是判断输入的年份是否是闰年。 请填空。 main() {intyear,yes; scanf("%d",&year); if(year%400==0) year=1; elseif(__________________) yes=1; else ____; if(yes) printf("%dis",year); else printf("%disnot",year); printf("aleapyear.\n"); } 4、若运行以下程序时,输入下面指定数据,则运行结果为______ #include main() {intch; while((ch=getchar())! ='\n') {switch(ch-'1') {case0: case1: putchar(ch+3); case2: putchar(ch+3);break; case3: putchar(ch+3); default: putchar(ch+1);break; } } printf("\n"); } 输入数据(从第一列开始): 1234<回车> 5、将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。 含有switch语句的程序段: ints,t,m; t=(int)(s/10); switch(t) {case10: m=5;break; case9: m=4;break; case8: m=3;break; case7: m=2;break; case6: m=1;break; default: m=0; } 含有非嵌套if语句的程序段: ints,m; if(______)m=5; if((s<100)&&(s>=90))m=4; if((s<90)&&(s>=80))m=3; if((s<80)&&(s>=70))m=2; if((s<70)&&(s>=60))m=1; if(______)________; 6、用switch语句实现以下数学关系,请填空。 -1(x<0) y=0(x=0) 1(x>0) switch(x<0) {case1: y=-1;____ case0: switch(x==0) {case1: y=0;____ ____y=1; } } 7、设a、b、c均是int类型变量,则执行以下for循环后,c的值为____ for(a=1,b=5;a<=b;a++) c=a+b; 8、以下程序的运行结果为____ main() {intj=5; while(j<=15) if(++j%2! =1) continue; elseprintf("%d",j); printf("\n"); } 9、设ch1为char类型变量,若从键盘上由第一列输入以下数据: right? <回车> 则以下三个程序段的输出结果分别是_____,____,____。 、c=getchar(); while(c! ='? ') {putchar(c);c=getchar();} 、while((c=getchar())! ='? ') putchar(++c); 、while(putchar(getchar())! ='? '); 10、以下do-while语句中循环体的执行次数是____ a=10;b=0; do {b+=2;a-=2+b; }while(a>=0); 11、若用以下形式表示for循环语句: for(表达式1;表达式2;表达式3) 循环体语句 则执行语句for(i=0;i<3;i++)printf("*");时,表达式1执行____次,表达式3执行____次。 12、下面程序的功能是计算1-3+5-7+……-99+101的值,请填空。 main() {inti,t=1,s=0; for(i=1;i<=101;i+=2) {____;s=s+t;____;} printf("%d\n",s); } } 13、下面程序的功能是求1000以内的所有完全数,请填空。 (说明: 一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如: 6=1+2+3,6为完全数。 ) main() {inta,i,m; for(z=1;a<=1000;a++) {for(____;i<=a/2;i++) if(! (a%i))____; if(m==a)printf("%4d",a); } } 14、下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5,请填空。 main() {inti,s,k,count=0; for(i=100;i<=1000;i++) {s=0;k=i; while(____) {s=s+k%10; k=____;} if(s! =5) ____; count++; } printf("%d",count); } C语言程序设计第5章练习题 一、选择题 1、若有说明语句: inta[2][4];,则对a数组元素的正确引用是____ A、a[0][3] B、a[0][4] C、a[2][2] D、a[2][2+1] 2、以下能对二维数组y进行初始化的语句是___ A、staticinty[2][]={{1,0,1},{5,2,3}}; B、staticinty[][3]={{1,2,3},{4,5,6}}; C、staticinty[2][4]={{1,2,3},{4,5},{6}}; D、staticinty[][3]={{1,0,1,0},{},{1,1}}; 3、若有说明语句: inta[][3]={1,2,3,4,5,6,7,8};,则a数组的行数为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习