计算机科学-第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");
}
时间: 2024-09-11 08:58:45

计算机科学-第13周 函数 题目及参考解答的相关文章

法133计算机科学课第13周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 [课后练习1] 完成下面"歌手大奖赛计分程序"的设计(至少一项要求): 1.在歌手大奖赛中,有10位评委为参赛的选手打分,分数为0~10分(运行时由人控制).选手最后得分为去掉一个最高分和一个最低分后的平均值.请编写一个程序实现计分. 2.做一个更通用的计分程序,评委人数n可以在输入成绩之前输入,从而评委人数可以灵活调整. 3.进一步完善程序.一次运行程序只计算

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

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1.阅读下面关于递归函数的程序,在草稿纸上画出函数调用"递推-回归"的过程,得出运行结果,并和实际运行结果进行对照(1) #include <stdio.h> int fact(int n); int main(){ long x=0,y=0; x=5; y=fact(x); printf("%ld\n"

计算机科学-第6周 文件 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 题目:文件salary1.txt是某单位100名员工的工号.基本工资和绩效工资.编程序(1)从文件中读取数据,求出总工资,并在屏幕上显示信息:(2)将完整的工资单保存到文件salary2.txt中.(3)将总工资超过5000元的员工的工号保存到文件rich.txt中.(4)在屏幕上显示工资最高的员工的工资信息提示:(1)定义一个结构体数组保存从文件中读入的

计算机科学-第4周 结构 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 例1: 用一个结构表示点,输入点的横纵坐标,输出该点到原点的距离 #include <stdio.h> #include <math.h> struct Point { float x; float y; }; int main() { struct Point p; float d; printf("请输入点的坐标: &

法133计算机科学课第9、10周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 2398:分段函数求值[双分支] Description 编程序,计算下面函数的值并输出: y = x - 1 (当x>=1), y = -x + 1 (当x<1) Input 一个整型数x Output 按公式计算出的y Sample Input 2 Sample Output 1 参考解答: #include <stdio.h> int main() {

法133计算机科学课第15周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 编程练习1:输出1000以内的所有素数. 参考解答: #include<stdio.h> #include<math.h> int main() { int m,i,k,prime; for(m=2;m<=200;m++) { prime=1; k=sqrt(m); for(i=2; i<=k; i++) //最多循环至-- if(m%i==0)

法133计算机科学课第12周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 Problem A:2447: 求N组数的最大公约数Description计算一组数的最大公约数Input第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行Output每组的两个整数(a和b)的最大 公约数,每个结果独占一行Sample Input398 7280 3612 144Sample Output2412

计算机科学-第2周 数组初练-参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 练习一:下面的程序,输出了52张扑克牌(如图),请补充完整程序. #include <stdio.h> int main( ) { char c[4]= {'H','S','D','C'}; int v[13]= {1,2,3,4,5,6,7,8,9,10,11,12,13}; int i,j; for(i=0; i<4; i++) {

计算机科学-第9周 数组、结构体、指针综合练习 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 发现第9周的题目及参考没有公布,补上. 1.阅读程序阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1) #include<stdio.h> int main(){ char a[]="Hello World",*p; int i; i=8; p=a+i; printf("%s\n&