C语言测试
一、选择:
1 设有语句int a=3;则执行了语句 a+=a-=a*a;后,变量a的值是( )。
A 3 B 0 C 9 D-12
2 C 语言中最简单的数据类型包括( )。
A 整型、实型、逻辑型
B 整型、实型、字符型
C 整型、字符型、逻辑型
D 整型、实型、逻辑型、字符型
3 在C语言中,运算对象必须是整型数的运算符是( )。
A % B / C %和/ D **
4 请选出可用作C 语言用户标识符的一组标识符( )。
A void、define、WORD B a3_b3、_123、Car
C For、-abc、IF Case D 2a、DO、if_case
5 C语言程序的基本单位是( )。
A 程序行 B 语句 C 函数 D 字符
6 请选出合法的 C语言赋值语句( )。
A a=b+1=58 B I++; C a=58,b=58 D k=int(a+B).;
7 C语言提供的合法的数据类型关键字是( )。
A Double B short C integer D Char
8 在C 语言中,合法的长整型常数是( )。
A 0L B 4962710 C 0.054838743 D 2.1869e10
9 若有说明和语句:
int a=5; a++;
此处表达式a++的值是( )。
A 7 B 6 C 5 D 4
10 在下列选项中,不正确的赋值语句是( )。
A ++t; B n1=(n2=(n3=0)); C k=I=j; D a=b+c=1;
11 在C语言提供的合法的关键字是( )。
A swtich B cher C Case D default
12 设x.y.z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为( )。
A 4 B 16 C 32 D52
13 设有如下的变量定义:
int I=8,k,a,b;
unsigned long w=5;
double x=1,42,y=5.2;
则以下符合C语言语法的表达式是( )。
A a+=a-=(b=4)*(a=3) B x%(-3); C a=a*3=2 D y=float(i)
14 假定有以下变量定义:
int k=7,x=12;
则能使值为3 的表达式是( )。
A x%=(k%=5) B x%=(k-k%5) C x%=k-k%5 D (x%=k)-(k%=5)
15 以下选项中属于C语言的数据类型是( )。
A 复数型 B 逻辑型 C 双精度型 D 集合型
16 在C语言中,不正确的 int 类型常数是( )。
A 32768 B 0 C 037 D 0Xaf
17 下列语句中符合C语言语法的赋值语句是( )。
A a=7+b+c=a+7; B a=7+b++=a+7;
C a=7+b,b++,a+7 D a=7+b,c=a+7;
18 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是( )。
A a=20000 +20000; B a=4000*10;
C a=30000+10000; D a=4000L*10L;
19 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。
A a:=b+1 Ba=b=c+2 C int18.5% 3 D a=a+7=c+b
20 变量a、I已正确定义,且I已正确赋值,合法的语句是( )。
A a= =1 B ++I ; C a=a++=5; D a=int(i);
21 若有以下程序段,
int c1=1,c2=2,c3; c3=1.0/c2*c1;
则执行后,c3中的值是( )。
A 0 B 0.5 C 1 D 2
22 设有 int x=11;则表达式(x++*1/3)的值是( )。
A 3 B 4 C 11 D 12
23 以下所列的C语言常量中,错误的是( )。
A 0xff B 1.2e0.5 C 2L D ‘\72’
24 下列选项中,合法C 语言关键字是( )
A VAR B cher C integer D default
25 若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为( )。
A 1.4 B 1 C 2.0 D 2
26 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是( )。
A a的值是字符C B a的值是浮点型
C 不允许字符型和浮点型相加
D a的值是字符‘A’的ASCII值加上1。
27 以下选项不属于C语言的类型的是( )。
A signed short int B unsigned long int C unsigned int D long short
28 若有以下定义:
char a;int b; float c;double d;
则表达式a*b+d-c值的类型为( )
A float B int C char D double
29 设所有变量均为int型,则表达式( a=2,b=5,b++,a=b)的值是( )
A 7 B 8 C 6 D 2
30 在C 语言中,要求运算数必须是整型的运算符是( )
A / B ++ C != D %
31 设C 语言中,一个int型数据在内存中占两个字节,则unsigned int型数据的取值范围为( )
A 0~255 B 1~32767 C 0~65535 D 0~2147483647
33 表达式18/4*sqrt(4.0)/8值的数据类型是( )
A int B float C double D 不确定
34 下面不正确字符串常量是( )
A ‘abc’ B “12‘12” C “0” D “”
35下面4个选项中,均是合法浮点数的选项是( )
A +1e+1 5e-9.4 03e2 B -.60 12e-4 -8e5
C 123e 1.2e-.4 +2e-.4 D-e3 .8e-4 5.e-0
36 若有以下定义:
char a;int b; float c;double d;
则表示式a*b+d-c值的类型为( )
A float B int C char D double
37 表示关系x<=y<=z的C语言表达式为( )
A (X<=Y)&&(Y<=Z) B (X<=Y)AND(Y<=Z)
C (X<=Y<Z) D (X<=Y)&(Y<=Z)
38 设a=1,b=2,c=3,d=4,则表达式a<b?a:c <d?a :d的结果为( )
A 4 B 3 C 2 D 1
39 设x为int型变量,则执行以下语句后,x的值为( )。
A 10 B 20 C 40 D 30
40.下列可作为C语言赋值语句的是( )
A.x=3,y=5 B.a=b=6 C.i-- D.y=int(x)
41.设x,y,z均为int型变量,则执行以下语句后,t的值为( )
x=y=z=1;t=++x||++y&&++z;
A.不定值 B.2 C.1 D.0
42.在下列选项中,不正确的赋值语句是( )
A.++t B.n1=(n2+(n3+0)) C.k=I=j D.a=b+c=1
43.能正确表示a≥10或a≤0的关系表达式是( )
A.a>=10ora<=0 B.a>=10|a<=0 C.a>=10| |a<=0 D.a.>=10| |a<=0
44.设有如下的变量定义:
int I=8,k,a,b; unsigned long w=5 double x=1,42,y=5.2
则以下符合C语言语法的表达式是( )
A.a+=a-=(b=4)*(a=3) B.x%(-3) C.a=a8*3=2 D.y=float(i)
45.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是( )
A.x/y*z B.x*(1/(y*z)) C.x/y*1/z D.x/y/z
46.设int a=12,则执行完语句a+=a-=a*a后,a的值是( )
A.552 B。264 C。144 D。-264
47.下列语句中,不是C语言的合法语句的是( )
A.; B.{;;} C.a=15,c=10 D.{int I;I==,printf(“%d\n”,I);}
48.以下程序的输出结果是( )
#include<stdio.h>
main()
{int a=2,c=5;
printf(“a=%%d,b=%%d\d/n”,a,c);}
A.a=%2,b=%5 B.a=2,b=5 C.a=%%d,b=%%d D.a=%d,b=%d
49.以下程序的输出结果是( )
#include<stdio.h>
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d\n”,a,b);}
A.6,1 B.2,1 C.6,0 D.2,0
50以下程序的输出结果是( )
#include<stdio.h>
main()
{int i=1,j=3;
printf(“%d”,i+ +);
{int i=0;i+=j*2;printf(“%d,%d”,i,j);}
printf(“%d,%d\n\”,I,j);}
A.1,6,3,1,3 B.1,6,3,2,3 C.1,6,3,6,3 D.1,7,3,2,3
51 nain()
{int x=10,y=3;
printf(“(d\n”,y=x/y);)
A.0 B.1 C.3 D. 不确定的值
52阅读下面的C程序:
nain()
{int a,b,s;
scanf(“%d%”,&a,&b);
s=a;
if(a,b)s=b;
s=s*s;
printf(“%d\n”,s);}
若执行上面的程序时从键盘上输入3和4,则输出结果是( )
A.14 B.16 C.18 D.20
53下面程序的输出结果是( )
#include<stdio.h>
main()
{int a=3,b=2,c=1;
c-=++b;
b*=a+c;
{int b=5,c=12;
c/=b*2;
a-=c;
printf(“%d,%d,%d,”,a,b,c,);
a+=--c;
}
printf(“%d,%d,%d,”a,b,c);
}
54.下面程序的输出结果是( )
main()
{int k=11;printf(“%d,k=%o,k=%x\n”k,k,k0;)
A.k=11,k=12,k=11 B.k=11,k=13,k=13
C.k=11,k=013,k=0xb D.k=11,k=13,k=b
55 若X和Y都是INT型变量,X=100,Y=200,且有下面的程序片段:
printf(“%d”,x,y);
上面程序片段的输出结果是( )
A.200 B.100 C.100 200 D.输出格式符不够,输出不确定的值
56请读程序:
#include<stdio.h>
main()
{int a;float b,c;
acanf(“%2d%3f%4f”,&a,&b,&c);
printf(“、na=%d,b=%f,c=%f\n”,a,b,c);
}
若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是( )
A.a=98,b=765,c=4321
B.a=10,b=765.000000,c=4321.000000
C.a=98,b=765,c=4321.0
D.a=98,b=765.00,c=4321
57.以下程序的输出结果是( )
main()
{int x+10,y=10;
printf(“%d%d\n”,x--,--y);}
A.10 10 B.9 9 C.9 10 d.10 9
58.下列程序执行后的输出结果是( )(小数点后只写一位)。
main()
{double d;float f;long l;int I;
I=f=l=d=20/3;
Printf)”%d%ld%f%f\n”,I,l,f,d);
}
A.666.06.0 B.666.76.7 C.666.06.7 d.666.76.0
59.下面程序的输出结果是( )
main()
{unsigned a=32768;
printf(“a=%d\n”,a);
}
A.a=32768 B.a=32767 C.a=-32768 D.a=-1
60. 下列程序结果是( )
main()
{int x=40,y=3,z=4;
x=y=z;
printf(“%d\n”,x);
x=y=(y=z);}
A3 B40 C4 D2
二、改错题:(不能增加或删除行)
1、 构成C语言程序的基本结构单位是语句.
2、 C语言每条语句以“,”号结尾。
3、 C程序总是从第一个函数开始执行。
4、 main()
{INT a=3,b=4,c;
c=a+b;}
5、 main()
{float x,y;
scanf(“%f”,x);
y=x%2;
printf(“%f\n”,y);}
6、 main()
{long x,y;
scanf(“%f”,x);
if(x=0)y=0;}
7、 main()
{int x,y;
for(x=1;x<10;x++);
y=y+x;
printf(“%f\n”,y);}
8、 main()
{int x=1,y;
do
{y=y+x;
x++;}while(x<10)
printf(“%f\n”,y);}
9、x不等于5可以写成:x<>5;
10、下式逗号表达式的值是:5
x=5,x++,x
三、编程题:
1. 输入一个整数,能否被3和7整除且不能被5整除,能输出YES不能输出NO。
2. 从键盘输入6名学生的5门成绩,分别统计出每个学生的平均值。
3、输入任意一串字符,以‘0’为结束标志,输入该串字符中字母、数字和其它符号分别多少个?