【C语言】题集 of ③
?write in front?
?大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流? ?2021年度博客之星物联网与嵌入式开发TOP5,2021博客之星Top100→周榜31→总榜2629? ?本文由 謓泽 原创 CSDN首发? 如需转载还请通知⚠ ?个人主页:打打酱油desu_泽En_CSDN博客? ?系列专栏:【C】系列_打打酱油desu-CSDN博客? ✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本?
目录
?第十三题→实现一个函数,打印乘法口诀表,口诀表的行列数自己指定?
?第十四题→有1、2、3、4个数字,能组成多少个互不相同且无重复的三位数,都是多少?并且把组成的数的总数给打印出来?
?第十一题→将字符串小写字母转换成大写字母?
这类题目就是很容易的其实,一句概括核心那就是题目当中的内容。 首先设置个字符串数组arr,把它所进行打印。然后求字符串数量,再用for循环再去遍历。打印出来本题目就可以了,其实就是这么容易。 唯一需要考虑的就是如何把小写字母转换成大写字母这个操作,其实这个并不需要去担心。因为我们可以用到一个函数就可以把小写字母转换成大写字母。 C库函数 int tolower(int c)转换给定的字母为小写。 C库函数 int toupper(int c)转换给定的字母为大写,本题目使用的就是这个。 使用库函数的头文件是:#include<ctype.h>
?第十二题→输入三个数字,从大到小依次的进行排列?
首先这道题目很明确的说明了做题的思路。 输入:用scanf()函数输入即可 三个数字:创建三个整形变量。 从大到小依次进行排列:用判断语句 if 就能实现。举出一个例子吧。 如果,a>b 这种就没有任何必要进行交换了,因为本身就是按照大小进行打印了这就。像如果a<b 这种就要把 a 和 b 的值进行交换这样就实现了从大到小依次排列。那么这里要进行三次判断,a,b,c每次都要进行一次。a<b、a<c、b<c 最终打印三个变量即可。
?第十三题→实现一个函数,打印乘法口诀表,口诀表的行列数自己指定?
这道题目在C语言 题目9当中出现过。只不过它是叫我们打印出9*9的乘法口诀表,而这个是叫我们实现一个函数,并且行列数自己决定。这个意思是:假设我输入5,那么打印 5*5 的乘法口诀表。假设我输入的是8,那么打印 8*8的乘法口诀表。相信你已经有思路了那么开始刷题吧。这也是比较经典的题目新手是必须要掌握的。
?第十四题→有1、2、3、4个数字,能组成多少个互不相同且无重复的三位数,都是多少?并且把组成的数的总数给打印出来?
这道题目说实话可能是遇到跟之前相比算是有难度了,有些人一看这道题目可能不知道无从开始,没事让我们来分析下它! 首先:有1、2、3、4个数字,能组成多少个互不相同且无重复的三位数,都是多少? 这个看关键字,1、2、3、4个、无重复的三位数!很明显这道题目要从数学角度来算的话是这个样子的。 那么要把 1、2、3、4 的数字分别得到百位、十位、个位。 能组成多少个互不相同且无重复的三位数。进行 if 判断即可。判断百位 ,十位 ,个位都不相同。注意:创建三个变量 百 十 个。 并且把组成的数的总数给打印出来!创建个变量++即可! 组成数字的总数这个只要能判断成功的话那么就用Count++ 就可以实现。
?第十五题→递归实现N的阶乘计算?
这道题目如果你不知道递归那是完全做不来的,所以我们来说说递归! 程序调用自身的编程技巧称为递归。递归作为一种算法在程序设计语言中是广泛应用的。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题转换位一个与原问题相似的规模较小的问题来去进行求解,递归策略只需少了的程序就可以描述出解题的过程所需要的多次重复计算,大大减少了程序的代码量。递归的人主要思考方式就在于:把大事化小。递归之所以能够实现,是因为函数的每个执行过程在栈中都有自己的形参和局部变量的副本,这些副本和和该函数的其它执行过程是不会发生关系的。 注意:当递归进入到最内层的时候,递归就结束了,就开始逐层退出了,也就是逐层执行 return 语句。当执行最后层的 return 之后,就执行上面一层的递归! 再来说说递归的条件
- 每一个递归函数都应该只进行有限次的递归调用,否则它就会进入死胡同,永远也不能退出了,这样的程序是没有意义的。
- 存在限制条件,当满足这个限制条件之后的时候,递归便会不再继续。
- 每次递归调用之后都会越来越接近这个限制条件。
阶层实际上就是假如5的阶层:5x4x3x2x1 同理。
?第十一题の代码?
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char arr[20] = { 0 };
printf("打印前:%s\n",arr);
scanf("%s", arr);
printf("********************\n");
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
arr[i] = toupper(arr[i]);
}
printf("打印后:%s\n", arr);
}
运行结果?
- 打印前:hello cyuyan
- 打印后:HELLO CYUYAN
?第十二题の代码?
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a, b, c, max;
scanf("%d %d %d", &a, &b, &c);
if (a<b)
{
max = a, a = b, b = max;
}
if (a<c)
{
max = a, a = c, c = max;
}
if (b<c)
{
max = b, b = c, c = max;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
运行结果?
- 3 4 5
- 5 4 3
?第十三题の代码?
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void formula_table(int Custons)
{
int row = 0;
for (row = 1; row <= Custons; row++)
{
int col = 0;
for (col = 1; col <= row; col++)
{
printf("%d * %d = %-4d ", col, row, row*col);
}
printf("\n");
}
}
int main(void)
{
unsigned int Custon = 0;
printf("请输入行列数:");
scanf("%d", &Custon);
formula_table(Custon);
return 0;
}
运行结果? 请输入的行列数:6 1 * 1= 1 2 * 1= 2 2 * 2= 4 3 * 1= 3 3 * 2= 6 3 * 3= 9 4 * 1= 4 4 * 2= 8 4 * 3= 12 4 * 4= 16 5 * 1= 5 5 * 2= 10 5 * 3= 15 5 * 4= 20 5 * 5= 25 6 * 1= 6 6 * 2= 12 6 * 3= 18 6 * 4= 24 6 * 5= 30 6 * 6= 36 请输入的行列数:9 1 * 1= 1 2 * 1= 2 2 * 2= 4 3 * 1= 3 3 * 2= 6 3 * 3= 9 4 * 1= 4 4 * 2= 8 4 * 3= 12 4 * 4= 16 5 * 1= 5 5 * 2= 10 5 * 3= 15 5 * 4= 20 5 * 5= 25 6 * 1= 6 6 * 2= 12 6 * 3= 18 6 * 4= 24 6 * 5= 30 6 * 6= 36 7 * 1= 7 7 * 2= 14 7 * 3= 21 7 * 4= 28 7 * 5= 35 7 * 6= 42 7 * 7= 49 8 * 1= 8 8 * 2= 16 8 * 3= 24 8 * 4= 32 8 * 5= 40 8 * 6= 48 8 * 7= 56 8 * 8= 64 9 * 1= 9 9 * 2= 18 9 * 3= 27 9 * 4= 36 9 * 5= 45 9 * 6= 54 9 * 7= 63 9 * 8= 72 9 * 9= 81
?第十四题の代码?
#define _CRT_SECURE_NO_WARNINGS 1
#define number 4
#include<stdio.h>
int main(void)
{
int a = 0;
int b = 0;
int c = 0;//创建三个变量
int Count = 0;//计算总数
for (a = 1; a <= number; a++)//百位
{
for (b = 1; b <= number; b++)//十位
{
for (c = 1; c <= number; c++)//个位
{
if (a != b && b != c && a != c)//判断(无重复数字)
{
printf("%d%d%d ", a, b, c);
Count++;//Count = Count + 1
}
}
}
printf("\n");//换行
}
printf("Count = %d\n", Count);
return 0;
}
运行结果?
- 123 124 132 134 142 143
- 213 214 231 234 241 243
- 312 314 321 324 341 342
- 412 413 421 423 431 432
- Count = 24
?第十五题の代码?
#include<stdio.h>
int face(int n)
{
if (n <= 1)
return 1;
else
return n*face(n - 1);
}
int main(void)
{
int n = 0;
printf("请输入你的数字:");
scanf_s("%d", &n);
int ret = face(n);
printf("%d\n", ret);
}
运行结果? 请输入你的数字:5 ret = 120 5 * face(4) → 调用形式face(5) 4 * face(3) → 调用形式face(4) 3 * face(2) → 调用形式face(3) 2 * face(1) → 调用形式face(2) 1 * face(0) → 调用形式face(1) 1 * wu → 调用形式face(1) 表达式当前调用的值:1 2 * face(1) → 调用形式face(2) 表达式当前调用的值:2 3 * face(2) → 调用形式face(3) 表达式当前调用的值:6 4 * face(3) → 调用形式face(4) 表达式当前调用的值:24 5 * face(4) → 调用形式face(5) 表达式当前调用的值:120 1 * wu = 0 2 * 1 = 2 3 * 2 = 6 4 * 6 = 24 5 * 24 = 120
相关文章
- Freemarker-数字默认格式化问题
- Chrome扩展插件的开发--获取网页Cookies
- 【以解决】项目使用feign时候提示bean不能注入feign
- Docker设置容器开机自启
- 常用的淘汰算法
- 分布式事务seata,TCC,最大努力通知,最终一致性解决方案——总结三!
- java分布式事务——最终一致性,最大努力通知总结!
- java分布式事务——seata,tcc解决方案总结!
- 分布式系统–拜占庭将军问题(The Byzantine Generals Problem)
- idea中启动SSM项目
- 【编程】给定一个部门,变量出当前部门的所有父部门包含当前部门
- 【解疑】ConcurrentHashMap 在JDK1.7时候put或get时候,怎么定位到数据的?
- Spring的BeanFactoryPostProcessor
- spring注解开发AnnotationConfigApplicationContext的使用
- 匿名内部类方式实现线程的创建
- spring异常:No runnable methods 解决方法
- 基础IO的理解与操作 - fd
- 【图文教程】Centos 7下安装Hadoop-管杀管埋的
- 【Flink教程-已解决】在idea中测试flink的时候,提示读取文件时候错误,提示文件不存在解决方案
- frp 服务器端 frps 一键安装卸载脚本