|
吉大《C语言程序设计》在线作业一' i+ F3 o8 H' I
; b1 O% m* y# |% O1 M- W
试卷总分:100 测试时间:--
' [7 i( |4 q/ J" i' ?
9 @ b2 s0 ?6 h4 X o7 _0 U$ p; g. D# i" V% t" T6 ?$ T- e
% c0 s0 _! G% h
$ @( @6 j# \3 B8 g4 F( f0 H
% C4 e* Z4 b [ D2 ~! {" w* M( l8 ?. R
- \5 P0 {1 x$ y( l
单选题
/ \0 J9 z; J- j1 X+ |) f; g多选题
. ~: J9 d$ i- x! U# i2 p判断题
( Z/ A& o! E" r0 p B% g+ w$ [ & I4 i. U! x" l5 q
% b" E' G# G" g" M- d a0 r; P
9 s/ w/ ^' A L3 H3 j- }: x* g
( t! ~7 |6 x: o4 w' x一、单选题(共 10 道试题,共 40 分。)
, ?# g2 N5 ^3 ^0 n
* y. B: y6 R9 OV
# E) I) D6 c0 e" M( S* X, a8 S. z" B% r, ]1 d D
2 K8 ~2 J+ s6 H' N' Y1. 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); }/ G/ b4 \0 N8 h* F
A. ABCDEFG
( R/ N0 ^- d( U- \# P6 Y
6 q( E) `9 ?+ V7 i6 DB. IJHL & y' ?# Y' f* T7 G/ N
2 S6 ^. `, \7 r6 AC. ABCDEFGHIJKL. [/ h n4 k, \7 h1 C' K
0 g/ p4 ~# Q" ^" ]! V/ ]& ?/ p5 M
D. IJKLABCDEFGH
# b5 O# |" L# C) l8 f: v' ^8 L% e$ h' v% c& P! f7 A# E
满分:4 分
3 Z: l' }9 U* F- V
) E. w$ z: [" p+ { Q: m2. 下面能正确进行字符串赋值操作的是8 {1 X7 f& t7 y1 S$ G
A. char s[5]={"ABCDE"};
4 F4 r5 z, C1 r/ t# N2 r2 C( N3 A9 M* C
B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};7 a( z; B6 K7 ?6 Q
6 \& @ u# x2 o4 c/ x* h; y- S) eC. char *s;s="ABCDE";
6 P9 U. H$ M1 M6 n6 Q$ }) t' l" e1 g# |- d) {
D. char *s;char a; scanf("%s",&s);
: H8 q% e: M4 f7 u" m$ c
- a' D- H; Z& y/ a& c0 Q8 U& z3 M 满分:4 分
/ B+ B/ f- Q$ ~
( Y0 f3 k' ?7 p: {3. 阅读以下程序及对程序功能的描述,其中正确的描述是 #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
8 \" d* u+ q* u& _0 uA. 程序完成将磁盘文件的信息在屏幕上显示的功能( `' w. f' v( S) f1 _ M
- B |# c/ s- [& c$ \3 SB. 程序完成将两个磁盘文件合二为一的功能+ f" d8 N9 T" M# o
3 A) x: n; K1 Z6 G+ I; u
C. 程序完成将一个磁盘文件复制到另一个磁盘文件中
- G4 D. |" \9 o- t" | ~6 i* i1 f& r" f+ S+ q3 d) C
D. 程序完成将两个磁盘文件合并并在屏幕上输出
f/ x. N7 v% b0 N9 T: m+ t+ D/ y) L7 U' B& C9 a x
满分:4 分
2 X+ a5 l0 v+ q8 Z$ `/ o' X. u- R; @! I" w7 }: z0 p
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); }
l& Y; h/ N- k9 S9 b% V! MA. k/11
7 ^$ C& G/ D, \; d" ^) M6 n+ _0 O& ^2 u% K, v& W9 u, [
B. k4 z9 @" c' }9 o4 r1 y3 x
. a" f5 I3 r. h% [* t4 r3 y* eC. k/11==0
+ c3 v/ K( j& X+ B+ D3 M- V( [3 J# L D5 v. |
D. k==01 S5 Z- ^6 c2 n ^
* s3 i0 e% u. Z( j6 V 满分:4 分
0 _( D% j7 l1 V: k9 }# m7 j$ o$ D) ^( f7 w4 P& L5 S! M6 d+ `
5. 以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }5 j1 H# F% {1 }/ X7 Z# q* z
A. p和q的类型不一致,不能执行*p=*q;语句$ K1 x! a9 J0 d J5 i, w. T; |
. B) p8 j3 B- Q0 x, V4 ]
B. *p中存放的是地址值,因此不能执行*p=40;语句$ v: p! F2 S0 x: A/ S& n7 C: F; B2 A
' q2 T* y9 m1 X; g) W/ uC. q没有指向具体的存储单元,所以*q没有实际意义$ l3 y& N' x1 T6 _$ ]; Z# I' R
4 K5 U' T- V& N | a; G
D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
4 n0 y- C; [7 {$ F- ], D$ {- v' i' g7 c0 b1 ?
满分:4 分
( h; @+ V# X- Y1 `7 r$ h0 o' @ k) l: L2 n2 M
6. 下列程序的输出结果是 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y); }
0 S- L! z+ e4 `4 yA. 3
4 b7 V5 S& Y& G# y. }- M) m, f9 j, o
4 d- K9 o" U7 oB. 3.2) E; Z7 f0 g5 U& \% ?
+ j6 C+ U. s }, j7 qC. 0# `. s- y+ {: z( G
1 a& m6 U3 W$ ND. 3.07
- E+ F p6 e J' S- s
6 |- k6 L) G2 B7 [& _" l) f 满分:4 分" U, L1 W* z5 C
G: Y0 s0 i: E) P# k8 r" r+ c( a7. 设有数组定义: char array[]="China"; 则数组 array所占的空间为, w+ u1 J+ c; x! b
A. 4个字节: t: ?: Z$ c x, K: q1 r
! T" p& T, N5 Y5 U0 s. kB. 5个字节
, [; a* O' r8 J# u0 ~6 W2 C: A& E, \% z, P8 p: w. r9 m, y
C. 6个字节
r B& f$ c4 ~+ B( ~* g6 [6 o" h# f
* }8 k+ k- y T* L( z1 Z! {D. 7个字节
' Z# u2 [ Y/ F7 c' Y) z; M4 A& h& z' v' F
满分:4 分) j3 k8 R [6 h3 f& B/ s& t
) Y% V, J2 ?( G
8. 以下不正确的定义语句是1 `; [- E6 U+ V; Q$ ]8 r( Z
A. double x[5]={2.0,4.0,6.0,8.0,10.0};
/ n$ k6 S2 n4 W: [& z
% e" D! x0 }. \! yB. int y[5]={0,1,3,5,7,9};
. O1 W X3 Z5 u4 {2 [
5 j9 s0 \9 T. r2 \C. char c1[]={′1′,′2′,′3′,′4′,′5′};( ^5 y- j8 N) Z: e: h
' \* h' k9 f# T, ~# z, l# _D. char c2[]={′\x10′,′\xa′,′\x8′};" P. E! N" W* ?0 X0 }
/ C K; x/ ^0 W; g* N 满分:4 分! ]4 H. I1 I, D
! R8 \' T" l: K# A# P9. 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是
. F7 Y4 z& K9 F( ZA. struct结构体类型的关键字6 h5 b! V: z- e7 U3 A
( J! Z9 U5 u8 ~+ M" D4 LB. example是结构体类型名) H' g1 |' {( O0 O, D/ N5 a
" f& T6 J- B6 A7 q: G0 R2 G5 Q
C. x,y,z都是结构体成员名
~/ U# T1 @) S' y
4 C5 y' O% o- Q jD. struct ex是结构体类型名; f+ x p! u3 S2 s p1 H- o- [
# [- V" D2 |# T% \8 D 满分:4 分
& W; u/ T! E" H( N# h5 e0 E1 {3 A! h
10. 设有int x=11;则表达式(x++*1/3)的值是
, g9 `; u/ f8 E( k HA. 3/ @/ D" m" B. V) n
6 b1 r) {! u( t3 R( |9 T% G( \B. 4
% x2 q: N" W* Y; s3 r7 Y+ {0 y3 m0 [
C. 11
$ M$ l% J5 t4 o- i$ t- n& r m8 t- I1 G1 _
D. 12: v+ f/ i* C: K. q6 V# o# @+ Y; H% O
& f w" T/ {" X# J+ p* Z
满分:4 分! O8 G5 y4 L* c J+ Z
多选题(共 5 道试题,共 20 分。)+ A Y! S8 ^ K9 ~6 U
' B. S- {6 l6 r/ J: S$ D. EV6 [. R4 |$ p) d8 X1 j# Q
" h! @, j* k2 E( n. `
n+ a/ s7 ]6 r& z9 O+ L: f1. 以下说法不正确的是______。
, ^ B! ?4 e0 dA. 定义函数时,形参的类型说明可以放在函数体内' x+ Z% g/ i' U) E4 ]
2 ^( d3 _+ w: c1 {: u% x/ ZB. return后边的值不能为表达式9 F9 d( l( I- q: g, l5 L
+ ^# @" Z9 X" J$ ]C. 如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
- b5 ^# d# S( p% h5 _( ^
% y- o" O8 x: G6 {& B; D0 K" iD. 如果形参与实参的类型不一致,以实参类型为准* A3 Z, h" X6 g, Z: x
0 e- ]$ J6 I0 H! b" Q9 G 满分:4 分
2 C& P& d8 o4 j4 x' k. G" \) ]2 y% s# F
2. 函数调用可以______。
) R9 P: r% `) W1 H% U- E" SA. 出现在一个表达式中& _! x/ N8 b3 A6 _8 f
: c% m! {# V. E7 L4 v( ~: k, R3 CB. 出现在执行语句中" w2 u% B+ x( v& \7 `
% \, K; N, y3 a& A) N8 nC. 作为一个函数的实参
0 [; e# g) P1 p3 K% |. j- n2 `
& n; c! \9 ^4 y4 ~6 VD. 作为一个函数的形参4 |( N. i& c2 q7 s f
7 y0 @6 |, ?$ g; y 满分:4 分
) D4 c- q) S4 p% ~
/ M3 r6 Z2 P. N. b8 H5 A* i5 b3. 设有如下定义:int (*ptr)();则以下叙述中不正确的是______。: ^% s* j3 Y8 H' I/ Z# t7 D
A. ptr是指向一维数组的指针变量% y. o# e' B% Z- d6 q9 e, @
$ h( w% T0 I+ C6 |$ q# u: FB. ptr是指向int型数据的指针变量
2 W. J' [- @6 W" u) H5 [
0 w' Z9 @/ Q$ J' g* h. mC. ptr是指向函数的指针,该函数返回一个int型数据
; a7 u" H$ ~ N7 C) ?% `9 `. I0 `) `' b) N7 b5 r
D. ptr是一个函数名,该函数的返回值是指向int型数据的指针) B/ O" x1 I( t- j
* m$ w8 b1 o# b6 R- Z! q' q 满分:4 分* u+ T) T& P( Z) J, a u$ A
1 Y8 ^7 o: g! H0 i4. 关于实参和形参的说法正确的是______。
& D n3 H) R( t! X0 HA. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
1 Z4 ]7 P5 D2 J
, z3 D3 u" e4 X! f+ \* j d: p8 sB. 实参可以是变量、常量或表达式
$ P8 J1 U7 o+ S! `, I4 J! d& `( U/ X1 n1 t# D& m, S0 @: O7 |
C. 实参与形参的类型应相同或赋值兼容
- d; a3 F. s0 P6 b7 J8 r8 X( e$ G) ?" R7 x& R D
D. 实参变量对形参变量的数据传递是“值传递”
+ e6 D$ p$ P& O0 V: q8 Q' Z/ q; n0 f/ C
满分:4 分
0 I3 W+ [2 z9 B! @; L( ]# M. R) e) s: X
5. 已知:int x;,则下面的说明指针变量pb的语句______不是正确的。
1 y3 q* `* C- u i3 sA. int pb=&x;! K% @* x" Z( [, o9 L5 Y& J& A% `; o2 E
h& r$ H# u) d5 }; c
B. int *pb=x;
! t! x" h6 l# E* V# \' u* V4 k- @/ P2 U. _, ~
C. int *pb=&x;
+ D2 w, w P3 J' H; d" M4 ~( {6 ]8 l3 r% a
D. *pb=*x
; l/ S+ @( O0 I' y
' f- d; p% R, G! @8 b% y 满分:4 分
& K1 {% p) V0 w- f" @0 R判断题(共 10 道试题,共 40 分。)5 Q" v% f4 k4 S) e" ^
- H; Y( T" K6 k/ b
V
. U8 ?* n8 @3 W k w
. t7 z! _2 I2 ^" n$ Y7 Z) J3 N: B6 r1 Z9 J3 z# H
1. 模运算符要求两侧均应为整型数据。( )6 |( |8 R6 h; A9 ~
A. 错误9 Z7 ^1 H7 l* b1 c( B
' e/ u8 t- a1 h6 D5 @; b& W0 vB. 正确" p8 y# C) `. w- \. \, W
# |* C- k, W' h$ p5 [ 满分:4 分
; q7 M" {: T% ]) j
& r, I8 n. l& E+ W# k$ e2 B, a: ^2. 使用符号常量的好处是:一,含义清楚,二,在需要改变一个常量时能做到“一改全改”( ). Q' X: J3 {* \2 a0 |* E8 ]
A. 错误3 V+ R, x7 f, Y) K5 c$ |
- \' p, Z4 Z: Q* C
B. 正确
0 H3 S. P0 S7 A3 p
: o& E s( U- s 满分:4 分
% b, t5 N" Z+ c: ]& K0 A
7 _, |4 t$ }; o; V, D/ A+ r3. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。) P6 n9 t' L2 t' { q8 x2 v
A. 错误$ Y. j0 F5 V1 ?3 [
2 V R9 C3 l$ jB. 正确' u Y6 L7 z+ ]4 T0 S
. O/ B7 x$ `' j$ Q4 b
满分:4 分
; v% r: g/ |1 g7 ~( b2 h( D( m
, T0 K! a- Q, f9 ^3 O }( r4 ^5 p4. 宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。6 j; ] X. o# { m9 {1 J7 V+ k
A. 错误
/ j' U4 V6 M4 X, P; n, m( x2 f# M9 b" w
B. 正确
+ V5 x' T# u% G( O+ V" W$ R
4 y) Z* X2 T" Z% z 满分:4 分
! l) N/ ~8 I9 @5 R3 R
8 N2 J3 r7 |2 D6 f, w5 f5. putchar()函数可以输出一个字符串9 {, u! c5 ?3 @8 X
A. 错误
" f9 [6 n0 P7 y, H, n7 P+ y
6 R- a! C s) Y, rB. 正确7 J& N2 t- q5 y) H
* \9 S( |+ ~$ [9 C 满分:4 分
' Y+ ?) m7 }1 A0 P) S# y; L3 ?
& Y; v% U" M) H/ u6. 若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
8 [8 o; `* v' _* P, BA. 错误
" o" v, h. { ^% q9 d3 v! ?' V1 l1 Z9 ?1 V
B. 正确
: k @4 m; {5 _* W8 {
; a9 C+ x7 D1 H% B 满分:4 分
6 }' M9 w* z. K( g8 A! i0 h1 |; Y2 ~6 o3 S/ b
7. C程序的执行总是从第一个定义的函数开始
) r6 j. \6 p( d% ]% S- rA. 错误3 T. p0 q7 R# v& c. C% U
0 Q3 w$ v+ O& O } h, v& u- v9 CB. 正确
" J' [2 K8 ~5 v5 [3 m' D. n; x7 }7 n% q
满分:4 分
" O- \6 Q5 a. ~$ k, Y; \3 J4 P$ R& g4 x
8. 一个int型与一个double型数据进行混合运算时,其结果是double型。
4 h/ a% @ v# r, @ Y) N* UA. 错误 i, b& f3 G9 J* D9 I" a! q% ?7 f
* C& y# d. ?% G+ `. x3 o0 t g
B. 正确
9 W' ~! o0 c2 K) `3 `6 C" B* \) |; J1 Z. F# P6 ~2 E/ N
满分:4 分4 `5 h% w1 G# \( R: H O
' N6 i$ j F3 a; L9. 使用printf和scanf函数时,必须添加#include <stdio.h>命令。( )' F1 f+ k0 h( \
A. 错误2 P# O! S) y6 _7 W* u. w
9 k6 l* d5 k$ t9 [+ { D1 {; @
B. 正确
- x8 s& m7 U6 K
8 b1 p$ v6 y" c9 j( ~ H! ]. A; ` 满分:4 分
* ^$ F2 ?# f% v( D ?- b' z6 d. d( O b" h8 G
10. C语言规定标识符可由字母、数字、下划线三种字符组成,第一个字符可以为数字或字母。( )
: a5 }6 ^, q# s8 B' e0 ~. EA. 错误
3 r% A6 p8 r# s" W* ^* |7 |7 g# y L( g0 f+ v# A
B. 正确9 r0 o8 ~! p4 p$ x, G8 W
9 D! [7 P% a! j 满分:4 分
7 P1 f- ~% j) j1 f # ?% f$ `$ E2 r: R8 E" N
2 m) I8 V3 x6 b: ~
, k7 [) O0 t) N( `9 M- u0 {7 q& v: [, Z( t I% N
|
|