2.1 选择题
(103)设有以下语句:
char a=3, b=6, c;
c = a^b<<2;
则c的二进制值是_____。
a. 00011011
b. 00010100
c. 00011100
d. 00011000
(104)表达式0x13&0x17的值是___。
a. 0x17
b. 0x13
c. 0xf8
d. 0xec
(105)表达式0xl3|0xl7的值是____。
a. 0x13
b. 0x17
c. 0xE8
d. 0xc8
(106) 以下叙述中正确的是_____。
a. 表达式a&=b等价于a=a&b
b. 表达式a|=b等价于a=a|b
c. 表达式a!=b等价于a=a!b
d. 表达式a^=b等价于a=a^b
(107) 要求运算数必须是整型或字符型的运算符有_____。
a.&& b.& c.! d.||
(108) 运作对象必须是整型数的运算符是_____。
a. % b. . c. / d. **
(109) 根据以下定义,错误的表达式是_____。
struct
{
int a;
char b;
} Q, *p = &Q;
a. Q.a
b. (*p).b
c. p->a
d. *p.b
(110) 下面关于sizeof操作符使用的说法是____
a. 当操作数是数组类型时,其结果是数组的总字节数;
b. 当操作数是联合类型时,其结果是其最大字节成员的字节数;
c. 当操作数是结构类型时,其结果是所有成员的总字节数;
d. 当操作数是指针类型时,其结果是所指对象的总字节数。
(111) 下面关于sizeof操作符的说明正确的是_____。
a. 其参数既可以是类型,也可以是变量;
b. 其返回值是带符号的整型;
c. 当操作数是指针变量时,其返回值依赖于编译器;
d. 当操作数是函数中的数组形参或函数类型的形参,其结果是指针的大小。
(112) 若x是单精度实型变量,表达式 x = 10/4 的值是_____ 。
a. 2.5 b. 2.0 c. 3 d. 2
(113) 表达式 !x 等价于_____。
a. x == 0 b. x == 1 c. x != 0 d. x != 1
(114) ______是合法的用户自定义标识符。
a. b-b b. float c. <fr> d. _isw
(115) 若变量已正确定义并赋值,表达式______不符合C语言语法。
a. a*b/c; b. 3.14%2 c. 2, b d. a/b/c
(116) _____是不正确的字符常量。
a. '\n' b. '1' c. "a" d. '\101'
(117) 在 C 程序中,用_____表示逻辑值"真"。
a. 1 b. 非 0 的数 c. 非 1 的数 d. 大于 0 的数
(118) ______把x、y定义成float类型变量,并赋同一初值3.14。
a. float x, y=3.14; b. float x, y=2*3.14;
c. float x=3.14, y=x=3.14; d. float x=y=3.14;
(119) 假设变量已正确定义,表达式______的值不是2。
a. 2&3 b. 1<<1 c. a==2 d. 1^3
(120) 若变量已正确定义,语句if(a>b) k=0; else k=1;和______等价。
a. k=(a>b)?1:0; b. k=a>b;
c. k=a<=b; d. a<=b ? 0 : 1;
(121) 表达式 strlen("hello") 的值是_______。
a. 4 b. 5 c. 6 d. 7
(122) 设变量定义为int a[4];
则表达式______不符合C语言语法。
a. *a b. a[0] c. a d. a++
(123) 设变量定义为int x, *p=&x;则&*p相当于_____。
a. p b. *p c. x d. *&x
(124) 对于以下的变量定义,表达式______不符合C语言语法。
struct node
{
int len;
char *pk;
}x = {2, "right"}, *p = &x;
a. p->pk b. *p.pk c. *p->pk d. *x.pk
(125) 下面合法的字符常量有_____。
a. '\084'
b.'X43'
c.'ab'
d."\0"
(126) 以下选项中,非法的字符常量是_____。
a. '\t' b. '\17' c. "n" d. '\xaa'
(127) 根据编码规范,以下不正确的叙述是_____。
a. 在c程序中,每行中只能写-条语句
运算符优先级图片b. 若a是实型变量,c程序中允许赋值a=l0,因此实型变量中可以允许存放整型数
c. 在c程序中,无论是整数还是实数,都能被准确无误地表示
d. 在c程序中,%是只能用于整数运算的运算符
(128) 以下运算符中优先级最低的是___,优先级最高的是___。
a.&& b.& c.|| d.|
(129) 在c语言中,要求运算数必须是整型或字符型的运算符是_____。
a.&& b.& c.! d.||
(130) 下面程序的输出结果是______。
unsigned t = 129;
t = t^00;
printf("%d, %o\n", t, t);
a. 0, 0
b. 129, 201
c. 126, 176
d. 101, 145
(131) 下面那几个运算符是对位进行操作的_____。
a. & b. ^ c. ~ d. <<
(132) 下面关于位域的说法正确的是_____。
a. 一个位域必须存储在同一个字节中,不能跨两个字节;
b. 位域可以用任何格式输出;
c. 位域可以无名,无名的位域只用来作填充或调整位置,是不能使用的;
d. 位域的引用方式同一般的结构成员。
(133) 下面关于位的说法正确的是_____。
a. 使用位域的一般形式为:位变量名·位域名;
b. 可以定义指向位类型的指针;
c. 定义和位变量的说明位定义与结构定义相同;
d. 长度不能大于一个字节的长度,即不能超过8位二进位;
(134) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。
a. 算术运算、赋值运算、关系运算 b. 关系运算、赋值运算、算术运算
c. 算术运算、关系运算、赋值运算 d. 关系运算、算术运算、赋值运算
(135) 若a是整型变量,表达式 ~(a ^ ~a ) 等价于______。
a. ~a b. 1 c. 0 d. 2
(136) sizeof(double)是_____。
a. 一种函数调用
b. 一个双精度型表达式
c. 一个整型表达式
d. 一个不合法的表达式
(137) 表示关系x<=y<=z的c语言表达式为____。
a. (X<=Y)&&(Y<=Z) b. (X<=Y)AND(Y<=Z)
c. (X<=Y<=Z) d. (X<=Y)&(Y<=Z)
(138) 若变量已被正确定义,下列可作为C语言赋值语句的是____。
a. x=3,y=5
b. a=b=6 c. i-- d. y=int(x)
(139) 设x,y,z,t均为int型变量,则执行以下语句后,t的值为____。
x=y=z=1;
t=x||y&&z;
a. 不定值 b. 2 c. 1 d. 0
(140) 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是____。
a. s=a+b; b. s=a+c; c. s=s+c; d. s=b+c;
(141) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是______。
a. x/y*z b. x*(1/(y*z)) c. x/y*1/z d. x/y/z
(142) 有以下程序:
main()
{
int x=3, y=2, z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是____。
a. 3 b. 2 c. 1 d. 0
(143) 以下有4组用户标识符,其中合法的一组是____。
a. For b. 4d c. f2_G3 d. WORD
-sub DO IF void
Case Size abc define
(144) 以下选项中合法的字符常量是____。
a. "B" b. '\010' c. 68 d. D
(145) 以下选项中,非法的字符常量是_____。
a. '\t' b. '\17' c. "n" d. '\xaa'
(146) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是_____。
a. x || y b. x | y c. x & y d. x ^ y
(147) 下面选项中____是不合法的C用户标识符。
a. user b. switch c. _345 d. Abc
(148) 下列运算符中 的优先级最低。
a. && b. ! c. + d. =
(149) 已知各变量的类型说明如下:
int k, a, b;
unsigned long w = 5;
double x = 1.42;
则以下不符合C语言语法的表达式是_____。
a. x%(-3) b. w+=-2
c. k=(a=2,b=3,a+b) d. a+=a-=(b=4)*(a=3)
(150) 已知各变量的类型说明如下:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是_____。
a. a+=a-=(b=4)*(a=3) b. a=a*3=2
c. x%(-3) d. y=f1oat(i)
(151) 以下不正确的叙述是_____。
a. 在C程序中,逗号运算符的优先级最低
b. 在C程序中,APH和aph是两个不同的变量
c. 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
d. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
(152) 以下符合C语言语法的赋值表达式是______。
a. d=9+e+f=d+9 b. d=9+e,f=d+9
c. d=9+e,e++,d+9 d. d=9+e++=d+7
(153) 已知字母A的ASCII码为十进制数65,且c1为字符型,则执行语句c1='A'+'6'-'3';后,c1中的值为______。
a. D b. 68 c. 不确定的值 d. C
(154) sizeof(float)是_______。
a. 一个双精度型表达式 b. 一个整型表达式
c. 一种函数调用 d. 一
个不合法的表达式
(155) 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为______。
a. int b. float c. double d. 不确定
(156) 表达式18/4*sqrt(4.0)/8值的数据类型为_____。
a. int b. float c. double d. 不确定
(157) 逻辑运算符两侧运算对象的数据类型_____。
a. 只能是0或1
b. 只能是0或非0正数
c. 只能是整型或字符型数据
d. 可以是任何类型的数据
(158) 下关于运算符优先顺序的描述中正确的是_____。
a. 关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
b. 逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
c. 赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
d. 算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
(159) 能正确表示"当x 的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是_____。
a. (x>=1) &&(x<=10) &&(x> = 200) &&(x<=210)
b. (x>=1) || (x<=10) ||(x>=200) ||(x<=210)
c. (x>=1) &&(x<=10)||(x>= 200) &&(x<=210)
d. (x > =1)||(x< =10) && (x> = 200)||(x<=210)
(160) 已知x=43,ch='A',y=0则表达式x>=y && ch<'B' && !Y 的值是_____。
a. 0 b. 语法错 c. 1 d. "假"
(161) 希望当A的值为奇数时,表达式的值为"真",A的值为偶数 表达式的值为"假"。则以下不能满足要求的表达式是_____。
a. A%2==1 b. !(A%2 == 0) c. !(A%2) d. A%2
(162) 下列运算符中优先级最低的是_____。
a. ?: b. && c. + d. !=
(163) 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是______。
a. (exp==0) b. (exp=0)
c. (exp==1) d. (exp!=1)
(164) 下列运算符中自左向右结合的是____。
a. = b. -> c. ?: d. ++
(165) 对于int i, j; char c; 当输入序列为1dc2 3 4时,执行语句
scanf("%dd%c%*d%*d%d", &i, &c, &j); 后i, j, c的值分别为____。
a. 1 2 'd' b. 1 2 'c' c. 1 4 'd' d. 1 4 'c'
(166) 下列判断闰年的表达式中错误的是____。
a. leap = n % 400 == 0 || n % 4 == 0 && n % 100 != 0;
b. leap = n % 4 == 0 && ( n % 100 != 0 || n % 400 == 0 );
c. leap = ! ( n % 400 != 0 && n % 4 != 0 || n % 100 == 0 );
d. leap = n % 400 == 0 && n % 4 == 0 || n % 100 != 0 ;
(167) 表达式(*ptr->str)++中的++作用在____。
a. ptr上 b. ptr的成员str上
c. ptr的成员str所指向的第一个字符上 d. 以上都不是
(168) 设有变量定义: int a=3, b=4, c=5;
则表达式:c>a>b&&c||!b< c?2:1的值是____。
a. 0 b. 1 c. 2 d. 语法有错
(169) 设有变量定义:int x=1,y=4, z=5;
则表达式:('z' - 'a') % y + (x += y) + (++y != z)的值是____。
a. 4 b. 5 c. 6 d. 7
(170) 表达式______的值是0。
a. 3%5 b. 3/5.0 c. 3/5 d. 3<5
(171) 表达式 !(x>0||y>0) 等价于_____。
a. !x>
0||!y>0
b. !(x>0)||!(y>0)
c. !x>0&&!y>0
d. !(x>0)&&!(y>0)
(172) 若变量已正确定义并赋值,表达式______不符合C语言语法。
a. 4&&3 b. +a c. a=b=5 d. int(3.14)
(173) 下列运算符中,优先级从高到低依次为_____。
a. &&,!,|| b. ||,&&,! c. &&,||,! d. !,&&,||
(174) ______是合法的用户自定义标识符。
a. b-b b. float c. <fr> d. _isw
(175) 若变量已正确定义,表达式______的值不是2。
a. 2&3 b. 1<<1 c. a==2 d. 1^3
(176) 表达式 strlen("hello") 的值是_______。
a. 4 b. 5 c. 6 d. 7
(177) 有以下程序_____。
main()
{
char a, b, c, *d;
a = '\';
b = '\xbc';
c = '\0xab';
d = "\0127";
printf("%c%c%c%c\n", a, b, c, *d);
}
以下叙述中正确的是_____。
a. 程序中只有a='\'; 语句不正确
b. b='\xbc'; 语句不正确
c. d="\0127"; 语句不正确
d. a='\';和 c='\0xab'; 语句都不正确
(178) 以下不能定义为用户标识符的是_____。
a. scanf b. Void c. _3com_ d. int
(179) 以下选项中可作为C语言合法整数的是______。
a. 10110B b. 0386 c. 0Xffa d. x2a2
(180) 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_____。
a. x=x*100+0.5/100.0; b. x=(x*100+0.5)/100.0;
c. x=(int)(x*100+0.5)/100.0; d. x=(x/100+0.5)*100.0;
(181) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是____。
a. -3 b. 9 c. -12 d. 6
(182) 设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)
(183) 若有以下定义和语句:
char c1='b', c2='e';
printf("%d,%c\n", c2-c1, c2-'a'+"A")
则输出结果是_______。
a. 2,M b. 3,E
c. 2,e d. 输出结果不确定
(184) 设x为int型变量,则执行以下语句后,x的值为_____。
x=10; x+=x-=x-x;
a. 10 b. 20 c. 40 d. 30
(185) 设x,y,z,t均为int型变量,则执行以下语句后,t的值为_____。
x=y=z=1;
t=++x||++y&&++z;
a. 不定值 b. 2 c. 1 d. 0
(186) 标识符只能由字母、数字和下划线三种字符组成,且第一个字符_____。
a. 必须为字母 b. 必须为下划线
c. 必须为字母或下划线 d. 可以是字母,数字和下划线中任一种字符
(187) 若x是整型变量,表达式 x=10.0/4.0 的值是_____ 。
a. 2.5 b. 2.0 c. 3 d. 2
(188)对于以下的变量定义,表达式______是正确的。
struct node
{
char s[10];
int k;
}p[4];
a. p->k = 2 b. p[0].s
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论