C语言程序设计教程.doc

上传人:hw****26 文档编号:3550823 上传时间:2019-06-04 格式:DOC 页数:19 大小:118KB
下载 相关 举报
C语言程序设计教程.doc_第1页
第1页 / 共19页
C语言程序设计教程.doc_第2页
第2页 / 共19页
C语言程序设计教程.doc_第3页
第3页 / 共19页
C语言程序设计教程.doc_第4页
第4页 / 共19页
C语言程序设计教程.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、C 语言程序设计教程一、基本知识:C 语言是一种高级语言,适于编写系统程序。它有良好的可移植性,应用于各个领域。起源于:ALGOL 语言。具有良好的可读性和可移植性。C 语言属于过程语言,即按照程序的设计算法逐条输入语句。二、基本结构:C 语言的基本结构是指一个 C 程序的基本组成成分。如下:#define Pi=3.1415 宏定义main() 函数名 函数体开始float r,a,c; r 半径 a 面积 c 周长r=2.5; 给定 r 的值a=pi*r*r; 计算面积c=2*Pi*r; 计算周长printf(“r=%f,a=%fn”,r,a); 输出 r 和 a 函数体结束经过计算机的运

2、算得到:r=2.500000 a=19.634956C 语言的基本结构就是函数。一个 C 程序由若干 C 函数构成,一个 C 函数由若干 C语言构成,一条 C 语句由若干基本单词构成。C 函数包括:函数名+ 形式参数+函数体函数名:是标识函数的依据,主函数名:main()形式参数(形参):是函数调用时的数据传递途径。有表示,不能省略。函数体:是程序的主要语句。C 语句:完成某种功能的最小单位,所有语句以“;”号结尾。分为表达式语句、复合语句、空语句。表达式语句就是用“;”隔开的语句;复合语句就是用括起来的语句,属于一条语句;只有一个“;”的语句就是空语句,作用就是延迟一段时间。基本单词:C 语

3、言有五种基本单词:关键字、标识符、常数、操作符、分隔符。关键字:是 C 语言中有特定意义和用途且不能它用的字符。如:auto breakcase char 等等。共有 32 个。*强调:所有关键字必须小写。标识符:用来表示变量名、数组、函数、指针、结构名等。*由字符构成,第一个字符必须是字母或下划线。*不能和 C 的关键字相同,且区分大小写。如 Ab 和 AB 就是不同的。常数:包括数值常数、字符常数、字符串常数、符号常数等。操作符:包括运算符和有特定意义的标点符号。分隔符:最常见的就是空格。三、书写方式:1) 每个函数在程序中的位置是任意的。主函数不一定在程序开始处,但运行时总从主函数开始。

4、2) 每个程序行中的语句是任意的,即可一行写多条语句,也可一条语句多行写,但必须是以“;”结尾。3) 注释位置任意。以/*开始,以 */结束,两者不能有空格。4) 为增强易读性,每行一条语句,不同结构的语句从不同位置写起,呈阶梯状。四、简单的程序设计:一个程序通常具备三个功能:输入数、数据运算、输出数据。赋值语句:有计算和存储的功能。如:v=2;输入/输出函数:scanf() 是格式输入函数;printf()是输出函数。如:scanf(“%f%d”,用来接收从键盘输入的一个实数和一个十进制的整数,并存放在变量 a 和 b 中。Printf(“%f,%f”,x,y);用来按实数形式输出变量 x

5、和 y 的值。%f:表示输出实数;%d 表示输出十进制整数。Printf()和 scanf()是 TC 编译系统提供的库函数,不是 C 的组成部分,而是由 C 提供的功能函数。当要使用系统提供的库函数时,必须在程序的开始处输入:#include或#include“标题文件” 。例如:printf()和 scanf()是在标题 stdio.h 中定义的,因此写作:#includeinclude 和 define 都属于命令行,不属于 C 语句。C 语言提供的常用标题文件如下:ALLOC.H 动态分配函数CONIO.H 屏幕处理函数CTYPE.H 字符处理函数GRAPHICS.H 图形函数MATH

6、.H 数学函数STDIO.H 输入输出及文件操作函数STDLIB.H 标准实用函数STRING.H 字符串处理函数。五、开发过程:包括编辑、编译、连接、运行四步。编辑:是 C 程序的输入和修改。扩展名为 .c编译:是将 C 程序翻译成二进制的过程。编译时如果有错误,编译系统会自动停止。连接:是用连接程序将编译过的目标程序和程序中用到的库函数装配在一起,形成可执行的目标文件。扩展名.EXE运行:六、TC2 软件的使用:它是集编辑、编译、连接及运行于一体的集成环境。即可以在 DOS 下运行,也可以在WIN 里运行。窗口组成:主菜单、编辑窗口、编辑信息窗口、功能提示键。常用功能键:F2 存储;F3

7、载入;ALT+X 退出;CTRL+F9 运行;ALT+F5 切换结果窗口;EXIT 返回编辑窗口;ALT+F+O 暂时进入 DOS上机作业:编写一个程序:一个笼子里有鸡和兔。鸡和兔的头数共 30 个,脚共 100 只,算一下笼里有多少鸡和兔?提示数学模型:x+y=302x+4y=100程序如下:#include main()int x,y,f,t;scanf(“%d%d”,x=(4*t-f)/2;y=(f-2*t)/2printf(“chickens=%d,rabbits=%dn”,x,y);其中 t 头数 f 脚数 x 鸡数 y 兔数。基本数据类型和数据运算一、基本数据类型:包括:整型、浮点

8、型、双精度型、字符型及无值类型。通常代表单个数据。整型 int:描述整数;字符型 char:描述单个字符;浮点型(单精度型)float:描述实数。 双精度型 double:无值型 void:没有具体值。基本数据类型的修饰:signed:符号型,能修饰 char 和 int 型数据。 Unsigned:无符号型。Short:短型,只能修饰 int。 long:长型,能修饰 int 和 double 型。二、常量及类型:常量:在程序运行过程中,其值不变的量。分四种:整型、双精度型、字符型、字符串型。由于 C 语言对书写形式较为严格,所以分清类型对书写程序非常重要!1) 整型常量:可为十进制或八进制

9、或十六进制。十进制:由正负号和 09 组成的字符串。八进制:以 0 开头,后跟 07 组成的数字。十六进制:以 0 和 X 打头,后跟 09 和 AF 组成。2) 双精度型常量:就是实数。可以是小数也可以是指数。小数:由正负号、整数、小数点构成。指数:在小数基础上加上一个 e 或 E,再跟一个 13 位整数组成。如2.74e3=2.74X103。3) 字符型常量:指单个的 ASCII 字符。有两种表示法:单引号表示法:如A 、 a、 5、 +等。转义字符表示法:对不可显示字符(回车、换行符等)只能用转义字符表示。如常用的有:0:NULL 表示为空; a:BELL 表示报警铃响; b:BS 表示

10、退格。f:FF 表示换页符; n:NL 表示换行符; r:CR 表示回车符。t:HT 表示水平制表符; v:VT 表示垂直制表符; :表示反斜杠。:表示单引号; ”:“表示双引号。*C 语言对整型和 ASCII 不是很严格区分的,因为两者可以转换。如 A 的ASCII 是 65,所以 A+5 即表示 65+5。4) 字符串常量:用“”号括起来的字符序列。如:”I am a student”、 ”A”等。与字符常量的区别:一是引号方式不同,一个单引,一个双引。二是存储长度不同,字符常量占一个字节;字符串常量占 N+1 个。三是字符串常量可存在数组里,而字符常量只能存放在字符型变量中。四是字符串常

11、量不能参与数值运算,而字符常量可以。三、变量及类型:变量:在程序的运行过程中其值会发生改变的量。变量在使用前必须先定义后使用。定义格式:存储类型数据类型 变量清单;存储类型有:auto 自动、static 静态、extern 扩展、register 寄存器数据类型有:int、char、float、double变量清单:可以有一个变量也可有多个变量。如:char ch1; static int I,j,k; short int si; float f1,f2;变量类型:根据定义的位置不同分三种:全局变量、局部变量、形参。全局变量:在函数外部定义的变量。局部变量:在函数内部定义的变量。形参:在函数

12、的形式参数表中定义的变量。如:#include int color; color 就是全局变量.Value (int x,float y); x 和 y 就是形参。int lower,upper,atep; lower 和 upper 及 atep 就是局部变量。作业:输入如下程序,分析查看结果:int a;main()int b,c;a=1;b=2;c=3;a=a+1;b=b+1;c=c+b; 此时 a=2,b=3,c=6 而不是 5int c;c=b*3; 此时 c=9a=a+c; 此时 a=11printf(“first:%d,%d,%dn”,a,b,c);printf(“second:

13、%d,%d,%dn”,a,b,c);局部变量的存储类型可以是 auto、static 或 register,若缺省则为 auto。全局变量的存储类型可以是 static、extern,若缺省默认为 extern。四、符号常量:符号常量:用标识符表示的常量。表面象变量其实是常量,其值不能改变。符号常量的定义:方法有三种:宏定义:用指定的标识符来代表一串字符,格式:#define 标识符 字符串如#define Pi 3.1415926*注意:宏定义必须以#define 开头,行尾不加”;”每个#define 只能定义一个宏,且占用一行。#define 一般出现在函数的外部。Const 定义:格式

14、:const 数据类型 标识符=常量表达式;如 const int max=300;const float x=max+3.14;*注意:必须以 const 开头,以“; ”结束。每个 const 语句可以定义多个同类型的符号常量,用逗号分隔。const 即可出现在函数外部,也可以出现在函数内部。作业:输入如下程序,分析查看结果:#include #define Pi 3.1415926main()float c,a,s,v;const float Radius=2.5;c=2*Pi*Radius;a=Pi*Radius*Radius;s=4*a;v=4*a*Radius/3;printf(“

15、circuference=%f”,c);printf(“area=%f”,a);printf(surface area=%f”,s);printf(volume=%f”,v);五、算术运算:一)算术运算符:又分一元运算符(只有一个运算量值的) 。如正/负(+/- )二元运算符:有两个或以上的运算量。如+/-/*/% 等。求余运算:求两个 int 或 char 型的余数。如 a%b 表示 a 整除 b 后的余数。规则:a%b=a-(int)(a/b)*b加 1 减 1 运算:又称自加/自减运算。+I 表示 I=I+1 -I 表示 I=I-1自加/自减运算只能对变量施加,不能对常量使用。如+(25

16、)就是错误的。+和- -写在变量的前后是有区别的:n+表示先取 n 值,然后再 n=n+1+n 表示先 n=n+1,然后再取 n 值。作业:输入如下程序,查看结果。Main()int a=100;printf(“%dn”,a);printf(“%dn”,+a);printf(“%dn”,a-);printf(“%dn”,a);二)算术表达式:用算术运算符连接起来的数值型的式子,用来完成计算功能。书写规则:运算符*不能省略;运算符的优先级和结合性决定运算的顺序。优先级:指当几个不同的运算符同时出现在表达式中时,哪个运算符先执行。结合性:指同一优先级的运算符同时出现在表达式中时,运行的先后次序。乘

17、除法的结合性:自左向右取负和加 1 运算的结合性:自右向左。在表达式中可以使用小括号,不能使用方括号和花括号。C 语言中没有乘方,所以需要用连乘表示。如 pow(10,n)=10n。作业:观查下列程序的优先级和结合性:main()int a=3,b=5,c=15,d=2;printf(“%dn”,6-a*b/c%d);printf(“%dn”,+a-+a);自动类型转换规则:表达式除了要遵循优先级和结合性外,还应遵循类型转换规则:如果表达式中含有 char 型,全部转换成 int。如果表达式是含有 float 型,全部转换成 double.同类型运算结果仍然为同类。如 3/2=1,不是 1.5

18、不同类型运算,低精度先转换成高精度型,结果为高精度型。三)赋值运算:赋值表达式的尾部加上分号就是赋值语句。V=e 左为变量或数组元素。简单赋值运算符。 如:y=x+2 是正确的,而 x+2=y复合赋值运算符。 有 10 种,有计算和赋值双重功能。+=、-= 、*= 、/= 、%=、 char b; float c;c=2.5;b=c;a=b;printf(“%d,%d,%.1f”,a,b,c);逗号运算:逗号运算符可以连接多个数据项,做为一个整体处理。逗号表达式:由逗号连接而成的式子。A=3*5,a*4,a+5*当 printf()函数中出现多个表达式输出项时,先按从右向左的顺序计算各表达式的

19、值,然后按从左向右的顺序显示输出的结果。如:main()int c=5;printf(“%d,%d,%dn”,c+=c+,c+8,+c);c=5;printf(“%dn”,(c+=c+,c+8,+c);c=5;printf(“%dn”,c+=c+,c+8,+c);四)关系和逻辑运算关系运算:用来进行相等或不等的比较。运算符有:、= 、y)= =(z=x-1);x=y= =z;printf(“%d”,x);printf(“%dn”,x+=+y-z-);因为是逻辑运算,所以结果是:0 1 1逻辑运算:可以进行更复杂的比较运算。如表示数学上的 0。如:求 cos30 度的值。#includemain

20、()double x,y;x=30.0;y=cos(x/180*3.14159);printf(“%fn”,y);结果是:0.866026作业:求 65。2 的值和 e3。2145689 的值。其中 65.。2 的值表示为 pow(6.0,5.2)e3。2145689 的值表示为 exp(3.2145689)七、不同类型数据的输入输出:常用的有:格式输入输出函数、单字符输入输出函数、文件输入输出函数。一)printf()函数:可以用在所有类型的数据输出上。格式:printf( “格式控制字符串” ,输出项清单);格式控制字符串:规定了输出项的显示格式。包括三种符号:格式转换说明符:规定了输出项

21、的显示格式。%c:输出一个字符。 %d(%I ):按实际位数输出十进制整数。%f:输出浮点数,小数保留 6 位。 %e:按指数格式输出浮点数。%g:按最小宽度输出。 %s:按实际位数输出字符串%u(%o)(%x):按实际位数输出无符号十进制整数。 (八进制、十六进制 )%:输出一个%转义字符:主要用于控制数据的显示位置。其他字符:除控制字符和转义字符外的字符,它们与输出的项目无关。需要说明:调用 printf()时,格式转换说明符与输出项必须在顺序和类型上一一对应和匹配; 输出数据的个数取决于格式说明符的个数; 当 printf 输出项是表达式时,先按从右向左计算,再按从左向右输出;特殊格式控

22、制:有时为了控制输出的特殊格式,需要使用特殊控制符:%-m .nd:用于整数的输出。M 是输出项的总宽度,n 是输出的最小有效位数,-负号代表左对齐数据。%m .nf:用于实数的小数形式输出,能自动进行四舍五入。M 规定输出项的总宽度,n 规定输出的小数位,如果不规定 n,则 n=6%m.ne:用于实数形式输出,m 总宽度,小数位是 n-1。%m.ns:用于字符串的输出,m 总宽度,n 只输出字符串的前 n 个字符。类型修饰:在类型转换符 d,I,o,u,x 之前可加字母 l 和 h,分别表示 long 和 short。在类型转换符 f,e,g 前加字母 l,表示输出 double 或 lon

23、g double 型。二)scanf()函数:用于所有类型数据的输入。格式:scanf(“格式控制字符串”, 输入项目清单);%c:读入一个字符。 %d(%I):读入一个十进制整数。 %f(%e):读入一个浮点数%h:读入一个 short int 型数。 %s:读入字符串,遇到空格、制表符或换行符结束。%u:读入一个无符号十进制整数。 %0:读入一个八进制整数。%x:读入一个十六进制整数。 %D(%I):读入十进制长整型。%F:读入双精度型数。 %O:读入八进制长整型。 %X:读入十六进制长整数。需要说明:scanf()里至少有一个输入项,输入项必须用地址表示。调用 scanf() 时,格式转

24、换说明符与输入项必须和数据一一对应。Scanf()中若有几个输入项,数据之间只能用空格、制表符、回车键分隔。当用%d 控制 int 时,输入的数据必须是整数;当用%f 或%e 控制 float 或double 时,可从键盘输入等值的整数、小数或指数形式的实数;当用%c 控制 char 时,输入的字符不必加单引号,如果连续几个 char 型数据同时输入时,不要用分隔符。如果在 scanf()里出现格式转换符以外的字符,必须按原样输入。特殊控制:1 抑制赋值:在%之后,转换符之前加入一个*,scanf()将正常读入对应数据,但不赋值。如 scanf(“%d%*c%d”, 输入 10/20,则 a=

25、10,b=202 限制接收的字符个数:在%和控制字符之间插入一个整数,可以规定输入数据的字符个数。如 scanf(“%4d%4d”,三)getchar()和 putchar该函数定义在 stdio.h 文件中,当需要输入单个字符时,效果比 scanf()和 printf()好。格式:putchar(c); 代表字符型常量或变量,也可是一个取值不大于 255 的整型常量或变量。练习:用 putchar()输出一个字符。#include main()int c;char d;c=65;d=A;putchar(c );putchar(d);putchar(A);putchar(65);程序中的四个

26、putchar 会输出相同的结果:AAAAputchar()还可以输出不可显示字符或控制字符。如:putchar(07)表示一声响铃。Getchar() :是一个不带参数的函数。练习:#includemain()char c;c=getchar();printf(“%cn”,c);printf(“%dn”,c);如果输入 a,则屏幕显示三行:两行 a,一行 97*使用 getchar()时,回车键也是输入字符的一部分,特别是连续调用该函数时要注意 。四)单字符输入函数:getche()和 getch()使用 getchar()时,输入一个字符后必须回车,而 getche()和 getch()就不需要。该函数是定义在 conio.h 文件中,所以使用时要用#include练习:#includemain()char c;c=getche();printf(“%cn”,c);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。