《C语言程序设计基础》期中期末试卷及答案

  • 格式:doc
  • 大小:404.00 KB
  • 文档页数:60

《C语言程序设计基础》试卷及答案

《C程序设计基础与实验》期中、期末试卷及答案目录

2009 - 2010学年第二学期期中考试试卷 ...................................................... 1

2009 - 2010 学年第二学期期中考试答案 ...................................................... 8

2008 - 2009学年第二学期期中考试试卷 ...................................................... 9

2008 - 2009学年第二学期期中考试答案 ..................................................... 18

2007 - 2008学年第二学期期中考试试卷 ..................................................... 20

2007 - 2008学年第二学期期中考试答案 ..................................................... 27

2009 - 2010 学年第二学期期末考试试卷 ..................................................... 29

2009 - 2010 学年第二学期期末考试答案 ..................................................... 37

2008 - 2009学年第二学期期末考试试卷 ..................................................... 39

2008 - 2009学年第二学期期末考试答案 ..................................................... 48

2007-2008学年第二学期期末考试试卷 ....................................................... 50

2007-2008学年第二学期期末考试答案 ....................................................... 58

2009 - 2010学年第二学期期中考试试卷

《C语言程序设计基础及实验》

开课单位: 计算分院 ; 考试形式:闭卷; 考试时间:_2010__年_ 4 _月;

一、单选题

1、设变量已正确定义并赋值,以下正确的表达式是 (1) 。

A、x+z*5=y B、int(15.8%5) C、x=y=z=5 D、x=25%5.0

2、表达式:(int)((double)9/2)-(9)%2的值是 (2) 。

A、0 B、3 C、4 D、5

3、若已知int x=20,下列关系表达式条件的值是 (3) 。

printf("%d ",0

printf("%d\n",0

A、0 0 B、1 0 C、0 1 D、1 1

4、当变量c的值不为2、4、6时,值也为“真”的表达式是 (4) 。

A、(c==2)‖(c==4)‖(c==6) B、(c>=2&&c<=6)‖(c!=3)‖(c!=5)

C、(c>=2&&c<=6)&&!(c%2) D、(c>=2&&c<=6)&&(c%2!=1)

5、下列程序段输出的结果是 (5) 。

int a=3,b=5,c=7;

if(a>b) a=b; c=a;

if(c!=a) c=b;

printf("%d,%d,%d\n",a,b,c);

A、5,5,7 B、3,5,3 C、3,5,5 D、3,5,7

6、下列正确的程序段是 (6) 。

程序段1: 程序段2:

float n,i=1; float n,i=1;

switch(i) switch(i)

{ case i==1: n=i+1; { case i>1&&i<=2: n=i+1;

case i==2: n=i+2; break; case i==2: n=i+2; break;

default: n=i+3; default: n=i+3;

} }

程序段3: 程序段4:

float n,i=1; float n,i=1;

switch(i) switch((int)i)

{ case i=1: n=i+1; { case 1: n=i+1;

case i=2: n=i+2; break; case 2: n=i+2; break;

default: n=i+3; default: n=i+3;

} }

A、程序段1 B、程序段2 C、程序段3 D、程序段4

7、若变量定义int i; double sum=0,下列1+2+…+10正确的程序段是 (7) 。

A、for(i=1; i<=10; i++); B、for(i=1; i<=10; i++); sum=sum+i; sum=sum+i;

printf("%lf ",sum); printf("%f",sum);

C、for(i=1; i<=10; i++) D、for(i=1; i<=10; i++)

sum=sum+i; sum=sum+i;

printf("%d",sum); printf("%f",sum);

8、执行下列程序段后,输出的结果是 (8) 。

int f,f1,f2,i=3;

f1=3;f2=5;

while(i<=5){

f=f1+f2;

printf("%d ",f);

f1=f2; f2=f;

i++;

}

A、8 12 21 B、8 13 22 C、8 12 21 D、8 13 21

9、执行下列程序段后,输出的结果是 (9) 。

int a=1,b=7;

do{

b=b/2;

a=a+b;

}while (b>1);

printf("%d\n",a);

A、4 B、5 C、6 D、7

10、以下正确的函数是 (10) 。

A、double fun(int x, y) B、double fun(int x, int y)

{ int z; {

z=x+y ; z=x+y;

return z; return z;

} }

C、double fun(x, y) D、double fun(int x, int y)

{ int x,y ; double z ; { double z;

z=x+y ; return z ; z=x+y; return z;

} }

二、填空题

1、程序功能是统计学生成绩,输入一个正整数 n,再输入 n 个学生的百分制成绩,统计各等级成绩的个数。成绩等级分为五级,分别为A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。,请填空。

#include

int main(void)

{

int i, mark, n;

int na, nb, nc, nd, ne;

scanf("%d",&n); na = nb = nc = nd = ne = 0;

for(i = 1; i <= n; i++){

scanf("%d", &mark);

if(mark>=90&&mark<=100)

na++;

(11) (mark>=80)

nb++;

else if(mark>=70)

nc++;

else if(mark>=60)

nd++;

(12) 。

ne++;

}

printf("%d%d%d%d%d\n", na,nb,nc,nd,ne);

return 0;

}

11、A、if else B、else if C、else D、switch

12、A、else B、else(mark<60)

C、else if(mark<60) D、else(mark<60&&(mark>=0))

2、程序功能是根据以下的近似公式,计算e的值,精度为eps(精确到最后一项的绝对值小于eps),请填空。

......!31!21!111e #include

#include

int main(void)

{ int i;

double item,sum,fact,eps;

(13)

scanf("%lf", &eps);

for(i=1; (14) ; i++){

sum=sum+item;

(15)

item=1/fact;

}

printf("%.2f\n",sum);

return 0;

}

13、A、item=0,sum=0,fact=1; B、item=1,sum=0,fact=1;

C、item=1,sum=1,fact=1; D、item=1,sum=0,fact=0;

14、A、fabs(item)>eps B、fabs(item)

C、fabs(item)>=eps D、fabs(item)>=1E-5

15、A、fact=fact*i; B、item=item*i; C、i=fact*i; D、i=item*i;

3、下列程序求输入一个整数 in,求它的位数以及各位数字之和。例如 123 的各位数字之和是6,位数是3。请在空白处选择正确的语句。

#include

int main(void)

{

int count, in, sum;

scanf("%d", &in);

sum=0;

count=0;

if(in<0) in=-in;

do{

sum=sum+in%10;

(16)

count++;

}while( (17) );

printf("count = %d, sum = %d\n", count, sum);

return 0;

}

16、A、in=in/count; B、in=in%10;

C、in=in%count; D、in=in/10;