学号 学号 ………………………….. ………………………………….. 2008 ─2009 学年 第 1 学期
《 C语言程序设计 》课程试卷(B卷)
专业: 年级: 考试方式:闭卷 学分:3.5 考试时间:120 分钟
题号 一 二 三 四 五 六 七 八 总分 … …… …线. …. 名线… 姓.…. 名 …… 姓 …… …… …… ……. …. …… 级.…. 班……… 级 … …班 … …… …封 …… 封… …… …… …… 业 …… 专 ……业 ……专 …… …… …… …… …… …… …… …密. …… ) 密…. 部 )、……部系……、(……系院……( …… 院 …… …… …… 卷……. 试…… 卷学…….试大……学江……大长 ……江…长 …得分
阅卷人 得分
一、选择题(每小题2分,共26分)
1. 设有语句:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a 中的数组元素的不正确引用是( )。
A a[p-a] B *(&a[i]) C p[i] D *(&(a+i)) 2. 下列程序的输出结果是( )
#include
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{ int i,j,k; i=10;j=15;
k=10*MIN(i,j);printf(“%d\\n”,k);}
A 15 B 100 C 10 D 150 3. 以下描述中不正确的是( )。
A 数组是一批类型相同的若干个元素的集合 B 数组的各个元素的类型可以不同
C 数组在内存中占用一块连续的存储空间 D 数组是一种构造类型
4.可用作C语言用户标识的一组标识符( )。 A viod B a3_b3 C For D 2a define _123 -abc DO
WORD IF Case sizeof
5. 已知i,j,k为int 型变量,若从键盘输入1,2,3回车,使i的值为 1,j的值为2,k的值为3,以下选项中正确的输入语句是( )。 A scanf(“---”,&i,&j,&k); B scanf(“%d%d%d”,&i,&j,&k);
C scanf(“%d,%d,%d”,&i,&j,&k);
D scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
6. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是( )。 A if(x>0) y=1; B if(x)
else if(x<0) y=-1; if(x>0) y=1;
else y=0; else if(x<0) y=-1; else y=0; C y=-1; D y=0;
if(x) if(x>=0)
if(x>0) y=1; if(x>0) y=1; else if(x==0)y=0; else y=-1; else y=-1; 7. 下列程序输出的结果是( )。 main()
{ int a=0,i; for(i=1;i<5;i++){ switch(i) { case 0:
case 3: a+=2;
case 1:
case 2: a+=3; default: a+=5;}} printf(“%d\\n”,a);
A 31 B 13 C 10 D 20
8.下列程序中,while循环次数是( )。 main()
{ int i=0;
while(i<10){
if(i<1)continue; if(i==5)break; i++;}}
A 1 B 10 C 6 D 死循环,不能确定次数 9. 以下说法中正确的是( )。
A C语言程序总是从第一个函数开始执行
B 在C语言程序中,要调用的函数必须在main()函数中定义 C C语言程序总是从main()函数开始执行
D C语言程序中的main()函数必须放在程序的开始部分
10. C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递
方式是( )。
A 地址传递 B 值传递 C 由用户指定传递方式 D 由实参传给形参,并由形参传回来给实参
11.设有:int[10],i=5;,以下对数组元素引用不正确的是( )。
A a[9] B A[0] C a[i] D a[i+5]
12. 若有定义:int i,j,*p=&i,则与i=j等价的语句是( )。 A i=*p; B *p=*&j; C i=&j; D i=**p;
13. 设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,
的表达式是( )。
A a&&b B a<=b C a||b+c&&b-c D !((a
阅卷人 得分
二、填空题(每小题2分,共24分)
1. 变量的作用域是指变量的有效范围,在作用域内可以引用该变量。 按作用域来说,变量可以分为______________变量和__________变量。 2. 如果程序中已有定义:int k;通过指针变量,将数值10赋值给k的
句是___________。
3.设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则
逻辑表达式(m=a
4. 有下列程序段: s=1.0;
for(k=1;k<=10;k++) s=s+1.0/(k*(k+1)); printf(“%f\\n”,s);
试填空,使下列的程序段的功能完全与之等同。 s=0.0;
____________; d=0.0;
do { s=s+d; _____________;
d=1.0/(k*(k+1));}while ( __________); printf(“%f\\n”,s);
5. 如果不指定精度,格式字符e,E和f默认输出小数点后____位小数。 6. 下列程序的输出结果是( )。 #include
{ char b[30];
strcpy(&b[0],”AB”); strcpy(&b[1],”CDE”); strcpy(&b[2],”FGH”); printf(“%s\\n”,b);}
7. 当函数的返回值的类型与函数定义的类型不一致时,系统
______________________________________。
8. 指针变量是把内存中另一个数据的___________作为其值的变量。 n
9. 下列程序的功能是计算s=∑k!,请填空。 k=0 long f(int n)
{ int i;long s; s=1;
for(i=1;_______;i++)s *=i; return_______;} main()
{ long s; int k,n; scanf(“%d”,&n);
s=___________;
for(k=0;k<=n;k++)s +=_________; printf(“%ld\\n”,s);}
10. 下列程序的输出结果是___________。
#define N 20 #define s(x) x*x #define f(x) (x*x) main()
{ int i1,i2;
i1=800/s(N); i2=800/f(N);
printf(“%d %d\\n”,i1,i2);}
11.C语言中,变量是指_______________________________________。 12. 下列程序由两个文件组成,其运行结果是___________。 /* 文件1 */ /* 文件2 */ int x; static int x=5; sub( ) main( ) { {
x=8; sub( )
} printf(“x=%d\\n”,x); }
相关推荐: