C语言必背经典程序
《C语言必背经典程序》由会员分享,可在线阅读,更多相关《C语言必背经典程序(12页珍藏版)》请在装配图网上搜索。
程序 4 题目 输入某年某月某日 判断这一天是这一年的第几天 1 程序分析 以 3 月 5 日为例 应该先把前两个月的加起来 然后再加上 5 天即本年的第几天 特殊 情况 闰年且输入月份大于 3 时需考虑多加一天 2 程序源代码 main int day month year sum leap printf nplease input year month day n scanf d d d switch month 先计算某月以前月份的总天数 case 1 sum 0 break case 2 sum 31 break case 3 sum 59 break case 4 sum 90 break case 5 sum 120 break case 6 sum 151 break case 7 sum 181 break case 8 sum 212 break case 9 sum 243 break case 10 sum 273 break case 11 sum 304 break case 12 sum 334 break default printf data error break sum sum day 再加上某天的天数 if year 400 0 year 4 0 else leap 0 if leap 1 printf It is the dth day sum 程序 5 题目 输入三个整数 x y z 请把这三个数由小到大输出 1 程序分析 我们想办法把最小的数放到 x 上 先将 x 与 y 进行比较 如果 x y 则将 x 与 y 的值进行交 换 然后再用 x 与 z 进行比较 如果 x z 则将 x 与 z 的值进行交换 这样能使 x 最小 2 程序源代码 main int x y z t scanf d d d if x y t x x y y t 交换 x y 的值 if x z t z z x x t 交换 x z 的值 if y z t y y z z t 交换 z y 的值 printf small to big d d d n x y z 程序 8 题目 输出 9 9 口诀 1 程序分析 分行与列考虑 共 9 行 9 列 i 控制行 j 控制列 2 程序源代码 include stdio h main int i j result printf n for i 1 i 10 i for j 1 j 10 j result i j printf d d 3d i j result 3d 表示左对齐 占 3 位 printf n 每一行后换行 程序 11 题目 古典问题 有一对兔子 从出生后第 3 个月起每个月都生一对兔子 小兔子长到第三个月 后每个月又生一对兔子 假如兔子都不死 问每个月的兔子总数为多少 1 程序分析 兔子的规律为数列 1 1 2 3 5 8 13 21 2 程序源代码 main long f1 f2 int i f1 f2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 if i 2 0 printf n 控制输出 每行四个 f1 f1 f2 前两个月加起来赋值给第三个月 f2 f1 f2 前两个月加起来赋值给第三个月 程序 12 题目 判断 101 200 之间有多少个素数 并输出所有素数 1 程序分析 判断素数的方法 用一个数分别去除 2 到 sqrt 这个数 如果能被整除 则表明此数不是素数 反之是素数 2 程序源代码 include math h main int m i k h 0 leap 1 printf n for m 101 m 200 m k sqrt m 1 for i 2 i k i if m i 0 leap 0 break if leap printf 4d m h if h 10 0 printf n leap 1 printf nThe total is d h 程序 13 题目 打印出所有的 水仙花数 所谓 水仙花数 是指一个三位数 其各位数字立方和等于该数 本身 例如 153 是一个 水仙花数 因为 153 1 的三次方 5 的三次方 3 的三次方 1 程序分析 利用 for 循环控制 100 999 个数 每个数分解出个位 十位 百位 2 程序源代码 main int i j k n printf water flower number is for n 100 n 90 分的同学用 A 表示 60 89 分之间的用 B 表示 60 分以下的用 C 表示 1 程序分析 a b a b 这是条件运算符的基本例子 2 程序源代码 main int score char grade printf please input a score n scanf d grade score 90 A score 60 B C printf d belongs to c score grade 程序 17 题目 输入一行字符 分别统计出其中英文字母 空格 数字和其它字符的个数 1 程序分析 利用 while 语句 条件为输入的字符不为 n 2 程序源代码 include stdio h main char c int letters 0 space 0 digit 0 others 0 printf please input some characters n while c getchar n if c a else others printf all in all char d space d digit d others d n letters space digit others 程序 18 题目 求 s a aa aaa aaaa aa a 的值 其中 a 是一个数字 例如 2 22 222 2222 22222 此时 共有 5 个数相加 几个数相加有键盘控制 1 程序分析 关键是计算出每一项的值 2 程序源代码 main int a n count 1 long int sn 0 tn 0 printf please input a and n n scanf d d printf a d n d n a n while count n tn tn a sn sn tn a a 10 count printf a aa ld n sn 程序 19 题目 一个数如果恰好等于它的因子之和 这个数就称为 完数 例如 6 1 2 3 编程 找出 1000 以内的所有完数 1 程序分析 请参照程序 上页程序 14 2 程序源代码 main static int k 10 int i j n s for j 2 j 1000 j n 1 s j for i 1 i if j i 0 n s s i k n i if s 0 printf d is a wanshu j for i 0 i printf d k i printf d n k n 程序 24 题目 有一分数序列 2 1 3 2 5 3 8 5 13 8 21 13 求出这个数列的前 20 项之和 1 程序分析 请抓住分子与分母的变化规律 2 程序源代码 main int n t number 20 float a 2 b 1 s 0 for n 1 n number n s s a b t a a a b b t 这部分是程序的关键 请读者猜猜 t 的作用 printf sum is 9 6f n s 程序 25 题目 求 1 2 3 20 的和 1 程序分析 此程序只是把累加变成了累乘 2 程序源代码 main float n s 0 t 1 for n 1 n 20 n t n s t printf 1 2 3 20 e n s 程序 26 题目 利用递归方法求 5 1 程序分析 递归公式 fn fn 1 4 2 程序源代码 include stdio h main int i int fact for i 0 ia j min j tem a i a i a min a min tem output data printf After sorted n for i 0 iprintf 5d a i 程序 38 题目 求一个 3 3 矩阵对角线元素之和 1 程序分析 利用双重 for 循环控制输入二维数组 再将 a i i 累加后输出 2 程序源代码 main float a 3 3 sum 0 int i j printf please input rectangle element n for i 0 i 3 i for j 0 j 3 j scanf f for i 0 i 3 i sum sum a i i printf duijiaoxian he is 6 2f sum 程序 39 题目 有一个已经排好序的数组 现输入一个数 要求按原来的规律将它插入数组中 1 程序分析 首先判断此数是否大于最后一个数 然后再考虑插入中间的数的情况 插入后此元素之后 的数 依次后移一个位置 2 程序源代码 main int a 11 1 4 6 9 13 16 19 28 40 100 int temp1 temp2 number end i j printf original array is n for i 0 iend a 10 number else for i 0 inumber temp1 a i a i number for j i 1 j 11 j temp2 a j a j temp1 temp1 temp2 break for i 0 i 11 i printf 6d a i 程序 40 题目 将一个数组逆序输出 1 程序分析 用第一个与最后一个交换 2 程序源代码 define N 5 main int a N 9 6 5 4 1 i temp printf n original array n for i 0 i printf 4d a i for i 0 i temp a i a i a N i 1 a N i 1 temp printf n sorted array n for i 0 i N i printf 4d a i 下面程序的功能是将一个 4 4 的数组进行逆时针旋转 90 度后输出 要求原始数组的数据随机输入 新 数组以 4 行 4 列的方式输出 请在空白处完善程序 main int a 4 4 b 4 4 i j a 存放原始数组数据 b 存放旋转后数组数据 printf input 16 numbers 输入一组数据存放到数组 a 中 然后旋转存放到 b 数组中 for i 0 i 4 i for j 0 j 4 j scanf d b 3 j i a i j printf array b n for i 0 i 4 i for j 0 j 4 j printf 6d b i j printf n 通过键盘输入 3 名学生 4 门课程的成绩 分别求每个学生的平均成绩和每门课程的平均成绩 要求所有成绩均放入一个 4 行 5 列的数组中 输入时同一人数据间用空格 不同人用回车 其中最后一列和最后一行分别放每个学生的平均成绩 每门课程的平均成绩及班级总平均分 include include main float a 4 5 sum1 sum2 int i j for i 0 i 3 i for j 0 j 4 j scanf f for i 0 i 3 i sum1 0 for j 0 j 4 j sum1 a i j a i 4 sum1 4 for j 0 j 5 j sum2 0 for i 0 i 3 i sum2 a i j a 3 j sum2 3 for i 0 i 4 i for j 0 j 5 j printf 6 2f a i j printf n 8 完善程序 实现将输入的字符串反序输出 如输入 windows 输出 swodniw include main char c 200 c1 int i j k printf Enter a string scanf s c k strlen c for i 0 j k 1 i k 2 i j c1 c i c i c j c j c1 printf s n c 下面程序的功能是从字符数组 s 中删除存放在 c 中的字符 include main char s 80 c int j k printf nEnter a string gets s printf nEnter a character c getchar for j k 0 s j 0 j if s j c s k s j s k 0 printf n s s 11 已知数组 a 中的元素已按由小到大顺序排列 以下程序的功能是将输入的一个数插入数组 a 中 插入 后 数组 a 中的元素仍然由小到大顺序排列 main int a 10 0 12 17 20 25 28 30 a 0 为工作单元 从 a 1 开始存放数据 int x i j 6 j 为元素个数 printf Enter a number scanf d a 0 x i j 从最后一个单元开始 while a i x a i 1 a i i 将比 x 大的数往后移动一个位置 a i x j 插入 x 后元素总个数增加 for i 1 i j i printf 8d a i printf n 17 冒泡排序 从小到大 排序后结果输出到屏幕 include void fun int a int n int i j t for i 0 i n 1 i for j 0 ja j 1 t a j a j a j 1 a j 1 t main int a 10 12 45 7 8 96 4 10 48 2 46 n 10 i fun a 10 for i 0 i 10 i printf 4d a i 18 编写函数 countpi 利用公式 947352135212 计算 的近似值 当某一项的值小于 10 5 时 认为达到精度要求 请完善函数 将结果显示在屏幕上 include double countpi double eps eps 为允许误差 int m 1 double temp 1 0 s 0 while temp eps s temp temp temp m 2 m 1 m return 2 s main double eps 1e 5 pi pi countpi eps printf pi lf n pi- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 经典 程序
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文