|
11春学期《高级语言程序设计》在线作业二: l$ Z8 p! j g. P/ i7 o' ~# L
一,单选题) `2 T/ [2 ` A' p2 ?7 l2 _+ t
1. 下面程序段的运行结果是( )。 char str[10]="output";printf("\"%s\"\n", str);
5 ^8 {3 s K: G, Z$ _2 D% nA. output
( p: J% v* W9 Y4 g) A4 xB. "output"
1 K: f R1 c1 a1 ]2 W! y8 p3 b2 OC. \"output\"$ W8 S8 U' l% H/ G% b5 E( \2 `
D. 编译出错
}2 G/ a) o" U- k: f2 v$ g5 R5 v7 c1 H$ l7 Q
2. 设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
$ C4 A" g3 I H% P( o8 p/ t+ y$ xA. p++;) s9 }7 s/ K' Y2 \5 u1 W: S" I
B. a--;, g8 j) j" c3 ?2 J) s- W; @* N& Z
C. b++;
( T/ N+ y. i, o0 }D. c--;: b6 s# M% c: C0 D& A# R
0 }8 d* a9 w! k, k3. 以下程序的运行结果是( )。 main( ) { int a=1, k; for (k=0; k<3; k++) printf("%4d", f1(a)); } f1(int x) { static int z=3, y=0; y++; z++; return(x+y+z); }7 y; Q# X4 p- d% m. t6 e
A. 6 8 10# f4 L& i. n+ K. D' [
B. 6 6 6
7 C$ L! z0 A3 ]$ R UC. 7 8 9
# B. D& v& r: O1 p& h9 ~D. 7 9 11& K# \+ c0 a6 }" _8 { Y& C
# T" A2 Q+ ?6 M
4. 判断字符串s1是否大于字符串s2,应当使用( )。
9 T; P" ~+ w3 @' V5 K; v- u* w- hA. if(s1>s2)
5 k5 b: U1 z4 `0 rB. if(strcmp(s1,s2))
" c! J) g' j! x1 t: g+ kC. if(strcmp(s2,s1)>0)9 w* [# Q( l8 \1 d, y$ C, ^
D. if(strcmp(s1,s2>0))"
# k; K8 D5 |, u9 G. ^3 A1 F
0 z. u) |, Z" y5 J2 C4 ~2 r1 P5. 若有说明:int a[3][4];则对a数组元素的非法引用是( )。
+ E) b: i/ R5 z6 \A. a[0][2*1]
7 B0 k0 V: \* y3 m/ IB. a[1][3]
- A7 E9 \* v+ {& M, J8 YC. a[4-2][0]! v7 z1 k6 \) n7 j
D. a[0][4]5 `5 d0 j! U7 ]- w/ e6 B
- K2 e( [/ o& g* r, B$ ^8 N
6. 若有定义:int x[10], *p=x;,则*(p+5)表示( )。
+ A/ ]& {2 ?, t0 X1 vA. 数组元素x[5]的地址. b$ w: F0 G) Z
B. 数组元素a[5]的值
* ^' _; L2 z# G" R( j* m6 v0 ~! EC. 数组元素a[6]的地址4 d0 W6 u- y4 a5 Z. w+ k
D. 数组元素a[6]的值
7 k6 O1 @+ ?" K: c1 U; ~6 z* G. V
7. 以下对指针变量的操作中,不正确的是( )。6 B$ t( n6 M7 [/ Q+ @/ y- W* U, `8 U( e, T
A. int p, *q; q=&p;
, p2 r: H( f5 a E+ h6 JB. int *p, *q; q=p=NULL;) w* a. j. B$ ]$ n' u3 |
C. int a=5, *p; *p=a;
$ [; V3 k% R. u r9 l! E0 j( XD. int a=5, *p=&a, *q=&a; *p=*q;"& m- K/ [/ C* {) O+ X7 u! X/ l
5 O( k/ x8 J# S+ X- c
8. 以下能正确读入字符串的程序段是( )。
. _' \4 X: w5 D) o* vA. char *p; scanf("%s", p);
9 e- Q8 [0 F7 d' VB. char str[10]; scanf("%s", &str);
" W5 O, Q$ F, _6 c' f5 Z9 SC. char str[10], *p; p=str; scanf("%s", p);
4 i/ ], @7 {, @D. char str[10], *p=str; scanf("%s", p[1]);"; V) K7 b* a7 I& Y; H
$ d: `# W/ N @& }5 ], u9. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}
: N9 F" _6 S! D5 c/ m1 F* aA. 1
3 M8 I4 |, L$ O+ K3 Q9 L/ b# ZB. 2
* |1 n* J) n1 [# l v. W7 KC. 3
2 ?- C: D# p/ {) s' ]D. 4( H4 E) W2 V. L" q4 d
2 Z" B* C$ p7 l, A" Q3 ~: i# S8 f' f10. 若二维数组a有m列,则在a[i][j]前的元素个数为( )。
|7 O s' p" T* o/ BA. j*m+i0 d6 y3 B0 r1 a% u' i
B. i*m+j% P, R/ _3 K8 S) m, n
C. i*m+j-1+ U7 N, R, I1 p4 ]3 j
D. i*m+j+16 Z7 ]9 _+ O. S- V! b" o
8 N# ?* B# y+ L$ Y11. 有两个字符数组a、b,则以下正确的输入语句是( )。5 X# R- g( f/ I- j4 _2 _8 H" L# B
A. gets(a,b);6 j. D# y& v9 A& R+ W: `
B. scanf("%s%s",a,b);
, G) c) E- _: P2 HC. scanf("%s%s",&a,&b);
2 K2 y; @' _. R; V" ^D. gets("a"),gets("b");"3 G4 L, G2 a3 h' m
+ }8 Y5 P2 e: l$ A7 ^
12. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。: P4 S9 S# P. E
A. i=x[1][1]
% N5 I6 m& u8 {; x8 N8 N" rB. i=*(*(x+1))
! f: h1 W$ Z, ?. N( @3 r; ^C. i=*(*(x+1)+1)# I$ J+ O) d% j' v) C: s
D. i=*(x[1]+1)! Z, w6 |. M4 w' j
' Z/ c' Z0 v' J: \* x- Z
13. 以下对二维数组a的正确说明是( )。+ M0 h* s! K) O* ^
A. int a[3][];
( Z' T; u) K& W x; E* dB. float a(3,4);
% C9 ?, V+ l: }3 z; @C. double a[1][4]
2 B- {$ C q. Y2 [D. float a(3)(4);# e9 N4 t# X0 c1 O
( I6 h4 I- j- f6 g: N; j: _/ ^
14. 以下判断正确的是( )。
' y$ N: w( h# FA. char *s="string"; 等价于char *s; *s="string";" T' Z" ?& F3 H# C
B. char str[10]={"string"}; 等价于char str[10]; str={"string"};
' F* N% D) P+ ^8 y |C. char *s="string"; 等价于char *s; s="string";2 j( J4 i. _( }+ W
D. char str[10]={"string"}; 等价于char str[10]; *str={"strint"};"
' f- q1 Z1 w$ e: |! e+ x5 G* x9 K3 [. v2 U8 v
15. 若有说明:int a[3][4];则数组a中各元素( )。
) p. U" ?7 w/ e* ~; {A. 可在程序的运行阶段得到初值09 @- X5 d7 p/ E3 V4 _- P
B. 可在程序的编译阶段得到初值0: S; S8 b3 _- J4 S. } V
C. 不能得到确定的初值
% ^3 _) M( o+ @* DD. 可在程序的编译或运行阶段得到初值0
/ d# d- [; g2 k. o8 v
" v2 D$ X# [/ _16. 若有说明:int a[3][4];则对a数组元素的正确引用是( )。6 @) C& v9 l' x1 D9 j
A. a[2][4]
* L) q7 |+ \& Q/ s8 c. LB. a[1,3]" W3 }4 ~3 C, e4 @
C. a[1+1][0]1 H7 R+ w, ?; S
D. a(2)(1)( A, S8 G7 [3 d/ H! v
+ p9 h2 N, u+ O3 F4 Z* S
17. 若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;" R# @3 T$ `% o" t. {
A. *(a+i)- v+ F# @) X5 I: `
B. a[p-a+i]
6 B# l- x& }, _7 V/ f0 YC. p+i6 ?% j4 E' x. ~' T/ v/ p8 q- p
D. *(&a[i])
9 d p% X! M4 X2 Q
+ o8 Y! J0 a! S/ |% x18. 设有一段程序: int *var,a; a=100;var=&a;a=*var+10; 执行上面程序段后a的值为( )。
) X1 W3 l6 }+ O/ w4 w! FA. 120
" t/ P; N& x9 C( R$ e, kB. 110% M, Z ~9 ]7 V& o$ C/ x0 G! v
C. 100* I, D+ r: p X _0 V7 v' _$ h
D. 90
8 q. U. _* D% M1 R- N. i0 t
' x) M! @& ]* P19. 有字符数组a[80]和b[80],则正确的输出语句是( )。
. }2 s1 q1 x9 b5 F0 U% hA. puts(a.b);% P4 [5 p- d' D: P% }% n) Z
B. printf("%s,%s",a[],b[]);; \7 {9 `# g7 ?+ T. @
C. pitchar(a,b);
" q, N0 e' V. X9 ZD. puts(a); puts(b);
* x6 h+ T/ ~4 N/ w; Y) }
( j1 c. [. ?) N2 c20. 以下能对二维数组a进行正确初始化的语句是( )。
" `3 l' I% m1 uA. int a[2][]={{1,0,1},{5,2,3}};
: i7 [0 k+ v4 Z5 P' y# ]/ V- H6 d4 vB. int a[][3]={{1,2,3},{4,5,6}};+ x) ]. c9 k% D0 W- t9 Y
C. int a[2][4]={{1,2,3},{4,5},{6}};
, s' T" G# Q5 sD. int a[][3]={{1,0,1},{},{1,1}};" |
|