C语言程序设计(第三版)笔记 谭浩强
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章概述
1.C语言的特点
①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。
②运算符丰富,公有34种运算符。
③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。
④具有结构化的控制语句(如if…else、while、do…while、switch、for)
⑤语法限制不太严格,程序设计自由度大。
⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。
⑦生成目标代码质量高,程序执行效率高。
⑧可移植性好。
2.C语言的用途
C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。
Top of Page
第二章数据类型、运算符与表达式
1.C的数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2.常量与变量
常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3.整型数据
整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。
整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。
4.实型数据
实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123
0.0等。指数形式如123e3代表123×10的三次方。
实型变量分为单精度(float)和双精度(double)两类。在一般系统中float型占4字节,7位有效数字,double型占8字节,15~16位有效数字。
5.字符型数据
字符变量用单引号括起来,如'a','b'等。还有一些是特殊的字符常量,如'\n','\t'等。分别代表换行和横向跳格。
字符变量以char来定义,一个变量只能存放一个字符常量。
字符串常量是由双引号括起来的字符序列。这里一定要注意'a'和"a"的不同,前者为字符常量,后者为字符串常量,c规定:每个字符串的结尾加一个结束标志'',实际上"a"包含两个字符:'a'和''。
6.数值型数据间的混合运算
整型、字符型、实型数据间可以混合运算,运算时不同类型数据要转换成同一类型再运算,转换规则:
char,short->int->unsigned->long->double<-float
7.运算符和表达式
c运算符包括:
算数运算符(+-*/%)
关系运算符(><==>=<=!=)
逻辑运算符(!&&||)
位运算符(<<>>~|^&)
赋值运算符(=)
条件运算符(?:)
逗号运算符(,)
指针运算符(*&)
求字节数(sizeof)
强制类型转换(类型)
分量运算符(.->)
下标运算符([])
其它运算符(如函数调用运算符())
自增自减运算符(++--)注意:++i和i++的不同之处,++i使用i之前先使i加1,i++使用i之后,使i加1。逗号表达式的求解过程:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。
Top of Page
第三章最简单的c程序设计
1.c的9种控制语句:
if()~else~
for()~
while()~
do~while()
continue
break
switch
goto
return
程序的三种基本结构:顺序结构,选择结构,循环结构
2.数据输出
c语言不提供输入输出语句,输入输出操作是由c的库函数完成。但要包含头文件stdio.h。
putchar()向终端输出一个字符
printf()的格式字符:
①d格式符用来输出十进制整数
%d按整型数据的实际长度输出
%md使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度%ld输出长整型数据
②o格式符以八进制形式输出整数
③x格式符以十六进制形式输出整数
④u格式符用来输出unsigned型数据,以十进制形式输出
⑤c格式符用来输出一个字符
⑥s格式符输出一个字符串
%s输出实际长度字符串
%ms输出的串占m列,如果串长度小于m,左补空格,如果大于m,实际输出
%-ms输出的串占m列,如果串长度小于m,右补空格,
%m.ns输出占m列,但只取字符串中左端n个字符并靠右对齐
%-m.ns m、n含义同上,靠左对齐,如果n>m,则m自动取n值
⑦f格式符以小数形式输出实数
%f整数部分全部输出,小数部分输出6位
%m.nf输出数据共占m列,其中有n位小数。如果数值长度小于m,左补空格
%-m.nf同上,右补空格
⑧e格式符以指数形式输出实数
%e系统指定6位小数,5位指数(e+002)
⑨g格式符输出实数,根据数值大小,自动选f格式或e格式
3.数据输入
getchar()从终端输入一个字符
scanf(格式控制,地址列表)标准C scanf中不使用%u,对于unsigned型数据,以%d或%o或%x输入。%后的*,用来跳过它相应的数据。输入数据时不能规定精度如scanf("%7.2f",&a);是不合法的。
Top of Page
第四章逻辑运算和判断选取控制
1.关系运算符:
c提供6种关系运算符(><<=>===!=)前四种优先级高于后两种。
2.If语句
C提供了三种形式的if语句
If(表达式)语句
If(表达式)语句1else语句2
If(表达式1)语句1
Else if(表达式2)语句2
…
else语句
3.条件运算符
(a>b)?a:b条件为真,表达式取值a,否则取值b
4.Switch语句
Switch(表达式)
{
case常量表达式1:语句1;break;
case常量表达式2:语句2;break;