C程序设计期末考试习复习题库删节带答案版版.docx
- 文档编号:7433144
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:20
- 大小:25.04KB
C程序设计期末考试习复习题库删节带答案版版.docx
《C程序设计期末考试习复习题库删节带答案版版.docx》由会员分享,可在线阅读,更多相关《C程序设计期末考试习复习题库删节带答案版版.docx(20页珍藏版)》请在冰豆网上搜索。
C程序设计期末考试习复习题库删节带答案版版
C程序设计期末考试习复习题库(删节带答案版版)
作者:
赵亮
浙江机电职业技术学院
1、C语言中最简单的数据类型包括(B)。
A、整型,实型,逻辑型B、整型,实型,字符型
C、整型,字符型,逻辑型D、整型,实型,逻辑型,字符型
2、C语言中,运算对象必须是整型数的运算符是(A)。
A、%B、/C、%和/D、*
3、为表示关系x<y<z,应使用C语言表达式(A)。
A、(x<y﹞&&(y<z﹞B、(x<y﹞AND(y<z﹞
C、(x<y<z﹞D、(x<y﹞&(y<z﹞
4、C语言程序的基本单位是(C)。
A、程序行B、语句C、函数D、字符
5、C语言的程序一行写不下时,可以(D)。
A、用逗号换行B、用分号换行
C、用回车符换行D、在任意一空格处换行
6、下述标识符中,(C)是合法的用户标识符。
A、A&BB、voidC、_studentD、ab*
7、在C语言中,字符型数据在内存中以(B)形式存放。
A、补码B、ASCII码C、反码D、原码
9、以下关于switch语句和break语句的描述中,只有(B)是正确的。
A、在switch语句中必须使用break语句
B、在switch语句中,可以根据需要使用或不使用break语句
C、break语句只能用于switch语句中
D、break语句是switch语句的一部分
10、C语言规定:
调用一个函数时,实参变量和形参变量之间的数据传递是(B)。
A、地址传递B、值传递
C、由实参传给形参,并由形参传回给实参D、由用户指定传递方式
11、下述C语言转义符中(D)是非法的。
A、'\b'B、'\037'C、'\0xf'D、'\''
12、为了要计算s=10!
(10的阶乘),则以下对s的定义正确的是(D)。
A、intsB、unsignedsC、shortsD、longs
13、判断变量ch中的字符是否为大写字母,最简单的正确表达式是(A)。
A、ch>='A'&&ch<='z'B、A<=ch<=Z
C、'A'<=ch<='z'D、ch>=A&&ch<=z
14、在C语言中,能表示无符号长整型常数的是(D)。
A、OLB、4962710UC、912374uD、2UL
15、能正确表示C语言的字符常量的是(C)。
A、'\0x41'B、''A''C、'\0'D、''\0''
16、C语言中逻辑表达式的值为(A)。
A、0或1B、非零值或零值C、true或falseD、'true'或'false'
17、C语言提供的基本数据类型关键字是(C)。
A、integerB、FLOATC、unsignedD、Double
19、在下列选项中,不正确的表达式是(C)。
A、a>bB、c--,++b,a+=1C、a=c+b>n-m=kD、p++
20、若有以下定义:
inta[]={1,2,3,4,5,6,7};
charcl='b',c2='2';
则数值不为2的表达式是(D)。
A、a[1]B、'd'-clC、a['3'-c2]D、c2-0
25、下述对C语言字符数组的描述中错误的是(C)。
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D、不可以用关系运算符对字符组中的字符串进行比较
27、以下程序的输出结果是(A)。
main()
{inti=010,j=10,k=ox10;
printf(''%d,%d,%d\n'',i,j,k);
}
A、8,10,16B、8,10,10C、10,10,10D、10,10,16
28、以下程序的输出结果是(B)。
#include<stdio.h>
main()
{printf(''%d\n'',NULL);}
A、不确定的值(因变量无定义)B、0C、-1D、1
29、以下程序的输出结果是(B)。
main()
{charc1='6',c2='0';
printf(''%d,%d,%d\n'',c1,c2,c1-c2);
}
A、因输出格式不合法,输出出错信息B、54,48,6
C、6.0,7D、6,0,6
33、TurboC中,对于以下程序(A)。
main()
{intx,y;
y=creat(&x);
printf(''%d\n'',y);
}
creat(inta)
{returna++;}
A、编译时会给出错信息
B、顺利进行编译、连接、执行;不报任何错误
C、顺利通过编译、连接、但不能执行
D、顺利通过编译,但连接出错
34、设有如下定义:
intx=10,y=4,z;
则语句:
printf(''%d\n'',z=(x%y,x/y));
的输出结果是(C)。
A、1B、0C、2D、3
35、下述程序段的输出结果是(D)。
main()
{intx=10,y=10;
printf(''%d,%d\n'',x++,++y);
}
A、10,10B、11,11C、11,10D、10,11
37、若要求在if后一对圆括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为(C)。
A、a<>0B、!
aC、a=0D、a
38、若m,y,z均为int型变量,则执行下面语句后m值是(A)。
m=1;x=2;y=3;z=4;
m=(m<x.﹚?
m:
x;
m=(m<y﹚?
m:
y;
m=(m<z=?
m:
z;
A、1B、2C、3D、4
39、若有定义:
inta=7;floatx=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值是(A)。
A、2.500000B、2.750000C、3.500000D、0.000000
40、如下说法不正确的是(C)。
A、c>a+b等效于c>(a+b)
B、若a,b均为真,则a||b为真
C、表达式'c'&&'d'的值为0
D、逻辑运算符!
比逻辑运算符||的优先级高
42、表达式18/4*sqrt(4.0)/8值的数据类型为(C)。
A、intB、floatC、doubleD、不确定
43、若已定义a为整型变量:
a=-2L;
printf(''%d\n'',a);
则以上语句(B)。
A、赋值不合法B、输出值为-2C、输出为不确定值D、输出值为2
45、若int类型数据占两个字节,则以下语句的输出为(D)。
intk=-1;
printf(''%d,%u\n'',k,k);
A、-1,-1B、-1,32767C、-1,32768D、-1,65535
46、已知字母a的ASCII码十进制值为97,则执行以下语句后的输出为(C)。
chara='a';
a--;
printf(''%d,%c\n'',a+'2'-'0',a+'3'-'0');
A、b,cB、a—运算不合法,故有语法错
C、98,cD、格式描述和输出项不匹配,输出无定值
47、下面语句中(B)是C语言的正确赋值语句。
A、a=1,b=2B、I++;C、a=b=5D、y=int(x);
49、能正确表示:
当x的取值范围在[1,10]或[100,110]内为真,否则为假的表达式是(C)。
A、(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B、(x>=1)||(x<=10)||(x>=100)||(x<=110)
C、(x>=1)&&(x<=10)||(x>=100)&&(x<=110)
D、(x>=1)||(x<=10)&&(x>=100)&&(x<=110)
50、设n为整型变量,则循环语句for(n=10;n>0;n--)的循环次数为(A)。
A、10B、9C、11D、12
52、下列哪个数组定义是正确的(D)。
A、inta[5.5];B、INTa[10];C、inta[n];D、inta[3+2];
55、下列正确的说法是(C)。
A、宏替换是在程序运行时进行的
B、函数调用是在程序编译时进行的
C、宏替换时,如果实参是表达式,应先求表达式的值,再替换
D、函数调用时,如果实参是表达式,应先求表达式的值,再替换
56、对于数学式
/2a,下面正确的C语言表达式是(D)。
A、sqr(x)/2aB、sqr(x)/2*aC、sqrt(x)/(2*a)D、sqrt(x)/2*a
57、若int类型数据占2字节,则以下语句的输出为(D)。
intk=32768;
printf(''%d,%u\n'',k,k);
A、-1,65535B、-1,32767C、-1,-1,D、-32768,32768
61、已定义x为float型变量。
x=213.82631;
Printf(''%-4.2f\n'',x);
则以上程序(A)。
A、输出格式描述符的域宽不够,不能输出B、输出为213.83
C、输出为213.82D、输出为-213.82
62、设已定义整型变量K,则下面的程序输出为(D)。
k=017;s=111;
printf(''%d'',++k);
printf(''%x\n'',s++);
A、156fB、1670C、1571D、166f
63、不能正确表示a*b/c*d的C语言表达式是(C)。
A、a*b/c*dB、a/(c*d)*bC、a*b/c/dD、a*b/(c*d)
64、下列(C)表达式不满足;当x的值为偶数时值为“真”,为奇数时值为“假”。
A、x%2==0B、!
x%2!
=0C、x/2*2-x==0D、!
(x%2)
65、设已定义k为int型变量,则下面while循环执行(C)次。
k=10;
while(k=0)k=-1;
A、执行10次B、无限循环C、一次也不执行D、执行一次
67、用高级语言编写的程序称之为(A)。
A、源程序B、目标程序C、汇编程序D、命令程序
69、有以下程序的输出结果为(B)。
main()
{chara=0x95,b,c;
b=(a&0xf)<<4;
c=(a&0xf0)>>4;
a=b|c;
printf(''%x\n'',a);
}
A、24B、59C、34D、56
70、下述程序段的输出结果是(A)。
inta=3;b=4;
intc=a^b>>3;
printf(''%d'',c)
A、3B、4C、5D、6
75、下述程序段的运行结果是(B)。
#include
main()
{intm=7,n=4;
floata=38.4,b=0.4,x;
x=m/2+n*a/b+1/2;
printf(''%f\n'',x);
}
A、22B、387.000000C、27D、26
76、下面程序的运行结果是(C)。
main()
{intcl=2,c2=0;
while(!
c2--)
printf(''%d%d'',cl--,c2);
}
A、陷入死循环B、不输出任何内容
C、输出2-1D、输出20
79、阅读下面的程序:
main()
{charch;
scanf(''%c'',&ch);
if(ch>='a'&&ch<='z')
ch=ch-32;
printf(''%c'',ch);
}
若输入字符为:
e,则程序运行结果为(A)。
A、EB、AC、eD、z
80、下面程序的运行结果是(B)。
main()
{staticinta[3][3]={{3,2,1},(4,5,6),{-2,9,1}};
inti,j,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(i==j)
sum=sum+a[iJ[j]];
}
printf(''sum=%d'',sum);
}
A、sum=10B、sum=9C、9D、10
84、下述程序的运行结果是(A)。
#include
voidfun(intx)
{
putchar('0'+(x%10));
fun(x/10);
}
main()
{
printf(''\n'');
fun(1234);
}
A、4321B、321C、21D、1
86、设已定义i和k为int类型变量,则以下for循环语句(B)。
for(i=0,k=-1;;i++,k++)
printf(''****\n'');
A、判断循环结束的条件不合法B、是无限循环
C、循环一次也不执行D、循环只执行一次
87、下列程序段选择项中,使i的运行结果为4的程序段是(D)。
A、inti=0,j=0;B、inti=1,j=70;
(i=3,(j++)+i);j=i=((i=3)*2);
C、inti=0,j=1;D、inti=1,j=1;
(j==1)?
(i=1):
(i=3);i+=j+=2;
90、下列程序中有三个是完全相同的功能,只有(B)所完成的功能与其他程序不同。
A、s=0;B、s=0;
i=0;i=1;
while(i<=100)while(i++<100)
s+=i++;s+=i;
C、s=0;D、s=0;
i=0;i=0;
while(i<=100)while(++i<=100)
s+=++i;s+=i;
92、执行下面的程序后,a的值为(D)。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
b+3;
continue;
}
b-=5;
}
A、7B、8C、D、10
95、下述程序段的输出结果是(C)。
intx=3;
do
{printf(''%d'',x-=2);
}while(!
(--x));
A、1B、30C、1-2D、死循环
96、定义如下变量:
intn=10;
则下列循环的输出结果是(A)。
while(n>7)
{n--;
printf(''%d'',n);
}
A、1098B、987C、10987D、9876
100、两次运行下面的程序,如果键盘上分别输入6和4,则输出结果是(A)。
main()
{intx;
scanf(''%d'',&x);
int(x++>5)
printf(''%d\n'',x--);
}
A、7和5B、6和3C、7和4D、6和4
102、运行下述程序段后,i值为4的是(B)。
A、inti=1,j=0;B、inti=1,j=1;
i=j=((i=3)++);i+=i+=2;
C、inti==0,j=0;D、inti=0,j=1;
(i=2,i+(j=2));(j==1)?
i+=3:
i=2;
104、以下程序的输出结果是(D)。
main()
{inta=-1,b=4,k;
k=(++a,0)&&!
(b--<=0);
printf(''%d,%d,%d\n'',k,a,b);
}
A、1,0,4B、1,0,3C、0,0,3D、0,0,4
105、以下程序的输出结果是(A)。
main()
{intx=3,y=0,z=0;
if(x=y+z)
printf(''****'');
else
printf(''####'');
}
A、####B、****C、1D、4
112、阅读程序:
#include
main()
{intm,n,w;
scanf(''%d,%d'',&m,&n);
while(n)
{w=m%n;
m=n;
n=w;
}
printf(''%d'',m);
}
如果输入10,6,则输出结果是(D)。
A、60B、120C、2D、10
127、对C语言的文件存取方式的论述中,正确的是文件(C)。
A、只能顺序存取
B、只能随机存取(也称直接存取)
C、可以是顺序存取,也可以是随机存取
D、只能从文件的开头存取
填空练习题
1、有以下定义:
intx;floaty;执行scanf("%3d%f",&x,&y);时,如果输入的数据为:
12345678
2、有定义语句:
intx,y,z;,执行x=(y=4,z=8,z=16)后,x的值为16。
3、计算表达式b=25/3%3后,b的值为2。
4、设有定义语句intx=1,y=0;,则表达式x-->(y+x)?
10:
12>y++?
'A':
'Z'的值是:
65。
5、请写出以下语句的输出结果9。
printf("%d",strlen("\t\"065\xffab\n"));
7、C语言规定:
标识符只能由字母、数字、下划线三种字符组成。
8、有定义语句:
intx=5,y=1;表达式x&y==y?
x|y:
x^y的值为5。
9、下述程序段的循环次数是0次,输出结果是y=1,x=0。
intx=0,y=0;
do
{y++;
x*=x;
}while(x>0&&y>5)
printf("y=%d,x=%d",y,x);
10、若m,y,z,均为int型变量,则执行下面语句后m值是1。
m=1;x=2;y=3;z=4;
m=(m m: x; m=(m m: y; m=(m m: z; 11、下述程序段的运行结果是5。 intx,y; x=17; y=26; printf("%d",y/=(x%=6)); 12、下列循环语句执行的循环次数是: 无数次。 for(a=1,b=1;a<4&&b! =4;a++)//循环体内b的值不变。 13、下面程序的输出是。 #include main() {printf("%d\n",strlen("\nabcc\\\",\\",\041\0xf\t\n"));} 14、下述程序段的输出结果是3。 inta=3;b=4; intc=a^b>>3; printf("%d",c); 17、下述程序段的输出结果是1245056。 #include voidfun(int*x) { printf("%d",++x); } main() {inty=20; fun(&y); } 20、下述程序段的运行结果是15。 #include main() {inta[3][3]={1,2,3,4,5,6,7,8,9}; ints=0,i; for(i=0;i<3;i++) s+=(*(a+i))[i]; printf("%d",s); } 21、下述程序的输出结果是18。 #include main() {intx=8,y=9; intk; k=(x++)+(++y); printf("%d",k); } 29、下面程序的执行结果为: 2.000000。 main() {floatx,y; x=1/2; y=2; printf("%f\n",x+y); } 35、求下列算式1+1/2+1/3+……+1/100的值,请填空。 main() {inti; floatsum=0; for(i=1;i<101;i++) sum+=1/i; printf("%f\n",sum); } 36、将输入的百分制的分数转换为相应的等级并输出,100~90分则为A;89~80分则为B;79~70分则为C;69~60分则为D;小于60分为E,请填空。 main() {intscore,i; scanf("%d",&scorer); i=score/10; switch(i) {case10: case9: printf("A");bresk; case8: printf("B");break; case7: printf("C");break; case6: printf("D");break; default: printf("E"); } } 42、以下程序段的输出结果是1-2。 main() {intx=3; do {printf("%3d",x-=2); }while(! (--x)); } 43、以下程序的输出结果是004。 main() {inta=-1,b=4,k; k=(++a<0)&&! (b--<=0); printf("%d%d%d\n",k,a,b); } 46、阅读程序,请写出结果: main() {intx,y; scanf("%d",&x) y=-1; if(x! =0) if(x>0)y=1; elsey=0; printf("y=%d\n",y); } 若运行该程序,输入值为: 5 y=1。 若输入数据为: computer y=1。 48、阅读程序,请写出结果: main() {intm,i,k; scanf("%d",&m); for(i=2;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 期末考试 复习 题库 删节 答案