《C语言》期末机考
% O: D: v' A( v" {7 A3 w1.[单选题] 已定义以下函数, b0 H- c1 C* w! {% ^4 _# T$ r
int fun( int *p)
9 n! Q0 g* _/ w; W( ]% K* F3 t' e{ return *p; }
7 Y* {8 Q8 r+ P; wfun函数返回值是 ( ); N3 d* G+ o; o% g4 P, }0 t
A.形参p中存放的值
$ [( [+ M% m; z0 g; U$ G B.一个整数
( N# f5 N" _2 H- y' X* ` C.不确定的值2 q) K* F6 E. W1 i$ I! A+ o( v) D( A
D.形参p的地址值
2 M; B$ e6 Z0 M7 V' ?* [ I, U4 G0 i 答:——B——
& g) |' S# j% x" r. I: R! [2.[单选题] 假定所有变量均已正确说明,下列程序段运行后x的值是:
a=b=c=0;x=35;
if(!a)x--;
else if(b);
if(c)x=3;
else x=4;
. x3 p+ a) f. s( ^; _6 b, Q A.34Z. ^+ L# I5 Q' v2 J; U
B.35
. ^6 \4 \2 `1 F/ x' x- q5 ?4 E C.46 { b# |9 Q5 x0 r2 N
D.3" u, f# ~8 `3 l6 A! N' C8 k( w/ t! l" N" K+ }
答:————
, u4 C C) p9 ?# r# s3.[单选题] 在宏定义 #define PI? 3.14159中,用宏名PI代替一个:5 K$ n/ V) Z! |; o
A.字符串1 W3 I/ S3 K, a: p. n
B.双精度数- u$ I$ S& A3 J$ U
C.单精度数( n6 B3 e ]/ i7 e, H: z
D.常量' f! i8 ^, d3 O, P: y6 D
答:————1 h8 I2 C% W5 W4 a0 V' U$ ^; m
4.[单选题] 以下程序的输出结果是:
#include
main(? )
{??? char??? *p1,*p2,str[50]="ABCDEFG";
p1="abcd";????? p2="efgh";
strcpy(str+1,p2+1);??? strcpy(str+3,p1+3);
printf("%s",str);
}
/ D: u& S$ R; c3 |: p( l0 U* U A.Afgd
7 }# V2 G* R/ e: Q! h# ? B.Abfhd" D# V$ v: u# i. {; L
C.AfghdEFG* z5 H# f' `. c
D.Afghd4 k9 G. p, Z p$ y& H. N
答:————
- @) x1 P- K% N) U' B7 s* C5.[单选题] 在C语言中,合法的长整型常数是:
9 \2 J/ u8 E: E! }7 S A.2.1869e10
+ t1 A5 ]3 l; f B.4962710
$ }) b G! [2 i2 U4 f C.0.054838743
7 m- J( o' x& S* S2 k: i D.0L
( g* N8 h1 E# D& C6 `2 y 答:————A( }0 h9 O. q9 P1 |9 H
6.[单选题] 若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;
FILEL? CHINA? BEIJING? SHANGHAI
程序的输出结果是:
main(int argc,char *argv[])
{?? while(argc-->0)
{??? ++argv;printf("%s? ",*argv);}
}( A- G" Z5 n9 Q9 d9 w5 e- ?
A.CHINA BEIJING SHANGHAI
* t- u" C$ R$ O B.FILEL CHINA BEIJING6 O& E# }' [% ]
C.F C B
1 d8 d4 M" A% F0 ]& L% k D.C B S
) |- c [$ I- f# o* \ 答:————9 d# W/ N% H8 f# p+ z0 q7 J6 o2 D
7.[单选题] 能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是_______。
& S& E& [" G: F6 x5 @3 w A.(x>=1) || (x<=10) || (x>=200) || (x<=210)
4 }4 U* q) @( ?# t' @+ E$ {/ v B.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
* X# {; j" ^# E* M4 x' }* C C.(x>=1)&&(x<=10) || (x>=200)&&(x<=210)
8 I A- t9 h8 B5 e% c( r D.(x>=1) || (x<=10)&&(x>=200) || (x<=210); t0 j: S% B q! u
答:————
! x: ~% O. n& L4 E1 B7 a$ e, }. K8.[单选题] 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( )6 } R; A4 A6 [+ D3 J: V: v1 R
A.称为函数的循环调用
! n- I; `9 S9 s/ e7 g& b B.称为函数的间接递归调用! q* ` d' V2 i$ k( E
C.称为函数的直接递归调用
1 d0 _. o4 N1 N/ S$ Y" G D.C语言中不允许这样的递归调用
4 J) k* O# r" ~. L 答:————
7 f8 O( Q4 K, q9.[单选题] 请选出以下语句的输出结果:
printf("%d\n",strlen("\t\"\065\xff\n"));' \1 H2 w8 U! q% S2 d4 ^
A.输出项不合法,无正常输出0 w4 u; H$ m' F! F+ V- `* T
B.8
7 Y' W( W, ~5 C7 N+ K, P, c C.14
0 w( W6 [/ t$ N T D.5
2 h- ^$ v8 G0 I# W 答:————
4 M; N/ W% P4 E2 Z2 w- ~10.[单选题] 不能把字符串:Hello!赋给数组b的语句是:
/ ]. r8 I. Z. N A.char b[10];b="Hello!";
$ _# y6 L' H* R7 b7 B9 q0 m B.char b[10]="Hello!";4 N5 o ?6 N& y5 j" Y3 h7 f
C.char b[10]={'H','e','l','l','o','!'};. S0 q2 S- A8 C% E
D.char b[10];strcpy(b,"Hello!");7 z# Y" F$ n8 r* P
答:————! \) m+ `9 F& `6 p. l
11.[单选题] 设有如下程序 :
#include<stdio.h>
main()
{ int **k, *j, i=100;
j=&i;?? k=&j;
printf("%d\n", **k);
}
上面程序的输出结果是
7 m2 d2 E& _; {, X [1 f& { A.100u- [/ r& i( X* T2 P6 u
B.运行错误* h' n. i# _) k& C
C.j的地址" ], y" j2 ~2 k' G, \
D.i的地址
6 K1 |7 k% U! h% U. p& O 答:————
2 B9 I/ x; E1 s- f; r0 G+ c12.[单选题] 以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。
8 z1 J2 F" e8 s4 s A.只能是整数0或非0整数1 E9 w9 e L6 k" j6 u
B.可以是任意合法的表达式
% P) u. V4 m! D9 A* g, I7 \8 P C.只能是整数0或1. h, g, o4 x- j
D.可以是结构体类型的数据1 d6 [1 J7 e3 J) r
答:————/ @8 u5 B! R |8 O( v
13.[单选题] 执行以下程序后,b的值为__??? ___。
main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m;
a=p1= =&m;
b=(-*p1) / (*p2)+7;
printf("a=%d", a);
printf("b=%d", b);
}4 b/ ^* z+ E" ~' b! {
A.a=0 b=7( @, ~- N2 ^. |- E. A
B.a=0 b=-7.67
# q4 o( D7 {( s C.a=1 b=78 N4 j5 U V2 U
D.a=1 b=-7.67( K v" t5 ]: R3 c4 u
答:————
G! I. t @% f1 W/ f9 Q14.[单选题] 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是:
# k) d9 h9 ~9 a7 j A.2.09 M1 a: ~" x0 z/ \6 r5 l: e
B.2/ A& X8 D. t$ z8 `; ? j
C.2.5" v$ Q Q5 O: V2 D$ b/ f1 K8 F
D.1z, g: g U7 k$ y* X8 E3 P
答:————
% T; a& l, w( {# ~- }; H15.[单选题] 有以下程序
#include
main()
{ int?? a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是:% v/ i) K) \0 m W3 k+ g* k9 |4 H' f
A.2,13 |- R% c/ n& p6 ]+ G/ @2 n
B.4,3/ H, ?7 n4 a/ r( W9 ~
C.2,-1! c' k. q# ?) @; G' G/ b6 H
D.3,2
: g+ D' V) _5 O$ ] 答:————% J$ Y5 F% _4 M( h, c6 @ b
16.[单选题] 执行以下程序段时:
x=-1;
do? {x=x*x;??? }?? while(! x);
; P2 o+ x2 x0 s/ W" G \' e A.系统将提示有语法错误
, C: k$ \! i8 J7 N" f B.循环体将执行两次
1 `/ o- t' n' ?+ i C.循环体将执行一次. ^! {5 q" [" k/ s8 t3 W8 l
D.循环体将执行无限次
0 e& O5 c/ } F' N. a 答:————
# J1 F$ K. i2 x2 o! v6 C17.[单选题] 有以下函数
char *fun(char *p)
{ return p; }
该函数的返回值是:$ D$ _5 e4 E( J" D5 b# Y5 [
A.形参p中存放的地址值, Z4 Z, p$ ~! m
B.形参p自身的地址值* o( l, s7 Z4 j( Z) V' C) T
C.一个临时存储单元的地址i b& C: b4 n' m* F# _, |
D.无确切的值! C* E9 I% z9 M2 C9 ~% s
答:————+ H% H9 n. N& v6 P6 L) X: R0 @
18.[单选题] 请选出合法的C语言赋值语句( ). s% @9 |% u7 c8 x+ M% v( \7 `
A.k=int(a+b)
' F9 r7 A/ R, t: L2 o B.a=58,b=58
5 r* a: Z% T5 K- z, u C.i++;
- w6 f7 M2 E6 F D.a=b=58
3 H: g) v* x3 R7 q- A 答:————7 |1 W$ @5 ]- i4 k6 C, D" E
19.[单选题] 下列运算符中优先级最高的是_______。
. y* i! G9 ]6 P. a4 I A.!=
6 R2 _; E p& Y B.+
3 u3 @/ M8 p' |1 `! O0 ^ C.<7 e! e+ l* v/ v* R5 z$ u. ?
D.&&2 F4 v; a- D9 k* b S/ ]" h
答:————- s4 H# Y6 w0 w
20.[单选题] 设有以下宏定义:
#define????? N?????? 3
#define????? Y(n)?????? ( (N+1)*n)
则执行语句:z=2 * (N+Y(5+1));后,z的值为:
( Q% L( o: L; m: q8 q A.421 Z. J/ e/ f) [
B.出错
! i R1 ] p, ?: B2 z2 Z9 t C.54
: _# c' S( o* }/ `, F5 t% G# t D.48
( W) e2 q8 ]" y' a0 U 答:————' v( |' e% H A% _# v5 \
21.[多选题] 以下能对二维数组a进行正确初始化的语句是( )
2 |3 J' w6 r' P2 n3 W7 Y A.int a[2][3]={{1, 2}, {3, 4}, {5, 6}};$ b- ~) A) |5 T# ^" k- ]8 }
B.int a[2][ ]={{1, 2}, {0}};
5 ?+ x2 x8 J7 Y* P' I5 Z2 j0 { C.int a[ ][3]={1, 2, 3, 4, 5, 6};0 K. k r3 @* U% }. d8 o: K% a8 v( a( w
D.int a[2][3]={0};
$ t9 w7 g6 B% ?% J% | 答:————3 |( c$ v. K, Y+ e% n. x" D5 z& H1 T
22.[多选题] 能把字符串:Hello!赋给数组b的语句是( )
# l, l U6 c. F1 I5 ~/ c A.char b[10]={‘‘H‘‘,‘‘e‘‘,‘‘l‘‘,‘‘l‘‘,‘‘o‘‘,‘‘!‘‘};6 `% {# S3 R' p7 S
B.char b[10]="Hello!";
: g/ B3 ^$ i7 k8 d0 I% r8 H- F C.char b[10];strcpy(b,"Hello!");& t3 A: D, K$ K o+ e
D.char b[10];b="Hello!";; L n* \ R' `& }, e- Q
答:————
! t: b- V! \0 a$ m8 K+ a5 ^* y2 l23.[多选题] 以下不合法的字符型常量是( )
# k1 z( \! e' Z( N A.‘‘\081‘‘8 K# n# Z% S) t. I0 m6 i% F
B."\n"
4 |3 r! V$ p3 J" B* ]4 Q, ` C.‘‘\x13‘‘
' ~4 T" o" a( n1 \ D.‘‘\065‘‘8 I7 I, w7 f9 A' A7 b1 [
答:————% f- Z& J3 m' L% q3 Z
24.[多选题] 若要求定义具有10个int型元素的一维数组a,则以下定义语句中正确的是 ( )
( L9 f; C5 [) u& v. R& j A.int n=10,a[n];
6 ^# ~. l( n' ]/ }# F B.int a[5+5];: P0 f0 f4 X5 j5 d" q+ Y; h- H
C.#define N 10
0 {0 K; Q8 r, x# ?1 _int a[N];2 c I, O# v' N" a2 B
D.#define n 5
0 ~2 L' N$ Z r0 Mint a [2*n];8 i0 \( L* L) l6 _& q
答:————
9 f. E1 T7 Y6 s7 p25.[多选题] 对于基本类型相同的两个指针变量之间,可以进行的运算是( )
5 Y( o( @" i% K/ q1 ~* X5 z3 g2 a; U. z A.<
$ D% Y J4 J7 x4 E B.+
' ^! [1 J' h5 O* B* p& L C.=
7 l7 `( f! ^ w0 j* Z7 u- c D.-
5 _, Z" ~& g& _) M9 D. i 答:————
% `, n# T! L9 F' j26.[多选题] 下列定义变量的语句中正确的是( )6 F5 z0 p/ A! r* F" ~: R; }0 u
A.float US$;$ B' F1 ^" P( R7 {" k# l: ~2 V
B.int _int;. s# T/ p0 G/ ? L
C.char For;
+ O, D3 y8 u' J4 n" V D.double int_;
! j5 o3 A' u- O5 y/ B 答:————) I4 N- P0 B4 a0 s+ h
27.[多选题] 已知大写字母A的ASCⅡ码是65,小写字母a的ASCⅡ码是97。以下能将变量c中的大写字母转换为对应小写字母的语句是( )5 o0 `4 _0 w u+ z$ q H( _* T
A.c=c-‘‘A‘‘+‘‘a‘‘1 G" J5 o. [* w- G: C1 W
B.c=(c-‘‘A‘‘)%26+‘‘a‘‘
3 T0 b0 s5 z! y/ P! k9 @0 m C.c=c+32$ b" }; g; H% |& F
D.c=(‘‘A‘‘+c)%26-‘‘a‘‘
# A8 U! E! a- a4 ?3 B, }% ]0 _" P 答:————
# q/ x4 M# }# r' V28.[多选题] 设a为整型变量,能正确表达数学关系:10
A.a==11||a==12||a==13||a==14) Q' `4 U2 `7 c- C3 Y, \
B.10