C程序设计讲稿苏.docx
- 文档编号:6567012
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:88
- 大小:98.85KB
C程序设计讲稿苏.docx
《C程序设计讲稿苏.docx》由会员分享,可在线阅读,更多相关《C程序设计讲稿苏.docx(88页珍藏版)》请在冰豆网上搜索。
C程序设计讲稿苏
第一章C语言出现的历史背景
一、优点:
既可以写系统软件,也可以写应用软件,既具有一般高级语言特征又具有低级语言特征的语言。
二、背景:
介绍书:
《TheCProgrammingLanguage》
三、微机上使用的编译系统:
MocrosoftC、TurboC、QuickC、BorlandC.
1.2C语言的特点
特点:
1、语言简洁、紧凑、使用方便灵活;
2、运算符丰富;
3、数据结构丰富;
4、具有结构化的控制语句;
5、语法限制不太严格,程序设计自由度大;
6、C语言允许直接访问物理地址,可以对硬件进行操作;
7、生成目标代码质量高,程序执行效率高;
8、用 C语言写的程序可移植性好(与汇编比)
1.3简单C语言介绍
例1:
main()
{
printf("ThisisaCprogramming.\n");
}
例2:
main()
{
inta,b,c;
scanf(“%d%d”,&a,&b);
c=max(a,b);
printf(“Max=%d”,c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
returnz;
}
从上面三个例子分析C语言特点:
(1)C程序是有函数构成,相当于子程序;
(2)一个函数由两部分组成函数的首部和函数体,其中函数体又由声明部分和执行部分组成;
(3)一个程序由main开始执行不管main的位置在哪里;
(4)书写比较自由;
(5)每个语句和数据定义的最后必须有分号;
(6)由scanf和printf函数来完成输入和输出语句;
(7)注释是/*……………*/
第二章数据类型、运算符与表达式
2.1C的数据类型
一、数据、数据结构的定义
数据:
以某种特定繁荣形式存在(例如整数、实数、字符)
数据结构:
数据的组织形式。
二、C的数据类型
整型
字符型
单精度型
实型
基本类型双精度型
枚举
数组
数据类型
构造类型结构体
共同体
指针
空类型
2.2常量与变量
一、常量和符号常量
常量:
定义其值不能改变量称为常量。
如:
整型常量5、-5、0实型常量2.5、-2.5字符常量a、b等
符号常量:
用一个标识符代表一个常量称为符号常量。
如:
若定义PRICE为常量则对PRICE=25这样赋值是错的。
例AL3_1_1
注意:
1、#define命令行定义PRICE代表常量3.1415926
2、符号常量不能再被赋值
3、在需要改变一个常量时做到“一改全改”
二、变量
变量:
其值可以改变的量
a
5
注意:
1、区分变量名和变量值(看课本P39图)
2、变量要先定义,后使用
3、每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元
例AL3_1_1
标识符:
用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符
注意:
1、可以有字母、数字和下划线三种字符组成,第一个字符必须为字母或下划线
2、大小写
3、允许32个字符一般不超过8个
例:
以下选项中不合法的用户标识符是
A_12_3BpintCa$Da>b
2.3整型数据
一、整型常量的表示方法:
1.十进制整数:
10-110
2.八进制整数:
012-012(0开头)
-012等于十进制整数-10
3.十六进制整数:
进制整数0xA(0x开头)
-0x12等于十进制数-18
二、整型变量:
十进制整数与二进制转制:
除二取余数,第一位余数为二进制的最低位
(11)10=(1011)2
1、整形数据在内存中是以补码的形式存放的(数据在内存中以二进制形式存放)。
10、-10为例。
10原码
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
10补码
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
-10补码
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
注意:
1、正数的补码与原码相同
2、负数的补码为原码取反加1
3、最左边的一位是表示符号位,该位为0,表示数值为正;该位为1,表示数值为负
2、整形变量的分类(P43)
表示占字节(一个字节8位)范围
[signed]int2(16位)-32768---32767
unsigned2(16位)0----------65535
[signed]short[int]2(16位)-32768----32767
unsignedshort2(16位)0-----------65535
[signed]long[int]2(32位)-2147783648-----2147483647
unsignedlong2(32位)0-------------------4294967295
注意:
1、[signed]表示带符号,unsigned表示不带符号
2、带[]的内容可以省略
三、整型常量类型(加L)如123L表示长整型
例:
选出正确的整型常量是
A12。
B-20C1,000D456
2.4实型数据
一、实型常量的表示方法:
1、十进制小数形式
(1)由数字和小数点组成
(2)必须有小数点
2、指数形式:
123e2、123E2代表123×102,1.23e4、12.3e3、0.123e5
(1)e之前必须有数字
(2)e后面的指数必须是整数
(3)规范化的指数形式,在字母e之前的小数部分中,小数点左边应有一位非零元素
(4)一个实数用指数输出时,按规范化的指数形式输出。
不合法:
e123、2e2.5、
例、选出正确的实型常量是
A0B3.1415C0.329×102D.871
例、选出不正确的实型常量是
A2.607E-1B0.8103e2C–77.77D456e-2
二、实型变量:
1、在内存中的存放是以指数的形式存放,实型数据一般在内存中占4个字节(32位)
如:
3.14159
+
.314159
1
数符小数部分指数
图中是用十进制数表示的,在计算机中是二进制数表示
2、实型变量分类P46
类型占字节(一个字节8位)有效数字
单精度(float)4(32位)6~7
双精度(double)8(64位)
长双精度(longdouble)16(128位)
例:
floata,b;
doublec;
longdoubled;
3、实型数据的误差。
main()
{floata,b;
a=123456.789e5;
b=a+20;
printf(“%f”,b);
}
注意:
(1)输出一个实型变量只能保证7位有效数字
(2)应避免一个很大的数与一个很小的数相加
四、常量类型:
注意:
(1)一般按double计算
(2)如在数字后面加f,编译系统就会按单精度处理
2.5字符型数据
一、字符常量:
1、单引号’a’,’A’,’2’,’0’
2、“控制字符”以\开头的字符常量\n\t表示P48
例:
main()
{printf(“abc\tde\rf\t\n”);
printf(“h\ti\b\bjk”);
}
注:
\n换行
\t跳到下一个制表区(一个制表区占8位)
\b退格(将当前位置移到前一列)
\r回车(将当前位置移到本行开头)
\ddd1到3位8进制所代表的字符如:
\101、\376、\012
\xhh1到2位16进制所代表的字符如:
\x12
\0、\000空操作字符
二、字符变量
charc1,c2;
一个字符变量中只能放一个字符,不可以放一个字符串
一个字符变量占一个字节(8位)
c1=’a’
c1
97
三、字符数据在内存中的存储形式及使用方法。
1、字符数据以ASCII码存储整形和字符型是相通的
intm;
charc;
m=’a’;
c=97;
printf("%c%d",m,m);
printf("%c%d",c,c);
2、ASCII为标准信息交换码\n、\012ASCII值为10
‘0‘ASCII值为48‘A’ASCII值为65‘a’ASCII值为97
例子:
main()
{
charc1,c2;
c1='a';c2='b';
c1=c1-32;
c2=c2-32;
printf("%c%c",c1,c2);
printf("%d%d",c1,c2);
printf("%c%d",c1,c2);
}
第一个printf输出结果是两个字符型数据
第二个printf输出结果是两个整型数据
五、字符串常量:
1.由双引号括起来区分’a’和”a”
2.有前面字符加\0组成
如:
“china”
c
h
i
n
a
\n
3.字符串由字符数组来存放,C语言中没有专门的字符串变量
2.6变量赋初值
用‘=‘给变量赋值。
如:
inta=3;floatb=2.5;charc=’a’;
inta=b=c=3;inta,b,c=3,inta=3,b=4,c=5;
2.7各数据类型之间的混合运算
运算顺序:
doublefloat
高
long
unsigned
intchar、short
低
变量的数据类型自动转换的规则
如:
10+’a’+I*f-d/e
2.8算术运算符和算术表达式
一、运算符简介:
1、算术运算符(+-*/%)
2、关系运算符(><==>=<=!
=)
3、逻辑运算符(!
&&||)
4、位运算符(<<>>~|^&)
5、赋值运算符(=)
6、条件运算符(?
:
)
7、逗号运算符(,)
8、指针运算符(*&)
9、求字节运算符(sizeof)
10、强制类型转换运算符
11、分量运算符(.->)
12、下标运算符([])
13、其它
二、算术运算符
1、基本运算符+-*/%(求余运算符如7%4=3,%两侧均应为整型数据)
例子:
-5/3=-1(取整向零靠拢)5/3=1
注:
运算的两个数中有一个数为实数,则结果是double型,因为所有实数都按double型进行运算
2、算术表达式和运算符的优先级与结合性。
优先级:
先乘除后加减结合性:
左结合性
3、强制类型转换运算符(int)(x+y)(表达式应该用括号括起来)
(int)x(int)y注意原值不变(不要写成int(x))
类型转换有两种:
1)系统自动进行类型转换
2)强制类型转换
(1)设:
a=2,b=3,x=3.5,y=2.5;(float)(a+b)/2+(int)x%(int)y
(3.5)
(2)设:
x=2.5,a=7,y=4.7;x+a%3*(int)(x+y)%2/4
(2.5)
4、自增自减运算符
++i--i(在使用之前先使i的加值1或者减1)
i++i--(在使用i之后使i的值加1或者减1)
例子:
初值I=3;求:
j=++i;printf(“%d,%d”,i,j);(i=4;j=4)
printf(“%d,%d”,i,++i);(i=4;j=4)
j=i++;printf(“%d,%d”,i,j);(i=4;j=3)
printf(“%d,%d”,i,i++);(i=4;j=3)(不提倡)
注:
(1)++、--只能用于变量不能用语常量或者表达式;
(2)结合性自右向左
例子:
main()
{
inta;intb,c;
a=3;b=-a++;c=-a++;
printf("%d\t%d\t%d",a,b,c);
}
(5-3-4)
2.9赋值运算符和赋值表达式
1、赋值运算符:
将一个数据赋给另一个变量;
2、变量转换(原则):
占用字节少——>占用字节多的就扩充反之就截断。
3、复合的赋值运算符:
在赋值运算符前加其他的运算符如:
设:
a的初值为12,
(1)a+=3<=>a=a+3;
(2)a*=a+3<=>a=a*(a+3);
4、赋值表达式:
赋值运算符将一个变量和一个表达式连接起来的式子
(1)形式:
<变量><赋值运算符><表达式>
(2)结合顺序:
自右向左如:
若设a为12,
a+=a-=a*a<=>a+=(a-a*a)a=a+(a=a-a*a)则其值为-264
a+=a-=a*=a则其值为0
3.10逗号运算符和逗号表达式
一、形式:
表达式1,表达式2
二、注:
(1)整个表达式的值是表达式2的值;
(2)结合方向“自右向左”;
(3)所有的运算符中逗号运算符的优先级最低。
例子:
(1) a=3*5,a*4;表达式的值为60a为15(赋值运算符的优先级别高于逗号运算符)
(2)x=(a=3,6*3);x=18a=3
(3)x=a=3,6*3x=3
(3)区分:
printf(“%d,%d,%d”,a,b,c);
printf(“%d,%d,%d”,((a,b,c),b,c);
2.10关系运算符和关系表达式
1关系运算符及其优先级:
C提供了6种关系运算符:
(1)<
(2)<=(3)>(4)>=(5)==(6)!
=
关于优先顺序:
(1)前4种关系运算符的优先级相同,后两种也相同。
前4种高于后2种。
(2)关系运算符的优先级低于算术运算符。
(3)关系运算符的优先级高于赋值运算符。
如:
c>a+b
a>b=c
a=b 2关系表达式: 关系表达式: 用关系运算符将两个表达式连接起来的式子。 关系表达式的值是一个逻辑值。 即“真”(以1代表)和“假”(以0代表) 例子: a=3b=2则d=a>b;d的植为1。 2.11逻辑运算符与逻辑表达式 1.辑运算符极其优先次序 C语言提供了三种逻辑运算符: (1)&&逻辑与 (2)||逻辑或(3)! 逻辑非 &&和||是双目运算符,! 是一目运算符; a&&bab都为真则其值为真; a||bab有一个为真则其值为真 ! a若a为真其值为假 优先级: (1)非——>与——>或; (2)逻辑运算符的与和或低于关系运算符,‘! ’高于算术运算符。 运算符优先次序: ! (非) 算术运算符 关系运算符 &&和|| 赋值运算符 例: 设j=2; printf(“%d,%d,%d”,j,j printf(“%d,%d,%d”,j,j>o&&j++,j); printf(“%d,%d,%d”,j,j printf(“%d,%d,%d”,j,j>o||j++,j); printf(“%d,%d,%d”,j,j printf(“%d,%d,%d”,j,j>o&&(j=8),j); 2逻辑表达式 1、逻辑运算结果不是0就是1,不可能是其他的数值,而在逻辑表达式中作为参加运算的运算对象可以是0或任何非0数值,包括字符型、实型、字符型等数据类型。 2、 (1)a&&b&&c只有a为真的时候,才需要判别b的值,只有a与b都为真的时候才需要判别c的值。 (2)a||b||c只要a为真,就必判别b和c;只有a为假,才判别b;a和b都是假才判别c. 如: 设a=3,b=4,c=5 a+b>c&&b==c a||b+c&&b-c ! (a>b)&&! c||1 ! (x=a)&&(y=b)&&0 (a+b)+c-1&&b+c/2 第三章C程序设计 3.1赋值语句 定义: 赋值语句是由赋值表达式加上一个分号构成。 注: “=”是一个运算符; if((a=b)>0)t=a; if((a=b;)>0)t=a; 赋值语句与赋值表达式的区别: 有无分号。 3.2输入输出在C语言中的实现 1、输入输出定义: 以计算机主体而言。 向磁盘是数据输出,从外部(如磁盘等)输入数据称为输入。 2、输入输出操作由函数来实现(printf,scanf)原因: C语言的编译系统简单。 3、常用输入输出函数: putchar(输出字符)getchar(输入字符)scanf(格式输入) printf(格式输出)puts(输出字符串)gets(输出字符串) 4、在使用C语言库函数时要用预编译命令#include将有关文件包含到用户源文件中。 #include 3.3字符数据的输入输出 1、putchar函数: 字符的输入函数形式是putchar(c)c可以是字符型变量或者整形变量。 例子: #include main() {chara,b,c; a=97;b=98;c=99; putchar(a);putchar(b);putchar(c); } 其输出结果为: abc (也可以输出控制字符如: putchar(‘\’’);putchar(‘\101’)) 2、getchar函数(字符输入函数) (1)含义: 从终端输入一个字符; (2)没有参数,函数值就是从输入设备中得到的字符; (3)例子: #include main() { charc; c=getchar(); putchar(c); } 3.4格式的输入输出 1、printf函数 (1)printf(格式控制,输出列表) 注意: 格式控制是由%和格式字符组成;输出列表是需要输出的数据; (2)格式字符: %d输出十进制整数 %mdm为输出的长度 %ld输出长整型数据 %u以无符号的十进制形式输出 %o以八进制数形式输出整数 %x以十六进制数形式输出整数 %c输出一个字符 %s输出一个字符串 %ms左补空格 %-ms右补空格 %m·ns占m列,取字符串左端n个字符 %f以实数形式输出实数 %m·nf数据占m列,小数n位(如: %10.2f) %e以指数形式输出实数 %g自动选f格式或e格式(选择输出占宽度较小一种,不输出无意义的零) main() {inta=5,b=7; floatx=67.8564,y=-789.124; charc=’A’; longn=1234567; unsignedu=65535; printf(“%d%d\n”,a,b); printf(“%3d%3d\n”,a,b); printf(“%f,%f\n”,x,y); printf(“%-10f,%-10f\n”,x,y); printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f,\n”,x,y,x,y,x,y); printf(“%e,%10.2e\n”,x,y); printf(“%c,%d,%o,%x\n”,c,c,c,c); printf(“%ld,%lo,%x\n”,n,n,n); printf(“%u,%o,%x,%d\n”,u,u,u,u); printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”); } main() { unsignedinta=65535; printf("b=%d,%o,%5x,%u\n",a,a,a,a); } 分析其输出结果: b=-1,177777,ffff,65535 2、scanf函数 (1)一般形式(格式控制,地址表列) 格式字符: %d %c(注: 空格字符和转义字符都作为有效字符输入) %f (2)注意问题: 格式控制后是变量地址; 若有其他字符输入数据是要与这些字符对应; 用%c格式时转义字符为有效字符; 输入数据时遇空格或者非法字符则认为结束。 如: scanf(“%d,%d,%d”,&a,&b,&c); scanf(“%d%d%d”,&a,&b,&c); scanf(“%d: %d: %d”,&a,&b,&c); scanf(“%4c”,&a); abc scanf(“%3d,%*4d,%3d”,&a,&b); 11,22,33 scanf(“%d%c%f”,&a,&b,&c); 11a22o.5 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 3.6顺序程序设计举例 1、从键盘输入一个大写字母,要求改用小写字母输出。 #include main() { charc1,c2; c1=getchar();printf("%c",c1); c2=c1+32;printf("%c",c2); } 2、求圆面积 #definePI3.14159 main() { floatr;floatl,s; scanf("%f",&r); l=2*PI*r; s=PI*r*r; printf("%f\t%f",l,s); } 3、输入三角形的边长,求三角形面积(数学公式P83) #include main() {floata,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2\n”,area); } 例: main() {inta=1,b=2; a+=b++; ptintf(“%d,%d”,a,b); } 第4章程序的控制结构 C语句分为5类: 1、控制语句;(9种) if()∽else∽ for()∽ while()∽ do∽while() continue break switch goto r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 讲稿
![提示](https://static.bdocx.com/images/bang_tan.gif)