|
一、单选题(共 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 X3 Z6 F8 y% d' c$ I' [4 w3 JA. -1,5
4 s. t5 F) p- C KB. 1,6
" U# v; y* G9 r/ N% ZC. 0,78 r6 F \9 Q$ O" ]0 g! ?' D
D. 4,10
. Y8 e% M N1 ]# J+ A; k: Z; b+ s 满分:4 分1 f& y% h/ `# ~) n& j
2. 有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是9 ?" v% _: `, ^; A% p
A. 25 b7 c* k/ K, o* ]
B. 4& p! z+ t& ^, Q6 N" a7 q ?/ q
C. 6
, S n7 \5 H* P& a- H+ hD. 8
5 Y6 B- y% M& O7 w7 t 满分:4 分
' U* ~0 |! y# Z/ ]7 p3. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是
( v: Z& }4 C, c: nA. a[p-a]" o+ ]$ P: P# x+ V6 |
B. *(&a[i]) r" y5 K5 p& K1 S& f( |% E
C. p[i]0 H" a% Q0 R4 m% Z0 E
D. a[10]
8 G- ~% v" r. q; C% [6 E; n 满分:4 分8 T- n6 v$ y2 E/ j" M+ b# ~1 j: t [
4. 以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }1 ]+ n* Q" X. w) J4 V
A. p和q的类型不一致,不能执行*p=*q;语句+ s% D% }4 s; O/ q
B. *p中存放的是地址值,因此不能执行*p=40;语句- s8 h6 Y; a! P [/ o2 D. z' |/ d
C. q没有指向具体的存储单元,所以*q没有实际意义
) b: {) Z8 [0 |3 m CD. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果# t$ d b+ U; e" t7 A/ m
满分:4 分
2 J* Q" A2 A9 E9 G5. 阅读以下程序及对程序功能的描述,其中正确的描述是 #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
1 M6 Q6 c: E. I& w1 t! U: gA. 程序完成将磁盘文件的信息在屏幕上显示的功能
4 v( J& z. j _2 h. IB. 程序完成将两个磁盘文件合二为一的功能
. _% z! V" R1 o8 l Y: ~3 d; }C. 程序完成将一个磁盘文件复制到另一个磁盘文件中
6 ]" E- L* n* y7 o. ?0 C, y0 {D. 程序完成将两个磁盘文件合并并在屏幕上输出3 z9 n& U" i& m3 i# H$ h4 [- U
满分:4 分
8 h; @3 a3 g# ]& J+ B9 m) p6. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为7 \/ ~! }; z/ H# y+ u
A. 4
# C! w, Q: F/ o ^) _% G( h% hB. 16
( M' o! s6 d, [6 y; F( r8 {4 EC. 32; n7 M% f7 u8 `6 h( B* c8 `. W* X
D. 52
3 r$ k# Q) t0 m 满分:4 分3 X L: A7 c+ c: c* V" W0 S
7. 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是& @( ~3 J% e( x% b' j
A. struct结构体类型的关键字) I9 H' D+ ?2 `: m( b8 H: a
B. example是结构体类型名, R+ m: ^2 K E& N" P) G
C. x,y,z都是结构体成员名/ u& d8 ?" R. Q2 J$ E
D. struct ex是结构体类型名5 ^; s: O9 t( y+ R0 f# y9 }
满分:4 分
& X7 l7 N t$ @9 W8 Z4 k8 O5 ]8. 以下不正确的定义语句是
- h- V+ q9 i* K1 _, o, ]2 zA. double x[5]={2.0,4.0,6.0,8.0,10.0};
3 B- h+ y7 z; J7 s! ^4 `1 OB. int y[5]={0,1,3,5,7,9};
3 Y, z7 b, w' i6 JC. char c1[]={′1′,′2′,′3′,′4′,′5′};- D6 c. I+ d* k5 d8 A
D. char c2[]={′\x10′,′\xa′,′\x8′};
; P+ p# Y. [4 Q$ K! N1 `8 O 满分:4 分
9 a z4 C5 I/ s0 |9. 设有int x=11;则表达式(x++*1/3)的值是8 x$ B( L- U# |, g
A. 3/ ]) F( k; U' {$ s% ?; I9 k
B. 4* k; a: N# ]. z5 b0 m
C. 11
7 z* g# M8 f& V" MD. 12
; O0 _$ Y/ E& O; U4 p+ q0 E4 [- r6 R 满分:4 分
, T% Q6 r( b& { @+ E+ m10. 函数 rewind 的作用是) V- \9 W, g/ D, e6 g& ?, t# N
A. 使文件位置指针重新返回文件的开始位置
" u% N) Y! F) K1 {B. 将文件位置指针指向文件中所要求的特定位置3 l: X: U8 ?+ T- l) ]5 w/ V
C. 使文件位置指针指向文件的末尾
( ]$ L. A5 \" V( q+ c7 x( T+ ED. 使文件位置指针自动移至下一个字符位置
. T% P! Q- z7 b+ h 满分:4 分 : {( D8 j- y7 G i, t1 f
) ?$ x+ I# @7 R$ ]& N二、多选题(共 5 道试题,共 20 分。)V 1. 以下叙述中正确的是______。
: {) X- o* \; r3 C; S( S- Y2 E, C% JA. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
8 V( Z g6 o: n3 iB. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息8 ~7 H) A6 r* t$ F, p+ g) h
C. 可以通过赋初值的方式确定数组元素的个数
" G1 a. b$ Q9 g; GD. 数组名代表的是数组所占存储区的首地址,其值不可改变/ V5 F" R. ~+ q+ G3 s. ^
满分:4 分' m/ O1 K2 C' `
2. 关于文件的打开方式描述正确的是:______。
2 T0 v' o5 Z5 s2 C4 r1 k: dA. r:打开只读文件* Q0 B" z4 l: [, Q
B. a+:打开或建立用于更新数据的文件,数据追加到文件尾
" c. r$ T: Z) h+ _3 s& tC. a:打开或建立一个把数据追加到文件尾的文件; M# G6 u' l% Z
D. r+:打开用于更新数据的文件
' k! C- {. \2 b5 ]* Z4 c4 e5 b 满分:4 分. U, ^& S1 H. |+ k5 D. ~) U) ^& @
3. 不与while(x)语句中的x等价的是_____。
' v$ \' p! ^$ p+ D6 O5 d8 s; ^A. x= =0
( ?# O4 c$ V1 a" H7 wB. x= =1: ?; J. `. R& C6 O& D2 [( c
C. x!=12 W& b" d% }2 {( [9 Y! y5 Z3 W
D. x!=00 h5 u- y& g3 {* H. z( }
满分:4 分
' Z, D. Q+ k% S0 F1 j6 p9 ?- ^( {: P) `4. 下列描述正确的是0 m1 h$ M, Y7 u# I* F* i8 w; o
A. 由main 函数及其参数argc和* argv[]可以实现命令行方式+ H3 Y! o, ^9 S& E, y; a& {
B. 使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
, s1 K! G+ w) `C. 字符数组并不要求它的最后一个字符是‘\0’
3 b5 r+ y6 d0 N3 D& Q2 S6 { HD. ‘A’和“A”都是字符串常量
4 L5 }# _7 n( p# d 满分:4 分, N0 o; I( @4 V! C6 h2 j
5. 若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有. S/ T9 ?1 b; F) ?
A. A、*(a+1)为元素6的地址
+ U3 l) S+ H# i3 F( Q. iB. B、*(a[1]+1)的值为2# u* d+ }/ P [6 |
C. C、**(a+1)+2的值为8
/ _3 _# H9 v& T/ p6 R' hD. D、a[0]与a相同
9 r( W' u! ?- O& U% ~/ n9 E 满分:4 分
2 D# a" M7 g+ {. Q5 }( o5 V4 N( B9 W% P- ?4 b7 x0 y5 N
三、判断题(共 10 道试题,共 40 分。)V 1. 数据结构指的是数据的组织形式,数组就是一种数据结构( )
" q2 L( H* I/ kA. 错误# _5 y' u x! A: w$ C( G& P8 J
B. 正确
+ m6 C- ?9 c- S8 O 满分:4 分
7 P r* n/ X6 H/ \2 u o2. puts和gets函数只能输入或输出一个字符串3 Z& t- i g8 p- a
A. 错误
2 I F; T" P# f0 g' d2 }6 ]. u- `( ~B. 正确9 E* x1 v T! }
满分:4 分( D5 c( D: L$ r5 e
3. 语句int pt中的*pt是指针变量名。
( ~8 A6 E3 h g5 T4 WA. 错误- V" \; X& e6 _, Q( g+ H
B. 正确
9 C1 Q& K% A2 L# h0 M9 Y' b 满分:4 分
% @ J6 u7 I6 A9 D4. 若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。5 I1 X" w; H5 J3 |
A. 错误% V4 d5 e. _- k) q: O
B. 正确
: B* k( h9 N5 c4 t" P E& E& F% { 满分:4 分) X* `- M4 d5 t, E" ^
5. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
4 ~( g3 \* {# t: F" `" Y/ ?+ UA. 错误8 Z! e: V6 C C
B. 正确+ W- f9 l" d- |& a: S- c/ @, P0 o
满分:4 分
- l2 ^) ~9 F: N* u, J: q6. for(;;)语句相当于while(1)语句
+ P/ C( b4 K; u9 S3 {% EA. 错误
; B* R* T! M, bB. 正确
4 Y4 V. Q1 O0 J3 I" k" b! k 满分:4 分. {/ g- O7 ?) @, A
7. 一个int型与一个double型数据进行混合运算时,其结果是double型。. c9 b- K) F" U; w8 {& q/ p* F
A. 错误
# q2 z# A0 L# Z3 FB. 正确
2 f( Z. t' i+ q# A' N9 b 满分:4 分
3 ^% B9 T; _8 f. H! z0 c) {8. 共用体所占的内存空间大小取决于占空间最多的那个成员变量。
) G6 }) E+ J, jA. 错误9 r" ?4 }5 y$ v
B. 正确
0 A d0 P5 C# H" L, T( B 满分:4 分
! Z: ]1 u# u0 w3 }% i9. C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( ). i+ A' p+ o5 J l1 W5 ?
A. 错误5 w+ U4 f# n; {( h& C
B. 正确5 y+ N8 u9 a& v* B E% u$ k1 E+ ?
满分:4 分 P3 y9 o- Y- A4 `0 a
10. switch语句中,多个case可以共用一组执行语句。( )' Z- ]% W! Y- I: |- U7 T
A. 错误# m, E0 Y: O( R! ^9 i) T
B. 正确
7 v W; q) }' R) _' h- n* i7 X- C 满分:4 分 7 m2 M- Z; c2 Z8 |
# m: L( [) ]7 i- [) I8 x |
|