笔者简介:

本人是现在是在校的一枚研二的学生,最近同实验室的师兄找工作,感觉真心不容易,也让我感到很焦虑,想想现在的我,对编程语言掌握的并不好,糊里糊涂的,想想明年的我,感觉压力很大。所以,每天抽出点时间专门去学习一下编程语言,并记录一下学习笔记,给自己一个鞭策。

那么,选择哪一个编程语言呢? - -C语言,公司招聘基本上都要求掌握的语言当中必有C,系统的学习一下C还是非常有必要的。本科阶段学过C语言,不过学的很糊涂,现在重新系统的学习一遍,希望自己有一个不小的收获。

正文:

好了,开始我们今天的第一个笔记啦:

本笔记参考的书籍为: Stephen Prate著 C Primer Plus

C语言是一个编译性的语言。我们写的代码并保存为.c格式,这个称其为源码,然后经过编译器生成可执行文件,也就是.exe文件,如下面的代码:我们保存为Happy.c ,然后在在命令行下输入:

gcc Happy.c -o Happy

即可完成编译任务,生成可执行文件Happy.exe,注意:键入上述命令时,首先你电脑上要有C编译器,并且在源码的文件路径下。

来向祖国道一声“生日快乐吧!”:

/*这是一个祝福祖国生日快乐的简单C程序*/#include

int main(void) //这是主函数,无论这个函数在文件的哪个位置,程序从这里开始

{int age = 69;

printf("Happy birthday to my motherland at the age of %d.\n", age);return 0;

}

#include :该语句的作用相当于你在文件中该行所在的位置键入了文件stdio.h的完整内容。实际上,它是一种剪切和粘贴的操作,这样可以方便地在多个程序间共享公用的信息。那么,这个stdio.h文件里包含了什么东东呢?由于上述程序中使用了printf()函数,可是我们并没用去定义这个函数,那这个函数怎么就可以把"Happy Birthty Day To Chian"输出到控制台的呢?那是因为,你没有定义函数,但是你复制粘贴了stdio.h这个文件了呀,这个文件里有定义了printf()这个函数,在这个文件中它说明了函数名以及该函数如何使用,但是函数的实际代码并不在这个文件了,而是在一个预编译代码的库文件中。那什么是预编译呢?#include语句是C预处理指令的一个例子,通常,C编译器在编译前要对源代码做一些准备工作,这就称为预处理。在C世界中,人们称出现在文件顶部的信息集合为头(header),C实现通常都带有许多头文件。

int main(void): main(),这是一个函数名为main的函数,也是C程序执行的起始函数,int 指这个函数处理后要返给操作系统一个int值。void: 表明这个主函数并不接受任何参数。

{}: 表示所有的C函数都使用花括号来表示函数体的开始和结束,花括号还可以用来把函数中的语句聚集到一个单元或代码块中来。

int age = 69 : 生明并初始化变量age为69

;分号 -- 表明一个语句的结束

%d : int 类型变量的占位符

\n : 转义字符,表示光变换到下一行

return 0 表示,这个主函数结束,返回一个int类型的值 0

/* */ 注释,可以在/*和*/之间写多行注释

// 这是单行注释,在//之后的字符会被编译器忽略

age: 是int类型的变量名,给变量起名字尽量一眼就能看出其含义,方便阅读源代码。变量名的起名规则: 可供使用的字符有小写字母、大写字母、数字和下划线。第一个字符必须是字母或者下划线。

除了使用标准的printf()函数外,怎么把自己的函数加入到程序中呢?

#include

void question(void); //C 函数原型

void answer(void);void question(void)

{

printf("What's the date today?\n");

}int main(void)

{int age = 69;

printf("Happy birthday to my motherland at the age of %d.\n", age);

question();

answer();return 0;

}void answer(void)

{

printf("Today is October 1st National Day.\n");

}

answer()函数在上述程序中出现了3次。第一次是出现在原型中,通知编译器要用到的函数。第二次是在main()函数中以函数调用的形式出现的。最后,程序给出了函数的定义,既函数本身的源码。而在上述关于printf()函数的谈论,现在也可以进一步的解释,在文件stdio.h中,类似void answer(void);这样声明了函数的名字及参数,但函数本身的代码并不在stdio.h文件中,而在预编译代码库中。简单的理解,也就是stdio.h文件提供了printf()函数的接口。而,question()函数本身的代码却在main()函数的上面,这实际没有影响的,程序是从main()函数开始执行的,只要在main()函数之前有通知了编译器有question()这个函数了就行。

第二章编程练习习题及答案(已经编译通过)

/*

1. 编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。

输出应如下所示:

Anton Bruckner 第一个输出语句

Anton 第二个输出语句

Bruckner 第三个输出语句

Anton Bruckner 第四个输出语句

*/

#include

int main(void)

{

printf("Anton Bruckner\n");

printf("Anton\nBruckner\n");

printf("Anton");

printf("Bruckner");return 0;

}

/*

2. 编写一个程序输出您的姓名及地址

*/

#include

int main(void)

{

printf("My name is Double Lin.\n");

printf("Localtion: Heifei, Anhui.\n");return 0;

}

/*

3. 编写一个程序,把您的年龄转换成天数并显示二值的值。不用考虑平年或者闰年的问题,一年=356

*/

#include

int main(void)

{int age = 23; //声明年龄为23

printf("age: %d days: %d",age,age*356);return 0;

}

/*

4. 编写一个能够产生下面输出的程序:

For he's a jolly good fellow!

For he's a jolly good fellow!

For he's a jolly good fellow!

Which nobody can deny!

程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次; 另一个用于把最后一行输出一次

*/

#include

void function_1(void); //原型函数

void function_2(void);void function_1(void)

{

printf("For he's a jolly good fellow!\n");

}int main(void)

{

function_1();

function_1();

function_1();

function_2();return 0;

}void function_2(void)

{

printf("Which nobody can deny!");

}

/*

5. 编写一个程序,创建一个名为toes的整数变量。让程序把toes设置为10,。再让程序计算两个toes的和以及toes的平方。程序应该输出所有的3个值,并分别标识它们

*/

#include

int main(void)

{int toes = 10;

printf("toes: %d\nsum of toes: %d\n squared of toes: %d\n",toes,2*toes,toes*toes);return 0;

}

/*

6. 编写一个能够产生下列输出的程序:

Smile!Smile!Smile!

Smile!Smile!

Smile!

在程序中定义一个能显示字符串Smile!一次的函数,并在需要的时使用该函数

*/

#include

void function(void);void function(void)

{

printf("Smile!");

}int main(void)

{

function();

function();

function();

printf("\n");

function();

function();

printf("\n");

function();return 0;

}

/*

7. 编写一个程序,程序中要调用名为one_three()的函数。该函数要在一行中显示单词"one",再调用two()函数,然后再在另一行中显示单词"three". 函数two()应该能在一行中显示单词"two"

main()函数应该在调用one_three()函数之前显示短语"starting now";函数调用之后要显示"done!".这样,最后的输出结果应如下所示:

starting now:

one

two

three

done!

*/

#include

void one_three(void);void two(void);int main(void)

{

printf("starting now:\n");

one_three();

printf("done!\n");

}void one_three(void)

{

printf("one\n");

two();

printf("three\n");

}void two(void)

{

printf("two\n");

}

python祝福祖国代码_C语言-笔记一相关推荐

  1. python祝福祖国代码_“小程序 大梦想”之创意编程校园邀请赛------53信息技术学科周...

    原标题:"小程序 大梦想"之创意编程校园邀请赛------53信息技术学科周 如今"人工智能"."创意编程"这些新热词已经深入人们的学习和生 ...

  2. python祝福祖国代码_国际文交所:9月17日-10月15日《祝福祖国信卡》《澳门爱与祝愿套票》《北京精神封》3个提货转仓公告...

    尊敬的交易商: 根据2020(交)第455號公告,参与合作平臺<祝福祖国信卡>.<澳门爱与祝愿套票>.<北京精神封>的有效报名人数均已超过300人且报名市值大於50 ...

  3. python祝福祖国代码_国庆节踩空间留言代码_国庆节祝福正在加载中

    [fts=6][ffg,#OOOFFF,#FFFFFF]★.`[/ft][/ft][ftc=000000][/ft] [B][ftc=#f49bc1]▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂[ftc=#ff ...

  4. c语言float二进制输出代码_C语言学习笔记——学前知识概述

    将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢! 前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,希望我的这本笔记能够对大 ...

  5. python猜谜语小游戏代码_C语言谜语博士的难题代码及解析

    谜语博士遇到了两个难题,先看第一个难题. 谜语博士的难题(一) 问题描述 诚实族和说谎族是来自两个岛屿的不同民族,已知诚实族的人永远说真话,而说谎族的人永远说假话. 一天,谜语博士遇到3个人,知道他们 ...

  6. python计算长方体体积最简单代码_C语言编程简单的小程序,计算长方体体积!...

    计算长方体体积 有朋友会说长方体体积还不好算吗?长X宽X高.没错用计算器一下就可以出结果,编程反而麻烦些,但是我们说的是这种思维,如果复杂的重复运算的话写好程序就非常简单了. 简单运算下一个固定高度的 ...

  7. python求超级素数代码_C语言求超级素数

    展开全部 不考虑时间的需求,就用最简单的素数判断函数了#include #include #include bool isPrime(int n) { for(int i = 2; i <= s ...

  8. python文件定位函数_C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  9. c语言贪吃蛇最简单代码_C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!...

    点击上方"大鱼机器人",选择"置顶/星标公众号"福利干货,第一时间送达!指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机 ...

最新文章

  1. VINS紧耦合优化公式及代码解析
  2. SQL Server 2008存储过程的加密
  3. Android中链接到百度进行搜索
  4. 千万不要在深夜提交代码
  5. C++ 11 深度学习(三)范围for、new内存动态分配、nullptr
  6. Nowcoder deco的abs
  7. Netty-5-客户端的创建并且接受服务端的数据
  8. 如何控制局域网网速_科普 | 路由器网速突然变慢怎么办?
  9. 团队协助 开源项目_5分钟了解 Vtiger CRM-国际知名开源客户管理软件
  10. Angular之constructor和ngOnInit差异及适用场景
  11. 深入理解PSNR(峰值信噪比)(附matlab代码)
  12. 匈牙利算法解决指派问题
  13. 2020-04-09
  14. 华为al00的计算机在哪,(详细)华为畅享8 LDN-AL00的USB调试模式在哪里开启的流程...
  15. 什么是一体化管理体系
  16. 华为荣耀20青春版能升级鸿蒙吗,荣耀20 Pro系统要不要升级?
  17. 基于tornado实现web camera
  18. Wireshark和Fiddler
  19. x3d:了解x3dom
  20. JS逆向-国税增值税发票查询平台的漫漫过程

热门文章

  1. php属于复合型人才,【PHP】我国薪水上涨最快的行业
  2. python识别简单训练模型_Python-OpenCV —— 物体识别(TrainCascadeClassification)
  3. wangeditor 请求头_跨域上传 · wangEditor2使用手册 · 看云
  4. exls导入数据库 php_建站程序推荐:开源免费的PHP在线模拟考试系统PHPEMS可商用...
  5. Leetcode每日一题:147.insertion-sort-list(对链表进行插入排序)
  6. LightGBM源码如何计算增益
  7. Python strip()与split()方法
  8. Java基础(六)——容器
  9. 网络基础知识(面试基础)
  10. java 对数取反_如何理解「对数」?