一.单项选择题 (23*3=69)
(1) 以下选项中,正确的 C 语言短整型常量是______。
A. 32L B. 510000 C. -1.00 D. 567
(2) 以下选项中,_____是不正确的 C 语言字符型常量。
A. 'a' B. '\x41' C. '\101' D. "a"
(3) 在 C 语言中,字符型数据在计算机内存中,以字符的_______形式存储。
A. 原码 B. 反码 C. ASCII 码 D. BCD码
(4) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为______。
A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算
C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算
(5) 逻辑运算符中,运算优先级按从高到低依次为________。
A. &&,!,|| B. ||,&&,! C. &&,||,! D. !,&&,||
(6) 表达式!x||a==b 等效于_______。
A. !((x||a)==b) B. !(x||y)==b
C. !(x||(a==b)) D. (!x)||(a==b)
(7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是________。
A. 0,0 B. 0,1 C. 1,0 D. 1,1
(8)下列表达式中,正确的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
(9)以下程序语句运行结果为______
int a;
printf("a = %d\n", a);
A、编译出错 B、1024 C、NULL D、不确定值
(10) int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 的值依次为______。
A. 2,3 B. 2,0 C. 3,0 D. 3,2
(11) 设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是________。
A. 3 B. 0 C. 9 D. -12
(12) 在以下一组运算符中,优先级最低的运算符是______。
A. * B. != C. + D. =
(13) 若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是________。
A. 1 B. 2 C. 2.0 D. 2.5
(14) sizeof (double)的结果值是_________。
A. 8 B. 4 C. 2 D. 出错
(15) 设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为_______。
A. 4 B. 3 C. 2 D. 1
(16) 设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是__________ 。
A. 10<a<15 B. a= =11|| a= =12 || a= =13 || a= =14
C. a>10 && a<15 D. !(a<=10) && !(a>=15)
(17) 设 f是实型变量,下列表达式中不是逗号表达式的是_________ 。
A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=(3.2, 1.0)
(18) 设ch是 char型变量,其值为 'A',则下面表达式的值是________ 。
ch=(ch>='A'&& ch<='Z')? (ch+32):ch
A. A B. ‘a’ C. z D. Z
(19) 以下运算符中,结合性与其他运算符不同的是 _________ 。
A. ++ B. % C. / D. +
(20) 以下用户标识符中,合法的是__________ 。
A. int B. nit C. 123 D. a+b
(21) C 语言中,要求运算对象只能为整数的运算符是________ 。
A. % B. / C. > D. *
(22) PC 机中,'\n'在内存占用的字节数是 ________ 。
A. 1 B. 2 C. 3 D. 4
(23) 要为字符型变量 a赋初值,下列语句中哪一个是正确的 _________ 。
A. char a="3"; B. char a=’3’;
C. char a=%; D. char a=*;
二.填空题(每空一分 31*1=31)
(1) C 语言中的逻辑值“真”是用_____表示的,逻辑值“假”是用_________表示的。
(2) 符号常量的定义方法是_______________。
(3) C语言变量的定义语法为:______________________________________。
(4) 无符号基本整型的数据类型符为____________ ,双精度实型数据类型符为 __________ ,字符型数据类型符为 ____________。
(5)C语言中有符号数据类型(signed)和无符号数据类型(unsigned)的本质区别为_________
(6)设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为_________、________、__________ 、 ________ 。
(7)设a=3,b=2,c=l,则c>b的值为______.,a>b>c的值为______.
(8) 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为_______ 。
(9) 判断变量 a、b 的值均不为 0 的逻辑表达式为__________ 。
(10)C语言中-15在计算机内存中8位二进制存放形式为_____________.和-15在计算机内存中存放方式一样的8位二进制数的十进制为_____________.
(11) 在C语言中,如下程序输出结果为
int a = -2<<5;
printf("a = %d\n", a); __________________________
printf("a = %u\n", a); __________________________
(12)在C语言中,如下程序输出结果为
char c = 250;
unsigned char d;
char f;
d = c + 249;
f = c + 249;
printf("d = %d\n", d); ______________________
printf("d = %u\n", d); ______________________
printf("f = %d\n", f); ______________________
printf("f = %u\n", f);______________________
(13)求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为______、______、_______ 。
(14)数学式a/(b*c)的 C 语言表答式_________________________
(15) 假设有一个寄存器a,要把a的第3bit变为0,其他bit位不变,该如何操作? _________________
(16)以下程序运行后的输出结果是 ____。
#include
int main()
{
int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
(17)有以下程序(说明:字符0的ASCII码值为48)
#include <stdio.h>
int main()
{
char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序运行时从键盘输入48<回车>,则输出结果为______ 。