程序设计部分试题及答案.docx
- 文档编号:9249240
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:25
- 大小:17.70KB
程序设计部分试题及答案.docx
《程序设计部分试题及答案.docx》由会员分享,可在线阅读,更多相关《程序设计部分试题及答案.docx(25页珍藏版)》请在冰豆网上搜索。
程序设计部分试题及答案
第1题/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
-------------------------------------------------*/
#include"stdio.h"
voidwwjt();
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);
wwjt();
}
voidwwjt()
{
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; ---------------------- 第2题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 从字符串s中删除指定的字符c。 -------------------------------------------------*/ #include voidwwjt(); fun(chars[],charc) { /**********Program**********/ /**********End**********/ } main() { staticcharstr[]="turbocandborlandc++"; charc='a'; fun(str,c); printf("str=%s\n",str); wwjt(); } voidwwjt() { FILE*IN,*OUT; charsin[80],cIN; inti; IN=fopen("13.IN","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..itMayBeChanged"); } OUT=fopen("13.out","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..itMayBeChanged"); } for(i=0;i<10;i++) { fscanf(IN,"%s",sin); cIN=getc(IN);cIN=getc(IN); fun(sin,cIN); fprintf(OUT,"%s\n",sin); } fclose(IN); fclose(OUT); } 参考答案 ---------------------- inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]! =c)s[k++]=s[i]; s[k]='\0'; ---------------------- 第3题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求出二维数组周边元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 -------------------------------------------------*/ #defineM4 #defineN5 #include voidwwjt(); intfun(inta[M][N]) { /**********Program**********/ /**********End**********/ } main() { inta[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; inty; y=fun(a); printf("s=%d\n",y); wwjt(); } voidwwjt() { FILE*IN,*OUT; intiIN[M][N],iOUT; inti,j,k; IN=fopen("14.IN","r"); if(IN==NULL) {printf("PleaseVerifyTheCurrerntDir..itMayBeChanged"); } OUT=fopen("14.out","w"); if(OUT==NULL) {printf("PleaseVerifyTheCurrentDir..itMayBeChanged"); } for(k=0;k<10;k++) {for(i=0;i for(j=0;j fscanf(IN,"%d",&iIN[i][j]); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 参考答案 ---------------------- ints=0; inti,j; for(i=0;i s=s+a[i][0]+a[i][N-1]; for(j=1;j s=s+a[0][j]+a[M-1][j]; returns; ---------------------- 第4题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求一个四位数的各位数字的立方和 ------------------------------------------------*/ #include voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } main() { intk; k=fun(1234); printf("k=%d\n",k); wwjt(); } voidwwjt() { FILE*IN,*OUT; intiIN,iOUT,i; IN=fopen("22.IN","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..itMayBeChanged"); } OUT=fopen("22.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); } 参考答案 ---------------------- intd,k,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; ---------------------- 第5题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 计算并输出给定整数n的所有因子之和(不包括1与 自身)。 注意: n的值不大于1000。 例如: n的值为855时,应输出704。 ------------------------------------------------*/ #include voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } main() { printf("s=%d\n",fun(855)); wwjt(); } voidwwjt() { FILE*IN,*OUT; intiIN,iOUT,i; 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,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 参考答案 ---------------------- ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; ---------------------- 第6题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写程序,实现矩阵(3行3列)的转置(即行列互换) 例如: 输入下面的矩阵: 100200300 400500600 700800900 程序输出: 100400700 200500800 300600900 ------------------------------------------------*/ #include voidwwjt(); intfun(intarray[3][3]) { /**********Program**********/ /**********End**********/ } main() { inti,j; intarray[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } fun(array); printf("Convertedarray: \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } wwjt(); } voidwwjt() { inti,j,array[3][3]; FILE*rf,*wf; rf=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<3;i++) for(j=0;j<3;j++) fscanf(rf,"%d",&array[i][j]); fun(array); for(i=0;i<3;i++) { for(j=0;j<3;j++) fprintf(wf,"%7d",array[i][j]); fprintf(wf,"\n"); } fclose(rf); fclose(wf); } 参考答案 ---------------------- inti,j,t; for(i=0;i<3;i++) for(j=0;j {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t;} ---------------------- 第7题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。 ------------------------------------------------*/ #include #include"conio.h" voidwwjt(); intfun(intw) { /**********Program**********/ /**********End**********/ } main() { intm; printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%d\n",fun(m)); wwjt(); } voidwwjt() { FILE*IN,*OUT; intc; intt; into; 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); } 参考答案 ---------------------- intk,s=0; do {s=s+(w%10)*(w%10); w=w/10; }while(w! =0); if(s%5==0)k=1; elsek=0; return(k); ---------------------- 第8题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 调用函数fun判断一个三位数是否"水仙花数"。 在main函数中从键盘输入一个三位数,并输 出判断结果。 请编写fun函数。 说明: 所谓"水仙花数"是指一3位数,其各位数字立方和 等于该数本身。 例如: 153是一个水仙花数,因为153=1+125+27。 ------------------------------------------------*/ #include voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } main() { intn,flag; scanf("%d",&n); flag=fun(n); if(flag) printf("%d是水仙花数\n",n); else printf("%d不是水仙花数\n",n); wwjt(); } voidwwjt() { 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; ---------------------- 第9题/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数fun其功能是: 根据整型形参m,计算如下 公式的值: y=1+1/3+1/5+1/7+…+1/(2m+1) 例如: 若m=9,则应输出: 2.133256 ------------------------------------------------*/ #include voidwwjt(); doublefun(intm) { /**********Program**********/ /**********End**********/ } main() { intn; printf("Entern: "); scanf("%d",&n); printf("\nTheresultis%1f\n",fun(n)); wwjt(); } voidwwjt() { 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=1; inti; for(i=1;i<=m;i++) {y+=1.0/(2*i+1);} return(y); ---------------------- 第10题*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 对任意输入的x,用下式计算并输出y的值。 -1x<0 y=0x=0 1x>0 ------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 部分 试题 答案