C语言实验指导(不含答案) 下载本文

实验7 函数

一、 实验目的

1、掌握定义函数的方法;

2、掌握函数实参与形参的对应关系以及“值传递”、“地址传递”的方式;

3、掌握函数的嵌套调用和递归调用的方法;

4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

二、实验内容和步骤

1、 改错

上机调试下面的程序,记录系统给出的出错信息,并指出出错原因. main() { int,y;

printf(\int sum(a,b) {

int a,b;

return(a+b); } }

2、程序填空

(1)求两个正整数m,n之间的非素数之和(包含m和n)。

例如:如果m=2,n=20,则程序的输出应为:Sum is: 132。

(程序有两个空(1)、(2)需要补充完整。请将程序中的____(1)____和____(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!)

#include

#include #include prime( int m ) { int i,k,j; k=sqrt(m);

/************found************/ for (____(1)____;j <= k; j++) if (m % j == 0) break;

if( j<=k ) return (0); else return (1); }

main()

{ int m=2,n=20,i,j,k,s; clrscr(); s = 0;

for ( i=m; i<=n; i++)

/************found************/ if( ____(2)____ ) s += i;

printf(\}

(2)求一维数组a中既不能被3整除也不能被5整除的元素之和。

例如:如果数组a中的元素如下:1,8,5,10,6,18,7,2,4,12,9,11,则程序的输出结果应为:

The result is : 33。

(程序有两个空(1)、(2)需要补充完整。请将程序中的____(1)____和____(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!) #include #include #include long int fun( arr , n ) int arr[12] , n; {int i;

long int s=0; for (i=0;i

if ( arr[i]%3!=0&&arr[i]%5!=0 ) /************found************/ ____(1)____; return (s); }

main()

{ int a[12]={1,8,5,10,6,18,7,2,4,12,9,11}; clrscr();

/************found************/

printf(\ }

(3)程序实现的功能是:将字符串倒序存放并输出。 例如,当字符串为\输出:\

(注意: 以下给出部分源程序请在/*******begin********/ 与 /********end*********/

之间填入你编写的若干语句。请勿改动其它位置的任何内容。)

#include #include void fun(char str1[]) {

/***********begin***********/

/************end************/ }

main()

{ char str1[80]=\ clrscr();

printf(\ fun(str1);

printf(\ nono(str1); }

nono(char str1[]) {FILE *f;

f=fopen(\ fprintf(f,\ fclose(f); }

(4)统计字符串中的所有空格(或指定字符)的个数并输出。

例如,当字符串为\输出:Result is: 4 (注意: 以下给出部分源程序请在/*******begin********/ 与 /********end*********/

之间填入你编写的若干语句。请勿改动其它位置的任何内容。)

#include #include int fun(char str1[]) {

/***********begin***********/

/************end************/ }

main()

{ char str1[80]=\ int count; clrscr();

printf(\ count=fun(str1);

printf(\ nono(count); }

nono(int count) {FILE *f;

f=fopen(\

fprintf(f,\ fclose(f); }

3、注意:以下所有函数都需验证,即编写主函数调用所编