|
11春学期《高级语言程序设计》在线作业二
8 M; H1 p( J+ O; F. E Q7 G一,单选题
( K6 f% b: U3 T+ w N8 q5 C1. 下面程序段的运行结果是( )。 char str[10]="output";printf("\"%s\"\n", str);, W2 b4 U2 i8 d8 K- l3 F) X; ^! W
A. output+ S6 d" [% T# d1 p- w& X% p
B. "output"
0 ~7 L+ c, e' W( a6 z$ w# KC. \"output\". R+ e- W/ z9 H# p) }6 p
D. 编译出错- R1 }0 Z& ^6 c8 H6 A8 C
" Z+ P( A+ M2 l3 J
2. 设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
H2 O* a3 [$ oA. p++;* {, k/ j) z. b1 C" Y/ k! Q- {
B. a--;2 {5 Y& v0 B% @$ Z/ B; N
C. b++;
0 E2 w5 k7 V+ ~D. c--;) m7 Q6 ~! w$ F n! j- f
" [ ^! Z" Y9 q6 ?3. 以下程序的运行结果是( )。 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); }
1 E5 W s+ a9 I: v3 VA. 6 8 10
& u* B' T: u/ h- W* C( K3 _9 a: q8 PB. 6 6 6
6 E6 [( y7 Q6 j; `3 [+ c' T6 w4 cC. 7 8 99 Y1 q! Q8 N: p2 U2 |5 l
D. 7 9 11
) ] v, j5 z0 Y/ g) G7 E4 c( C4 S: z6 C
4. 判断字符串s1是否大于字符串s2,应当使用( )。
7 l' s* k- X4 b5 `3 }4 L BA. if(s1>s2)) ^% G( B [: ?9 a1 D
B. if(strcmp(s1,s2))
5 L) g/ R% M. `" J1 \C. if(strcmp(s2,s1)>0)
4 J) f# m `7 r( I- r' kD. if(strcmp(s1,s2>0))"
( a2 t, n* l; P [: N* m5 V4 D/ w+ m# l! p4 H1 j- L0 Q' ~+ v$ K
5. 若有说明:int a[3][4];则对a数组元素的非法引用是( )。
8 K. G& P* m2 \7 ~6 ?1 ^* qA. a[0][2*1]5 S, ^ N n; z! Z. f) a7 ^& I7 `
B. a[1][3]# Q' l3 [- `& ]
C. a[4-2][0]
; i& f: b+ z* W& V+ |, kD. a[0][4]
$ R% ]$ M K' d( N. `3 v$ ~% ^& }& A w/ b
6. 若有定义:int x[10], *p=x;,则*(p+5)表示( )。
6 a" }# u7 t2 T" Z/ ^! T( SA. 数组元素x[5]的地址! @8 m, P( c% ]5 d/ k6 _
B. 数组元素a[5]的值$ v& U4 \: D7 q- N6 b8 ?& \
C. 数组元素a[6]的地址/ x$ a% e6 F" t& B' C
D. 数组元素a[6]的值, ?# e( ?7 F8 T9 z
- R% T) F0 g3 H2 z$ b7. 以下对指针变量的操作中,不正确的是( )。
! r, g; k; o& ~9 @! }6 d5 FA. int p, *q; q=&p;7 }& g2 r7 c) m
B. int *p, *q; q=p=NULL;
4 a& C9 o4 Q. @- A* u' I# {9 L; @C. int a=5, *p; *p=a;. k9 }0 L9 \5 X, ~; m P. ?! ?, C' Q
D. int a=5, *p=&a, *q=&a; *p=*q;"
! l' ?0 ]# I8 X$ I3 s6 ~( F5 g! G4 ^1 u. d
8. 以下能正确读入字符串的程序段是( )。
7 ?2 A6 E+ a& P9 q- ]4 m3 y! mA. char *p; scanf("%s", p);
( J6 y0 r2 h" ]. C$ j8 vB. char str[10]; scanf("%s", &str);
& }2 f' {3 V4 u; {C. char str[10], *p; p=str; scanf("%s", p);
2 O! \# ^5 G* X4 LD. char str[10], *p=str; scanf("%s", p[1]);"% ~2 M+ ~7 [ n7 i
" q# F" W2 l* }8 T
9. 下面程序的运行结果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b; printf("%d\n", *(q+2) );}4 k3 \; g7 b3 I6 c# M+ I
A. 1
% d3 b2 H. }& ~# S5 ~- p6 \" _B. 2
' f% A& H' f( j4 B* M" O& N2 n. a" QC. 3( Q% m! \/ B( F# s1 ?- Y
D. 4, j+ n" ^* m1 _) J1 c, ]
9 B# F- H7 Y4 ?) b; x
10. 若二维数组a有m列,则在a[i][j]前的元素个数为( )。9 w1 y. G* l# o
A. j*m+i' L: N3 H2 _) ~1 N6 b$ ~
B. i*m+j, p% Q9 w( S3 u- n
C. i*m+j-16 {& @ p. n: |1 n& C
D. i*m+j+1
( a" j0 o& u# F2 @
7 W: ^. p9 m2 o, d/ K11. 有两个字符数组a、b,则以下正确的输入语句是( )。# U8 X# ?8 T8 l. K( h
A. gets(a,b);
0 P: U) ?4 l0 r- t; CB. scanf("%s%s",a,b);. i/ j# w9 [" [/ G% [
C. scanf("%s%s",&a,&b);& y2 L" d6 k3 o" A7 n
D. gets("a"),gets("b");"
0 k5 X% r- X1 [$ X" l! ]
- z9 [) V# l+ l# b: o0 e8 |12. 若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
) t8 [% f3 ?& kA. i=x[1][1]
) S) O4 N: h0 N3 yB. i=*(*(x+1))
7 @ p$ H! T& ]4 T3 a+ u9 yC. i=*(*(x+1)+1)0 a7 c/ d, D( R# }
D. i=*(x[1]+1)
`( t: U n9 Y1 C4 T3 ?
5 j5 }9 s/ Y: P w8 l. h13. 以下对二维数组a的正确说明是( )。& B3 x- S, l7 R; [8 v. k
A. int a[3][];9 ~( i- q2 _, A+ {
B. float a(3,4);5 e# n# v% ]5 u/ ~( H
C. double a[1][4]$ E: U z' K8 ^7 M/ L0 F
D. float a(3)(4);! t- t w3 g: v; b( p
, Z8 X2 G7 t* \/ e# `14. 以下判断正确的是( )。3 ~- Q2 ]3 C4 }4 A: m. u3 t! E
A. char *s="string"; 等价于char *s; *s="string"; ?8 n6 y& D7 Y' r8 P0 c
B. char str[10]={"string"}; 等价于char str[10]; str={"string"};: I$ ?$ R5 w6 w; I, ~
C. char *s="string"; 等价于char *s; s="string";5 A. O l' y2 X. W9 r
D. char str[10]={"string"}; 等价于char str[10]; *str={"strint"};"7 ^ w2 j; I* K
3 i7 q, H! t- b) v4 D- I
15. 若有说明:int a[3][4];则数组a中各元素( )。. L! H4 x* t& [* e1 h0 ^; d
A. 可在程序的运行阶段得到初值0
& i- D) ?; K1 b. r2 GB. 可在程序的编译阶段得到初值0
( x' h' G4 t9 y6 X4 I- Y: aC. 不能得到确定的初值
h% A' ^7 Y; ^+ xD. 可在程序的编译或运行阶段得到初值0
7 }- C" h4 Q- _0 L4 c- o( [; G- V- t2 ]- z1 o( z
16. 若有说明:int a[3][4];则对a数组元素的正确引用是( )。5 e$ H& N2 h) s( Y
A. a[2][4]
; o+ y8 a+ P% E9 OB. a[1,3]4 _4 t. ]$ M j! b
C. a[1+1][0]7 I$ a: m1 n. D
D. a(2)(1)
* S0 i8 t* l) m- r) |9 U0 @& K: |5 [
17. 若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
* {/ R3 E- ~7 q5 M% yA. *(a+i), a7 ?5 @# S! j S. T! J
B. a[p-a+i]: ?7 K# U; g9 x+ F
C. p+i
5 d& f U8 T2 X5 q( b3 I' p2 OD. *(&a[i])
0 U& x) n* m! S" z8 _; z, A* [6 S7 |! G2 k9 g6 S$ `* C: d: A- ]( N: F
18. 设有一段程序: int *var,a; a=100;var=&a;a=*var+10; 执行上面程序段后a的值为( )。) h! j3 E$ [: \. m" ?0 L+ W1 F
A. 120
" s5 W ]% \! U3 lB. 110: f* G9 i; [; S/ k _
C. 100
7 S, b) r0 \/ r* U QD. 90, s) h O/ [* s
3 J! X# h2 {4 [1 f F/ c
19. 有字符数组a[80]和b[80],则正确的输出语句是( )。/ B% Q* I: z1 i6 n) j; j
A. puts(a.b);
! W$ p; Z. m, k; w1 L: pB. printf("%s,%s",a[],b[]);- `( q% {$ P5 e4 W3 _. P0 R
C. pitchar(a,b);7 _" Z/ O2 E$ c, z5 [" g; U
D. puts(a); puts(b);
, W, p5 J! |+ |( g9 x/ \5 V" L, y- Y5 y5 D
20. 以下能对二维数组a进行正确初始化的语句是( )。8 R' ]4 c. x3 I7 J7 w* q
A. int a[2][]={{1,0,1},{5,2,3}};* `6 m4 X# v$ ?0 I
B. int a[][3]={{1,2,3},{4,5,6}};
. x* o% }5 j5 I9 Y4 d, PC. int a[2][4]={{1,2,3},{4,5},{6}};
- D! d, b) R: Q5 T: TD. int a[][3]={{1,0,1},{},{1,1}};" |
|