C语言题库程序设计容易.docx
《C语言题库程序设计容易.docx》由会员分享,可在线阅读,更多相关《C语言题库程序设计容易.docx(52页珍藏版)》请在冰豆网上搜索。
C语言题库程序设计容易
试卷编号:
18337
所属语言:
TurboC
试卷方案:
phq1
试卷总分:
220分
共有题型:
1种
一、程序设计共22题(共计220分)
第1题(10.0分)题号:
313
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输
出判断结果。
请编写fun函数。
说明:
所谓"水仙花数"是指一3位数,其各位数字立方和
等于该数本身。
例如:
153是一个水仙花数,因为153=1+125+27。
------------------------------------------------*/
#include"stdio.h"
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intn,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d是水仙花数\n",n);
else
printf("%d不是水仙花数\n",n);
getch();
yzj();
}
yzj()
{
FILE*IN,*OUT;
intiIN,i;
intiOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intbw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;
elsereturn0;
----------------------
第2题(10.0分)题号:
395
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
产生20个[30,120]上的随机整数放入二维数组
a[5][4]中,求其中的最小值。
------------------------------------------------*/
#include"stdlib.h"
#include"stdio.h"
intamin(inta[5][4])
{
/**********Program**********/
/**********End**********/
}
main()
{
inta[5][4],i,j;
clrscr();
for(i=0;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=random(120-30+1)+30;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("min=%d\n",amin(a));
yzj();
getch();\
}
yzj()
{
FILE*IN,*OUT;
intm,n;
inti[5][4];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(m=0;m<5;m++)
for(n=0;n<4;n++)
{
fscanf(IN,"%d",&i[m][n]);
}
o=amin(i);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,j,s;
s=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<4;j++)
if(s>a[i][j])s=a[i][j];
return(s);
----------------------
第3题(10.0分)题号:
22
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
-------------------------------------------------*/
#include"stdio.h"
intfun(intx[],intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
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);
yzj();
}
yzj()
{
FILE*IN,*OUT;
intiIN[10],i;
intiOUT,iCOUNT;
IN=fopen("4.in","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("4.out","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<10;i++)
{
for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,"%d",&iIN[iCOUNT]);
iOUT=fun(iIN,10);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intmin,i;
min=x[0];
for(i=1;i{if(x[i]returnmin;
----------------------
第4题(10.0分)题号:
23
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘输入一个大于3的整数,调用函数fun判断
其是否素数,然后在main函数中输出相应的结论
信息。
例如:
7是素数,8不是素数。
请编写fun函数。
素数是
仅能被1和自身整除的数
-------------------------------------------------*/
#include"stdio.h"
main()
{
intm,flag;
printf("inputaninteger:
");
scanf("%d",&m);
flag=fun(m);
if(flag)
printf("%disaprime.\n",m);
else
printf("%disnotaprime.\n",m);
yzj();
}
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intiIN,iOUT,i;
IN=fopen("5.in","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("5.out","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti;
intj;
j=1;
for(i=2;i{if(n%i==0)j=0;
}
returnj;
----------------------
第5题(10.0分)题号:
33
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
用do-while语句求1~100的累计和。
------------------------------------------------*/
#include
longintfun(intn)
{
/**********Program**********/
/**********End**********/
}
voidmain()
{
inti=100;
printf("1~100的累加和为:
%ld\n",fun(i));
wwjt();
}
wwjt()
{
FILE*IN,*OUT;
inti;
intiIN;
longintiOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%ld\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
inti=1,sum=0;
do
{sum=sum+i;
i++;
}while(i<=n);
returnsum;
第6题(10.0分)题号:
56
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求1到100之间的偶数之积。
------------------------------------------------*/
#include"stdio.h"
doublefun(intm)
{
/**********Program**********/
/**********End**********/
}
main()
{
printf("ji=%f\n",fun(100));
yzj();
}
yzj()
{
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);
}
答案:
----------------------
doubley=1;
inti;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
returny;
----------------------
第7题(10.0分)题号:
358
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)
例如:
若m=9,则应输出:
1.168229
------------------------------------------------*/
#include"stdio.h"
doublefun(intm)
{
/**********Program**********/
/**********End**********/
}
main()
{
intn;
clrscr();
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
getch();
yzj();
}
yzj()
{
FILE*IN,*OUT;
ints,i;
intt;
floato;
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);
}
答案:
----------------------
doubley=0;
inti;
for(i=0;i<=m;i++)
{y+=1.0/(i+5);}
return(y);
----------------------
第8题(10.0分)题号:
376
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)
z=log(x+3)(x>-3)
z=sin(x)/((cos(x)+4)
------------------------------------------------*/
#include
#include
doubley(floatx)
{
/**********Program**********/
/**********End**********/
}
main()
{
floatx;
scanf("%f",&x);
printf("y=%f\n",y(x));
yzj();
getch();
}
yzj()
{
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);
}
答案:
----------------------
doublez;
if(x>10)z=exp(x);
elseif(x>-3)z=log(x+3);
elsez=sin(x)/(cos(x)+4);
return(z);
----------------------
第9题(10.0分)题号:
390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数求表达式的和(n的值由主函数输入)。
1-1/2+1/3-1/4+......+1/m
例如:
当n=20时,表达式的值为0.668771。
------------------------------------------------*/
#include"stdio.h"
floatsum(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intn;
scanf("%d",&n);
printf("sum=%f\n",sum(n));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intm,n;
inti[10];
floato;
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);
}
答案:
----------------------
floats=0;
inti,k=1;
for(i=1;i<=n;i++)
{s=s+k*1.0/i;
k=-k;
}
return(s);
----------------------
第10题(10.0分)题号:
328
/*------------------------------------------------
【程序设计】
--------------------------------------------------
第11题(10.0分)题号:
361
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
把20个随机数存入一个数组,然后输出该数组中的
最大值。
------------------------------------------------*/
#include"stdio.h"
#defineVSIZE20
intvector[VSIZE];
intfun(intlist[]