|
一、单选题(共 20 道试题,共 100 分。)V 1. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。(假设a[0][0]位于数组的第1个位置上)
# Q, _! f7 G2 T. T A1 rA. i*m+j
3 j% n' N; S- L& j* b0 y8 a dB. j*m+i
9 L- x" e2 u0 s$ G4 P( d9 m# ]C. i*m+j-1! s6 E1 f( s( F
D. i*m+j+19 N) Y% b- H2 Z) R: i% Z! w( ]
满分:5 分& O' h& v. @+ I- t5 K
2. 以下不正确的定义语句是( )。
V3 B3 K8 \4 Q& RA. double x[5]={2.0,4,0,6,0,8,0,10.0};5 [7 }7 r) F* E5 x
B. int y[5]={0,1,3,5,7,9};- F- x) G. K) r5 c6 ^
C. char c1[]={'1','2','3','4','5'};
; `4 g& W& b1 Z$ r2 Y4 T8 J5 gD. char c2[]={'\x10','\xa','\x8'};", y% M) v$ u9 q( V, H, B
满分:5 分" k* i, F* B* F$ s# [5 J7 {
3. 若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。& l- |5 l6 M& J% s2 G" m/ n7 y
A. 数组a中的每个元素都可得到初值0
0 P# [$ @ w: p+ U' g% o9 D$ l/ eB. 二维数组a的第1维大小为12 V/ K) K& f, c
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
$ j5 p8 q) V2 r7 E, Q; |D. 只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0+ Q+ M9 `" e2 w8 ?$ r' F% e% o
满分:5 分
; g: v' k T: @" {% E" k4. 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。- V% O. H4 l' v
A. 2" |7 Q x, Y# G! q* F) D3 y# b( L: \
B. 36 e! E4 M8 ~' S9 Q8 f! U4 L# \
C. 4
9 n$ M7 @/ m) H5 t. `D. 无确定值( ?9 T* I; H) {7 v
满分:5 分9 j. J9 ?% |5 ]5 P, n
5. 判断字符串a和b是否相等,应当使用( )。% v, N/ h/ E9 @( S1 c
A. if(a==b)" ?2 T! L& N! H, I
B. if(a=b)
+ p* z; J4 Y& g: ^6 O. yC. if(strcpy(a,b))0 }! J8 F$ m b$ E7 u0 W
D. if(strcmp(a,b))"
, q& I# i% i% z7 E7 L 满分:5 分
1 _( w; C0 y" J3 R9 i% x* K6. 以下能对二维数组a进行正确初始化的语句是( )。) e ]4 o5 }& n+ m% f8 c: S
A. int a[2][]={{1,0,1},{5,2,3}};
: i1 v2 L2 w# e7 l3 I) v2 QB. int a[][3]={{1,2,3},{4,5,6}};
: L# Z2 F; m; b' n s2 IC. int a[2][4]={{1,2,3},{4,5},{6}}; v& n" Y. f% x2 {* ~4 p
D. int a[][3]={{1,0,1},{},{1,1}};"% y+ a7 C- W" l
满分:5 分 I. M4 r0 a5 I- B4 m
7. 若使用一维数组名作函数实参,则以下正确的说法是( )。8 e# S7 s( A( f3 X+ n
A. 必须在主调函数中说明此数组的大小6 E# i& S- `# H) r7 i
B. 实参数组类型与形参数组类型可以不匹配
* F4 D2 f; A0 q- z0 M' y8 wC. 在被调函数中,不需要考虑形参数组的大小9 y1 ]9 j @( ^9 A3 l
D. 实参数组名与形参数组名必须一致5 {5 y' j0 m, t. h' T4 L
满分:5 分* K1 N3 L) k; V9 u
8. 以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。
! \4 Z# i5 v! U4 F6 }A. int x=y=z=5;
/ Z9 \! ~1 h9 z8 RB. int x,y,z=5;2 ^7 f) h! Y: y4 y7 n
C. int x=5,y=5,z=5;1 l$ J/ h$ \! E4 O; p
D. x=5,y=5,z=5;"3 p7 H" b6 l/ o' f p
满分:5 分. p5 d. Q0 E8 c
9. 以下对指针变量的操作中,不正确的是( )。
1 W Q3 A; I) O& H, k1 HA. int p, *q; q=&p;
1 C" t/ b" j: k: KB. int *p, *q; q=p=NULL;) K7 k7 _) X% u1 m9 _% l3 S7 d
C. int a=5, *p; *p=a;
6 n! D& {! y5 c9 e! E2 z8 h1 ^1 ~D. int a=5, *p=&a, *q=&a; *p=*q;"
4 |' v; C$ B& }! M/ C 满分:5 分, z3 ?/ W5 l7 P) ?
10. 以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }
: g6 [! S; m2 p: R. eA. -17 o0 _! B' K% P! |2 w$ |
B. 0
( G* q4 [9 h3 d! F2 c) sC. 1
v. \+ s& Y: S' M. BD. 2
8 a8 X3 a# Z3 N& M 满分:5 分
, N" n" ]8 `6 w( e7 V6 V" z6 f Z- N6 _11. 以下对二维数组a的正确说明是( )。
" O% Q/ v* x# q# e* sA. int a[3][];: G' d& _5 M9 l* u; ?
B. float a(3,4);
4 g0 s2 v+ F3 n. l3 Z% |: ^7 G/ G% lC. double a[1][4]
: q' d0 G( @1 AD. float a(3)(4);
# E* ~. C: e4 j7 V! N 满分:5 分
1 D( }, X H/ I5 P6 w12. 若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
4 g/ ~, j4 ]0 f4 U' [8 GA. *(a+i); B7 E. G( J3 q
B. a[p-a+i]; L4 r( o1 n! l: j
C. p+i
* n( j# ^# Z) [ YD. *(&a[i])$ U% K' `8 l, s- [& d9 c
满分:5 分
0 K* A* X2 q3 T2 g8 d9 E13. 若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);
$ \7 F. X+ W% K% L* t! e# AA. a=10,b=15,c=10a=10,b=5,c=10
- B5 w' |0 I- S* j8 h0 wB. a=10,b=10,c=10a=10,b=5,c=102 k- X* T& w0 S9 z" p5 s1 I
C. a=10,b=10,c=10a=10,b=5,c=15# B; [, B j9 s4 u
D. a=10,b=10,c=10a=10,b=5,c=5
' q; K }" V( `& C) x1 Z% j! o 满分:5 分4 W* M- s* a' P
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);}5 @2 i& O+ C% m5 b+ @
A. d=10
3 K" n2 r E* l1 L5 EB. d=15
' B3 v# ]/ n2 VC. d=20
/ h2 o6 U: P0 c4 j1 XD. d=25( l |0 V$ j8 N
满分:5 分 ^4 H: ?) r( x% a' I0 C( [4 @" L* K
15. 在C语言中,整数-8在内存中的存储形式是( )。6 ^. W" E- |& ^; a! _7 q
A. 1111 1111 1111 1000. ?( x6 Z5 i$ \) n4 I3 D. r
B. 1000 0000 0000 10009 W* a$ A7 B. w" w, S
C. 0000 0000 0000 1000
& o# s" Q6 L0 X9 p! I" h$ ~D. 1111 1111 1111 0111
8 y3 V% N! y* h3 I$ V% {: i 满分:5 分+ t. S! q( |9 R, @
16. 已知ch是字符型变量,则不正确的赋值语句是( )。- e0 F; G- t4 b3 l
A. ch=5+9;" j% O% n% M9 u0 j0 o
B. ch='\0';
( D8 ~: Y: u3 L9 S) i$ YC. ch='7'+'9';: K% _# l, M# _- w
D. ch='a+b';
9 f4 C4 _2 Y: d+ J$ a 满分:5 分4 y: S5 |, V) q0 h- C+ Z+ ]
17. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}; h: e& a( H/ l" p
A. 1
" U" Z1 A0 S+ l5 e8 KB. 2
" Y2 K7 u6 j7 VC. 3
1 e; o3 V- U* uD. 41 p# B- @! N4 y% ]" ^& h
满分:5 分; U* a4 e( O3 c9 S# h8 b" T& d) Z/ M
18. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
: C% R0 \9 s5 i$ Z; @A. i=x[1][1] y9 i; D. r# {/ M
B. i=*(*(x+1))
" [; f2 T t' V- `$ ^' GC. i=*(*(x+1)+1)
2 G I! F% ^! w% K+ gD. i=*(x[1]+1)
8 d2 o; ^, a7 W8 w* v; }* g 满分:5 分' z: ]0 D' x8 H t
19. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
1 [0 l+ k- [# |0 l) R* a- gA. 地址传递/ w9 U) i; _% i- G$ b* _
B. 单向值传递
- f/ ~- o( P% V2 n% XC. 由实参传给形参,再由形参传回实参4 Z8 z# D7 ]6 ]( z
D. 由用户指定传递方式/ ~1 R7 x7 B* ?' @' c
满分:5 分
; K* x: T. Z. U! `20. 下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);, y$ N5 {3 R% X" Z# f
A. 23
( b3 m0 d& j. D' xB. 173 t/ F; m) k! @# P5 a5 r' m
C. 18
8 ?4 H6 E, c$ G' L" X: E+ RD. 24
+ C8 o5 R) c) n) ? 满分:5 分 Y h( x# i# K: N9 V% \; V; W$ c
1 _9 @ r; x, e5 e) D
|
|