吉大17春学期《C语言程序设计》在线作业一
% h+ w* C- c) ?; t k一、单选题:7 ]+ m9 ~1 K, M i& g9 b
1.下面程序段的运行结果是 char *format="%s,a=%d,b=%d\n"; int a=11,b=10; a+=b; printf(format,"a+=b",a,b); (满分:4)c
7 y* i. F% r+ U A. for* z( |" g5 G0 ~! g- p
"a+=b" ab& ^5 h! z9 w1 x' I" T( u
B. format. x" {- E4 W$ Z3 t6 W% L# {
"a+=b" C. a+=b
8 I$ Z% t4 C5 _) X( s9 N5 i) v3 f) y a=218 k1 u9 E* \7 j, u! ^/ J
b=10+ t9 [& _: u1 b( H$ l
D. 以上结果都不对5 k8 W% U, K; r
2.下面程序的运行结果是 #include main( ) { int a=1,b=10; do {b-=a;a++;}while(b--<0); printf("a=%d,b=%d\n",a,b); } (满分:4)( l6 Z$ t2 Z( H: y* X
A. a=36 f; O* y6 c; H' L
b=11; b) a9 Q0 }; ~
B. a=2. B4 L" d7 B" j) [2 y. g
b=8
w i; l0 b* [. o C. a=1
& s7 H$ F8 H4 V# W4 U* L4 a. J b=-1
" f5 B1 l, A6 t# m D. a=4- _+ ^ r# l' F
b=9
/ C' f0 n/ c" r9 o( i3.以下叙述中不正确的是 (满分:4), B( P- O6 g* U5 C' X
A. 在不同的函数中可以使用相同的名字的变量; l _+ s& _6 `/ {% J% c- _
B. 函数中的形式参数是局部变量
+ ^& t0 Z; F' Q$ ` b C. 在一个函数内定义的变量只在本函数范围内有效& m. A, d2 G' z1 ^ ?
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
( k3 h) b) a) o6 s I4.请选出以下语句的输出结果 printf("%d\n",strlen("\t\"\065\xff\n")); (满分:4): c5 M5 ~6 ]0 r! k) m
A. 5
3 Z& E; m2 n: k" n' c B. 14
' D3 M1 b* Y- c5 x) S. O5 e( j C. 88 O* n; K/ w I- H, s7 ~
D. 输出项不合法,无正常输出
0 a$ F6 h4 N& z1 E; q+ i3 d5.下列程序的输出结果是 main( ) { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y); } (满分:4)$ _. f! R$ `- Q3 J7 Y! \+ Q+ V8 x
A. 33 k1 B/ Y3 ]) P4 N3 l
B. 3.2
7 k2 b `3 ?* G" F C. 0
& Z2 E, Q& b! K" R& u% Y D. 3.07$ `6 ^, c& X6 d$ U ?+ w. e8 E
6.下面程序的输出结果是 main( ) { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));} (满分:4)4 E8 L$ v' ~* U j
A. 3" v- a, y' D$ i6 I. g* l
B. 4# r+ D8 [, @8 \, b- ~
C. 1
$ d1 K/ q0 m' u T7 ]& E' E D. 24 R0 Y. I* c7 C2 _7 Q0 L
7.请选出可用作C语言用户标识符的是 (满分:4)
3 p$ S3 Q* a/ T' e A. void
, t: x4 `7 L9 [2 h define9 j0 R& H% M' F
WORD
. Z: K$ A0 |* Y, O0 _ \ B. a3b38 x; Q7 P9 R# M. |1 b1 i3 i$ K
123@6 ]3 G9 u8 X6 Y9 w, n8 |- ~
IF
+ M' T6 h, |" p; ] C. FOR
0 W2 S( {7 l o7 t4 L7 m2 U+ V9 } --abc
# |& C5 Y2 b5 ~ {* C f Case
2 |' ~ ]: x2 Q0 r6 Q" K. f D. 2a
, k/ C: y- Q) F1 F/ {( X# u+ L Do# J1 W" z; {3 C9 Q8 \2 l& p0 N7 L* D6 ?9 n' e
Sizeof/ i8 ~+ }- k- o6 P7 e
8.C语言允许函数类型缺省定义,此时函数值隐含的类型是 (满分:4)4 V% v0 i7 B! G e/ R
A. float
% V$ g+ B, _- ^ B. int! I0 y/ _0 J: Q7 ~, |) S
C. longp, W" z4 h& Q* H8 e
D. double
, u" _5 d" V4 o# Q' B. D* d% Z9.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为 (满分:4)1 i7 X5 L! ]6 h: Q9 B3 E
A. 4# R0 ?" P' O7 Y7 ~: T7 u
B. 16& {& s, Q, D( }) P6 s
C. 32* [% P# D+ v* f0 m
D. 528 r/ B* A' y) h- U! g% F
10.sizeof(float)是 (满分:4)6 s) u# A0 n) Q3 Q% c' }' N
A. 一个双精度型表达式
+ Q I: O, R' Q- C. A: B B. 一个整型表达式2 E$ n: I" S( ]9 r# L
C. 一种函数调用9 f P, Y; d4 R' u3 b7 @
D. 一个不合法的表达式
: i3 h7 N2 {, ~' f- x, ^7 z* a二、多选题:+ I5 X# O i0 ]6 e; v
1.C提供的预处理功能主要有( )。 (满分:4)
% p4 l$ L( c9 ^# u: j" r A. 宏定义
`& ^6 M- `9 B% F B. 文件包含
+ W U, ~8 F, t: E( A" k- { C. 条件编译
0 l, M! [" e* K- x- O2 u D. 异常终止
# f, h7 p. R0 \1 ?0 r2 K5 |. o2.下列说法中错误的是( )。 (满分:4)
3 T& r2 E' p- L1 h2 h. w A. C程序总是从第一个定义的函数开始执行
2 [" C9 \- y# |6 ~ B. C程序总是从main函数开始执行
0 @, [) _$ h2 [" r# k4 \. P+ ]# [6 z C. C函数必须有返回值,否则不能使用函数
, Y* O9 u6 _- K/ k+ {* q$ J6 @ D. C程序中有调用关系的所有函数必须放在同一个程序文件中
+ a* O Z+ T; n! ^! v4 i3.以下说法不正确的是( )。 (满分:4)
0 I* o5 W3 g! Y- q* Z& A. f4 k ?9 x A. 定义函数时,形参的类型说明可以放在函数体内" r- ~ j' c6 ^. w; a) e* P
B. return后边的值不能为表达式
7 a; @5 Z* D) r9 q& T C. 如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准, A' r2 F) j2 l! L Y- s; z5 j
D. 如果形参与实参的类型不一致,以实参类型为准S! a q7 w% _8 {$ @
4.以下对C语言函数的有关描述中,错误的是:( )。 (满分:4)) I8 b% ]% H1 o" U: Q0 Z
A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
; y# O7 m3 f0 V2 S% v B. 函数既可以嵌套定义又可以递归调用' W* l1 A1 _ M' p
C. 函数必须有返回值,否则不能使用函数
# c+ m- ~8 z* o9 j8 c: C( I$ F D. 程序中有调用关系的所有函数必须放在同一个源程序文件中) n# H7 t3 c: [
5.下列说法不正确的是( )。 (满分:4)/ p5 ~3 ?5 H% p: Y6 K4 \
A. C程序由符号构成. f- O6 w+ e* w6 w0 R, ^
B. C程序由标识符构成& C$ Y+ l. O E; X: |& o' q; L3 q8 {
C. C程序由函数构成
3 Y, }5 l! X8 ^1 ]7 [ D. C程序由C语句构成- i( b! C; x+ r g7 W
三、判断题:
6 ]! b7 M( Q2 L/ N7 S, Q# m1 w' p, G% b1.‘ a’和“a”在内存中所占字节数相同。( ) (满分:4)
8 i9 H5 V8 S1 e A. 错误
6 `4 V- G8 j) f2 o, T B. 正确# B1 ^; p( z* V3 a
2.静态外部变量既可以在文本文件中引用,也可以在其它文件引用 (满分:4)% b. ]+ F. j5 T/ L4 _9 ?3 x+ n* F
A. 错误
" `1 c: I+ C6 [5 P B. 正确4 i$ |7 z. o0 l% h: Q! ^
3.使用符号常量的好处是:一,含义清楚,二,在需要改变一个常量时能做到“一改全改”( ) (满分:4)9 q/ ^+ I: R" U7 t2 a: U9 S0 r
A. 错误- R' ~6 c% G, E2 t/ a
B. 正确* R: L D# t" n1 j
4.函数必须有返回值,否则不能使用函数 (满分:4)
6 r$ Z' |) q6 R3 m A. 错误
+ |& h4 [3 i& n V B. 正确( F; q2 c$ \; `" c$ r
5.C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( ) (满分:4)
3 W5 |9 ^& i4 ~ A. 错误5 Z+ P- z! c5 Q+ `! y
B. 正确
& C% Y9 D( T$ F6.C语言规定标识符可由字母、数字、下划线三种字符组成,第一个字符可以为数字或字母。( ) (满分:4)
5 ?% R" p p [: m' o6 k, v A. 错误5 j/ N; Q! ^- w4 Y9 W( u
B. 正确
" ]5 R9 U9 a; _! S, F. c7.C程序中各函数之间既允许直接递归调用也允许间接递归调 (满分:4)
6 _1 e G. ]' h, @8 o5 o A. 错误
8 E1 f6 l" Y! W( F B. 正确
* k: Y4 l8 M2 [3 w; e& H( O! x' A8.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。 (满分:4)2 F" o/ a, e- G( `% M7 W5 [$ R
A. 错误
. H1 R4 n" ]; k9 P3 ?! Y B. 正确
1 \( e# D3 \4 e9.C语言编译系统在给出逻辑运算结果时,以数值1代表真,以0代表假,但在判断一个量是否为“真”时,以0代表假,以非0代表真。( ) (满分:4)% H% ~. g0 P% `! i; H1 H: q8 ]
A. 错误
; f- N; g- t* d0 s B. 正确4 B5 C$ S1 |2 l/ j, A9 X0 I
10.使用printf和scanf函数时,必须添加#include 命令。( ) (满分:4)
3 D8 r6 k. I- ~% y A. 错误8 T& t8 j# ]3 G/ _# a6 b
B. 正确# T3 p+ U! ]0 _) M2 ^
吉大17春学期《C语言程序设计》在线作业二4 o9 b4 F. h4 c. J+ c+ r1 d; q: c
5 |) ~0 ]3 z" b- k. m一、单选题:
. t* l4 d* S+ y9 }/ X6 F) P& F* w1.执行以下程序后,a,b的值分别为 main( ) { int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); } (满分:4)9 K( D8 N/ T, e+ t
A. -1. v" E7 z1 [ @( [: U
5
! }3 n* F5 u( R% [# u B. 1
! I/ |9 f T) D9 L% h 6
: K& J9 _& g: x4 n: D% ^8 C C. 0
) h$ s, E3 g# ^' r( H) |) S 7
8 `' s, q$ L L; H! i3 h" Q+ ] D. 4
. L/ X9 U- |! d* m" G 10) ` [5 U' E: B( P
2.设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是 (满分:4)
# f3 e7 O( L: S8 A+ ^9 R) z x A. struct结构体类型的关键字
9 Y" d* p' E, P! r8 b* y- Y B. example是结构体类型名
6 E7 `& X5 ~- z# v/ { n, _ C. x* r0 ]8 ^& g/ X* U" t" [
y
2 u" P% }( c' C z都是结构体成员名0 K9 Y0 R3 m# W; H1 C3 L+ F* T
D. struct ex是结构体类型名7 y- M/ U/ |+ e
3.以下不正确的定义语句是 (满分:4)
; e3 K0 h$ B; d" g: m2 i A. double x[5]={2.0
) ]/ r) K2 m3 F 4.0
\- a& P4 M: I8 ]9 m- y$ d- n' Y+ O 6.06 O/ k2 U- z! F Y4 T1 T% N
8.0+ a5 }1 e+ W6 N' m2 N
10.0};. K2 b# J; i& h1 b/ l- V
B. int y[5]={0
5 S; R$ q+ o! g7 o2 A 1
6 ^) _& _$ ~- v& e 31 _3 r* G, n' I6 v p, d0 W2 c& _
56 f2 J( t& D! a
7
0 O( C6 \( d5 i 9};
0 o8 t# y) f1 c! p0 E4 x$ @5 e C. char c1[]={′1′
3 m! |& I" |. b$ ^1 Q# m4 ^ ′2′
/ E9 C. S! P( |# R% `+ j+ Q ′3′
! u8 J2 D8 o/ @# B' d& ] ′4′- ]' d' h/ m/ q% i0 S5 g
′5′};- G; C6 ^* I* w5 K2 f: S
D. char c2[]={′\x10′
3 o; n. g ~7 N: p ′\xa′
6 a% W- w& P5 {( z ′\x8′};
, {9 s, W# @+ C6 S" h0 {: C8 h7 M2 v+ c4.在16位IBM-PC机上使用C语言,若有如下定义 struct data { int i; char ch; double f; } b; 则结构变量b占用内存的字节数是 (满分:4)! b6 c- c z# ?" t+ ~
A. 1
( U+ i6 H2 ]! d$ y9 d% q. y) Y B. 2; }9 d: ~0 P3 T7 V( F
C. 7
. U! y0 }/ r1 I& b- w D. 11
- g+ v& n' Q2 n; }& N5 t5.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 (满分:4): x) r) R% M; P$ }+ [
A. a=20000+20000;
' d/ w8 t4 r$ s B. a=4000*10;
: q0 |) v$ E1 L. ~4 O C. a=30000+10000;: @( w9 L$ n$ u: K! s# S
D. a=4000L*10L) e3 D- P" o6 u" u9 n1 u
6.若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是 (满分:4)( o# r- \7 O7 \$ l
A. a[p-a]
1 V2 @, w5 ~/ v B. *(&a[i])
5 q1 i' @( l5 _ C. p[i]
- }$ ?& u/ j: A% W- C D. a[10]
9 K. r" `; G/ f1 B# [4 B* G7.有以下程序: #include union pw { int i; char ch[2];}a; main( ) {a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是 (满分:4)
. G: ?; D9 [' U* i7 `0 F- d A. 13) W3 J# x) A5 ]2 ?# V
B. 14
% x' i2 L, K+ p& \ C. 2084 t$ c( O7 R* L% b: |8 u2 R
D. 209" X- c" \$ M3 y
8.C语言中,能识别处理的文件为 (满分:4)7 q/ R$ a( j5 s6 ^% Y1 z
A. 文本文件和数据块文件- D h. e5 z- X& {) N
B. 文本文件和二进制文件
, u4 {" [9 d( H6 L& D* q C. 流文件和文本文件3 W8 j* ^) T( p* V
D. 数据文件和二进制文件/ n5 s5 G0 T1 }5 \0 r5 ~
9.有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main( ) { printf("%d\n",fib(3));} 该程序的输出结果是 (满分:4)
7 ]0 E3 R2 U2 ?) p A. 2* g v, z6 _$ Q/ ?/ Z
B. 49 J$ c" Y/ E. V7 L6 r
C. 6! w$ f* d4 ~' x4 V5 ] i
D. 85 E2 i; y4 F5 ?: Z0 G
10.有如下程序 int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=p[5]; 则b的值是 (满分:4)
& W# q- A2 D7 c& e' {$ F A. 5& n/ w5 A9 k4 o) m# t9 O9 }
B. 6
S2 e) F. G5 V2 M; H- d C. 9
6 z8 b+ r3 q; f2 }! { D. 81 `8 i+ ?/ z+ p+ J( g; M
二、多选题:
: Y1 V, O/ W) h: c1 n# U8 J# Q0 O4 _1 F5 U1.下列描述正确的是 (满分:4)
, b# P8 R7 ], U A. 由main 函数及其参数argc和* argv[]可以实现命令行方式
5 ^4 d8 v1 [3 G3 r a& `! P B. 使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中5 E9 Z+ k) J/ q9 \9 w- {" W
C. 字符数组并不要求它的最后一个字符是‘\0'( E! ~9 a, T E! d
D. ‘A'和“A”都是字符串常量' D- l: y: d2 Y- D+ g$ {9 I
2.若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有 (满分:4)
! A& V. P# `: ?( i# g+ k6 J A. A、*(a+1)为元素6的地址( E6 x m* h3 G4 T5 s. w
B. B、*(a[1]+1)的值为2
7 P: Y& X4 \1 ]" W+ X1 ~ C. C、**(a+1)+2的值为8
Q& y& a0 N ^1 M \ D. D、a[0]与a相同
: S- L/ D2 f; ^9 p1 G, Q3.关于文件的打开方式描述正确的是:( )。 (满分:4)
, K% V9 {3 l) ]) q. Q# s1 |2 I A. r:打开只读文件
' q" ] ~$ @/ o8 q$ b B. a+:打开或建立用于更新数据的文件,数据追加到文件尾& B5 v, d' ?1 Q" A4 ]6 v' \- F
C. a:打开或建立一个把数据追加到文件尾的文件# x2 V- U* L4 k4 x& J4 h9 k" H
D. r+:打开用于更新数据的文件
8 e2 y$ g% @2 o0 u: L4.以下对一维数组a进行初始化,错误的语句是( )。 (满分:4)+ ]3 ^2 Z) g) B, |
A. int a[10]=(04 Q$ F! N: V7 r5 s, u6 p
0[( }& G- g% T! X' n
0
, t; d2 e% w" B' \ 0; z( s0 B: |+ |* Z* p- m4 }. V8 T
0);
. ~% w0 C# [; z6 i) j B. int a[10]={};, O% E/ C1 `* S1 n6 e0 u7 y T
C. int a[10]={0};
$ q9 n9 M; t- D" ]" t D. int a[2]={10) t4 D& J0 N9 |* ~, R0 m
9
3 t: k0 k9 K0 c& e n 8}7 c1 m, O# O# M
5.以下不正确的叙述是( )。 (满分:4)
3 B/ }( t! j' o( y4 I6 X5 x7 d A. C语言的主函数是无参函数
9 b/ l9 s# V* F+ |/ ~# h B. C语言的主函数最多允许有1个参数6 Y/ I: S- E6 P
C. C语言的主函数最多允许有2个参数
: `3 I+ U/ L% G9 e( z( F D. C语言的主函数可以有2个以上参数6 Q( r ]0 U9 P% k/ Y
三、判断题:2 t2 r9 ?# h+ l8 O1 I) ?& c
1.switch语句中,各个case和default的出现次序不影响执行结果。( ) (满分:4)
8 o i/ }3 v9 [$ V8 p A. 错误0 D8 a3 C. q. o; x
B. 正确
- a+ l8 T3 b7 Q) Y3 e( r p2.数据结构指的是数据的组织形式,数组就是一种数据结构( ) (满分:4)
- {0 k. M9 b/ G. V A. 错误7 _$ D. M% @4 @) p
B. 正确( c$ ~- O4 O$ z/ L3 C
3.switch语句中,多个case可以共用一组执行语句。( ) (满分:4)( o' B7 v+ ?6 T
A. 错误
5 K; b/ @% P6 T9 O( O B. 正确
' k! d: x8 q6 h/ C B4.模运算符要求两侧均应为整型数据。( ) (满分:4)
" i# x* n7 N' M7 G A. 错误
; w: h+ }. a. q6 a! U$ ]9 s B. 正确. H$ E% w. h6 I$ ]7 o4 i
5.共用体所占的内存空间大小取决于占空间最多的那个成员变量。 (满分:4)6 c6 ?. i3 u H0 b/ O3 P
A. 错误
, D% H3 O) E) Q7 T B. 正确1 R6 J) k' p, m |
6.for(;;)语句相当于while(1)语句 (满分:4)" ~1 e( F6 J) E; y( y9 i0 e3 |
A. 错误) _8 T4 E4 `8 k1 z
B. 正确
$ A$ c4 F' m* o9 }6 \0 N7.语句int pt中的*pt是指针变量名。 (满分:4): f6 X! B9 q- Q% f$ Y7 e
A. 错误
$ ?4 k" ~4 D( T5 I! E% G B. 正确: n# j/ @& i9 [/ G% F
8.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。 (满分:4)
4 p1 j9 _, K# H) b A. 错误5 x$ I7 h0 N& f
B. 正确2 j" |+ A8 z5 L; m* e+ L! g
9.puts和gets函数只能输入或输出一个字符串 (满分:4)# H: |) @1 O& G1 B$ M; |5 [
A. 错误1 e7 w+ d0 U$ d* L- F
B. 正确. v Q. N# g/ {! m% k5 @
10.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。 (满分:4)+ T9 p# \1 k! y- H0 H/ o
A. 错误. C" b% ]2 ]: y4 G" A/ j
B. 正确, I. T5 ^* A3 ^! Z0 l
9 h0 [( _2 Z' S