谭浩强第五版C语言课后习题(编程题)+答案

谭浩强第五版作为初学C语言必读的一本教材,课后习题具有非常大的参考价值,也是很多高校期末考试或者考研的重要参考。在这里我整理了一部分个人认为比较重要的编程题,供大家作参考

1.输入两个数,求他们的最大公约数和最小公倍数(最小公倍数等于两个数的乘积除上二者的最大公约数)

法一:递减法

法二:辗转相除法

辗转相除法的原理是用a除b,如果有余数,就把b赋给a,再把余数赋给b,当a除b余数为零的时候,此时的b就是二者的最大公约数,对于第一次除的时候谁做被除数是无所谓的,因为如果第一次a小于b,那么a除b的余数就是a,然后执行循环内部的操作把b赋给a,把余数赋给b,就变成了被除数大

2.计算a+aa+aaa+aaaa.....最后一项是n个a组成的数

本题关键在于如何产生每一个加数tmp。tmp=tmp*10+a即可。

3.计算1!+2!+....+10!

3.输出所有水仙花数。水仙花数指的是一个三位数,其各位数字立方和等于该数本身。

运行结果

4.如果一个数等于他的所有因子之和(因子包括1,但不包括这个数本身),这个数就被称为完数。找出1到1000内的所有完数。

5.计算分数数列前20之和(第五章第十题)

6.一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。

7.猴子摘桃

8.乒乓球比赛

在找到合适的结果之后应该立马输出,没有必要再继续循环浪费时间了。

9.找1~100之内的素数

10.冒泡排序

11.求一个3×3矩阵的对角线之和

12.在一个有序数组中插入一个数

升序数组中插入一个数的思想:如果在中间插入,就把最后的元素往后挪一位,然后在原来最后一个数的位置上插入我们想要插入的数。什么叫往后挪一位呢?其实就是把最后的元素数值赋给他下一个位置

删除一个数的思想:把指定位置的元素删掉,然后后面所有元素整体往前面挪动一个位置。

13.将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。

注:不要把判断条件写成p1++

14.打印杨辉三角的前十行

运行结果

杨辉三角的特点是对角线上和第一列全是1,其余位置的元素为他正上方元素与他正上方元素左边那个元素之和。比如arr[4][3]=arr[3][3]+arr[3][2]

第六章第七题魔方阵那个题就是一个找规律的题目,和代码能力没有啥关系,就不写了

15. 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。

思路是先找出每一行的最大值,并把这个最大值所在的行记录下来,然后再去遍历这一列中的所有数找到最小值,看看这个最大值和最小值是不是同一个数,如果是,这个数所在的位置就是鞍点,同时把flag改成1,如果出了大循环之后flag还是0,说明没有鞍点

16.二分查找

17.输出一个五行的平行四边形

运行结果

18.有一行电文,以按下面规律译成密码:即第1个字母编程第26个字母,第i个字母编程第(26-i+1)个字母,非字母字符不变,要求编程序将密码译回原文,并输出密码和原文。

运行结果

str[i]-'a'表示str[i]是第几个字母吗?假如比如b-a是1,而b是第二个字母,z-a是25,而z是第26个字母,因此str[i]-'a'得到的数值表示str[i]是第str[i]-'a'+1个字母,26-(str[i]-'a')这个数值表示的是从z倒着往前数第几个字母,比如str[i]是b,然后26-((str[i]-'a'))这个数值是25,也就说b是从z倒着往前数第25个字母,而'a'+25表示'z',那么转化后的结果就成了b转化成了z,这与题目要求相比显然多加了1,因此转换的表达式应该是'a'+26-((str[i]-'a'))-1,也就是'a'+25-((str[i]-'a'))

19.模拟实现strcat

20.模拟实现strcmp

记住模拟实现strcmp的时候while循环的判断条件是*s1==*s2

21.模拟实现strcpy

22.输人一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输人1990,应输出“1 9 9 0”。

运行结果为

23.写一个函数,输人一行字符,将此字符串中最长的单词输出。单词之间用空格隔开

24.写一个函数,输人一个十六进制数,输出相应的十进制数。

25.用递归法将一个整数n转换成字符串。例如,输人483,应输出字符串”483”。n的位数不确定,可以是任意位数的整数。

26.输入年月日,输出这是今年第几天

27.输入三个整数,按照从小到大的顺序输出

28.输入3个字符串,要求按由小到大的顺序输出。

比较字符串大小应该实用strcmp而不是直接用大于小于号,实际上本题的易错点在于字符串的输入,一定不要用scanf,因为scanf输入字符串的时候遇到\0会停下来,导致输出于预期不符的结果。输入字符串应该使用库函数fgets,并把第三个参数写成stdin表示从键盘读入,fgets在碰到回车的时候才会停止读取,因此能够正常的读取带空格的字符串。fgets 函数在读取到换行符 ‘\n’ 时会将其包含在读取的字符串中。换行符 ‘\n’ 会作为普通字符读入字符串,并在字符串末尾添加 ‘\0’ 字符以表示字符串的结束。

因为只有三个字符串,因此排序的方式和前一题类似。

29.输入10个整数,将其中最小的数与第一个数对换, 把最大的数与最后一个数对换。

30. 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数

31.有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

32.有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

33.将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。

34. 在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。

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

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

相关文章

js改变图片曝光度(高亮度)

方法一: 原理: 使用canvas进行滤镜操作,通过改变图片数据每个像素点的RGB值来提高图片亮度。 缺点 当前项目使用的是svg,而不是canvas 调整出来的效果不是很好,图片不是高亮,而是有些发白 效果 代码 …

1320亿参数,性能超LLaMA2、Grok-1!开源大模型DBRX

3月28日,著名数据和AI平台Databricks在官网正式开源大模型——DBRX。 DBRX是一个专家混合模型(MoE)有1320亿参数,能生成文本/代码、数学推理等,有基础和微调两种模型。 根据DBRX在MMLU、HumanEval和 GSM8K公布的测试…

FME学习之旅---day15

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 【FME-HOW-TO系列】18 从点生成等高线数据 主要学习在FME中使用ContourGenerator和点数据集创建等高线。 读模块读取的是shp数据,有大概140万个点,加载图形很费劲。 …

二叉树|669.修剪二叉搜索树

力扣题目链接 class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root nullptr ) return nullptr;if (root->val < low) {TreeNode* right trimBST(root->right, low, high); // 寻找符合区间[low, high]的节点return right;}if…

酷开科技依托酷开系统用“平台+产品+场景”塑造全屋智能生活!

杰弗里摩尔的“鸿沟理论”中写道&#xff1a;高科技企业推进产品的早期市场和产品被广泛接受的主流市场之间&#xff0c;存在着一条巨大的“鸿沟”。“鸿沟”&#xff0c;指产品吸引早期接纳者后、赢得更多客户前的那段间歇&#xff0c;以及其中可预知和不可预知的阻碍。多数产…

kubernetes(K8S)学习(一):K8S集群搭建(1 master 2 worker)

K8S集群搭建&#xff08;1 master 2 worker&#xff09; 一、环境资源准备1.1、版本统一1.2、k8s环境系统要求1.3、准备三台Centos7虚拟机 二、集群搭建2.1、更新yum&#xff0c;并安装依赖包2.2、安装Docker2.3、设置hostname&#xff0c;修改hosts文件2.4、设置k8s的系统要求…

实验3 中文分词

必做题&#xff1a; 数据准备&#xff1a;academy_titles.txt为“考硕考博”板块的帖子标题&#xff0c;job_titles.txt为“招聘信息”板块的帖子标题&#xff0c;使用jieba工具对academy_titles.txt进行分词&#xff0c;接着去除停用词&#xff0c;然后统计词频&#xff0c;最…

jenkins权限分配

1.安装权限插件 Role-Based Strategy 2.创建用户 3.修改全局安全配置中的授权策略为Role-Based Strategy 4.进入Manage and Assign Roles创建Global roles和Item roles 4.进入Assign Roles给用户分配role

面试题:Java虚拟机JVM的组成

1. 基础概念 JVM是什么 Java Virtual Machine Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&#xff0c;到处运行 自动内存管理&#xff0c;垃圾回收机制 JVM由哪些部分组成&#xff0c;运行流程是什么&#xff1f; …

Web APIs知识点讲解(阶段四)

DOM- 事件高级 一.回顾(购物车案例) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta http-equiv&qu…

8年经验之谈 —— 我是如何实现接口自动化测试平台?

实现方式 — 后端&#xff1a;java 前端&#xff1a;vueelement-ui mock&#xff1a;mock-server 其它&#xff1a;redis 01—数据构建 我们在测试过程中发现测试数据的构建非常重要。如测试数据需要有真实性、唯一性、A 接口依赖 B 接口的返回值。目前通过提供环境变量…

web CSS笔记1

CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表&#xff08;级联样式表&#xff09;&#xff0c;主要用于设置HTML页面中的文本内容&#xff08;字体、大小、对齐方式等&#xff09;、图片的外形&#xff08;宽高、边框样式、边距等&#xff09;以及…

Redis 不再“开源”:中国面临的挑战与策略应对

Redis 不再“开源”&#xff0c;使用双许可证 3 月 20 号&#xff0c;Redis 的 CEO Rowan Trollope 在官网上宣布了《Redis 采用双源许可证》的消息。他表示&#xff0c;今后 Redis 的所有新版本都将使用开源代码可用的许可证&#xff0c;不再使用 BSD 协议&#xff0c;而是采用…

【快捷部署】010_MySQL(5.7.27)

&#x1f4e3;【快捷部署系列】010期信息 编号选型版本操作系统部署形式部署模式复检时间010MySQL5.7.27Ubuntu 20.04Docker单机2024-03-28 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff1a…

ES5和ES6的深拷贝问题

深拷贝我们知道是引用值的一个问题&#xff0c;因为在拷贝的时候&#xff0c;拷贝的是在内存中同一个引用。所以当其中的一个应用值发生改变的时候&#xff0c;其他的同一个引用值也会发生变化。那么针对于这种情况&#xff0c;我们需要进行深度拷贝&#xff0c;这样就可以做到…

Docker部署一个SpringBoot项目(超级详细)

注意&#xff1a;下面的教程主要是针对 Centos7 的&#xff0c;如果使用的其他发行版会有细微的差别&#xff0c;请查看官方文档。 Docker部署一个SpringBoot项目&#xff08;超级详细&#xff09; 一、安装Docker1.卸载旧版2.配置Docker的yum库3.安装Docker4.设置开机自启动5.…

#Linux(make工具和makefile文件以及makefile语法)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;make为编译辅助工具&#xff0c;解决用命令编译工程非常繁琐的问题 &#xff08;2&#xff09;在终端键入make即可调用make工具&#xff0…

Linux:环境变量的特性及获取

目录 一、环境变量基本概念 1.1命令行参数 1.2常见环境变量 二、环境变量相关指令 创建本地变量 三、环境变量通常是具有全局属性的 一、环境变量基本概念 环境变量(environment variables)不是一个而是一堆&#xff0c;彼此之间其实没有关系。本质上是为了解决不同场景下…

ebpf的CO-RE功能介绍

目录 CO-RE 引入 思路 介绍 使用 CO-RE 引入 因为ebpf需要深入内核,但内核中的数据结构很可能在不同版本中定义不同(尤其是结构体,可能会增加某个字段) 但我们在访问结构体时,比如一般通过指针偏移量来拿到特定变量的首地址 如果定义变化,偏移量就会变化,就会需要多份ebp…

算法打卡day20

今日任务&#xff1a; 1&#xff09;669.修剪二叉搜索树 2&#xff09;108.将有序数组转换为二叉搜索树 3&#xff09;538.把二叉搜索树转换为累加树 669.修剪二叉搜索树 题目链接&#xff1a;669. 修剪二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 给你二叉搜索树的根…