|
一、单选题(共 20 道试题,共 100 分。)V 1. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。(假设a[0][0]位于数组的第1个位置上)* |3 J- M- R. D6 f; p
A. i*m+j5 ]6 P1 S$ g, M0 h R/ k
B. j*m+i( V4 \- h9 A2 z* W0 D
C. i*m+j-1
& ]; n$ }( ?6 ]0 nD. i*m+j+1
: u# b2 I1 E" s; ?3 c7 G" X 满分:5 分
7 G, s7 Z3 ^- Z' Y# T- _" t; z2. 以下不正确的定义语句是( )。
6 t5 q# q& P% f% A# o! T7 wA. double x[5]={2.0,4,0,6,0,8,0,10.0};2 m: A$ L+ C+ m/ B8 d4 c
B. int y[5]={0,1,3,5,7,9};* T& j% j5 ?3 a" d+ ^$ i: D
C. char c1[]={'1','2','3','4','5'};
7 W3 M1 I* u3 F; E" P3 r1 WD. char c2[]={'\x10','\xa','\x8'};"
: ?) ~1 I" N1 j( ^- T9 { 满分:5 分
% |- u9 N+ X- N+ Q9 f3. 若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。
" |& i8 D2 U( ~3 x6 o2 sA. 数组a中的每个元素都可得到初值0
* T8 O# E0 l' m+ k; f: zB. 二维数组a的第1维大小为1
/ l: ~+ z% X5 L& g8 j& WC. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1/ ~) ?' @) @8 G# t, M5 C
D. 只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
3 T! r8 N" _, o' N 满分:5 分8 M6 Z, H5 h2 v6 y7 _
4. 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。) q- m7 H2 H T& \* [9 @- K
A. 20 h, g, H0 z7 b/ {
B. 3
6 f3 w; n0 Y- n: V0 B% Z- cC. 4# }% M3 s7 U3 t. \. b
D. 无确定值" ~/ ^ f6 A! G: M
满分:5 分
& n# N% K% t# M% q* K, ^) b& N7 G) y5. 判断字符串a和b是否相等,应当使用( )。# v9 U" A) F0 U& Y
A. if(a==b)! `/ `. @/ J4 L% b$ Z$ e
B. if(a=b)
4 x; }& H& T3 x t1 dC. if(strcpy(a,b))/ A& A, t0 G* g7 x9 n
D. if(strcmp(a,b))"
1 O! t8 k# F5 F 满分:5 分
" {3 C$ H. q* I4 Z" X9 R6. 以下能对二维数组a进行正确初始化的语句是( )。
5 D7 E2 ?' X8 Q6 Q3 v+ @A. int a[2][]={{1,0,1},{5,2,3}};* _0 J. J3 b. f/ v3 ^ j8 V8 ^( C
B. int a[][3]={{1,2,3},{4,5,6}};; M5 }; k' s# X1 x2 B7 P
C. int a[2][4]={{1,2,3},{4,5},{6}};: t# c$ v) h/ R7 P
D. int a[][3]={{1,0,1},{},{1,1}};"
. u& h' j0 j0 c 满分:5 分
& y9 K! o; f: |7. 若使用一维数组名作函数实参,则以下正确的说法是( )。
& w+ R* L. i, O6 o! l% [2 T% _2 mA. 必须在主调函数中说明此数组的大小) _9 L X) O4 _) p+ \$ ?
B. 实参数组类型与形参数组类型可以不匹配0 ?% r& P0 r0 a
C. 在被调函数中,不需要考虑形参数组的大小; f Q7 }! i" m
D. 实参数组名与形参数组名必须一致. d/ t4 B2 r; n1 ]1 g& c2 i
满分:5 分
5 F/ Y/ b% [+ l* d8. 以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。
0 S) ^+ D c* A+ i9 P+ eA. int x=y=z=5;
; V. \) `# X! f9 u; Q: mB. int x,y,z=5;
7 r9 a0 W8 r6 J8 ~( x. ~1 }: \C. int x=5,y=5,z=5;) \( w( S! x; c! T2 |
D. x=5,y=5,z=5;"3 c) I/ f3 M! }+ A( r
满分:5 分* C7 A6 i2 ?0 l9 c" N2 z
9. 以下对指针变量的操作中,不正确的是( )。# ^& ^) J9 F+ h* f4 ~
A. int p, *q; q=&p;4 q' B# L2 {! A3 ?' l" Y
B. int *p, *q; q=p=NULL;( v" s. ], I" f+ u, q
C. int a=5, *p; *p=a;2 ~: \5 A2 ^7 e; n: a
D. int a=5, *p=&a, *q=&a; *p=*q;"
- l/ ?5 g' F' P9 [9 g3 u 满分:5 分
y0 J; j( M5 q/ r- W* i+ x10. 以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }- h) R% Y w3 X" y0 K# y% v
A. -1, B9 l% v9 ?- [$ v8 A& S
B. 0
y3 v# x# g) B* W6 eC. 1
2 W2 V1 r1 Q! o% _" kD. 21 [( d O( [0 G' C" P- w- Z2 d& G- L. b
满分:5 分
0 ~" \+ O' @) G. J m6 H8 B2 @11. 以下对二维数组a的正确说明是( )。
3 E9 }# c2 F7 ]" z1 O- HA. int a[3][];' J# M+ c9 {# n
B. float a(3,4);' L2 }; U7 v, j9 \- _7 W
C. double a[1][4]6 N4 V8 ^, A6 t4 U) @
D. float a(3)(4);, H* z5 y( Q0 i8 M$ D9 X6 ~6 P
满分:5 分" k" r B% s9 S1 M+ ]3 F
12. 若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
# }9 U- o! v, R4 X. bA. *(a+i)" ~, O, J W6 S9 @8 A5 @
B. a[p-a+i]2 I4 D3 s) g6 Y _, Z
C. p+i
$ G9 u# {( h& _# `. \& s- TD. *(&a[i])" r9 ^# N" }5 L
满分:5 分
. b2 J2 L# C, n" x13. 若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);
& [& F$ R1 U3 _# k: I! gA. a=10,b=15,c=10a=10,b=5,c=10
6 U0 i# r1 a) U. RB. a=10,b=10,c=10a=10,b=5,c=10# R! z! g) N6 Q( w
C. a=10,b=10,c=10a=10,b=5,c=15# a" H; P3 @/ L5 F8 U k$ j; z
D. a=10,b=10,c=10a=10,b=5,c=5
8 C- F+ ]; E7 W 满分:5 分: D \! Z. y. r( R% O
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);}) ]( z$ j7 z" V: w+ E$ ^/ U& }
A. d=10
; P: F( n5 F6 R: H8 rB. d=15( h- L2 J! w, ]
C. d=20
) X$ W& Z/ h. J" {/ c+ ~7 z4 ZD. d=25
2 C9 v) \: q; g& l. t 满分:5 分0 S$ I; j' p3 B+ X% {8 M
15. 在C语言中,整数-8在内存中的存储形式是( )。
3 ]% h$ J' ^3 kA. 1111 1111 1111 1000) L9 Z+ u ^6 Y& V0 _+ M
B. 1000 0000 0000 1000
) N9 I( m, w' AC. 0000 0000 0000 10009 x, [) l& R1 j0 \9 _, t# d
D. 1111 1111 1111 0111
A( [& g+ p, B+ T, b4 D; ` 满分:5 分
* a. W( _# i3 c) B16. 已知ch是字符型变量,则不正确的赋值语句是( )。% E+ U. r8 S% ^' S X
A. ch=5+9;
8 \; s3 {; r0 M& G2 C6 }B. ch='\0';. }' X$ [8 j' h( u, @% ]$ I
C. ch='7'+'9';7 h$ d3 ]( c2 H. ]
D. ch='a+b';
* \+ e( l: O8 x3 ~1 O# f2 u1 M 满分:5 分0 ?! _0 T w5 ?, D, Y, s
17. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}" s$ ^: K' y V
A. 1 ~/ W+ |" Q1 Y) ~/ H& {# |) T
B. 2
: g. Y+ Z+ R- A" p' PC. 3
6 R; H0 @8 M7 zD. 4
3 N! s0 o% G* x+ }, D3 |$ k 满分:5 分0 C, G$ e& N' M" \
18. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。3 v( F0 u; ^' V3 A. n! r
A. i=x[1][1]
- r Z; E- |9 |6 K& h, {B. i=*(*(x+1)) ?$ Z- ^2 _: {' O- A% q/ J
C. i=*(*(x+1)+1)3 }- }( g% e3 f6 U( K7 ?8 o G8 {! P; S
D. i=*(x[1]+1)) t+ j, ~9 e, e5 y8 I
满分:5 分
5 x- b4 D% J% g8 f" o" ?! M19. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
0 d( Q+ R, v# K8 TA. 地址传递. A- P8 D! w2 G" ^8 r
B. 单向值传递
0 u% M+ E! Q9 t5 H9 W' tC. 由实参传给形参,再由形参传回实参2 b8 \! i4 l) C( A9 v7 _1 \# C
D. 由用户指定传递方式
7 ]8 Y2 @$ U0 G+ R5 \ 满分:5 分6 M# u Q4 m' t- w
20. 下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);" g5 M) [# z( N% f" l: h: h, X2 L, C
A. 23
5 S: R5 X$ a8 P: U, pB. 178 Z, \& v% X% U M n$ k
C. 18
8 y& w9 D# T0 H. v6 W# W5 G2 bD. 24
V# x1 q/ N& x. T2 ~9 i 满分:5 分 # G% y( l2 I F' u* ?" A
5 u# |9 y" y; C2 j( } |
|