导航菜单
首页 >  c语言常考编程题  > C语言常见题目汇总(不断更新)(建议收藏)

C语言常见题目汇总(不断更新)(建议收藏)

前言:

C语言的常见题,对大家学习C语言会有一定的帮助,不断地会收录新题(含牛客网的习题)

没有对题型进行分类,大家自行挑选对自己有用的题目

如果代码有什么bug,或者你比我有更好的处理方法还请及时下方留言

如果还需要哪种题型也可以下方留言

感谢支持!!!

eg1.(斐波那契数列)非递归的

方法1:

int main(){int arr[30];//定义一个数组arr[0] = 0;//设置数组的第一个元素为0arr[1] = 1;//设置数组的第二个元素为1int i = 0;//定义一个循环变量for (i = 2; i < 30; i++){arr[i] = arr[i - 1] + arr[i - 2];//从第三个元素开始等于前两个元素的和 循环去赋值}for (i = 0; i < 30; i++){printf("%d\n", arr[i]);//循环把元素都打印出来}return 0;}

方法2:递归求解

int fib(int n){if (n == 0)//第一个原素打印 0{return 0;}if (n 0)//第一个元素打印1{return 1;}else//从第三个元素开始递加{return fib(n - 1) + fib(n - 2);}}int main(){int i = 0;for (i = 0; i < 20; i++){int ret = fib(i);//打印斐波那契数列printf("%d\n", ret);}return 0;}

效果如图:

方法3:(变式)求斐波那契数列的第n个元素

#pragma warning(disable : 4996)#include int fib(int n){int result = 1; int pre_result = 1;int next_preresult ;while (n > 2) //从第三个数字才开始有规律 数值等于前两个相加{n = n - 1;next_preresult = pre_result;pre_result = result;result = pre_result + next_preresult;}return result;}int main(){printf("请你输入想要查询的n的数值\n");int n = 0;scanf("%d", &n);//捕获你想查询的数字int ret = fib(n);//接收算出来的返回值(n所对应的斐波那契数列数值)printf("%d", ret);return 0;}

效果如图:

eg2.字符金字塔(输入一个字符输出相应字符所对应的金字塔)

#include int main(){char a;scanf("%c", &a);int i = 1;//行int j = 1;for (i = 1; i =0; j--)//打印空格 空格从第一行到第五行空格是递减的 第一行四个空格第五行没有空格,所以利用循环 5-i表示打印的空格数去打印空格{printf(" ");}for (j = 1; j = 0; j--)//打印空格{printf(" ");}for (j = 1; j = 0; j--)//打印空格{printf(" ");}for (j = 1; j = c && a - b

相关推荐: