|
一、单选题(共 10 道试题,共 40 分。)V 1. 一个C语言程序是由
R5 _" F8 w8 N" _A. 一个主程序和若干子程序组成- J7 x9 s& F$ G, f
B. 函数组成
; L) u9 R5 {& P- MC. 若干过程组成
3 \; } r' L4 I" R# `2 \D. 若干子程序组成2 B. _/ |& `8 D( P
满分:4 分
" n4 [: ^" ]% d4 ]5 M2. 若有以下程序 #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]); } 上面程序输出结果是) p E9 B' {% L; P7 T- `" W
A. 6
1 V* _6 y# u+ N* C' hB. 84 p# L3 ^" ]* x: Z0 d
C. 4# U4 r2 \( ~( K* ~# A
D. 2* P0 }4 ^3 S3 f% l8 A7 e! Z
满分:4 分: g6 H& r; m! p$ l( r: [: J
3. 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是+ ]+ o" H/ Q% Z
A. struct结构体类型的关键字
9 A3 J: b. r5 j# t3 CB. example是结构体类型名
2 ]; ^8 x2 a& O2 W* LC. x,y,z都是结构体成员名! i) T0 f* n( B+ n( A
D. struct ex是结构体类型名5 V2 X7 ^/ d e# M v
满分:4 分
. a% u$ e& S$ [5 B2 ]+ Q" b4. 在16位IBM-PC机上使用C语言,若有如下定义 struct data { int i; char ch; double f; } b; 则结构变量b占用内存的字节数是
! z6 s* A8 D8 R* ?/ mA. 1
& Q8 v6 {5 k1 v* @B. 2: w* j! n% i! U% N7 a
C. 7
& S r& J1 C* r0 h( [* B2 AD. 114 |, B, j! |; d' y" s$ P' p9 k: `
满分:4 分' i% X0 l/ y3 Y5 k7 X* F5 J
5. 以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }
0 e, o& F; _& W5 k! KA. p和q的类型不一致,不能执行*p=*q;语句
: _1 h4 M1 D' f2 {7 `B. *p中存放的是地址值,因此不能执行*p=40;语句
1 }) W2 u9 w: u5 n" E# ~6 s% jC. q没有指向具体的存储单元,所以*q没有实际意义
) `' O7 E5 N1 t" A4 O' O1 f7 V' g! Z$ rD. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果3 v0 ~& |$ T* t3 b" K6 T9 i6 { k
满分:4 分
5 }" w- P6 b1 J0 j- o9 L {% r' w6. 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); }
6 j1 M& }4 V! u7 x5 rA. ABCDEFG q5 G P2 M9 S9 x: s
B. IJHL
6 P) |1 A+ T) x3 l+ J6 X7 Q1 h9 G- _C. ABCDEFGHIJKL! b E8 Y) m! _* }, j7 b/ F
D. IJKLABCDEFGH
, F" K. K1 Q+ q# w 满分:4 分) e; u6 s1 Y- ^4 F
7. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是2 @( I. \. U8 {/ \
A. p=1;* t4 f& \" S, l2 A: G
B. *q=2;
6 K9 `) l9 v1 z/ C% HC. q=p;
1 s- C0 `9 n. ~+ }8 rD. *p=5;1 ~, V0 A* D, U/ s; }" ?3 ]! t
满分:4 分0 W- a* m. k& ^5 u! E: D
8. 下列各数据类型不属于构造类型的是
, [& ?6 Q- u8 g* N+ XA. 枚举型. f* w# e- z! a+ S! A3 h; l
B. 共用型 L$ b; [* b0 v
C. 结构型
% [$ K; W+ u4 A! Z+ |1 pD. 数组型
1 ^3 D( O# {( L7 D. M 满分:4 分. d( K9 d( H2 @" u4 W/ B
9. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是3 h6 m! ?9 h, n
A. a[p-a] Y0 ?& f+ R9 s/ Y
B. *(&a[i])6 Z1 s3 u7 o* l; _
C. p[i]/ P! b7 }6 J s3 i) H
D. a[10]
3 R+ H" O2 b3 O* O9 o 满分:4 分9 U r# G$ _$ Q+ ~ T
10. 有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是9 d0 A) @6 |3 }( B2 M$ I
A. 2* S; d4 c/ V& p
B. 4
) o+ \8 @9 @( v6 `6 `C. 6
# T$ m. Q6 |. xD. 8
1 _; N1 d# O. n: J8 I r8 L 满分:4 分 9 ?2 P& w* S) z3 {( K
$ Q& ?# ^ u- E" a! Y二、多选题(共 5 道试题,共 20 分。)V 1. 下列说法不正确的是______。) {& I, `" _3 E. G, W
A. C程序由符号构成
/ r g9 K- S/ M f0 ?7 TB. C程序由标识符构成
- q! x1 |9 e) D' w3 F+ B1 SC. C程序由函数构成
" |; Y+ ]% w) d7 h# \. jD. C程序由C语句构成
4 i; A. }6 _2 z1 ^ 满分:4 分7 R5 a% m( ? U' E: D6 [% B0 Z
2. 在动态存储区中主要存放以下数据______。9 x u' S9 }7 x& h8 K
A. 函数形式参数- c; k' b( C- g7 r/ J4 @5 ]
B. 自动变量3 T, y2 n' n: W) k1 K( D; i
C. 函数调用时的现场保护和返回地址$ ~& k% R, r2 ]: ]
D. 全局变量/ d+ L! Z1 q- O8 l p, L0 [
满分:4 分
% ]; A; U0 I7 o; R( l) `3. C提供的预处理功能主要有______。2 A, i! _$ [ H" Q" R, ~: {8 n) _/ J
A. 宏定义
& K# k$ r! _0 iB. 文件包含5 G/ P @4 e; s/ B4 T
C. 条件编译
; f, s/ C6 C8 ~. i' X7 H! iD. 异常终止% _, ^/ Q4 c- K& o2 N* n. \
满分:4 分9 w8 R: u' r5 b4 M+ P [
4. 关于实参和形参的说法正确的是______。
& J9 z1 \6 j- W2 h: t: x" z5 Y& q- NA. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
& |' E- i. r4 [5 h! F1 b; w4 z, cB. 实参可以是变量、常量或表达式
% A; q% |7 i7 N) d9 v& fC. 实参与形参的类型应相同或赋值兼容0 D/ e4 X n. o9 J" u& r! o
D. 实参变量对形参变量的数据传递是“值传递”1 s4 N, w* h9 R1 ?5 p; G8 t+ l5 ]
满分:4 分
6 V j: L6 x8 ?5. 带参宏定义与函数的区别是:______。
3 z4 l5 v/ L# \( {5 j; t5 eA. 函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换+ |9 Z& ]) C5 h6 A
B. 函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的! t5 `9 w2 O F8 `
C. 宏不存在类型问题,宏名和参数都不存在类型问题
5 `! [7 B( b2 ^# ?/ O7 u/ ^$ {D. 调用函数只能得到一个返回值,而使用宏可设法得到几个结果) [6 x( x" ?* s1 Y# C
满分:4 分
% e5 s* ~3 z, ^( b% @& K5 w' J- F0 H0 u/ r g4 |: h* j
三、判断题(共 10 道试题,共 40 分。)V 1. 函数必须有返回值,否则不能使用函数
: m1 l1 Y* f$ v. j( ^7 {) C4 ?+ p3 R r5 NA. 错误
+ T6 o O& t2 ^# yB. 正确3 P# a. B! I* a' o ~
满分:4 分
! V) e- {" f& }7 z, P3 M2. C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )
6 g# P, b5 l, p; g D% r5 e* JA. 错误7 b6 L: S4 `8 ?* g6 x
B. 正确
* A' c; G" _0 t5 a# ~6 r 满分:4 分- A/ S( X. @! I( S. t& ~3 P
3. 宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。
# c* d A- k6 N) w9 W( _/ T+ CA. 错误
; h, |9 ]% L8 A& K+ P: hB. 正确
0 }( x; } z! n5 x( V3 K! p; e. m5 z 满分:4 分5 d; ]3 z" Q7 J9 Y( {5 C/ N1 x
4. 使用printf和scanf函数时,必须添加#include <stdio.h>命令。( )9 }! z( N3 D+ e, J* R: [
A. 错误
- S1 Y, l; z* s! B; w" g+ xB. 正确/ O4 z8 _0 T6 v$ y: h3 p
满分:4 分
, v0 O, T9 y3 d/ z5. C语言编译系统在给出逻辑运算结果时,以数值1代表真,以0代表假,但在判断一个量是否为“真”时,以0代表假,以非0代表真。( )
: u# f4 m% R1 PA. 错误+ d4 f! ]$ e& o4 w4 O
B. 正确2 w5 f, ]+ R3 {1 E+ o
满分:4 分. y0 z9 c- |) b* U
6. 调用函数只可得到一个返回值,而用宏可以设法得到几个结果。: ?" j) c- @# S# c* ]6 C& ^! K) o
A. 错误* W( r- S! w% g3 |* O5 G
B. 正确
4 I' P9 z2 Q8 ?+ x+ u R 满分:4 分; d# H0 `5 J+ Q- F
7. switch语句中,各个case和default的出现次序不影响执行结果。( )! ?' R/ Y2 K$ {' ?+ q& U0 L/ u* L
A. 错误
3 G8 | J! J3 l( I5 p$ e& J: fB. 正确
+ g$ d% e! E4 \) n( v) y 满分:4 分+ l5 \8 m7 f7 Q* a. N* ?3 Z
8. for(;;)语句相当于while(1)语句
8 S4 v" H. k1 S- [8 ]A. 错误6 E& K) H8 a/ E
B. 正确2 {& ^+ }; s. M
满分:4 分
$ T4 e$ L9 W/ G0 L- n2 z; O2 _" S! L# Z9. 模运算符要求两侧均应为整型数据。( )2 F3 m; T4 Z+ }2 G. A- { \
A. 错误/ D1 T9 c* G9 i
B. 正确4 G2 O$ @* v+ |: {5 y- N
满分:4 分
0 A$ M5 |3 a7 D- x9 U$ i10. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
6 G' o. C/ |0 o, h' s" B( J3 M& oA. 错误9 a% ^9 E; e% n* F8 u6 w# H
B. 正确7 W" N8 S& w6 T
满分:4 分
6 D- n/ d2 K2 i6 o9 P" {/ `3 j. g; q2 V4 O
如果资料还未上传请加QQ:1306998094 谢谢 |
|