C博客作业00--我的第一篇博客

这个作业属于哪个班级 C语言–网络2011/2012
这个作业的地址 C博客作业00–我的第一篇博客
这个作业的目标 学习Makdown语法,对本专业及C语言课程有个简单了解,记录自学慕课视频的笔记。教师可以对学生有个初步的认识。

文章目录

  • *1.文中所有有使用的资料的原作者网站如下:*
  • *2.浅谈我对网络与计算机专业的了解。*
  • *3.浅谈我对C语言的理解。*
  • *4.关于对网络工程专业的学习内容的期许。*
    • 4.1. **专业角度**:
    • 4.2. **能力思维角度**:
  • *5.我的大学学习生活时间的安排。*
  • *6.我目前学习的C语言相关课程的内容。*
    • 6.0 已安装vs2019。
    • 6.1 语法类型:
      • 6.1.1 **输入和输出:**
      • 6.1.2 **分支结构:**
        • 1.嵌套的if-else
        • 2.级联的if else-if
        • 3.if的常见错误
        • 4.多路分支(switch-case)
      • 6.1.3 **循环结构:**
        • 1.初识循环语句
        • 2.关于循环语句的深入
        • 3.循环的衍生知识
        • 4.循环控制
      • 6.1.4 **逻辑类型:**
      • 6.1.5 **函数:**
        • 1.函数的定义与使用
        • 2.函数的参数和变量
    • 6.2其他定义类知识:
      • 6.2.1 变量和常量的定义:
      • 6.2.2 浮点数的相关要点。
      • 6.2.3 运算符和算子:
      • 6.2.4 关于复合赋值:
      • 6.2.5 关于注释:
    • 6.3其他细节点:

1.文中所有有使用的资料的原作者网站如下:

  • 首先感谢所有引用资料的原作者,他们对本博客的完成有很大帮助!
  • 额外感谢 林智凯学长 关于markdown语法的教学!
  • 特别鸣谢 翁恺老师!!(C语言程序设计CAP) (此处会大量采用翁老师mooc C语言 课程中的很多信息和观点故直接特别说明不在具体给出链接)
  1. 网络工程的百度词条
  2. 4g网络
  3. 网络安全
  4. C语言
  5. C语言入门学习建议
  6. 计程车计价问题参考1
  7. 计程车计价问题参考2

2.浅谈我对网络与计算机专业的了解。

网络工程专业主要讲授计算机科学基础理论、计算机软硬件系统及应用知识、网络工程的专业知识及应用知识。网络工程专业旨在培养具有创新意识,具有本专业领域分析问题和解决问题的能力,具备一定的实践技能,并具有良好的外语应用能力的高级研究应用型专门人才。

该专业学生主要学习计算机、通信以及网络方面的基础理论、设计原理,掌握计算机通信和网络技术,接受网络工程实践的基本训练,具备从事计算机网络设备、系统的研究、设计、开发、工程应用和管理维护的基本能力。

我的理解和体会:

  • 计算机是一种工具,它可以说是一种时代性的工具。计算机的出现,在世界产生了轰动,这声爆炸引领我们走入信息时代,而互联网的出现,又在有计算机的世界产生轰动,这声爆炸确是把信息世界带向我们,让全人类享受到计算机的方便与强大!
    在众多中国各大学科中,计算机专业有特殊的包容性和明显的实用性,而在所有计算机专业中,网络工程专业又具有其特殊的包容性和更深入生活的实用性。
    自从2012年11月易观国际于揚提出“互联网+”国家战略后,网络这一方面的业务就有真的可以说是惊为天人的发展,而联通4G网络于2014年3月18日正式商用,现在的时间点是2020年是4G网络开发到可以说是很蓬勃的时代,我们站在过去人的将来,以现在的视角去看过去人在网络建设上的成果,我们不难发现,甚至惊叹,网络工程,计算机网络技术对于人类生活的改变究竟是如此,如此的巨大!现在早已司空见惯的网购、直播、打车软件、网上看视频等等行为,都和网络技术都和计算机技术的发展有千丝万缕的联系,一代技术的发展,背后所烙下的刻印可能就是无数人的生活记忆。这是生活化方面的包容性。
  • 辩证的看,网络技术的蓬勃发展,带来的除了便利,还有更强烈的隐私和个人信息的泄露,随之而来的危机必然与其强大的能力成正比。解铃还须系铃人,面对网络威胁,网络工程就有衍生的分支——网络安全解决。这一块在已经发展到规范化,法律化的重要地位。2020年4月27日,国家互联网信息办公室、国家发展和改革委员会、工业和信息化部、公安部、国家安全部、财政部、商务部、中国人民银行、国家市场监督管理总局、国家广播电视总局、国家保密局、国家密码管理局共12个部门联合发布《网络安全审查办法》。网络工程专业是一个很完善的体系。
  • ==揆诸当下,我们赶上了另一波网络的高潮,没错,那便是5G网络的洪流。2020年,5G网络的各项关键技术慢慢取得突破,在路由器和手机市场,各类适应5G的电子设备已经在蓬勃喷涌,虽然正式商用时间还没发布,但正是还没发布所以给了我们更多的时间和机会去更努力地学习相关知识,这是机会也是挑战。==俗话说好风凭借力,正是今年,2020年5月22日,国务院总理李克强在发布的2020年国务院政府工作报告中提出,全面推进“互联网+”,打造数字经济新优势。历史总是惊人的相似,4G发生事情,我们每个人都可以说是体会很深很深。那么5G势潮下网络的发展又会走向何处?我相信会更不一般,更汹涌,更激荡,而这也正是我们遇上的,属于我们的,将交给我们去书写的华章。另外,在网络安全方面,4G时代下,二维码干掉了现金,而对于更安全的网络货币的呼声也是越来越高,区块链技术出现在正属于它的时代。此时我们不妨再往小一看,再更往生活化一看,我们会发现,微信中的小程序,集大通的小程序,各类不同app中连带的各类小程序,它们都是是网络技术的产物。
  • 所以,总的来说,网络工程这个专业具有很大的包容性,在当今环境下也有很多的机会和需求。

3.浅谈我对C语言的理解。

C语言是一门面向过程的、抽象化的通用程序设计语言,与C++、Java等面向对象编程语言有所不同,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。

学习C语言的原因:主要是因为C语言是一种结构化的语言,是面向过程的。有清晰的层次、简洁的语言、具有结构化的控制语句、丰富的数据类型、丰富的运算符、可对物理地址进行直接的操作、代码具有较好的可移植性、可生成高质量、目标代码执行效率高的程序。
除了上述原因外,现在很多高级语言,其实都是类C语言。学会了C语言之后,要学习其他高级语言的话,可以很快入门。
C语言主要有以下几种应用场景:
系统软件
驱动
操作系统内核
嵌入式(单片机)开发
小程序

  • C语言是常年和Java语言交替成为各种计算机语言中排名第一语言的语言,C语言在工业界有重要的地位,在很多领域无可替代,几乎所有和硬件打交道的地方都得要用C语言。C语言发展历史悠久,至今有约近48年的历史,C语言来源于B语言,B语言来源于BCPL语言。
  • 目前教学的标准俺知道的主要有ANSI C 和 C99,我们主要学习C99,当前最新的标准是C11。
  • 目前我知道的C语言的IDE主要有两个,简易版的为DEVC++,专业版的是VISUAL STUDIO 2019。
  • 目前知道的关于学习C语言的平台有:
  1. MOOC平台
  2. PTA刷题平台
  3. 洛谷
  4. CSDN - 专业开发者社区
    特别的,C语言对格式的要求非常非常严格!一定要养成好良好的编程习惯,切忌使用中文输入法!

C博客作业00--我的第一篇博客_第1张图片

4.关于对网络工程专业的学习内容的期许。

4.1. 专业角度:

我本身是一个机友,我喜欢研究手机参数,也喜欢看不同up主关于新手机的主观体验。回想到小米10周年发布会上关于第一次发出MIUI第一版本系统的那段热血历史,再看到现在MIUI12系统的成熟和慢慢走向人性化,拿着自己手里的苹果手机体验时的那种顺畅感,看到华为手机中即将推出的鸿蒙系统对于物联网方向的努力,在这些之中我都能看到计算机系统的研究、设计、开发它们的散发出来的独特的魅力,这格外让人期待,想着把自己使用手机过程中的主观体验自己可以通过计算机技术的力量让它变成现实,这怎么想都是一件震撼人心的事。所以我很期待学习和系统研究,程序开发这一方面有关的知识。

4.2. 能力思维角度:

学习网络工程这个专业,学习计算机编程这件事,我想首先是去学习一种尊重和学习的态度,一种向更大的信息源学习我们还未了解的知识的虚心,以及一种对他人成果尊重的诚心。因为开源是计算机程序员十分重要的素养,历史告诉我们,闭门造车不能取得进步,开放沟通交流才行,学习计算机的这一种思维,不仅仅适用于计算机学习本身,它同样适用于修身养性! 其次我觉得计算机学习的另外还是一种理性谨慎的逻辑思维,这点尤其重要,在开源的基础上,无论是驼峰变量命名法还是匈牙利命名法,其实都在强调一点那就是代码的可读性,而由此观之,逻辑思维越清晰,就越容易被人理解,这样的代码对编程界的意义也会更大。当然我想这样训练出来的思维对生活中做其他事情的效率同样也会有不同程度的提高,因为编程本身就是去解决问题,生活中,企业中,处处需要解决问题的能力,甚至推崇解决问题的能力,把逻辑思维贯彻到编程中,我们能得到好的代码,而把逻辑思维贯彻到生活做事中,我们能得到更高效的生活,这也是我对这个专业期待的。而最后,正如我前面提到我们正处于一个网络环境进步加速的时代,所以我更期待的是网络的未来,未来需要畅想,未来需要创新,未来需要大胆地去实践,我期待网工中所有和创新实践有关的内容。

5.我的大学学习生活时间的安排。

 时间范围大体上先定为大一:
  • 整体上,按照课表的时间来分配。我主要会把时间化在三大块地方,第一顺位是课程的学习,其中按照考试或者相关重要事项顺序进行调整安排。第二顺位是社交和社团活动。在不与第一顺位时间冲突的情况下,优先把时间安排给重要的社团活动和有意义的社交。第三顺位的事情是自己的娱乐爱好,健身运动,已经非专业信息的泛读泛学。第三顺位的时间触发要求是已经基本完成第一顺位的任务和第二顺位暂时没有重要任务的情况下选择每天不超过2小时的总体时间作为娱乐时间。(以上为大体安排,不包括特殊时间段如期末考,假期等有紧急重要事情的安排)
  • 关于比较正常的日常学习时间的安排:该上课时间的话就好好去上课。没课的时间,会打算在早晨和下午的时间分别学习计算机编程或者其他相关专业课程以及数学等自然科学。在下午的时分大概17点后的时间,我会想去坚持健身和锻炼或者长跑。在晚上如果有晚自习就好好自习。晚自习的时间会首先安排一小段时间进行阅读,然后进行英语的学习。大概花费1.5小时的时间。之后开始学习专业课和自然科学的课程。晚自习回宿舍就是收衣服,洗澡,吹头发,洗衣服。然后继续整理学习资料约1个小时。剩下的时间进行泛学或者社交聊天或者逛逛B站看看书那些自己感兴趣的内容。尽可能24点以前睡觉。早上起床的时间是6点10分左右。
  • 关于比较正常的周末时间安排:周末会适当增长睡眠时间,但最晚不超过8点。周末有安排早起的话,会考虑晨跑健身。吃完饭后去图书馆或者机房学习c语言,下午时间目前打算学习英语,先考好英语4级。晚上时间目前可能会选择学习C语言(优先),或者学习PS(为次),再或者看书泛学或娱乐社交(最次)。 另外周末时间在社团活动高发期一定程度上会向重要社团活动倾斜!!

6.我目前学习的C语言相关课程的内容。

6.0 已安装vs2019。

6.1 语法类型:

6.1.1 输入和输出:

printf(" ");
printf("%d",changeableValue);  //%d是存放整形数据的地方。
printf("%f",changeableValue);  //%f是存放浮点数数据的地方。
scanf(" ");
scanf("%d",&changeableValue);  //%d是存放整形数据的地方。
scanf("%lf",&changeableValue);  //%lf是存放浮点数数据的地方。
  1. 双引号内的内容的数据类型是 字符串 。
  2. printf双引号内可以进行计算。
  3. 要在printf中输出一个%,需要用 %% ,也就是说要两个 %% 才能在终端输出一个 %。

6.1.2 分支结构:

if语句的结构:

if (判断条件)
{    内容;
}   //这是基础的if语句结构

1.嵌套的if-else

1.C博客作业00--我的第一篇博客_第2张图片
这说明,即使没有大括号,对于两个相连的if,第二个if会被默认为第一个if的相关执行内容。
2.在没加大括号的情况下,Else总是与最近的那个if匹配,且并不会因为缩进格式而受影响,缩进格式只是方便人的阅读!
3.一个好的编程习惯:不管是几条语句,if 和else后面都最好跟上“{}”。

2.级联的if else-if

1.如果else的内容内含有if,可以直接写成else if(…){…}。

2.C博客作业00--我的第一篇博客_第3张图片
这是级联的格式。

3.C博客作业00--我的第一篇博客_第4张图片
更推荐左边的方式。

3.if的常见错误

1.C博客作业00--我的第一篇博客_第5张图片

2.关于第三点的补充,那就是if判定成立与否的条件是“()”内的结果是0还是非0,前者不成立,后者成立。
3.得养成一个好习惯,那就是要学会尊重“warning”!
4.关于代码风格:在if和else后面必须加上大括号来形成语句块,另外大括号内的语句要缩进一个“Tab”的距离。
5.体验一下三种风格:C博客作业00--我的第一篇博客_第6张图片

第三种风格有一种比较舒适的后期编辑氛围,可以比较方便删除其中的某一个级联。所以我要求自己尽可能用这种风格来书写代码!
6.if语句的判定条件只能是一个表达式,想要多个的话那就使用逻辑预算符。

4.多路分支(switch-case)

C博客作业00--我的第一篇博客_第7张图片 C博客作业00--我的第一篇博客_第8张图片

2.其中,控制表达式(可以是一个变量,也可以是一个变量的表达式)的数据类型只能是int否则无效!
3.其次,常量既可以是 常数 也可以是 结果为常数的表达式。
4.还可以是原先已经定义好的const常量不过这里有一点要注意!!!这一点只针对C99 不针对ANCI C
5.Switch语句就像是在开一堆上了锁的排着顺序的箱子,你控制表达式的值就是你第一把拿到的钥匙,你得走到你拿到的钥匙对应顺序的那个箱子的地方(也就是对应的case)去开箱,如果能在箱子里面开到游戏结束也就是break语句,那就完成了这个游戏跳出了整个switch语句,如果没有开出break语句,就会按照顺序继续开下去(这时开锁的钥匙会自动出现)(正如图片中case 1:中没有内容没有break,那就会顺延到case 2:),直到其中有一个开出了break语句或者把所有箱子开完了才算结束了这个switch语句。
6.小细节,case后要空格接常量,以及常量后面要有 冒号:
7.case并非分割线,case只是一个顺序代表,反而真正有划分意义的是break。
8.如果进行数据转换的话,switch-case可以做一些好像级联才能做的事情。(这是又要提到**/%对于数据的转换功能了!)
9.小细节记得最后要加上default:(?Default后面接break和不接break有什么差别吗?)
10.请记住读一段代码的过程:输入—计算—和输出。对switch句型不要只想到控制表达式和case的对应就完事了,读一段程序一点要读到结束信号的总结采取考虑输出。Switch语句的终结一定要特别注意
break**!!!!
11.switch-case如果表达式中采用逻辑预算符,再加上switch-case语句的嵌套的话,是可以达到想if-else if语句的多重嵌套效果的,并且可创造型更高。
12.C博客作业00--我的第一篇博客_第9张图片

  • 一个小案例:
    pta刷题中计程车计价问题的思考 与拓展延申;
    来源于 网站链接 这个回答。
    C博客作业00--我的第一篇博客_第10张图片
    解决四舍五入的问题。
    C博客作业00--我的第一篇博客_第11张图片
    可以用 && 来增加if的判定条件?

原来计程车计价问题中的不足5分钟不计费的意思是只要算整的几个5分钟,不记零头的费用!
以及在另一个网站链接解法中,它将按公里记的价和等待时间所记的价给分开计算,然后再在最后结合起来,这也是一个很清晰的解法。更强大的一点是,这种解法解放了多个变量条件下,需要对if语句进行层层嵌套的麻烦局面,而仅仅只是多加了一个变量去做计算就解决了这种问题,而且使答案更清晰。
也就是说对于多变量条件影响同一变量的值的问题的时候,比起用if语句将多个变量条件逐一分类嵌套,不如将那个同一变量分成多个分变量逐一去对应每一个不相互影响的变量条件,最后再将分变量合成总变量进行输出!

6.1.3 循环结构:

while (条件)
{  
      循环体;
}

1.初识循环语句

1.while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。
do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。
2.循环体内要有改变条件的机会否则循环会变成死循环!!
3.While语句的判断是在执行循环体之前,所以存在一次循环也不执行的可能。
4.只有条件成立,循环才能继续!!!!
5.有时候可以在循环体里面加入输出(printf),这样会方便我们直接看到变量值的变化。
6.一些用来做标记的printf,在提交到pta上的时候一定要记得加上// 或者/**/ 将其无效化!
7.对于循环语句的计数变量,最好习惯上给初始化。
8.Do-while语句

!与while不同的是,do-while语句的结尾的while需要加上;
9.C博客作业00--我的第一篇博客_第12张图片

while语句的写法!

C博客作业00--我的第一篇博客_第13张图片
for语句的写法!

C博客作业00--我的第一篇博客_第14张图片

小细节,for循环的()内是用;隔开的而不是, 其次三位位置分别表达的是1.初始动作2.循环继续的条件3.循环执行的动作。
C博客作业00--我的第一篇博客_第15张图片

而且即使是在可识别C99的编译器中也必须要特殊引入才能使用。
10.C博客作业00--我的第一篇博客_第16张图片 C博客作业00--我的第一篇博客_第17张图片

11.对于循环体内的n++(n–)和printf,先放哪一个后放哪一个,循序不同,循环的次数,和n最后的值并不会改变,但是输出的值会改变!!!!

2.关于循环语句的深入

1.计算机采用区间的形式来判断一个数的位数。
2.对于 大于 的判断,从高处往下走可以不用设置上限,会比较方便,而对于 小于 的判断,从低处往上走反而更有优势。
3.要学会使用 /= *= 这类复合运算符来提高运算效率!
4.求和的情况下,变量的初始值要是0,而求积的情况下,变量的初始值得是1。
5.C博客作业00--我的第一篇博客_第18张图片
同样是while语句,但是循环体内部语句放置的顺序不一样,变量需要初始化的值也不一样,才能得到相同的结果。
(题目是1到100的累加。)
!先看上面的那个程序,sum的初始化为 1 ,于是就需要先执行n++ 使得n=2,这样下去,下一步才会执行sum = 1+2 而且循环判定条件里面不该有等号,因为99的时候是条件成立的,会先进行n++,在进行sum += n;这时候加的最后一个数是100就刚刚好。
!在看下面一个程序就不一样了,他是先执行累加,在执行n++,所以当累加到99时,n还是99,累加结束后执行n++ 才会变成100,而此时累加还差最后一个100,所以循环条件需要加上等号。

下一个程序可以等价于for类型的写法!

for (n = 1; n <= 100; n++)
{
Sum += n;                    
}

总之,对于循环题目,一定要在纸上先尝试运算一下! C博客作业00--我的第一篇博客_第19张图片

6.关于三种循环的选择。 C博客作业00--我的第一篇博客_第20张图片

for对于有固定次数的程序的例子有,比如说算阶乘,算累加等等。
7.做循环运算的时候对于一些在后面可能会用到的初始值,我们可以先再设置一个变量去保存它,以备后用。
8.如果要模拟一个很大次数的循环,可以先模拟较少次数的循环然后做出推断!
9.尽量让单一出口成为一种思维习惯,当然不要被限制,如果某些情况下,单一出口会使程序繁琐的话,那就不用!
10.do-while结构中while()内写的依旧是循环的条件,不要直接读成循环结束的条件了!

3.循环的衍生知识

1.rand()这是产生一个随机数的函数,每次召唤rand()就能得到一个随机的整数。
2.C博客作业00--我的第一篇博客_第21张图片
获得随机数的配套程序:

#include
#include
srand (time(0));
Int a = rand(); 

3.

4.关于整数的分解:C博客作业00--我的第一篇博客_第22张图片

4.循环控制

1.循环嵌套要求里面的循环循环完才算是外面的循环循环一次,第二次外头的循环还是会经过里循环这堵墙,不过如果判定条件不满足的话,那也会直接跳过,所以盲猜循环嵌套里循环要有能改变外部循环条件的因数,外部循环,在里循环之前要有能改变里循环循环条件的语句。
2.有时候可以另设一个变量来作为开关变量来作为指向不同结果的if语句的条件。
3.C博客作业00--我的第一篇博客_第23张图片
用break可以用于跳出循环;而continue可以跳过循环这一轮剩下的语句进入下一轮。
4.break和continue都只针对他们所在的那一层循环,面对多层循环的时候,一个break并不能完全跳出所有的循环。
5.C博客作业00--我的第一篇博客_第24张图片
用于跳出多重循环。
6.C博客作业00--我的第一篇博客_第25张图片
另一种更好的方式,便是使用 ‘goto’语句就像一个空间传送门,可以到达你想去的地方。
7.处理加减交错的问题,除了利用(-1)的奇偶次方的结果不同之外,还可以另设一个变量,对其进行循环的取负运算,这种方法好像更简洁。更简单一点是取原有的变量比如分子等,这些都行。
8.对一个整数进行正序的拆分的一个办法是,先将这个整数逆序然后在将逆序后的整数进行逆序拆分。(只针对于末尾没有零的数字。)

6.1.4 逻辑类型:

1.

2.加入#include后就可以用bool来定义一个bool类型的变量,可以将它们定义为truefalse,不过,值得一提的是,即使是bool类型的变量,他们的结果依然是一些整数而不会输出为’true’或’false’,并且即使给他们赋值为整数也依旧可以通过编译!
3.C博客作业00--我的第一篇博客_第26张图片
示范程序如图所示。
4.

if语句的其他拓展, && 在if语句中是且的意思, ||在if语句中是或的意思。
其实 &&和||是逻辑类型中的 且 和 或的意思。
由此我们引入逻辑运算的三种运算:
! | && | || |
非 | 且 | 或 |
5.逻辑运算是对逻辑量进行运算,结果只有0或1,逻辑量是逻辑运算和关系运算的结果。
6.
小写字母同理。
7.C博客作业00--我的第一篇博客_第27张图片

8.C博客作业00--我的第一篇博客_第28张图片

不要把赋值包括复合赋值组合进表达式!
9.条件运算符:C博客作业00--我的第一篇博客_第29张图片
嵌套的条件表达式很复杂且可读性很差!(除非。。。。)
10.逗号运算:逗号表达式的结果是逗号右边的式子的值,且逗号表达式一般只在for当中使用。
Example:
(虽然说了那么多,但可以简单地认为,逗号的用处还是逗号。毕竟如果不进行赋值的话,那逗号运算的结果不重要,重要的是,它的优先级比赋值还低,可以用来隔开两个赋值的表达式罢了。)

6.1.5 函数:

1.函数的定义与使用

1.函数是一块代码,接受零个或多个参数,做一件事情,并返回零个或一个值。
C博客作业00--我的第一篇博客_第30张图片

void代表返回类型为不需要返回。
2.()在函数中表示调用的意思,也就是说即使没有参数,只要我们需要调用一个函数的话,那就一定要有();如果有参数的话,则需要按照正确的数量、顺序和格式来书写。
3.函数的每次调用都会进行初始化,而且函数每一次执行完全后就会返回到调用它的地方。
4.return表示了一个函数的结束,且如果return后面有值的话,那么return会返回到那一个值去。当然存在不需要返回的情况,也存在返回后面没有值的情况。
5.在一个函数中可以有多个return,但是我们强调单一出口,所以最好不要。return的作用其实是将一个值返回给调用它的函数,将这个值作为那个表达式的结果。

2.函数的参数和变量

1.C博客作业00--我的第一篇博客_第31张图片
不一定要把整个函数的定义写在前头,可以先把函数头写在前面当作声明,然后再在末尾写定义。
2.**从图中会发现,图中的数据会发生 自动类型转换,因为我们对函数变量的定义是浮点数。 **
3.C博客作业00--我的第一篇博客_第32张图片

4.C博客作业00--我的第一篇博客_第33张图片
这样来说,自定义函数中的参数和main函数中的参数实际上是独立分开的,在调用函数的过程中,实际传递给自定义函数的是 值 而不是那个 参数 (或者说变量,变量也不过就是一个用来容纳值的容器,只不过在调用函数的时候像一个传送门一样,它是把值传送过去,而不是自己本身)本身,当然值在我这个传送门的时候会显示这个传送门有值,一但传送走了,那我也就没有值了。
5.同时传送门理论也可以更好得让我们理解,为什么定义或声明函数的时候,变量名不重要甚至可以不写,但数据类型却必须写。
6.C博客作业00--我的第一篇博客_第34张图片

7.C博客作业00--我的第一篇博客_第35张图片
如果有另加括号的话,那会先执行逗号运算,如果没有,那就是普通的逗号。 注:逗号运算符的结果是逗号右边的值。
8.C语言函数不允许在函数里面嵌套定义函数但是允许在函数内写另一个函数的声明,只不过,我们不推荐这样写。
9.C博客作业00--我的第一篇博客_第36张图片
main函数的小了解。其中关于return 0;正因为是0所以对main函数的返回类型是 int ,其中返回值是0给操作系统的答复是执行正常,也可以是其他值但是不正常。
10.当局部变量和全局变量同名时,局部变量的调用权优先!

6.2其他定义类知识:

6.2.1 变量和常量的定义:

  • C博客作业00--我的第一篇博客_第37张图片
    变量的定义为了增加代码的可读性,建议使用驼峰命名法。
  • 常量的定义用:
    Const int COMMONVALUE;
    常量的名称往往用大写。

6.2.2 浮点数的相关要点。

%n.mf其中m表示浮点数保留的小数位,n表示浮点数的字符长度。
特别地,%.0f具有自动的四舍五入的功能。
C博客作业00--我的第一篇博客_第38张图片

6.2.3 运算符和算子:

C博客作业00--我的第一篇博客_第39张图片
预算符的优先级:
C博客作业00--我的第一篇博客_第40张图片

6.2.4 关于复合赋值:

C博客作业00--我的第一篇博客_第41张图片

6.2.5 关于注释:

  • 关于C语言中的注释:
    整段注释用 /* */ 单行注释 //

6.3其他细节点:

  • C博客作业00--我的第一篇博客_第42张图片
  • int main()后面是没有 ; 的!
  • scanf 一定要记得不要漏了 & 。
  • a++和++a的区别:
    C博客作业00--我的第一篇博客_第43张图片
    a++的值还是a原来的值,但是附加了一个效果是,在这条语句之后a的值增加了1,而++a的值是a+1的值。
  • 在做交换的编程问题时,我们往往要引入另外的变量作为中间容器。
  • C博客作业00--我的第一篇博客_第44张图片
  • 关系运算符的运算结果是0或1,而对于if语句,若条件结果为0则条件不成立,如果为其他则成立。
  • 一定要注意,关系运算符中的等号是 == 。
  • scanf输入的数值默认为十进制的数!
  • ** fact() 函数用来计算阶乘;unsigned 用来使变量无符号化,简单来说就是去掉负数内容用来节省空间。**

你可能感兴趣的:(C/C++,c语言)