c语言D2.docx
《c语言D2.docx》由会员分享,可在线阅读,更多相关《c语言D2.docx(16页珍藏版)》请在冰点文库上搜索。
c语言D2
C语言考试试卷
选择题(每题2分,共计100分)
1.下面四个选项中,均是不合法的用户标识符的选项是()(多选)
A.A
P_0
do
B.float
1a0
-A
C.b-a
goto
int
D.-123
temp
INT
2.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第-个字符()
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母,数字和下划线中任-种字符
3.下面不正确的字符串常量是()
A.'abc'
B."12'12"
C."0"
D.""
4.已知各变量的类型说明如下,不符合C语言语法的表达式是()
int k,a,b;
unsigned long w=5;
double x=1.42;
A.x%(-3)
B.w+=-2
C.k=(a=2,b=3,a十b)
D.a十=a-=(b=4)*(a=3)
5.已知各变量的类型说明如下,符合C语言语法的表达式是()
inti=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
A.a十=a-=(b=4)*(a=3)
B.a=a*3=2
C.x%(-3)
D.y=f1oat(i)
6.以下不正确的叙述是()
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
7.以下正确的叙述是()
A.在C程序中,每行中只能写-条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
8.以下符合C语言语法的赋值表达式是()
A.d=9+e+f=d+9
B.d=9+e,f=d+9
C.d=9+e,e++,d+9
D.d=9+e++=d+7
9.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为()
A.D
B.68
C.不确定的值
D.C
10.在C语言中,要求运算数必须是整型的运算符是()
A./
B.++
C.!
=
D.%
11.设有说明:
charw;int x; f1oat y; double z;则表达式w*x+z-y值的数据类型为()
A.float
B.char
C.int
D.double
12.若有以下定义,则能使值为3的表达式是()
int k=7,x=12;
A.x%=(k%=5)
B.x%=(k-k%5)
C.x%=k-k%5
D.(x%=k)-(k%=5)
13.break语句的作用()
A.结束本次循环,进行下一次循环
B.break语句被执行且循环体中其后的其他语句都执行后,循环终止
C.break语句被执行后,循环体中其后的语句都将不被执行,循环直接终止
D.break语句和continue语句作用相同
14.gets函数可以从终端输入一个()
A.整型变量表达式值
B.实型变量值
C.字符串
D.字符或字符型变量值
15.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是()
A.scanf("%d%lx,%le",&x,&y,&z);
B.scanf("%2d*%d%lf"&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
16.已有如下定义和输入语句,若要求a1,a2,c1,c2
值分别为10,20,A和B,当从第一列开始输入数据时,
正确的数据输入方式是()
int a1,a2; char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A.10A20B回车
B.10A20B回车
C.10A20回车
D.10A20B回车
17.已有程序段和输入数据的形式如下,
程序中输入语句的正确形式应当为()
main()
{
int a;floatf;
printf("\nInputnumber:
");
输入语句
printf("\nf=%f,a=%d\n,f,a);
}
Input number:
4.5 2回车
A.scanf("%d,%f",&a,&f);
B.scanf("%f,%d",&f,&a)
C.scanf("%d%f",&a,&f);
D.scanf("%f%d",&f,&a);
18.阅读以下程序,当输入数据的形式为25,13,10
正确的输出结果为()
main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);
}
A.x+y+z=48
B.x+y+z=35
C.x+z=35
D.不确定值
19.有输入语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
为使变量a的值为1,b为3,c为2,
从键盘输入数据的正确形式应当是()
A.132(回车)
B.1,3,2(回车)
C.a=1b=3c=2(回车)
D.a=1,b=3,c=2(回车)
20.以下能正确地定义整型变量a,b
和c并为其赋初值5的语句是()(多选)
A.inta=b=c=5;
B.inta,b,c=5;
C.inta=5,b=5,c=5;
D.a=b=c=5;
21.已知x=43,ch='A',y=0则表达式
(x>=y&&ch<'B'&&!
Y)的值是()
A.0
B.语法错
C.1
D."假"
22.若希望当A的值为奇数时,表达式的值为“真”,
A的值为偶数表达式的值()
为“假”。
则以下不能满足要求的表达式是:
A.A%2==1
B.!
(A%2==0)
C.!
(A%2)
D.A%2
23.设有inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值为()
A.1
B.2
C.3
D.4
24.判断char型变量c1是否为小写字母正确表达式为()
A.'a'<=cl<='z'
B.(cl>=a)&&(cl<=z)
C.('a'>=cl)||('z'<=cl)
D.(c1>='a')&&(cl<='z')
25.以下程序的运行结果是()
#include "stdio.h"
main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d",a ,b);
}
A.6,1
B.2,1
C.6,0D2,0
26.执行以下语句后a的值为()
inta,b,c;
a=b=c=1;
++a||++b&&++c
A.错误
B.0
C.2
D.1
27.执行以下语句后b的值为()
int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
A.6
B.0
C.1
D.4
28.以下不正确的if语句形式是()
A.if(x>y&&x!
=y);
B.if(x==y) x+=y
C.if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
D.if(X29.下列运算符中优先级最低的是()
A.,
B.&&
C.+
D.!
=
30.以下if语句语法正确的是()
A.if(x>0)
printf("%f",x)
else
printf("%f",--x);
B.if(x>0)
{
x=x+y;
printf("%f",x);
}else
printf("f",-x);
C.if(x>0)
{
x=x+y;
prinrf("%f",x);
};
else
printf("%f",-x);
D.if(x>0)
{
x=x+y;
printf("%f",x)
}
else
printf("%f",-x);
31.以下正确声明employee变量的代码有()【选两项】。
已定义结构体
structemployee
{
charid[8];
charname[20];
intage;
};
A.structemployee;
B.structemployeeem;
C.structem;Demployeeem;
32.while循环语句的特点是()
A.先执行后判断
B.不管条件是否成立,循环体至少被执行一次
C.while(表达式)后面不需要写分号,否则循环没有循环体
D.循环体中可以有break语句,但不可以有continue语句
33.执行以下程序段后的输出结果是()
int w=0,x=10;
printf("%d\n",w++&&x++);
A.10
B.1
C.0
D.11
34.设有程序段如下,则下面描述中正确的是()
int k=10;
while (k=0) k=k-1;
A.while循环执行10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
35.有以下程序段,则()
int x=0,s=0;
while (!
x!
=0) s+=++x;
printf("%d",s);
A.运行程序段后输出0
B.运行程序段后输出1
C.程序段中的控制表达式是非法的
D.程序段执行无限次
36.语句while(!
E)中的表达式!
E等价于()
{原因:
while(!
e)表明!
e==true,因此e==false,也就是e==0
但是e==true不等价于e==1,只等价于e!
=0,因为非0数都是真}
A.E==0
B.E!
=1
C.E!
=0
D.E==1
37.下面程序段的运行结果是()
a=1;b=2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A.1,2,0
B.2,1,0
C.1,2,1
D.2,1,1
38.下面程序段的运行结果是()
n=0;
while(n++<=2);
printf("%d",n);
A.2
B.3
C.4
D.有语法错
39.下面程序的运行结果是()
#include
main()
{int num=0;
while(num<=2)
{num++ ;
printf("%d\n",num);}
}
A.1
2
3
4
B.1
2
3
C.1
2
D.1
40.以下程序段()
x=-1;
do
{
x=x*x;
}while(!
x);
A.是死循环
B.循环执行二次
C.循环执行一次
D.有语法错误
41.若有说明:
int a[][4]={0,0};则下面不正确的叙述是()
A.数组a的每个元素都可得到初值0
B.二维数组a的第一维大小为1
C.因为二维数组0中第二维大小的值除以初值个数的商为1,
故数组a行数为1
D.只有元素a[0]「0」和a[0]「1」可得初值0,
其余元素均得不到初值0
42.下面正确的字符常量是()
A."a"
B.'\\''
C.'W'
D.''
43.已知ch是字符型变量,下面正确的赋值语句是()
A.ch='123';
B.ch='\xff';
C.ch='\08';
D.ch="\";
44.在C语言中,下列()是合法的标识符。
【选两项】
A.COUNT
B.P234
C.4x
D.short
45.有数组intnum[5]={10,20,30,40,50};num[3]的值为()
A.30
B.50
C.40
D.20
E.10
46.C语言中,while和do…while循环的主要区别是()
A.while的循环控制条件比do…while的循环控制条件严格
B.do…while的循环体至少无条件执行一次
C.do…while允许从外部转到循环体内
D.do…while的循环体不能是复合语句
47.以下正确的叙述有()。
【选两项】
A.在C程序中,每行中只能写一条语句
B.在C程序中,Abc和abc是2个相同的变量
C.若a和b的类型相同,在计算了赋值表达式a=b后b的值将放入a,而b的值不变
48若a是float型变量,a=10是合法的,
因为float型变量允许存放整型数
下面C代码的输出结果是()
intanswer,result;
answer=100;
result=answer-10;
printf("Theresultis%d",result+5);
A.Theresultis90
B.Theresultis95
C.Theresultis10
D.Theresultis100
49在C语言中,设有数组定义:
chararray[]="China";则数组array所占的空间为()
{
在C语言中,字符串是被作为字符数组来处理的。
一般一个数组元素储存一个字符,
并且规定了在串末以字符‘\0’作为“字符串结束标志”,即:
“china”后自动加了‘\0’,变为“china\0”,所以加起来一共有6个字节。
边外话:
C语言中之所以这样规定,主要是因为人们在使用数组时,
往往不能对已定义的数组长度(所占的内存空间)进行充分利用,
多了结束标志,可以有效地节省其多余的内存空间。
}
A.4个字节
B.5个字节
C.6个字节
D.7个字节
50在C语言中,()是在所有函数外部声明的。
E.全局变量
F.局部变量
G.形参
H.实参