12道c语言的课后习题!

article/2025/9/15 4:15:12

1、计算n的阶乘(1*2*3*4*5    n是个数,比如说乘到100?)

// 计算n的阶乘#include"stdio.h"int main() {int n = 0;scanf("%d", &n);int i = 0;int ret = 1;for (i = 1; i <= n; i++) {ret *= i;}printf("%d", ret);return 0;
}

2、用递归的方式实现n的阶乘?

//  用递归的方法实现n的阶乘。
int fac(int n) {if (n <= 1) {return 1;}else {return n * fac(n - 1);}}int main() {int n = 0;scanf("%d", &n);int ret = 0;ret = fac(n);printf("%d", ret);return 0;
}

3、求第n个斐波那契数。  意思就是前两个数的和等于第三个数:1 1 2 3 5 8 13 21 34 55 .....

用递归的方式可以实现,就是效率有点低,看代码吧:4

// 求第n个斐波那契数。(不考虑溢出)
//  前两个数的和等于第三个数    1 1 2 3 5 8 13 21 34  55 ......// 递归可以求解,但是效率太低。int count = 0;
int fib(int n) {//统计第三个斐波那契数使用的次数?if (n == 3) {count++;}if (n <= 2) {return 1;}else {return fib(n - 1) + fib(n - 2);}}int main() {int n = 0;scanf("%d", &n);int ret = fib(n);printf("%d\n", ret);printf("count=%d\n", count);return 0;
}

4、用一个更高效率的方法求第n个斐波那契数?

int fib(int n) {int a = 1;int b = 1;int c = 1;while (n > 2) {c = a + b;a = b;b = c;n--;          // 传入的数每次减1,好达到while循环的终止条件}return c;}int main() {int n = 0;scanf("%d", &n);int ret = fib(n);printf("%d\n", ret);return 0;
}

5、编写1到100的所有整数中出现了多少个数字9?

#include"stdio.h"//编写1到100的所有整数中出现了多少个数字9?    十位= 整数 / 10 比如:87/10=8  个位= 整数 % 10  比如:12 模10 = 2
int main() {int i = 0;int count = 0;for (i = 1; i <= 100; i++) {if (i / 10 == 9 || (i % 10) == 9) {count++;}}printf("%d", count);return 0;
}

6、计算 1/1-1/2+1/3-1/4.....+1/100的值?

#include"stdio.h"//计算 1/1-1/2+1/3-1/4.....+1/100的值
double jiashu(int i) {return 1.0 / i;     //想要除法得到小数就要有一个值是小数所以写成1.0
}int main() {int i = 0;double he1 = 0.0;//printf("%lf", 1.0 / 2);    1.0 / 2 = 0.50000for (i = 1; i <= 100; i++) {if (i % 2 == 1) {he1 +=jiashu(i);}elsehe1 -=jiashu(i);}printf("%lf", he1);   //0.688172return 0;
}

7、用另外一种方法求计算 1/1-1/2+1/3-1/4.....+1/100的值?

//计算 1/1-1/2+1/3-1/4.....+1/100的值int main() {int i = 0;double he1 = 0.0;int flag = 1;//printf("%lf", 1.0 / 2);    1.0 / 2 = 0.50000for (i = 1; i <= 100; i++) {he1 += flag * 1.0 / i;flag = -flag;              // 第一次falg为正1,第二次就为-1, 3:+ , 4:-  依次循环}printf("%lf", he1);   //0.688172return 0;
}

8、求10个整数中的最大值?

# include"stdio.h"// 求10个整数中的最大值?int main() {int arr[] = { -31,-2,-3,-4,-5,-6,-7,-8,-9,-10 };int max = arr[0];int i = 0;for (i = 0; i <= 10; i++) {if (max < arr[i])max = arr[i];}printf("%d", max);return 0;
}

9、输出乘法口诀表?

 

#include"stdio.h"// 输出乘法口诀表int main() {int i = 0, j = 0;for (i = 1; i < 10; i++) {for (j = 1; j <= i; j++) {printf("%dX%d=%-2d   ", j, i, i * j);  // 2d  是打印2位右对齐,左侧补充空格, -2d是左对齐,右侧补空格。}printf("\n");}return 0;
}

10、猜数字游戏?

#include"stdio.h"
#include"time.h"
#include"stdlib.h"
// 猜数字游戏void game() {int num = rand()%100;//printf("%d", num);int cai = 0;printf("请猜猜我心目中的数吧\n");while (num != cai) {scanf("%d", &cai);if (cai > num)printf("你猜大了\n");else if (cai < num)printf("你猜小了\n");}printf("恭喜你猜对了!\n");
}int main() {a:srand((unsigned int)time(NULL));  // 设置随机数的起始值为 :强制转换成整型的时间戳int input = 1;printf("*************欢迎试玩猜字游戏***************\n****************1:开始游戏*****************\n****************0:退出游戏*****************\n");while (input) {scanf("%d", &input);switch (input){case 1:game();goto a;case 0:break;default:printf("你输入的答案不正确!重新选择?");}}return 0;
}

11、用二分查找法,在一个整型有序数组中具体查找某个数。

  用二分查找法,在一个整型有序数组中具体查找某个数。
#include"stdio.h"
#include"string.h"int main() {int arr[] = {1,2,3,4,5,6,7,8,9,10};int k = 7;int sz = sizeof(arr) / sizeof(arr[0]);int left = 0;int right = sz - 1;int mid = 0;while (left <= right) {mid = (left + right) / 2;if (k > arr[mid]) {left = mid + 1;}else if (k < arr[mid]) {right = mid - 1;}else{printf("%d的下标是:%d", k, mid);break;}}if(left > right)printf("没有找到");return 0;
}

12、函数判断素数
         实现一个函数,判断一个数是不是素数。
         利用上面实现函数打印100到200之间的素数。

#include"stdio.h"int panduan(int i) {int j = 2;for (j = 2; j < i; j++) {if (i % j == 0) {return 0;}else {return 1;}}
}int main() {int i = 0;int count = 0;for (i = 100; i <= 300; i++) {if (panduan(i)) {printf("%d是素数\n", i);count++;}}printf("一共有个%d素数", count);return 0;
}


http://chatgpt.dhexx.cn/article/jh8jSoFE.shtml

相关文章

TeeChart在VS2005,VS2008的入门教程

最近项目上要用到TeeChart来绘图&#xff0c;网络上关于TeeChart的资料很多&#xff0c;但是感觉很多都讲不到点上&#xff0c;很多入门过程中碰到的细节问题还是要自己探索。我把这两天的学到的记下来&#xff0c;也与大家分享。 环境&#xff1a;VS2005,VS2008 TeeChart版本:…

怎么用VS2008?

请问各位怎么用VS2008&#xff0c;为什么总是出错&#xff1f;我是这么做的。

[Win8]如何使用Visual Studio2012进行Windows8项目开发

随着Windows8普通版&#xff0c;专业版和企业版的普及&#xff0c;Windows8的应用开发也逐渐火热起来。 下面简单介绍一下如何使用Visual Studio2012进行Windows8项目的开发。 首先安装Windows8的操作系统&#xff0c;推荐安装32位的Win8&#xff0c;因为64位的容易出现不兼容…

VS2008技巧收集

1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件在Visual Studio 2008的安装目录下&#xff0c;/Microsoft Visual Studio 9.0/Common7/VS2008ImageLibrary/2052文件夹下面&#xff0c;有一个VS2008ImageLibrary.zip&#xff0c;这…

VS2012使用 MSDN教程

VS2012安装默认只安装Help Viewer,如果想要安装文档的话&#xff0c;需要去官网下载。网址如右:https://www.microsoft.com/zh-CN/download/details.aspx?id34794 一&#xff0c;选择中文版&#xff0c;点击下载&#xff0c;2G。如下图&#xff1a; 下载完成&#xff0c;需要解…

VS2008使用技巧及快捷键大全

VS2008技巧&#xff0c;非常实用&#xff0c;非常提高效率。 1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件 在Visual Studio 2008的安装目录下&#xff0c; \Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹…

VS2008 使用小技巧-------快捷键

以下的内容转载自&#xff1a;http://www.21industry.com/group_thread/view/id-32435 VS2008 使用小技巧——快捷键 1. 怎样调整代码排版的格式&#xff1f; 选择&#xff1a;编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。 格式化cs代码…

vs2008 html5 的安装,vs2008安装教程,详细教您vs2008安装教程

小伙伴们&#xff0c;你们知道Visual Studio 2008是什么吗&#xff1f;小编我来给你们简单的解释一下哈&#xff0c;vs2008就是是对Office 2007、Web 2.0的下一代开发工具&#xff0c;代号是Orcas&#xff0c;是对vs2005的升级。而今天我就来告诉你们vs2008安装教程&#xff0c…

【C++】利用Visual Studio 2008编写C++,Visual Studio 2008的基本使用

现在很多高校还是利用Visual C 6.0这一经典版本在教C&#xff0c;很多人对自己第一个程序的回忆是利用Visual C 6.0用C语言写的Helloworld&#xff0c;之后再学习C的类&#xff0c;不过还是在使用Visual C 6.0。于是Visual Studio对Visual C 6.0界面的布置改动得比较大&#xf…

VS2008使用技巧

VS2008技巧&#xff0c;非常实用&#xff0c;非常提高效率。 1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件 在Visual Studio 2008的安装目录下&#xff0c; \Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹…

vs2008/vs2010新手快速入门必读教程

1.新建一个项目并且添加项 ①打开文件->新建->项目&#xff0c;新建一个项目 ②选择win32控制台&#xff0c;然后点击下一步&#xff0c;出现对话框&#xff0c;在空项目前面打勾&#xff0c;单击完成。 ③出现一个空白的页面&#xff0c;在左侧的一栏空白处单击右键&…

vs2008怎么创建c语言程序,VS2008的使用

使用之前我们先准备一段代码。#include #include int main() { printf("欢迎进入www.dotcpp.com编程网站&#xff01;"); system("pause"); return 0; } 1. VS2008的使用过程 1) 打开软件&#xff0c;第一次打开需要耗费一点时间。 2) 创建文件的方式为点…

vs2008使用技巧推荐

VS2008技巧&#xff0c;非常实用&#xff0c;非常提高效率。 1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件 在Visual Studio 2008的安装目录下&#xff0c; \Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹…

Microsoft Visual Studio 2008安装教程

Microsoft Visual Studio 2008安装包链接&#xff1a;https://pan.baidu.com/s/1nwRnWj3 密码&#xff1a;s00k①解压安装包后得到后缀为.iso的镜像文件&#xff0c;解压&#xff1b; ②解压后找到安装启动程序setup.exe&#xff0c;双击&#xff1b; ③双击后进入安装界面&…

VS2008 入门基本操作

VS2008 入门操作 更新日期&#xff1a;2011-7-31 测试环境&#xff1a;VS2008WinXP ━━━━━━━━━━━━━━━━━━━━━━━━ 这段时间正式开始使用VS2008。从VC6过度到VS2008还真的有点不习惯。 下面列出一些常用操作&#xff0c;希望有所帮助。 以下只是个入门的…

【转】VS2008 入门基本操作

VS2008 入门操作 更新日期&#xff1a;2011-7-31 测试环境&#xff1a;VS2008WinXP ━━━━━━━━━━━━━━━━━━━━━━━━ 这段时间正式开始使用VS2008。从VC6过度到VS2008还真的有点不习惯。 下面列出一些常用操作&#xff0c;希望有所帮助。 以下只是个入门的…

android 多线程断点续传下载 三

今天跟大家一起分享下android开发中比较难的一个环节,可能很多人看到这个标题就会感觉头很大,的确如果没有良好的编码能力和逻辑思维,这块是很难搞明白的,前面2次总结中已经为大家分享过有关技术的一些基本要领,我们先一起简单回顾下它的基本原理。 http://blog.csdn.net/shim…

Android多线程编程(一)- 线程基础

Android多线程编程&#xff08;一&#xff09; 到了学习下一部分了&#xff0c;多线程编程一直都是Android经常使用的部份&#xff0c;在进行网络请求或者访问数据库时&#xff0c;为了避免主线程被耗时操作阻塞了进度&#xff0c;通常都会开启子线程进行处理&#xff0c;多线…

Android多线程

我们创建的Service、Activity以及Broadcast均是一个主线程处理&#xff0c;这里我们可以理解为UI线程。但是在操作一些耗时操作时&#xff0c; 比如I/O读写的大文件读写&#xff0c;数据库操作以及网络下载需要很长时间&#xff0c;为了不阻塞用户界面&#xff0c;出现ANR的响应…

Android多线程机制详细解析

或许你曾经需要项目中进行后台工作比如数据库访问或者网络连接&#xff0c;如果你按照以前的做法&#xff0c;直接在点击事件或者onCreate方法中直接调用访问数据库或者服务器的方法&#xff0c;你就会遇到大多数Android程序员都遇到过的这么一个错误&#xff1a;android.view.…