|
一、单选题(共 20 道试题,共 100 分。)V 1. 若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是( )。" v9 z% l% | C( U4 y3 S# V. r5 `& h
A. *pc[0]代表的是字符串"aaa
: Q7 y- c0 h) c3 cB. *pc[0]代表的是字符'a'
* l3 {: N9 ?8 r; u y, Q4 D, b3 AC. pc[0]代表的是字符串"aaa"
- b* o+ w* f3 u2 R3 pD. pc[0]代表的是字符'a'
! D4 H8 q% d" q! `; S+ I 满分:5 分
0 u+ B* w$ u! u: F2. 以下判断正确的是( )。& l7 ^1 H8 S# E/ x1 S0 k) l7 E& k* y
A. char *s="string"; 等价于char *s; *s="string";! u$ J$ H* Z: I, X4 q3 e3 x
B. char str[10]={"string"}; 等价于char str[10]; str={"string"};3 h6 W# N2 e& B# q. i* ]
C. char *s="string"; 等价于char *s; s="string";
' E" u' |# A3 VD. char str[10]={"string"}; 等价于char str[10]; *str={"strint"};": e1 C2 d6 x+ G& P2 S- A
满分:5 分. @, g: A4 ?' S3 l" Y; u
3. 若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。8 `% d4 F: u) c* r
A. *(a+1)+ _" Y9 G$ G) ]3 K* u* c
B. *(a[1]+2): z7 Y2 J6 ]7 w" x$ }$ Z5 n# S" J
C. a[1]+3
$ E! T0 L7 w/ uD. a[0][0]5 Z/ \, y9 f# y/ B
满分:5 分
8 |( d. H0 G+ g& U0 i3 R) m4. C语言结构体类型变量在程序执行期间( )。8 |& q* z, B5 I3 O7 S
A. 所有成员一直驻留在内存中
# \6 s/ n! ?; _9 C2 |- e( gB. 只有一个成员驻留在内存中
) ?) `2 x2 F& |7 a+ O* t0 @C. 部分成员驻留在内存中
' b3 B1 L! W0 T4 v+ UD. 没有成员驻留在内存中- n/ d2 `' c% G8 ?
满分:5 分6 q4 i) \1 D9 z8 Z' D1 O$ n
5. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}
7 l5 Z/ f4 l2 zA. 1! ^, Y) A7 d- s @. Q+ z
B. 2
6 o: K( k$ b' _4 L# KC. 3
( J7 M' Y6 y j) R XD. 4& y/ A/ q2 U4 M( [6 i% |( L: W; w
满分:5 分) b0 |0 h+ }/ o% F
6. 以下正确的描述是( )。* K# l- P& t$ B, z( k
A. 定义函数时,形参的类型说明可以放在函数体内
8 p( q& v3 y. c U% l m: aB. return后面的值不能为表达式' V2 k# U( i: N& [6 V
C. 如果函数值的类型与返回值类型不一致,以函数值类型为准' G2 F7 P$ R/ F0 j
D. 如果实参与形参的类型不一致,以实参类型为准
2 f8 k e) E# V, ], V 满分:5 分
8 ]: ~/ y, d; y \3 b. A5 L% G7. 以下为一维整型数组a的正确说明是( )。
- T0 `0 d6 f( }1 `! Z4 b5 pA. int a(10);$ l9 c7 f/ a" B2 `8 G/ [* B* `
B. int n=10,a[n];
! I7 K% U5 j5 J' p! `; w/ wC. int n; scanf("%d",&n); int a[n];8 Q0 v9 {' |5 R
D. #define SIZE 10;int a[SIZE];8 n% Q- ]9 {3 ~( Z4 q `
满分:5 分
! B+ c: [0 b- w) \7 J# `# s% A( }8. 执行以下程序后,m的值是( )。 #define MIN(x, y) (x)<(y) ? (x) : (y) main( ) { int i=12, j=8, m; m=10*MIN(i, j); printf("%d\n", m); }: W$ h1 _6 F5 _2 s
A. 1205 t- j k/ G. W( ]
B. 80
! Z4 C7 o$ x5 C4 Z1 B8 CC. 12
: ^ G4 O+ ]1 b% VD. 84 A; Q# W# ]' ^% x; `, n
满分:5 分9 C% ?8 s2 `5 i6 @( a
9. 以下正确的函数形式是( )。- a/ J8 _: [# j4 \# s5 _! y; f
A. double fun1(int x, int y) { z=x+y; return z; }
$ d) ?6 L8 p1 L7 HB. fun1(int x, y){ int z;return z; }" x6 g/ E5 B3 W" }& h, M) s2 q C' i
C. fun1(x, y) { int x, y; double z;z=x+y;return z; }
% m/ w4 _ ]- u: K# K4 ID. double fun1(int x, int y){ double z;z=x+y; return z; }"7 X4 z4 ]# W6 R, Q# C6 k
满分:5 分
5 L& h; C5 q9 y/ p10. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
' G3 w" G* ~! S5 g; U& {A. i=x[1][1], ]! `( { C8 X9 L
B. i=*(*(x+1))
9 o9 E2 F R6 d2 j0 D5 XC. i=*(*(x+1)+1)
+ j/ q7 L3 w3 L/ lD. i=*(x[1]+1)
. }. n! O9 ^4 ]8 } 满分:5 分
. v, N* p1 h% q9 ?" W11. 以下程序运行后,输出结果是( )。 #define ADD(x) x+x main( ) { int m=1, n=2, s=3; s*=ADD(m+n); printf("s=%d\n", s); }( R, v/ k [, L: g+ J4 L
A. s=8
0 ?. g; K* W1 g0 I2 ^B. s=9
: x' X. |/ W0 L* T7 `& DC. s=6/ ]# ]2 B" @1 `4 Z: h
D. s=180 O, j! X) `! T& e9 ?4 ]
满分:5 分7 n# ?0 F4 y8 O
12. 以下有关宏替换的叙述不正确的是( )。
* A: _0 a) J& d/ F& zA. 宏名不具有类型
, D! s" U5 _; o/ HB. 宏名必须用大写字母表示, \; X2 Y- B- u$ O8 a% [; i* a
C. 宏替换只是字符替换3 Z e" e- G6 {" K7 T0 @* k7 T" F
D. 宏替换不占用运行时间
8 }' O5 \3 g3 ` 满分:5 分% k k& f, @* `7 ^; M- m; @- d; {
13. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。& S' `/ i5 F/ E2 T) w' q' Z q
A. 该变量只在该复合语句中有效 Y7 T. E: g8 N% |' D* n' T$ j8 s r* F, T
B. 该变量在该函数中有效: D+ [1 z7 V: L3 g* ?+ ~
C. 该变量在本程序范围内有效" Y, G7 r, S% a5 c2 Z4 h
D. 该变量为非法变量
( y4 Q/ F' c( }" ` 满分:5 分, r" i; } b( B: l0 S7 o
14. 若有说明:int a[3][4];则数组a中各元素( )。
: ?- S. E+ ]' X9 M9 w3 m( n* I" L1 aA. 可在程序的运行阶段得到初值0
1 B+ {" b' q: JB. 可在程序的编译阶段得到初值0' ?+ p$ J: J) r
C. 不能得到确定的初值7 _% N9 O* @; s5 v& t* J
D. 可在程序的编译或运行阶段得到初值0
2 H5 W5 b8 C$ x 满分:5 分6 d& L' Y- y# s$ D( f0 x D& W
15. 以下对C语言中共用体类型数据的叙述正确的是( )。- h$ {1 c7 E, C: R
A. 可以对共用体变量名直接赋值( P; n+ _9 Y, d! c% B! J
B. 一个共用体变量中可以同时存放其所有成员
7 Y" V- Z3 J0 mC. 一个共用体变量中不能同时存放其所有成员) K0 x0 E. E& ^; m2 m
D. 共用体类型定义中不能出现结构体类型的成员$ O; `% h! U0 L& O4 ~
满分:5 分
1 W4 W, K0 A O: G6 l7 \9 M. x S16. 设有一段程序: int *var,a; a=100;var=&a;a=*var+10; 执行上面程序段后a的值为( )。/ {& N) R0 p" J0 k( i
A. 120$ j' h- y- {; }4 I* c
B. 110
0 J, w, L# D$ [$ i) uC. 100; ] F0 u9 {7 t. F/ n
D. 90' ^* f9 q) T% C! r
满分:5 分1 l: z+ C" s; A8 p. i! m( K$ n) s3 J
17. 下面程序段的运行结果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]);
7 ?4 t. s. ]$ b% c. `A. 空格
6 g" L4 L$ D+ G9 Y) u2 `B. \0
3 l$ j' w, ~- r; J- q/ p. |C. e% v: c+ l3 r8 m* Q0 S
D. f* p/ ?6 s1 h+ m0 F8 ^7 o" ?
满分:5 分, o8 `2 B& c. G p& _* `2 Z3 |- w
18. 设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是( )。 scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a, b, c, d);, I2 g0 K- u" ]0 w* S, C: N% a
A. 1234123121<回车>
" M) b0 W. \! y9 WB. 1234123412341234<回车>
1 C3 E8 b% F2 C7 I, y/ t' |# wC. 1234+1234+1234+1234<回车>
! V/ Y( y( E! f# O4 U6 iD. 1234+123+12+1<回车>
- O1 c7 F9 c$ Q3 s) w) G! N 满分:5 分; ?9 {: N- A1 b2 {9 A. H, m1 X4 M
19. 以下程序的输出结果是( )。 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);}
! w, M( [' q. m& D" V; G6 e# NA. d=109 [+ J, r( n1 g- k3 B0 r
B. d=15% r" \ t, t) ~. Z
C. d=20
. x2 l8 H: J5 f# w7 `8 I4 S( aD. d=25; y% }9 X9 ?. s
满分:5 分
/ v* E! L: Z- w7 Z( ]) @20. 在C语言中,错误的int类型的常数是( )。6 j) u6 U! U' Z2 p' a/ v
A. 32768% ]1 M* o( e, r4 c& V7 \$ {/ E
B. 0
; C+ O. p$ g, r2 q7 KC. 37
( g, K) g1 c8 K" c3 [D. 0xAF
# Z/ u8 |* r8 R& k& d7 L1 r 满分:5 分
- H2 _: X* \& P2 S1 C" Q, Q4 B* P6 j }
|
|