C语言练习题.docx
- 文档编号:11485777
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:81
- 大小:54.85KB
C语言练习题.docx
《C语言练习题.docx》由会员分享,可在线阅读,更多相关《C语言练习题.docx(81页珍藏版)》请在冰点文库上搜索。
C语言练习题
单选题:
(每题2分,共80分)
1、下列不合法的十六进制数是() (2分)
A.oxff
B.0Xcde
C.Oxll
D.Ox23
参考答案:
A
2、将三个数排序需要比较______次。
(2分)
A.2
B.3
C.4
D.不确定
参考答案:
B
3、以下程序的输出结果是
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
} (2分)
A.17,021,0x11
B.17,17,17
C.17,0x11,021
D.17,21,11
参考答案:
D
4、在C语言中,合法的字符常量是______.
(2分)
A.'\084'
B.'\x43'
C.'ab'
D.″\0″
参考答案:
B
5、在C语言中,int、char和short三种类型数据在内存中所占用的字节数
(2分)
A.由用用户自己定义
B.均为2个字节
C.是任意的
D.由所用机器的机器字长决定
参考答案:
D
6、若有定义:
inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
(2分)
A.1.4
B.1
C.2.0
D.2
参考答案:
B
7、设有说明语句:
chara='\72';则变量a
(2分)
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法
参考答案:
A
8、若有以下说明和语名:
inta=5,m;
m=a++;
此处表达式m的值是____
(2分)
A.7
B.6
C.5
D.4
参考答案:
C
9、以下程序的输出结果是______
main()
{
intx=10,y=10;
printf("%d%d\n",x--,--y);
}
(2分)
A.1010
B.99
C.910
D.109
参考答案:
D
10、下列选项中,不正确的赋值语句是_____ (2分)
A.++t;
B.n1=(n2=(n3=0));
C.k=1=j;
D.a=b+c=1;
参考答案:
C
11、以下程序段的输出结果是
inta=1234;
printf("%2d\n",a);
(2分)
A.12
B.34
C.1234
D.提示出错、无结果
参考答案:
C
12、为表示关系x≥y≥z,应使用C语言表达式_________。
(2分)
A.(x>=y)&&(y>=z)
B.(x>=y)AND(y>=z)
C.(x>=y>=z)
D.(x>=y)&(y>=z)
参考答案:
A
13、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值是
(2分)
A.1
B.2
C.3
D.4
参考答案:
B
14、判断char型变量cl是否为小写字母的正确表达式是
(2分)
A.'a'<=cl<='z'
B.(cl>=a)&&(cl<=z)
C.('a'>=cl)||('z'<=cl)
D.(cl>='a')&&(cl<='z')
参考答案:
D
15、能正确表示逻辑关系:
"a≥=10或a≤0"的C语言表达式是
(2分)
A.a>=10ora<=0
B.a>=0||a<=10
C.a>=10&&a<=0
D.a<=0||a>=10
参考答案:
D
16、执行下面语句后的输出为()
inti=-1;
if(i<=0)printf("****\n");
elseprintf("%%%%\n");
(2分)
A.****
B.%%%%
C.%%%%C
D.有语法错,不能执行
参考答案:
A
17、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为________。
(2分)
A.a<>0
B.!
a
C.a=0
D.a!
=0
参考答案:
D
18、若K为整型,以下while循环执行()次
K=0;
while(K=0)K=K-1;
(2分)
A.执行10次
B.无限循环
C.一次也不执行
D.执行一次
参考答案:
C
19、以下程序的输出结果是()
voidmain()
{inty=5;whlie(y--);
printf("y=%d\n",y);} (2分)
A.y=0
B.y=1
C.y=-1
D.无限循环
参考答案:
C
20、C语言中while和do...while循环的主要区别() (2分)
A.do...while的循环体至少执行一次
B.while的循环条件比do...while的循环条件严格
C.do...while循环允许从外部转到循环体内
D.do...while的循环体不能是复合语句
参考答案:
A
21、如果输入为:
ABCdef执行下面一段程序后,则输出为:
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<'z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
} (2分)
A.ABCdef
B.abcDEF
C.abc
D.DEF
参考答案:
B
22、以下选项中正确的定义语句是()
(2分)
A.doublea;b;
B.doublea=b=0;
C.doublea=7,b=0;
D.double,a,b;
参考答案:
C
23、若有说明inta[3][4];则对a数组元素的正确引用是
(2分)
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
D.a
(2)
(1)
参考答案:
C
24、若有说明inta[3][4];则a数组元素的非法引用是
(2分)
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
参考答案:
D
25、以下不能对二维数组a进行正确初始化的语句是
(2分)
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};
参考答案:
C
26、设有数组定义:
chararray[]=”China”;,则数组array所占的空间为()。
(2分)
A.4个字节
B.5个字节
C.6个字节
D.7个字节
参考答案:
C
27、以下程序运行后,输出结果是
#definePT5.5
#difineS(x)PT*x*x
main()
{inta=1,b=2;
print("%4.lf/n",S(a+b));
} (2分)
A.49.5
B.9.5
C.22.0
D.45.0
参考答案:
B
28、下面程序的输出结果是
main()
{inta[]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf("%d\n",*p+9);
} (2分)
A.0
B.1
C.10
D.9
参考答案:
C
29、在C语言中,下面那种数据类型不属于构造类型()
(2分)
A.枚举类型
B.数组类型
C.结构体类型
D.共用体类型
参考答案:
A
30、C语言程序是由()组成 (2分)
A.一个主程序和若干子程序
B.函数
C.若干过程
D.若干子程序
参考答案:
B
31、putchar函数可以向终端输出一个() (2分)
A.整型变量表达式值
B.实型变量值
C.字符串
D.字符或字符型变量值
参考答案:
D
32、请读程序:
#include
FUNC(intA,intB)
{intC;
C=A+B;
returnC;
}
main()
{intX=6,Y=7,Z=8,R;
R=FUNC(X+Y,Z--);
printf("%d\n",R);
}
上面程序的输出结果是
(2分)
A.11
B.20
C.21
D.31
参考答案:
C
33、C语言函数的隐含存储类别是______.
(2分)
A.extern
B.static
C.register
D.auto
参考答案:
D
34、以下不正确的说法是()
(2分)
A.在不同的函数中可以使用相同名字的变量
B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效
参考答案:
D
35、有以下程序
viodfun(inta,intb,intc)
{a=456;b=567;c=678;}
main()
{intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出结果是
(2分)
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
参考答案:
B
36、以下叙述中正确的是 (2分)
A.A)C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中
参考答案:
C
37、下列可用于C语言用户标识符的一组是 (2分)
A.void,define,WORD
B.a3_3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
参考答案:
B
38、以下叙述中错误的是 (2分)
A.用户所定义的标识符允许使用关键字
B.用户所定义的标识符应尽量做到"见名识意"
C.用户所定义的标识符中,大、小写字母代表不同标识
D.用户所定义的标识符必须以字母或下划线开头
参考答案:
A
40、有如下程序段
int*p,a=10,b=1
p=&a;a=*p+b;
执行该程序段后,a的值为
(2分)
A.12
B.11
C.10
D.编译出错
参考答案:
B
程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序求出100到500之间同时满足除3余2和除5余3条件的数的个数。
(10分)
参考答案:
main()
{
inti,num=0;
for(i=100;i<=500;i++)
{
if((i%3==2)&&(i%5==3))
num=num+1;
}
printf("\n%d",num);
}
本题答案:
20
2、编写程序,求在10~1000之间所有能被4除余2,被7除余3,被9除余5的数之和。
(10分)
参考答案:
main()
{longs=0;
intm;
for(m=10;m<=1000;m++)
{
if(m%4==2&&m%7==3&&m%9==5)
s=s+m;
}
printf("%d\n",s);
}_
本题参考答案:
2000
3、编写程序,要求从键盘输入一个字符,转换其大小写并输出。
(10分)
参考答案:
voidmain()
{
charch1,ch2;//ch1:
输入前的字符,ch2:
转换后的字符
printf("pleaseinputachar:
");
scanf("%c",&ch1);
if(ch1>='A'&&ch1<='Z')
ch2=ch1+32;
if(ch1>='a'&&ch2<='z')
ch2=ch1-32;
printf("转换后的字符为:
%c\n",ch2);
}
单选题:
(每题2分,共80分)
1、()是构成c语言程序的基本单位 (2分)
A.函数
B.变量
C.子程序
D.语句
参考答案:
A
3、以下选项中属于C语言的数据类型是
(2分)
A.复数型
B.逻辑型
C.双精度型
D.集合型
参考答案:
C
4、若变量a是int类型,并执行了语句:
a=‘A'+1.6;,则正确的叙述是
(2分)
A.a的值是字符C
B.a的值是浮点型
C.不允许字符型和浮点型相加
D.a的值是字符‘A’的ASCII值加上1
参考答案:
D
5、以下所列的C语言常量中,错误的是
(2分)
A.0xFF
B.1.2e0.5
C.2L
D.'\72'
参考答案:
B
6、若已定义x和y为double型,则表达式:
x=1,y=x+3/2的值是____ (2分)
A.1
B.2
C.2.0
D.2.5
参考答案:
c
7、表达式((a=3*5,a*5),a+5)的值是多少()
(2分)
A.20
B.80
C.不能确定
D.15
参考答案:
A
9、若有说明语句:
inta,b,c;
则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
(2分)
A.scanf("%d%d%d",&a,&b,&c);
B.scanf("%d%d%d",&a,&b,&d);
C.scanf("%d%d%d",a,b,d);
D.scanf("%d%d%d",a,b,*d);
参考答案:
A
10、以下说法中正确的是
(2分)
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句
参考答案:
D
11、设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:
(m=a>b)&&(n=c>d)后,n的值为______________.
(2分)
A.1
B.2
C.3
D.0
参考答案:
B
13、能正确表示a和b同时为正或同时为负的逻辑表达式是
(2分)
A.(a>=0‖b>=0)&&(a<0‖b<0)
B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0)
D.a*b>0
参考答案:
D
15、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。
(2分)
A.其上面距它最近的,并且没有其他else与其配对的if相配对
B.在同一行上的if
C.缩排位置相同的if
D.在其之前未配对的if
参考答案:
A
16、以下程序输出结果是
main()
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
} (2分)
A.7
B.6
C.5
D.4
参考答案:
B
18、以下程序段的输出结果是_____
intx=3;
do
{printf("%3d",x-=2);}
while(!
(--x));
(2分)
A.1
B.30
C.1-2
D.死循环
参考答案:
C
19、执行语句:
for(i=1;i++<4;);后,变量i的值是______.
(2分)
A.3
B.4
C.5
D.不定
参考答案:
C
20、以下程序的输出结果是
main()
{intn=4;
while(n--)printf("%d",--n);
} (2分)
A.20
B.31
C.321
D.210
参考答案:
A
21、设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是________
(2分)
A.while循环执行10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
参考答案:
C
22、若有说明:
inta[10];,则对a数组元素的正确引用是()。
(2分)
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
参考答案:
D
23、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_______(假设a[0][0]位于数组的第一个位置上)
(2分)
A.i*m+j
B.j*m+i
C.i*m+j-1
D.i*m+j+1
参考答案:
D
24、已知inta[][3]={1,2,3,4,5,6,7};,则数组a的第一维的大小是()。
(2分)
A.2
B.3
C.4
D.无确定值
参考答案:
B
26、以下程序的输出结果是
#definef(x)x*x
main()
{inta=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
} (2分)
A.9
B.6
C.36
D.18
参考答案:
C
28、变量的指针,其含义是指该变量的
(2分)
A.值
B.地址
C.名
D.一个标志
参考答案:
B
30、以下不合法的数值常量是()
(2分)
A.011
B.1e1
C.8.0e0.5
D.0xabcd
参考答案:
C
31、以下叙述中错误的是() (2分)
A.用户自定义的函数中可以没有return语句
B.用户自定义函数中若没有return语句,则应当定义函数为void类型
C.C语言程序总是从main()函数开始执行
D.main()函数必须位于程序的开始
参考答案:
D
34、C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____.
(2分)
A.单向的值传递
B.单纯地址传递
C.值传递和地址传递都有可能
D.由实参传给形参,然后由形参传回给实参,即是双向传递
参考答案:
A
35、当调用函数时,实参是一个数组名,则向函数传递的是()。
(2分)
A.数组的长度
B.数组的首地址
C.数组每一个元素的地址
D.数组每个元素中的值
参考答案:
B
36、下列叙述不正确的是() (2分)
A.在c程序中,%是只能用于整数运算的运算符
B.在C程序中,无论是整数还是实数,都能正确无误地表示
C.若a是实型变量,c程序中a=20是正确的,因此实型变量允许被整型常量赋值
D.在C程序中,语句之间必须要用分号“;”分隔
参考答案:
B
38、以下可用作C语言用户标识符的是 (2分)
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
参考答案:
B
39、以下关于运算符优先顺序的描述中正确的是
(2分)
A.关系运算符<算术运算符<赋值运算符<逻辑运算符
B.逻辑运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑运算符
参考答案:
C
40、现有定义inta;doubleb;floatc;chark;,则表达式a/b+c-k值的类型为:
(2分)
A.int
B.double
C.float
D.char
参考答案:
B
程序设计题(以下3题中任选2题作答,每题10分,共20分):
1、编程序求1~120所有整
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题