|
一、单选题(共 20 道试题,共 100 分。)V 1. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。(假设a[0][0]位于数组的第1个位置上)% F/ C: G8 i( l
A. i*m+j1 c5 W% O. r2 e: W
B. j*m+i C' a* ^1 \) L* z* ~& [ o
C. i*m+j-1& ~+ Q& m# K5 T: ^; _$ {& C* o! W3 T* [2 N
D. i*m+j+12 {3 n H: W. l# D- I/ u: U, q& b
满分:5 分
& b9 ~3 v! ^+ H9 H/ X2. 以下不正确的定义语句是( )。' x4 O+ P/ a9 ?/ r& Z
A. double x[5]={2.0,4,0,6,0,8,0,10.0};; j% m8 w$ u, s) o5 I$ Q+ @: }
B. int y[5]={0,1,3,5,7,9};
5 B9 Z3 @; B$ J( y2 L1 W: kC. char c1[]={'1','2','3','4','5'};) G1 a$ O. g9 @7 |# ~# p
D. char c2[]={'\x10','\xa','\x8'};"
+ ~' R1 d$ P2 M H8 `1 H 满分:5 分
: N! `. N r, a3. 若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。8 Y+ A' t! b- o' q
A. 数组a中的每个元素都可得到初值0# U1 e3 p- X. k
B. 二维数组a的第1维大小为1* T* L* f+ T0 i
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为11 v* w, J" e; U) V1 a' M' R
D. 只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
& V! | m* L# E' `6 y; L( h, K 满分:5 分/ F; P3 ]& b2 D0 `
4. 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。
# v! v0 M4 \1 L! T$ _$ [& s, t/ dA. 2" z- _8 m4 V: }6 \
B. 3
( Q- ~0 b1 m9 u7 A1 L/ CC. 42 v; m# }5 O8 `" c5 J+ z- d
D. 无确定值
+ D" V; y5 x+ ~7 E 满分:5 分& j3 G N- J- @- ]
5. 判断字符串a和b是否相等,应当使用( )。; M8 g, Y+ R, L$ Q4 D% {0 q: y5 b
A. if(a==b)
4 v6 I- Q: K$ X* I) I* ], D, gB. if(a=b)
/ Y4 ]7 \- z/ [8 X- UC. if(strcpy(a,b))' T7 b' |! I' K' E: u! v
D. if(strcmp(a,b))"7 r+ G+ R/ o! D0 p& \
满分:5 分
# e) Z2 D0 G9 Y" H* g5 J6. 以下能对二维数组a进行正确初始化的语句是( )。1 a8 B5 a( C; {; }/ |$ g- x5 M
A. int a[2][]={{1,0,1},{5,2,3}};
$ e" M8 D( r( l; y% X9 @8 E# i! f) qB. int a[][3]={{1,2,3},{4,5,6}};
) A6 b/ I a5 I0 J% [/ I2 eC. int a[2][4]={{1,2,3},{4,5},{6}};* P' }0 F2 u& N
D. int a[][3]={{1,0,1},{},{1,1}};"- \9 X/ p+ x. V9 a" `+ h
满分:5 分
9 u7 ]! o @4 t a$ |9 _7. 若使用一维数组名作函数实参,则以下正确的说法是( )。; |9 p$ X3 Z2 v; E0 r
A. 必须在主调函数中说明此数组的大小* Q2 _) N& v$ t) ^( _& e
B. 实参数组类型与形参数组类型可以不匹配
9 ^: s9 z# W6 k! ?C. 在被调函数中,不需要考虑形参数组的大小
( m1 p2 w. S* R! M9 `8 g0 o+ gD. 实参数组名与形参数组名必须一致$ ^' n3 @& d) ~9 E* L" S9 D
满分:5 分: _) N, T9 L' u+ U
8. 以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。' I; h5 A! U( O% Y
A. int x=y=z=5;# V5 P& D: Z$ R
B. int x,y,z=5;
* I4 k% \- [: l0 x4 ~$ M `3 dC. int x=5,y=5,z=5;4 h& b" B) v- w$ \5 H9 z9 `) Q
D. x=5,y=5,z=5;"8 D& ~/ ~! y W1 y& m9 i7 U3 m, O$ `+ t
满分:5 分* T7 U! b2 a) n O
9. 以下对指针变量的操作中,不正确的是( )。
' W( J- D4 W% u- o& eA. int p, *q; q=&p;
- i7 Z2 ]2 `' E- L9 @ j, ]B. int *p, *q; q=p=NULL;; u7 ~! r! p* E) d; ^! I/ D- [
C. int a=5, *p; *p=a;$ V# |! a) f' D& E0 ?
D. int a=5, *p=&a, *q=&a; *p=*q;"
. ^; L9 ^' N' |3 b6 Q2 \4 o9 p2 S 满分:5 分
4 S( s" Z- Z; d! T' s10. 以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }
4 M m% E; v1 EA. -1
+ f6 g& u% q+ T7 X: [2 G U7 z! m; HB. 05 @/ ~) h' o, l3 B0 v) p# Y* D& ^
C. 14 d! }4 E- v m# e3 @' T, t
D. 2+ h' G; D" ?1 G$ p+ o* g' M7 j
满分:5 分9 g6 B' L$ s. t3 h& t+ a. {
11. 以下对二维数组a的正确说明是( )。" ~3 H7 L9 K# n) g; }4 |
A. int a[3][];* e s! e, k# N/ O' S# F
B. float a(3,4);. P& A) w, G) H5 s8 Z* f
C. double a[1][4]8 x+ E6 q0 t, [; ^
D. float a(3)(4);5 L$ Y7 g4 K, z# ?8 R- z: ~
满分:5 分3 M7 R3 a: b5 [$ b1 J
12. 若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;* H/ a' k3 L4 L
A. *(a+i)6 t9 b6 v+ ?, d: r u% E" ^
B. a[p-a+i]
$ {2 F+ k4 P8 i6 Q- }9 n) EC. p+i; w" n+ b; d! S5 Y) i5 r( V3 e
D. *(&a[i])7 l* d# i3 i9 u" v: F: z; c: R' Z& V
满分:5 分) P' I, w4 m4 @: {/ j5 _3 w- N
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);2 F" o9 G* ^3 Z: _0 ]
A. a=10,b=15,c=10a=10,b=5,c=10
, R3 R. z) q3 [, E5 S# E: b% L( ]3 [B. a=10,b=10,c=10a=10,b=5,c=10( T" Z; o' ?6 b( |2 K! R
C. a=10,b=10,c=10a=10,b=5,c=15# k& |; h! C. r4 H7 h
D. a=10,b=10,c=10a=10,b=5,c=5) K& m" e* @3 J' T6 T9 P* g
满分:5 分
3 |" d6 ?+ Q6 [% o* V14. 以下程序的输出结果是( )。 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 P# A+ `% ^4 C5 v# B* B' gA. d=10. |1 R+ J& t3 a0 x D* h% i
B. d=15
1 a: j! y7 X8 w2 BC. d=20' ]; A: z9 `" x' w3 B+ h2 ^
D. d=25
7 E; M' d; W8 j$ _ 满分:5 分
6 D4 d# c8 q% D7 Z1 g15. 在C语言中,整数-8在内存中的存储形式是( )。4 C) ^5 M U' G3 {
A. 1111 1111 1111 1000 P ?) ^2 b% g/ R! P
B. 1000 0000 0000 1000 K) W, l5 n4 a# [4 e5 r
C. 0000 0000 0000 1000
& ?2 [2 ]3 W' b9 j: a) u' ^D. 1111 1111 1111 0111
+ x3 o) m1 S g- ^2 S+ }( o 满分:5 分# M7 }3 n. N( X3 U
16. 已知ch是字符型变量,则不正确的赋值语句是( )。# Z+ s. \7 Y7 G/ P" F. G
A. ch=5+9;7 W) b: G0 `5 X" O2 r
B. ch='\0';
8 e4 c0 P0 U9 v: O# f* ^' XC. ch='7'+'9';0 d% Y6 i: C" y* t4 E
D. ch='a+b';& z5 a3 S6 h3 ~/ A$ m8 E. r
满分:5 分1 }/ h1 E& S0 b( G- k" S
17. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}1 ? L5 C0 w. _! M
A. 1+ r5 {/ K; x3 w( B( U4 L
B. 2
( @* E3 r: U; ~* Z" e! p% QC. 3
( @, T A# v2 b3 C& G. t3 ?1 q8 ED. 4 \7 A! i. W1 u7 w. M
满分:5 分, G; Y j* q7 [3 L* g
18. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。0 T! ^ l' v1 R2 g( l- `
A. i=x[1][1]- p) ^9 v) @! q) V- K
B. i=*(*(x+1))5 z1 l$ M( O: P
C. i=*(*(x+1)+1)+ j# a4 f7 o& I
D. i=*(x[1]+1)) E% W. t8 l( m) Y0 ?3 M% Q
满分:5 分
, I1 z7 V5 ^+ Y) y$ T' o. q19. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
% p( {; Z5 S; N) A9 _. N; [4 OA. 地址传递3 H( F5 s4 Y* [9 j) H, `5 @0 S
B. 单向值传递
W s9 n3 e" J2 l. ?C. 由实参传给形参,再由形参传回实参! E7 i% x. x0 f/ B0 n0 O
D. 由用户指定传递方式
) L6 N( a- f7 z1 s4 q3 [ 满分:5 分. y; [2 h+ X7 D0 @
20. 下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);$ \3 B1 _$ n) v* P# |% F
A. 23
3 A, c" t. j& B$ N7 g/ JB. 17
. n* u* p: ` w A* _C. 18
4 |8 z1 e/ G. c4 cD. 24
. Z! p6 }1 f' s) P2 G# |9 k 满分:5 分 6 [4 l% |1 h4 O
& [9 I( ?1 }# t9 g5 a
|
|