谭浩强c程序设计(第五版)第一章答案

1.什么是程序?什么是程序设计?

    程序,是一组计算机能识别和执行的指令。

    程序设计,是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。

2.为什么需要计算机语言?高级语言有哪些特点?

    计算机语言是用来人与计算机交流信息的一种语言,是计算机和人都能识别的一种信息。

    高级语言很接近人们习惯使用的自然语言和数学语言。即高级语言易于理解。

3.正确理解一下名词及其含义

(1)源程序:是指未经编译,按照一定程序设定语言规范书写的,人类可读的文本文件,叫做源程序,也叫源代码,通常由高级语言编写。

        目标程序:是指源程序经过计算机编译,可直接被计算机执行的机器码集合,以.obj为扩展名。

       可执行程序:是指将文本信息所表示的程序被翻译成的计算机认识的二进制代码串。

(2)程序编辑:是指程序代码、界面等的输入、构建、编辑等。通常指代码的输入和编辑。

         程序编译:是指将高级语言书写的面向过程的源程序翻译成目标程序的语言处理程序。

         程序连接:是指把编译后的模块装配连接,再与函数库构成一个整体的过程。

(3)程序:是指一系列有序执行的指令集合。

         程序模块:是由汇编程序,编译程序,装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令。

        程序文件:是指描述程序的文件。

(4)函数:一段可以被使用的代码。

        主函数:最先被执行的一段代码。

        被调用的函数:调用函数执行计算机任务,此时程序控制权交给被调用函数,执行以定义的任务。

(5)程序调试:是指将编制好的程序在投入使用前,用手工或调试程序进行语法错误和逻辑错误检查的过程。

        程序测试:是指运用程序执行多组数据,检测执行不同数据运算情况的过程。

4.编写一个c程序,执行时输出:

        Hello World! 

#include<stdio.h>
int main()
{
    printf("Hello World!");
    return 0;
}

5.编写一个c程序,执行时输出以下图形:

*****

  *****

    *****

      *****

  最简单粗暴的办法,敲4行printf函数:

#include<stdio.h>
int main()
{
    printf("*****\n");        //一定要有\n,不然不会换行
    printf("  *****\n");
    printf("    *****\n");
    printf("      *****\n");        //最后一行printf函数的\n敲不敲都没有必要
    return 0;
}

也可以一行printf函数

#include<stdio.h>
int main()
{
    printf("*****\n  *****\n    *****\n      *****\n");
    return 0;
}

这样的星号少一点的话还好,如果很多行就太乱了,别人还得向右滑查看完整代码,不利于阅读。

有简单粗暴的,也有高级通用性比较好的:

首先,我们观察一下,每行固定的都有5个星号,只是第一行没有空格,第二行两个空格,第三行四个空格,第三行六个空格,那么每行就是有2*(n-1)个空格

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);     //可以用输入函数想输出多少行就输出多少行星号
    
    
    /*建立一个循环,能够输出完一行******。
    计算机换行后再输出******,
    这样我们用一行就能实现多行的输出*/
    for(int i=0;i<a;i++)
    {
        /*建立另一个循环,能够输出空格,
        首先,j=0,而i=0,所以这个循环不会执行,
        等到i=1,j=0,小于i,所以会执行一次循环,
        输出两个空格,等到i=2,下面这个循环就是执行两次,输出四个空格,
        对于空格后不要加\n,那么空格的输出就不会换行*/
        for(int j=0;j<i;j++)
            printf("  ");
        printf("*****\n");      //计算机会在输出完星号后换行
    }
    return 0;
}

6.编写一个c程序,运行时输入a,b,c三个值,输出其中最大者。

#include<stdio.h>
int main()
{
    int a,b,c,t;        //t用来存储a,b,c两两比较中的较大值
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
        t=a;
    else
        t=b;        //这样就把a,b中的最大值赋值给t
    
    /*用c>t来进行比较,如果c真的大于t,就把c的值赋值给t,
    否则c<t就会什么都不执行,这样t就成了a,b,c三者中最大的那个了,
    而且我们不用敲else的情况,少了几行代码,当代码很多时,能少的地方且不会出现bug的
    代码不敲,就会显得精炼*/
    if(c>t)
        t=c;
    printf("%d",t);
    return 0;
}

当然,我们也可以去自己定义一个求最大值的函数来进行求解:

#include<stdio.h>
int max(int x,int y);        //定义一个max函数,求解两个数中的最大值,当然也可以求解三个数,但是就会显得代码很多,不如这个精简
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d",max(max(a,b),c));       //max(max(a,b),c)会先比较a,b中的最大值,再将a,b中最大值与c比较,求解其中最大值
    return 0;
}
int max(int x,int y)
{
    int z;
    if(x>y)
        z=x;
    else
        z=y;
    return (z);
}

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力敲代码啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值