第7章函数习题及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7-4 仔细阅读下例程序,给出程序的运行结果。(1) main()

{

void fun1(),fun2() ; /*应该增加的函数声明语句*/

fun1() ;

printf(" ") ;

fun2();

}

void fun1()

{

printf("COMPAQ") ;

}

void fun2()

{

printf("COMPUTER") ;

}

(2) main()

{

void fun() ;/*应该增加的函数声明语句*/

int i ;

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

fun();

}

void fun()

{

static int a=100;

int b=1 ;

++b ;

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

a+=1 ;

}

(3)static int a=10;

main()

{

int a=100;

void fun1() ,fun() ;/*应该增加的函数声明语句*/

fun1();

fun2();

printf("a=%d\n",a);

}

void fun1()

{

a-=a/2;

printf("a=%d\n",a);

}

void fun2()

{

int a=100;

a*=a;

printf("a=%d\n",a);

}

(4)main()

{

int add(int,int); /*应该增加的函数声明语句*/

extern int x,y ;

printf("%d",add(x,y));

}

int x=20,y=5;

add(int a,int b)

{

int s ;

s=a+b;

return(s) ;

}

(5)void f(int n)

{

int x=5;

static int y=10;

if(n>0)

{

++x ;

++y;

printf("x=%d,y=%d",x,y) ;

}

}

main()

{

int m=1;

f(m) ;

}

答:(1)由于fun1()函数定义在main()函数的调用后面,故在main()中应该增加函数声明函数的语句“void fun1(),fun2();”。

运行结果:COMPAQ COMPUTER

(2)同(1),在main()中应该增加函数声明语句。

运行结果:100+2=102

101+2=103

102+2=104

103+2=105

104+2=106

105+2=107

106+2=108

107+2=109

108+2=110

109+2=111

(3) 同(1),在mai()中应该增加函数声明语句。

运行结果: a=5

a=10000

a=100

(4)同(1),在main()中应该增加函数声明语句。

运行结果:25

(5)运行结果:x=6 ,y=11

思考:将一些重复的计算方法通过函数进行处理的好处是什么?它体现了结构化程序设计的什么思想?

7-5 定义一个函数,求x n。

解float fun(float x, int n)

{

int i ;

float y=1;

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

y*=x ;

return(y);

}

思考:此函数的返回类型是什么?形参类型有几种?形参个数有几个?

7-6 定义一个函数,求两个数的平均值。

解:float fun(float x1, float x2)

{float s;

s=(x1+x2)/2;

return(s);

}

思考:此函数的返回类型是什么?形参类型有几种?形参个数有几个?

7-7 定义一个函数,输出九九乘法表。

解:void fun()

{

int i,j;

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

{

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

printf("%d*%d=%-3d",j,i,i*j);

printf("\n") ;

}

}

思考:此函数定义时的 void表示什么?无参函数的特点是什么?

7-9 编写程序,求100个实数的和及平均值,要求用函数完成。解:#include "stdio.h"

void main()

{

float fun_sum(int),fun_aver(float,int);

float sum,average ;

int n ;

printf("请输入实数的个数(<=100):");

scanf("%d",&n);

sum=fun_sum(n);

average=fun_aver(sum,n);

printf("sum=%f,average=%f\n",sum,average);

}

float fun_sum(int n)

{

int i ;

float x,s=0;

printf("请输入%d个实数:\n",n);

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

{

scanf("%f",&x);

相关文档
最新文档