教你一天精通c语言.docx

上传人:b****8 文档编号:30652144 上传时间:2023-08-18 格式:DOCX 页数:121 大小:73.09KB
下载 相关 举报
教你一天精通c语言.docx_第1页
第1页 / 共121页
教你一天精通c语言.docx_第2页
第2页 / 共121页
教你一天精通c语言.docx_第3页
第3页 / 共121页
教你一天精通c语言.docx_第4页
第4页 / 共121页
教你一天精通c语言.docx_第5页
第5页 / 共121页
点击查看更多>>
下载资源
资源描述

教你一天精通c语言.docx

《教你一天精通c语言.docx》由会员分享,可在线阅读,更多相关《教你一天精通c语言.docx(121页珍藏版)》请在冰豆网上搜索。

教你一天精通c语言.docx

教你一天精通c语言

计算器程序讲义

内容page

■第一章C语言简介与TurboC的使用2

■第二章C程序的结构4

■第三章常数与变数10

■第四章基本输出入函式13

■第五章流程图与抉择指令21

■第六章循环与自动重复32

■第七章数组与指针40

■第八章函数与呼叫46

■第九章档案存取55

■第一章C语言简介与TurboC的使用

◎C语言的优点:

○效率高:

C语言的编译器会产生最小的程序代码。

○可移植性/移植性高:

经过些许的修改,可以在不同的平台使用。

○功能强而有弹性。

○需要记忆的东西很少,易于写作。

◎TurboC的安装:

已安装在学校主机。

TurboC的环境设定:

TurboC安装的目录必须设定在PATH的系统变量。

如:

PATH=C:

\TC;C:

\DOS;......如此TC才能正常工作。

◎TurboC的使用

只要设定好PATH变量,在DOS提示号输入TC,就可以执行TurboC的

整合环境了。

TC将编辑(Edit)、编译(Compile)、连结(Link)、除错(Debug)、

档案管理(File)、...等等的功能整合在一起,所以我们称之为整合环境。

最好先用CD的指令,变更工作目录到你要写C的目录,再执行TC,这样

所产生的档案,就会里这个目录里面,便于备份与管理。

◎移动光标

方向键←↑↓→可以用来移动光标。

◎删除文字

将光标移到你要删除的文字上,再按下Del键即可。

将光标移到要删除文字的右边,再按下BS退位键也可以。

◎加载文字文件(C语言原始码文件)

按下功能键F3或按F10选File→Load就会出现一个询问窗口要求输入文件名:

┌─────LoadFileName─────┐

│*.C│

└──────────────────┘

其中的文件名可以使用万用字符*或?

,或直接指定你要的檔名。

若是使用万用字符,TC会再秀出一个窗口让你选择所要的档案,

你可以用方向键移动反白光棒,按Enter键则是选择反白的档案。

◎储存编辑的文字文件

按下功能键F2或按F10选File→Save就会储存目前编辑档案。

若你想另外取一个档名,并加以存盘,就必须按F10选File→Writeto

就会出现一个询问窗口要求输入文件名:

┌──────NewName──────┐

│_│

└──────────────────┘

输入新的档名,按下Enter即可。

◎编译并执行目前的所编辑的程序

TurboC是一种编译语言系统,你所写的程序,经过TC的编译(pass1)及

连结(pass2)后,产生可执行档(.exe),才能在PC上执行。

按下Ctrl+F9或按F10选Run→Run,TC会编译目前所编辑的程序,

如果没有错误发生,TC会立即执行所编辑的程序。

TC在执行完程序后,会立刻切换回到TC的整合环境,如果你还想看刚才程序

执行的结果,可以按下Alt+F5或按F10选Run→Userscreen,就会

切换到执行画面,再按下任何一键,就会回到TC的整合环境。

◎结束TurboC

按下Alt+X或按F10选File→Quit便可结束TurboC。

若你还有已编修尚未储存的档案,TC会问你要不要存。

╔══════Verify══════╗

║NONAME.Cnotsaved.Save?

(Y/N)║

╚════════════════╝

要存就按Y,不想存就按N。

■第二章C程序的结构

◎C程序的结构:

┌────────────┐

│hello.c│←─范例文件名

├────────────┤

1│#include│←─范例原始码

2│main()│

3│{│

4│printf("Hello!

");│

5│}│

├────────────┤

│Hello!

│←─范例执行结果

└────────────┘

第一列:

#include

是用来定义一些函式的原型(prototype)、数据结构(struct)或是常数(constant)。

C在使用变量之前,该变量都要先行宣告(declear)才可使用,而使用函式也是一样,必须先宣告它的原型才可以。

宣告函式的原型是为了让C能在编辑时作数据的型别检查,以减少错误的发生。

内建的函式原型定义都放在INCLUDE\*.H中,用#include就会将INCLUDE\stdio.h这个档引含。

stdio.h由档名可知道是跟标准输出入(standardI/O)有关,档内定义了档案输出入、屏幕输出、键盘输入等相关函式的原型、数据结构及常数。

本例中的printf()就属于标准输出的函式。

引含.h档并不会让你的执行档变大或是变慢,而且还能让编辑器作正确的型别检查,所以要养成写#include的习惯。

☆虽然在某些状况下,不加#include<>所产生的执行档,一样可以正常的执行。

第二列:

main()

main()就是主程序。

程序在执行时,就是由这个函式开始执行。

在C语言中,内定的型别是int,所以原来的main()相当于是intmain(int)

★在这里正确的写法应该是voidmain(void),因为在这个简单的程序中,没有回传值,也没有输入参数。

☆回传值,是指一个函式在执行后传回的数值。

☆输入参数,是指一个函式可由参数决定执行的结果,这个部分在第八章中有详细的说明。

第三列:

{

第五列:

}

在第三列及第五列之间,属于main()函式的程序代码。

{表示程序由此开始,}表示程序到此结束。

第四列:

printf("Hello!

");

是本程序要求系统做动作的指令,称之为「叙述」。

在C语言中,每一叙述都以分号(;)做为结束。

在这个程序中,利用缩排的方式,使程序的层次分明,增加可读性。

在C语言中,调位字符(如:

空白(space)、定位(tab)及换列字符)在编译时都会被忽略,所以可适时加入调位字符,使程序好看一点。

要注意的是,别把一个完整的个体拆开,如:

main、printf等,这些字本身是一个完整的个体,不可予以拆开。

而在各个个体之间,可以任意加入调位字符。

☆C语言中的英文字母是有分大小写的,printf()与PrintF()不同,内建的函式大多是小写的,你自己写的函式,则可以用大写来做区隔。

◎printf的功用

printf()的功用是在屏幕上输出数据。

在TC中,在编辑区内输入printf,再将光标移到printf这个字上,按下Ctrl+F1就会看到以下Help画面:

┌──────────Help───────────┐←这是TC的Help窗口

││

│printf:

formattedoutputtostdout│←printf是将格式化的

││数据输出到stdout

│intprintf(constchar*format,...);│←printf的语法

││

│Prototypeinstdio.h│←要用printf应该

││#include的檔

│Printformatsavariablenumberofarguments│←使用说明:

不同的格式

│accordingtotheformat,andsendstheoutput│须要不同的参数,这些

│tostdout.Returnsthenumberofbytesoutput.│数据会送到stdout。

│Intheeventoferror,itreturnsEOF.│回值是输出的byte数,

││若发生错误则传回EOF

│Seealsoecvtfprintfputc│←可参考相关指令:

│putsscanfvprintf│ecvt,fprintf,putc,

││puts,scanf,vprintf

└────────────────────────┘

在用TC的整合环境中,只要将光标移到想进一步了解的指令或内建的函式上,按下Ctrl+F1就可以叫出TC的Help说明窗口,得到该指令或函式的相关说明。

printf的语法:

intprintf(constchar*format,...);

其中constchar*format指的是一个格式化的字符串。

const是常数的意思,在此表示format这个字符串指针传入printf函式后,它的值不会被改变。

...指的是不定参数,参数的数目取决于format字符串的内容,这些参数,通常是一些你要秀出来的变量。

简单来说:

printf("输出格式(含控制字符串)",要印出的数据);

在C语言中是用双引号(")来引含字符串,也就是在双引号内的数据,是一个字符串。

本章只介绍%d这个控制字符串,其它的控制字符串在第四章会讲到。

%d表示以整数10进位的方式秀出数据。

在输出格式(含控制字符串)内有几个%d,在要印出的数据内就要有几个整数来对应。

┌────────────────────────────────┐

│arith.c│

├────────────────────────────────┤

1│#include

2│voidmain(void)│

3│{│

4│printf("%d+%d=%d\n",8,2,8+2);│

5│printf("%d-%d=%d\n",8,2,8-2);│

6│printf("%d*%d=%d\n",8,2,8*2);│

7│printf("%d/%d=%d\n",8,2,8/2);│

8│}│

├────────────────────────────────┤

│8+2=10│

│8-2=6│

│8*2=16│

│8/2=4│

└────────────────────────────────┘

我们以第四列的叙述作说明:

printf("%d+%d=%d\n",8,2,8+2);

↑↑↑│││

││└───│──│──┘

│└─────│──┘

└────────┘

在输出格式(含控制字符串)内有3个%d,所以在要印出的数据的部分有

8,2,及8+2三个整数对应,所以输出来的结果就是

8+2=10

在输出格式(含控制字符串)的最后有\n符号,这是一个控制字符,表示要

更换到下一列,其它的控制字符在第四章会提到。

若将本例中的\n都删除,那秀出的结果会像这样子:

8+2=108-2=68*2=168/2=4

◎C的四则运算

计算机语言用的四则运算符号几乎都是相同的:

四则运算符号意义范例结果

=========================================================

+加法4+26

-减法(或代表负号)4-22

*乘法4*28

/除法4/22

=========================================================

相关运算符号意义范例结果

=========================================================

++变数值加1i++或++ii值加1

--变数值减1i--或--ii值减1

%整数除法的余数4%20

=========================================================

在书中提到C语言没有提供次方的功能,指的是在某些计算机语言可以用**表示

次方,如:

2**3,表示2的3次方;有的用^表示,如:

2^8,表示

2的8次方。

在C语言,没有运算符号可以表示次方,但是C语言有提供次方

的函式:

pow(),pow(2,3)表示2的3次方。

一个式子如果有多个运算的话,C是以先乘除后加减的方法来运算,当然我们也

可以用括号()来改变这个法则,只要有括号,就优先运算。

另外,在C语言内

中括号[]及大括号{}是有其它的用途,所以在作数学运算时,只要用括号

,就只能用小括号(),小括号可以多层,C在运算时,是由最内层开始运算。

范例:

(1+2*(3+4))*5-6*7/2+8

=(1+2*(7))*5-6*7/2+8

=(15)*5-6*7/2+8

=75-42/2+8

=75-21+8

=62

◎批注(Comments)

通常老师会要求初学者在程序的每一列加上批注,这是为了让初学者知道自己在写些什么程序代码,了解为什么要这样写,而不只是照著书Keyin程序。

写批注有助于自己了解程序的内容,便于日后的修改。

但写批注对于某些程序设计师而言可说是一种噩梦,因为写批注所花的时间可能会与写程序的时间相去不远,认为写批注只是在浪费时间。

对一个相当好的程序设计师而言,也许写批注真的是浪费时间,因为好的程序代码本身就已经隐含了批注,这也是写程序相当高的境界。

对一般的程序设计师而言,写一些批注还是比较好的作法,特别是某些程序代码是你花了一段时间才想到的「特殊」方法,加上一些批注,说明一下这个「特殊」的方法,以后要修改才能快速进入状况,否则,你可能会佩服自己当时是如何想到的这个方法,又再花一段时间才知道自己在写些什么程序代码。

讲了这么多批注的正反面(正面居多)论调,在C语言中要如何写批注呢?

只要用/*和*/将你要的批注内容包起来就可以了。

C在编译时,会将/**/内的数据略去,就如同调位字符一样。

唯一的例外是:

当/**/在一组双引号"内时,它们就属于这组双引号所包含的字符串。

在C++语言中则可用//当批注.

┌────────────────────────────────┐

│comments.corcomments.cpp│

├────────────────────────────────┤

1│#include/*prototype:

printf()*/│

2│voidmain(void)//mainprogram│

3│{│

4│/*所有的程序代码都变成批注,所以这个程序目前是空的*/│

5│/*printf("%d+%d=%d\n",8,2,8+2);*/│

6│/*printf("%d-%d=%d\n",8,2,8-2);│

7│printf("%d*%d=%d\n",8,2,8*2);│

8│printf("%d/%d=%d\n",8,2,8/2);//division│

9│*/│

10│}//endofprogram│

├────────────────────────────────┤

└────────────────────────────────┘

◎巢状批注(NestedComments)

┌────────────────────────────────┐

│nestcom0.c│

├────────────────────────────────┤

1│#include/*prototype:

printf()*/│

2│voidmain(void)│

3│{│

4│/*这个程序必须把巢状批注的设定打开,才不会有错误*/│

5│/*│

6│printf("%d+%d=%d\n",8,2,8+2);│

7│/*printf("%d-%d=%d\n",8,2,8-2);*/│

8│printf("%d*%d=%d\n",8,2,8*2);│

9│printf("%d/%d=%d\n",8,2,8/2);│

10│*/│

11│}│

├────────────────────────────────┤

└────────────────────────────────┘

上面的例子,有四组批注/**/,其中第三组及第四组的批注之间有部分重迭。

想要Compile没有错误,必须第5列的/*与第10列的*/配,也就是

第5列到第10列都是批注;另外第7列的/*与第7列的*/配,也就是

第7列是批注。

这种批注方式,我们称之为巢状批注。

TurboC内定是不可使用巢状批注的,上面的例子会是第5列的/*与第7列

的*/配,结果在第10列的*/会变成是多余的,造成Compile错误。

打开巢状批注的方法:

按下F10→Options→Compiler→Source→NestedcommentsOff

将Off设为On就可以了。

◎巢状批注的使用时机

在前面的例子只是为了说明巢状批注,也许你会觉得这样的用法是自找麻烦,

但是以下的例子,你就会认为有巢状批注的功能还是比较好的。

在nestcom1.c中,每一列的printf();后面都加上了批注。

若要把这几列程序变成批注,不使用巢状批注,就会像nestcom2.c一样,

必须在每一列的printf();前后再加上/**/,若是使用巢状批注,

就像nestcom3.c一样,只要在这几列的前后加/**/就可以了。

┌────────────────────────────────┐

│nestcom1.c│

├────────────────────────────────┤

1│#include/*prototype:

printf()*/│

2│voidmain(void)│

3│{│

4│/*这个程序在每一个叙述后都加上了批注*/│

5││

6│printf("%d+%d=%d\n",8,2,8+2);/*8+2=10*/│

7│printf("%d-%d=%d\n",8,2,8-2);/*8-2=6*/│

8│printf("%d*%d=%d\n",8,2,8*2);/*8*2=16*/│

9│printf("%d/%d=%d\n",8,2,8/2);/*8/2=4*/│

10││

11│}│

├────────────────────────────────┤

└────────────────────────────────┘

┌────────────────────────────────┐

│nestcom2.c│

├────────────────────────────────┤

1│#include/*prototype:

printf()*/│

2│voidmain(void)│

3│{│

4│/*这个程序不用把巢状批注的设定打开,也不会有错误*/│

5││

6│/*printf("%d+%d=%d\n",8,2,8+2);*//*8+2=10*/│

7│/*printf("%d-%d=%d\n",8,2,8-2);*//*8-2=6*/│

8│/*printf("%d*%d=%d\n",8,2,8*2);*//*8*2=16*/│

9│/*printf("%d/%d=%d\n",8,2,8/2);*//*8/2=4*/│

10││

11│}│

├────────────────────────────────┤

└────────────────────────────────┘

┌────────────────────────────────┐

│nestcom3.c│

├────────────────────────────────┤

1│#include/*prototype:

printf()*/│

2│voidmain(void)│

3│{│

4│/*这个程序也必须把巢状批注的设定打开,才不会有错误*/│

5│/*│

6│printf("%d+%d=%d\n",8,2,8+2);/*8+2=10*/│

7│printf("%d-%d=%d\n",8,2,8-2);/*8-2=6*/│

8│printf("%d*%d=%d\n",8,2,8*2);/*8*2=16*/│

9│printf("%d/%d=%d\n",8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1