《C语言程序设计》模拟卷 * H) f) R. i( e4 D( a, \
题号 一 二 三 四 总分
: M: z9 ]; z# d' V! v5 z得分 0 [4 o6 d a6 U! e. i! Q
评卷人
; Y4 E' I3 Y) ]5 w% p一、选择题:
+ n4 @* O, [0 d5 O1.一个C语言的源程序中______。- B# @+ _4 \# {, y8 q4 Q9 D$ l2 ?
A)必须有一个主函数 B)可以有多个主函数
2 e% Q. b/ D5 I$ _C)必须有主函数和其他函数 D)可以没有主函数
! V' |( p7 o: E9 @9 C8 d+ D! u# `7 y2.执行以下语句的结果为______。
* w' c) [: [2 T: ^ y=10; x=y++;
: m: [5 K& S! {% _5 `& ~ A)x=10, y=10 B)x=11, y=11
; q0 M; j# I( n/ ]( h% z- T C)x=10, y=11 D)x=11, y=108 }$ D) @7 V* U) n
3.执行以下程序段后,c3的值是______。 0 c+ u$ ^% q& Y/ o) m+ ~
int c1=1,c2=2,c3; 8 Q, p+ Z* P5 n( r
c3=c1/c2;
8 s& l8 g L! L, N4 HA) 0 B) 1/2 C) 0.5 D) 1
" O4 S; U% r; v7 [7 a' y4.C语言中字符型(char)数据在内存中的形式存储是______。9 B! z: T, D: F! ]" o9 j2 S1 F
A) 原码 B) 补码 C)反码 D) ASCII码
/ J* L! m, f" L5.下列常数中不能作为C的常量的是______。/ `6 G8 z7 r* i
A) 0xA5 B) 2.5e-2 C) 3e2 D) 2e32.6
3 B. i) t# U& y4 C8 Q; G% k" ], \' {6.C语言中整数-8在内存中的存储形式是______。) L( ~4 M6 O" U" i
A) 1111 1111 1111 1000 B) 1000 0000 0000 10003 D1 u6 V" O% q4 i4 e' B7 T
C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
- k! b# i/ n% n# e3 h$ o8 u$ z- Z7.已知 int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。% \& T/ e) {2 A
A)6 B)12 C)30 D)361 F' _* s& c+ T4 \# O1 k$ H# e% N; P
8.执行以下程序段后,a,b,c的值分别是______。. v' ~ h. {. A; M
int a,b=100,c,x=10,y=9;. f1 M8 G9 S% a5 M
a=(--x==y++)?--x:++y;
" S, ?# w' j. X+ R& h$ C6 N if(x<9)b=x++; c=y;& K3 B) H/ }+ k9 r. y+ `# E# E. Y+ V& w
A)9,9,9 B)8,8,10 C)9,10,9 D)1,11,100 L$ E% g5 ?6 x5 C, O" x5 X
9.一个C语言程序的基本组成单位是______。
. x( o P0 w, B4 t0 r4 O A)主程序 B)子程序 C)函数 D)过程
$ q# L9 P# S+ j: Q. G" A2 ^10.已知函数abc的定义为:/ W" Y3 r' t# P; k! X" ]
void abc ( )7 |5 L' j& x; _- B
{ ....... }
3 n7 Z7 R8 y! o4 i 则函数定义中void的含义是_____。7 ~5 v# Y8 V! ^5 d c6 m
A)执行函数abc后,函数没有返回值
" v+ W, `3 {8 A0 _+ A3 kB)执行函数abc后,函数不再返回
/ I3 z j, E8 T7 t, F, ]* x C)执行函数abc后,可以返回任意类型
2 R: f+ e: p7 |9 @ F) p/ `% z; xD)以上三个答案全是错误的
& X* E& x( E; h: w( L11.以下程序的输出结果是____。5 u- E/ K; K/ p$ S
main(); L1 @7 K0 l1 S
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};7 Z4 t0 S$ m$ {, D7 S
for(i=0;i<3;i++) printf("%d,",x[i][2-i]); # I+ o; n3 {. G
}
1 h' W9 z6 N& H+ v D+ r2 e, SA) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9,+ u1 O* ^% k- g0 S
12.已知:double *p[6];它的含义是_____。
( ~+ K0 k' V* C; d A)p是指向double型变量的指针 B)p是double型数组 * d1 J& B% C! {" q9 x; O/ e3 d/ E' `
C)p是指针数组 D)p是数组指针+ z' u$ k F9 R8 F7 u8 K. z4 \
13.已知:int *p, a; 则语句"p=&a;"中的运算符"&"的含义是_____。; h1 _* X7 ~5 k1 X
A)位与运算 B)逻辑与运算 C)取指针内容 D)取变量地址& n; G4 s) r* J" O, J0 @- E( p
14.变量的指针,其含义是指该变量的( )% l, U. D8 d+ F& ~1 X
A)值 B)地址 C)名 D)一个标志
! z. W9 E o' c( V7 `* |15.下面程序段的运行结果是:( )
* Q [4 c; g0 w4 I char c[ ]=”\t\v\\\0will\n”0 _/ C3 Z5 U# E: y, W6 A5 q
printf(“%d”,strlen(c));% O9 J0 T8 Q7 P: O6 J g
A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定+ M; d* {1 v a; ]8 [. i$ X$ h+ H
二、填空题: 7 T% V! x! ^, m. W% e2 y* a( H8 c
1.表达式10+16%3的值为___________。0 [# T1 }6 m' S1 ~& `: f+ a
2.写出满足下列条件的表达式:a和b都不小于c______________________。
9 h, t! r% v' B& d3 A3.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为_____。0 S/ b: B$ X! |$ P8 x
4.下面函数的功能是求整数1到n的和请把程序补充完整。
( A+ M0 |5 w+ G: l+ Wlong sum( int n)
$ R* T/ j |/ R5 Z( j{ int i;
, f& v" O" ~3 h5 z __________
8 i7 J& K, L9 r: I3 I for(i=1;i<=n;i++)) k& ?" } f+ J9 f
_______________" J P; d8 y$ y! i; _0 N6 q
return s;
( g( F+ L9 [' R9 ^; T9 U" B}
* i+ ~, C/ x* [5 r' ?三、程序阅读题,写出程序的输出结果: ; m E- o2 Y% g% C5 X4 N2 f R
1.#include “stdio.h”
2 X% f4 X5 G g# J3 Y3 i& m main()
4 A' Q) C* w3 D2 a" v+ j {int i, j;
/ @ Y/ K" J+ m' ^) S i=j=2;
( Z$ j1 k) Q) C if(i==1)
5 Y- B% E9 f: P. N; K if(i==2)
7 @3 b$ H1 }; e" c0 E printf(“%d”,i=i+j);
G1 ]- ?6 `8 z" {& O else
& d) A3 _0 A3 B x$ ^; h4 A7 L+ E printf(“%d”,i=i-j);/ ^- B/ O1 q$ F" ~+ u7 E
printf(“%d”,i);
; x" ^$ S$ M, ~) k0 r }
, K' k. f' Q7 K___________________________________。
# L" K6 P- U" q! k$ E. m2.main(). G# I4 z' G( e. q, c9 }, ?5 Z
{int i=3, j r( k8 c; h; f
while(i<10))B0 K! y8 |1 j, l4 F
{if(i<6)
, L5 m& w- R3 a1 z {i+=2;) i6 u5 M* b A) [2 N0 p' j
continue;
# C6 v) ]: E9 s- i8 A0 m }
$ q: j6 }) I$ J else$ t9 K% `' A e) y
printf(“%d ”,++i);Q2 n1 v* e7 K$ I' s e" b
}
% _& l5 H; A1 w# p8 P0 D( W) a }1 w5 J! Z; Q. N) }: k% b
___________________________________。) i( @# K. q: I4 r
3.#include “stdio.h”/ U f) h# R4 k q
#define X 5+ ^6 m! ]0 b; W) o! l
#define Y X+1/ U; ?$ p" U) {$ z, v
#define Z Y*X/2
5 R1 ?' Q, w5 A( y& ~' P main( )
. p" Q, J- k7 Y" K+ A {int a;
8 V! }4 E1 m0 Z1 W3 h a=Y;9 F5 Z5 i M$ O$ g4 m7 H3 w
printf(“%d %d\n”,Z,--a);9 c0 T- u# u# A: i- n: Z* m
}7 k8 c. Z- k5 f8 p! y {6 ]! t
___________________________________。
% g# C' G/ N/ u5 H1 J四、编程题:(共45分); T0 T; z; ^& Q' O6 g ~9 _$ D
1.编程求分段函数y=f(x)的值,f(x)的表达式如下:
& R& t2 Y) r g, f6 X6 L- s 2x+3 x
7 T) }7 Q8 j0 ]! X2 }4 a0 y f(x)= 5x+10 -1≤x≤16 `1 W& @0 D% R: c# P- H$ K! r
12x x>1
- D$ }5 H& w p1 T2.用switch语句编写程序,实现以下功能:从键盘输入数字1、2、3、4。分别显示excellent,good,pass,fail.输入其它键时显示error。
3 ?1 z. \- o [3 O( ?9 o3 G! @" H3.编写一函数,找出一整数的全部因子。* ?0 ]# p& @, w# C" i2 W% M
参考答案:7 Q; J S% A; j& A4 i* t7 [
1、w4 ^1 Y% v7 s
#include "math.h"' f9 ^ O5 H! y, M1 @
main( ) : _6 O5 O2 P) p7 B' b
{float x,y;
5 _/ G% A- i, H printf("input x\n");
! f/ J8 h1 d2 _scanf("%f",&x); 3 j3 U& H4 s2 e3 c) _5 s
if(x
0 J d, F# u9 S0 e) D else if(x>=-1&&x<=1) y=5*x+10;
( ~7 W' `6 g9 F/ t1 L" G5 B else y=12*x;
7 l& _4 R3 J- J9 ~# s2 u0 {printf("x=%f,y=%f",x,y);; p( L7 l# x* Q2 }6 |3 J9 t
}
, G: D& L; w0 |( j: K2、2 ?3 u7 M: H" U- c8 V
main()# T; z+ f4 O& c; x
{ int x; 9 a2 N2 O0 m$ w" Z
printf("please input a number\n");+ O) a" T6 o4 I9 i
scanf("%d",&x);
}3 A' t1 j8 a+ v switch (x)
" X( N1 l3 V& w! W* G0 C5 ^) U" m+ b/ | { case 1: printf("excellent\n");break; 3 ^$ x$ \) H1 K; z- K% D
case 2: printf("good\n");break; / G: i7 G0 R5 w
case 3: printf("pass\n");break;
* S( [ I5 S6 W case 4: printf("fail\n");break; ! i# i: g: | R) V
default : printf("error\n");
R" M( `! @4 c# w5 E6 q }
+ Q. |( K$ k( t( z }4 v3 P5 ~6 M- K
3、
) m: \9 t+ X5 [ xvoid yz(int n) + l# H* n' V" P/ Q% T
{ int i;
1 y S5 K% A# z' T; M# w9 ? for(i=1;i<=n;i++)/ s5 j: ~) r) l* \+ T
I f(n%i==0) printf("%5d",i);
; d6 ~8 u4 v6 {; O return ;
- T6 Q7 w% A8 U D: B: ^4 m }3 y( f2 p6 _3 R" _2 R
. }, o; d( y+ f! V% p6 j