C语言题库程序设计容易.docx
- 文档编号:23439515
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:52
- 大小:21.51KB
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[]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库 程序设计 容易
![提示](https://static.bdocx.com/images/bang_tan.gif)