IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言】初学C语言经典题目(范围广,内容多) -> 正文阅读

[C++知识库]【C语言】初学C语言经典题目(范围广,内容多)

?作者:@平凡的人1

?专栏:《C语言从0到1》

?送给各位的一句话:既要脚踏实地 又要仰望星空

?说明:无论做什么事情,我们既要有高远的理想,也要有脚踏实地的精神态度


目录

前言😄

scanf函数的使用🔥

判断素数🔥

闰年判断🔥

九九乘法表🔥

在一个有序数组中查找数字🔥

N阶乘的值🔥

计算1!+2!+......+n!🔥

两边向中间移动🔥

模拟登录操作🔥

猜数字🔥

关机程序🔥

模拟实现strlen()函数🔥

递归实现计算一个数的每位之和🔥

递归和非递归实现求第n个斐波那契数🔥

交换数字🔥

结束语😄


前言😄

大家好啊,今天带来的是关于学习C语言前期我们比较经典的一些题目,如果对你有帮助的话,记得点赞关注加收藏哦,希望我们能够一起成长与进步💝


下面,让我们开始今天的主题吧!👇

scanf函数的使用🔥

先别着急,一开始,我先来简单介绍一下scanf函数,我们都知道scanf函数是用来输入的,比如想输入一个字符,一个数字,一串字符,一串数字等等这些。 但是,我在这里并不是想说scanf怎么去使用,使用的话我们每一个都是会的。之所以放在这里讲的原因是因为在不同编译环境下,scanf可能会出现错误!什么错误呢?来看看简单的代码:

这段代码很简单把,但是在VS2019的编译环境下,我们按CTRL+F5运行一下,看看结果是什么?

直接报错了,错误的原因是什么?

这里说scanf是不安全的,建议考虑使用scanf_s替代。所以这是第一种解决方法。不过不太推荐使用这种方法scanf_s函数是vs编译器自己提供的函数,非标准C提供的函数,也就是说只有Vs编译器认识

第二种解决方法:在源文件第一行添加:#define _CRT_SECURE_NO_WARNINGS

要想每次都不用手动在第一行添加的话,我们可以在VS安装路径下找到newc++file.cpp文件,忘记路径也没关系,直接搜素胡newc++file.cpp文件。

把上面的那句代码写在里面并保存即可,这样子就不用我们每次都手动自己去添加了!

好了,关于scanf函数的一些问题就在这里说清楚了!正式开始我们的主题把!💗


判断素数🔥

这是最开始就很容易频繁接触到的问题,这道题的核心在于素数是怎么判断的(只能被常数1或自己整除,不能被其他整数整除的正整数),以及一些相关的优化,提高效率。整体而言,这道题并不算难💖一起来看看我们的代码吧

这里把判断过程封装成一个函数,便于调用,以100-200之间的数字为例子。来看看我们的运行结果吧

好啦,看看我们的下一个题目吧??


闰年判断🔥

什么是闰年,根据闰年的定义,我们有两种判断方法:

①非世纪年能被4整除,且不能被100整除的是闰年。(如2004年是闰年,1901年不是闰年)

②世纪年能被400整除的是闰年。(如2000年少闰年,1900年不是闰年)

?这里运行只是简单测试一下,不要太过于较真哦


九九乘法表🔥

是谁的DNA动了,哈哈。99乘法表这大小从小学就开始接触到了,现在让我们来用代码实现一下吧


在一个有序数组中查找数字🔥

给定一个有序数组,让我们在数组中找到某个数字,并且返回下标。对于这这种题,我们可以用二分查找。本题比较基础,是基于有序的数组之上的,我们可以很好利用这一点。当然,遇到不是有序的数组,我们也有对应的方法去解决的,比如先排序,qsort快排,这里并不展开讨论。下面直接敲打代码?

上面有一个小细节,不知道大家注意到了没有,那就int mid = left +(right-left)/2.按理来说,我们可以直接让int mid = (left + right)/2的,但是为什么不这样写呢?想过没有,当left和right都很大的时候,两个很大的数相加起来可能就超出了int类型的范围,所以第一种的方法比较好,能够方法数字超出范围。


N阶乘的值🔥

解法一:非递归解法

直接for循环走起来,不过要注意到一点的就是,int ret不能初始化为0,那样都不用算了,0乘以任何数都是0.

解法二:递归解法

递归解法分为两种情况,一种是当n=1时,不用去算,1的阶乘就是1。当n大于1的时候,我们直接采用递归来解决。


计算1!+2!+......+n!🔥

另一种做法,比如问我们1!+2!+3++......+10!,直接让我们算到10的阶乘。

当然这是在不考虑时间复杂度的情况之下的,对于刚开始来讲,先不要考虑太多,如果对时间复杂度感兴趣的,也可以看看我之前写过的博客。


两边向中间移动🔥

开始之前,先来认识一下Sleep()函数,就是让程序睡眠,比如Sleep(1000)就是睡眠10000毫秒,既1秒

以及//清空屏幕 system("cls");

感兴趣的可以了解了解,当然,你也可以去找.exe文件玩一玩。


模拟登录操作🔥

实际上的登录操作是比较复杂的,这里只是觉得的模拟一下而已,放在这里,是为了告诉大家字符串的比较不能用,而是用strcmp。同时,注意到文件的引用。直接来看看我们的代码及其运行结果


猜数字🔥

猜数字,自然要涉及到了随机数的生成,这样用srand()函数及rand()函数配合使用,同时,怎么随机去生成一个数,同时每分每秒都在改变呢?自然是时间,这里引入了时间戳的概念:

打开网站搜索时间戳:

我们还要注意到随机数的范围,可以用%来限制数的大小范围

下面,我们来实现猜数字的代码:


关机程序🔥

关机程序在说分支循环中goto就已经说过了,这里再来看一遍我们的代码:

其实要点就在于关机命令shutdouw -s -t以及取消关机命令shutdouw -a


模拟实现strlen()函数🔥

这里只说两种方法,其他方法就不展开说明了

解法一:递归实现

解法二:非递归实现


递归实现计算一个数的每位之和🔥

如果是1位数的话,直接返回就OK了,两位以上,先去/10然后递归下去解决便可。

说到递归。这自然离不开典型的递归题目:斐波那契数列,所以,下面将要说的就是我们的斐波那契数列数列。?


递归和非递归实现求第n个斐波那契数🔥

先来看看斐波那契数列是什么

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

好啦。接下去就是代码实现,直接进入我们的代码,考虑到实际情况,采用非递归有时候可能时间效率太低,根本就算不出答案,所以这里会给出两种做法,分布是递归和非递归做法

解法一:非递归

解法二:递归

交换数字🔥

交换数字并不难,创建一个临时变量嘛,让两个数字交换就行了,这里提出来,是给大家指出一个容易出错的地方,话不多说,我们先来看一个例子。

?这段代码的逻辑很清晰,就是想让a、b、c从大到小输出嘛,交换封装成一个函数去调用就行了,来,我们看看运行结果是什么:

?结果并没有达到我们预期的效果,这是为什么呢?

  1. 当实参传递给形参的时候,形参是实参的一份临时拷贝
  2. 对形参的修改不会影响实参

?这就是为什么没有交换的原因,我们怎么去改呢?用指针来解决即可

?

?好啦,问题解决

结束语😄

时间过得真快,又到了该说再见的时候了,到这里,这篇博客也到达了尾声,如果对你有帮助的话,那就支持一下吧?? ?? ?🌹

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 11:55:13  更:2022-04-29 11:56:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 22:53:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码