c语言期末模拟试卷答案,《C语言程序设计1》期末模拟试卷参考答案(2012.6.16)...

试卷1:

一、程序阅读与填空(每小题3分,共72分)

1. ABDA 2. BDAC

3.DACC 4. DCAB 5.

CDCD 6. BBAC

二、程序编写(第1题8分,第2题10分,第3题10分,共28分)

1. (8分)

#include

void main()

{ double x,y;

(1分)

scanf(“%lf”,&x);

(1分)

if

(x>=0&&x<=3) y =x

+2*x*x; (5分)

else  if (x>3

&& x<=5)   y

=5*x-x*x*x;

else y=x/2-3 ;

printf(“x=%f

,y=%f\n”,x,y); (1分)

}

2. (10分)

#include

void main( )

{ int

count=0, i, m,

a[100]; (2分)

for(i=0;i<100;i++) scanf("%d",

&a[i]); (2分)

scanf("%d", &m); (1分)

for(i=0;i<100;i++) if(a[i]>m)

count++; (4分)

printf("count=%d\n",

count); (1分)

}

3. (10分)

#include

double mypow(double x, int

n) (2分)

{ double

p=1;

int i;

for( i=1;

i<=n;

i++) p*=x; (2分)

return

p;

}

void main()

{  double

x, s=0,

flag=1; (1分)

int n, i;

scanf(“%lf%d”, &x,

&n); (1分)

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

{ (3分)

s+= flag/ mypow (x, i) ;

flag= -

flag;

}

printf(“s=%.3f\n”,s); (1分)

}

试卷2:

一、程序阅读与填空(每小题3分,共72分)

1. D B C A 2. C B A C

3.BACC 4.ABDB 5.

CDAD  6.AABD

二、程序编写(第1题8分,第2题10分,第3题10分,共28分)

1. (8分)

#include

#include

 (1分)

void main()

{

double

x,y; (1分)

scanf(“%lf”,&x);

if

(x>=0&&x<5)

y

=1+2*x; (5分)

else if

(x>=5 &&

x<10) y = sqrt(x)

+log10(x);

else y=5*x*x+x/3

;

printf(“x=%f

,y=%f\n”,x,y); (1分)

}

2. (10分)

#include

void main( )

{ int min,

i, mini,

a[100]; (1分)

for(i=0;i<100;i++) scanf("%d",

&a[i]); (2分)

min=a[0];

(2分)

mini=0;

for(i=1;i<100;i++) (4分)

if(a[i]

{min=a[i]; mini=i;}

printf("min=%d, mini=%d \n", min,

mini); (1分)

}

3. (10分)

#include

double

fact(int

n) (2分)

{ double

p=1;

int i;

for( i=1; i<=n;

i++) (2分)

p*=i;

return

p;

}

void

main()

{ double e, s=0,

flag=1; (2分)

int i=1;

scanf(“%lf”,

&e);

while(1/fact(i)>=e)

{ (4分)

s+= flag/ fact(i) ;

flag= -

flag;

i++;

}

printf(“s=%f\n”,s);

}

试卷3:

试题1(每小题3分,共12分)DCCC

试题2(每小题3分,共12分)CBDC

试题3(每小题3分,共12分)BC(B\C\D均可)D

试题4(每小题3分,共12分)DCCB

试题5(每小题3分,共12分)ABAA

试题6(每小题3分,共12分)CADD

试题7 (14分)

编写程序,输入50个学生的数学成绩和英语成绩int

grade[50][3],统计并输出每门课程的平均分以及至少一门课程不及格学生的人数、两门课程都不及格的人数。

参考答案以及评分标准(不唯一)

#include

#define N 50 // 以上1分

void main()

{

int grade[N][3];

int i;

int num1=0, num2=0;

double

ave1=0,ave2=0; // 以上1分

for(i=0;i

scanf("%d%d",&grade[i][0],&grade[i][1]); // 以上1分

for(i=0;i

{

ave1=ave1+grade[i][0]; //

1分

ave2=ave2+grade[i][1]; //

1分

}

ave1=ave1/N;

ave2=ave2/N;//以上1分

printf("%lf,%lf\n",

ave1,ave2); // 1分

for(i=0;i

{

if(grade[i][0]<60||grade[i][1]<60) // 1分

num1++; // 1分

if(grade[i][0]<60&&grade[i][1]<60) // 1分

num2++; // 1分

}

printf("%d,%d\n", num1,

num2); // 1分

}

试题8 (14分)

编写程序,输入一个正整数n,计算并输出下列算式的值。要求定义和调用函数Func(n)计算1+1/2+1/3+……+1/n,函数返回值的类型是double,并将结果输入到C盘根目录下的文本文件test.txt中。

参考答案以及评分标准(不唯一)

#include

 // 1分

double Func(int

len) // 1分

{

int i=1;

double

sum=0; // 1分

for(;i<=len;i++) // 1分

{

sum=sum+1.0/i; // 2分

}

return

sum; // 1分

}

void main()

{

int n;

FILE

*p; // 以上1分

scanf("%d",

&n); // 1分

printf("%lf\n",

Func(n)); // 1分

p=fopen("c:\\test.txt","w"); // 1分

fprintf(p,"%lf",Func(n)); // 2分

fclose(p); // 1分

}

试卷4:

试题1(每小题3分,共12分)CABA

试题2(每小题3分,共12分)CBDC

试题3(每小题3分,共12分)BCDC

试题4(每小题3分,共12分)AACB

试题5(每小题3分,共12分)BCDA

试题6(每小题3分,共12分)CADD

试题7 (14分)

编写程序,输入一个字符串,统计其中的英文字符、数字字符和其他字符的个数,并输出。

参考答案以及评分标准:(不唯一)

设定计数器3分,输入字符串2分,分类计数9分

#include

#include

void main(

)

{

char s[80];

int i,a=0,b=0,c=0,len;

gets(s);

len=strlen(s);

for(i=0;i

{

if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

{

a++;

}

else

if(s[i]>='0'&&s[i]<='9')

{

b++;

}else

{

c++;

}

}

printf("a=%d,b=%d,c=%d\n",

a,b,c);

}

试题8 (14分)

编写程序,计算并输出下列算式的值:1+1/2!+1/3!+1/4!+1/5!。要求定义和调用函数Func(n)计算n!,函数返回值的类型是double,并将结果输入到C盘的根目录下文本文件test.txt中。

参考答案以及评分标准:(不唯一)

定义子函数4分,求阶乘5分,存入文件4分,格式1分;

#include

double Func(int len)

{

double res=1;

int i;

for(i=1;i<=len;i++)

res=res*i;

return res;

}

void main()

{

FILE *p;

int n,i;

double sum=0;

scanf("%d",

&n);

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

sum=sum+1.0/Func(i);

p=fopen("c:\\test.txt",

"w");

fprintf(p,"%lf",sum);

printf("%lf\n",sum);

fclose(p);

}

试卷5:

一、选择题(每小题3分,共72分)

1. BBCA 2. BCAD 3.

DACB 4. CBAD 5.DCBD 6. BADC

二、编程(共28分)

1. (14分)

#include

#include

 (1分)

void main( )

{ int

i,a[100];

(2分)

int max, maxi;

for(i=0;i<100;i++)

scanf("%d",&a[i]); (2分)

max= a[0];

(2分)

maxi=0;

for(i=1;i<100;i++) (1分)

if(fabs(a[i])> fabs(max)

){ (4分)

max= a[i];

maxi=i;

}

printf("max=%d, maxi=%d\n", max, maxi);

(2分)

}

2. (14分)

#include

double sumn(int n)

(1分)

{  double

p=0; (1分)

int i;

for( i=1;

i<=n; i++) p+=i; (1分)

return

p; (1分)

}

double mypow(int

n) (1分)

{  int

i; (1分)

double s=1;

for( i=1;

i<=n; i++) s*=n; (1分)

return

s; (1分)

}

void main()

{  double x, sum=0;

(1分)

int n, i, flag=1;

scanf(“%d”,&n); (1分)

for( i=1;

i<=n;

i++){ (3分)

sum+= flag* mypow(i)/ sumn(i) ;

flag= - flag;

}

printf(“sum=

%.3f\n”,sum); (1分)

}

试卷6:

一、选择题(每小题3分,共72分)

1. DBCA 2. BDDA 3.

DACC 4. AADA 5.

CBDD 6. CBDA

二、编程(共28分)

1. (14分)

#include

 (1分)

void main( )

{ int

count=0,i,a[100];

(2分)

float aver=0;

for(i=0;i<100;i++)

scanf("%d",&a[i]);

(2分)

for(i=0;i<100;i++) aver=aver+a[i];

(2分)

aver=aver/100;

(1分)

for(i=0;i<100;i++) if(a[i]

count++; (4分)

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

(2分)

}

2. (14分)

#include

float sumn(int

n) (1分)

{  float

p=0; int

i; (1分)

for( i=1;

i<=n; i++) p+=i; (1分)

return

p; (1分)

}

float mypow( float x, int

n) (1分)

{ int

i; float

s=1; (1分)

for( i=1;

i<=n; i++) s*=x; (1分)

return

s; (1分)

}

void main()

{  float x, sum=0;

(1分)

int n, i,

flag=1;

scanf(“%f%d”,

&x,&n); (1分)

for( i=1;

i<=n;

i++){ (3分)

sum+= flag* mypow(x,i)/ sumn(i)

;

flag= - flag;

}

printf(“sum=

%.3f\n”,sum); (1分)

}

2012.6.16日于杭州

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值