习题2 一、选择题
C语言基本类型包括( D )
A) 整型、实型、逻辑型 B) 整型、实型、字符型、逻辑型 C) 整型、字符型、逻辑型 D) 整型、实型、字符型
下列四组选项中,均不是C语言关键字的选项是 A 。 A) define IF type B) getc char printf C) include case scanf D) while go pow
语言的字符型数据在内存中的存储形式是( D ) A)原码 B)补码 C) 反码 D) ASCII码
C 语言的整型数据在内存中的存储形式是( B ) A)原码 B)补码 C) 反码 D) ASCII码
已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=?A?+?6?-?3?后,c2中的值为 A 。
A) D B) 68
以下叙述正确的是 C 。 A) 在C程序中,每行只能写一条语句
C) 不确定的值
D) C
B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C) 在C程序中,%是只能用于整数运算的运算符
D) 在C程序中,无论是整数还是实数,都能被准确无误地表示
以下叙述不正确的是 D 。
A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量
C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变
D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
下面正确的字符常量是 D 。 A) “c” B) ?\\\\?? C) ‘’ D) ?K?
下列四组选项中,均是合法转义字符的选项是 A 。 A) ?\\”?‘\\\\?‘\\n? B) ?\\?‘\\017?‘\\”? C) ?\\018?‘\\f?‘xab? D) ?\\\\0?‘\\101?‘xlf?
下列四组选项中,均是不合法的用户标识符的选项是 B 。
A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP
若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52
设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double
设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。
A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647
若运行时给变量x输入12,则以下程序的运行结果是 。(有错误,应为0) main() { int x,y;
scanf(“%d”,&x); y=x>12 ? x+10 : x-12; printf(“%d\\n”,y); }
A) 4 B) 3 C) 2 D) 1
若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是 C 。
A) A%2==1 B) !(A%2==0) C) !(A%2)
设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 B 。 A) 1 B) 2 C) 3 D) 4
以下程序的运行结果是 B 。 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,0 D) 2,0
已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。
if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30
B) x=20, y=30, z=30
C) x=20, y=30, z=10 D) x=20, y=30, z=20
D) A%2
以下程序的运行结果是 C 。 main() { int m=5; if(m++>5) printf(“%d\\n”,m); else;
printf(“%d\\n”,m--); }
A) 4 B) 5 C) 6 D) 7
判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ?A?<=ch<=?Z?
逻辑运算符两侧运算对象的数据类型 D 。 A) 只能是0和1
sizeof(float)是 B 。
A) 一个双精度型表达式 B) 一个整型表达式
C) 一种函数表达式 D) 一个不合法的表达式
设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 C A) 4 B) 16 C) 32 D) 52
设有如下的变量定义: int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2;
则以下符合C语言语法的表达式是 A A) a+=a-=(b=4)*(a=3) B) x%(-3);
C) a=a*3=2 D) y=float(i)
假定有以下变量定义: int k=7,x=12;则能使值为3的表达式是 D
A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)
设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是 D A) 把x和y按从大到小排列 B) 把x和y按从小到大排列
C) 无确定结果
B) 只能是0或非0正数 D) 可以是任何类型的数据
C) 只能是整型或字符型数据
B) (ch>=?A?)&(ch<=?Z?)
C) (ch>=?A?)&&(ch<=?Z?) D) (?A?<= ch)AND(?Z?>= ch)
D) 交换x和y中的值
以下程序的输出结果是 D main()
{ int a=12,b=12;
printf(\ }
A) 10 10 B) 12 12 C) 11 10 D) 11 13
在C语言提供的合法的关键字是 D
A) swicth B) cher C) Case D) default
若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 C
A)1 B)2 C)2.0 D)2.5
C语言提供的合法的数据类型关键字是 B
A) Double B) short C) integer D) Char
在C语言中,合法的长整型常数是 A A) 0L B) 4962710 C) 0.054838743 D) 2.1869e10
二、填空题
scanf函数的格式化字符串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,则多余的输出项____忽略___。如果格式说明的个数多于输出项的个数,则多余多余的格式将输出______。 以下程序的运行结果是__52.00_____。 #include
float x=2.3,y=45.;
printf(“%8.2f\\n”,i%(int)(x+y)*j/2/3+y); }
若有定义:char c=?\\010?;则变量c中包含的字符个数为___1个___。 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为___10___,n的值为____6__。
若a是int型变量,则计算下面表达式A=25/3%3后a的值为__2____。
若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为_12_____,计算表达式x=a=4,6*2后的x 值为__4____。
若a是int型变量,则表达式(a=4*5,a*2),a+6的值为__26____。
若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为__1____。
在VC++中,一个int型数据在内存中占4个字节,则int型数据的取值范围为__-2147483648~2147483647___。
若有以下定义int m=5,y=2;,则计算表达式y+=y-=m*=y后的y值是___-16___。
设有定义语句:int i=3; float f=456.789; 则表达式1.2+i+?A?+f值的数据类型是__double____。
三、思考以下问题
1. 几种基本数据类型各占几个字节? 2. 标识符分哪几类,各有什么用途? 3. 为什么要定义符号常量? 4. 变量名定义有什么规则?
5. C语言有哪些几类运算符号,又有哪几类表达式?