谭浩强C语言程序设计第一章题目

第一章:程序设计和C语言,本章主要介绍的是计算机程序相关的知识点,概念偏多,不用刻意的去背,了解即可。

友情提示:有的题目可能没写,因为我感觉没必要,还有就是下面的所有回答专业性的名词解释使用人工智能或Baidu的,程序是完全自己写的,主要是用来记笔记方便以后复习用的,希望对大家有帮助,共勉!

题目1:什么是程序?什么是程序设计?

回答:

  1. 程序是计算机执行的指令集合,它告诉计算机如何完成特定任务。

  2. 程序设计则是创建这些指令的过程,涉及编写、测试、调试和优化代码。

举例:

假设用户想让计算机输出“Hello, World!”。可以编写一个简单的程序,用任何编程语言实现这个输出。这个过程就是程序设计。然后,这个程序在计算机上运行时,会输出“Hello, World!”。这个程序就是完成特定任务(输出问候语)的指令集合。

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

回答:

  1. 人与人之间的交流需要语言,不同国家人与人之间的交流需要不同的语言,人和计算机交流信息也需要解决语言问题。计算机语言是人机交互的媒介,使我们能编写指令让计算机执行任务。

  2. 高级语言如C、Python、C++、Java等,具有如下特点:

    • 抽象度高:高级语言简化了底层细节,让程序员能更专注于逻辑和算法。

    • 易学习和使用:其语法接近自然语言,易于掌握。

    • 平台独立:高级语言编写的程序可在多种计算机上运行。

    • 结构化和模块化:高级语言支持结构化编程,允许程序员将程序分解为函数、模块或对象,这有助于提高代码的可读性、可维护性和可重用性。

题目3:正确理解以下名词及其含义:

(1)源程序,目标程序,可执行程序

  1. 源程序:是程序员编写的原始代码,它包含了完成特定任务所需的指令,但尚未经过编译,因此无法被计算机直接执行。

  2. 目标程序:源程序经过编译后得到的二进制代码集合可以被计算机识别和执行。在计算机文件上,目标程序通常以“.obj”作为扩展名。

  3. 可执行程序:目标程序与库函数连接后形成的完整程序,可以在操作系统下独立执行。在Windows环境下,可执行程序通常以“.exe”作为扩展名。

(2)程序编辑,程序编译,程序连接

  1. 程序编辑:是程序员在计算机上输入或修改源代码的过程

  2. 程序编译:将源程序转换为计算机可以执行的二进制代码的过程。编译器会检查源程序中的语法错误,并自动将源程序转换为目标程序。

  3. 程序连接:将编译后得到的目标模块与函数库相连接,形成一个整体的过程。这样,各个模块可以协同工作,共同实现程序的功能。

(3)程序,程序模块,程序文件

  1. 程序:一组计算机能识别和执行的指令,用于完成特定的任务或满足某种需求。

  2. 程序模块:是程序中的一个独立部分,通常具有特定的功能或任务。模块化的编程方式可以提高代码的可读性和可维护性。

  3. 程序文件:是存储程序代码的文件,通常以特定的格式和扩展名保存在计算机上。

(4)函数,主函数,被调用函数,库函数

  1. 函数:是将一段经常需要使用的代码封装起来,以便在需要时直接调用的代码块。函数有助于减少代码冗余,提高代码的可重用性。

  2. 主函数:又称main函数,是C语言程序的入口点。程序执行时,操作系统会调用主函数,并从主函数开始执行整个程序。

  3. 被调函数:在一个函数中调用另一个函数时,被调用的那个函数就被称为被调用函数。

  4. 库函数:是编译器提供的、可在程序中直接调用的函数。它们通常分为两类:一类是C语言标准规定的库函数,如printf()、scanf()、malloc()等,另一类是编译器特定的库函数。

(5)程序调试,程序测试。

  1. 程序调试:在程序投入实际运行前,通过手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。其目的是确保程序能够按照预期的方式正确运行。

  2. 程序测试:对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测。测试的目的是确保程序能够按照预定的方式正确地运行,并满足用户需求。

题目4:编写一个C程序,运行时输出Hello World!

#include<stdio.h>
​
int main(void) {
​
    printf("Hello World!");
​
    //程序正常退出返回0
    return 0;
}

题目5:编写一个C程序,运行时输出以下图形

分析:

4行,每行五个星星,每增加一行,空2个星星的位置

记住一句话:外层循环控制行数,内层循环控制列数

首先4行得知程序通过外层for循环进行控制,

然后列在这个程序中主要考虑的是空格的个数,因为星星的个数一样,不需要考虑,直接输出即可,

继续通过需要输出的图形可以判断出来,每增加1行就空两个星星的空格,所以呈现线性增长,所以内层循环第一行是2*0也就是0个空格,第二行是2*1也就是2个空格,以此类推,符合程序的要求。

程序代码如下:

#include <stdio.h>  
  
int main() {  

    int i = 0,j = 0;
    
    //控制打印的行数,一共4行
    for (int i = 0; i < 4; ++i) {
        //打印每行*之前的空格
        //第一次不打印空格,此时0<0不成立,跳出循环执行打印*****
        //第二次打印0,1共两个空格,判断2<2不成立,满足条件
        //第三次打印0,1,2,3共4个空格,判断4<4不成立,满足条件
        //以此类推
        for(j = 0;j < i * 2;j++){
            printf(" ");
        }
        //打印每行的*
        printf("*****\n");
    }  
    return 0;  
}

举一反三:输出如下的图形

#include<stdio.h>

int main(void){

    int i = 0,j = 0;
    //控制行数
    for(i = 0;i < 5;++i){
        //控制列中的星星数
        for(j = 0;j < i + 1;j++){
            printf("*");
        }
        //每行输出完成之后换行
        printf("\n");
    }

    return 0;
}

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

使用if判断或者三目运算符都行

#include<stdio.h>

int main(void){

    //定义3个数
    int a;
    int b;
    int c;

    printf("请输入要比较的三个数,进行最大值的输出:\n");

    //输入三个数
    scanf("%d,%d,%d",&a,&b,&c);

    //使用三目运算符计算
    int twoMax = a > b ? a : b;
    int threeMax = twoMax > c ? twoMax : c;

    printf("三个数中的最大的数为:%d\n",threeMax);

    return 0;
}

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值