一、程序设计
该题目来自百度以及个人编写
只可以在Program和End中编写
第11题 题号:497 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数fun将一个数组中的值按逆序存放,并在
main()函数中输出。
例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。
------------------------------------------------*/
#include
#define N 5
void fun(int arr[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[N]={8,6,5,4,1},i;
for(i=0;i
printf("%4d",a[i]);
printf("\n");
fun(a,N);
for(i=0;i
printf("%4d",a[i]);
}
答案:----------------------
int i,t;
for(i=0;i
{ t=arr[i];
arr[i]=arr[n-1-i];
arr[n-1-i]=t;
}
----------------------
第12题 题号:284 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函
数中由键盘输入n值,并输出运算结果。请编写fun
函数。
例如:若n值为5,则结果为153。
------------------------------------------------*/
#include
long int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int n;
long int result;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
}
答案:----------------------
int i;
float f=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
return s;
----------------------
第13题 题号:298 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:用do-while语句求1~100的累计和。
------------------------------------------------*/
#include
long int fun(int n)
{
/**********Program**********/
/********** End **********/
}
void main ()
{
int i=100;
printf("1~100的累加和为:%ld\n",fun(i));
}
答案: --------------------
int i =1, sum =0;
do
{ sum = sum + i;
i++;
} while ( i <= n );
return sum;
第14题 题号:402 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。
说明:所谓"水仙花数"是指一3位数,其各位数字立方和
等于该数本身。
例如:153是一个水仙花数,因为153=1+125+27。
------------------------------------------------*/
#include
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int n,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d 是水仙花数\n",n);
else
printf("%d 不是水仙花数\n",n);
}
答案:----------------------
int bw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;
else return 0;
----------------------
第15题 题号:490 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数fun,求任一整数m的n次方。
------------------------------------------------*/
#include
long fun(int m,int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int m,n;
long s;
long fun(int,int);
printf("输入m和n的值:");
scanf("%d,%d",&m,&n);
s=fun(m,n);
printf("s=%ld\n",s);
}
答案:----------------------
long int x=1;
int i;
for(i=1;i<=n;i++)
x=x*m;
return x;
----------------------
第16题 题号:499 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:有一个一维数组score,内放10个学生的成绩,用一
个函数来求平均成绩。
例如:如果10个学生的成绩分别为92,87,68,56,92,84,
70,65,90,60 则平均成绩为:76.400000
------------------------------------------------*/
#include
float average (float array[10])
{
/**********Program**********/
/********** End **********/
}
main()
{
float score[]={92,87,68,56,92,84,70,65,90,60};
printf("average score is %f\n",average (score));
}
答案:----------------------
int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return aver;
----------------------
第17题 题号:278 难度:易
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项
小于0.0005时停止迭代)。
∏=1-1/3+1/5-1/7+1/9-......
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
-------------------------------------------------------*/
#include
#include
double fun ( double eps)
{
double s=1.0,s1=1.0;
int n=1;
/**********Program**********/
/********** End **********/
}
main( )
{
double x;
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
}
答案:-------------------
while(s1>=eps)
{
s1=s1*n/(2*n+1);
s=s+s1;
n++;
}
return 2*s;
第18题 题号:339 难度:易
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是:计算并输出下列多项式的值,
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如:若主函数从键盘给n输入8后,则输出为S=0.662872。
注意:要求n的值大于1但不大于100。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
-------------------------------------------------------*/
#include
double fun(int n)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int n;
double s;
printf("\nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\ns=%f\n",s);
}
答案:--------------
int i;
double s=0.0;
for(i=1;i<=n;i++)
s=s+(1.0/(2*i-1)-1.0/(2*i));
/*计算S=(1-12)+(13-14)+(1/(2n-1)-12n)*/
return s;
第19题 题号:294 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:对任意输入的 x,用下式计算并输出 y 的值。
5 x<10
y= 0 x=10
-5 x>10
------------------------------------------------*/
#include
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
void main ()
{
int x,y;
printf("enter x:");
scanf("%d",&x);
y=fun(x);
printf("x=%d,y=%d\n",x,y);
}
答案:-----------
int m;
if(n<10)
m=5;
else
if(n==10) m=0;
else m=-5;
return m;
或
int m;
if(n>=10)
if(n>10)
m=-5;
else m=0;
else m=5;
return m;
第20题 题号:467 难度:易
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:用辗转相除法求两个整数的最大公约数。
------------------------------------------------*/
#include
int gcd(int n,int m)
{
/**********Program**********/
/********** End **********/
}
main()
{
int n,m,result;
scanf("%d%d",&n,&m);
result=gcd(n,m);
printf("the gcd is %d\n",result);
}
答案:----------------------
int r,t;
if(n
r=n%m;
while(r!=0)
{ n=m;m=r;r=n%m;}
return(m);
----------------------