嵌入式系统开发人员C语言测试题大全

嵌入式系统开发人员C语言测试题大全

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*zb. x*(1/(y*z))c. x/y*1/zd. 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 | yc. x & y d. x ^ y

(147)下面选项中____是不合法的C用户标识符。
a. userb. switchc. _345d. 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+9b. 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. 20c. 40d. 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 = "abc" c. p[0]->k = 2 d. p->s = 'a'

(189)若变量已正确定义并赋值,表达式______不符合C语言语法。
a. a*b/c; b. 3.14%2 c. 2, b d. a/b/c

(190)若变量已正确定义并赋值,表达式 -k++ 等价于______。
a. -(k++) b. (-k)++ c. -(k+1) d. -(++k)

参考答案:

103.(a)
104.(b)
105.(b)
106.(a.b.d)
107.(b)
108.(a)
109.(d)
110.(a.b)
111.(a.d)
112.(b)
113.(a)
114.(d)
115.(b)
116.(c)
117.(b)
118.(c)
119.(c)
120.(c)
121.(c)
122.(b)
123.(a)
124.(b.c.d)
125.(a.b)
126.(c)
127.(c)
128.(c.b)
129.(b)
130.(b)
131.(a.b.c.d)
132.(a.c.d)
133.(c)
134.(c)
135.(c)
136.(c)
137.(a)
138.(a.b.c.d)
139.(c)
140.(b)
141.(d)
142.(d)
143.(c)
144.(b.c)
145.(c)
146.(b)
148.(d)
149.(a)
150.(a)
151.(d)
152.(d.c)
153.(b)
154.(b)
155.(c)
156.(d)
157.(c)
158.(c)
159.(c)
160.(c)
161.(d)
162.(a)
163.(c)
164.(a.b)
165.(b)
166.(d)
167.(b)
168.(c)
169.(c)
170.(c)
171.(b)
172.(b)
173.(d)
174.(d)
175.(c)
176.(b)
177.(d)
178.(d)
179.(c)
180.(c)
181.(c)
182.(a)
183.(d)
184.(b)
185.(c)
186.(c)
187.(d)
188.(a)
189.(b)
190.(a)