程序设计部分试题及答案.docx
《程序设计部分试题及答案.docx》由会员分享,可在线阅读,更多相关《程序设计部分试题及答案.docx(25页珍藏版)》请在冰豆网上搜索。
程序设计部分试题及答案
第1题/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
-------------------------------------------------*/
#include""
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("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","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("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","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("","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(k=0;k<10;k++)
{for(i=0;ifor(j=0;jfscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
参考答案
----------------------
ints=0;
inti,j;
for(i=0;is=s+a[i][0]+a[i][N-1];
for(j=1;js=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("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","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("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","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;iif(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("","r");
wf=fopen("","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""
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("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","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("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","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,则应输出:
------------------------------------------------*/
#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("","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("","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+=(2*i+1);}
return(y);
----------------------
第10题*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
对任意输入的x,用下式计算并输出y的值。
-1x<0
y=0x=0
1x>0
------------------------------------------------*/
#include<>
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
voidmain()
{
intx,y;
printf("enterx:
");
scanf("%d",