青大c程序设计题库.docx
《青大c程序设计题库.docx》由会员分享,可在线阅读,更多相关《青大c程序设计题库.docx(102页珍藏版)》请在冰豆网上搜索。
![青大c程序设计题库.docx](https://file1.bdocx.com/fileroot1/2022-12/30/798e8768-a39d-42c3-bdae-6922d76f4117/798e8768-a39d-42c3-bdae-6922d76f41171.gif)
青大c程序设计题库
试卷编号:
10577
所属语言:
C语言
试卷方案:
TC_150********2
试卷总分:
570分
共有题型:
1种
一、程序设计共57题(共计570分)
第1题(10.0分)题号:
352难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
根据整型形参m,计算如下公式的值:
y=1/2+1/4+
1/6+...+1/2m。
例如:
若m=9,则应输出:
1.414484
------------------------------------------------*/
#include
voidwwjt();
doublefun(intm)
{
/**********Program**********/
答案:
----------------------
doubley=0;
inti;
for(i=1;i<=m;i++)
{y+=1.0/(2*i);}
return(y);
--------------------
/**********End**********/
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
inti;
intt;
doubleo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
第2题(10.0分)题号:
406难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun求1000以内所有7的倍数之和。
------------------------------------------------*/
#defineN1000
#include
voidwwjt();
main()
{
intsum;
sum=fun(7);
printf("%d以内所有%d的倍数之和为:
%d\n",N,7,sum);
wwjt();
}
intfun(intm)
{
/**********Program**********/
Inti,s;
S=0;
For(i=7;i<1000;i+=7)
S+=i;
Returns;
/**********End**********/
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[10];
into;
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
o=fun(6);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
第3题(10.0分)题号:
375难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)
z=log(x+3)(x>-3)
z=sin(x)/((cos(x)+4)
------------------------------------------------*/
#include
#include
voidwwjt();
doubley(floatx)
{
/**********Program**********/
Doublez;
If(x>10)z=exp(x);
Elseif(x>-3)z=log(x+3);
Elsez=sin(x)/(cos(x)+4);
Return(z);
/**********End**********/
}
main()
{
floatx;
scanf("%f",&x);
printf("y=%f\n",y(x));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
floati;
doubleo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%f",&i);
o=y(i);
fprintf(OUT,"%ld\n",o);
}
fclose(IN);
fclose(OUT);
}
第4题(10.0分)题号:
357难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)
例如:
若m=9,则应输出:
1.168229
------------------------------------------------*/
#include
voidwwjt();
doublefun(intm)
{
/**********Program**********/
doubley=0;
inti;
for(i=0;i<=m;i++)
{y+=1.0/(i+5);}
return(y);
/**********End**********/
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
inti;
intt;
doubleo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
第5题(10.0分)题号:
389难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数求表达式的和(n的值由主函数输入)。
1-1/2+1/3-1/4+......+1/m
例如:
当n=20时,表达式的值为0.668771。
------------------------------------------------*/
#include
voidwwjt();
doublesum(intn)
{
/**********Program**********/
floats=0;
inti,k=1;
for(i=1;i<=n;i++)
{s=s+k*1.0/i;
k=-k;
}
return(s);
/**********End**********/
}
main()
{
intn;
scanf("%d",&n);
printf("sum=%f\n",sum(n));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[10];
doubleo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<5;n++)
fscanf(IN,"%d",&i[n]);
for(n=0;n<5;n++)
{
o=sum(i[n]);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
第6题(10.0分)题号:
5难度:
中第1章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘为一维整型数组输入10个整数,调用fun函
数找出其中最小的数,并在main函数中输出。
。
------------------------------------------------*/
#include"stdio.h"
voidwwjt();
intfun(intx[],intn){
/**********Program**********/
答案:
intmin,i;
min=x[0];
for(i=1;i{if(x[i]returnmin;
/**********End**********/
}
voidmain(){
inta[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
min=fun(a,10);
printf("%d\n",min);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intin[4],out;
IN=fopen("in.dat","r");
if(IN==NULL)printf("ReadFILEError");
OUT=fopen("out.dat","w");
if(OUT==NULL)printf("WriteFILEError");
for(intj=0;j<5;j++)
{
for(inti=0;i<4;i++)
{
fscanf(IN,"%d",&in[i]);
}
out=fun(in,4);
fprintf(OUT,"%d\n",out);
}
fclose(IN);
fclose(OUT);
}
第7题(10.0分)题号:
367难度:
中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
找出一批正整数中的最大的偶数。
------------------------------------------------*/
#include
voidwwjt();
intfun(inta[],intn)
{
/**********Program**********/
答案:
----------------------
inti,amax=-1;
for(i=0;iif(a[i]%2==0)
if(a[i]>amax)amax=a[i];
returnamax;
----------------------
/**********End**********/
}
main()
{
inta[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf("max=%d\n",k);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN[10],iOUT,i,j;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
fscanf(IN,"%d",&iIN[i]);
iOUT=fun(iIN,10);
}
fprintf(OUT,"%d\n",iOUT);
fclose(IN);
fclose(OUT);
}
第8题(10.0分)题号:
366难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一组数中大于平均值的数的个数。
例如:
给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
------------------------------------------------*/
#include
voidwwjt();
intfun(inta[],intn)
{
/**********Program**********/
答案:
----------------------
inti,k=0;
floats=0,ave;
for(i=0;is+=a[i];
ave=s/n;
printf("%f",ave);
for(i=0;iif(a[i]>ave)k++;
returnk;
----------------------
/**********End**********/
}
main()
{
inta[10]={1,3,6,9,4,23,35,67,12,88};
inty;
y=fun(a,10);
printf("y=%d\n",y);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN[10],iOUT,i,j;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
fscanf(IN,"%d",&iIN[i]);
iOUT=fun(iIN,10);
}
fprintf(OUT,"%d\n",iOUT);
fclose(IN);
fclose(OUT);
}
第9题(10.0分)题号:
327难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
能计算从1开始到n的自然数的和,n由键盘输入,
并在main()函数中输出。
------------------------------------------------*/
#include
voidwwjt();
intfun(intn)
{
/**********Program**********/
答案:
----------------------
intsum,i;
sum=0;
for(i=1;i<=n;i++)
{sum=sum+i;}
return(sum);
----------------------
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intt;
into;
intc;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
第10题(10.0分)题号:
54难度:
易第1章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求1到100之间的偶数之积。
------------------------------------------------*/
#include
voidwwjt();
doublefun(intm)
{
/**********Program**********/
答案:
----------------------
doubley=1;
inti;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
returny;
----------------------
/**********End**********/
}
main()
{
printf("ji=%f\n",fun(100));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN,i;
doubledOUT;
IN=fopen("23.IN","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("23.out","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
dOUT=fun(iIN);
fprintf(OUT,"%f\n",dOUT);
}
fclose(IN);
fclose(OUT);
}
第11题(10.0分)题号:
373难度:
较易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
用函数求fibonacci数列前n项的和。
说明:
fibonacci数列为数列的第一项值为1,第二项值也
为1,从第三项开始,每一项均为其前面相邻两项