C语言题库1.docx
《C语言题库1.docx》由会员分享,可在线阅读,更多相关《C语言题库1.docx(44页珍藏版)》请在冰豆网上搜索。
![C语言题库1.docx](https://file1.bdocx.com/fileroot1/2022-10/27/f59af7ee-5d82-4bf1-a11a-488ad42e5f3d/f59af7ee-5d82-4bf1-a11a-488ad42e5f3d1.gif)
C语言题库1
单选题:
(每题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:
转换后的字符
p