一、选择题
1、C语言属于___A_____。
A、高级程序设计语言 B、汇编语言 C、机器语言 D、编译语言 2、下列正确的标识符是( A )。
A、hot_do B、a+b
C、test!
D、%y
3、下面的变量说明中( C )是正确的。
A、char:a,b,c; B、char a;b;c; C、char a,b,c; D、char a,b,c 4、请从以下表达式中选出a为偶数时值为0的表达式( D )。
A、a%2==0
B、!a%2!=0
C、a/2*2-a==0 D、a%2
5、表达式10!=9的值是( D )。
A、true
B、false
C、0
D、1
6、指出下面正确的输入语句是( B )。
A、scanf(\ C、scanf(\
B、scanf(\ %d\
D、scanf(\
7、下面不合法的常量是( D )。
A、‘\\2’
B、?”?
C、?a?
D、?\\483?
9、已定义x为float型变量,其值为213.45678,则printf(“%-4.2f\\n”,x);输出的结果是( A )。
A、213.46
B、213.45
C、-213.45 D、输出格式控制说明的域宽不够,不能输出
10、若已定义a为整型变量,则语句:a=2L;printf(“%d\\n”,a); 为( C )。
A、赋值不合法 B、输出值为-2 C、输出值为2 不确定
11、下面语句( D )是C语言正确的赋值语句。
A、a=1,b=2
B、i++;
C、a=b=5
D、y=(int)x;
D、输出值
12、C语言中,运算对象必须是整型的运算符是_____A_____。 A) % B) / C) %和/ D) * 13、为表示关系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)
14、若变量已说明为int类型,要给a,b,c输入数据,正确的输入语句是 D 。
A) read(a,b,c); B) scanf(“%d%d%d”,a,b,c); C) scanf(“%D%D%D”,&a,%b,%c); D) scanf(“%d%d%d”,&a,&b,&c); 15、在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符( C )。
A. 必须为字母
B. 必须为下划线
D. 可以是字母数字或下划线中的任意一种
C. 必须为字母或下划线
16、当A的值为奇数时表达式为“真”,A的值为偶数时表达式的值为“假”,则以下不能满足条件地表达式是(C )。
A. A%2==1
B. !(A%2==0)
C. !(A%2)
D. A%2
17、下列表达式的值为1的是( D )。 A.3%5
B.3/5.0
C.3/5
D.3<5
18、已知字符c的ASCII码值为99,语句printf(“%d,%c”,?c?, ?c?+1)的输出为(C )。
A.99,c
B.99,100
C.99,d
D.语句不合法
19、若x是单精度实型变量,k是基本整型变量,则以下错误的表达式是( A )。 A.x%k
B.x/k
C.x=k
D.x=x+k
20、下列程序( D )。
#include
{ int x=0 ,y=0,z=0; if(x=y+z) printf(\ else printf(\}
A.有语法错误,不能通过编译 C.可以通过编译,连接出错
B.输出***
D.输出###
21、执行下列语句后的输出是( D )。
int x=-1;
if(x<=0) printf(\ else printf(\
A.**** B.%%%% 出错
C.-1 D.有语法错误,编译
22、设int c=5和int a, a=2+(c+=c++,c+8,++c), 则a=__B________。 A) 15 B) 14 C) 13 D) 16 c=c+c++ 23、设a为整形变量,不能正确表达数学关系:10
A) 10
B) a==11||a==12||a==13||a==14 D) !(a<10)&&!(a>=15)
C) a>10&&a<15
24、不合法的八进制数是____B____。
A) 0 B) 028 C) 077 D)01 25、下列运算符中优先级最高的是( A )。
A. ++
B. %
C. *(算术乘) D. =
26、自增自减运算只能作用于 ( B )。
A. 常量
B. 变量
C. 表达式
D. 函数
27、以下不正确的描述是(B )。
A. break语句不能用于循环和switch语句外的任何其它语句 B. 在switch语句中使用break语句或continue语句作用相同
C. 在循环语句中使用continue语句是为了结束本次循环而不是终止整个循环 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 28、以下不正确的描述是( C )。
A. 使用while和do-while时,循环变量初始化应在循环语句之前完成 B. while循环是先判断循环条件,后执行循环体语句 C. do-while和for都是先循环体,后判断循环条件 D. while、do-while和for的循环体都可以由空语句构成 29、以下对for语句的正确判断为( C )。
int a,b; a=100;
for(b=100;a!=b; a++,b++) printf(“*****”); A. 循环体只执行一次
B. 是死循环
C. 循环体一次也不执行 D. 输出*****
30、下列程序段的输出结果是( B )。
x=3; do
{ printf(\}while(!x); A. 321
B. 3
C. 21
D. 210
31、当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式是__D__。 A) (c=1)||(c=3)||(c=5) B) (c!=1)&&(c!=3)&&(c!=5)
C) (c==1)&&(c==3)&&(c=5) D) (c==1)||(c==3)||(c==5) 32、若k为整型,以下while循环___C_______次。 int k=10;
while (k=0) k=k-1;
A) 10次 B) 无限循环
C) 一次不执行 D) 执行一次
33、执行循环语句:for(k=1; k<4; k++); 后,变量k的值为___B_______。 A、 3 B、 4 C、 5 D、不定
34、C语言中,定义PI为一个符号常量,正确的是_____A_____。 A、 #define PI 3.14 B、 Define PI 3.14 C、 #define PI=3.14 D、 include PI 3.14 35、下列描述中不正确的是__C________。 A、字符型数组中可以存放字符串 B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出
D、不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 36、以下描述正确的是__C_____。 A、函数中,return后面一定要有表达式 B、函数中,不可以有多条return语句 C、函数返回值一定要通过return语句返回 D、return语句是函数中不可缺少的语句
37、在C语言的if语句中,用作判断的表达式为__B________。
A) 数值表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式 38、定义如下变量:int n=10; 则下列循环的输出结果是 B 。 while (n>7) { n--;
printf(“%d\\n”,n); }
A) 10 B) 9 C) 10 D) 9 9 8 9 8 8 7 8 7 7 6 39、若k为整型,以下while循环__C________次。 int k=10;
while (k=0) k=k-1;
A) 10次 B) 无限循环
C) 一次不执行 D) 执行一次 二、判对错
( √ )任何变量都必须先声明其类型。
( ×)按格式控制符“%6.3f”输出i(设i=123.45)时,输出结果为23.450。 (√)在printf()中用格式控制符“%s”可以输出字符串。 ( √)表达式语句就是在表达式末尾加上分号。 (×)在C程序中,语句之间必须要用分号“;”分隔。 (√ )在C程序中所用的变量必须先定义后使用。 ( √)C程序中的注释部分可有可无,通常可以省略。 (√)在C程序中,APH和aph是两个不同的变量。
( ×)在C程序中,无论是整数还是实数,都能精确无误的表示。 ( √ )在C程序中,赋值运算符的优先级最低。
( × )若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a
中,b中的值将丢失。