一、单项选择题
导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要
检查对 C 语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中 ,
不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握
不准的问题,应该通过上机实验来检验。
【1.1】以下不正确的 C 语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x
【1.2】以下是正确的 C 语言标识符是____。
A) #define B) _123 C) %d D) \n
【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是 。
A) print B) i\am C) Pxq D) str_l‡‡‡
_3d one_half My->book Cpp‡‡‡
oodb start$it line# pow‡‡‡
aBc 3pai His.age while‡‡‡
【1.4】下面各选项组中,均是 C 语言关键字的组是 。
A) auto,enum,include B) switch,typedef,continue
C) signed,union,scanf D) if,struct,type
【1.5】下列不属于 C 语言关键字的是 。 A) default B) register C) enum D) external
【1.6】C 语言程序从 main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始 B) 程序文件的最后
C) 它所调用的函数的前面 D) 程序文件的任何位置
【1.7】下列关于 C 语言的叙述错误的是____
A) 大写字母和小写字母的意义相同
B) 不同类型的变量可以在一个表达式中
C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D) 同一个运算符号在不同的场合可以有不同的含义
【1.8】在 C 语言中,错误的 int 类型的常数是 。
A) 32768 B) 0 C) 037 D) 0xAF
【1.9】执行语句 printf("%x",-1);屏幕显示____。
A) -1 B) 1 C) -ffff D) ffff
【1.10】已知 long i=32768;执行语句 printf("%d",i);屏幕显示____。
A) -1 B) -32768 C) 1 D) 32768
【1.11】已知 long i=65539;执行语句 printf("%d",i);屏幕显示____。
2
A) 65539 B) -3 C) 3 D) 程序不能执行
【1.12】在C语言中,整数-8 在内存中的存储形式是 。
A) 1111 1111 1111 1000 B) 1000 0000 0000 1000
C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
【1.13】C语言中字符型(char)数据在内存中的存储形式是____。
A) 原码 B) 补码 C) 反码 D) ASCII 码
【1.14】将字符 g 赋给字符变量 c,正确的表达式是 。
A) c=\147 B) c="\147" C) c='\147' D) c='0147'
【1.15】下列转义字符中错误的一个是____。
A) '\000' B) '\0014' C) '\x111' D) '\2'
【1.16】将空格符赋给字符变量 c,正确的赋值语句是____。
A) c='\0' B) c=NULL C) c=0 D) c=32
【1.17】已知:char a='\70';则变量 a 中 。
A) 包含 1 个字符 B) 包含 2 个字符 C) 包含 3 个字符 D) 说明非法
【1.18】字符串"\"EOF\n=-\61\""的长度是____。
A) 8 B) 9 C) 14 D) 非法字符串
【1.19】字符串""的长度是____。
A) 0 B) 1 C) 2 D) 非法字符串
【1.20】已知:char a;int b;float c;double d;执行语句"c=a+b+c+d;"后,变量 c 的数据类型
是 。
A) int B) char C) float D) double
【1.21】温度华氏和摄氏的关系是: C=-(F-32)。已知:float C,F;由华氏求摄氏的正确的赋值表
达式是____。
A) C=5/9(F-32) B) C=5*(F-32)/9
C) C=5/9*(F-32) D) 三个表达式都正确
【1.22】逗号表达式"(a=3*5,a*4),a+15"的值是____。
A) 15 B) 60 C) 30 D) 不确定
【1.23】如果 int a=1,b=2,c=3,d=4;则条件表达式"a<b?a:c<d?c:d"的值是____。
A) 1 B) 2 C) 3 D) 4
【1.24】为求出 s=10!的值,则变量 s 的类型应当为 。
A) int B) unsiged C) long D) 以上三种类型均可
3
【1.25】已知 int i=10;表达式"20-0<=i<=9"的值是____。
A) 0 B) 1 C) 19 D) 20
【1.26】已知 int x=1,y;执行下述语句后变量 x 的值是____。
y=++x>5&&++x<10;A) 1 B) 2 C) 3 D) 4
【1.27】为判断字符变量 c 的值不是数字也不是字母时,应采用下述表达式____。
A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122
B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)
C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122
D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)
【1.28】已知 int a[3][2]={3,2,1};则表达式"a[0][0]/a[0][1]/a[0][2]"的值是____。
A) 0.166667 B) 1 C) 0 D) 错误的表达式
【1.29】已知 int x=1,y=1,z=1;表达式"x+++y+++z++"的值是____。
A) 3 B) 4 C) 5 D) 表达式错误
【1.30】用十进制表示表达式"12|012"的值是____。
A) 1 B) 0 C) 12 D) 14
【1.31】已知以下程序段:
int a=3,b=4;
a=a^b;
b=b^a;
a=a^b;
则执行以上语句后 a 和 b 的值分别是____。
A) a=3,b=4 B) a=4,b=3 C) a=4,b=4 D) a=3,b=3
【1.32】在位运算中,操作数每右移一位,其结果相当于____。
A) 操作数乘以 2 B) 操作数除以 2 C) 操作数除以 16 D) 操作数乘以 16
【1.33】已知 char a=222;执行语句 a=a&052;后,变量 a 的值是____。
A) 222 B) 10 C) 244 D) 254
【1.34】已知二进制数 a 是 00101101,如果想通过整型变量 b 与 a 做异或运算,使变量 a 的高 4
位取反,低 4 位不变,则二进制数 b 的值应是____。
A) 11110000 B) 00001111 C) 11111111 D) 00000000
【1.35】已知 int a=15,执行语句 a=a<<2 以后,变量 a 的值是____。
A) 20 B) 40 C) 60 D) 80
【1.36】已知 int x=5,y=5,z=5;执行语句 x%=y+z;后,x 的值是____。
4
A) 0 B) 1 C) 5 D) 6
【1.37】使用语句 scanf("x=%f,y=%f",&x,&y);输入变量 x、y 的值(□代表空格),正确的输
入是____。A) 1.25,2.4 B) 1.25□2.4 C) x=1.25,y=2.4 D) x=1.25□y=2.4
【1.38】下列循环语句中有语法错误的是____。
A) while(x=y) 5; B) while(0) ;
C) do 2;while(x==b); D) do x++ while(x==10);
【1.39】已知 int x=(1,2,3,4);变量 x 的值是____。A) 1 B) 2 C) 3 D) 4
【1.40】表达式 sizeof(double)是 。
A) 函数调用 B) double 型表达式 C) int 型表达式 D) 非法表达式
【1.41】执行语句 printf("2:%d,",printf("1:%d,",scanf("%d",&x)));以后的输出结果是____。
A) 2:1,1:1, B) 1:1,2:1, C) 2:4,1:1 D) 1:1,2:4,
【1.42】已知:int x,y;double z;则以下语句中错误的函数调用是 。
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);
【1.43】与条件表达式"(n)?(c++):(c--)"中的表达式(n)等价的表达式是____。
A) (n==0) B) (n==1) C) (n!=0) D) (n!=1)
【1.44】已知 int i=1,j=0;执行下面语句后 j 的值是____。
while(i)
switch(i)
{ case 1: i+=1;j++;break;
case 2: i+=2;j++;break;
case 3: i+=3;j++;break;
default: i--;j++;break;
}
A) 1 B) 2 C) 3 D) 死循环
【1.45】求取满足式 12+22+32+ …… +n2 ≤1000 的 n,正确的语句是____。
A) for(i=1,s=0;(s=s+i*i)<=1000;n=i++) ;
B) for(i=1,s=0;(s=s+i*i)<=1000;n=++i) ;
C) for(i=1,s=0;(s=s+i*++i)<=1000;n=i) ;
D) for(i=1,s=0;(s=s+i*i++)<=1000;n=i) ;
【1.46】下面的 for 语句 。
for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) ;
A) 是无限循环 B) 循环次数不定 C) 循环执行 4 次 D) 循环执行 3 次
【1.47】已知 int i=1; 执行语句 while (i++<4) ;后,变量 i 的值为____。
5