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

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

来源:九壹网
1【程序填空】

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

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

---———--——--—---———----—-—-—--—-—-—--—-—--——--———-——---*/ #includefun(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\",c); }

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

————---——--—-————-—-—---—-————---—----—--——-—-——----—-——— 题目:求n!,n值由键盘输入。

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

#include 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\,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\); 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个数据存入数组中,将其倒置存放,并打印输出.

—----—-—-——-—--—-—--——---------——----—--—-—————-——-——-—*/ #includeprintf(”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〈N;i++) printf(”%d \[i]); }

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

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

题目:输出Fibonacci数列的前15项,要求每行输出5项。 Fibonacci数列:1,1,2,3,5,8,13。...。。.。..。

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

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

9 【程序填空】

—---—---————-——--————-—--—-—----——-—-—-—-——-——-—-—-————-- 题目:某次大奖赛,有10个评委打分,下面的程序是对一名参赛者评分,输入10个评 委的打分分数,去掉一个最高分,一个最低分后,求出平均分即为该参赛者的得分。 —----—-——-----—-----—---——-——-——-———---——-——-—-——----—-*/ #include〈stdio。h> 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〈min) min=mark;

/***********SPACE***********/ else if(【mark〉max】) max=mark;

/***********SPACE***********/ 【sum+=mark】; }

aver=(sum-max—min)/8;

printf(\"The Average score is %f\\n\; }

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

—-——-—-—-——-—-—--—-—-—-———-----—----——-———-----—-—-—————- 题目:输出9*9口诀.

-—-—---———-—------—-—-———-——-—--—————-————--—-——------—*/ #include/***********SPACE***********/ for (i=1;【i<10】;i++)

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

result=i*j;

/***********SPACE***********/ printf(”%d*%d=%—3d\",i,j,【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/***********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/***********SPACE***********/ 【printf】(\"%4d\]); }

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

———--—--—---—--—---——--—---——--————-—-—---————----—--—--— 题目:输入3个整数,输出最大数。

—-—-——----———--—---——--————-————--—---——---—---———————-*/ #include{ 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,请把这三个数由小到大输出。

--——----——--——-----—----——-——--——-----—---——--——----———*/ #includescanf(”%d%d%d”,&x,&y,&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〈stdio.h> 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〈j+3;k++) printf(\" \");

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

/*---—--———-—--———--—-———-—-—-———--—--—--——-————-—----—-— 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〈=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

——-—----———---———-——--—----—--—----—————----—--——-—-—-—*/ #include〈stdio.h> void main() {

int 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;ifor(j=1;j〈i;j++)

/***********SPACE***********/ a[i][j]=a[i-1][j]+【a[i—1][j-1]】; for(i=0;i〈n;i++)

{ for(j=0;j〈=i;j++) printf(\"%4d”,a[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 \]); printf(”\\n\"); }

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

——-—--——-———-—--—--—-—-———---——---——-—-—-------——- 题目:编写函数fun,求两个整数的最小公倍数,然后用主

函数main()调用这个函数并输出结果,两个整数由 键盘输入。

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

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

unsigned int m,n,q; printf(\"m,n=”);

scanf(”%d,%d\&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〈n) {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〈conio.h〉 #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\); printf(”%d\\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/**********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\",fun(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”,N,5,sum); }

int fun(int m) {

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

for(i=1;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{ if(Min>array [i]) Min=array [i]; /**********FOUND**********/ sum=sum+array[i]; }

/**********FOUND**********/ ave=sum/n; for(i=0;i〈n;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\; 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\", &score[i]); printf(\"\\n”);

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

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

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

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

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

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

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/**********FOUND**********/ void fun( int m) {

int i,k=1;

if(m〈=1) k=0;

/**********FOUND**********/ for(i=2;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”,m);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”,sum); }

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

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

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

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

——----—-—----—---———-———--—-——————--—-——-——---—---——--*/ #include/**********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;i〈n;i++)

scanf(\"%d\&a[i]); sort(a,n);

printf(\"output the sorted array:\\n”); for(i=0;i<=n—1;i++) printf(\"%5d\]); 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 int a[N][M],i,j,min,row,col; printf(\"input a array:\"); for(i=0;ifor(j=0;j〈M;j++)

scanf(”%d”,&a[i][j]); for(i=0;ifor(j=0;j〈M;j++) printf(”%d\); printf(”\\n\"); }

min=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〈M;j++)

/**********FOUND**********/ if(min >array [i][j]) {min=array [i][j]; Row=i;

/**********FOUND**********/ Col=j;} }

return(min); }

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

36 【程序改错】

--———---—-———-——---—-—--———-——-—-——--—-—-——-—--—-—--———— 题目:求n!,n值由键盘输入。

程序有4条错误语句,请改正错误。

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

---—————-———-——-——--————--—-—--——-——--——-———---—--—-——*/ #include〈stdio。h〉 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”,n,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;ifor(i=0;ivoid fun(int arr[],int n) {

/**********Program**********/ int i,t;

for(i=0;i〈n/2;i++) { t=arr[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(”in。dat\); 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\}

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(Maxfor(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”,&a[i]); ave=fun(a,10); printf(\"ave=%f\\n\); printf(\"max=%f\\n”,Max); 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;i/********** End **********/ }

void main() {

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

printf(\"max=%d\\n\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\); }

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”,i); 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]); }

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\",”r”); if(IN==NULL)

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

OUT=fopen(\"18。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<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\); 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\",i); 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\); 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\}

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;i/********** End **********/ }

void main() {

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

printf(”请输入%d个数:\\n”,n); for(i=0;i〈n;i++)

scanf(”%d\",&a[i]); 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\",”w\"); if(OUT==NULL)

{printf(”Write File Error”); }

o = fun(6);

fprintf(OUT,\"%d\\n\); 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\); 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\); iOUT=fun(iIN);

fprintf(OUT,\"%d\\n\; }

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\

printf(”\\nThe result is %d\\n\)); 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\); 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- 91gzw.com 版权所有 湘ICP备2023023988号-2

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

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