二、语法基础
14. C语言的下列运算符中,优先级最高的运算符是( A )。
A. ++ B. += C. || D. !=
课本P42
优先级别从低到高为: +=、||、!=、++
15. ( D )为正确的用户标识符。
A. Struct B. 5f C. _f0.6 D. _for
合法用户标识符是有字母、数字、下划线构成,且不能以数字开头。
另外C语言关键字(课本P301)不能作为用户标识符。
A Struct 为关键字 B 5f 数字开头 C _f0.6含有非法字符.
所以答案选D
16. C语言基本数据类型包括( B )。
A. 整型、实型、逻辑型 B. 整型、实型、字符型
C. 整型、字符型、逻辑型 D. 整型、实型、字符串型
课本P21
实型 即 浮点型
17. ( A )为合法的常量。
A. 52686L B. E-7 C. 1.2E-2.1 D. 'E12'
课本P22 3.2常量
A正确,52686L为长整型常量
以指数形式aEn表示实数时,a和n都不能省略,且n必须是整数。所以B和C都错
D 一个字符加单引号是字符常量,1个字或多个字符加双引号是字符串常量,所以D错
18. ( C )为正确的变量名。
A. -k15 B. Int C. k_5 D. k.jeep
见15题解释
19. ( D )为正确的字符常量。
A. ''\\'' B. "\24m" C. "c" D. 'M'
见17题解释
A,C表示错误,应该加单引号表示字符常量。B是字符串常量。
20. ( C )为非法的字符串常量。
A. " " B. "s" C. 'efg' D. "26'62"
1个字或多个字符加双引号是字符串常量,空格字符也是一个字符
21. C语言整型数据在内存中的代码是用( C )表示的。
A. 原码 B. 反码 C. 补码 D. BCD码
22. 以下选项中,合法的实型常数是( B )。
A. E-3 B. .2E1 C. 1E.5 D. 1.5E
以指数形式aEn表示实数时,a和n都不能省略,且n必须是整数
23. 下列C语言合法的数据类型关键字是( B )。
A. Double B. Unsigned C. Integer D. Char
这题答案错误,C语言大小写是有区别的,A,B,C,D都错,
double、unsigned、char 才是合法的数据类型关键字
24. Turbo C中,int型数据占用的字节数( B )。
A. 由用户自己定义
B. 为2个字节
C. 是任意的
D. 等于所用计算机的字长
见课本P28 表3-2
25. Turbo C中,基本数据类型存储空间长度的排列顺序是( A )。
A. char<int<long int<float<double
B. char=int<long int<float<double
C. char<int<long int=float=double
D. char=int=long int<float<double
见课本P28 表3-2
不同的编译系统规定基本数据类型存储空间长度是不同的,Turbo C规定:
char=1个字节
int=2个字节
long=4个字节
float=4个字节
double=8个字节
A. char<int<long int<float<double 应该改为 char<int<long int=float<double 才正确
26. 以下叙述中正确的是( A )。
A. 字符常量用一对单撇号' '作为单个字符的定界符
B. 字符常量和字符串常量一样,都是用双引号括起来
C. 字符常量存储时,自动在字符后加一个字符结束符号'\0'
D. 字符常量和字符串常量所分配的内存空间大小是一样的
B 错,一个字符加单引号是字符常量,1个字或多个字符加双引号是字符串常量。
C 错,应该是字符串常量存储时,自动在字符后加一个字符结束符号'\0'
D错,字符常量和字符串常量所分配的内存空间大小不是一样的
27. 已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是( A )。
main( )
{ char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
A. 67,D B. C,D C. C,68 D. 67,68
ch1='A'+'5'-'3'='A'+2 所以ch1以%d 格式输出是67 , 以%c输出是C
ch2='A'+'6'-'3'='A'+3 所以ch2以%d 格式输出是68, 以%c输出是D
所以答案选A
28. 若有定义 int m=6; 则正确的赋值表达式是( C )。
A. m*7 B. m*5=8 C. m-=m*6 D. double(-m)
A 、D 不是赋值表达式,且D语法错误,应该改为(double)(-m)
赋值运算符左边不能是常量或表达式,B =左边是表达式,所以B错误
29. 语句 k=(m=5,n=++m); 运行之后,变量k、m、n的值依次为( D )。
A. 5,5,6 B. 5,6,5 C. 6,6,5 D. 6,6,6
n=++m 即m先自增1,再赋值给n,所以m=6,n=6
逗号表达式的值等于其中最后一个表达式的值,所以
k=(m=5,n=++m)=(5,6)=6
30. 语句 x=5%4+(4/5); 运行之后,整型变量x的值为( A )。
A. 1 B. 2 C. 3 D. 0
x=5%4+(4/5)=1+0=1
31. (B )语句符合C语言语法。
A. float z=28,int x,y=18;
B. int x=25,y=25,z=25;
C. int x=25:y=25:z=25;
D. int x+y=z;
32. 若有定义 int a,x; 则语句 a=(x=8,x+8); 运行后,变量a、x的值依次为(A )。
A. 16, 8 B. 8, 8 C. 16, 16 D. 8, 16
x=8
a=(x=8,x+8)=(8,16)=16
33. 若变量 m, n, t已定义且赋予初值,则正确的表达式是( B )。
A. m=m+1=t-n B. m=6+n+t,m++ C. m=m\2 D. m=int(5.6%4)
赋值运算符左边不能是表达式,所以A错
\不是运算符,/才是除法运算符 ,所以C错
D 有2处错误:
1. 模运算%,左右操作数只能是整型数据,
2..强制类型转换的一般形式:(类型名)表达式;详细见课本P47
34. 若有定义:int a,b; float x,则以下不符合C语言语法的表达式是( A )。
A. x%7 B. x/=a-b C. a=b=2 D. x=(float)a/b
模运算%,左右操作数只能是整型数据,所以A错
35. 若有定义:int m=4,n=5;float k;,则以下符合C语言语法的表达式是( B )。
A. (m+n)*=k B. m=(n==5) C. k=float(n)/m D. n%2.5
赋值运算符左边不能是表达式,所以A错
强制类型转换的一般形式:(类型名)表达式;详细见课本P47,所以C错
模运算%,左右操作数只能是整型数据,所以D错
36. 若有定义:int a=6; 则语句 a*=a-=a/=3; 运行后,a的值是( B )。
A. 10 B. 0 C. 34 D. 24
1. a/=3 → a=a/3=6/3=2
2. a-=2 → a=a-2=2-2=0
3. a*=0; → a=a*0=0*0=0
37. 下面关于C语言变量的叙述中,错误的是( A )。
A. 可以用define关键字定义变量
B. 变量名用大小写字母是有区别的
C. C语言允许不同基本类型的变量之间进行混合运算
D. C语言中要求对变量作强制定义的主要理由是:便于确定类型和分配空间
可以用define关键字定义常量,不可以用define关键字定义变量
38. 若有定义:int a=5,b=2; 则表达式b= (a!=5)的值为( B )。
A. 5 B. 0 C. 3 D. 2
b= (a!=5)=0
39. 逗号表达式 (a=15,a*4),a+15 的值为( B )。
A. 15 B. 30 C. 75 D. 60
(a=15,a*4),a+15 →(15,60),30
逗号表达式(15,60),30的值为30
40. 下列语句中,符合C语言语法的赋值语句是( 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;
赋值运算符左边不能是表达式或常量,所以A,C,D都错
41. ( A )是正确的叙述。
A. (int)5.0/6 与 5/6 等价 B. 'G' 与"G" 等价
C. 5/6 与 5.0/6.0 等价 D. ++3与4 等价
B 'G'是字符常量,占1个字节;"G"是字符串常量,占2个字节,所以B错
C 5/6=0 5.0/6.0≈0.83 所以C错
D ++3 语法错误,常量不能进行++运算
42. 下面叙述中,错误的是( D )。
A. C语言中的表达式求值,是按其运算符的优先级先高后低的次序进行
B. 自增与自减运算符的结合方向为“自右至左”
C. 关系运算符的优先级低于算术运算符
D. C语言算术运算符不包含模运算符“%”
C语言算术运算符有5个:+ - * / %
43. ( C )是正确的叙述。运算符优先级图片
A. 表达式 "m"+"M" 是合法的
B. 若变量x, y为整型,则 (a+b)++是合法的
C. 强制类型转换运算的优先级高于算术运算
D. 表达式 'm' * 'n' 是不合法的
字符串常量不能进行算术运算,所以A错
++运算操作对象不能是表达式或常量,所以B错
字符常量可以进行算术运算,’m’*’n’合法,所以D错
44. 若有定义 int i=1,j=9; 则表达式 (++j)*(i--) 的值为( B )。
A. 0 B. 10 C. 9 D. 8
++j j先自增1,再参与其他运算
i-- i先参与其他运算,再自减1
所以(++j)*(i--)=10*1=10
45. 设整型变量x为7,使整型变量y不为2的表达式是( A )。
A. y=x%3 B. y = x/3
C. y =(++x)/3 D. y=8-(--x)
y=x%3=7%3=1
46. 若已定义 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b的值为( D )。
A. 0 B. 3 C. 1 D. 2
这题主要考逻辑运算中的“不完全计算”规则,详细见课本P51
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论