C语言期末考试题库试题及答案
黄冈人事网-刘禹锡陋室铭
1【程序填空】
--------------------------------
-------------------------
题目:下面函数为二分法查找key值。数组中元素已递增排序,
若找到key则返回对应的下标,否则返回-1。
------------------
-------------------------------------*
#include
fun(int a[],int n,int
key)
{
int low,high,mid;
low=0;
high=n-1;
***********SPACE***********
while(【low<=high】)
{
mid=(low+high)2;
***********SPACE***********
if(key***********SPACE***********
else
if(key>a[mid]) 【low=mid+1】;
***********SPACE***********
else
【return(mid)】;
}
return -1;
}
void main()
{
int
a[10]={1,2,3,4,5,6,7,8,9,10};
int b,c;
b=4;
c=fun(a,10,b);
if(c==-1)printf(
else printf(
}
*-------------------------------------------------
------
2 【程序填空】
--------------------------
-------------------------------
题目:求n!,n值由键盘输入。
---------------------
----------------------------------*
#include
void main()
{
int n,i;
float t;
printf(
***********SPACE***********
scanf(【&n】);
i=1;
t=1.0;
***********SPACE***********
while(【i<=n】)
***********SPACE***********
{ 【t*=i】
i++;
}
printf(
}
a*-----------------------------------------------
--------
3 【程序填空】
------------------------
---------------------------------
题目:以下程序的功能是统计一个字符串中的字母、数字、空格、
和其它字符的个数。
-------------------------------
------------------------*
#include
main ()
{
char s1[80];int a[4]={0};
int k;
***********SPACE***********
【void fun(char s[],int[])】;
gets(s1);
***********SPACE***********
【fun(s1,a)】;
puts(s1);
for(k=0;k<4;k++)
printf(
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='0';i++)
if
('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
***********SPACE***********
else if (【'0'<=s[i]&&s[i]<='9'】) b[1]++;
***********SPACE***********
else if
(【s[i]==32】 ) b[2]++;
else b[3]++;
} <
br>*----------------------------------------------
---------
4 【程序填空】
-----------------------
----------------------------------
题目:判断一个给定的整数是否为素数。
------------------
-------------------------------------*
#include
#include
void
main( )
{ int m,i,k;
scanf(
k=sqrt(m);
***********SPACE***********
for(i=2;【i<=k】;i++)
***********SPACE***********
if(【m%i==0】) break;
***********SPACE***********
if(【i>k】)
printf(
else
printf(
}
*--
--------------------------------------------------
---
5 【程序填空】
-----------------------------
----------------------------
题目:以下程序的功能:计算并输出500以内最大的10个能被
13或17整除的自然数之和。
--------------------------
-----------------------------*
#include
***********SPACE***********
int fun(【int k】 )
{
int m=0,
mc=0;
***********SPACE***********
while
(k >= 2 && 【mc<10】)
{
***********SPACE***********
if (k%13
== 0 || 【k%17==0】)
{ m = m+ k; mc++; }
k--;
}
***********SPACE***********
【return(m)】;
}
void main ( )
{
printf(
}
*---------------------------
----------------------------
6 【程序填空】
----
--------------------------------------------------
---
题目:输入N个数据存入数组中,将其倒置存放,并打印输出。
-------------------------------------------------
------*
#include
#define N 10
void main( )
{ int i, t, a[N];
printf(
for(i=0;i
scanf(【&a[i]】);
***********SPACE***********
for(i=0;i<【n2】;i++)
{
t=a[i];
***********SPACE***********
a[i]=【a[n-i-1]】;
a[N-i-1]=t;
}
for(i=0;i
}
*-------------------------
------------------------------
7 【程序填空】
--
--------------------------------------------------
-----
题目:输出Fibonacci数列的前15项,要求每行输出5项。
Fibonacci数列:1,1,2,3,5,8,13...........
--------
-----------------------------------------------*
#include
void main()
{
***********SPACE***********
int
【fib】[15],i;
fib[0]=1;fib[1]=1;
for
(i=2;i<15;i++)
***********SPACE***********
fib[i]=【fib[i-2]+fib[i-1]】;
for(i=0;i<15;i++)
{
printf(
***********SPACE***********
if
( 【i%5==4】 ) printf(
}
}
*----------
---------------------------------------------
8 【程序填空】
---------------------------------
------------------------
题目:以下程序的功能是求100-999之间的水仙花数(水仙花数
是指一个三位数的各个位数字的立方和是这个数本身,
如:153=1^3+5^3+3^3)。
---------------------
----------------------------------*
#include
int fun(int n)
{ int
i,j,k,m;
m=n;
***********SPACE***********
【k=0】
for(i=1;i<4;i++)
{
***********SPACE***********
【j=m%10】
m=(m-j)10;
k=k+j*j*j;
}
***********SPACE***********
if(k==n) 【return(1)】
else return(0);}
void main()
{
int i;
for(i=100;i<1000;i++)
***********SPACE***********
if(【fun(i)】==1)printf(
}
*-----------------
--------------------------------------
9
【程序填空】
---------------------------------------
------------------
题目:某次大奖赛,有10个评委打分,下面的程序是对一名参赛者评分,输入10个评
委的打分分数,去掉一个最高分,一个最低分后,求出平均分即为该参赛者的得分。
-------------------------------------------------
------*
#include
void main()
{
float mark,max,min,aver=0.0,sum=0.0;
int i;
for(i=1;i<=10;i++)
{
printf(输入第%d位评委的打分n
scanf(
if(i==1)
{ max=mark;
***********SPACE***********
【min=mark】;
}
else
if(mark
***********SPACE***********
else
if(【mark>max】)
max=mark;
***********SPACE***********
【sum+=mark】;
}
aver=(sum-max-
min)8;
printf(
}
*------------------
-------------------------------------
10
【程序填空】
---------------------------------------
------------------
题目:输出9*9口诀。
------
-------------------------------------------------*
#include
void main()
{int
i,j,result;
printf(
***********SPACE***********
for
(i=1;【i<10】;i++)
***********SPACE***********
{ for(j=1;j<10;【j++】)
{
result=i*j;
***********SPACE***********
printf(【result】);
}
printf(
}
}
*----------------------------------------
---------------
11【程序填空】
-----------------
----------------------------------------
题目:用辗转相除法求两个整数的最大公约数、最小公倍数。
---------
----------------------------------------------*
#include
void main()
{ int
n,m,nm,r,t;
printf(
scanf(
nm=n*m;
if (m
r=m%n;
***********SPACE***********
while (【r!=0】)
{ m=n;
***********SPACE***********
【n=r】
***********SPACE***********
【r=m%n】
}
printf(
***********SPACE***********
printf(【nmn】);
}
*------------------
-------------------------------------
12【程序填空】
----------------------------------------------
-----------
题目:以下程序的功能是将一个数组中的元素按逆序存放。
-----------------------------------------
--------------*
#define N 7
#include
void main ()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf(
for (k=0;k
***********SPACE***********
for
(k=0;k<【N2】; k++ )
{
s=a[k];
***********SPACE***********
【a[k]=a[N-k-1]】
***********SPACE***********
【a[N-k-1]=s】
}
printf(
for
(k=0;k
【printf】(
}
*-------------------------
------------------------------
13 【程序填空】
-------------------------------------------- -------------
题目:输入3个整数,输出最大数。
- -------------------------------------------------- ----*
#include
void main( )
{ int a,b,c, max;
printf(
scanf(
***********SPACE***********
if(【a>b】)
max=a;
***********SPACE***********
【else】
max=b;
if(max
【max=c】
printf(
}
*--------------- ----------------------------------------
14 【程序填空】
--------------------------------------- ------------------
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
------------- ------------------------------------------*
#include
void main()
{int x,y,z,t;
scanf(
if (x>y)
***********SPACE***********
{【t=x;x=y;y=t;】}
if(x>z)
***********SPACE***********
{【t=z;z=x;x=t;】}
if(y>z)
***********SPACE***********
{【t=y;y=z;z=t;】}
printf(
}
*----- --------------------------------------------------
15 【程序填空】
-------------------------
--------------------------------
题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
-------------------------------
------------------------*
#include
void main()
{
int i,j,k;
***********SPACE***********
for(i=0;【i<4】;i++)
{
for(j=0;j<=4-i;j++)
printf(
***********SPACE***********
for(k=1;k<=【2*i+1】;k++)
printf(
printf(
}
***********SPACE***********
for(【j=0】;j<3;j++)
{
for(k=0;k
***********SPACE***********
for(k=0;k<【5-2*j】;k++)
printf(
printf(
}
}
*--------------------
-----------------------------------
16 【程序填空】
----------------------------------------------
-----------
题目:以下程序的功能:计算并输出high以内最大的10个素数
之和,high由主函数传给fun函数,若high的值为100,
则函数的值为732。
------------------------------
-------------------------*
#include
#include
int fun( int
high )
{
int sum = 0, n=0, j, yes;
***********SPACE***********
while ((high
>= 2) && (【n<10】))
{
yes = 1;
for (j=2; j<=high2; j++ )
***********SPACE***********
if
(【high%j==0】)
***********SPACE***********
{yes=0; 【break】;}
if (yes)
{
sum +=high; n++; }
high--;
}
***********SPACE***********
【return(sum)】;
}
void main ( )
{
printf(
}
*--------------------
-----------------------------------
17 【程序填空】
----------------------------------------------
-----------
题目:输入如下形式的二项式系数列标。要求表的行数运行时输入,
若小于1或者大于10则重新输入。
1
1 1
1
2 1
1 3 3 1
1 4 6 4
1
1 5 10 10 5 1
---
--------------------------------------------------
--*
#include
void main()
{
int a[10][10]={{0}}, i, j, n;
while(scanf(
for(i=0;i<10;i++)
{
a[i][0]=1;
***********SPACE***********
【a[i][i]=1】;
}
for(i=2;i
a[i][j]=a[i-1][j]+【a[i-1][j-1]】;
for(i=0;i
printf(
***********SPACE***********
【printf(】;
}
}
*----
--------------------------------------------------
18 【程序改错】
--------------------------------
------------------------
题目:函数fun的功能是:求1到20的阶乘的和。
请改正程序中的错误,使它能得出正确的结果。
-------------------
-------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
fun()
{
int n,j;
double
s=0.0,t=1.0;
for(n=1;n<=20;n++)
{
**********FOUND**********
t=1;
for(j=1;j<=n;j++)
**********FOUND**********
t=t*j;
**********FOUND**********
s=s+t;
}
**********FOUND**********
printf(
}
main()
{
fun();
}
*-----
-------------------------------------------------
19 【程序改错】
--------------------------------
------------------------
题目:给定程序MODI1.C中函数 fun 的功能是:
用选择法对数组中的n个元素按从小到大
的顺序进行排序。
--------
------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的
结构。
---
--------------------------------------------------
-*
#include
#define N 20
void fun(int a[], int n)
{ int i, j, t, p;
for (j = 0 j < n-1 j++) {
**********FOUND**********
p = j;
for
(i = j;i < n; i++)
**********FOUND**********
if(a[i] **********FOUND**********
p=i;
t = a[p] a[p] = a[j] a[j] = t;
}
}
void main()
{
int a[N]={9,6,8,3,-1},i, m = 5;
printf(排序前的数据:
for(i = 0;i < m;i++)
printf(
fun(a,m);
printf(排序后的数据:
for(i =
0;i < m;i++) printf(
}
*--------------
----------------------------------
20【程序改错】 ------------------------------------------------
--
题目:编写函数fun,求两个整数的最小公倍数,然后用主
函数main()调用这个函数并输出结果,两个整数由
键盘输入。
-------------------------------------------------
-
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
void main()
{
unsigned
int m,n,q;
printf(
scanf(
**********FOUND**********
q=fun(m,n);
printf(
}
int fun(int m,int n)
{
int i;
**********FOUND**********
if (m
for(i=m;i<=m*n;i+=m)
**********FOUND**********
if(i%n==0)
return(i);
}
*-------
-----------------------------------------------
21【程序改错】
---------------------------------
-----------------------
题目:下列程序中,函数fun的功能是:找出一个大
于给定整数m且紧随m的素数,并作为函数值返回。
----------------------
----------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的
结构。
---
--------------------------------------------------
-*
#include
#include
int fun(int m)
**********FOUND**********
{ int i,k;
for(i=m+1;;i++){
for(k=2;k**********FOUND**********
if(i%k==0)
break;
**********FOUND**********
if(k==i)
return(i);
}
}
void main()
{
int n;
printf(
scanf(
printf(
}
*---------------------------------------------
---------
22 【程序改错】
------------------
--------------------------------------
题目:打印出如下杨辉三角形(要求打印出6行).
1
1 1
1 2 1
1 3
3 1
1 4 6 4 1
1
5 10 10 5 1
------------------------
--------------------------------
注意:不可以增加或删除程序行,也不可以更改程
序的结构。
---
--------------------------------------------------
-*
#include
void main()
{ int i,j;
int a[6][6];
printf(
**********FOUND**********
for(i=0;i<6;i++)
{ a[i][0]=1;
a[i][i]=1;
}
**********FOUND**********
for(i=2;i<6;i++)
for(j=1;j
**********FOUND**********
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<6;i++)
{
**********FOUND**********
for(j=0;j<=i;j++)
printf(
printf(
}
}
*---------
---------------------------------------------
23 【程序改错】
--------------------------------
------------------------
题目:给定程序MODI1.C中函数 fun 的功能是:计算正整数num的
各位上的数字之积。例如,若输入:252,则输出应该是:20。若
输入:202,则输出应该是:0。
-------------------------
-------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
-------
-----------------------------------------------*
#include
long fun (long num)
**********FOUND**********
{long k=1;
do
{ k*=num%10
**********FOUND**********
num=10;
**********FOUND**********
} while(num)
return (k)
}
void main( )
{
long n
printf(
printf(
}
*------------------------------------------------
------
24 【程序改错】
---------------------
-----------------------------------
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当
即吃了一半,还不过瘾,又多吃了一个,第二天
早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
--
--------------------------------------------------
----
注意:不可以增加或删除程序行,也不可以更改程序的
结构。 ------------------------------------------------
------*
#include
void main()
{
int
day,x1,x2;
day=9;
**********FOUND**********
x2=1;
while(day>0)
**********FOUND**********
{x1=(x2+1)*2;
x2=x1;
**********FOUND**********
day--;
}
printf(
}
*------------------
------------------------------------
25【程序改错】
---------------------------------
-----------------------
题目:一个5位数,判断它是不是回文数。即12321是回
文数,个位与万位相同,十位与千位相同。
--------------------------
------------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
---
--------------------------------------------------
-*
#include
void main( )
{
**********FOUND**********
long
ge,shi,qian,wan,x;
scanf(
**********FOUND**********
wan=x10000;
qian=x%100001000;
shi=x%10010;
ge=x%10;
**********FOUND**********
if(ge==wan&&shi==qian)
printf(
else
printf(
}
*------------------
------------------------------------
26
【程序改错】
---------------------------------------
-----------------
题目:编写函数fun求20以内所有5的倍数之积。
----------
----------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#define N 20
#include
void main()
{ int sum;
sum=fun(5);
printf(以内所有%d的倍数之积为: %dn
}
int
fun(int m)
{
**********FOUND**********
int s=1,i;
for(i=1;i
if(i%m==0)
**********FOUND**********
s=s*i;
return s;
}
*-------------------
-----------------------------------
27【程序改错】
---------------------------------
-----------------------
题目:请编写一个函数fun,函数的功能是:统计出若干
个学生的平均成绩,最低分以及得最低分的人数。
例如,输入10名学生的成绩分别为92,87,68,56,
92,84,67,75,92,66,则输出平均成绩为77.9,
最低分为56,得最低分的人数为1人。
----------------------
----------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
float Min=0;
int J=0;
float fun(float array[],int n)
{
int
i;float sum=0,ave;
Min=array[0];
for(i=0;i
**********FOUND**********
sum=sum+array[i]; }
**********FOUND**********
ave=sumn;
for(i=0;i
if(array[i]==Min) J++;
return(ave);
}
void main( )
{
float
a[10],ave;
int i=0;
printf(
for(i=0;i<10;i++)
scanf(
ave=fun(a,10);
printf(
printf(
printf(
}
*---
--------------------------------------------------
-
28 【程序改错】
----------------------
----------------------------------
题目:有一数组内放10个整数,要求求出平均值,并打印.
---------
-----------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
float average(float
array[10])
{
int i;
float
aver,sum=array[0];
***********FOUND***********
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum10.0;
return(aver);
}
void main( )
{
***********FOUND***********
float
score[10],aver
int i;
printf(
for(i=0;i<10;i++)
***********FOUND***********
scanf(
printf(
***********FOUND***********
aver=average(score);
printf(
}
*------------------------------------------------
------
29【程序改错】
----------------------
----------------------------------
题目:利用递归方法求5!。
----------------------------
----------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
---
--------------------------------------------------
-*
#include
void main()
{
int fact(int j);
printf(
}
int
fact(int j)
{
int sum;
**********FOUND**********
if(j==0)
**********FOUND**********
sum=1;
else
sum=j*fact(j-1);
**********FOUND**********
return sum;
*-----------------
-------------------------------------
30
【程序改错】
---------------------------------------
-----------------
题目:编写函数求2!+4!+6!+8!+10+12!+14!。
----------
----------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
long sum(int n)
{
**********FOUND**********
int i,j;
long t,s=0;
**********FOUND**********
for(i=2;i<=n;i+=2)
{t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;}
**********FOUND**********
return(s);
}
void main()
{
printf(
}
*---------------
---------------------------------------
31
【程序改错】
---------------------------------------
-----------------
题目:下列给定程序中,函数fun的功能是:判断m是否为素数,
若是返回1,否则返回0。主函数的功能是:按每行5个输
出1-100之间的全部素数。
请改正程序中的4个错误,使它能得出正确的结果。
-----------------------------------------
---------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------
------*
#include
**********FOUND**********
void fun( int
m)
{
int i,k=1;
if(m<=1) k=0;
**********FOUND**********
for(i=2;i
if(m%i==0) k=0;
**********FOUND**********
return k;
}
void main()
{
int m,k=0;
for(m=1;m<100;m++)
if(fun(m)==1)
{
printf(
if(k%5==0)printf(
}
}
*-------------------------------
-----------------------
32 【程序改错】
----
--------------------------------------------------
--
题目:求100以内(包括100)的偶数之和.
-----------
---------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
---
--------------------------------------------------
-*
#include
void main()
{
**********FOUND**********
int i,sum=0;
**********FOUND**********
for(i=2;i<=100;i+=2)
sum+=i;
**********FOUND**********
printf(
}
*------------------
------------------------------------
33
【程序改错】
---------------------------------------
-----------------
题目:用起泡法对10个整数从小到大排序。
程序中共有4条错误语句,请改正错误。
------------
--------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
**********FOUND**********
void sort(int
x[],int n)
{
int i,j,k,t;
for(i=0;i
for(j=0;j
if(x[j]>x[j+1])
{
t=x[j];x[j]=x[j+1];x[j+1]=t;}
}
void
main()
{
int i,n,a[100];
printf(
scanf(
for(i=0;i
sort(a,n);
printf(
for(i=0;i<=n-1;i++)
printf(
printf(
}
*--------
----------------------------------------------
34 【程序改错】
-------------------------
-------------------------------
题目:函数fun的功能是:求出两个非零正整数的最大公约数,
并作为函数值返回。例如,若给num1和num2分别输入49
和21,则输出的最大公约数为7。
请改正程序中的错误,使它能得出正确的结果。
-----------------------------------------
---------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------
------*
#include
int
fun(int a,int b)
{
int r,t;
if(a{
t=a;
**********FOUND**********
a=b;
**********FOUND**********
b=t;
}
r=a%b;
while(r!=0)
{
a=b;
b=r;
**********FOUND**********
r=a%b;}
**********FOUND**********
return b;
}
void main()
{
int num1,num2,a;
printf(
scanf(
a=fun(num1,num2);
printf(
}
*---------------------------
---------------------------
35【程序改错】
-------------------------------------------- ------------
题目:请编写一个函数fun,函数的功能是:求出N×M整
型数组的最小元素及其所在的行坐标及列坐标(如
果最小元素不唯一,选择位置在最前面的一个)。
例如:输入的数组为:
9 2 3
4 15 6
12 1 9
10 11 2
求出的最小数为1,行坐标为2,列坐标为1。
------------------------------------------------- -------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------ ------------------------------------------------*
#define N 4
#define M 3
#include
int Row,Col;
void main()
{
int a[N][M],i,j,min,row,col;
printf(
for(i=0;i
for(i=0;i
for(j=0;j
printf(
}
min=fun(a);
printf(
}
int fun(int array[N][M])
{
int min,i,j;
min=array [0][0];
Row=0;
Col=0;
for(i=0;i
{for(j=0;j
if(min >array [i][j])
{min=array
[i][j];
Row=i;
**********FOUND**********
Col=j;}
}
return(min);
}
*-------
-----------------------------------------------
36 【程序改错】
--------------------------------
------------------------
题目:求n!,n值由键盘输入。
程序中共有4条错误语句,请改正错误。
------------
--------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
void main()
{
int n,i;
**********FOUND**********
float t;
printf(
**********FOUND**********
scanf(
i=1;
**********FOUND**********
t=1;
while(i<=n)
**********FOUND**********
{ t*=i;
i++;
}
printf(
}
*-----------------------
-------------------------
37 【程序设计】
------
--------------------------------------------
题目:编写函数fun,函数的功能是:求1到
m之间(包括m)的偶数之积。
--------------------------
------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
-------------------------
-----------------------*
#include
double fun(int m)
{
**********Program**********
double y=1
int i;
for(i=1;i<=m;i++)
if(i%2==0)
y*=i;
return y;
********** End **********
}
void main()
{
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
iIN,i;
double dOUT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(i=0;i<5;i++)
{fscanf(IN,
dOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*----------------------
--------------------------
38【程序设计】
------
--------------------------------------------
题目:编写函数fun其功能是: 找出一个大于给定整
数且紧随这个整数的素数,并作为函数值返回。
------------------------
--------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
int fun(int n)
{
**********Program**********
int
i,k;
for(i=n+1;;i++)
{
for(k=2;k if(i%k==0)
break;
if(k==i)
return(i);
}
********** End **********
}
void main()
{ int m;
printf(
scanf(
printf(
yzj();
}
yzj()
{
FILE
*IN,*OUT;
int s
int t;
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(s=1;s<=5;s++)
{ fscanf(IN,
o=fun(t);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-
-----------------------------------------------
39 【程序设计】
--------------------------------
------------------
题目:编写函数fun将一个数组中的值按逆序存放,
并在main()函数中输出。
例如,原来存顺序为8,6,5,4,1。要求改为:
1,4,5,6,8。
------------------
--------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
----------------------------------------------
--*
#include
#define N 5
void main()
{void fun(int arr[],int n);
int a[N]={8,6,5,4,1},i;
for(i=0;i
printf(
fun(a,N);
for(i=0;i
yzj();
}
void fun(int arr[],int n)
{
**********Program**********
int
i,t;
for(i=0;i
arr[i]=arr[n-1-i];
arr[n-1-i]=t;
}
********** End **********
}
yzj()
{
FILE
*IN,*OUT;
int n;
int i[10];
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(n=0;n<10;n++)
{
fscanf(IN,
}
fun(i,10);
for(n=0;n<10;n++)
{
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*----------------------------------
--------------
40 【程序设计】
-----------------
---------------------------------
题目:请编写一个函数fun,函数的功能是:统计出若干
个学生的平均成绩,最高分以及得最高分的人数。
例如,输入10名学生的成绩分别为92,87,68,56,
92,84,67,75,92,66,则输出平均成绩为77.9,
最高分为92,得最高分的人数为3人。
----------------------
----------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
float Max=0;
int
J=0;
float fun(float array[],int n)
{
**********Program**********
int
i;
float sum=0,ave;
Max=array[0];
for(i=0;i
ave=sumn;
for(i=0;i
return(ave);
********** End **********
}
void main( )
{
float a[10],ave;
int i=0;
printf(请输入10个数:n
for(i=0;i<10;i++)
scanf(
ave=fun(a,10);
printf(
printf(
printf(
yzj();
}
yzj()
{
FILE
*IN,*OUT;
float iIN[10],iOUT;
int iCOUNT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,
iOUT=fun(iIN,10);
fprintf(OUT,
fclose(IN);
fclose(OUT);
}
*------------
------------------------------------
41 【程序设计】
----------------------------------------------
----
题目:编写函数fun,函数的功能是:找出一批正整数中
的最大的偶数。
---------------------------------
-----------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-----------------------------------
-------------*
#include
int fun(int
a[],int n)
{
**********Program**********
int
i,amax=-1;
for(i=0;i
if(a[i]>amax)
amax=a[i];
return
amax;
**********
End **********
}
void main()
{
int a[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
iIN[10],iOUT,i,j;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
fscanf(IN,
iOUT=fun(iIN,10);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-
-----------------------------------------------
42 【程序设计】
--------------------------------
------------------
题目:编写函数判断一个整数m的各位数字之和
能否被7整除, 可以被7整除则返回1,否则
返回0。调用该函数找出100~200之间满足
条件的所有数。
-----
---------------------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。 ------------------------------------------------
*
#include
int sub(int m)
{
**********Program**********
int
k,s=0;
do
{
s=s+m%10;
m=m10;
}
while(m!=0);
if(s%7==0)
k=1;
else k=0;
return(k);
********** End **********
}
void
main()
{ int i;
for(i=100;i<=200;i++)
if(sub(i)==1)printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
n;
int i[10];
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(n=0;n<10;n++)
{
fscanf(IN,
}
for(n=0;n<10;n++)
{
o=sub(i[n]);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
43 【程序设计】
------------
--------------------------------------
题目:编写函数fun,函数的功能是:计算n门课程的平
均值,计算结果作为函数值返回。
例如,若有5门课程的成绩是:92,76,69,58,
88,则函数的值为76.600000。
---------------------
-----------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
float fun(int a[],int n)
{
**********Program**********
int i;
float y=0;
for(i=0;i
y=yn;
return y;
********** End **********
}
void main()
{
int
a[]={92,76,69,58,88};
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
iIN[10],i,j;
float fOUT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(j=0;j<10;j++)
{ for(i=0;i<5;i++)
fscanf(IN,
fOUT=fun(iIN,5);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-----------------
-------------------------------
44 【程序设计】
--------------------------------------------------
题目:将字符串中的小写字母转换为对应的大写字母,
其它字符不变。
--------------------------
------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
----------------------------
--------------------*
void change(char str[])
{
**********Program**********
int i;
for(i=0;str[i]!='0';i++)
if(str[i]>='a' && str[i]<='z')
str[i]=str[i]-32;
**********
End **********
}
#include
#include
void main()
{
void change();
char str[40];
gets(str);
change(str);
puts(str);
yzj();
}
yzj()
{
FILE *IN,*OUT;
int n;
char i[200];
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
fscanf(IN,
change(i);
fprintf(OUT,
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
45 【程序设计】
------------
--------------------------------------
题目:请编写函数fun,它的功能是:判断m是否为素数
。主函数的功能是:求出100到200之间的素数的
个数。
--
------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
int fun(int m);
void
main()
{
int m,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf(
k++;
if(k%5==0)
printf(
}
printf(
yzj();
}
int fun(int m)
{
**********Program**********
int i,k=1;
if(m<=1)
k=o;
for(i=2;i
k=0;
return k;
********** End
**********
}
yzj()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(i=0;i<10;i++)
{ fscanf(IN,
iOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-
-----------------------------------------------
46 【程序设计】
--------------------------------
------------------
题目: 给定n个数据, 求最小值出现的位置
(如果最小值出现多次,求出第一次出
现的位置即可)。
--------------------------------
------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函数
station的花括号中填入所编写的若干语句。
----------------------
--------------------------*
#include
int
station(int s[],int n)
{
**********Program**********
int
i,k;
k=0;
for(i=1;i k=i;
return k;
********** End **********
}
void main()
{
int a[100],n,i,t;
printf(请输入n值:
scanf(
printf(请输入%d个数:n
for(i=0;i
t=station(a,n);
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int n;
int i[10];
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(n=0;n<10;n++)
{
fscanf(IN,
}
o=station(i,10);
fprintf(OUT,
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
47 【程序设计】
------------
--------------------------------------
题目:编写函数fun求1000以内所有m的倍数之和。
----------
----------------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
----------------------------------------------
--*
#define N 1000
#include
#include
int yzj();
int fun(int m);
void main()
{int sum;
sum=fun(7);
printf(以内所有%d的倍数之和为:%dn
yzj();
}
int fun(int m)
{
**********Program**********
int
s=0,i;
for(i=1;i
s+=i;
return s;
**********
End **********
}
yzj()
{
FILE *IN,*OUT;
int n;
int i[10];
int o;
OUT=fopen(
if(OUT==NULL)
{printf(
}
o = fun(6);
fprintf(OUT,
fclose(OUT);
}
<
br>*----------------------------------------------
--
48【程序设计】
------------------------------
--------------------
题目:调用函数fun判断一个三位数是否水仙花数。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。所谓水仙花
数是指一3位数,其各位数字立方和等于该
数本身。
例如,153是一个水仙花数,因为153=1+125+27。
----------------
----------------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
int fun(int n)
{
**********Program**********
int
bw,sw,gw;
bw=n100;sw=(n-bw*100)10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)
return
1;
else
return 0;
********** End **********
}
void main()
{
int n,flag;
scanf(
flag=fun(n);
if(flag)
printf(是水仙花数n
else
printf(不是水仙花数n
yzj();
}
yzj()
{
FILE *IN,*OUT;
int iIN,i;
int iOUT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(i=0;i<10;i++)
{
fscanf(IN,
iOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
49【程序设计】
-------------
-------------------------------------
题目:编写函数fun其功能是:能计算从1开始到n的
自然数的和,n由键盘输入,并在main()函数
中输出。
-------
-------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
int fun(int n)
{
**********Program**********
int
sum,i;
sum =0;
for(i=1;i<=n;i++)
{sum=sum+i;}
return(sum);
********** End **********
}
void main()
{ int m;
printf(
scanf(
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int t;
int o;
int c;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(c=1;c<=5;c++)
{ fscanf(IN,
o=fun(t);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
1【程序填空
】
---------------------------------------------
------------
题目:下面函数为二分法查找key值。数组中元素已递增排序,
若找到key则返回对应的下标,否则返回-1。
------------------
-------------------------------------*
#include
fun(int a[],int n,int
key)
{
int low,high,mid;
low=0;
high=n-1;
***********SPACE***********
while(【low<=high】)
{
mid=(low+high)2;
***********SPACE***********
if(key***********SPACE***********
else
if(key>a[mid]) 【low=mid+1】;
***********SPACE***********
else
【return(mid)】;
}
return -1;
}
void main()
{
int
a[10]={1,2,3,4,5,6,7,8,9,10};
int b,c;
b=4;
c=fun(a,10,b);
if(c==-1)printf(
else printf(
}
*-------------------------------------------------
------
2 【程序填空】
--------------------------
-------------------------------
题目:求n!,n值由键盘输入。
---------------------
----------------------------------*
#include
void main()
{
int n,i;
float t;
printf(
***********SPACE***********
scanf(【&n】);
i=1;
t=1.0;
***********SPACE***********
while(【i<=n】)
***********SPACE***********
{ 【t*=i】
i++;
}
printf(
}
a*-----------------------------------------------
--------
3 【程序填空】
------------------------
---------------------------------
题目:以下程序的功能是统计一个字符串中的字母、数字、空格、
和其它字符的个数。
-------------------------------
------------------------*
#include
main ()
{
char s1[80];int a[4]={0};
int k;
***********SPACE***********
【void fun(char s[],int[])】;
gets(s1);
***********SPACE***********
【fun(s1,a)】;
puts(s1);
for(k=0;k<4;k++)
printf(
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='0';i++)
if
('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
***********SPACE***********
else if (【'0'<=s[i]&&s[i]<='9'】) b[1]++;
***********SPACE***********
else if
(【s[i]==32】 ) b[2]++;
else b[3]++;
} <
br>*----------------------------------------------
---------
4 【程序填空】
-----------------------
----------------------------------
题目:判断一个给定的整数是否为素数。
------------------
-------------------------------------*
#include
#include
void
main( )
{ int m,i,k;
scanf(
k=sqrt(m);
***********SPACE***********
for(i=2;【i<=k】;i++)
***********SPACE***********
if(【m%i==0】) break;
***********SPACE***********
if(【i>k】)
printf(
else
printf(
}
*--
--------------------------------------------------
---
5 【程序填空】
-----------------------------
----------------------------
题目:以下程序的功能:计算并输出500以内最大的10个能被
13或17整除的自然数之和。
--------------------------
-----------------------------*
#include
***********SPACE***********
int fun(【int k】 )
{
int m=0,
mc=0;
***********SPACE***********
while
(k >= 2 && 【mc<10】)
{
***********SPACE***********
if (k%13
== 0 || 【k%17==0】)
{ m = m+ k; mc++; }
k--;
}
***********SPACE***********
【return(m)】;
}
void main ( )
{
printf(
}
*---------------------------
----------------------------
6 【程序填空】
----
--------------------------------------------------
---
题目:输入N个数据存入数组中,将其倒置存放,并打印输出。
-------------------------------------------------
------*
#include
#define N 10
void main( )
{ int i, t, a[N];
printf(
for(i=0;i
scanf(【&a[i]】);
***********SPACE***********
for(i=0;i<【n2】;i++)
{
t=a[i];
***********SPACE***********
a[i]=【a[n-i-1]】;
a[N-i-1]=t;
}
for(i=0;i
}
*-------------------------
------------------------------
7 【程序填空】
--
--------------------------------------------------
-----
题目:输出Fibonacci数列的前15项,要求每行输出5项。
Fibonacci数列:1,1,2,3,5,8,13...........
--------
-----------------------------------------------*
#include
void main()
{
***********SPACE***********
int
【fib】[15],i;
fib[0]=1;fib[1]=1;
for
(i=2;i<15;i++)
***********SPACE***********
fib[i]=【fib[i-2]+fib[i-1]】;
for(i=0;i<15;i++)
{
printf(
***********SPACE***********
if
( 【i%5==4】 ) printf(
}
}
*----------
---------------------------------------------
8 【程序填空】
---------------------------------
------------------------
题目:以下程序的功能是求100-999之间的水仙花数(水仙花数
是指一个三位数的各个位数字的立方和是这个数本身,
如:153=1^3+5^3+3^3)。
---------------------
----------------------------------*
#include
int fun(int n)
{ int
i,j,k,m;
m=n;
***********SPACE***********
【k=0】
for(i=1;i<4;i++)
{
***********SPACE***********
【j=m%10】
m=(m-j)10;
k=k+j*j*j;
}
***********SPACE***********
if(k==n) 【return(1)】
else return(0);}
void main()
{
int i;
for(i=100;i<1000;i++)
***********SPACE***********
if(【fun(i)】==1)printf(
}
*-----------------
--------------------------------------
9
【程序填空】
---------------------------------------
------------------
题目:某次大奖赛,有10个评委打分,下面的程序是对一名参赛者评分,输入10个评
委的打分分数,去掉一个最高分,一个最低分后,求出平均分即为该参赛者的得分。
-------------------------------------------------
------*
#include
void main()
{
float mark,max,min,aver=0.0,sum=0.0;
int i;
for(i=1;i<=10;i++)
{
printf(输入第%d位评委的打分n
scanf(
if(i==1)
{ max=mark;
***********SPACE***********
【min=mark】;
}
else
if(mark
***********SPACE***********
else
if(【mark>max】)
max=mark;
***********SPACE***********
【sum+=mark】;
}
aver=(sum-max-
min)8;
printf(
}
*------------------
-------------------------------------
10
【程序填空】
---------------------------------------
------------------
题目:输出9*9口诀。
------
-------------------------------------------------*
#include
void main()
{int
i,j,result;
printf(
***********SPACE***********
for
(i=1;【i<10】;i++)
***********SPACE***********
{ for(j=1;j<10;【j++】)
{
result=i*j;
***********SPACE***********
printf(【result】);
}
printf(
}
}
*----------------------------------------
---------------
11【程序填空】
-----------------
----------------------------------------
题目:用辗转相除法求两个整数的最大公约数、最小公倍数。
---------
----------------------------------------------*
#include
void main()
{ int
n,m,nm,r,t;
printf(
scanf(
nm=n*m;
if (m
r=m%n;
***********SPACE***********
while (【r!=0】)
{ m=n;
***********SPACE***********
【n=r】
***********SPACE***********
【r=m%n】
}
printf(
***********SPACE***********
printf(【nmn】);
}
*------------------
-------------------------------------
12【程序填空】
----------------------------------------------
-----------
题目:以下程序的功能是将一个数组中的元素按逆序存放。
-----------------------------------------
--------------*
#define N 7
#include
void main ()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf(
for (k=0;k
***********SPACE***********
for
(k=0;k<【N2】; k++ )
{
s=a[k];
***********SPACE***********
【a[k]=a[N-k-1]】
***********SPACE***********
【a[N-k-1]=s】
}
printf(
for
(k=0;k
【printf】(
}
*-------------------------
------------------------------
13 【程序填空】
-------------------------------------------- -------------
题目:输入3个整数,输出最大数。
- -------------------------------------------------- ----*
#include
void main( )
{ int a,b,c, max;
printf(
scanf(
***********SPACE***********
if(【a>b】)
max=a;
***********SPACE***********
【else】
max=b;
if(max
【max=c】
printf(
}
*--------------- ----------------------------------------
14 【程序填空】
--------------------------------------- ------------------
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
------------- ------------------------------------------*
#include
void main()
{int x,y,z,t;
scanf(
if (x>y)
***********SPACE***********
{【t=x;x=y;y=t;】}
if(x>z)
***********SPACE***********
{【t=z;z=x;x=t;】}
if(y>z)
***********SPACE***********
{【t=y;y=z;z=t;】}
printf(
}
*----- --------------------------------------------------
15 【程序填空】
-------------------------
--------------------------------
题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
-------------------------------
------------------------*
#include
void main()
{
int i,j,k;
***********SPACE***********
for(i=0;【i<4】;i++)
{
for(j=0;j<=4-i;j++)
printf(
***********SPACE***********
for(k=1;k<=【2*i+1】;k++)
printf(
printf(
}
***********SPACE***********
for(【j=0】;j<3;j++)
{
for(k=0;k
***********SPACE***********
for(k=0;k<【5-2*j】;k++)
printf(
printf(
}
}
*--------------------
-----------------------------------
16 【程序填空】
----------------------------------------------
-----------
题目:以下程序的功能:计算并输出high以内最大的10个素数
之和,high由主函数传给fun函数,若high的值为100,
则函数的值为732。
------------------------------
-------------------------*
#include
#include
int fun( int
high )
{
int sum = 0, n=0, j, yes;
***********SPACE***********
while ((high
>= 2) && (【n<10】))
{
yes = 1;
for (j=2; j<=high2; j++ )
***********SPACE***********
if
(【high%j==0】)
***********SPACE***********
{yes=0; 【break】;}
if (yes)
{
sum +=high; n++; }
high--;
}
***********SPACE***********
【return(sum)】;
}
void main ( )
{
printf(
}
*--------------------
-----------------------------------
17 【程序填空】
----------------------------------------------
-----------
题目:输入如下形式的二项式系数列标。要求表的行数运行时输入,
若小于1或者大于10则重新输入。
1
1 1
1
2 1
1 3 3 1
1 4 6 4
1
1 5 10 10 5 1
---
--------------------------------------------------
--*
#include
void main()
{
int a[10][10]={{0}}, i, j, n;
while(scanf(
for(i=0;i<10;i++)
{
a[i][0]=1;
***********SPACE***********
【a[i][i]=1】;
}
for(i=2;i
a[i][j]=a[i-1][j]+【a[i-1][j-1]】;
for(i=0;i
printf(
***********SPACE***********
【printf(】;
}
}
*----
--------------------------------------------------
18 【程序改错】
--------------------------------
------------------------
题目:函数fun的功能是:求1到20的阶乘的和。
请改正程序中的错误,使它能得出正确的结果。
-------------------
-------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
fun()
{
int n,j;
double
s=0.0,t=1.0;
for(n=1;n<=20;n++)
{
**********FOUND**********
t=1;
for(j=1;j<=n;j++)
**********FOUND**********
t=t*j;
**********FOUND**********
s=s+t;
}
**********FOUND**********
printf(
}
main()
{
fun();
}
*-----
-------------------------------------------------
19 【程序改错】
--------------------------------
------------------------
题目:给定程序MODI1.C中函数 fun 的功能是:
用选择法对数组中的n个元素按从小到大
的顺序进行排序。
--------
------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的
结构。
---
--------------------------------------------------
-*
#include
#define N 20
void fun(int a[], int n)
{ int i, j, t, p;
for (j = 0 j < n-1 j++) {
**********FOUND**********
p = j;
for
(i = j;i < n; i++)
**********FOUND**********
if(a[i] **********FOUND**********
p=i;
t = a[p] a[p] = a[j] a[j] = t;
}
}
void main()
{
int a[N]={9,6,8,3,-1},i, m = 5;
printf(排序前的数据:
for(i = 0;i < m;i++)
printf(
fun(a,m);
printf(排序后的数据:
for(i =
0;i < m;i++) printf(
}
*--------------
----------------------------------
20【程序改错】 ------------------------------------------------
--
题目:编写函数fun,求两个整数的最小公倍数,然后用主
函数main()调用这个函数并输出结果,两个整数由
键盘输入。
-------------------------------------------------
-
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
void main()
{
unsigned
int m,n,q;
printf(
scanf(
**********FOUND**********
q=fun(m,n);
printf(
}
int fun(int m,int n)
{
int i;
**********FOUND**********
if (m
for(i=m;i<=m*n;i+=m)
**********FOUND**********
if(i%n==0)
return(i);
}
*-------
-----------------------------------------------
21【程序改错】
---------------------------------
-----------------------
题目:下列程序中,函数fun的功能是:找出一个大
于给定整数m且紧随m的素数,并作为函数值返回。
----------------------
----------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的
结构。
---
--------------------------------------------------
-*
#include
#include
int fun(int m)
**********FOUND**********
{ int i,k;
for(i=m+1;;i++){
for(k=2;k**********FOUND**********
if(i%k==0)
break;
**********FOUND**********
if(k==i)
return(i);
}
}
void main()
{
int n;
printf(
scanf(
printf(
}
*---------------------------------------------
---------
22 【程序改错】
------------------
--------------------------------------
题目:打印出如下杨辉三角形(要求打印出6行).
1
1 1
1 2 1
1 3
3 1
1 4 6 4 1
1
5 10 10 5 1
------------------------
--------------------------------
注意:不可以增加或删除程序行,也不可以更改程
序的结构。
---
--------------------------------------------------
-*
#include
void main()
{ int i,j;
int a[6][6];
printf(
**********FOUND**********
for(i=0;i<6;i++)
{ a[i][0]=1;
a[i][i]=1;
}
**********FOUND**********
for(i=2;i<6;i++)
for(j=1;j
**********FOUND**********
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<6;i++)
{
**********FOUND**********
for(j=0;j<=i;j++)
printf(
printf(
}
}
*---------
---------------------------------------------
23 【程序改错】
--------------------------------
------------------------
题目:给定程序MODI1.C中函数 fun 的功能是:计算正整数num的
各位上的数字之积。例如,若输入:252,则输出应该是:20。若
输入:202,则输出应该是:0。
-------------------------
-------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
-------
-----------------------------------------------*
#include
long fun (long num)
**********FOUND**********
{long k=1;
do
{ k*=num%10
**********FOUND**********
num=10;
**********FOUND**********
} while(num)
return (k)
}
void main( )
{
long n
printf(
printf(
}
*------------------------------------------------
------
24 【程序改错】
---------------------
-----------------------------------
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当
即吃了一半,还不过瘾,又多吃了一个,第二天
早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
--
--------------------------------------------------
----
注意:不可以增加或删除程序行,也不可以更改程序的
结构。 ------------------------------------------------
------*
#include
void main()
{
int
day,x1,x2;
day=9;
**********FOUND**********
x2=1;
while(day>0)
**********FOUND**********
{x1=(x2+1)*2;
x2=x1;
**********FOUND**********
day--;
}
printf(
}
*------------------
------------------------------------
25【程序改错】
---------------------------------
-----------------------
题目:一个5位数,判断它是不是回文数。即12321是回
文数,个位与万位相同,十位与千位相同。
--------------------------
------------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
---
--------------------------------------------------
-*
#include
void main( )
{
**********FOUND**********
long
ge,shi,qian,wan,x;
scanf(
**********FOUND**********
wan=x10000;
qian=x%100001000;
shi=x%10010;
ge=x%10;
**********FOUND**********
if(ge==wan&&shi==qian)
printf(
else
printf(
}
*------------------
------------------------------------
26
【程序改错】
---------------------------------------
-----------------
题目:编写函数fun求20以内所有5的倍数之积。
----------
----------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#define N 20
#include
void main()
{ int sum;
sum=fun(5);
printf(以内所有%d的倍数之积为: %dn
}
int
fun(int m)
{
**********FOUND**********
int s=1,i;
for(i=1;i
if(i%m==0)
**********FOUND**********
s=s*i;
return s;
}
*-------------------
-----------------------------------
27【程序改错】
---------------------------------
-----------------------
题目:请编写一个函数fun,函数的功能是:统计出若干
个学生的平均成绩,最低分以及得最低分的人数。
例如,输入10名学生的成绩分别为92,87,68,56,
92,84,67,75,92,66,则输出平均成绩为77.9,
最低分为56,得最低分的人数为1人。
----------------------
----------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
float Min=0;
int J=0;
float fun(float array[],int n)
{
int
i;float sum=0,ave;
Min=array[0];
for(i=0;i
**********FOUND**********
sum=sum+array[i]; }
**********FOUND**********
ave=sumn;
for(i=0;i
if(array[i]==Min) J++;
return(ave);
}
void main( )
{
float
a[10],ave;
int i=0;
printf(
for(i=0;i<10;i++)
scanf(
ave=fun(a,10);
printf(
printf(
printf(
}
*---
--------------------------------------------------
-
28 【程序改错】
----------------------
----------------------------------
题目:有一数组内放10个整数,要求求出平均值,并打印.
---------
-----------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
float average(float
array[10])
{
int i;
float
aver,sum=array[0];
***********FOUND***********
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum10.0;
return(aver);
}
void main( )
{
***********FOUND***********
float
score[10],aver
int i;
printf(
for(i=0;i<10;i++)
***********FOUND***********
scanf(
printf(
***********FOUND***********
aver=average(score);
printf(
}
*------------------------------------------------
------
29【程序改错】
----------------------
----------------------------------
题目:利用递归方法求5!。
----------------------------
----------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
---
--------------------------------------------------
-*
#include
void main()
{
int fact(int j);
printf(
}
int
fact(int j)
{
int sum;
**********FOUND**********
if(j==0)
**********FOUND**********
sum=1;
else
sum=j*fact(j-1);
**********FOUND**********
return sum;
*-----------------
-------------------------------------
30
【程序改错】
---------------------------------------
-----------------
题目:编写函数求2!+4!+6!+8!+10+12!+14!。
----------
----------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
long sum(int n)
{
**********FOUND**********
int i,j;
long t,s=0;
**********FOUND**********
for(i=2;i<=n;i+=2)
{t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;}
**********FOUND**********
return(s);
}
void main()
{
printf(
}
*---------------
---------------------------------------
31
【程序改错】
---------------------------------------
-----------------
题目:下列给定程序中,函数fun的功能是:判断m是否为素数,
若是返回1,否则返回0。主函数的功能是:按每行5个输
出1-100之间的全部素数。
请改正程序中的4个错误,使它能得出正确的结果。
-----------------------------------------
---------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------
------*
#include
**********FOUND**********
void fun( int
m)
{
int i,k=1;
if(m<=1) k=0;
**********FOUND**********
for(i=2;i
if(m%i==0) k=0;
**********FOUND**********
return k;
}
void main()
{
int m,k=0;
for(m=1;m<100;m++)
if(fun(m)==1)
{
printf(
if(k%5==0)printf(
}
}
*-------------------------------
-----------------------
32 【程序改错】
----
--------------------------------------------------
--
题目:求100以内(包括100)的偶数之和.
-----------
---------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序
的结构。
---
--------------------------------------------------
-*
#include
void main()
{
**********FOUND**********
int i,sum=0;
**********FOUND**********
for(i=2;i<=100;i+=2)
sum+=i;
**********FOUND**********
printf(
}
*------------------
------------------------------------
33
【程序改错】
---------------------------------------
-----------------
题目:用起泡法对10个整数从小到大排序。
程序中共有4条错误语句,请改正错误。
------------
--------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
**********FOUND**********
void sort(int
x[],int n)
{
int i,j,k,t;
for(i=0;i
for(j=0;j
if(x[j]>x[j+1])
{
t=x[j];x[j]=x[j+1];x[j+1]=t;}
}
void
main()
{
int i,n,a[100];
printf(
scanf(
for(i=0;i
sort(a,n);
printf(
for(i=0;i<=n-1;i++)
printf(
printf(
}
*--------
----------------------------------------------
34 【程序改错】
-------------------------
-------------------------------
题目:函数fun的功能是:求出两个非零正整数的最大公约数,
并作为函数值返回。例如,若给num1和num2分别输入49
和21,则输出的最大公约数为7。
请改正程序中的错误,使它能得出正确的结果。
-----------------------------------------
---------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------
------*
#include
int
fun(int a,int b)
{
int r,t;
if(a{
t=a;
**********FOUND**********
a=b;
**********FOUND**********
b=t;
}
r=a%b;
while(r!=0)
{
a=b;
b=r;
**********FOUND**********
r=a%b;}
**********FOUND**********
return b;
}
void main()
{
int num1,num2,a;
printf(
scanf(
a=fun(num1,num2);
printf(
}
*---------------------------
---------------------------
35【程序改错】
-------------------------------------------- ------------
题目:请编写一个函数fun,函数的功能是:求出N×M整
型数组的最小元素及其所在的行坐标及列坐标(如
果最小元素不唯一,选择位置在最前面的一个)。
例如:输入的数组为:
9 2 3
4 15 6
12 1 9
10 11 2
求出的最小数为1,行坐标为2,列坐标为1。
------------------------------------------------- -------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------ ------------------------------------------------*
#define N 4
#define M 3
#include
int Row,Col;
void main()
{
int a[N][M],i,j,min,row,col;
printf(
for(i=0;i
for(i=0;i
for(j=0;j
printf(
}
min=fun(a);
printf(
}
int fun(int array[N][M])
{
int min,i,j;
min=array [0][0];
Row=0;
Col=0;
for(i=0;i
{for(j=0;j
if(min >array [i][j])
{min=array
[i][j];
Row=i;
**********FOUND**********
Col=j;}
}
return(min);
}
*-------
-----------------------------------------------
36 【程序改错】
--------------------------------
------------------------
题目:求n!,n值由键盘输入。
程序中共有4条错误语句,请改正错误。
------------
--------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
--------------
----------------------------------------*
#include
void main()
{
int n,i;
**********FOUND**********
float t;
printf(
**********FOUND**********
scanf(
i=1;
**********FOUND**********
t=1;
while(i<=n)
**********FOUND**********
{ t*=i;
i++;
}
printf(
}
*-----------------------
-------------------------
37 【程序设计】
------
--------------------------------------------
题目:编写函数fun,函数的功能是:求1到
m之间(包括m)的偶数之积。
--------------------------
------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
-------------------------
-----------------------*
#include
double fun(int m)
{
**********Program**********
double y=1
int i;
for(i=1;i<=m;i++)
if(i%2==0)
y*=i;
return y;
********** End **********
}
void main()
{
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
iIN,i;
double dOUT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(i=0;i<5;i++)
{fscanf(IN,
dOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*----------------------
--------------------------
38【程序设计】
------
--------------------------------------------
题目:编写函数fun其功能是: 找出一个大于给定整
数且紧随这个整数的素数,并作为函数值返回。
------------------------
--------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
int fun(int n)
{
**********Program**********
int
i,k;
for(i=n+1;;i++)
{
for(k=2;k if(i%k==0)
break;
if(k==i)
return(i);
}
********** End **********
}
void main()
{ int m;
printf(
scanf(
printf(
yzj();
}
yzj()
{
FILE
*IN,*OUT;
int s
int t;
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(s=1;s<=5;s++)
{ fscanf(IN,
o=fun(t);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-
-----------------------------------------------
39 【程序设计】
--------------------------------
------------------
题目:编写函数fun将一个数组中的值按逆序存放,
并在main()函数中输出。
例如,原来存顺序为8,6,5,4,1。要求改为:
1,4,5,6,8。
------------------
--------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
----------------------------------------------
--*
#include
#define N 5
void main()
{void fun(int arr[],int n);
int a[N]={8,6,5,4,1},i;
for(i=0;i
printf(
fun(a,N);
for(i=0;i
yzj();
}
void fun(int arr[],int n)
{
**********Program**********
int
i,t;
for(i=0;i
arr[i]=arr[n-1-i];
arr[n-1-i]=t;
}
********** End **********
}
yzj()
{
FILE
*IN,*OUT;
int n;
int i[10];
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(n=0;n<10;n++)
{
fscanf(IN,
}
fun(i,10);
for(n=0;n<10;n++)
{
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*----------------------------------
--------------
40 【程序设计】
-----------------
---------------------------------
题目:请编写一个函数fun,函数的功能是:统计出若干
个学生的平均成绩,最高分以及得最高分的人数。
例如,输入10名学生的成绩分别为92,87,68,56,
92,84,67,75,92,66,则输出平均成绩为77.9,
最高分为92,得最高分的人数为3人。
----------------------
----------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
float Max=0;
int
J=0;
float fun(float array[],int n)
{
**********Program**********
int
i;
float sum=0,ave;
Max=array[0];
for(i=0;i
ave=sumn;
for(i=0;i
return(ave);
********** End **********
}
void main( )
{
float a[10],ave;
int i=0;
printf(请输入10个数:n
for(i=0;i<10;i++)
scanf(
ave=fun(a,10);
printf(
printf(
printf(
yzj();
}
yzj()
{
FILE
*IN,*OUT;
float iIN[10],iOUT;
int iCOUNT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,
iOUT=fun(iIN,10);
fprintf(OUT,
fclose(IN);
fclose(OUT);
}
*------------
------------------------------------
41 【程序设计】
----------------------------------------------
----
题目:编写函数fun,函数的功能是:找出一批正整数中
的最大的偶数。
---------------------------------
-----------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-----------------------------------
-------------*
#include
int fun(int
a[],int n)
{
**********Program**********
int
i,amax=-1;
for(i=0;i
if(a[i]>amax)
amax=a[i];
return
amax;
**********
End **********
}
void main()
{
int a[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
iIN[10],iOUT,i,j;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
fscanf(IN,
iOUT=fun(iIN,10);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-
-----------------------------------------------
42 【程序设计】
--------------------------------
------------------
题目:编写函数判断一个整数m的各位数字之和
能否被7整除, 可以被7整除则返回1,否则
返回0。调用该函数找出100~200之间满足
条件的所有数。
-----
---------------------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。 ------------------------------------------------
*
#include
int sub(int m)
{
**********Program**********
int
k,s=0;
do
{
s=s+m%10;
m=m10;
}
while(m!=0);
if(s%7==0)
k=1;
else k=0;
return(k);
********** End **********
}
void
main()
{ int i;
for(i=100;i<=200;i++)
if(sub(i)==1)printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
n;
int i[10];
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(n=0;n<10;n++)
{
fscanf(IN,
}
for(n=0;n<10;n++)
{
o=sub(i[n]);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
43 【程序设计】
------------
--------------------------------------
题目:编写函数fun,函数的功能是:计算n门课程的平
均值,计算结果作为函数值返回。
例如,若有5门课程的成绩是:92,76,69,58,
88,则函数的值为76.600000。
---------------------
-----------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
float fun(int a[],int n)
{
**********Program**********
int i;
float y=0;
for(i=0;i
y=yn;
return y;
********** End **********
}
void main()
{
int
a[]={92,76,69,58,88};
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int
iIN[10],i,j;
float fOUT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(j=0;j<10;j++)
{ for(i=0;i<5;i++)
fscanf(IN,
fOUT=fun(iIN,5);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-----------------
-------------------------------
44 【程序设计】
--------------------------------------------------
题目:将字符串中的小写字母转换为对应的大写字母,
其它字符不变。
--------------------------
------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
----------------------------
--------------------*
void change(char str[])
{
**********Program**********
int i;
for(i=0;str[i]!='0';i++)
if(str[i]>='a' && str[i]<='z')
str[i]=str[i]-32;
**********
End **********
}
#include
#include
void main()
{
void change();
char str[40];
gets(str);
change(str);
puts(str);
yzj();
}
yzj()
{
FILE *IN,*OUT;
int n;
char i[200];
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
fscanf(IN,
change(i);
fprintf(OUT,
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
45 【程序设计】
------------
--------------------------------------
题目:请编写函数fun,它的功能是:判断m是否为素数
。主函数的功能是:求出100到200之间的素数的
个数。
--
------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
-
-----------------------------------------------*
#include
int fun(int m);
void
main()
{
int m,k=0;
for(m=100;m<200;m++)
if(fun(m))
{
printf(
k++;
if(k%5==0)
printf(
}
printf(
yzj();
}
int fun(int m)
{
**********Program**********
int i,k=1;
if(m<=1)
k=o;
for(i=2;i
k=0;
return k;
********** End
**********
}
yzj()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(i=0;i<10;i++)
{ fscanf(IN,
iOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-
-----------------------------------------------
46 【程序设计】
--------------------------------
------------------
题目: 给定n个数据, 求最小值出现的位置
(如果最小值出现多次,求出第一次出
现的位置即可)。
--------------------------------
------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函数
station的花括号中填入所编写的若干语句。
----------------------
--------------------------*
#include
int
station(int s[],int n)
{
**********Program**********
int
i,k;
k=0;
for(i=1;i k=i;
return k;
********** End **********
}
void main()
{
int a[100],n,i,t;
printf(请输入n值:
scanf(
printf(请输入%d个数:n
for(i=0;i
t=station(a,n);
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int n;
int i[10];
int o;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(n=0;n<10;n++)
{
fscanf(IN,
}
o=station(i,10);
fprintf(OUT,
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
47 【程序设计】
------------
--------------------------------------
题目:编写函数fun求1000以内所有m的倍数之和。
----------
----------------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
----------------------------------------------
--*
#define N 1000
#include
#include
int yzj();
int fun(int m);
void main()
{int sum;
sum=fun(7);
printf(以内所有%d的倍数之和为:%dn
yzj();
}
int fun(int m)
{
**********Program**********
int
s=0,i;
for(i=1;i
s+=i;
return s;
**********
End **********
}
yzj()
{
FILE *IN,*OUT;
int n;
int i[10];
int o;
OUT=fopen(
if(OUT==NULL)
{printf(
}
o = fun(6);
fprintf(OUT,
fclose(OUT);
}
<
br>*----------------------------------------------
--
48【程序设计】
------------------------------
--------------------
题目:调用函数fun判断一个三位数是否水仙花数。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。所谓水仙花
数是指一3位数,其各位数字立方和等于该
数本身。
例如,153是一个水仙花数,因为153=1+125+27。
----------------
----------------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
int fun(int n)
{
**********Program**********
int
bw,sw,gw;
bw=n100;sw=(n-bw*100)10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)
return
1;
else
return 0;
********** End **********
}
void main()
{
int n,flag;
scanf(
flag=fun(n);
if(flag)
printf(是水仙花数n
else
printf(不是水仙花数n
yzj();
}
yzj()
{
FILE *IN,*OUT;
int iIN,i;
int iOUT;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(i=0;i<10;i++)
{
fscanf(IN,
iOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
*-----------------------------
-------------------
49【程序设计】
-------------
-------------------------------------
题目:编写函数fun其功能是:能计算从1开始到n的
自然数的和,n由键盘输入,并在main()函数
中输出。
-------
-------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
int fun(int n)
{
**********Program**********
int
sum,i;
sum =0;
for(i=1;i<=n;i++)
{sum=sum+i;}
return(sum);
********** End **********
}
void main()
{ int m;
printf(
scanf(
printf(
yzj();
}
yzj()
{
FILE *IN,*OUT;
int t;
int o;
int c;
IN=fopen(
if(IN==NULL)
{printf(
}
OUT=fopen(
if(OUT==NULL)
{printf(
}
for(c=1;c<=5;c++)
{ fscanf(IN,
o=fun(t);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);