1、阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解函数的用法

(1)

#include <stdio.h>
void fun(int x, int y)
{
x=x*10;
y=y+x;
printf("%d\t%d\n",x,y);
}
int main()
{
int a=2, b=3;
fun(a+b,a*b);
printf("%d\t%d\n",a,b);
return 0;
}

你认为运行结果为:_________________


实际运行的结果为:_________________


(2)


#include<stdio.h>
int runc(int a,int b)
{
return(a+b);
}
int main()
{
int x=2,y=5,z=8,r;
r=runc(runc(x,y),z);
printf("%d\n",r);
return 0;
}

你认为运行结果为:_________________


实际运行的结果为:_________________


(3)


#include<stdio.h>
void func(int x){
x=10;
printf("%d ",x);
}
int main( ){
int x=20;
func(x);
printf("%d", x);
return 0;
}

你认为运行结果为:_________________


实际运行的结果为:_________________


(4)


#include <stdio.h>
int t; //全局变量
int f(int a){
if(a>5 && a<=10)
return a;
t++;
return 0;
}
int main(){
int n;
t = 0;
for( n=1; n<=10; n++ )
{
printf("%d ", f(n));
}
printf("\nt=%d\n", t);
return 0;
}

你认为运行结果为:_________________


实际运行的结果为:_________________




2、程序设计


  (1)编程序,输入x的值,用自定义函数实现求f(x)值的功能,输出按下面公式计算得到的值



计算机科学-第13周 函数 题目及参考解答_计算机科学 


  请在main函数中调用自定义函数完成任务。

  参考解答:

#include <stdio.h>
float f1(float x)
{
float y;
if(x<0.5)
y = -3 * x;
else
y = x - 2;
return y;
}
int main()
{
float x, y;
scanf("%f",&x);
y = f1(x);
printf("x=%5.1f, y=%5.1f\n",x,y);
return 0;
}



  (2)编一段程序,要求能输出给出的图案

    计算机科学-第13周 函数 题目及参考解答_#include_02

  请在下面程序基础上补充,利用好用于输出一行m个ch符号的printchs函数,可以使你的工作简单一些。

#include<stdio.h>
void printchs(int m, char ch);
void printGraph(int n);
int main()
{
printGraph(6);
return 0;
}
//定义能输出m个符号ch的函数
void printchs(int m, char ch)
{
int j;
for (j=1; j<=m; ++j)
printf("%c",ch);
}
//下面定义能输出要求图案的函数printGraph


参考解答:

#include<stdio.h>
void printchs(int m, char ch);
void printGraph(int n);
int main()
{
printGraph(6);
return 0;
}
//定义能输出m个符号ch的函数
void printchs(int m, char ch)
{
int j;
for (j=1; j<=m; ++j)
printf("%c",ch);
}
//定义能输出要求图案的函数
void printGraph(int n)
{
int i;
for(i=1; i<=n; ++i)
{
printchs(i-1,' ');
printchs(2*(n-i)+1,'*') ;
printf("\n");
}
}



  (3)计算机中的应用程序,常常用“菜单”的形式,提供给用户便捷的操作。


  下面的程序段给出了一些提示,请在此基础上拓展,使程序的运行如图所示(不限于此,可以拓展)


    计算机科学-第13周 函数 题目及参考解答_应用程序_03

  鼓励根据自己掌握的一些需求,例如银行存取款、学生档案管理、法律诉讼受理等,做出应用程序的“框架”,界面的表现形式也可以更美观一些。

int main()
{
char cChioce;
while(1)
{
printf("* 1. 吃饭\n");
……
printf("* 请选择(0-3):");
scanf("%c", &cChioce);
fflush(stdin);
if (cChioce=='1')
eat();
else ……
}
return 0;
}
void eat()
{
printf("我吃吃吃... ...\n");
}

参考解答:


#include <stdio.h>
void eat();
void sleep();
void hitdoudou();
void cry();
int main()
{
char cChioce;
while(1)
{
printf(" ********************\n");
printf(" * 1. 吃饭 *\n");
printf(" * 2. 睡觉 *\n");
printf(" * 3. 打豆豆 *\n");
printf(" * 4. 找豆豆妈诉苦 *\n");
printf(" * 0. 退出 *\n");
printf(" ********************\n");
printf(" 请选择(0-4):");
scanf("%c", &cChioce);
fflush(stdin);
if (cChioce=='1')
eat();
else if (cChioce=='2')
sleep();
else if (cChioce=='3')
hitdoudou();
else if (cChioce=='4')
cry();
else if (cChioce=='0')
break;
else
{
printf("\007选择错误!\n");
continue;
}
printf("恭喜你完成了一项工作!\n");
}
return 0;
}
void eat()
{
printf("我吃吃吃... ...\n");
}
void sleep()
{
printf("我睡觉觉... ...\n");
}
void hitdoudou()
{
printf("我打打打... ...\n");
}
void cry()
{
printf("哇,管管你家豆豆... ...\n");
}