|
吉大《C语言程序设计》在线作业一6 Z' K, m7 y4 b" z- c) h
& g+ Q! n* x- c$ _试卷总分:100 测试时间:--
8 d0 `! \/ F! Q6 J& V& E' G
1 m H0 `+ f4 ?, u$ D
0 H: e' M6 C- H6 l5 R. v4 |3 A$ \9 z. w8 {* x5 M* F% o- H
* E2 H6 b, a! f9 [+ X
8 m2 U5 a& e/ F$ g( I" f
" |+ W5 J. t1 ^6 T: X
$ k$ R" k/ }& ]4 s: W
单选题; t _2 q* f) }2 T+ ~( m" r! G
多选题
* Z3 Q. K1 z8 t; {判断题
6 b% _" B" h* b9 g' Y7 l
7 }/ r; e1 Y3 \3 u4 J
% r4 _ y# o; _4 M9 Z6 C3 F& W/ K
5 R! ]1 O0 p# @+ j, u" h
一、单选题(共 10 道试题,共 40 分。)7 i3 a" N0 V. V5 R
, n( W) J' J7 q5 j( IV
9 T: z5 I- ~9 g% e+ m* x y6 B; E( X6 x3 \5 E+ Q e5 I1 h: G
0 Y0 }6 \) Y$ t9 \' T* X5 ?+ {8 K& |& k8 Z1. 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); }
/ |; f% r. L1 ]7 i* e1 QA. ABCDEFG9 T( D7 l8 s. S6 H. x
3 b$ h p! r! u% D9 d) IB. IJHL 4 P1 c' W6 X5 n+ M
2 \/ @: m! F$ x: m0 o4 m/ \C. ABCDEFGHIJKL* z; w/ N, x: }1 [8 o. R0 x
& a9 p6 [9 i1 \3 z
D. IJKLABCDEFGH2 k$ A# w5 c0 j- I. |6 X" B
% g- y( c8 J2 f3 Z# w4 v; e! P 满分:4 分
8 J' {& i1 n1 a. Q8 E' D
. Q' a. I$ G2 M) ?2. 下面能正确进行字符串赋值操作的是& A) C. K# R/ N# ^
A. char s[5]={"ABCDE"};) c; A* q1 S w
8 b: i4 y2 Q* F. a# EB. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};
D# u6 v5 O8 Y! i; |) T. X- A% K% ], N( R
C. char *s;s="ABCDE";
q e3 x$ f7 Y, [. H0 }5 e, B" K* s- j6 D
D. char *s;char a; scanf("%s",&s);
1 P8 R- ^. M3 q* ~& Y* }
) x# {" N$ \6 C7 P 满分:4 分
! Y3 W( n" s1 n1 M
. ^+ M9 Q, _- h) @6 U3. 阅读以下程序及对程序功能的描述,其中正确的描述是 #include main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=fopen(infile,"r"))==NUL% m( h, o1 r# A; v( C# j7 F7 o+ B
A. 程序完成将磁盘文件的信息在屏幕上显示的功能8 y* n* I# c7 K" x
/ ?) B7 x. e4 f9 eB. 程序完成将两个磁盘文件合二为一的功能7 r, T4 | ]# L& T! {
% a4 C; ]3 U- D( G7 ?) ^
C. 程序完成将一个磁盘文件复制到另一个磁盘文件中3 v0 t! L) H' n/ c2 ]
- L* f; @0 k# R9 f5 C: L
D. 程序完成将两个磁盘文件合并并在屏幕上输出8 L1 H Y: q! y6 b/ u4 b
9 I' J1 ^) s$ {4 C% G; B
满分:4 分3 Q* Z: A) }+ Z c d$ [
: h7 N* M& @5 l1 w
4. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。 #include main() { int i=0,j,k; do{i++;k=316-13*i;}while(______); j=k/11; printf("316=13*%d+11*%d",i,j); }
- n2 e5 O* c" r! W5 L) UA. k/11
% [9 M. m- {3 L2 e. _/ V. v
- ^8 }) [; y1 p, x/ k7 J1 Z, Y% zB. k
: G: s: y$ S' N9 [+ D) x6 m
' l0 U; I" {0 s8 r3 A. U2 G9 gC. k/11==0. W/ e7 m# r& z8 _
3 G# d; o. O! G
D. k==0
9 L9 L: }# ~( o- U9 W2 A4 m9 z$ I; a
, v8 }* }1 e; N" x. H9 u 满分:4 分) H5 v" h5 `/ f0 i# z4 l9 ~+ g
% a! w9 }$ r i; f5. 以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }; L9 S3 V4 {4 _2 U7 L8 s1 c
A. p和q的类型不一致,不能执行*p=*q;语句/ K; O% {0 F8 N& B
) b1 i8 Q. J% @7 [0 IB. *p中存放的是地址值,因此不能执行*p=40;语句4 y3 l9 X6 b0 w# Z4 J8 Z1 o; K
/ x- T- e3 |+ S8 |' n- i7 F7 C' ~" ZC. q没有指向具体的存储单元,所以*q没有实际意义
' P+ i; r6 g( p
# h l, ]" Q+ ~% c. K5 vD. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果 q0 c; |4 i3 _3 M
4 Q( {5 Y8 E* I! G( _+ q+ P 满分:4 分6 e G4 O2 y4 p Q9 @
% a: ^; ?5 I! k% z6. 下列程序的输出结果是 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y); }
6 p9 z0 v3 Y6 C9 CA. 3
2 x Y3 d& u _- B+ N1 m }% D3 m' @- |$ e
B. 3.2. H" a4 ]- u' `/ G2 ^- \5 M1 W8 K
1 B1 G1 o" y; `6 N3 T/ \
C. 00 l# t( V- _0 Q* `, U
7 H) z) s- z+ I$ ~0 {# q! c g& H
D. 3.07
0 R3 {3 B, |# l t9 ?! w& V9 \$ g1 O* k. A( R
满分:4 分; O2 u2 {2 i" y, E5 Q
( ? x: g9 O/ Y, E8 Y
7. 设有数组定义: char array[]="China"; 则数组 array所占的空间为 i/ \: B1 r! n
A. 4个字节" ~6 E* m% F6 d5 S6 R
# I2 @5 Q5 ]! p
B. 5个字节/ l2 [$ j& c. I E5 }2 h7 ~8 Z T
+ n8 d; ?3 n$ K# @1 H. u: aC. 6个字节0 P5 H x5 H1 j: ]
1 w/ \& P [) o6 u' d9 U; j
D. 7个字节* Y* G7 Z3 _6 y+ f
. F. W7 l# O( y" N# @! ^
满分:4 分# P- H! b0 j% s$ T, g6 m2 |- Z
7 [' _4 w7 `6 k) G W( d8. 以下不正确的定义语句是& V" S% j. A6 S! y( g0 [- p# j
A. double x[5]={2.0,4.0,6.0,8.0,10.0};% i* X4 S0 V1 T
, Q! Y7 U0 \- m
B. int y[5]={0,1,3,5,7,9};" G4 L6 f5 f* V) e
2 m X6 e& D2 i
C. char c1[]={′1′,′2′,′3′,′4′,′5′};4 ]4 F% \ k/ L3 U
0 g/ }6 j& ^7 p6 x( R8 K6 K
D. char c2[]={′\x10′,′\xa′,′\x8′};: o- `, I! q5 t, e/ r0 w" H. }# R
7 a& N3 g" h0 d5 C- o- u1 b0 w( I 满分:4 分- Q. ]) o! c2 a2 i% X4 T% E
0 P! Y! T+ E; U
9. 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是6 _" E1 ?9 Q$ B' S
A. struct结构体类型的关键字
& F* S6 O6 [& c5 U3 M3 }
& h4 @) R, J$ k4 M6 x9 HB. example是结构体类型名
, O: ?# q7 d' x5 M: i: @
) v B$ ?& ?9 {" J5 A: @- i, tC. x,y,z都是结构体成员名/ [ j: t) v7 F, O8 P# _" X+ _
, A, U3 w+ A+ u4 M+ `
D. struct ex是结构体类型名/ R; f3 I3 T6 A+ w2 ^" x
& I! K. I5 d) M0 W2 Y: l! a! ^ 满分:4 分* c6 u% f0 i9 g" h. \
9 O0 a5 l4 w- |$ p' Y; k$ V
10. 设有int x=11;则表达式(x++*1/3)的值是
1 Y, O! h$ I" V! y$ l- N$ ZA. 39 n. \# G6 l( _, G
, O C+ L$ H. f$ [2 b
B. 4
, m3 \" ~+ U' V/ N; k+ a: g/ _0 J- }
C. 11 W5 Z* N9 |9 s( u; n
0 x6 z8 I9 H, E" H
D. 12" C/ x6 l# M1 ?
) R* V* Y) f k' Q, L 满分:4 分, R5 A# q- g; Q& O' r2 \) W% b
多选题(共 5 道试题,共 20 分。); H; S1 X4 |. ? F" z$ @/ c( h* d$ \
+ F/ Q! `2 K3 Y3 @2 }V
4 [5 a+ r5 x. P5 U7 o% u) S+ I# M+ a: H+ g
& `/ O" K1 y. F1. 以下说法不正确的是______。
5 d& R2 }+ C7 Q- o! mA. 定义函数时,形参的类型说明可以放在函数体内
; V2 ?! Y) z) I9 W, L" B) y
* }5 f3 F* x- p& r; L0 oB. return后边的值不能为表达式
' @* h2 x$ M1 O2 G/ X3 H! e. u5 l
2 \7 }8 Q' \% [* ]C. 如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
& O' d* n& N( |; O) W( a) k( {& c' A4 N7 c4 W. Q0 b( S
D. 如果形参与实参的类型不一致,以实参类型为准/ a* B: L3 |/ ^3 `8 w C$ r V
4 r% n' ^9 B7 O! r: R! G9 u) C
满分:4 分
# y1 S* S5 g# l1 X! F; }9 S9 r, B, b5 U( J+ S$ B; T) c
2. 函数调用可以______。
: F& l9 _4 P2 p8 Q$ fA. 出现在一个表达式中+ Z0 z* w6 D' Y" M$ k. z Z
' Y, R4 {( X" P; u8 T( mB. 出现在执行语句中4 g$ K- x9 r5 Z+ d/ V) N
# `# m+ s; B8 A+ F7 G6 d; ]: k
C. 作为一个函数的实参* R! b1 C, ? a8 L) k! h3 h
' A: `! _9 g, b% |1 f
D. 作为一个函数的形参
/ W; j$ B) |' x: I y
1 O/ ^% {& W2 e/ }- @1 g 满分:4 分
( h) }& m. D, @/ G5 N
; V: I+ a/ Q% C6 j* d" L( x3. 设有如下定义:int (*ptr)();则以下叙述中不正确的是______。; ]$ K0 f. j2 i e5 P
A. ptr是指向一维数组的指针变量
/ G; b u0 @: U- T
( N. u; _/ d% W; d3 fB. ptr是指向int型数据的指针变量- C2 T/ w# x1 i8 ?
1 n% q1 G$ d" L% {
C. ptr是指向函数的指针,该函数返回一个int型数据
( X) U6 u7 |) d4 B7 Z6 ~7 [) [4 Z3 J& S2 e2 Q
D. ptr是一个函数名,该函数的返回值是指向int型数据的指针' F% R0 M7 f5 i
( k9 ~6 X8 S& d ~ 满分:4 分
% `4 t! ^* k7 n2 q6 x3 Y: W9 k% S* c4 x
4. 关于实参和形参的说法正确的是______。
r1 x9 r i- I7 b c2 p8 vA. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
+ n8 K) _" R6 _. Q6 D! C; u
4 {, a" x7 l) [) x3 K, u$ zB. 实参可以是变量、常量或表达式7 ]! \. e9 f1 D$ h
2 m1 o" y) c( T$ k+ s" o$ l6 \C. 实参与形参的类型应相同或赋值兼容4 _# Q1 l" O r; I% u
, a3 D: t: t8 Y6 P7 W
D. 实参变量对形参变量的数据传递是“值传递”
; Z6 `. L% G( `- G( |' E' m: h
$ r! Q$ @4 Y1 A& S+ J 满分:4 分' G" q( M( ^4 o" ~! n6 y
3 G# }$ S6 X# l5 K
5. 已知:int x;,则下面的说明指针变量pb的语句______不是正确的。% \& m; s7 j& _ i
A. int pb=&x;
7 @! }) n0 C+ ?5 Q! p% }& Y3 Q7 \# L5 B8 @3 y
B. int *pb=x;
! E; R! C# p3 `& S" _4 y- ~
& g, S. ]) o' R% nC. int *pb=&x;: j5 k1 r2 s0 i9 d
# ^1 Q* Z. w+ G' X4 xD. *pb=*x4 E& d7 P- ~# v7 I" d; k) ^
& _8 s( g3 N- E+ K5 W1 q 满分:4 分' f6 z& w$ C; H& A( b# p0 R
判断题(共 10 道试题,共 40 分。); Z& \4 b3 A, X9 E1 [$ U
& j# g) G: V8 C, A
V, }& D8 W! t2 r8 m
# \1 w9 P, x! }+ ~$ l! N( i/ q5 q5 d7 S4 p3 V5 f6 U( l
1. 模运算符要求两侧均应为整型数据。( )# m/ e1 F# d/ G% }; U/ @6 w
A. 错误
: |1 Y9 f% @2 s1 }+ m5 ^0 @0 a; J% e' }' K' N) y
B. 正确
" y4 Z, ~+ F+ g, t, X8 W: z/ c
) o9 C4 }* D. J- G) g; | 满分:4 分
D% R) s3 x5 ~5 S. N, w
3 d, Y0 }3 I8 E' O. K* I2. 使用符号常量的好处是:一,含义清楚,二,在需要改变一个常量时能做到“一改全改”( )7 s# z" ]$ `5 \( C) M; S5 H4 K
A. 错误* ]& t/ ] r/ c7 f# x* E
1 Q! t! J& H5 ~1 R! z4 e$ K" @
B. 正确& G+ g& e4 s5 l1 \
) l% F- \9 y/ ~* f! ~$ _ 满分:4 分
9 [# D4 y& @# I- I0 l% N+ i& Q
7 G: a! E3 p3 p9 C( k" b3 q3. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
/ V! }+ {, z {, _+ RA. 错误
! y/ W. g# R7 T$ n0 s3 o# K9 |. A
3 e" Q! i" U+ ?2 ^* T/ qB. 正确
2 o1 a+ i& C% k% L0 O7 N
: ]( x, G9 w% F4 u 满分:4 分
! d7 h. ]/ C( _' C; {0 P9 X# W
; K- I1 F; q% P: A0 x. i4 Y/ I4. 宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。
' f% {7 n/ k& j. t. a7 F/ @A. 错误
# p/ V: F: H P: r. T! Y* l
+ {9 r4 h4 G/ |! {8 V% kB. 正确. p' K/ K( Q) B! D0 i
g, \+ ~# A* x6 B
满分:4 分; v4 @' {% o0 q; v5 N, A2 s$ R, r
, |; g8 W! E I* L1 {5. putchar()函数可以输出一个字符串4 T; V3 A1 k8 p3 I% J" u" {8 t
A. 错误 }/ B' O6 }5 h+ }" h ^. j* l. Z7 a
/ {4 x6 q+ w3 x
B. 正确
! w8 H' r" s! Y9 G2 w& m7 N/ v2 g q* Y- `
满分:4 分
4 c* Q+ ^! t- W- W3 S
/ G" S5 R* T g6 n' [& L6. 若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
9 U2 Z+ c+ W, m& D' `, L2 T: H& v. SA. 错误 c* `& V# |6 ~4 I
- a1 V$ r7 c5 L5 a$ n1 m% a
B. 正确
9 N4 p7 i- K2 o6 n$ z8 a5 D; H$ d; Q' k$ ~, K
满分:4 分
: k6 n. b8 i6 s/ |( b( m3 ^
6 o, u; k. S* g0 [8 ~. N: F7. C程序的执行总是从第一个定义的函数开始
# N* n9 }) r8 T+ A% CA. 错误
- o! X d& l* \, o1 o
* j5 [2 x/ u# IB. 正确- Z+ |+ q) Q$ M) J: j$ @
0 }$ m$ J& U; Z4 |6 h 满分:4 分
6 S! v2 [5 x7 @, N. Y
6 w H5 b+ p1 T$ O6 n8. 一个int型与一个double型数据进行混合运算时,其结果是double型。
( x, S0 Z4 L4 OA. 错误; _' ?7 a) R8 c* m7 W3 c
( J3 V% w: K( W- P& k! UB. 正确7 }. i7 K7 @% X7 i
6 `+ o( h/ i: n 满分:4 分
$ e1 [1 U# \( u- J( q* [
4 `: Y) C8 g, J- [: H" C9. 使用printf和scanf函数时,必须添加#include <stdio.h>命令。( )
, q7 ^9 K3 k" \* N/ x0 I: ?- _( yA. 错误
/ J4 a$ |+ y" m" f1 d/ F2 M6 E6 M2 h* S6 k; t! W
B. 正确+ W7 V7 }2 H$ m# H# ^1 f; @
6 R5 }$ ~- @ k
满分:4 分1 z4 {( O/ C m* P
7 U, x6 L3 ?' T& ]& q% B2 m6 H/ i
10. C语言规定标识符可由字母、数字、下划线三种字符组成,第一个字符可以为数字或字母。( )4 P4 @3 F! }( c! f$ x
A. 错误) {/ i. @5 J) n, c
: A5 K. ^. l6 N+ nB. 正确
" ?* G" y. C% G- `9 k4 J/ r( K, L3 r$ [) r8 W) X0 N) [& n
满分:4 分
5 p& a/ W) ^# R+ h - e; n6 c8 `3 t# I' J
$ O( G( i9 ?2 ~) ?9 V& U( V4 r1 q! f
8 X; d* [2 \* S, n# I. W5 N, ?) e
|
|