文章目录

  • C语言简介
  • 八层灯塔数量问题
  • 百元买鸡问题
  • 比较字符串大小
  • 打印九九乘法表
  • 打渔晒网问题

本篇主要简单介绍一下C语言。因为本人最近有C语言的相关考试,在漫长的复习过程,总得有点乐趣吧,就顺便总结出一些有趣的C语言经典实例。

C语言简介

C语言是面向过程的一们编程语言,属于结构化语言,与目前较流行Python、C++、Java等不同,这几种是面向对象的高级语言。

但是,由于C语言是底层语言,所以占用内存少;编译快;兼容性极强,C语言程序能在大部分平台运行;非常稳定,我们用的操作系统都是C语言写的。

另外,还是因为C语言是底层的结构化语言,所以结构性非常强,像线性链表、指针、结构体等,都是C语言的特色,它们对逻辑和结构化思维的要求是相当高的。

也正是因为如此,相对于Python、C++、Java等,C语言被一些人认为是非常难学的编程语言。

下面就是我分享复习过程中的一些C语言实例……

八层灯塔数量问题

1、题:
有一个八层灯塔,每层的灯数都是上一层的2倍,共有756盏灯,求最上层与最下层的灯数。

2、分析:
(1)这个实例需要用到穷举法,假设第一层的灯数是n,第二层的灯数就是2×n,第三层就是2×2×n,以此类推。

(2)然后我们需要使用两层循环,外层循环属于穷举法,从第一层(n=1)开始,内层循环用于计算八层灯数之和。

(3)如果八层灯数之和>756则无解;<756则进入下一轮n值的循环;==756则设的n值是正确的
3、测试代码:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{int n= 1, m, sum, i;  //n第一层的假设值,m每一层的灯数,sum所有灯数,i遍历八层楼以求得总灯数while(1){m=    n;sum= m;for(i=1; i<8; i++)  //遍历7次,求总灯数sum {m *= 2;sum+= m;}if(sum>=765)  //题中总灯数为765个{break;}n++; } if(sum== 765){printf("第一层有%d盏灯,最后一层有%d盏灯。",n,m);}else{printf("此题无解!");}
}

4、测试结果:

百元买鸡问题

1、题:
100个铜钱买了100只鸡,其中公鸡一只5钱,母鸡一只3钱,小鸡一钱3只,问100只鸡中公鸡、母鸡、小鸡各多少只?

2、分析:
(1)设100只鸡中公鸡、母鸡、小鸡分别有x、y、z只;
(2)根据题意,总共不能超过100只鸡,所以公鸡x不可能超过20只,母鸡y的取值则是0—33,小鸡z的取值则是0—99
(3)然后我们用穷举的方法,遍历x、y、z所有可能的组合,得出满足条件的那几组

3、测试代码:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{int x, y, z, i=0;  //x是公鸡,y是母鸡,z是小鸡 for(x=0; x<20; x++){for(y=0; y<33; y++){for(z=0; z<99; z+=3)  //小鸡一钱3只,所以小鸡的数量一定是3的倍数 ,所以每次加3 {if((5*x+3*y+z/3 == 100) && (x+y+z)==100)  //钱的总数不超过100,鸡的总数不超过100 {i++;printf("%d:公鸡有%d只,母鸡有%d只,小鸡有%d只。\n",i,x,y,z);}}}}
}

4、测试结果:

比较字符串大小

1、题:
在C语言中,有一个字符串比较大小函数的,叫做strcmp(串1,串2)在string.h库里面,所以使用前需要导入

2、分析:
(1)不过要注意strcmp不是比较字符串的长短,C语言中的字符串比较是一个一个字符进行比较的,比较两个字符串大小,则从第一个字符开始比较的;
(2)如果第一个字符不同,则ASCII码较大的字符所在的字符串为大,如果相同则比较下一个字符,总之比较的就是ASCII码

3、测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{ //比较两个字符串大小,则从第一个字符开始比较,如果第一个字符不同//则ASCII码较大的字符所在的字符串为大char s1[20];  //要比较的字符串是s1和s2,另一个字符串s3是用来当中间变量的 char s2[20];char s3[20];puts("请输入两个字符串:");gets(s1);gets(s2);if(strcmp(s1,s2)<0)       //比较s1与s2的长度,若s1小于s2则返回值小于0 {                            //s3用于交换s1于s2的值 strcpy(s3,s1);      //将s1写到s3里面strcpy(s1,s2);strcpy(s2,s3); } printf("大的字符串:");puts(s1);  //puts函数用来输出字符串 printf("小的字符串:");puts(s2);
}

4、测试结果:

打印九九乘法表

1、题:
这是一个比较基础的问题,用到了两个循环分别遍历1~9的数字,然就进行乘法运算

2、测试代码:

#include <stdio.h>int main()
{int i, j;for(i=1; i<=9; i++){for(j=1; j<=i; j++){printf("%1d×%1d=%2d  ",j,i,j*i);}printf("\n");}}

3、测试结果:

打渔晒网问题

1、题:
一渔夫从2020年1月1日开始,打渔三天,然后晒网两天,一直这样循环作业。现用户随意输入一天,要求得出当天是打渔还是晒网。

2、分析:
(1)首先计算输入的那天是2020年的第几天,然后求该数除以5的余数;
(2)如果余数是1、2、3,肯定就是打渔,余数是4、0就晒网,因为三天打渔两天晒网嘛;
(3)由于2020年是闰年,2月份有29天

3、测试代码:

#include <stdio.h>
#include <stdlib.h>
main()
{int month, day, days, i;  //days是总天数,day是用户输入的天数,month是用户输入端月份 printf("请输入月 日:");scanf("%d%d",&month,&day);days = day;//计算总天数 for(i=1; i<month; i++)  //i用来记录月份,不能超过用户输入的那个month {if((i<=7 && i%2!=0) || (i>=8 && i%2==0))  //表示 1、3、5、7、8、10、12这几个月(小于等于7的奇数,大于等于8的偶数) {days += 31;}else if(i==2){days += 29;}else{days += 30;}}if((days%5)<=3 && (days%5!=0)){printf("2020-%d-%d 渔夫应该打渔!",month,day);}else{printf("2020-%d-%d 渔夫应该晒网!",month,day);}
}

4、测试结果:

(篇一)作为一个程序猿,这些C语言实例你必须会!相关推荐

  1. 连载《一个程序猿的生命周期》-《发展篇》 - 2.论团结在真正做事人身边的正确性

    <一个程序猿的生命周期>-第1册<生存>下载 摘要:有很明确的目标,是否能够转化成可预期的成果,那是尽人事知天命的事.人生短短几十年,不能瞎折腾而浪费生命:但是看准方向,不仅要 ...

  2. 连载《一个程序猿的生命周期》-《发展篇》 - 5.奶奶终于“自杀”了

    打我记事起,奶奶裹过的小脚有点外八字,走起路来颤颤巍巍,但是又很利索,身体干瘦如柴,面部棱角清晰可见,头发黑白相间.妈妈说起爷爷.奶奶来,一顿牢骚,叙述各种遭遇.各种不好.慢慢的长大后,妈妈说的都被被 ...

  3. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...

    相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的"叛逆者" 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准 ...

  4. 连载《一个程序猿的生命周期》-《发展篇》- 23.两年多的时间,从孤家寡人到10多人的团体,经历了什么...

              上篇文章<城市奋斗者的阿Q精神>,不管真正的奋斗者还是伪奋斗者都需要阿Q精神,有的人是遇事之后被动的心里安慰,有的人是看破尘事的无所畏惧到内心强大.我可能属于后者,从写 ...

  5. 连载《一个程序猿的生命周期》-《发展篇》- 26.且听风吟,静待花开,慢慢走向人生赢家...

           昨天一早感觉天气很好,完全没有上班的意愿.上午赶到公司处理一些无关紧要的事儿,于是乎下午带着大宝去八大处爬山,在感受自然风光的同时想到一句话:且听风吟,静待花开.在人生过程中所做出的努力 ...

  6. 每一个程序猿必知之SEO

    似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...

  7. 从小学到高中,一个程序猿的独白

    前言:从小学到高中,那段幼稚.青涩的年代,我是无论如何也想不到自己以后要做一名程序猿,现在回想起来,依然会惊讶. 小学阶段 请允许我的自恋,在我们村子,从5岁上学前班到小学五年级毕业,我年年能领导那高 ...

  8. 分享一个程序猿的真实的爱情故事

    分享一个程序猿的真实的爱情故事 在今天(农历四月十九日)这个特别的日子里,就不分享技术干货了.因为今天是我老婆的生日,所以我改成记录一下关于我这个"老"程序猿跟我老婆之间的故事.也 ...

  9. 连载《一个程序猿的生命周期》-27、新招的两位“高管”相继离职

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  10. 《一个程序猿的生命周期》读后感

    <一个程序猿的生命周期>里介绍作者从我们现在这个阶段到作者现在已经三十岁这一阶段的各种经历.在作者那十年的时间里,经历了很多的事情.走出大山.走进城市,父母.恋爱.学业.生活等等的一切艰辛 ...

最新文章

  1. win7如何设置wifi热点_xp系统怎么设置无线网络热点(电脑设置wifi热点步骤)
  2. 解读:欧盟委员会2021年《人工智能法》提案
  3. 小数据福音!BERT在极小数据下带来显著提升的开源实现
  4. mysql 查询从库状态_Mysql库表状态查询
  5. 【安卓开发 】Android初级开发(五)自定义View
  6. 新Rider预览版发布,对F#的支持是亮点
  7. 【OS学习笔记】十 实模式:实现一个程序加载器-程序加载器如何将用户程序加载到内存并执行
  8. .NET 面向对象基础
  9. Win10远程连接自己的电脑提示“登陆没有成功”的解决方案
  10. 如何在服务器运行aspx_ASP.NET开发实战——(四)MVC是如何运行?它的生命周期是什么?...
  11. 【转】HEIF图片存储格式探秘
  12. 08.存储Cinder→5.场景学习→01.LVM Volume
  13. 知道css有个content属性吗?有什么作用?有什么应用?可以伪类清除浮动
  14. 【计算机网络安全基础(第五版)袁津生 课后习题答案】
  15. 【丐中丐】废旧光驱改装激光雕刻机
  16. 51单片机指令汇集,分类,以及典型指令案例分析
  17. Android 气泡图片
  18. NI无线通信与射频技术学习资源汇总
  19. 提高Web页面渲染速度的7个技巧
  20. php视频转mp4软件,3gp mp4视频转换免费软件 3gp如何转mp4

热门文章

  1. 筛选样本_早产预测准确性创新高!3种样本PK,首次利用脂质组学筛选出生物标志物...
  2. shell中正则表达式详解_Shell if中的正则表达式使用详解
  3. android 创建图片,[Android]创建图片
  4. mysql 从服务器同步数据_MySQL 同一台服务器同步数据
  5. 计算机网络利弊的作文英语作文,网络的弊端英语作文(精选6篇)
  6. 服务器挂存储系统启不,应用服务器重新启动后无法加载多路径软件
  7. java web 断点上传_使用WebUploader实现分片断点上传文件功能(二)
  8. python程序是由一系列代码组成的_以下选项中,对程序的描述错误的是() (6.0分)_学小易找答案...
  9. vue实现多行数据提交_Vue+Mockjs,模拟接口数据,实现前后端独立开发
  10. android dialogfragment 简单,使用DialogFragment