【谭浩强C程序设计 学习辅导第3章】最简单的C程序设计——顺序程序设计(含详细源码)

本文主要是介绍【谭浩强C程序设计 学习辅导第3章】最简单的C程序设计——顺序程序设计(含详细源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、 顺序程序设计题的解题思路及注意事项
      • 解题思路
      • 注意事项
    • 二、源码讲解
      • 第3章源码文件构成:
      • main.c 文件内容说明
      • chap3.c源码实现
      • chap3.h声明头文件
      • 测试结果展示
      • 源码链接

说明:本学习辅导题适用于谭浩强教辅第四版。

一、 顺序程序设计题的解题思路及注意事项

解题思路

  1. 根据题意确定计算公式(如有计算),确定公式中用到的库函数。
  2. 分析出所有需要用到的变量、变量类型、已知变量的初值。
  3. 如果用到标准输入输出函数,则#include <stdio.h>。
  4. 如果用到数学标准库函数,则#include <math.h>。

注意事项

  1. 数据溢出问题,比如 char 型是占1字节,最大是127,超过之后就得被截断,应存在 short 或 int 型变量中。
  2. 字符输入时(scanf 或者 getchar),两个字符之间不能加空格或者回车等,否则会被误认为是输入的字符。
  3. 注意强制类型转换,比如 int/int=int,所以计算为了提高精度,应将int数据转换成浮点数之后再计算。

二、源码讲解

第3章源码文件构成:

  • (1)测试环境:VScode+GCC
  • (2)文件夹命名:chap3_tanhaoqiang_vscode_c
  • (3)文件夹下文件组成:
    在这里插入图片描述
    • .vscode文件夹下是 tasks.json 和 launch.json ,它们分别是编译链接配置文件和调试配置文件。
    • chap3.c 和 chap3.h 是第3章所有的程序设计题函数实现的源码文件和声明文件。
    • main.c 文件里由main函数入口,是测试程序调用的入口。

main.c 文件内容说明

  • 试题源自:谭浩强 C程序设计(第四版)学习辅导

  • 章节说明:第3章 最简单的C程序设计——顺序程序设计

  • 源码说明

    • 本源码将本章节的全部试题融合到一个VScode工程中,一个工程只有一个main()函数入口,在main.c文件中,测试调用就在main()函数中。
    • 每一章编程题是一个单独的文件名(.c 和.h文件),在c文件中编写源码,在h文件中作外部声明。每一道题是一个独立的函数。
  • 编译配置:在.vscode下有两个文件tasks.json(编译配置)和launch.json(调试配置),对应需要修改的地方做了说明。

  • 测试说明:可以一个一个题目放开测试,不测试的双斜杠//注释掉

#include <stdio.h>
#include "chap3.h" // 包含第3章的头文件
int main()
{printf("\n现在测试第3章第1题:\n");Question1();//函数调用// printf("\n现在测试第3章第2题:\n");// Question2();// printf("\n现在测试第3章第3题:\n");// Question3();// printf("\n现在测试第3章第4题:\n");// Question4();// printf("\n现在测试第3章第5题:\n");// Question5();// printf("\n现在测试第3章第6题:\n");// Question6();// printf("\n现在测试第3章第7题:\n");// Question7();// printf("\n现在测试第3章第8题:\n");// Question8();return 0;
} 

chap3.c源码实现

  • 该文件实现了所有的程序设计题,函数的命名按照题目顺序名命名,如第一题的函数名为Question1。
  • 每个函数前面对该函数的功能进行了简要描述,在不对照书本的情况下也能进行参考学习。
  • 教辅中一些印刷错误,在程序实现中也有做相应描述,有心的同学可以发现。
    如下截图是 chap3.c 的部分程序。
    在这里插入图片描述

chap3.h声明头文件

chap3.h 是对 chap3.c 中的外部函数进行声明,这样在 main.c 中,只要包含 #include “chap3.h” 该头文件,就可以直接调用里面的函数进行测试。(对于初学到这一章的学生可能有些超纲,但先学会用,原理后面章节会慢慢解释)。

#ifndef _CHAP_3_H_
#define _CHAP_3_H_
//在这里作函数声明,声明后的函数可以外部调用
extern void Question1(void);
extern void Question2(void);
extern void Question3(void);
extern void Question4(void);
extern void Question5(void);
extern void Question6(void);
extern void Question7(void);
extern void Question8(void);
#endif //_CHAP_3_H_

测试结果展示

将全部测试函数放开(//注释符去掉)后,测试结果如下,感兴趣的同学可以将你的测试结果贴在评论区,相互参考。
在这里插入图片描述
运行结果:
在这里插入图片描述
单独测第8题:
在这里插入图片描述

一块测第8题:
在这里插入图片描述
这个测试存在的问题留给同学们讨论。

源码链接

源码免费下载链接


本节完

这篇关于【谭浩强C程序设计 学习辅导第3章】最简单的C程序设计——顺序程序设计(含详细源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599200

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的