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

《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597


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)值的功能,输出按下面公式计算得到的值
       
  请在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)编一段程序,要求能输出给出的图案

    

  请在下面程序基础上补充,利用好用于输出一行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)计算机中的应用程序,常常用“菜单”的形式,提供给用户便捷的操作。
  下面的程序段给出了一些提示,请在此基础上拓展,使程序的运行如图所示(不限于此,可以拓展)

    

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

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");
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值