考研C语言刷题基础篇之分支循环结构基础(二)

这篇具有很好参考价值的文章主要介绍了考研C语言刷题基础篇之分支循环结构基础(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

第一题分数求和

 第二题:求10 个整数中最大值

第三题:在屏幕上输出9*9乘法口诀表

第四题:写一个代码:打印100~200之间的素数 

第五题:求斐波那契数的第N个数

斐波那契数的概念:前两个数相加等于第三个数

斐波那契数的公式:

第六题:汉诺塔游戏 

思路: 

1. 当n=1时,需要一步

2.当n=2时,需要三步 

3.当n=3时,需要七步

总结一下

公式结论

 第七题:青蛙跳台阶问题

 第八题数9的个数

第十题 猜数字游戏(复习版本)

第十一题 二分查找(复习版)


第一题分数求和

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

  1. 将这个试子分成两部分,第一部分为1/1+1/3+1/5+....+1/99;第二部分1/2+1/4+.....1/100
  2. 然后将这两个试子相减
  3. 注意这里分数是浮点型
  4. double型是长整型浮点型
//分数求和

int main() {
	double sum = 0.0;
	double sub = 0.0;
	double acc = 0.0;
	for (int i = 1; i <= 100; i++) {
		if (i % 2 == 0) {
			sum += (1.0 / i);
		}
		else {
			sub += (1.0 / i);
		}
	}
	acc = sub - sum;
	printf("%lf", acc);
	

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

 第二题:求10 个整数中最大值

 

//求10 个整数中最大值

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	/*scanf("%d ", arr);*/
	int i = 0;
	int j = 0;
	for(int i = 0;i<10;i++)
	{
		if (arr[i] >arr[i + 1])
		{
			j = arr[i];
		}
		else
		{
			j = arr[i+1];
		}
	}
	printf("%d", j);
	return 0;
}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

第三题:在屏幕上输出9*9乘法口诀表

 两层循环第一层循环用来控制乘号左边,第二层循环用来控制乘号右边和每一层的个数

//在屏幕上输出9*9乘法口诀表

int main() 
{
	for(int i=1;i<=9;i++)
	{
		for(int j=1;j<=i;j++)
		{
			printf("%d*%d=%d ", j, i, j*i);
		}
		printf("\n");
	}
	return 0;
}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

第四题:写一个代码:打印100~200之间的素数 

第五题:求斐波那契数的第N个数

斐波那契数的概念:前两个数相加等于第三个数

1    1   2   3   5   8    13   21   34   55  

斐波那契数的公式:

当N<=2时   Fib(N)= 1;

当N>3时, Fib(N)=Fib(N-2)+Fib(N-1);2

//求斐波那契数列的第N个数

int Fib(int n) {

	if (n <= 2) {
		return 1;
	}
	else {
		return Fib(n - 1) + Fib(n - 2);
	}

}

int main() {

	int n = 0;
	scanf("%d", &n);
	int sum = Fib(n);
	printf("第%d个数为:%d\n", n,sum);
	return 0;


}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

第六题:汉诺塔游戏 

思路: 

1. 当n=1时,需要一步

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

2.当n=2时,需要三步 

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

3.当n=3时,需要七步

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

 这里我们发现为了实现第四步,是完成了n=2的所有步骤3步。若将黑红当一个整体。

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

 那么我们要实现最后一步是不是也是完成相同的操作即n=2时的操作。

总结一下

首先,是完成一次n=2时的操作 即(n-1)时操作的操作。

在加上一步将蓝色放入第三根柱子的操作

最后,是将黑红当一个整体,在完成一次n=2即(n-1)时的操作。

公式结论

汉诺塔公式为:

当n=1时    要1步

当n>1时    要 2*(n-1)+1步

//汉诺塔游戏
int Hanoi(int n) {

	if (n == 1) {
		return 1;
	}
	else {
		return 1 + 2 * Hanoi(n - 1);
	}

}

int main() {

	int n = 0;
	scanf("%d", &n);
	int sum = Hanoi(n);
	printf("需要%d步", sum);
	return 0;

}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

 第七题:青蛙跳台阶问题

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

 问题:青蛙一次可以跳一个台阶,也可以一次跳2个台阶。请问如果有n个台阶时,青蛙有几种方法

台阶数 第一次跳一格 第一次跳两格 方法数
1 1 1
2 1 1 2 2
3 111;12 21 3
4 1111;121;112 22;211 5
5 11111;1211;1121;1112;122 2111;221;212; 8
n n-1 n-2 (n-1)+(n-2)
//青蛙跳台游戏
int fac(int n) {

	if (n == 1) {
		return 1;
	}
	else if(n==2) {
	
		return 2;
	}else{
		return fac(n-1)+fac(n-2);
	}

}

int main() {

	int n = 0;
	scanf("%d", &n);
	int sum = fac(n);
	printf("需要%d步", sum);
	return 0;

}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

 第八题数9的个数

数100以内的出现过9的数字

//数9的个数
int main() {
	int n = 1;
	while (n <= 100) 
	{
		if (n % 10 == 9) {
			printf("%d ", n);
		}
		else if(n / 10 == 9) {
			printf("%d ", n);
		}
		n++;
	}
	return 0;
}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

第十题 猜数字游戏(复习版本)

 易错点:

1. srand((unsigned int)time(NULL));随机数种子,不能放在while循环里,要不然每次输入数字,都会生成随机的种子,会导致永远猜不对数字。

2.scanf("%d", &n);要放在循环里,要不然每次上一次猜对的数会一直在循环里循环。

//猜数字游戏
void menu() {

	printf("*******************\n");
	printf("*******0 结束******\n");
	printf("*******1 开始******\n");
	printf("*******************\n");
	printf("输入0/1\n");
}

int fac(int n) {
	srand((unsigned int)time(NULL));
	int nnn = rand()%100+1;
	return nnn;

}

int main() {
	menu();
	int n = 0;
	int nn = 0;
	scanf("%d", &nn);
	srand((unsigned int)time(NULL));
		if (nn == 1) {
			int sum = fac(n);
			while (1) {
				
				printf("输入你猜的数字:");
				scanf("%d", &n);
				
				if (n < sum) 
				{
					printf("猜小了\n");
					
					
				}
				else if (n > sum) 
				{
					printf("猜大了\n");
					

				}
				else 
				{
					printf("猜对了");
					break;
					
				}
			
			}
		}
		else {
			printf("结束游戏");
		}
	

	return 0;


}

考研C语言刷题基础篇之分支循环结构基础(二),考研c语言刷题,考研

第十一题 二分查找(复习版)

编写代码在一个整形有序数组中查找具体的某个数

要求:找到了就打印数字所在的下标,找不到则输出:找不到。文章来源地址https://www.toymoban.com/news/detail-815071.html

#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

//二分查找
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sum = sizeof(arr) / sizeof(arr[0]);
	printf("数组有%d个\n", sum);
	int left = 0;
	int right = sum - 1;
	int n = 0;
	printf("请输入你要查找的数:");
	scanf("%d", &n);
	while (n)
	{
		int mid = (left + (right - left)) / 2;
		if (n < arr[mid])
		{
			right = mid - 1;
		}
		else if (n > arr[mid])
		{
			left = mid + 1;
		}
		else
		{
			printf("找到了下标为:%d", arr[n]);
			break;
		}
	}
	return 0;
}

到了这里,关于考研C语言刷题基础篇之分支循环结构基础(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 汇编语言(32位除法、分支结构、循环结构,奇偶校验,ascii转换,功能号调用)

    1)顺序结构:编写一个32位无符号数除法的程序。要求将存放在NUM1中的32位无符号数与存放在NUM2中的16位无符号数相除,结果存放在NUM3和NUM4中。 根据题目要求,应把存放在数据段内的被除数NUM1定义为32位,除数NUM2定义为16位,商NUM3定义为16位,余数NUM4定义为16位。 2)分支

    2024年02月06日
    浏览(38)
  • C语言基础——循环结构

    C语言的基本结构之一。在程序中有连续执行的操作可以用循环结构,简化函数,C语言中有三种循环结构,for循环,while循环,do-while循环,其中for循环最常用。 循环执行是循环结构的核心,表现为反复执行一个或一组操作。在编程中,如果想要从数据处理中发现循环执行,就

    2024年02月05日
    浏览(39)
  • Python语言基础---选择判断循环结构详解

    在Python编程语言中,选择判断和循环是两个非常重要的概念。它们可以让我们根据条件执行不同的代码块,或者重复执行一段代码,这为我们解决各种问题提供了强大的功能。本文将详细介绍Python语言中的选择判断和循环结构,帮助读者更好地理解和运用这些概念。 Python提供

    2024年02月13日
    浏览(49)
  • 王道考研数据结构--4.2循环队列

    目录 前言  1.循环队列的定义 2.循环队列的结构 3.循环队列的操作 3.1定义循环队列 3.2初始化 3.3入队 3.4出队 3.5遍历,求表长 3.6清空销毁 4.完整代码 日期:2023.7.25 书籍:2024年数据结构考研复习指导(王道考研系列) 内容:实现顺序队列的基本实现,主要功能如下: 1.循环队

    2024年02月15日
    浏览(35)
  • C语言循环结构一些重要的练习题(较为基础的)

    循环结构 1.求累加和问题 2.输出字母A-Z 3.输入正整数n,计算并输出n! 4.将一个正整数倒序输出 5.打印九九乘法表 6.输出三角形、菱形 7.continue语句和break语句 8.输出100-200之间不能被3整除的数 9.求Pi的值,根据 10.求斐波那契数列前k项的值 11.判断一个数是否为素数 12.输出特定

    2023年04月08日
    浏览(28)
  • 洛谷刷题-【入门2】分支结构

    目录 1.苹果和虫子 题目描述 输入格式 输出格式 输入输出样例 2.数的性质 题目描述 输入格式 输出格式 输入输出样例 3.闰年判断 题目描述 输入格式 输出格式 输入输出样例 4.apples 题目描述 输入格式 输出格式 输入输出样例 5.洛谷团队系统 题目描述 输入格式 输出格式 输入

    2024年01月25日
    浏览(34)
  • 【C语言】分支和循环

    C语言是结构化的程序设计结构,这里的结构是指 顺序结构,选择结构,循环结构 。 我们可以使用 if , switch 实现分支结构,使用 for , while , do while 实现循环结构。 if的语法形式如下: 表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行 在C语言中,

    2024年02月04日
    浏览(36)
  • 飞天使-python的分支结构,循环,函数

    分支结构 单分支 双分支 多分支 内联if 条件语句 案例,门票价格 循环 for,in 循环 for in 次数控制 while 循环 while遍历 跳出循环break 跳出循环continue 函数 函数概念 内置函数 自定义函数 函数进阶 作用域 参考视频

    2024年02月10日
    浏览(29)
  • 九、程序的流程结构(if分支语句,Switch分支,for循环)

    程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。 顺序结构:从上向下,逐行执行。 选择结构:条件满足,某些代码才会执行。0-1次 ​ 分支语句:if,switch,select 循环结构:条件满足,某些代码会被反复的执行多次。0-N次 ​ 循环语句:for 语法格式: 示

    2024年02月07日
    浏览(29)
  • 【C语言入门】分支和循环

     ✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:C语言 个人主页:Celia\\\'s blog~ 目录 引言 1. if语句 1.1 if  1.2 else 1.3 if的嵌套  2. 操作符 2.1 关系操作符 2.2 条件操作符  2.3 逻辑操作符 2.3.1 逻辑取反运算符 ! 2.3.2 逻辑或运算符

    2024年01月25日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包