试卷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日于杭州