c语言实训指导书 下载本文

实训六 函 数 【实训目的】

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

2.掌握函数实参和形参的对应关系,以及“值传递”的方法; 3.掌握数组名作为实参时,实参和形参之间的传递方法 【实训内容】

1.分析和记录以下程序运行结果,并上机验证: (1)#include \ main() {

int x=2, y=4;

int swap( int, int );

printf(\ x=%d, y=%d\\n\ swap(x, y);

printf(\ x=%d, y=%d\\n\}

swap( int a, int b) {

int t;

printf(\ a=%d, b=%d\\n\ b); t=a; a=b; b=t;

printf(\ a=%d, b=%d\\n\ b); }

运行结果:

2.预测以下程序结果,并上机验证。 void fun1( )

{ int x=5; printf( \

void fun2( )

{ printf( \ }

main( )

{ int x=2; fun1( ); fun2( x );

printf( \ }

12

运行结果:

3.分析程序运行结果,并验证程序。 static int x=20; void fun1( int x ) { x+=10;

printf(\ }

fun2( )

{ x+=10; printf(\ }

main( )

{ int x=10; fun1( x ); fun2( );

printf(\ }

运行结果:

4.编程题:

(1)定义一个能判断任意整数a是否是素的函数isprime( int a),并利用这一函数,输出100~199之间的所有素数。 (2)定义一个函数递归函数 long f (int n) 求n!,并利用此函数,求出sum=4!+6!+7!的值。

13

实训七 指 针 【实训目的】

1.掌握指针的概念、指针变量的定义

2.掌握指针的运算(取地址运算&、取内容运算*、指针移动的运算等) 3.掌握指针与数组的关系 4.掌握指针与函数的关系 【实训内容】

1. 分析下列程序的运行结果,并上机验证。

(1)main()

{

int i, j, *pi, *pj; pi=&i;

pj=&j; i=5;

j=7; printf(\ printf( \

}

运行结果:

(2) main()

{

int a[ ]={ 1, 2, 3 }; int *p, i; p=a;

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

printf( \ %d %d %d\\n\

}

运行结果:

(3)main()

{

int a[ ]={ 2, 5, 3, 6, 8 }; int *p, i=1, s=0;

for ( p=a; p

运行结果:

14

2.编程题

(1)编写函数,求出小于或等于m的所有素数并放在数组a中,并把所有素数的个数作为函数值返回。函数原型如下:int fun(int *a,int m);

(2)编写函数,分别求出数组a中所有奇数、偶数之和。形参n给出数组元素的个数,整型指针odd返回奇数之和,even返回偶数之和。函数原型如下:int fun(int *a,int n,int *odd,int *even);

(3)编写函数,函数返回数组a中n个学生中低于平均分的人数,并将低于平均分的分数放在数组b中。函数原型如下:int fun(int *a,int n,int *b);

15