期中练习题.docx
- 文档编号:6155663
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:37
- 大小:24.90KB
期中练习题.docx
《期中练习题.docx》由会员分享,可在线阅读,更多相关《期中练习题.docx(37页珍藏版)》请在冰点文库上搜索。
期中练习题
C语言期中练习题
判断题
1.表达式5/2和5%2的结果值是一样的。
(N)
2.表达式3.5+8%5-3.0/6的结果值是6.000000。
(Y)
3.数学公式a≤x≤b的C语言表达式是a<=x<=b。
(N)
4.若有inta=3,b=4;则表达式a=a>b?
a:
-b的结果值是4。
(N)
5.表达式10<2+1的值为0。
(Y)
6.C语言中的函数允许嵌套定义和递归调用。
(N)
10.若有语句chars[20];则s++表示s[1]元素的地址。
(N)
11.若有说明语句:
charc='\72';则变量c中包含3个字符(N)
12.表达式18/4*sqrt(4.0)/8的值的数据类型为double类型。
(Y)
13.putchar函数可以向屏幕输出一个字符或一个字符变量的值。
(Y)
14.设有floatx=10,y=20;则y=(x%2)/10;是一条合法的C语言的赋值语句。
(N)
15.设变量c1为char类型;则判断变量c1的值是否为小写字母的表达式是:
(c1>=a)&&(c1<=z)(N)
16.设a=3,b=2,c=1时,表达式f=a>b>c的值为1。
(N)
17.若a=1,b=2,c=3,d=4,则表达式a>b?
a:
c>d?
c:
d的值为4。
(Y)
18.C语言中的语句以分号“;”结束,分号是语句的一个组成部分。
(Y)
19.C语言的函数中,任何变量都要先定义后使用。
(Y)
20.说明inta[]={1,2,3,4,5};是正确的。
(Y)
21.说明inta[2][];和inta[][];是错误的。
(Y)
22.doswhile(3>2);中s语句必然执行无穷多次。
(N)
24.chars[5]={"ABCDE"};是一条正确的字符串赋值语句。
(N编译不出错,执行时不正确)
25.设有以下两条语句charstr[]="ABC",*p=str;printf("%d",*(p+3));则输出结果是字符'C'(N输出为0)
26.设有三个变量d,e,f;且已定义类型和赋过初值,则表达式d=9+e+f=d+9是正确的。
(N改成d=9+e+(f=d+9)是正确的)
27.'\028'是一个合法的C语言中的字符常数(Y)
28.已知变量ch为字符型变量,则ch='a+b';是一条合法的C语言的赋值语句。
(N)
29.设有x=43,ch='A',y=10;表达式(x>=y&&ch<'B'&&!
y)的值为0(Y)
30.语句if(x>y);一条合法的C语言的语句。
(Y)
31.设inta=3,b=4,c=5;则表达式a||b+c&&b==c的值为1。
(Y)
32.语句while(!
E);达式!
E等价于E!
=0。
(N)
33.设有intn=0;while(n++<=2);printf("%d",n);则输出结果是2。
(N为4)
34.对语句:
for(表达式1;;表达式3)可理解为:
for(表达式1;1;表达式3)(Y)
35.语句while
(1)x++;是死循环。
(Y)
36.continue语句的作用是结束整个循环的执行。
(N)
37.swtich语句中不能出现continue语句。
(Y)
选择题
1.(A)是C语言中的一个合法的常数
(A)0xAA
(B)12E
(C)02A
(D)e-5
3.(C)是C语言中的一个合法表达式
(A)x+y/2+3++
(B)x>y?
x|z
(C)a+b,c
(D)x+3.0e*2
4.表达式(3>1)?
(a=2,a+2):
2的值是(D)
(A)1
(B)2
(C)3
(D)4
5.(B)是C语言中的一个合法的语句
(A)if(x==10)y=5elsey=10
(B)if(x=10)y=10;
(C)ifx==10y=5elsey=10
(D)ifx=10y=10;
6.表达式(1.0+10)/10的结果是(D)
(A)1
(B)1.0
(C)0
(D)1.1
7.对于程序段
i=0;
do{sum+=i++;}while(i<2);
则do-while循环体执行的次数为(B)
(A)1
(B)2
(C)3
(D)4
8.以下能正确的定义变量a,b和c并为其赋初值-10的语句是(C)
(A)inta=b=c=-10;
(B)inta,b,c=-10;
(C)inta=-10,b=-10,c=-10;
(D)a=b=c=-10;
9.设x,y两变量均为float型,则以下不合法的赋值语句是(B)
(A)++x;
(B)y=(x%2)/10;
(C)x*=y+8;
(D)x=y=0;
10.设有inta=1,b=2,c=3,d=4,m=2,n=2;则执行(m=a>b)&&(n=c>d)后n的值为(B)(A)1(B)2(C)3(D)4
11.C语言规定,在一个源程序中,main函数的位置(C)
(A)必须在最开始
(B)必须在系统调用的库函数的后面
(C)可以任意
(D)必须在最后
12.以下不正确的叙述是(D)
(A)在C中,逗号运算符的优先级最低
(B)在C中,APH和aph是两个不同的变量
(C)若a和b类型相同,在计算了表达式a=b后b中的值将放入a中,而b中的值不变(D)当输入数据时,对于整型变量只能输入整型数,对于实型变量只能输入实型数值
13.以下关系运算符优先顺序描述中正确的是(C)
(A)关系运算符<算术运算符<赋值运算符<逻辑与运算符
(B)逻辑与运算符<关系运算符<算术运算符<赋值运算符
(C)赋值运算符<逻辑与运算符<关系运算符<算术运算符
(D)算术运算符<关系运算符<赋值运算符<逻辑与运算符
14.以下描述中正确的是(C)
(A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句;
(B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号;
(C)在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作;(D)do-while循环中,根据情况可省略while.
15.下面有关for循环的正确描述是(D)
(A)for循环只能用于循环次数已确定的情况
(B)for循环是先执行循环体,后判断表达式
(C)在for循环中,不能用break语句跳出循环体
(D)for循环的循环体语句中,可包含多个语句
16.下面正确的描述是(D)
(A)两个字符串所包含的字符个数相同时,才能比较字符串
(B)字符个数多的字符串比字符个数少的字符串大
(C)字符串"STOP_"与"STOP"相等(_表示空格)
(D)字符串"That"小于字符串"The"
17.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是(C)
inta1,a2;
charc1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
(A)1020AB<回车>
(B)10空格A空格20空格B<回车>
(C)10A20B<回车>
(D)10A20空格B<回车>
18.以下不能对二维数组a进行正确初始化的语句是(C)
(A)inta[2][3]={0};
(B)inta[][3]={{1,2},{0}};
(C)inta[2][3]={{1,2},{3,4},{5,6}};
(D)inta[][3]={1,2,3,4,5,6};
19.设a=2,b=3;执行表达式c=b*=a-1后,变量c的值是(B)
(A)5
(B)3
(C)2
(D)4
20.若有说明intx=0,y=2;则语句if(x=0)y++;执行后y的值为(B)
(A)1
(B)2
(C)3
(D)4
21.表达式i=1,i++,i+2,i++的值为(B)
(A)1
(B)2
(C)3
(D)4
23.若有说明intj=5,a[3];则有错误的为(C)
(A)j;
(B)++a[1];
(C)(++a)[1];
(D)j++;
24.若有inti;表达式i=1,i++||i++,i+1,i+1的值为(B)
(A)2
(B)3
(C)4
(D)5
25.15/2*2的值为(B)
(A)15
(B)14
(C)15.0
(D)14.0
27.若有inti=10;执行完i&&(i=0)&&(++i);后i的值为(B)
(A)10
(B)0
(C)1
(D)11
28.(float)(5/2)>2.4的值为(A)
(A)0
(B)1
(C)true
(D)false
30.若有说明inta=0,b=5;则执行完语句if(a=0)++b;后b的值为(C)
(A)3
(B)4
(C)5
(D)6
31.若a为int类型且a=125,执行printf("%d,%o,%x\n",a,a+1,a+2);语句后的输出结果是(B)
(A)125,175,7D
(B)125,176,7F
(C)125,176,7D
(D)125,175,2F
32.若a为int类型,执行printf("%d\n",sizeof(a));语句后的输出结果是(B)
(A)1
(B)2
(C)4
(D)8
33.表达式(a=b=4,a+1,b+1,a+b)的值为(D)
(A)4
(B)10
(C)5
(D)8
34.C语言源程序的基本单位是(D)。
(A)语句
(B)源程序文件
(C)main()函数
(D)函数
35.C语言中字符型(char)数据在内存中是以(B)形式存储的。
(A)原码
(B)ASCII码
(C)反码
(D)补码
36.设有语句inta=3;,则执行了语句a+=a-=a*a后,变量a的值是:
(D)(A)3
(B)0
(C)9
(D)-12
37.在C程序中,若要用数组保存字符串,则该数组要定义成(B)型。
(A)long
(B)char
(C)int
(D)float
38.为求出s=10!
的值,则变量s的类型应当为(C)型。
(因为10!
=3628800)
(A)int
(B)unsigned
(C)long
(D)以上三种类型均可
39.以下的for循环for(x=0,y=0;(y!
=123)&&(x<4);x++);共循环了(B)次(A)是无很循环
(B)执行4次
(C)循环次数不定
(D)执行3次
40.语句printf("%d,%d",5/10,5%10);的输出结果为(D)。
(A)0.5,0.5
(B)0.5,5
(C)0,0.5
(D)0,5
41.已知c1变量是字符型变量,下面不正确的赋值语句是(A)
(A)c1='x+y+z';
(B)c1='\0';
(C)c1='x'+'y';
(D)c1='\\';
42.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!
y)的值是(C)
(A)0
(B)语法错
(C)1
(D)"假"
43.判断char型变量c1是否为小写字母的正确表达式为(D)
(A)'a'<=c1<='z'
(B)(c1>=a)&&(c1<=z)
(C)('a'>=c1)||('z'<=c1)
(D)(c1>='a')&&(c1<='z')
44.下列运算符优先级最高的是(C)
(A)?
:
(B)&&
(C)+
(D)!
=
45.以下不正确的if语句形式是(C)
(A)if(x>y&&x!
=y);
(B)if(x==y)x+=y;
(C)if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
(D)if(x 46.while(! E);中的表达式! E等价于(A) (A)E==0 (B)E! =1 (C)E! =0 (D)E==1 47.若有说明: inta[10];则对a数组元素的正确引用是(D) (A)a[10] (B)a[3,5] (C)a(5) (D)a[10-10] 48.以下能对一维数组a进行正确初始化的语句是(C) (A)inta[10]=(0,0,0,0,0); (B)inta[10]={}; (C)inta[]={0}; (D)inta[10]={"a"}; 49.若有说明inta[3][4]={0};则下面正确的叙述是(D) (A)只有元素a[0][0]可得到初值0 (B)此说明语句不正确 (C)数组a中各元素都可得到初值,但其值不一定为0 (D)数组a中每个元素均可得到初值0 50.有字符数组a[80]和b[80],则正确的输出语句是(D) (A)puts(a,b); (B)printf("%s,%s",a[],b[]); (C)putchar(a,b); (D)puts(a),puts(b); 51.以下不正确的说法是(B) (A)实参可以是常量,变量或表达式 (B)形参可以是常量,变量或表达式 (C)实参可以为任意类型 (D)形参应与对应的实参类型一致 52.一个C语言程序是由(B) (A)一个主程序和若干个子程序组成 (B)函数组成 (C)若干过程组成 (D)若干子程序组成. 53.以下正确的叙述是(D) (A)输入项可以为一个实型常量,如scanf("%f",3.5); (B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d"); (C)当输入一个实型数时,格式控制部分应规定小数点后位数,如scanf("%4.2f",&f);(D)当从键盘输入数据时,必须指明变量的地址,如scanf("%f",&f); 54.以下描述中正确的是(C) (A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 (B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号; (C)在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作(D)do-while循环中,根据情况可省略while 55.若有说明: inta[][4]={1,2,3,4,5,6,7,8};则下面正确的说法是(C) (A)该数组是一维数组 (B)此说明语句不正确 (C)数组的行是2 (D)数组a中每个元素都可得到初值0 56.以下正确的说法是(A) (A)实参和与其对应的形参各占用独立的存储单元 (B)实参和与其对应的形参共占用一个的存储单元 (C)只有当实参和与其对应的形参同名时才共占用同一个存储单元 (D)形参是虚拟的,不占用存储单元 57.若i为整形变量,则以下循环次数是(B) for(i=2;i==0;)printf("%d",i--); (A)无限次 (B)0次 (C)1次 (D)2次 58.若二维数组a有m列,则在a[i][j]前的元素个数为(B) (A)j*m+i (B)i*m+j (C)i*m+j-1 (D)i*m+j+1 选择程序的执行结果 1.以下程序的执行结果为(B) main() {intx=100,a=20,b=10; intv1=5,v2=0; if(a if(b! =15) if(! v1)x=1; else if(v2)x=10; x=-1; printf("%d",x); } (A)100 (B)-1 (C)1 (D)10 3.以下程序的执行结果为(D) #defineN4 main() {inta[N]={0,3,2,1}; inti,k,s,t; s=N-1; do{ k=0; for(i=0;i if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t; k=i;} s=k;}while(s>0); printf("%d\n",a[3]); } (A)0 (B)1 (C)2 (D)3 5.以下程序的执行结果为(C) main() {intx=1,y=1,a=1,b=1; switch(x) {case1: switch(y) {case1: a++;break; case2: b++;break; } case2: a++;b++;break; case3: a++;b++;break; default: a++;b++; } printf("%d,%d",a,b); } (A)2,1 (B)2,2 (C)3,2 (D)3,3 6.以下程序的执行结果为(D) main() {intx,y; scanf("%d,%d",&x,&y); if(x>y) x=y; y=x; else x++; y++; printf("%d,%d",x,y); } (A)若输入3和4,则输出4和5 (B)若输入4和3,则输出3和4 (C)若输入4和3,则输出3和3 (D)有语法错误,不能通过编译 7.若输入3.6,2.4,则输出结果是(B) #include"math.h" main() {floatx,y,z; scanf("%f,%f",&x,&y); z=x/y; while (1) {if(fabs(z)>1.0) {x=y;y=z;z=x/y;} else break; } printf("%f",y); } (A)1.500000 (B)1.600000 (C)2.000000 (D)2.400000 10.以下程序的执行结果为(A) #include"stdio.h" main() {inti; for(i=1;i<=5;i++) {if(i%2) putchar('<'); else continue; putchar('>'); } putchar('#'); } (A)<><><># (B)><><><# (C)<><># (D)><><# 11.以下程序的执行结果为(A) main() {inta=1,b=3,c=5,d=4,x; if(a if(c else if(a if(b elsex=3; elsex=6; x=7; printf("%d\n",x); } (A)7 (B)3 (C)2 (D)1 12.以下程序的执行结果为(B) main() {inta=100,x=10,y=20,ok1=5,ok2=0; if(x if(y! =10) if(! ok1)a=1; elseif(ok2)a=0; a=-1; printf("%d",a); } (A)1 (B)-1 (C)2 (D)6 13.以下程序的执行结果为(D) main() {inta=2,b=7,c=5; switch(a<0) {case0: switch(c==5) {case0: printf("*");break; case1: printf("#");break; default: printf("#");break; } case1: switch(b>0) {case1: printf("@");break; case2: printf("! ");break; } } } (A)* (B)# (C)@ (D)#@ 14.以下程序的执行结果为(C) main() {intnum=0; while(num<=2) {num++; printf("%d",num);} } (A)1 (B)12 (C)123 (D)1234 15.以下程序的执行结果为(C) #include"stdio.h" main() {intc,x; while((c=getchar())! ='\n') {x=c-'2'; switch(x) {case0: putchar(c+4); case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; }} printf("\n"); } 输入: abcdef<回车> (A)abcdef (B)xyzop (C)cdefgh (D)opqrst 16.以下程序的执行结果为(C) main() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=18)break; if(b%3==1){b=b+3;continue;} b=b-5; } printf("%d\n",a); } (A)-4 (B)6 (C)7 (D)8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期中 练习题