【谭浩强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题:
在这里插入图片描述
这个测试存在的问题留给同学们讨论。

源码链接

源码免费下载链接


本节完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习记录————

1月 1月10号 习惯这件事很重要&#xff0c;一个长期坚守的习惯不一定是最好的&#xff0c;但是是能一直坚守下去的。所以习惯不能变来变去 长期坚守的习惯是什么&#xff1f;①10点 && (视频后 || 聊完天后)两个小时学习。②上床不玩手机。③周末&#xff1a;10-12点…

Programming Abstractions in C阅读笔记:p246-p247

《Programming Abstractions in C》学习第68天&#xff0c;p246-p247总结&#xff0c;总计2页。 一、技术总结 本章通过“the game of nim(尼姆游戏)”&#xff0c;这类以现实生活中事物作为例子进行讲解的情况&#xff0c;往往对学习者要求比较高&#xff0c;需要学习者具备…

<软考高项备考>《论文专题 - 65 质量管理(4) 》

4 过程3-管理质量 4.1 问题 4W1H过程做什么为了评估绩效&#xff0c;确保项目输出完整、正确且满足客户期望&#xff0c;而监督和记录质量管理活动执行结果的过程作用&#xff1a;①核实项目可交付成果和工作已经达到主要干系人的质量要求&#xff0c;可供最终验收;②确定项目…

C# 静态代码织入AOP组件之肉夹馍

写在前面 关于肉夹馍组件的官方介绍说明&#xff1a; Rougamo是一个静态代码织入的AOP组件&#xff0c;同为AOP组件较为常用的有Castle、Autofac、AspectCore等&#xff0c;与这些组件不同的是&#xff0c;这些组件基本都是通过动态代理IoC的方式实现AOP&#xff0c;是运行时…

linux系统中线程(Thread)解读以及对IO性能的影响

线程是操作系统调度的基本单位&#xff0c;是进程中能够独立执行指令流的子任务。在线程模型中&#xff0c;多个线程共享同一进程的地址空间和其他资源&#xff0c;使得它们可以直接访问相同的内存区域&#xff0c;这样大大简化了数据共享和通信的复杂性。线程有以下几个关键特…

【Web】CTFSHOW PHP特性刷题记录(全)

知其然知其所以然&#xff0c;尽量把每种特性都详细讲明白。 目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web…

高级分布式系统-第12讲 分布式控制经典理论

控制器基础 分布式控制系统的设计&#xff0c;是指在给定系统性能指标的条件下&#xff0c;设计出控制器的控制规律和相应的数字控制算法。 PID控制器 根据偏差的比例&#xff08;Proportional&#xff09;、积分&#xff08;Integral&#xff09;、微分&#xff08;Derivati…

SQL_DCL_管理用户

DCL英文全称 Data Control Language(数据控制语言&#xff0c;用来管理数据库用户&#xff0c;控制数据库的访问权限。 1.查询用户 USE MY SQL; SELECT * FROM USER; 2.创建用户 CREATE USER 用户名主机名 IDENTIFIED BY密码; 3.修改用户密码 ALTER USER 用户名 主机名 …

Android修改Spinner默认文字颜色

要修改Spinner&#xff08;下拉选择框&#xff09;的默认文字颜色&#xff0c;你可以使用自定义的Spinner适配器&#xff0c;并重写getView()方法来设置文字颜色。以下是一个示例&#xff1a; 创建一个自定义的Spinner适配器类&#xff08;继承自ArrayAdapter) class CustomSp…

工作压力测试

每个职场人都会遇到工作压力&#xff0c;在企业人力资源管理的角度来看&#xff0c;没有工作压力是人力资源的低效&#xff0c;适当的工作压力可以促使员工不断进取&#xff0c;然而每个人的抗压能力是不同的&#xff0c;同样的工作量和工作难度&#xff0c;不同的人在面对相同…

编程探秘:Python深渊之旅-----云端部署(六)

为了提高可访问性和性能&#xff0c;团队决定将他们的应用部署到云平台。龙带领团队探索不同的云服务提供商和部署策略。 龙&#xff08;自信地&#xff09;&#xff1a;将我们的应用部署到云端是一个明智的决策。云计算不仅提供可扩展性&#xff0c;还能让我们的应用全天候运…

ORB-SLAM2重要函数总结(1)——特征点、地图点、关键帧

ORB-SLAM2重要函数总结&#xff08;1&#xff09; ORBFeature IC_Angle通过遍历特征点周围的像素&#xff0c;利用灰度质心法来计算特征点的角度朝向。具体地&#xff0c;它根据像素值和像素坐标的加权和来计算方向角度&#xff0c;使特征点具有旋转不变性。computeOrientati…

k8s实战从入门到上天系列第一篇:K8s微服务实战内容开篇介绍

前言 我们使用开源ruoyi微服务基本使用&#xff0c;基于基本的微服务实践。我们来讲解k8s的实战内容。 第一章&#xff1a;开源ruoyi微服务简介基本使用 第二章&#xff1a;k8s基本知识回顾、k3s集群搭建和基本使用 第三章&#xff1a;微服务镜像构建 第四章&#xff1a;中间件…

漏洞复现--GitLab 任意用户密码重置漏洞(CVE-2023-7028)

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

【MySQL】多表查询 综合练习

多表查询笔记 综合练习 # 1.显示所有员工的姓名&#xff0c;部门号和部门名称。 SELECT e.last_name,e.department_id,d.department_name FROM employees e LEFT JOIN departments d ON e.department_id d.department_id;SELECT e.last_name,e.department_id,d.department…

class_4:car类

#include <iostream> using namespace std; class Car{ public://成员数据string color; //颜色string brand; //品牌string type; //车型int year; //年限//其实也是成员数据&#xff0c;指针变量&#xff0c;指向函数的变量&#xff0c;并非真正的成员函数void (*…

Win10(CPU)+ Anaconda3 + python3.9安装pytorch

1. 安装Anaconda3 1.1 下载Anaconda3 可以在官网下载Anaconda3-2022.05-Windows-x86_64.exe&#xff0c;这个版本对应的是python3.9。 1.2 安装Anaconda3 此步骤比较简单&#xff0c;双击.exe文件&#xff0c;一步一步执行即可&#xff0c;有不确定的可以自行百度&#xff…

BM25(Best Matching 25)算法基本思想

BM25&#xff08;Best Matching 25&#xff09;是一种用于信息检索&#xff08;Information Retrieval&#xff09;和文本挖掘的算法&#xff0c;它被广泛应用于搜索引擎和相关领域。BM25 基于 TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;的思想…

使用Spring Boot集成中间件:Elasticsearch基础->提高篇

使用Spring Boot集成中间件&#xff1a;Elasticsearch基础->提高篇 导言 Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;广泛用于构建实时的搜索和分析应用。在本篇博客中&#xff0c;我们将深入讲解如何使用Spring Boot集成Elasticsearch&#xff0c;实现数…

C++ 对象模型 | 关于对象

一、C 对象模型 1、对象内存布局 在C中&#xff0c;有两种数据成员&#xff1a;static和nonstatic&#xff0c;以及三种成员方法static、nonstatic、virtual&#xff0c;下面从虚函数、非虚函数、静态成员变量、非静态成员变量等维度来分析&#xff0c;类对象的内存布局。例如…