|
一、单选题(共 10 道试题,共 40 分。)V 1. 执行以下程序后,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); }5 M+ w: h( ^9 {2 ^! T6 ~8 ]0 r' h$ F
A. -1,5
) B/ U& X+ {1 ?1 J& ~' uB. 1,69 D3 D3 Y) E' m) z
C. 0,7
) l7 ~2 L6 s6 l( Z1 s q$ t, VD. 4,10
" v+ q0 \! A0 K. L# L 满分:4 分8 `7 ]' k2 f3 h e% E ^$ C$ |5 s
2. 有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是
- C! Y# q* ?! E+ u6 _A. 2* e5 o9 Q- y5 v
B. 4' T2 C0 H. B; O
C. 6
5 l6 x' o0 X3 v2 }) z; j1 G4 LD. 8! }# L, C' m* E4 w
满分:4 分! j3 t' S4 c9 L( A& |: I
3. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是$ \) }8 J. S0 k# i1 P& j
A. a[p-a]
. A1 ~# J- o# m, S" ~+ f0 IB. *(&a[i])
$ G4 Y0 |8 Q9 V R4 D5 NC. p[i]$ v9 z6 [& l. A. {9 _, j: E; D) P/ ~
D. a[10]
3 B8 }2 ]3 |" u 满分:4 分
; k9 N- R1 S/ L9 P# s3 t/ v9 z l4. 以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }
) H' k% }* O) G3 OA. p和q的类型不一致,不能执行*p=*q;语句
$ }6 @$ q# H i+ ]& w8 A$ nB. *p中存放的是地址值,因此不能执行*p=40;语句
8 y! M A2 Q i, H1 J: T3 Y" IC. q没有指向具体的存储单元,所以*q没有实际意义2 L& ]/ q% O% F* e" L1 n
D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果1 n @4 x! k- d6 i( H |5 D& {" k
满分:4 分
7 v! `1 O& F3 M5. 阅读以下程序及对程序功能的描述,其中正确的描述是 #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
. x' i$ l0 _; ?8 l j. T% yA. 程序完成将磁盘文件的信息在屏幕上显示的功能
* W; i, V9 @5 T$ G' BB. 程序完成将两个磁盘文件合二为一的功能
) d: q" M+ S0 yC. 程序完成将一个磁盘文件复制到另一个磁盘文件中
' A+ R6 [+ o, Z/ z! J- J. C* |0 yD. 程序完成将两个磁盘文件合并并在屏幕上输出0 l0 J4 N! K5 b2 h
满分:4 分. w: T. s, M$ P* Z8 [! L
6. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为2 N3 {7 a, k( V1 Y0 T+ d
A. 42 E& ]6 i. A! m
B. 16
) g' u# d& F3 j: B! [* N- ]C. 32
! R& w7 I8 V6 U* c8 Q& g3 ID. 52
3 p+ d' D$ m0 U0 r9 \$ V+ _5 B6 k 满分:4 分
) Z: J3 c5 V5 K+ m, M( s7. 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是! A' @ q9 H- H% `
A. struct结构体类型的关键字
0 N" ~2 Q* s2 TB. example是结构体类型名
0 a/ P$ y) r1 k& r. b v& uC. x,y,z都是结构体成员名
% t0 p* W( Z mD. struct ex是结构体类型名
- m0 l) {2 ?9 } 满分:4 分
& h* J$ x R' p7 g, o8. 以下不正确的定义语句是" u o. Y2 C: E0 v6 K u/ w
A. double x[5]={2.0,4.0,6.0,8.0,10.0};
/ X+ a) O0 C7 Y$ o7 xB. int y[5]={0,1,3,5,7,9};+ U1 l `$ C3 v) C+ H5 h# q( J
C. char c1[]={′1′,′2′,′3′,′4′,′5′};
' Q: a2 P6 @ y! t- {6 {, OD. char c2[]={′\x10′,′\xa′,′\x8′};$ s; \% ]) U7 O# h: M4 c/ O
满分:4 分/ D! e1 Y+ o3 i+ P
9. 设有int x=11;则表达式(x++*1/3)的值是
, ^/ h: Q9 ]* D% h6 M8 h+ X6 JA. 3
2 m3 j+ L9 y% T% TB. 49 \# l2 @" q$ ^
C. 11
/ [$ o) u8 N' OD. 12
: B) Z7 R4 {) P& ?# ]+ k 满分:4 分; y6 _, a& J! U! @! u+ L
10. 函数 rewind 的作用是( j& r: {1 s) d7 E
A. 使文件位置指针重新返回文件的开始位置: H" T4 m- w1 U$ K S2 }: X
B. 将文件位置指针指向文件中所要求的特定位置
6 ~# N' ~+ {4 R& W; ]8 ]C. 使文件位置指针指向文件的末尾) _3 J' R9 B6 e3 g0 e5 Z3 J
D. 使文件位置指针自动移至下一个字符位置1 |; X- k; B9 R! I- n2 V
满分:4 分 6 B* G0 L% I" \2 G, t/ M9 @
& \' [0 R! R. M2 i `4 J; \
二、多选题(共 5 道试题,共 20 分。)V 1. 以下叙述中正确的是______。
9 u4 f# M# p) R8 ]9 i- N2 P5 \A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出/ d+ b5 X1 s' s! A) b
B. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
2 z. ?' j8 ?- \, J# \9 p8 p: L# j4 NC. 可以通过赋初值的方式确定数组元素的个数
" Y5 }% F2 I) K) zD. 数组名代表的是数组所占存储区的首地址,其值不可改变* `3 k1 k3 R9 h- X, s1 G
满分:4 分8 A# V c- G; v9 Z5 ` Z$ ?6 G) a
2. 关于文件的打开方式描述正确的是:______。
- a# w9 V1 H: c" z9 ~' m/ f! R2 eA. r:打开只读文件
: Z8 f' N9 r/ zB. a+:打开或建立用于更新数据的文件,数据追加到文件尾( u5 q) v1 C& H: @5 @5 o
C. a:打开或建立一个把数据追加到文件尾的文件
" y& e# G- f4 e' iD. r+:打开用于更新数据的文件
$ L$ Y9 a3 l1 x5 }/ U* t& M 满分:4 分8 j: g* y" V9 t
3. 不与while(x)语句中的x等价的是_____。
9 `3 g; ?& U! l5 c6 T ~$ ?A. x= =0) k6 y( U) p( m8 U
B. x= =1
' S4 `; S0 c6 W9 E5 [ E. y- n& t( CC. x!=16 n# j7 [/ [2 }- b: e' O; c
D. x!=0. Y: c' @9 R Z3 q
满分:4 分
, P# ]: L. z- b$ M4. 下列描述正确的是 B& h6 e, A, P
A. 由main 函数及其参数argc和* argv[]可以实现命令行方式
& [6 A! J* S3 F/ c) FB. 使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中) u# h$ }6 e" j5 y/ n/ ?' _
C. 字符数组并不要求它的最后一个字符是‘\0’
1 A2 n( `# p+ [D. ‘A’和“A”都是字符串常量 1 M' a! ^& K# ^
满分:4 分
: W( y m h: M. U7 S4 d5. 若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有
: T* a1 B. ]) jA. A、*(a+1)为元素6的地址 * ~, w" f2 x' e) t. w- i
B. B、*(a[1]+1)的值为2
: b6 Y L- L$ X3 B9 n4 t* @C. C、**(a+1)+2的值为8
$ X, {$ R6 v a8 S/ w2 PD. D、a[0]与a相同 ! ^, j9 }: r9 x( m: ]7 o- D
满分:4 分 ! ?3 M" n6 u: W
1 p e* m% g8 e3 w9 O1 g$ L三、判断题(共 10 道试题,共 40 分。)V 1. 数据结构指的是数据的组织形式,数组就是一种数据结构( )0 D4 x! ~# s0 M7 H, O) }
A. 错误
2 {9 t4 O& |7 Y7 {B. 正确
9 \# P7 Z& G" H3 t( P 满分:4 分
1 J w0 n3 H7 M6 Q1 |* k# J, C2. puts和gets函数只能输入或输出一个字符串# r) e/ d4 D* R5 B( V2 L
A. 错误( Z) e, o9 Y7 H0 Q( y( p3 C8 W% _
B. 正确+ g6 I \" u* R" `2 y! ~
满分:4 分
4 @$ ]' k5 U/ r3. 语句int pt中的*pt是指针变量名。
) @ j3 b9 s8 E9 J. v0 g. b+ g4 WA. 错误0 F& B" ?! |' z% p
B. 正确' X% I7 V2 b0 k4 F: K4 t
满分:4 分
: ^# ^7 z, N/ ]5 m$ }4. 若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
0 p! y/ w) k/ U" l1 y0 }A. 错误( ^6 M$ y" @. v
B. 正确
" X6 ]# L- o( V: {# J& @: R, V 满分:4 分
* v* j' p/ G/ c( l5. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
$ ~8 e& }8 w6 j. M- @3 \A. 错误9 @1 H1 z H( z# B# W/ }
B. 正确8 s; \) y& ]' l+ y9 ~1 p# z
满分:4 分
8 G* u. j) F- y, ]6. for(;;)语句相当于while(1)语句
. S+ f# C5 K+ h$ }' ]A. 错误- C+ p+ i% j/ m/ i
B. 正确% o+ u/ _1 u' u6 `8 V5 p# D
满分:4 分
4 U, C f/ L- c) X% z2 r2 t7. 一个int型与一个double型数据进行混合运算时,其结果是double型。+ \2 D( M! i3 |- ?" _
A. 错误
" D5 s. M4 k$ n( C) c: a TB. 正确
0 r7 `( S) O* k, L 满分:4 分
. P9 o$ p6 e- `! a0 O8 Q6 A4 C7 P8. 共用体所占的内存空间大小取决于占空间最多的那个成员变量。
; D8 k) _" p7 q4 W( c2 i0 qA. 错误
3 E& [ ]2 ^1 U/ E2 B- \B. 正确& E& ^ R9 O' W2 N: |4 ]9 G# @: O
满分:4 分3 x2 z) n& x. m+ U- W+ O3 O9 Y
9. C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )
' g+ `( {2 U" N% Y9 |) `A. 错误 A; c0 E8 Y$ [( K
B. 正确: w* C5 k0 [- e5 F0 T8 E$ ^
满分:4 分
* |5 L" W- G8 f4 i+ t1 J1 N. h s10. switch语句中,多个case可以共用一组执行语句。( )$ ]" Q9 ~; C8 p: Q- ?- B4 c# e3 K
A. 错误" t* Y# N/ X0 f. Q
B. 正确# k l9 K8 e! C$ ?- C: j
满分:4 分 3 Z3 i. e; t) s& {: \
4 ]- ^6 U4 L7 Z3 ~% S- S8 k
|
|