第一章 C语言概述

1、C程序的组成和形式的基本特点(P6-7)

(1)C程序是由函数构成的,一个C源程序至少且仅包含一个main函数,也可以包含一个main函数和若干个其他函数。

(2)一个函数由两部分组成

  • 函数的首部:即函数的第一行,包括函数名、函数类型、函数属性、函数参数名、参数类型

例:int  max  (int  x, int y)

一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。函数可以没有参数,如main()。

  • 函数体:即函数首部下面的花括号内的部分。如果一个函数内有多个花括号,则最外层的一对花括号为函数体的范围。函数体一般包括:声明部分、执行部分
  1. 运行C程序的步骤及每个步骤生成文件的类型及特点(P7)
  2. 第二章 算法

1、算法的定义

一个程序应包括①数据结构即对数据的描述;②算法也就是操作步骤。

计算机算法可分为两大类:数值运算算法和非数值运算算法。

2、算法的特性(P19)

  1. 有穷性;
  2. 确定性;
  3. 有零个或多个输入;
  4. 有一个或多个输出;
  5. 有效性。

3、描述算法的常用方法(P20-33)

  1. 自然语言;
  2. 用流程图表示算法。
  3. N—S图
  4. 计算机语言
  5. 伪代码

4、C程序算法的3种基本结构及其共同特点(P24-25)

三种基本结构:

  1. 顺序结构:最基本;
  2. 选择结构:又称选取结构或分支结构;
  3. 循环结构:又称重复结构;
    • 当(while)型循环;
    • 直到(until)型循环。

共同特点:

1. 只有一个入口;

2. 只有一个出口;

3. 结构内的每一部分都有机会被执行到;

4. 结构内不存在“死循环” 。

5、结构化程序设计的设计原则(P34)

  1. 自顶向下;
  2. 逐步细化;
  3. 模块化设计;
  4. 结构化编码。

第三章 数据类型、运算符与表达式

1、C语言的基本数据类型和构造数据类型(P37)

类型

所占字节

int

2

long

4

float

4

double

8

char

1

在程序中对用到所有数据都必须制定其数据类型。数据有常量和变量之分,它们分别属于以上这些类型。

2、字面常量和符号常量(P37-38)

在程序运行过程中,其值不能被改变的量称为常量,常量区分为整型常量和实型常量,常量一般从其字面形式即可判别,这种常量称为字面常量或者直接常量。

用一个标识符代表一个常量的符号,称为符号常量,即以标识符形式出现的常量(常量的表示用大写字母,变量的表示用小写字母),符号常量与变量不同,符号常量的值在其作用域内部能改变,也不能再被赋值,如果再用赋值语句给符号常量赋值是错误的。使用符号常量的好处:1.含义清楚2.在需要改变一个常量时能做到“一改全改”

3、标识符的命名规则(P39-40)

C语言规定标识符只能有字母、数字和下划线3中字符组成,且第一个字符必须为字母或下划线,合法的标识符可以作为变量名。编译系统将大写字母和小写字母认为是两个不同的字符。变量名的长度最好不要超过8个字符。在C语言中,要求对所有用到的变量做墙纸定义,也就是“先定义,后使用”,1.凡未被事先定义的,系统不把它认作变量名,这就能保证程序中变量名使用得正确。2.每一个变量被指定为一个确定类型,在编译时就能为其分配响应的存储单元。3.指定每一变量数以一个类型,这就便于在编译时据此检查在程序中要求对该变量进行的运算是否合法。例a%b是“求余”得到a/b的余数

4、整型常量的3种表示方式、整型变量的分类及其定义方式、整型常量的类型(P41-44)

整型常量即整常数的3种表示方式:

  1. 十进制整数;
  2. 八进制整数(以0开头);
  3. 十六进制整数(以0x开头)。

2进制

用两个阿拉伯数字:0、1;

8进制

用八个阿拉伯数字:0、1、2、3、4、5、6、7;

10进制

用十个阿拉伯数字:0到9;

16进制

0~9然后用A,B,D,E,F表示10,11,12,13,14,15

整型变量的分类:整型变量的基本类型符为int,根据数值的范围将变量定义为基本整型int、短整型short int/short、长整型long int/long在实际应用中,变量的值常常是正的,为充分利用变量的值的范围,可以将变量定义为“无符号/unsigned”类型,以指定是“无符号数”,或者为“有符号/signed”。如果前无符号,默认为有符号(signed)

归纳起来,可以用一下六种整形变量:

  1. 有符号基本整型[signed]int
  2. 无符号基本整型unsigned int
  3. 有符号短整型[signed]short[int]
  4. 无符号短整型unsigned short[int]
  5. 有符号长整型[signed]long[int]
  6. 无符号长整型unsigned long[int]

整型常量的类型:

  1. 一个整数,如果其值在-32768~2147483647范围内,则认为它是int型,它可以赋值给int型和long int型变量
  2. 一个整数,如果其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它是长整型,可以将它复制给一个long int型变量
  3. 一个整常量后面加一个字母u或U,可以认为是unsigned int型,如123456u
  4. 在一个整常量后面加一个字母l或L,则认为是long int型常量,如123l、123L

5、浮点型常量的2种表示方式、浮点变量的分类及其定义方式、浮点常量的类型(P45-47)

浮点型常量的2种表示方法:浮点数就是实数,有两种形式1.十进制小数形式。(由数字和小数点组成,必须有小数点)2.指数形式。如123e3或123E3代表123×注意字母e/E之前必须有数字,且e后面的指数必须为整数,一个浮点数可有多种指数表示方法

浮点变量的分类:

  1. 单精度(float型):有效数字6~7
  2. 双精度(double型):有效数字158~16
  3. 长双精度型(long double型):有效数字18~19

浮点变量的定义方式:float x,y;类似

浮点常量的类型:如果在数的后面加字母f或F(如1.65f),编译系统会把它们按单精度处理。一个浮点型常量可以赋给一个float型、double型或long double型变量,根据变量类型截取实型常量中相应的有效位数字。

例如:Float a;

A=111111.111;

由于folat型变量只能接受7位有效数字,因此最后两位小数不起作用。如果a改为double型,则能全部接受上述9位数字,并储存在变量a中。

6、字符常量的2种形式、字符变量、字符串常量(P48-52)

字符常量的2种形式:

  1. C语言的字符常量是用单撇号括起来的一个字符。如‘a’
  2. 常用的以“\”开头的特殊字符如下

字符形式

含义

Ascii代码

\n

换行

10

\t

水平指标(跳到下一个tab位置)

9

\b

退格,将当前位置移到前一列

8

\r

回车,将当前位置移到本行开头

13

\f

换页,将当前位置移到夏夜开头

12

\\

代表一个反斜杠字符“\”

92

\’

代表一个单引号字符

39

\”

代表一个双引号字符

34

\ddd

1到3位八进制数所代表的字符

\xhh

1到2位十六进制数所代表的字符

字符变量:字符变量用来存放字符常量,它只能放一个字符,不能存放字符串

例char c1,c2;c1=‘a’;c2=‘b’;

一个字符变量在内存中占一个字节。

小写字母的ASCII码比它的大写字母ASCII码大32,小大变为大小

7、变量初始化的时间(P53)

C语言允许在定义变量的同时使变量初始化。(int a=3;float f=3.56;char c=‘a’)

也可以使被定义的变量的一部分赋初值(int a,b,c=5;)

如果对几个变量赋予同一个初始值,应写成:int a=3,b=3,c=3;不能写成int a=b=c=3;

初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋初值的,相当于有一个复制语句。(int a=3;)

8、各类型数据间的混合运算(P54)

整型、浮点型、字符型数据间可以混合运算

9、C语言的运算符及其优先级和结合性(P55)

特殊%,模运算符或称求余运算符,%两侧均应为整型数据,且两个整数相除的结果为整数,如5%3为1,舍去小数部分

算术运算符的结合方向为自左至右或左结合性,并且先乘除后加减

10、强制类型转换(P56)

(double)a;(int)(x+y);

11、自增、自减运算(P57)

i++或++i

  1. 自增自减运算符只能用于变量,不能用于常量或表达式。例++(i-1)为错
  2. ++和—的结合方向是自右至左,例-i++合法,先输出-i再加一,(-i)++不合法

例:i=3;a=i++;b=i++;c=i++;d=a+b+c;最终输出d=12.

3. i+++j相当于(i++)+j,尽可能多的自左至右

12、赋值运算符、复合赋值运算符、赋值表达式(P59-64)

赋值运算符就是“=”

1.将浮点型数据(单双精度)赋给整型变量时,舍弃浮点数的小数部分

2.将整型数据赋给单双精度时,数值不变,但以浮点数形式存储到变量中,如将23赋值给float就得到23.00000

3.将一个double型数据赋给float变量时,截取其前面7位有效数字,存放到float变量中。例:float f;double d=123.456789e100;f=d;就出现溢出错误

将一个float型数据赋给double变量时候,数值不变,有效位数扩展到16位,在内存中以8个字节存储

4.字符型数据赋给整型变量

5.int、short、long型数据赋给char变量

例如int i =289;char c=‘a’;c=i;

6.将带有逗号的整型数据int赋给long型变量时,啊哟进行符号扩展,将整型数据16位送到long型低16位中,如果int型数为正值,则long型变量的高16位补零;如果int型变量为负值(符号位为1),则long型变量的高16位补1,以保持数值不变,反之如果将一个long型数据赋给一个int型变量,值将ong型数据中低16位原封不动地送到整型变量(截断)

7.unsignedint型数据赋给long int型变量时,不存在符号扩展问题

8.将非unsigned型数据赋给长度相同的unsigned型变量,也是原样赋值

复合赋值运算符:a+=3  等价于a=a+3;a+=b+3等价于a+=(b+3)

9. 赋值表达式一般形式<变量><赋值运算符><表达式>

赋值运算符左边的叫左值,右边的叫右值,凡是左值都可以作为右值

赋值表达式作为左值时应加括号

赋值运算符按照“自右至左”的结合顺序

(a=3*5)=4*3   先执行括号内能的运算,将15赋给a,然后执行4*3的运算,得12,再把12赋给a,故整个表达式的值为12

赋值表达式也可以包含复合的赋值运算符

a+=a-=a*a   先进行右边赋值表达式的计算,相当于a=a-a*a将a初值带入计算a,再进行左边赋值表达式的计算

13、逗号运算符及其优先级、逗号表达式

逗号表达式一般形式  表达式1,表达式2

赋值运算符的级别高于逗号运算符 a=3*5,a*4  a的值为15,表达式的值为60

x=(a=3,6*3)

赋值表达式,将逗号表达式的值赋给x,x的值等于18

x=a=3,6*3

逗号表达式,x的值为3,整个逗号表达式的值为18

第四章 顺序结构程序设计

1、C语句的分类(P69-71)

  1. 控制语句 9种

If…else…/for…/while…/do…while/continue/break/switch/goto/return

  1. 函数调用语句。函数调用语句由一个函数调用加一个分号构成

printf(“456123”)

  1. 表达式语句。表达式语句由一个表达式加一个分号构成,a=3
  2. 空语句
  3. 复合语句

2、赋值语句(P71)

If((a=b)>0)t=a;先将b的值赋给a,如果a大于0,则t=a

3、putchar()、getchar()函数(P73-74)

putchar函数(字符输出函数)作用是向终端输出一个字符。其一般形式为

putchar(c)

putchar函数可以在屏幕上输出字符,也可以输出控制字符,如putchar(‘\n’)作用是输出一个换行符,使输出的当前位置移到下一行的开头

getchar函数(字符输入函数)的作用是从终端输入一个字符,其一般形式为getchar()例如char c;c=getchar();putchar(c);此时屏幕上将输出c的输入值

4、printf()、scanf()函数及其对应的格式控制符(P74-86)

printf格式输出函数,作用是向终端输出若干个任意类型的数据

一般格式为printf(“格式控制”,输出表列)

例printf(“%d,%c\n”,i,c)

格式控制作用:

  1. 格式说明(%..):将输出的数据转换为指定的格式输出
  2. 普通字符。按原样输出

格式控制中的普通字符按原样输出

例printf(“%d  %d”,a,b)

printf(“a=%d  b=%d”,a,b)

在第二个函数中双引号内的字符,除了两个%d以外,其他的普通字符按原样输出,如果a,b的值分别为3,4,则输出为a=3  b=4中间有空格

  1. 格式字符:
  • d格式符。%d按十进制整数数据实际长度输出;%md指定宽度(位数)m,如果数据位数小于m,则左端补空格;%ld长整型数据
  • o格式符。以八进制整数形式输出
  • x格式符。以十六进制数形式输出
  • u格式符。以十进制整数形式输出无符号数
  • c格式符。用来输出一个字符,一个整数,只要它的值在0~255之间,也可以用%c使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。
  • s格式符。用来输出一个字符串。%s;%ms,输出的字符串占m列,如果字符串本身长度大于m,则突破m限制,将字符串全部输出,如果小于m,则左补空格;%-ms,如果串长小于m,则在m列范围内,字符串向左靠,右补空格;%m.ns,输出m列,但只取字符串左端n个字符。这n个字符输出在m列右侧,左补空格;%-m.ns,取n个字符输出在m列范围的左侧,右补空格,如果n>m,则m自动取n值,即保证n个字符正常输出
  • f格式符。用来输出实数(包括单双精度),以小数形式输出。%f,不指定字段宽度,使整数部分全部输出,并输出6位小数。但注意,在输出的数字中并非全部数字都是有效数字,单精度实数的有效数字一般为7位;%m.nf,指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格;%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。
  • e格式符。以指数形式输出实数
  • g格式符。用来输出实数,根据数值的大小,自动选f格式或者e格式,且不输出无意义的零。P80

格式字符

说明

d ,i

以带符号的十进制形式输出整数

O

以八进制无符号形式输出整数

X,x

以十六进制无符号形式输出整数,用x则百偶是输出十六进制数的a~f时以小写形式输出。用X时,则以大写字母输出

u

以无符号十进制形式输出整数

c

以字符形式输出,只输出一个字符

s

输出字符创

f

以小数形式输出单双精度数,隐含输出7位小数

e,E

以指数形式输出是说,用e时指数以e表示,用E时指数以E表示

g,G

选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0.用G时,若以指数形式输出,则指数以大写表示

字符

说明

l

用于长整型整数,可加载个师傅d,o,x,u前面

m

数据最小宽度

n

对实数,表示输出n位小数,对字符串,表示截取的字符个数

-

输出的数字或字符在域内向左靠

注意:除了X,E,G外,其他格式字符必须用小写字母;可以在格式控制字符串内包含转义字符;格式符之间可以加入修饰符;用连续两个%来输出%

scanf(格式控制,地址表列)

scanf(“%d%d%d”,&a,&b,&c)

&为地址运算符,&a指a在内存中的地址。

1.用%d%d%d输入数据时不能用逗号做两个数据间的分隔符可用空格

如果%d和%d之间有n个空格,则输入时对应的位置应该有多于n个空格来分隔

总之,%d与%d之间有什么简单符号,输入信息时候就要将这些符号加上,或者格式控制里是a=%d,则输入数据时候也得输入a=某个数据

2.用%c格式输入字符时候,空格字符和转义字符都作为有效字符输入

例如:scanf(“%c%c%c”,&c1,&c2,&c3);若输入“a空格b空格c”则c1为a,c2为空格,c3为b,正确的输入法为“abc”字符间没有空格

3.在输入数据时候,遇到以下情况时,认为该数据结束①遇空格,或按回车,或跳格键;②指定宽度结束,如%3d;③遇非法输入

第五章 选择结构程序设计

1、关系运算符及其优先级和结合性、关系表达式(P91-92)

优先级:等不等于  低于  大小等于;算术运算符>关系运算符>赋值运算符

理解:关系表达式,表达式的值(1为真,0为假)

例:设a=3,b=2,c=1有d=a>b  则d的值为1;f=a>b>c  则f的值为0.

2、逻辑运算符及其优先级和结合性、逻辑表达式及其求值过程的特点(P91-92)

逻辑运算符与(&&)或(||)非(!)

优先级:

  • 非(!)→与(&&)→或(||)    谐音记为“飞鱼火”;
  • 逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符

逻辑表达式:C语言判断一个量是否为真时,以0代表假,以非0代表真,即将一个非0的数值认作为真。

若a=4则!a的值为0;4&&0||2的值为1

求值过程特点:略

3、if语句的三种结构(P95-96)

第一种:if(表达式)语句

例:if(x>y)frintf(“%d”,x);

第二种:if(表达式)语句1else语句2

例:if(x>y)  printf(“%d”,x); else  printf(“%d”,y)

第三种:if(表达式1)语句1  else if(表达式2)语句2…..

例:if(number>500)cost=0.15;else if(number>300)cost=0.10;else cost=0;

特点:1.if(3)printf(“%d”,’a’);2.第二,三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。3.当if和else后面有多个操作语句时,用{}将几个语句括起来称为一个符合语句。注意,花括号外面不需要再加分号,因为{}内是一个完整的复合语句

4、if语句的嵌套及if与else的配对关系(P99)

5、条件运算符及其优先级和结合性及其求值过程(P102-104)

例子:max=(a>b)?a:b;

“(a>b)?a:b”是一个条件表达式,如果(a>b)为真,则条件表达式取值a;否则取值b。条件运算符优先级别低于关系运算符和算术运算符。故上式中括号可以省略

条件运算符的结合方向为“自右至左”

a>b?a:c>d?c:d  相当于a>b?a: (c>d?c:d)

例子:a>b?(a=100):(b=100)    a>b?printf(“%d”,a):printf(“%d”,b)

6、switch语句及其执行过程、break语句的作用(P102-104)

switch(grade)

{

case‘A’:printf(“85~100\n”);

case ‘B’:printf(“0~84\n”);

defaule:printf(“error\n”);

}

说明:case只起语句标识作用,当语句执行时,此case一旦执行其后面的语句将就此开始全部执行下去,不再进行判断,为使在执行此case后跳出结构,用一个break语来达到刺目的。故需在以上语句的每一个case语句分号后面加(break;)

第六章 循环控制

1、while语句(P114)

while(表达式)语句;特点:先判断表达式,后执行语句。

例子:while(i<=100){sum=sum+I;i++;}

2、do-while语句(P115)

do 循环体语句  while(表达式);特点:先执行循环体,后判断循环条件是否成立

例子:do{sum=sum+I;i++;}while(i<=100);printf(“%d\n”,a);

3、for语句(P118)

for(表达式1;表达式2;表达式3)语句

for(循环变量赋初值;循环条件;循环变量增值)

for(i=1;i<=100;i++)sum=sum+i;

说明:1.表达式1可以省略(但分号不可以省略),此时应在for语句之前给循环变量赋初值;2.如果表达式2省略,循环无终止地进行下去;3.表达式3也可以省略,另找路径保证循环正常结束;4.可以省略表达式1和表达式3而使只有表达式2循环条件。如for(;i<=100;){sum=sum+i;i++}

4、循环的嵌套(P121)

while循环,do…while循环,for循环三种循环可以嵌套

5、break、continue语句(P122)

break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句,不能用于循环语句和switch语句之外的任何其他语句中。

continue作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

两者区别是continue语句只结束本次循环,而不是种植整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

6、辗转相除法求最大公约数的基本原理

第七章 数组

1、数组的定义方式、下标范围(P131、135)

类型说明符  数组名[常量表达式]  例int a[3]  表示定义了一个整数数组,数组名为a,有3个元素。注意,下标是从0开始的(可以使整型常量或整型表达式),C语言不允许对数组的大小做动态定义。

int a[10];t=a[6];

2、数组元素的引用方式、数组的初始化(P132、136)

全赋初值

int a[3]={1,2,3}  在全赋初值的前提下可以写成int a[]={1,2,3}

赋初值一部分

int a[3]={1,2}

全部为0

int a[3]={0}

3、起泡法排序的原理(P134)

将相邻两个数比较,将大(小)的调到前边

4、二维数组相关

表示:float a[3][4],b[5][10];定义a为3行4列的数组,b为5行10列的数组。(区别a[3,4])

引用:数组名[下标][下标] 例a[2][3],不要写成a[2,3]

初始化:

  • 分行给二维数组赋初值,例。int a[3][2]={{4,5}{9,8},{4,2}};
  • 将所有数据写在一个花括号内,按数组排列顺序对个元素赋初值,例int a[3][2]={1,2,3,4,5,6,}
  • 对部分元素赋初值,例,int a[3][2]={{4},{},{7}}未赋值的元素自动为0
  • 第一维可以不指定,但第二维不能省略int a[][2]={1,2,5,6,8,9}系统会根据第二维的长度自动算出第一维
  • 还可以int a[][4]={{0,0,3},{},{0,10}};

5、字符数组及其初始化、字符数组的输入输出(P144)

同前面的定义方法类似char c[10]

字符型和整型是互相通用的,因此可以定义一个整型数组,用来存放字符型数据,例:char c[10]; c[0]=’a’;  char a[]={‘B’,’O’,’Y’};

初始化:char c[3]={‘B’,’O’,’Y’};如果括号内初值个数大于数组长度,按语法错误处理,如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符

字符串的输入输出:逐个输入输出,用格式符%c输入或输出;或将整个字符串一次性输入或输出,用%s格式符

char c[]={“I am happy”}等同于char c[]=”I am happy”(以上两种字符串长度为11而不是10)效果等同于char c[]={‘I’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’}

char c[5]={‘C’,’h’,’i’,’n’,’a’}等同于char c[6]={‘C’,’h’,’i’,’n’,’a’,’\0’}

6、字符串处理函数(P146)

puts(字符数组)作用是将一个字符串输出到终端,puts输出的字符串中可以包含转义字符例char str[]={“China\n Bei jing”};puts(str);

gets(字符数组)作用是从终端输入一个字符串到字符数组,并且得到一个函数值。

例gets(str)  键盘输入Computer[回车]

注意:puts和gets函数只能输出或输入一个字符串,如puts(str1,str2)为错误

strcat(字符数组1,字符数组2)作用是连接两个字符数组中的字符串,把字符串2接到1的后面,结果放在字符数组1中,函数调用后得到字符数组1的地址

例char str1[30]={“I  am”};char str2[]={“a boy”};printf(“%s”,strcat(str1,str2));输出I am a boy

剩下的函数省略..

第八章 函数

1、函数的调用特点及其分类(P155-156)

特点:

  • 一个源程序文件可以为多个C程序共用
  • 一个源程序文件时一个编译单位,在程序编译时是以源程序文件为单位进行的,而不是以函数为单位进行编译的
  • C程序的执行时从main函数开始的
  • 所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的。函数间可以互相调用,但不能调用main函数,main函数时系统调用的。

分类:从用户使用角度看,分为标准函数和用户自己定义的函数

从函数的形式看,分为无参函数和有参函数

2、函数的定义方法(P156-157)

①无参函数定义的一般形式

类型标识符 函数名()

{

声明部分

语句部分

}

void main()

{

……….

}

②有参函数定义的一般形式

类型标识符 函数名(形式参数表列)

{

声明部分

语句部分

}

int max(int x,int y)

{

int z;

z=x>y?x:y;

return(z);

}

③空函数

类型说明符 函数名()

{   }

例如 void dummy()

{   }

3、函数的参数、实参和形参之间的数值传递、函数值(P158-161)

4、函数的调用方式、函数的声明、函数原型(P161-166)

5、函数的嵌套调用(P167)

6、函数的递归调用及应用(P171)

7、数组作为函数的参数、实参数组和形参数组之间的关系(P177)

8、选择法排序的原理(P181)

9、局部变量、全局变量(P184-185)

在函数内定义的变量是局部变量,在函数之外定义的变量称为外部变量,外部变量是全局变量也称全程变量。全局变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。

例如

int p=1,q=5;

float f1(int a)

{

int b,c;

}

char f2(intx,inty)

{

int x,int y

}

10、变量的分类及其存储类别(P188)

11、extern、static的应用(P193-196)

12、内部函数和外部函数(P199)

第九章 预处理命令

1、预处理命令的处理时间(P204)

2、宏定义、不带参宏、带参宏、格式宏、宏的有效范围控制(P204-211)

3、文件包含、两种文件包含形式(P211-214)

第十章 指针

1、变量的地址和变量的值(P221)

一个变量的地址称为该变量的“指针”。如果有一个变量专门来存放另一变量的地址(指针),则它称为“指针变量”。

2、指针和指针变量(P221)

3、指针变量的定义方式、引用方式(P222)

4、指针变量作为函数参数(利用函数来改变实参的值)、实参和形参的值传递(P225)

5、指向数组元素的指针(P229)

6、一维数组元素和地址的表示方法、利用指针处理数组元素(P229)

7、数组和指针作为函数参数时如何利用指针处理数组元素(P235)

8、指向二维数组的指针的定义方式、二维数组元素和地址的表示方法(P242)

9、指向字符串的指针、利用它来处理字符串

1、goto循环

例6.1求1+2+3+…+100

# include <stdio.h>

void main()

{

int i=1,sum=0;

loop: if(i<=100)

{sum=sum+i;

i++;

goto loop;}

printf("%d",sum);

}

2、while循环

例6.2

#include <stdio.h>

void main()

{

int i=1,sum=0;

while(i<=100)

{

sum=sum+i;

i++;

}

printf(“%d”,sum);

}

3、do…while循环

#include<stdio.h>

void main()

{

int i=1,sum=0;

do

{

sum=sum+i;

i++;

}

while (i<=100);

printf(“%d”,sum);

}

4、for(循环变量赋初值;循环条件;循环变量增值)

#include <stdio.h>

void main()

{

int i,sum=0;

for(i=1;i<=100;i++)sum=sum+i;

printf(“%d”,sum);

}

表达式省略,注意,表达式后分号不能省略;

5、break语句不能用于循环语句和switch语句之外的任何其他语句;

continue语句和break语句的区别是:continue只结束本次循环,break则终止整个循环过程

常用知识及例题总结:

  1. 优先级比较谨记:

关系运算符:等不等于 低于 大于小于

逻辑运算符:飞鱼火(非>与>或)注意,!高于算术运算符,&&||低于它

算术运算符:先乘除后加减

综合起来有:!> * / > = != >&&>||

非>乘除>加减>非>或

  1. “%”是取余,仅留余数;“/”是取商,舍去小数部分;
  2. 1Byte(字节)=8bit(位)即一个字节包含8个二进制位;
  3. a=3*5,a*4  a的值为15,逗号表达式的值为60
  4. %d叫“格式字符串”(格式符)
  5. 在程序中用到系统提供的标准函数库中的输入输出函数时,应在程序的开头写上下面一行:#include<stdio.h>
  6. main叫主函数
  7. scanf中&d的&含义是取地址
  8. 计算计算法分为两大类别:数值运算算法和非数值运算算法
  9. define(第九章)
  10. 标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线
  11. 八进制0开头,十六进制0x开头
  12. 有符号整型范围为-32768~32767,无符号整型范围0~-1(65535),一个整常量后面加u或U,认为是unsigned int型,加l或L为long int型
  13. 单精度有效位数7位,双精度16位,long double为18~19
  14. 字符常量用‘’括起来,如‘a’
  15. ‘\r’叫转义字符,意思是将反斜杠后面的字符转换成另外的意义,\ddd意思是用一个ASCII码(八进制)表示一个字符,\xdd表示用一个十六进制表示一个字符,\t作用为跳格,跳到下一个制表位置,占8列
  16. 指数形式表示浮点数时候e之前必须有数字,e之后指数必须为整数
  17. %f是住处浮点数时制定的格式符,作用是制定该实数以小数形式输出,7位;%c以字符形式输出;%d以整数形式输出;
  18. 字符型变量以ASCII码放到存储单元中,然后以二进制形式存放于内存中
  19. 字符数据与整型数据可以互相赋值
  20. 字符串常量用“”括起来,字符常量用‘’括起来
  21. define定义函数的用法:程序中用#define命令行定义字符X为常量(456),以后凡是本程序中出现的X都代表此常量(456);这种用一个标识符代表一个常量的符号称为符号常量,即以标识符出现的常量,注意,符号常量和变量不同,符号常量的值在其作用域内不能改变,也不能再被赋值,习惯上符号常量名用大写,变量名用小写。例:#define PRICE 30
  22. 条件运算符max=(a>b)?a:b;条件运算符的结合方向为“自右至左”
  23. switch语句记得case句结尾加break。

c语言各章知识重点(谭浩强版本)相关推荐

  1. C语言程序设计第五版谭浩强 第七章答案

    C语言程序设计第五版谭浩强著 第七章答案 第七章 用函数实现模块化程序设计 1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.两个整数由键盘输人. 题目解析: ...

  2. C语言程序设计第五版谭浩强课后答案 第九章习题答案

    C语言程序设计第五版谭浩强第九章答案 1.定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天,注意闰年问题. 2.写一个函数days,实现第1 题的计算.由主函数将年.月.日传递给days ...

  3. C语言程序设计第五版 谭浩强 第四章 课后习题 答案

    谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...

  4. 谭浩强c语言第六章兔子数列,谭浩强 C语言 第6章_循环.ppt

    谭浩强 C语言 第6章_循环 第六章 本章要点 循环的基本概念 不同形式的循环控制 多重循环问题 主要内容 6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循 ...

  5. 谭浩强c语言不讲位运算呢,谭浩强C语言教程第十二章-位运算.doc

    谭浩强C语言教程第十二章-位运算 12位运算1 12.1位运算符C语言提供了六种位运算符:1 12.1.1按位与运算1 12.1.2按位或运算2 12.1.3按位异或运算2 12.1.4求反运算3 1 ...

  6. 谭浩强c语言第7章14题,谭浩强C语言课件第7章.ppt

    谭浩强C语言课件第7章.ppt 第7章 自定义数据类型 7.1 结构体类型 7.2 共用体 7.3 枚举类型 7.4 用typedef声明类型 C++提供了许多种基本的数据类型(如int.float. ...

  7. 谭浩强c语言第7章14题,谭浩强C语言_第7章_函数2.ppt

    谭浩强C语言_第7章_函数2 第八章 函数 函数概述 #include void main() { float average(float array[10]); /* 函数声明 */ float s ...

  8. c语言程序设计曾怡课件,谭浩强 C语言程序设计教程(由曾怡视频修改) 第8章 函数课件...

    谭浩强 C语言程序设计教程(由曾怡视频修改) 第8章 函数课件 一般搬家时转盘与大梁间是固定的,开钻前应根据转盘对井架进行校正,如果中途换转盘,则要在空负荷下根据井架对转盘进行校正 一般搬家时转盘与大 ...

  9. c语言程序灵魂编译后,谭浩强C程序设计第4版精讲视频课程

    谭浩强<C程序设计>(第4版)网授精讲班[教材精讲+考研真题串讲] 本课程由资深辅导教师马丽梅老师讲授,全面讲解教材的重点.难点.考点,教会学员理解并掌握该教材中的基本概念.基本原理和基本 ...

  10. 谭浩强c语言不讲位运算呢,谭浩强C语言_CHAR12位运算.DOC

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 谭浩强C语言_CHAR12位运算.DOC11页 ...

最新文章

  1. 2.1.3 正则化(归一化)的用处以及何时使用
  2. (转)WebSocket的原理
  3. 在几何画板中如何制作圆柱的侧面展开动画_基本尺规作图过程展示 | 几何画板...
  4. pydroid3怎么保存_pydroid3
  5. jQuery使用(十五):when()方法的使用
  6. 网络工程师需要具备哪些素质或专业技术
  7. mysql 从库重新同步_mysql从库删除数据重新同步
  8. 文件系统:使用 yum 安装软件包
  9. quartus的modelsim仿真
  10. SPSS26中文免费版下载和安装教程
  11. camera理论基础和工作原理
  12. matlab 康托尔集,康托尔集的性质特点
  13. 控制台安装mysql步骤_mysql5.6安装步骤-win7系统
  14. 一张图让你了解五险一金
  15. 如何在HTML页面中编写大于号和小于号?(HTML实体)
  16. 微信公众平台开发(六) 翻译功能开发
  17. int与Integer、new Integer()
  18. TI Sitara系列AM64x核心板(双核ARM Cortex-A53)软硬件规格资料
  19. 计算机工程师系列职称答辩,评中级工程师职称需要答辩吗?申报人需哪些条件?...
  20. 数据库PostrageSQL-WAL配置

热门文章

  1. [BZOJ1006]神奇的国度
  2. jquery 省市区联动插件
  3. (转载)图像处理(卷积)
  4. linux git ssh免密拉取 配置过程
  5. java 扫描文件_JAVA文件扫描(递归)的实例代码
  6. oracle 能被2整除_整除专题基础篇 “刀法四式”
  7. QML Text 文字元素
  8. version `GLIBC_2.14' not found 解决方法.
  9. 开发笔记1 关于指针,结构体使用指针的问题
  10. IDEA打开窗口的数量及打开窗口的排列方式调整