您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页C语言期末考试题库试题及答案

C语言期末考试题库试题及答案

来源:抵帆知识网
1【程序填空】

-—-—--—-—————-——--------—--—----————--———-—————---—---—-—

题目:下面函数为二分法查找key值。数组中元素已递增排序, 若找到key则返回对应的下标,否则返回—1.

——---——-—--—---————--—--—--—-—--—--—---———-——-——-——-—-—*/ #include〈stdio.h> 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〈a[mid]) 【high=mid—1】;

/***********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(\"not found\"); else printf(\"position %d\\n\}

/*—---—--—-———————-————--—-—--——-—-—————--—-—----—-----—— 2 【程序填空】

-———-————---——----—-——-——-——-——--——----—---—---————-———-—

题目:求n!,n值由键盘输入.

—-—————-———-----—--———-—-—-—-—-—--——-----—-———-—----———*/

#include〈stdio.h> void main() {

int n,i; float t;

printf(\"please input n(n>=0):\");

/***********SPACE***********/ scanf(\"%d”,【&n】); i=1; t=1.0;

/***********SPACE***********/ while(【i<=n】)

/***********SPACE***********/ { 【t*=i】 i++; }

printf(\"%d!=%f\",n,t); }

a/*————————-—---———--—--——---——-—-—--——-----—-———-——-—-———

3 【程序填空】

----——---—--—--—-—-------———--—----——---——-—--——-——-—-———

题目:以下程序的功能是统计一个字符串中的字母、数字、空格、 和其它字符的个数。

—-------——-----—-——--——---—-—-——----—————-—————---——---*/

#include ”stdio.h” 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(\"%4d”,a[k]); }

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]++; }

/*—----———-—--——-——-———-—--——--———-—-————--————--—----——- 4 【程序填空】

-—-———--—-—————-—————-———-—--—---—---—--—-—-——————--——--—

题目:判断一个给定的整数是否为素数.

—---—-———---—--—--—-—-—--—-——--————--——-—-———-————-----*/ #include〈stdio。h〉 #include \"math。h\" void main( )

{ int m,i,k;

scanf(”%d\&m); k=sqrt(m);

/***********SPACE***********/ for(i=2;【i〈=k】;i++)

/***********SPACE***********/ if(【m%i==0】) break;

/***********SPACE***********/ if(【i>k】)

printf(”Yes\\n\"); else

printf(\"No\\n”); }

/*-——-——-—-—--——---——-——-————----—--—-----—-—-———--——--—- 5 【程序填空】

-———-——-—-—-—-—--——-—-————-——--—--—-----—---——---—--——-—-

题目:以下程序的功能:计算并输出500以内最大的10个能被 13或17整除的自然数之和.

—-————-——-———--——-—-——-—---———--———-—-------————-——-—-—*/

#include 〈stdio。h>

/***********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(\"%d\\n\", fun (500)); }

/*-—-————---———-———-—---—----——---—————--—----——-———--—-- 6 【程序填空】

---—-—-————----—--—-—-——-—--—-—-——--—-—--——-----————--—-—

题目:输入N个数据存入数组中,将其倒置存放,并打印输出。

————-—-—-—-—————-—------——---—--——-—----—---—---—-—-———*/ #include〈stdio.h> #define N 10 void main( ) { int i, t, a[N];

printf(”Enter %d Numbers:\\n\", N); for(i=0;i/***********SPACE***********/ scanf(”%d”,【&a[i]】);

/***********SPACE***********/ for(i=0;i<【n/2】;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 〈stdio。h〉

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(”%d\”,fib[i]);

/***********SPACE***********/ if ( 【i%5==4】 ) printf(\"\\n\"); } }

/*-———--————-—-—--—-——-————-——--—-——-——------———--—-—-—-- 8 【程序填空】

-—-—--—-———-—-————--—-———-—-———-—-—-—-—--—-——-—---—-—-—-—

题目:以下程序的功能是求100-999之间的水仙花数(水仙花数 是指一个三位数的各个位数字的立方和是这个数本身, 如:153=1^3+5^3+3^3)。

-------—--——————-—--—----—-————-——---———--—-———-—---—-—*/ #include/***********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(”%d is ok!\\n” ,i); }

/*-—----——---—----—--——————-—-———-———-----—-——-———-—-—-—— 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”,i); scanf(\"%f\",&mark); 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(”The Average score is %f\\n\",aver); } /*-—————--—-——--—-——-————-—-—--——---—-—--———————--———---—

10 【程序填空】

—-————----—---———-—-----—--——--——----——--—-—-—--—-———-——-

题目:输出9*9口诀。

—-——--——-———-—-------——----——--------———-——--—-—--—---—*/ #include〈stdio。h> void main() {int i,j,result; printf(”\\n”);

/***********SPACE***********/ for (i=1;【i<10】;i++)

/***********SPACE***********/ { for(j=1;j<10;【j++】) {

result=i*j;

/***********SPACE***********/ printf(”%d*%d=%-3d\【result】); }

printf(\"\\n\"); } }

/*---—--—--——-————-———-—-—---—-——---———---————-—-——-—————

11【程序填空】

-—-—-—-------——---———--——---——--—----———---————-————————-

题目:用辗转相除法求两个整数的最大公约数、最小公倍数。

—--————-————------———---——————--—-——-———-——-—--——-——--—*/

#include〈stdio。h> void main()

{ int n,m,nm,r,t;

printf(”Enter m,n=?\");

scanf(”%d%d”,&m,&n); nm=n*m; if (m〈n)

{ t=m; m=n; n=t; } r=m%n;

/***********SPACE***********/ while (【r!=0】) { m=n;

/***********SPACE***********/ 【n=r】

/***********SPACE***********/ 【r=m%n】 }

printf(”The max Gyshu=%d\\n”,n);

/***********SPACE***********/ printf(\"The min Gbshu=%d\\n”, 【nm/n】); } /*-——-————————-——-——---—-——---——---——-—-—----——-—-——-————

12【程序填空】

----——--——------—--—--—-----—---————-——-—--———-——-——---—-

题目:以下程序的功能是将一个数组中的元素按逆序存放。

---——--——---—-——-———--—---—————-—-—————-—--—-———--——-—-*/

#define N 7

#include〈stdio。h〉 void main () {

static int a[N]={12,9,16,5,7,2,1},k,s; printf(\"\\n the origanal array:\\n\"); for (k=0;k〈N;k++) printf(\"%4d”,a[k]);

/***********SPACE***********/ for (k=0;k<【N/2】; k++ ) {

s=a[k];

/***********SPACE***********/

【a[k]=a[N-k-1]】 ;

/***********SPACE***********/ 【a[N—k—1]=s】 ; }

printf(”\\n the changed array:\\n”); for (k=0;k〈N;k++)

/***********SPACE***********/ 【printf】(”%4d”,a[k]); }

/*-—-——---—---—--—-—————--—-—--—--—--———-———-——-————--——- 13 【程序填空】

--——-----——---—------—-——--—--—----——-—-—---—-———————-—-—

题目:输入3个整数,输出最大数.

--—-----—--——-—-—————--—--—---——-—————--—---—---—----—-*/ #include void main( )

{ int a,b,c, max;

printf(”input three numbers: ”); scanf(”%d%d%d\",&a,&b,&c); /***********SPACE***********/ if(【a>b】)

max=a;

/***********SPACE***********/ 【else】

max=b; if(max〈c)

/***********SPACE***********/ 【max=c】

printf(”max=%d\\n”,max); }

/*-————---——--—--———-----—-———-——---—-—---————-------——-— 14 【程序填空】

---——-—--——-—--—-—--——--——--————---———---——--—-———--——-——

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

-————-——-——----—-----—-—--—----——--—————-—-——--———-—-—-*/ #include void main() {int x,y,z,t;

scanf(”%d%d%d\,&z); 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(”small to big: %d %d %d\\n\,y,z); }

/*-——-—-——-—-——-——----—------——-——-———--—--——————————--—- 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(”\\n”); }

/***********SPACE***********/ for(【j=0】;j<3;j++) {

for(k=0;k/***********SPACE***********/ for(k=0;k<【5-2*j】;k++) printf(\"*”); printf(\"\\n”); } }

/*—-------————-—-—-—-—--———--——-—-——-—---——--————-——--——- 16 【程序填空】

-———-————-——--——————-—--——-—-——-————-—-———--——--——-—————-

题目:以下程序的功能:计算并输出high以内最大的10个素数 之和,high由主函数传给fun函数,若high的值为100, 则函数的值为732.

-———-———---—-—----————-—-———----——-----———-——-————---—-*/

#include 〈stdio。h〉 #include int sum = 0, n=0, j, yes;

/***********SPACE***********/ while ((high >= 2) && (【n〈10】)) {

yes = 1;

for (j=2; j〈=high/2; j++ )

/***********SPACE***********/ if (【high%j==0】)

/***********SPACE***********/ {yes=0; 【break】;} if (yes)

{ sum +=high; n++; } high--; }

/***********SPACE***********/ 【return(sum)】; }

void main ( ) {

printf(\"%d\\n”, fun (100)); }

/*—————-————--—--—--—--——--—-----—--———--—--—----——--———- 17 【程序填空】

——-————-—-——--——--—----——-——-—-—-———--—---——-———-----————

题目:输入如下形式的二项式系数列标.要求表的行数运行时输入, 若小于1或者大于10则重新输入。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

-—————-——--—--——————-—--—————----—————-—-———-——---—----*/

#includeint a[10][10]={{0}}, i, j, n;

while(scanf(”%d\&n),n〈1 || n>10); for(i=0;i<10;i++) { a[i][0]=1;

/***********SPACE***********/ 【a[i][i]=1】; }

for(i=2;i〈n;i++) for(j=1;j〈i;j++)

/***********SPACE***********/ a[i][j]=a[i—1][j]+【a[i-1][j—1]】; for(i=0;i{ for(j=0;j<=i;j++) printf(”%4d\[i][j]);

/***********SPACE***********/ 【printf(\"\\n”)】; } }

/*———--—-———--————-—--———-—--—---—-——--———----———-——---— 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(\"jiecheng=%f\\n\",s); }

main() {

fun(); }

/*——---——---—-—---——-————————------—-—-—-———-—-—----—-—- 19 【程序改错】

--—-------—--———--—--—--—---------—-———-—--—-—-—-————---

题目:给定程序MODI1。C中函数 fun 的功能是: 用选择法对数组中的n个元素按从小到大 的顺序进行排序.

----—————-—-———-------——————-———-———-———--———-—-—-——--——

注意:不可以增加或删除程序行,也不可以更改程序的 结构。

—--—-—-————--———-—--——————-——---——-———---———--——-——-—

—*/

#include 〈stdio。h> #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(”%d \",a[i]); printf(\"\\n”); fun(a,m);

printf(\"排序后的数据:”) ;

for(i = 0;i 〈 m;i++) printf(\"%d ”,a[i]); printf(\"\\n”); }

/*——--—-----—----——-——————-—--———-—-———---—--———-- 20【程序改错】

-----——--——--————-——-———--—————-—-—-—--—-—-——-—---

题目:编写函数fun,求两个整数的最小公倍数,然后用主 函数main()调用这个函数并输出结果,两个整数由 键盘输入.

------——-——-—--—-—-—-——--—----———--—--———---———-—- 注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。

——-——--—--—-——-——--——---——-—--—--———-————---—--—*/ #include ”stdio。h” void main() {

unsigned int m,n,q;

printf(\"m,n=”);

scanf(\"%d,%d”,&m,&n);

/**********FOUND**********/ q=fun(m,n);

printf(”p(%d,%d)=%d”,m,n,q); }

int fun(int m,int n) {

int i;

/**********FOUND**********/ if (m{i=m;m=n;n=i;}

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〈i;k++)

/**********FOUND**********/ if(i%k==0) break;

/**********FOUND**********/ if(k==i)

return(i); } }

void main() {

int n;

printf(”\\nPlease enter n:”); scanf(”%d\&n);

printf(”%d\\n”,fun(n)); }

/*—-—-—-—--————--—---—-——--———-————-——-———----——-—--—-—- 22 【程序改错】

-——---—--—----—--—-—-——————-—————---——---——-—-———--—-—-—

题目:打印出如下杨辉三角形(要求打印出6行)。 1 1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

——-—-—-—-———-—-———-——-—-———-—-----——-——--———--—---——-——- 注意:不可以增加或删除程序行,也不可以更改程 序的结构.

---—-—---———-———-—————---———-—-———-———-—————-—--——--——*/

#include”stdio。h” void main() { int i,j;

int a[6][6]; printf(”\\n”);

/**********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〈i;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(\"%5d”,a[i][j]); printf(”\\n\"); } }

/*——-——-—--—————-—-—---——-———--—--———-——--—--—--—---———— 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(\"\\Please enter a number:”) ; scanf(\"%ld”,&n) ; printf(”\\n%ld\\n\) ; }

/*-—-—--—----——----—--—-—---———-—---——--——----——--——-——- 24 【程序改错】

-—-—-——-———--—-—--—-——---——---—--——-——--—-—---——-—--—-—-

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当 即吃了一半,还不过瘾,又多吃了一个,第二天 早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个. 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。

---——-——---—--—--——-—-——----—----——-—-——-----—-———-——-—- 注意:不可以增加或删除程序行,也不可以更改程序的 结构。

—-—---——---—-——-—--—----——--————-———-——-—————---——---—*/ #include”stdio。h\" void main() {

int day,x1,x2; day=9;

/**********FOUND**********/ x2=1;

while(day>0)

/**********FOUND**********/ {x1=(x2+1)*2; x2=x1;

/**********FOUND**********/ day--; }

printf(\"the total is %d\\n”,x1); }

/*—-——-—---———-———-———--—---———-—-----—-—-———----—--—-—— 25【程序改错】

———-—--—-——---—-—--——-——-—-——--————-——-—---——---—----———

题目:一个5位数,判断它是不是回文数.即12321是回 文数,个位与万位相同,十位与千位相同。

———--—--—--—-————————--———-———--————-———-——-——---—---——-

注意:不可以增加或删除程序行,也不可以更改程序 的结构。

-———---——--——---——-——---——---——-——-—---———-—-—--——---—*/ #include”stdio.h\" void main( ) {

/**********FOUND**********/ long ge,shi,qian,wan,x; scanf(”%ld\",&x);

/**********FOUND**********/ wan=x/10000;

qian=x%10000/1000; shi=x%100/10; ge=x%10;

/**********FOUND**********/ if(ge==wan&&shi==qian)

printf(\"this number is a huiwen\\n”); else

printf(”this number is not a huiwen\\n\"); }

/*--—-———-—-——————---—--—-————————-———--———————-—--———-—

26 【程序改错】

-——--—-——--—-—----———------—————-————--—————-—--——-—-—-—

题目:编写函数fun求20以内所有5的倍数之积。

——-----—————--—---—-———-———---—--——---———-——-——————-—--- 注意:不可以增加或删除程序行,也不可以更改程序的结构。

-————-—-——-—--—-—--—--—----———---—-—----—--———--——-———*/ #define N 20

#include ”stdio。h” void main() { int sum; sum=fun(5);

printf(\"%d以内所有%d的倍数之积为: %d\\n\,sum); }

int fun(int m) {

/**********FOUND**********/ int s=1,i;

for(i=1;i〈N;i++)

/**********FOUND**********/ 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 \"stdio.h\"

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〈n;i++)

{ if(Min〉array [i]) Min=array [i]; /**********FOUND**********/ sum=sum+array[i]; }

/**********FOUND**********/ ave=sum/n;

for(i=0;i/**********FOUND**********/ if(array[i]==Min) J++; return(ave); }

void main( ) {

float a[10],ave; int i=0;

printf(\"Input 10 scores:\\n”); for(i=0;i〈10;i++)

scanf(\"%f”,&a[i]); ave=fun(a,10);

printf(\"ave=%f\\n”,ave); printf(”min=%f\\n”,Min); printf(”Total:%d\\n\",J); }

/*-——-—------—-—-——————-—---——--—-—--—-—----———-—--————— 28 【程序改错】

——--—-————-----—----——-—-————--———————-—-—-————--——----—

题目:有一数组内放10个整数,要求求出平均值,并打印.

————--—————--—-—--——------——--—-—-——----—-----—-—---—--— 注意:不可以增加或删除程序行,也不可以更改程序的结构。

--—-———----—--—-——-—------—-————-—-—-———--—-—-———--———*/ #include〈stdio。h〉

float average(float array[10]) {

int i;

float aver,sum=array[0];

/***********FOUND***********/ for(i=1;i〈10;i++) sum=sum+array[i]; aver=sum/10.0; return(aver); }

void main( ) {

/***********FOUND***********/ float score[10],aver ; int i;

printf(\"input 10 scores:\\n\"); for(i=0;i<10;i++)

/***********FOUND***********/ scanf(\"%f\; printf(\"\\n”);

/***********FOUND***********/ aver=average(score);

printf(”average score is %5。2f”,aver); }

/*————--—----—-—-—--——-—----—--——-----———---——-———------ 29【程序改错】

--—--——--—--——————-——————-—-———-—-——-—--—-——--———-—-—-

-—

题目:利用递归方法求5!。

--——-—--——---————-——---——--—--——--————-———-------—-———-— 注意:不可以增加或删除程序行,也不可以更改程序 的结构.

—-——-—-—--——----——————-----——-——-—-—-—-——---———————--—*/ #include int fact(int j);

printf(”5!=%d\\n”,fact(5)); }

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 \"stdio。h” 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(”this sum=%ld\\n\",sum(14)); }

/*——-———---——————-—-----—--—----—-—-———-—-——-—------—--- 31 【程序改错】

-----—----————--———-—--—-—-—-——-——————----———-—-——-—---—

题目:下列给定程序中,函数fun的功能是:判断m是否为素数, 若是返回1,否则返回0。主函数的功能是:按每行5个输 出1-100之间的全部素数。

请改正程序中的4个错误,使它能得出正确的结果。

———————-——-—--————-——-————-------——-—--——-—---—---—-——-- 注意:不可以增加或删除程序行,也不可以更改程序的结构。

-———-—-—-———--------—-—---—-----——---——-—-—————---———-*/

#include〈stdio。h>

/**********FOUND**********/ void fun( int m) {

int i,k=1;

if(m〈=1) k=0;

/**********FOUND**********/ for(i=2;i〈m;i++)

/**********FOUND**********/ 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(\"%4d\);k++; if(k%5==0)printf(”\\n\"); } }

/*-—————---——--—--—-—————————--—-——-----——-—-—-—-—-——-—- 32 【程序改错】

-—---—--——-———--—-——----—-—————-—-------———-—-—----——-—-

题目:求100以内(包括100)的偶数之和。

--——---——-———————-——--------———-—---——-—---—--——--———-—- 注意:不可以增加或删除程序行,也不可以更改程序 的结构。

——--—————-—-——-—-—----———-—-——--—--—-----——--—--——----*/ #include \"stdio.h” void main() {

/**********FOUND**********/ int i,sum=0;

/**********FOUND**********/ for(i=2;i〈=100;i+=2) sum+=i;

/**********FOUND**********/ printf(\"Sum=%d \\n\ }

/*——------————-—-—-————-------——--——----—------——-—-———— 33 【程序改错】

————————-——-————-——--—-—-—-—-—--—--——----—-——-———---—-—-

题目:用起泡法对10个整数从小到大排序。 程序有4条错误语句,请改正错误。

—-———--——-————--———————--————-—-———-----—----—-----—--—- 注意:不可以增加或删除程序行,也不可以更改程序的结构.

-————-—--———----———--——------—-————----————-—————-—-—-*/

#include〈stdio。h>

/**********FOUND**********/ void sort(int x[],int n)

{

int i,j,k,t;

for(i=0;i〈n-1;i++)

/**********FOUND**********/ for(j=0;j〈n-1-i;j++)

/**********FOUND**********/ 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(”please input the length of the array:\\n”); scanf(”%d”,&n); for(i=0;iscanf(\"%d\ sort(a,n);

printf(\"output the sorted array:\\n”); for(i=0;i〈=n-1;i++) printf(”%5d\",a[i]); printf(\"\\n\"); }

/*--—-——--——--------————----——-----——---———-—————--—-——— 34 【程序改错】

——-—-—---—--—-———-——--—-———---——--—————-—-—---—------———

题目:函数fun的功能是:求出两个非零正整数的最大公约数, 并作为函数值返回。例如,若给num1和num2分别输入49 和21,则输出的最大公约数为7。

请改正程序中的错误,使它能得出正确的结果.

——--——---—----—---—-—-———-———--——--—--——-——-—------———-— 注意:不可以增加或删除程序行,也不可以更改程序的结构.

-----———-——--—-—--——-——-—-—----——--———--——-————-—---——*/

#include〈stdio。h〉 int fun(int a,int b) {

int r,t; if(a〈b) {

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(\"Input two numbers:\\n”); scanf(”%d%d”,&num1,&num2); a=fun(num1,num2);

printf(”the maximum common divisor is %d\\n\\n”,a); }

/*-—-—--—-———-—-—-—-—-—-——----———-————--—---——--—-—----— 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 〈stdio。h>

int Row,Col; void main() {

int a[N][M],i,j,min,row,col; printf(\"input a array:”); for(i=0;i〈N;i++) for(j=0;jfor(j=0;jmin=fun(a);

printf(”max=%d,row=%d,col=%d”,min,Row,Col); }

int fun(int array[N][M]) {

int min,i,j; min=array [0][0]; Row=0; Col=0;

for(i=0;i/**********FOUND**********/ {for(j=0;j/**********FOUND**********/ 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(\"please input n(n>=0):\"); /**********FOUND**********/ scanf(\"%d\); i=1;

/**********FOUND**********/ t=1;

while(i〈=n)

/**********FOUND**********/ { t*=i; i++; }

printf(\"%d!=%f\,t); }

/*——---—————-——--——-——--—----——-----—-———--————--— 37 【程序设计】

-—-—---————----——--——-—-—-—---—-—-———---——-----—--

题目:编写函数fun,函数的功能是:求1到 m之间(包括m)的偶数之积。

-—-—-—-—---—-—-———-—--———-——--—--—---—-—-—----———— 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函

数fun的花括号中填入所编写的若干语句。

—-———----——————-—-----—-———-——-————---—————-—---*/

#include ”stdio。h”

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(”ji=%lf\\n”,fun(20)); yzj(); } yzj() {

FILE *IN,*OUT; int iIN,i; double dOUT;

IN=fopen(”in.dat”,\"r\"); if(IN==NULL)

{printf(”Please Verify The Currernt Dir。.It May Be Changed\"); }

OUT=fopen(\"out.dat\if(OUT==NULL)

{printf(\"Please Verify The Current Dir.。 It May Be Changed”); }

for(i=0;i<5;i++)

{fscanf(IN,\"%d\",&iIN); dOUT=fun(iIN);

fprintf(OUT,\"%f\\n”,dOUT); }

fclose(IN); fclose(OUT);

}

/*-—————---—----—-——-———--——-——-—---—----—-—-—--—- 38【程序设计】

-———--———-—-—-—----—--—------—-———---—--——-———-———

题目:编写函数fun其功能是: 找出一个大于给定整 数且紧随这个整数的素数,并作为函数值返回。

———--—--—-———————-—---—-—------—————-—————--—-—-—- 注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。

-———--—-—-———--—-—--—-—-—-—-——————-—--—-—-——————*/ #include ”stdio.h”

int fun(int n) {

/**********Program**********/

int i,k; for(i=n+1;;i++) {

for(k=2;k〈i;k++) if(i%k==0) break; if(k==i) return(i); }

/********** End **********/ }

void main() { int m;

printf(\"Enter m: \"); scanf(”%d\", &m);

printf(”\\nThe result is %d\\n”, fun(m)); yzj(); }

yzj()

{

FILE *IN,*OUT; int s ; int t; int o;

IN=fopen(”in。dat\",\"r”); if(IN==NULL)

{printf(\"Read File Error\"); }

OUT=fopen(”out。dat\",\"w\"); if(OUT==NULL)

{printf(\"Write File Error\"); } for(s=1;s<=5;s++) { fscanf(IN,”%d\",&t); o=fun(t);

fprintf(OUT,\"%d\\n”,o); }

fclose(IN); fclose(OUT); }

/*-—-—--—-—-———--—-——————-————--———--————-——————-— 39 【程序设计】

—-—--—-----——-——-————---—--———-—--—--———-----——---

题目:编写函数fun将一个数组中的值按逆序存放, 并在main()函数中输出。

例如,原来存顺序为8,6,5,4,1.要求改为: 1,4,5,6,8。

-----——-——-----—--————————-—---————-—--——-——-——--- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数fun的花括号中填入所编写的若干语句.

——---———--———--——--—————--———-----————--—-—-—-——*/ #include \"stdio。h\" #define N 5

void main()

{void fun(int arr[],int n); int a[N]={8,6,5,4,1},i;

for(i=0;i〈N;i++) printf(”%4d\",a[i]); printf(”\\n”); fun(a,N);

for(i=0;i〈N;i++) printf(\"%4d”,a[i]); yzj(); }

void fun(int arr[],int n) {

/**********Program**********/

int i,t;

for(i=0;iarr[i]=arr[n-1—i]; arr[n—1-i]=t; }

/********** End **********/ }

yzj() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\"in.dat\",\"r\"); if(IN==NULL)

{printf(”Read File Error”); }

OUT=fopen(\"out.dat\",”w”); if(OUT==NULL)

{printf(”Write File Error”); }

for(n=0;n<10;n++) {

fscanf(IN,”%d”,&i[n]); }

fun(i,10);

for(n=0;n〈10;n++) {

fprintf(OUT,”%d\\n\[n]); }

fclose(IN); fclose(OUT); }

/*----—-——--——---———-——--————-—-——--——----————-——- 40 【程序设计】

——-——--—--————---—-————-—--—-——--——--——--——-—-----

题目:请编写一个函数fun,函数的功能是:统计出若干 个学生的平均成绩,最高分以及得最高分的人数. 例如,输入10名学生的成绩分别为92,87,68,56, 92,84,67,75,92,66,则输出平均成绩为77。9, 最高分为92,得最高分的人数为3人。

—--—-—-—-—-—-—-—--—-—----——————-—-—--—-----—---—-— 注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句.

-————-—--————-—--—-——--——---————-——————-----—-—-*/ #include \"stdio.h\"

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〈n;i++)

{ if(Max〈array[i] Max=array[i]); sum=sum+array[i]; } ave=sum/n;

for(i=0;iif(array[i]==Max) J++; return(ave);

/********** End **********/ }

void main( ) { float a[10],ave; int i=0;

printf(”请输入10个数:\\n”); for(i=0;i〈10;i++) scanf(\"%f\[i]); ave=fun(a,10); printf(\"ave=%f\\n\",ave); printf(\"max=%f\\n\); printf(”Total:%d\\n”,J); yzj(); }

yzj() {

FILE *IN,*OUT;

float iIN[10],iOUT; int iCOUNT;

IN=fopen(\"8.in”,\"r\"); if(IN==NULL)

{printf(\"Please Verify The Currernt Dir..It May Be Changed\"); }

OUT=fopen(\"8.out”,\"w\"); if(OUT==NULL)

{printf(”Please Verify The Current Dir.。 It May Be Changed\"); }

for(iCOUNT=0;iCOUNT<10;iCOUNT++) fscanf(IN,”%f\",&iIN[iCOUNT]); iOUT=fun(iIN,10);

fprintf(OUT,”%f %f\\n\",iOUT,Max);

fclose(IN); fclose(OUT); }

/*——--—-—--—-----——------——--—--————————-—-——-——-- 41 【程序设计】

——---—-—-----—————--——----—--—---——-——-—---—---———

题目:编写函数fun,函数的功能是:找出一批正整数中 的最大的偶数。

-—-—-—————--—-———-—-—-——-—-——---——--—---—----—-—-— 注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。

—------—-—-----———-——----——-———-—-—-—------—--——*/ #include \"stdio.h\"

int fun(int a[],int n) {

/**********Program**********/

int i,amax=—1; for(i=0;iamax) amax=a[i]; return amax;

/********** End **********/ }

void main() {

int a[]={1,2,9,24,35,18},k; k=fun(a,6);

printf(\"max=%d\\n”,k); yzj(); }

yzj() {

FILE *IN,*OUT;

int iIN[10],iOUT,i,j;

IN=fopen(”28。in”,”r”); if(IN==NULL)

{printf(\"Please Verify The Currernt Dir.。It May Be Changed”); }

OUT=fopen(\"28.out”,\"w”); if(OUT==NULL)

{printf(”Please Verify The Current Dir。. It May Be Changed\"); }

for(j=0;j〈10;j++)

{ for(i=0;i<10;i++) fscanf(IN,”%d”,&iIN[i]); iOUT=fun(iIN,10); fprintf(OUT,\"%d\\n\",iOUT); }

fclose(IN); fclose(OUT); }

/*——————-—-----—------——--———---———-—-------—----— 42 【程序设计】

--—-----------—---—-—-----———-—-—-————-——---——-—-—

题目:编写函数判断一个整数m的各位数字之和 能否被7整除, 可以被7整除则返回1,否则 返回0。调用该函数找出100~200之间满足 条件的所有数。

—-—--——-----—-——--—--—-—--——--———---———-—---—----- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句.

—-———-———-—------—-—-—---—-—--—————----—--—-—---*/ #include \"stdio。h\" int sub(int m) {

/**********Program**********/

int k,s=0; do { s=s+m%10; m=m/10; }

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(\"%4d\); yzj(); } yzj() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\"in.dat”,\"r\"); if(IN==NULL)

{printf(”Read File Error\"); }

OUT=fopen(”out。dat\); if(OUT==NULL)

{printf(\"Write File Error\"); }

for(n=0;n<10;n++) {

fscanf(IN,”%d”,&i[n]); }

for(n=0;n〈10;n++) {

o=sub(i[n]);

fprintf(OUT,”%d\\n\",o); }

fclose(IN); fclose(OUT); }

/*——---———-——---———------—------—-—-——-——————--——- 43 【程序设计】

———-—--—--———--——-----—---—--—---—----——---————-—-

题目:编写函数fun,函数的功能是:计算n门课程的平 均值,计算结果作为函数值返回。

例如,若有5门课程的成绩是:92,76,69,58, 88,则函数的值为76。600000.

—--—————--————-—---—-——--—-—-—-—-—-—---—--—---——-- 注意:部分源程序给出如下.请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。

—--—-——--—-—--——--——--————--———-——----————----——*/

#include ”stdio.h\"

float fun(int a[],int n) {

/**********Program**********/

int i; float y=0;

for(i=0;i〈n;i++) y+=a[i]; y=y/n; return y;

/********** End **********/ }

void main() {

int a[]={92,76,69,58,88}; printf(\"y=%f\\n”,fun(a,5)); yzj(); } yzj() {

FILE *IN,*OUT; int iIN[10],i,j; float fOUT;

IN=fopen(”18.in\ if(IN==NULL)

{printf(\"Please Verify The Currernt Dir.。It May Be Changed”); }

OUT=fopen(”18.out\); if(OUT==NULL)

{printf(\"Please Verify The Current Dir.. It May Be Changed\"); }

for(j=0;j<10;j++) { for(i=0;i〈5;i++)

fscanf(IN,\"%d\",&iIN[i]); fOUT=fun(iIN,5);

fprintf(OUT,”%f\\n”,fOUT); }

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 \"string。h” #include ”stdio。h” 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(”in。dat”,”r”); if(IN==NULL)

{printf(”Read File Error\"); }

OUT=fopen(\"out。dat\); if(OUT==NULL)

{printf(\"Write File Error\"); }

fscanf(IN,”%s\; change(i);

fprintf(OUT,”%s\\n\); fclose(IN); fclose(OUT); }

/*——-----——--—---—-——-————-—-————-—----—---—-———-— 45 【程序设计】

——-—-—-———--—-----———--—--—-—--———-——-———-—-—--——-

题目:请编写函数fun,它的功能是:判断m是否为素数 。主函数的功能是:求出100到200之间的素数的 个数.

—---—--—-——---—--—--—--—--—-——-—-—-—---—---—-—--—- 注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。

———--—--—--—-—-————--—---——-————-——--—————--—--—*/

#include \"stdio。h\" int fun(int m); void main() {

int m,k=0; for(m=100;m<200;m++) if(fun(m)) { printf(\"%4d”,m); k++; if(k%5==0) printf(\"\\n\"); } printf(”k=%d\\n”,k); yzj(); }

int fun(int m) {

/**********Program**********/

int i,k=1; if(m〈=1) k=o;

for(i=2;i〈m;i++) if(m%i==0) k=0; return k;

/********** End **********/ }

yzj() {

FILE *IN,*OUT; int iIN,iOUT,i;

IN=fopen(”12.in”,\"r”); if(IN==NULL)

{printf(\"Please Verify The Currernt Dir。.It May Be Changed\"); }

OUT=fopen(\"12.out\",”w”); if(OUT==NULL)

{printf(”Please Verify The Current Dir.. It May Be Changed\"); }

for(i=0;i<10;i++)

{ fscanf(IN,”%d\",&iIN); iOUT=fun(iIN); fprintf(OUT,\"%d\\n”,iOUT); }

fclose(IN); fclose(OUT); }

/*————---——---——---——-——--—-——-—--——---—-—--———-—- 46 【程序设计】

——————--—————-—---——————-——-——-———---——-—-—-———---

题目: 给定n个数据, 求最小值出现的位置 (如果最小值出现多次,求出第一次出 现的位置即可)。

—-—-—-————---———--—-———-—--——----——----—---—-————- 注意:部分源程序给出如下.请勿改动主函数 main和其它函数中的任何内容,仅在函数 station的花括号中填入所编写的若干语句。

----—-------—--—-———-—--—-———-—-—-——————-——---—-*/ #include ”stdio.h\"

int station(int s[],int n) {

/**********Program**********/

int i,k; k=0;

for(i=1;ik=i; return k;

/********** End **********/ }

void main() {

int a[100],n,i,t; printf(\"请输入n值:\"); scanf(”%d”,&n);

printf(”请输入%d个数:\\n\); for(i=0;iscanf(\"%d\; t=station(a,n);

printf(”the min_value position is:%d\\n”,t); yzj(); } yzj() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(”in。dat”,\"r\"); if(IN==NULL)

{printf(\"Read File Error”); }

OUT=fopen(”out.dat”,”w”); if(OUT==NULL)

{printf(”Write File Error”); }

for(n=0;n〈10;n++) {

fscanf(IN,”%d”,&i[n]); }

o=station(i,10);

fprintf(OUT,\"%d\\n”,o); fclose(IN); fclose(OUT);

/*—-—--———---——---—---—-——-—-—-——-——-----—---———-- 47 【程序设计】

--——-—-—-----—-—-———-—--—--—————————————-————-————

题目:编写函数fun求1000以内所有m的倍数之和.

-———-—-——--—-—————-—-—--——-———————-———-----—-————— 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数fun的花括号中填入所编写的若干语句。

—---——-—-——-———————--—-—--———----———---—--——--—-*/ #define N 1000 #include ”stdio。h” #include 〈conio.h〉 int yzj();

int fun(int m); void main() {int sum;

sum=fun(7);

printf(\"%d以内所有%d的倍数之和为:%d\\n”,N,7,sum);

yzj(); }

int fun(int m) {

/**********Program**********/

int s=0,i;

for(i=1;i/********** End **********/ }

yzj() {

FILE *IN,*OUT; int n;

int i[10]; int o;

OUT=fopen(”out。dat\); if(OUT==NULL)

{printf(”Write File Error\"); }

o = fun(6);

fprintf(OUT,\"%d\\n”,o);

fclose(OUT); }

/*—---—-———--——------——------———----—-—-—-—---—--— 48【程序设计】

——-—-—-———-—-—-----—---——-———------——--—-—--——-—-—

题目:调用函数fun判断一个三位数是否\"水仙花数”。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。所谓\"水仙花 数\"是指一3位数,其各位数字立方和等于该 数本身.

例如,153是一个水仙花数,因为153=1+125+27。

---—-——-—--——---—---------——--———---—-——---————--— 注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。

-———--—--—-—-——-—--——------——————--———-—--—-—---*/ #include ”stdio.h\" int fun(int n) {

/**********Program**********/

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;

/********** End **********/ }

void main() {

int n,flag;

scanf(”%d”,&n); flag=fun(n); if(flag)

printf(”%d 是水仙花数\\n”,n); else

printf(”%d 不是水仙花数\\n”,n); yzj(); }

yzj() {

FILE *IN,*OUT; int iIN,i; int iOUT;

IN=fopen(\"in.dat\",”r”); if(IN==NULL)

{printf(\"Please Verify The Currernt Dir。.It May Be Changed\"); }

OUT=fopen(\"out。dat”,”w\"); if(OUT==NULL)

{printf(\"Please Verify The Current Dir.. It May Be Changed”); }

for(i=0;i〈10;i++)

{ fscanf(IN,\"%d\&iIN); iOUT=fun(iIN);

fprintf(OUT,”%d\\n”,iOUT); }

fclose(IN); fclose(OUT); }

/*——-——-----—--—————-—------—----——-—---—-----——-— 49【程序设计】

————-———-——--—-—--—---—--——-—-——-——--——-———————--—

题目:编写函数fun其功能是:能计算从1开始到n的 自然数的和,n由键盘输入,并在main()函数 中输出。

--——-——--—--——--—---————--—--—-—————————-—-—--—--— 注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。

----—-—--—-————-———-——-—————-—---—-———--————-——-*/ #include \"stdio。h\"

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(”Enter m: ”); scanf(”%d\", &m);

printf(\"\\nThe result is %d\\n”, fun(m)); yzj();

}

yzj() {

FILE *IN,*OUT;

int t; int o; int c;

IN=fopen(”in.dat”,”r”); if(IN==NULL)

{printf(\"Read File Error\"); }

OUT=fopen(\"out.dat”,\"w”); if(OUT==NULL)

{printf(\"Write File Error”); }

for(c=1;c<=5;c++) { fscanf(IN,”%d\&t); o=fun(t);

fprintf(OUT,”%d\\n”,o); }

fclose(IN); fclose(OUT); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务