C语言入门学习-C上机实验九要求

发布时间 : 星期四 文章C语言入门学习-C上机实验九要求更新完毕开始阅读

上机实验九 函数综合练习一

【实验八参考答案见后】 目的和要求:

(1)熟练掌握参数传递的要领; (2)掌握全局变量的使用要领; (3)了解静态局部变量的特点。

实验内容: 一、完善程序题

1.求10!

【提示:本程序利用静态局部变量保留每次调用函数的结果。】 #include #define N 10

________________________________; main() {int i; long f;

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

f=____________________________; printf(\}

long JC(int n)

{______________________________; jc=jc*n; return jc; }

2.以下程序中的trap函数是一个用梯形法求定积分的通用函数,梯形法求定积分s的公式为:

s?((f(a)?f(b))/2??f(a?i*h))*h, h?i?1n?1a?b n其中n为积分小区间数,以下程序调用trap函数求定积分,被积函数是: f(x)=x*x+3*x+2,且n=1000,a=0,b=4。(程序运行结果参考:53.333344) #include #include

double mypoly(double x) {return(x*x+3.0*x+2.0); }

double trap(double a,double b) {double t,h; int i,n=1000;

t=0.5*(mypoly(a)+mypoly(b)); h=______________/(double)(n);

for(i=1;i<=n-1;i++) t=t+_____________________; t=t*h; return(t); }

main() {double y;

y=__________________; printf(\ }

3.下列程序完成的功能是:调用子函数求得数组a中所有的降序素数,即某正整数既是素数,又是降序数(所谓降序数,或是一位整数;或该数的高位数字大于等于低位数字,例如:-852。) #include #define N 5 int SS(int x); int JX(int x) ; main() {int i , n=0;

int a[N]={-852,4321,9887,5,64}; for(i=0;i

if(____________________________) {n++;

printf(\

if(n==0)printf(\}

int SS(int x) /*此函数判断x是否素数*/ {int k,flag=1;

if(x<2) ________________; for(k=2;k<=x-1;k++)

if(x%k==0){flag=0;break;} return flag; }

int JX(int x) /*此函数判断x是否降序数*/ {int s[20],i,k; int flag=1; if(x<0) x=-x; if(x<10) return 1; k=0;

while(____________) {s[k++]=x; x=x/10; }

for(i=____________; i>0;i--) if(s[i]

8 10 24 13

4

3 6 9 7

4

9

6 9 原 数 组 : 2 15 19 16 18 处 理 后 的 数 组 : 2

15 17 16 17 9 4 5

3 5 9 4 19

2

1

6

7

8

2

1

6

7

输出结果为:8 9 17 19 25

#include #define n 5 void main()

{int a[n][n]={{10,25,24,13,23},{4,3,6,9,7},{2,15,19,16,18},{17,9,4,5,3},{2,1,6,7,8}}; _____________________; int i; fun(a);

for(i=0;i

printf(\ printf(\ }

void fun(_____________________) {int i, j, t, arr, col; for(i=0;i

{arr=____________; col=0;

for(j=1;j=arr) {arr=x[i][j]; ____________; }

t=____________;

____________=x[i][col]; x[i][col]=t; }

for(i=0;i

23

7

18

3

25

if(________________)

{t=________; ________________; ________=t;} }

二、编程题

使用全局变量完成下列任务:任意读入10个整数,调用子函数求得它们的平均值、最大值、最小值后由主函数输出。

【实验八参考答案】 一、完善程序题

1.以下程序统计指定句子(即只含有字母、空格、句号的字符串)中的单词个数,并输出每个单词。 【本题的思路是:将每个单词存放到二维数组的每一行,则存放的行数即为单词的个数。】 #include #include main()

{char *text=\ I will pass the examination in the summer holiday.\ int n, i, j, word; char a[20][80];

while(*text==' ' )text++; /*去掉前导空格*/ n=0; j=0;

for(i=0;i

if(isalpha(*(text+i))) /* isalpha 函数的功能是判断其参数是否为字母,要加\ {a[n][j++]= *(text+i) ; word=0;} else

if(word==0){ word=1; a[n][j]='\\0' ; n++ ; j=0 ; } printf(\for(i=0;i

2.用指针完成下列任务:输出如下矩阵:

1 2 3 4

联系合同范文客服:xxxxx#qq.com(#替换为@)