一. 选择题(共15题,每题3分。)
( 1)在C语言中, char型数据在内存中的存储形式是_____。
a. 补码 b. 反码 c. 原码 d. ASCII码
(2)设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为______。
a. 0~255 b. 0~32767 c. 0~65535 d. 0~2147483647
(3)已知ch是字符型变量,下面不正确的赋值语句是____。
a. ch=’a+b’; b. ch=’’; c. ch=’7’+’9′; d. ch=5+9;
(4)已知ch是字符型变量,下面正确的赋值语句是____。
a. ch= ‘123’; b. ch= ‘xff’; c. ch= ‘8′; d. ch=””;
(5)以下选项中不正确的整型常量是_____。
a.12L b. -10 c. 1,900 d. 123U
(6)假设int型变量占两个字节的存储单元,若有定义:
int x[10]={0,2,4};
则数组x在内存中所占字节数为______。
a. 3 b. 6 c. 10 d. 20
(7)C语言中能用八进制表示的数据类型为_____。
a. 字符型、整型 b. 整形、实型
c. 字符型、实型、双精度型 d. 字符型、整型、实型、双精度型
(8)以下只有在使用时才为该类型变量分配内存的存储类说明是____。
a. auto和static b. auto和register
c. register和static d. extern和register
(9)下面四个选项中,均是合法整型常量的选项是____。
a. 160 b. 0xcdf c. 01 d. 0x48a
0xffff 01a 986,012 2e5
011 0xe 0668 0x
(10)下面四个选项中,均是不合法的整型常量的选项是____。
a. 0f1 b. 0Xcdf c. 018 d. 0x48eg
0xffff 017 999 068
0011 12,456 5e2 03f
(11)下面四个选项中,均是不合法的浮点数的选项是____。
a. 160. b. 123 c. 18 d. e3
0.12 2e4.2 123e4 .234
e3 .e5 0.0 1e3
(12)下面四个选项中,均是合法浮点数的选项是____。
a. +le+1 b. 60. c. 123e d. e3
5e-9.4 12e-4 1.2e-.4 .8e4
03e2 8e5 +2e 5.e
(13)下面四个选项中,均是合法转义字符的选项是____。
a. ”’ b. ” c. ‘18’ d. ‘\0’
‘\’ ‘17’ ‘f’ ‘101’
‘n’ ‘”‘ ‘xab’ ‘xlf’
(14)下面四个选项中,均是不合法的转义字符的选项是____。
a. ”’ b. ‘1011’ c. ‘11’ d. ‘abc’
‘\’ ” ‘f’ ‘1011’
‘xf’ ‘a’ ‘}’ ‘xlf’
(15)下面正确的字符常量是____。
a. “a” b. ‘\” c. ‘W’ d. ”
二.填空题(每题6分)。
(1)说明下面变量的定义:
char (*p[])(); _____________________
char *p()[]; _____________________
char (*p)[10][10]; _____________________
char(*(*p())[])[]; _____________________
(2)下面共同体的存储空间是_____
union BOOKNUMBER
{
T_S16 age;
T_S8 title[10];
T_S8 post[32];
}
(3)若整数值范围是 -32768 至 32767。在执行下面的表达式之后, i 的结果是什么?
int i=32766;
i=i+1; i =
i=i+1; i =
(4)对于联合类型:
union x
{
char ch[7];
int i[2];
float f;
}tom;
那么, sizeof(tom) =
(5)有以下程序,程序的输出结果是______(注意: ch[0]在低字节,ch[1]在高字节)。
#include<stdio.h>
union pw
{
int i;
char ch[2];
}a;
main()
{
a.ch[0] = 13;
a.ch[1] = 0;
printf(“%dn”, a.i);
}
三.简单题(共3题,每题10分)
(1)已知a为整数,比较下面代码的效率并说明原因:
a++;
a = a+1;
(2)已知a为整数,比较下面代码的效率并说明原因:
a = a*4;
a << 2;
(3)说明一个变量和定义一个变量有什么区别?