C语言程序设计快速入门.doc
《C语言程序设计快速入门.doc》由会员分享,可在线阅读,更多相关《C语言程序设计快速入门.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1部分 语 言 篇第1章 程序设计入门阅读资料摘录自网络以及专业书籍Main函数相关:每个 C+ 程序都包含一个或多个函数,而且必须有一个命名为 main。函数由执行函数功能的语句序列组成。操作系统通过调用 main 函数来执行程序,main 函数则执行组成自己的语句并返回一个值给操作系统。 下面是一个简单的 main 函数,它不执行任何功能,只是返回一个值: int main() return 0; 操作系统通过 main 函数返回的值来确定程序是否成功执行完毕。返回 0 值表明程序程序成功执行完毕。 main 函数在很多方面都比较特别,其中最重要的是每个 C+ 程序必须含有 main 函
2、数,且 main 函数是(唯一)被操作系统显式调用的函数。 定义 main 函数和定义其他函数一样。定义函数必须指定 4 个元素:返回类型、函数名、圆括号内的形参表(可能为空)和函数体。main 函数的形参个数是有限的。 本例中定义的 main 函数形参表为空。 第 7.2.6 节将介绍 main 函数中可以定义的其他形参。 main 函数的返回值必须是 int 型, 该类型表示整数。 int 类型是内置类型,即该类型是由 C+ 语言定义的。 函数体函数定义的最后部分,是以花括号开始并以花括号结束的语句块: return 0; 例中唯一的语句就是 return,该语句终止函数。 注意 retu
3、rn 语句后面的分号。 在 C+ 中多数语句以分号作为结束标记。分号很容被忽略,而漏写分号将会导致莫名其妙的编译错误信息。 当 return 带上一个值(如 0)时,这个值就是函数的返回值。返回值类型必须和函数的返回类型相同, 或者可以转换成函数的返回类型。 对于 main 函数,返回类型必须是 int 型,0 是 int 型的。 在大多数系统中,main 函数的返回值是一个状态指示器。返回值 0 往往表示 main 函数成功执行完毕。任何其他非零的返回值都有操作系统定义的含义。通常非零返回值表明有错误出现。每一种操作系统都有自己的方式告诉用户 main 函数返回什么内容。 已初始化变量和未初
4、始化变量 在 C+ 中,初始化是一个非常重要的概念。 已初始化变量是指变量在定义时就给定一个值。 未初始化变量则未给定初始值: int val1 = 0; / initialized int val2; / uninitialized 给变量一个初始值几乎总是正确的,但不要求必须这样做。当我们确定变量在第一次使用时会赋一个新值,那就不需要创建初始值。 定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该初始化变量。 EOF 文件终止符竞赛中常采用 while(scanf( . ) != EOF) . 来实现多组读入。这是因为竞赛
5、经常采用重定向的方式,把输入数据文件输入到程序中。而EOF表示文件结束。(End Of File)从键盘输入文件结束符 操作系统使用不同的值作为文件结束符。Windows 系统下我们通过键入controlz同时键入“ctrl”键和“z”键,来输入文件结束符。nix 系统中,包括 Mac OSX 机器,通常用 controld。 C/C+编码规范一个好的程序,不仅要算法正确,效率高,而且还应该可读性好。所谓程序的可读性,就是程序是否能让人容易读懂。在开发实践中,许多情况下可读性与代码效率同等重要。软件开发是团队工作,接手别人编码的程序并在此基础上进行改进是必不可少的,因此可读性在工程实践中非常重
6、要。即使是自己编写的程序,如果可读性不好,过一段时间需要改进时自己再看,也常会看不懂。如何提高程序的可读性呢?在标识符、书写格式、注释三个方面加以培养,再养成一些好的习惯,就能够有效增强程序的可读性。1.5.1 标识符命名注意事项应该对变量、常量以及函数等标识进行适当的命名。好的命名方法使标识符易于记忆且使程序可读性大大提高。对标识符命名的基本要求是,看到标识符就能想起或猜出它是做什么用的。如果名字能体现变量的类型或作用域等性质,当然更好。标识符命名应注意以下几点:(1)标识符号应能提供足够信息以说明其用途。 一定不要怕麻烦而懒得起足够长的变量名,少按几个键省下的时间,和日后自己读程序或别人读
7、你的程序揣摩该变量的作用所花的时间相比,实在微不足道。在没有国标合作的项目中编写程序,如果英语实在不好,可以使用拼音,但不要使用拼音缩写。(2)为全局变理取长的、描述信息多的名字,为局部变量限稍短的名字。(3)名字太长时可以适当采用单词的缩写。但要注意缩写方式一致,要缩写就全部缩写。比如单词Number,如果在某个变量里缩写成了:int nDoorNum;那么最好包含Number单词的变量都缩写成Num。(4)注意使用单词的复数形式。如int nTotalStudents,nStudents;nStudents容易让人理解成代表学生数目,而nStudent含义就不十分明显。(5)对于返回值为真
8、或假的函数,加“IS”前缀如:int IsCanceled();int isalpha(); /C语言标准库函数BOOL IsButtonPushed();1.5.2 程序的书写格式书写格式好的程序,看起来才有好心情,谁也不愿意看下面这样的程序:void main()int t, x, y;cint;while (t0)min=60000;cinNxymax; plat0.x1=x;plat0.x2=x; plat0.h=y;for (int i=1;iplati.x1plati.x2plati.h;plati.t1=-1;plati.t2=-1;if (plati.hy) i-; N-; p
9、lat0.t1=0;plat0.t2=0;qsort(void*)(&plat1), N, sizeof(plat0), compare);tryway(0);t-;coutmin= 4)printf(“%d”, nAge);for(i = 0; i 100; i+);1.5.4 一些好的编程习惯(1)尽量不要用立即数,而用#define 或 const 定义成常量,以便以后修改。例如:#define MAX_STUDENTS 20struct SStudent aStudents MAX_STUDENTS;比struct SStudent aStudents 20;好。再例如:#define
10、 TOTAL_ELEMENTS 100for(i = 0; i TOTAL_ELEMENTS; i+) (3)稍复杂的表达式中要积极使用括号,以免优先级理解上的混乱以及二义性。n = k+ + j; /不好n = (k+) + j; /好一点(4)不很容易理解的表达式应分几行写:n = (k+) + j;应该写成:n = k + j;k+;(5)嵌套的if else 语句要多使用 if(Condition1()if(condition2()DoSomething();elseNoCondition2();不够好,应该:if(Condition1() if(condition2()DoSomet
11、hing();elseNoCondition2();(6)单个函数的程序行数最好不要超过100 行(两个屏幕高)。(7)尽量使用标准库函数。(8)不要随意定义全局变量,尽量使用局部变量。(9)保持注释与代码完全一致,改了代码别忘改注释。(10)循环、分支层次最好不要超过5层。(11)注释可以与语句在同一行,也可以在上行。(12)一目了然的语句不加注释。1.6 小结与习题通过前几个小节的学习,对顺序结构程序设计和分支程序设计的核心概念和方法,然而对这些进行知识进行总结,并且完成适当的练习是很有必要的。1.6.1 数据类型实验实验A1:表达式11111*11111的值是多少?把5个1改为6个1呢?
12、9个1呢?解答:(1)计算表达式11111*11111的值#include int main()printf(11111*11111=%ld,11111*11111);return 0;程序的运行结果为11111*11111=123454321。(2)计算表达式111111*111111的值只须将(1)中的printf语句改为printf(111111*111111=%ld,111111*111111);,程序的运行结果为111111*111111=-539247567。正确的结果应为12345654321,由于这个数比较大,所以产生了溢出。(3)计算表达式111111111*11111111
13、1的值只须将(1)中的printf改为printf(111111111*111111111=%ld ,111111111*111111111);,程序的运行结果为111111111*111111111=1653732529。正确的结果应为12345678987654321,由于这个数比较大,所以产生了溢出。实验A2:把实验A1中的所有数换成浮点数,结果如何?解答:(1)计算表达式11111.0*11111.0的值#include int main()printf(11111.0*11111.0=%lf,11111.0*11111.0);return 0;程序的运行结果为11111*11111=
14、123454321.000000。(2)计算表达式111111.0*111111.0的值只须将(1)中的printf语句改为printf(11111*11111=%lf,11111*11111);,程序的运行结果为111111.0*111111.0=12345654321.000000。(3)计算表达式111111111.0*111111111.0的值只须将(1)中的printf改为printf(111111111.0*111111111.0=%lf ,111111111.0*111111111.0);,程序的运行结果为111111111.0*111111111.0=1234567898765
15、4320.000000。实验A3:表达式sqrt(-10)的值是多少?尝试用种方法输出。在计算过程中系统会报错吗?解答:#include #include int main()printf(sqrt(-10)=%lf,sqrt(-10);return 0;程序的运行结果为sqrt(-10)=-1.#IND,没有报错,但结果异常。实验A4:表达式1.0/0.0、0.0/0.0的值是多少?尝试用种方法输出。在计算过程中系统会报错吗?解答:#include int main()printf(1.0/0.0=%lf 0.0/0.0=%lf,1.0/0.0,0.0/0.0);return 0;输出结果为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 快速 入门
限制150内