|
一、单选题(共 10 道试题,共 40 分。)V 1. 一个C语言程序是由8 e7 g. q, Y* Z+ [' h( N
A. 一个主程序和若干子程序组成( u& `$ `/ M7 K1 Z
B. 函数组成
( @1 K. z0 i- JC. 若干过程组成
4 m* a( ^% F( g- O) l$ K! tD. 若干子程序组成+ [/ M" h0 Z' I
满分:4 分
9 Q! J' K" j* J: ], h( t2. 若有以下程序 #include int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]); } 上面程序输出结果是
! x$ q; v1 a8 i2 a @7 NA. 6
" ^4 c. @7 m$ dB. 8* Y' {5 d( l# z6 _+ i1 _/ L9 c; P- v
C. 4
7 M: G0 v. f, m7 I! D0 X4 D9 @D. 2, J, `+ i0 |2 `' d
满分:4 分; \4 ~: n8 X5 e: J# G
3. 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是
+ ?* c' b% \4 ^4 Q( F$ q1 {A. struct结构体类型的关键字
- F$ s/ `3 n/ wB. example是结构体类型名" X: n. J/ V7 \- y5 G
C. x,y,z都是结构体成员名+ J( X9 a7 L0 X# }
D. struct ex是结构体类型名( k; B" I; s! L' H( T
满分:4 分
; J& i9 _; }" o0 |4. 在16位IBM-PC机上使用C语言,若有如下定义 struct data { int i; char ch; double f; } b; 则结构变量b占用内存的字节数是) h+ q- ?; o9 x$ J
A. 17 d, \4 W5 F2 J/ m- ?- ^: J+ ^
B. 2
3 S H$ ^) i' E3 }C. 7( q' f3 Z* l9 w- ~1 }' L
D. 11: G' q% u; F' \& G, i7 J9 d7 m. l, p
满分:4 分
$ J8 \! M) o W( [5. 以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }
; b5 p' P7 S7 Q6 _A. p和q的类型不一致,不能执行*p=*q;语句( J6 C% Q4 r/ I3 I
B. *p中存放的是地址值,因此不能执行*p=40;语句
' y$ `! e# h2 k- r* \4 Z- D ~C. q没有指向具体的存储单元,所以*q没有实际意义
{. z/ ]4 B8 e' h* `D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果+ E/ O7 b" k, M& g, x
满分:4 分
; c2 E$ b) g6 \6 U* {6. 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); }: V) O5 {/ n8 Q1 W$ r1 N
A. ABCDEFG
s3 x) u6 e' n7 fB. IJHL . p: u& W- s4 q! s, n$ w5 F" q
C. ABCDEFGHIJKL
9 O8 Q) Y: x8 H& ~8 PD. IJKLABCDEFGH
' n- j) j, }+ c2 K& D- k, K 满分:4 分
/ u- m8 Q2 A3 e4 P, I- j6 S0 {7. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是8 t2 V, S! e3 B& X+ E0 K
A. p=1;" _" w9 w! P& k5 A# t1 Z- h
B. *q=2;
( K0 Z* H. E* S6 X3 ZC. q=p;& b$ ?0 |$ L; E& J$ Q
D. *p=5;
3 v8 I* W9 z$ d9 C 满分:4 分. h* y7 Y- T- ]4 j
8. 下列各数据类型不属于构造类型的是, X9 B2 J& V5 `" j+ _: ?1 N, _, u
A. 枚举型/ S; F* g) [: U& P1 d' |! V
B. 共用型
5 {9 R2 _1 f0 t% {/ K1 lC. 结构型/ C6 b, Z% R$ P% C9 h
D. 数组型' R2 @* k) r3 U* `. O* L
满分:4 分
% [. s4 e* `5 U* f- h' F" X: O8 w+ k ?9. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是
4 u" K2 ?+ T& |6 N; a' ]A. a[p-a]
( d. n$ p1 v2 R4 n) t. X d1 `( }B. *(&a[i])
7 Q$ w0 ]$ j- E+ hC. p[i]
/ m, q) D4 I" u, O! h/ `4 O' ]) zD. a[10]
5 c0 D: {. @$ c" T! E& X' u 满分:4 分% o9 B0 G, C6 _: N$ q! K
10. 有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是
7 v$ H8 o q2 B' b7 RA. 2
$ F% O1 ~' i/ b! n( T1 JB. 4
2 m* Z) v( H( F8 H% N5 hC. 6
% s. P/ t5 U" s4 _, ND. 82 u- \4 t3 l7 U
满分:4 分
- U8 H- L8 h7 `: K* E' E s0 ]- }7 A, ~4 H1 x& g
二、多选题(共 5 道试题,共 20 分。)V 1. 下列说法不正确的是______。
; f J- W' a+ fA. C程序由符号构成
. L) A! T r2 o* y' dB. C程序由标识符构成% _: N3 [) S6 b) h# @
C. C程序由函数构成1 j7 P; {+ t8 t v% C/ b
D. C程序由C语句构成
# t; `! Q( T9 X: P# c" `9 R9 l 满分:4 分. g! ]) W* W6 O
2. 在动态存储区中主要存放以下数据______。" g& l J- h0 D6 J/ z( I9 C3 A/ S, I
A. 函数形式参数
9 L2 r) O! }" qB. 自动变量; w) N+ Q5 L' C# }" ?5 q
C. 函数调用时的现场保护和返回地址$ d8 ?, ?' l. b+ [) x, v% U1 r( F
D. 全局变量& ]1 G d, w* ~1 T+ {
满分:4 分
! Q9 N' M0 l9 [+ M$ B: U' u3. C提供的预处理功能主要有______。
' B6 Z9 b1 H9 MA. 宏定义) s; h) ] P; T& Y4 F9 z0 i
B. 文件包含
$ L7 T$ F1 @5 q3 n8 B, yC. 条件编译
! t) Z# U& O; w* h3 m& qD. 异常终止" X0 G) k. A: p& _/ v/ ]
满分:4 分
: m+ m w5 }& p7 k4. 关于实参和形参的说法正确的是______。
7 h- D+ y& s! {0 M+ ^: QA. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
" R; t2 L6 P% S) ]& x: l+ G7 \B. 实参可以是变量、常量或表达式
0 c9 {. O4 N7 G9 TC. 实参与形参的类型应相同或赋值兼容
# }' j4 K* A+ E- A. U8 j4 GD. 实参变量对形参变量的数据传递是“值传递”$ ~+ `" e3 e" e$ p: e) [ a5 @
满分:4 分
N+ ]3 W- `; ?- E& e8 p/ N. C G5. 带参宏定义与函数的区别是:______。
" F0 r1 R) C O# ?2 o: cA. 函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换# ?" N. E6 U' H
B. 函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的* ^* V! C2 O( V( e
C. 宏不存在类型问题,宏名和参数都不存在类型问题# x# s% V, k, V8 F% G: @& H
D. 调用函数只能得到一个返回值,而使用宏可设法得到几个结果
' |4 E4 D Y0 J6 I2 Y 满分:4 分 3 c7 g) N* r9 j% I6 ?
. c) e# P6 L" q Z7 R
三、判断题(共 10 道试题,共 40 分。)V 1. 函数必须有返回值,否则不能使用函数
! v6 k( G+ e3 _3 j+ W& _4 t- DA. 错误/ M0 Z3 v. z7 _4 Y8 m. w
B. 正确
3 c# k4 `' g0 ]8 R, C" M: U: E% ^ 满分:4 分0 H+ O. L, l! m
2. C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( ). \* M( K# G5 L; r, W7 C. a
A. 错误
, q9 B/ j0 T2 H8 E$ D qB. 正确; y$ m! q! ^: _4 c6 h4 }( f- h. g1 n
满分:4 分$ d, }$ e$ V" M r
3. 宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。! ^) ?' I! n! d0 `6 {8 k
A. 错误" Z7 D# ^& y, h% }8 ]
B. 正确
& }; O& a1 _$ N/ |0 C& u 满分:4 分0 s. b! b/ I! k# P; e
4. 使用printf和scanf函数时,必须添加#include <stdio.h>命令。( )
; m3 o i; j1 m* r3 Q* i( n/ EA. 错误" L1 ]8 {* V1 k l
B. 正确
) j" W; a& s9 M- F 满分:4 分. m' S5 U3 o3 r4 o9 `& I
5. C语言编译系统在给出逻辑运算结果时,以数值1代表真,以0代表假,但在判断一个量是否为“真”时,以0代表假,以非0代表真。( )
; z) {+ P; p6 r) s& F; b- ?A. 错误
% D" r& U) K) Z# ^* }B. 正确
; i& ]- W% E3 `( @# m! O, \% J 满分:4 分; Q4 W( b( k4 ~8 k
6. 调用函数只可得到一个返回值,而用宏可以设法得到几个结果。
/ Q4 s3 |/ J. b- [/ J4 s+ G6 LA. 错误
' n3 l! `0 U: U& D! BB. 正确
2 K0 `* D$ c# Z5 D" q: V* ~, W/ B+ ? 满分:4 分; o2 _- F7 x, D& v' s1 v
7. switch语句中,各个case和default的出现次序不影响执行结果。( )
7 N$ \' |/ [+ w$ o4 NA. 错误
5 x, v( a5 O. ^6 e( CB. 正确' z5 M( ]3 n0 k- z
满分:4 分; C0 D' d. b2 @- b" s- X
8. for(;;)语句相当于while(1)语句
! e& F/ {/ I+ i( S1 bA. 错误9 X8 g% T ~0 f: k. M* [1 g
B. 正确
6 V* {- y {2 Y# s 满分:4 分& F/ R' k3 g" h/ W; _
9. 模运算符要求两侧均应为整型数据。( )
6 k+ F# }. t; I7 {# OA. 错误* o7 e4 y, K, E; R
B. 正确
- }! {5 \2 V! @/ e 满分:4 分
, H% S- |& {4 q7 k10. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
# @8 @1 O1 T% r6 U2 r2 _! z& F. b GA. 错误
+ w- G! ?4 R, lB. 正确1 a! s3 E$ B- ` \! B% u$ a1 H
满分:4 分 7 N* y5 o8 ]% F& S. V
9 a& }. L' F* |, @) |; n+ I
如果资料还未上传请加QQ:1306998094 谢谢 |
|