20秋《C语言》在线作业26 M4 X/ C/ U/ z9 `3 G
1.[单选题] 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )2 ^8 m9 n: E' y6 k! ]. e& [; v
A.extern4 L2 @0 {9 F$ W1 ^6 g
B.register
* a# P/ c: U+ n5 x# V# y P" p C.auto
V$ w+ f# z' D' y* ], J D.static% q+ s! z7 ^) {$ t j( [6 C. ~& ]: F
答:——D——
* C( E# D# P7 s4 C% P F2.[单选题] 以下符合C语言语法的赋值表达式是( )1 u6 R' i c; z2 ^& a( K
A.d=9+e+f=d+91 b% ^/ M; ~( d* k2 L; f
B.d=9+e,f=d+9) u) f" h l, D6 \( r, H. G
C.d=9+e,e++,d+9
3 Q. p5 y2 G m' G" e D.d=9+e++=d+7
( l8 a2 N+ e1 s 答:——B——& k$ b9 u0 ?! u
3.[单选题] 根据下面的定义,能印出字母m的语句是( )根据下面的定义,能印出字母M的语句是( )
8 [. ^/ z; g. K+ `4 q* ^ H struct person{char name[9];int age;};
E! B2 v, V6 y struct person class[10]={“john”,17,. f! e/ o6 N5 F/ U, @$ w! z
“paul”,19,
& W: T, h1 U: m( v# z0 Y6 A7 J, A; Q, y “mary”,18,
* R+ c0 O1 G. f! \' v “adam”,16};( {1 ~. O( h4 g0 n! | h; H
A.printf(“%c\n”,class[3].name);* T" h+ p8 J5 l* ?5 N
B.printf(“%c\n”,class[3].name[1]);
% }) R% o8 @0 {% Q! i C.printf(“%c\n”,class[2].name[1]);2 t$ ]* e1 x) r# F6 t
D.printf(“%c\n”,clsaa[2].name[0]);4 h: k* q" s; w9 D
答:——D——
/ F' S8 E4 U6 D/ Z+ _( C2 L! I4.[单选题] 标准库函数fgets(s,n,f)的功能是( )
% k9 n/ N* J" M ~5 ?% X0 }3 ? A.从文件f中读取长度为n的字符串存入s中
& s9 }; H q X% |* f* J; z B.从文件f中读取长度小于n的字符串存入s中) L1 F5 r- |; u! C
C.从文件f中读取n个字符串存入s中
1 {$ G+ i6 J2 A! u, q6 ] D.从文件f中读取长度为n-1的字符串存入s中
3 @0 d( D) e9 ^ 答:————3 a3 b. q1 f( C
5.[单选题] 判断字符串a和b是否相等,应当使用( )# J" N8 P6 [5 H2 A I/ ]2 _
A.if(a= =b)4 H& t* T. Y y
B.if(a=b)
9 S& ?1 W# Z& V* F8 ?3 n: { C.if(strcpy(a,b))
% o7 w2 u# J$ A, W0 c4 B% D D.if(!strcmp(a,b))7 v# ~+ s/ P& n9 m( z0 Z0 E3 L
答:————1 D1 `# L) x5 ^+ K8 i
6.[单选题] 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )/ c. g% I5 t7 ?' u' a
A.int
^# f8 P% M8 I) ~ B.float
- ?" z1 L, K( H+ U* t C.double; p7 M* h! @2 L+ n
D.不确定( n* r/ }3 u. w4 t U) P
答:————
% ]' V/ D9 j7 Y+ j7.[单选题] 以下正确的描述是( )% v$ \+ c, V1 j
A.函数的定义可以嵌套,但函数的调用不可以嵌套+ F a# k. ]$ X4 [( |, v1 _9 a
B.函数的定义不可以嵌套,但函数的调用可以嵌套
) o0 q- w2 @+ B+ d: W C.函数的定义和函数的调用均不可以嵌套
$ B4 X. B- z$ O/ y D.函数的定义和函数的调用均可以嵌套8 P2 {& v: a k& V9 X9 r
答:————. E' W v7 k3 L# E' D! h5 S
8.[单选题] 下面程序的功能是计算正整数2345的各位数字平方和,请选择填空( )
7 \% e/ [# B4 h% K3 s0 f; y* o' V#include8 g0 F9 ` n+ x; h. v D
main(), p; y; G5 \( V+ x8 |, [
{int n,sum=0;* c& B4 x0 u* R! N, a1 H6 k
n=2345
+ A% A2 Z5 D4 u; a, y" S5 ?4 mdo{ sum=sum+(n%10)*(n%10); ; V3 F4 {5 |, N1 t8 w1 k
n=【 】;8 d$ S+ r5 W7 R
}while(n);: a* h/ F) h% `+ O7 [. r
printf("sum=%d",sum);}. z9 [( O7 J6 G) f N3 N& Q H
A.n/1000) G9 \9 i% L* r6 q
B.n/100
0 V$ l" ]. _3 {" p3 P' Z: Y: U F C.n/10( k. ~: y g1 {
D.n%10
1 Y1 h& r( |0 n* d) Q4 Q' L 答:————
0 t4 m @/ P) a- ?+ h9.[单选题] 以下对一维整型数组a的正确说明是( )
5 i$ ]4 Z! f1 ?# M% b A.int a(10)3 t+ \2 m( j: @! Q* b& r: o; _
B.int n=10,a[n];
. g# g4 u$ R& G0 f+ U0 K C.int n;scanf("%d",&n);int a[n];" b$ m% n/ T, D1 L6 V. x; [
D.#define SIZE 10 int a[SIZE];
: P: t& d6 L0 ~5 l. ^: X# S 答:————
# A! A* Z1 g" o7 l, Q10.[单选题] #include
5 |2 U: Z. T; Yvoid f(char *s,char *t)
# V; K; z) n9 x! E b{char k; " X0 U& w) D: t8 f* H
k=*s; *s=*t;*t=k;
4 W5 K9 j2 V" l1 E2 Z% T3 l7 `- [s++;t--;
4 W1 E$ D/ y: [) Q$ yif(*s)f(s,t);
9 `3 y* x' c4 q" j. H& M7 [}
( j9 ~& m, b. a. ?main()
9 U3 X! e& W0 e& }$ d" I4 O{char str[10]="abcdefg",*p;
1 j) y! ^. C* L) u0 L* \p=str+strlen(str)/2+1; ' b( c; J: F$ E6 t. G/ I
f(p,p-2); / I% `1 Y8 s4 t2 k4 u0 f
printf("%s\n",str); & J* C1 X* r" O# b# d5 h
}
3 y: ~4 S( u k# B" b x程序运行后的输出结果是( )
. n& }" M5 b, e! y1 ^7 C A.abcdefg
7 y+ S$ G& Q! p) @! Q) V B.gfedcba) ^: i6 J0 l. o8 B7 T2 v5 W
C.gbcdefa
* Z7 x9 U! h) d, P$ ] D.abedcfg
& e; i4 t" X: |: C! j0 l 答:————
( c7 {5 g( d0 N) x+ I: Z% N8 t11.[多选题] 下列符号中可以用作自定义函数名的是( ); O8 o! B3 O2 P' R J2 v/ u; U: l
A.int
! S5 {" T' b" h% T6 U" V' y B.go_to
2 F `* j0 B2 G1 v5 d% Q5 X C.INT
/ P2 s. I& [3 P( F& J' d D.Getchar+ G4 i$ H/ u M: [. N
E.typedef
$ K6 [) N; c% E- G: _ 答:————
7 o9 @8 Y- ]$ L12.[多选题] 以下程序正确计算p=n! (n>=0)的是( )
' V! @+ N# @7 b+ C A.for(p=1.0,k=1;k<=n;) p*=k++;, T7 A+ _, x6 _( z/ A
B.p=1.0;k=0;while(k
C.p=1.0;k=1;do{++k;p*=k;} while(k<=n);# L( R. x5 F, w% J! q
D.p=1.0;for(k=n;k>=1;k--) p*=k--;
+ h1 K$ n) V# h# a) x 答:————
' M9 t9 k1 I( ~* }% J$ G13.[多选题] 在定义函数时,函数的存储类型可以( )
! v5 N# M1 n: n, [. |7 U A.是static
0 h# ~' M, f) h0 J$ @ B.是auto- z0 y- M) E6 A$ m4 X
C.是register7 I9 z4 O* h, T; v) k0 L( V
D.是extern9 r8 X2 ]8 s5 l0 m- T$ s7 ~% V6 M+ r. D
E.省略
* R# V" n W" U8 I5 | 答:————
! U x; O$ s. H- b" a4 b14.[多选题] 在函数调用过程中,下列说法正确的是( )9 n: z, T0 F' P
A.形式参数和实在参数各占一个独立的存储单元
7 S3 y# o3 X+ B% l# X B.形式参数和实在参数存储空间都是在函数调用时分配的
4 N5 L _/ O P4 P" x& |/ {% V C.)在函数的执行过程中,形参变量值的改变不会影响实参值的改变
, l5 t' \( T, `9 l! C D.函数调用结束时,临时存储区被撤消
0 [' h6 Q1 b P9 m2 b/ ~ E.在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配+ U4 b$ V" X9 _1 X/ r
答:————
0 u3 z5 v. I- c9 V, Z! O15.[多选题] 在下面C语言的函数说明语句中,正确的是( )
- z% B, t0 x% h+ e A.int fun(int , int);
8 ~% ^# N7 C- b" y; P6 I: p B.int fun(int x,y);
! T; c' [" U. o. c C.int fun(x,y);& y% l' M2 M! b* j7 l5 g
D.int fun(int x; int y);
7 {( a% } M2 y, k1 |) ^8 k: Z E.int fun(int x,int y);/ w9 s3 i& }) Y( i* _2 M
答:————" p4 f* Y% q7 X& n$ l5 ]2 K! v
16.[多选题] 以下数据类型在内存中占用4个字节的是( )' |8 L. I1 t' i8 m( p; _6 O" v
A.int1 h! J; v6 p4 w4 i0 X" G
B.unsigned long$ _ x/ C; m. h9 o
C.float# q- ?, r; I4 r3 h4 [1 e/ H
D.unsigned char: v6 z7 q4 S: h1 A, e, c$ Z( X/ G
答:————
1 ]1 [* [+ ]* |8 p17.[多选题] 下面关于C语言的说法错误的是( )
( ^$ ~! V6 y$ p! A! U A.C函数必须有形式参数
' f6 H* u) w# x2 P B.任何复合语句体的{ }中允许定义局部变量
& E6 B5 M2 H+ F C.局部变量都存储在动态存贮区
) L+ i. }( U2 F: U+ | D.C程序的执行起点只能是main函数
4 N. \' G' Z4 Q6 _6 T9 j 答:————* O) c5 a& J* t/ Q$ h
18.[多选题] C语言规定,如下说法是正确的( ); E4 ?# s1 a( @1 L0 c
A.不能将结构作为整体来进行存取;9 n0 P# H0 ?4 l9 T' D4 r
B.结构是若干变量的集合,这些变量的类型可以相同;
: j7 @; p+ p6 S s; M& E2 _( p C.共用体(联合)允许不同数据类型的数据使用共同的存储区域;) u& ~+ u7 q) z% j
D.不能用&来取结构的地址;
" g$ x+ v8 B+ x$ J* y E.位段是一种特殊的结构成员。位段的类型可以是char、int、float、double等。" `5 _ ?! x" q/ c+ {
答:————/ c, m3 m, ]5 R3 H, u P, v. |
19.[多选题] 以下哪些是关于指针数组的正确描述( )
5 V( e7 w7 o4 ~" N! S A.int (*a)[4];
* j% R v6 B4 z- ~) R B.int *a[4];
; l2 I1 p) d* I6 t3 ^2 c6 A C.指针数组每个元素都是指针变量8 h8 o( a( S* L' U# e
D.若int a[4][4]; int *b[]={a[0],a[1],a[2],a[3]}; 则b是指针数组
# i# W4 ~1 a0 x E.指针数组与指向数组的指针是等价的2 H) E5 F3 D+ f
答:————
0 e+ N. _$ O2 Y' p/ O20.[多选题] 定义char s[81]; 后,能正确输入一个字符串到数组s的语句是( )/ r/ x% I5 Q5 h& l0 q
A.gets(s);( D6 ~7 u" U0 }; x$ H, D4 w
B.scanf (”%c”,s);
1 D' V) p" y$ w! y! ~; @) L3 \+ M C.scanf (”%s”,&s[0]);
6 W9 i+ Q+ T. s- j, a$ K! X: `( R D.gets(&s[0]);, |* p6 E4 ]# q. U f" i4 i+ e
答:————
1 Y* [. @' u* y2 `5 q" W, T
) C, x7 h: ^7 U; a3 A