|
一、单选题(共 20 道试题,共 100 分。)V 1. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。(假设a[0][0]位于数组的第1个位置上)
6 I/ ~! \4 N" I+ D( R$ ^( rA. i*m+j# Y0 L) m! v2 l
B. j*m+i
& G, o% A! G v l4 e" y: AC. i*m+j-1
* { M, _9 a" Q4 p$ k i6 B+ CD. i*m+j+1
! v; h8 N4 a$ C) m V 满分:5 分1 f4 m r/ ~* ]/ h" M1 v
2. 以下不正确的定义语句是( )。
% o- p' }- k1 P' C8 D) E1 pA. double x[5]={2.0,4,0,6,0,8,0,10.0};/ K$ A4 z5 g9 p2 t4 \& L
B. int y[5]={0,1,3,5,7,9};
. R4 n5 z8 o4 _ yC. char c1[]={'1','2','3','4','5'};4 R; j. } `% H9 s
D. char c2[]={'\x10','\xa','\x8'};"- n7 j; U, s% |: E
满分:5 分; |% o% ^. G" u5 A/ A$ E7 T+ O3 {% z/ k
3. 若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。. O7 {0 |: K. K/ }% j, g
A. 数组a中的每个元素都可得到初值0$ J9 H* `( P- W* m1 T9 H
B. 二维数组a的第1维大小为1" g `3 e$ T! J5 h% M% q) y4 |! v
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1% U( a& b& u2 c
D. 只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
" L8 [+ A; \6 }' I- r, g& { 满分:5 分
4 U* u h7 ^& K& }! Y4. 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。
6 v' k( S1 o* p) T' c6 L; O- OA. 29 m6 z8 m* w/ v0 n- p/ q1 T! E
B. 3( Y+ z0 w4 f+ d- p4 s
C. 4
; M# x- n# B1 x# kD. 无确定值# Z( y$ @5 N3 n# @5 c
满分:5 分
3 _: f6 j7 t v8 U5. 判断字符串a和b是否相等,应当使用( )。6 D/ r. o, {' t% V2 h; D
A. if(a==b)
/ @& f8 O) ~9 t/ \3 s+ \B. if(a=b)
9 y( ?( Z) h( x0 \/ j/ B) H$ tC. if(strcpy(a,b)). X4 w2 s+ }& P! q/ ]9 `
D. if(strcmp(a,b))"
. ^" f; n3 j# D) k% Z# p. k3 r% U" h 满分:5 分4 q1 F% r2 e0 O: o* O" t# C. S
6. 以下能对二维数组a进行正确初始化的语句是( )。4 R; v8 E+ K4 F' K: e% L4 T+ z; W
A. int a[2][]={{1,0,1},{5,2,3}};9 K) A5 B8 M) ? Q
B. int a[][3]={{1,2,3},{4,5,6}};" Q* [% y! B; L9 g4 k0 F$ t
C. int a[2][4]={{1,2,3},{4,5},{6}};
# _1 L: i. f5 R- WD. int a[][3]={{1,0,1},{},{1,1}};"
- z2 g: U; F! l+ r1 z# [ 满分:5 分, ?( Y0 R) O' }0 B
7. 若使用一维数组名作函数实参,则以下正确的说法是( )。
0 w) U+ y1 h+ V3 E( f' CA. 必须在主调函数中说明此数组的大小
4 i X, }, t& B# b+ dB. 实参数组类型与形参数组类型可以不匹配, f" T; g0 D. Y% W5 }
C. 在被调函数中,不需要考虑形参数组的大小
1 C6 h7 ^% {- e5 KD. 实参数组名与形参数组名必须一致0 P2 W Q1 @/ ~& c. s9 B% O1 |
满分:5 分9 {* N0 D+ S. i) H% w/ M" \
8. 以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。: F* k8 k! X3 m6 V" p j: z
A. int x=y=z=5;0 W7 ?9 p6 O, w$ y
B. int x,y,z=5;
: ~- E0 l8 Y: g, t. }C. int x=5,y=5,z=5;3 ]7 o3 m3 ?4 Q# G8 K0 y
D. x=5,y=5,z=5;"
2 Y+ \8 B+ s8 Z @/ s1 ] 满分:5 分+ M7 A6 O( y L8 ~* j; i* t
9. 以下对指针变量的操作中,不正确的是( )。
# s2 y$ G- h( b% u F. T, BA. int p, *q; q=&p;! c- [8 B/ t# ~% x; O r" l
B. int *p, *q; q=p=NULL;- t- b- m; S3 K" b
C. int a=5, *p; *p=a;
' z7 P8 o" z2 `D. int a=5, *p=&a, *q=&a; *p=*q;"
5 C5 X; f- a- b! n 满分:5 分- n5 ~1 X. B# j5 Y. O
10. 以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }# M3 M, X4 K- e0 A% T1 C" i
A. -1
9 W E) {8 E4 ~3 [- KB. 0& q+ |( y' a% T4 Z5 }7 D2 Y
C. 1+ R$ I7 @2 R, l( ?3 f' m c
D. 2
. N' q) g0 D8 N3 ? 满分:5 分3 ^0 u$ h8 f# c6 I$ ^
11. 以下对二维数组a的正确说明是( )。& u/ I% U# Y% B1 Y. Q8 O _. w7 h" }
A. int a[3][];- @8 V4 ?- ] D: N2 a
B. float a(3,4);4 O* e3 u) F4 U o% b
C. double a[1][4]- h- k7 e2 Z0 ?7 P$ |. |0 _
D. float a(3)(4);
# ]$ g" G6 `3 B6 K3 N/ |6 C 满分:5 分
2 o" P3 }. B7 M7 ?2 w12. 若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
+ U2 J- t2 v/ W: G# pA. *(a+i)- u& F4 u, F6 T1 g) Z2 m
B. a[p-a+i]
" H3 B8 q9 T: VC. p+i+ D+ {6 Z6 k4 h( S8 ?# A7 B' }
D. *(&a[i])
2 k s# v0 X2 ^3 l O" z 满分:5 分# F9 f5 x/ i. z5 L% U, q2 ]
13. 若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。 b=(a=10,a+5,c=10); printf("a=%d,b=%d,c=%d\n",a,b,c); c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);- R9 J0 l% }8 l" a
A. a=10,b=15,c=10a=10,b=5,c=10
- q9 ~2 X* V: {5 A, {B. a=10,b=10,c=10a=10,b=5,c=10
' p+ E0 D) r5 v# Y7 D! S, p0 BC. a=10,b=10,c=10a=10,b=5,c=15
; Y- g8 B7 w9 t, f- C6 ]7 ~D. a=10,b=10,c=10a=10,b=5,c=5
( J+ {+ @0 Q9 a 满分:5 分# [6 v8 d# J/ K+ k) i4 u* f; }
14. 以下程序的输出结果是( )。 main() { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf("d=%d\n",d);}' T. P8 O: q# x# f) m
A. d=10
) [% X1 }6 `; }3 g; h0 M6 CB. d=15; t" K K" X/ E2 \7 T' |% Y
C. d=20
- }3 U! I& k/ g1 H5 s2 B; uD. d=251 H6 y) v x$ o* P1 U
满分:5 分
/ k" |2 _9 [' |5 n- C" ^15. 在C语言中,整数-8在内存中的存储形式是( )。
% m/ A" h; Y4 b! aA. 1111 1111 1111 1000+ Z; k2 Z E4 D
B. 1000 0000 0000 1000
a7 i3 y8 \) VC. 0000 0000 0000 1000
' d. v: T# U$ @6 u4 F; kD. 1111 1111 1111 0111
8 S* v$ J1 c! a( X v* H4 o 满分:5 分4 n" Z3 ^& ?6 ?3 |( O2 v
16. 已知ch是字符型变量,则不正确的赋值语句是( )。) A4 W' T# e P! A; b, Z8 t) `) [
A. ch=5+9;
5 v+ I* L' `3 f9 ^B. ch='\0';
( j( N* F6 d) ~' R, _2 s* LC. ch='7'+'9';
3 O3 r; V+ A6 Y$ p2 aD. ch='a+b';0 r' g' c/ G2 |: j
满分:5 分
& m3 I9 C: T+ H" r+ M17. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}/ C, {. f! l5 q( [7 L1 h; q: S
A. 1
. B5 @! W3 q* a, z) i, AB. 21 Y7 L$ k9 r+ i3 {0 i/ j4 X- Z1 h
C. 3
0 b0 G2 C I$ r. s7 @D. 4
- T% O+ t9 f0 g 满分:5 分- {2 Q5 @: G" B! h
18. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
" Z4 X* W8 t* L% t! {A. i=x[1][1]+ S O8 e, G9 Q2 v# z% I
B. i=*(*(x+1))8 r1 J3 d8 W- U2 H
C. i=*(*(x+1)+1)
# ]6 A0 h+ x. I. |, w1 eD. i=*(x[1]+1)" v7 m' i3 T/ _$ e: D
满分:5 分
% M- X! Q- k: Z. u: c) W/ ^; B19. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
5 |! m+ l/ \ A W8 O, l5 n' f$ ]A. 地址传递% k8 }6 e/ O; y/ \7 U. h8 w
B. 单向值传递
& E$ v0 N. ^, u* b* c$ ]% O" hC. 由实参传给形参,再由形参传回实参9 ] _7 p- S4 K
D. 由用户指定传递方式$ k& r: G' o0 R5 a6 p) H: H
满分:5 分
& P0 D/ x- {: A* V5 b) i F20. 下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);
8 L0 s( v2 Z' _# @6 }: P9 q& iA. 23
7 a' [2 J% W9 G4 v' m( u7 uB. 17
& ?3 l( C! @, S2 x8 n4 I: jC. 18
8 J: s: N5 k% e0 BD. 24# x+ L/ F9 U, r, f+ H3 v
满分:5 分
5 P- Z# @6 L4 w, x# B7 C
$ V3 Y+ y7 S. `3 [$ ~0 }( t" x9 D, [ |
|