您的位置:

c语言教程第一章概述ppt课件,c语言教程doc

本文目录一览:

哪能找到石油大学 曾怡教授C语言的ppt? 好心人发到这个邮箱liu323121@126.com,加分

油大学曾怡副教授的C语言视频讲座,和谭浩强写的《C程序设计》教的一样。

简介:

C程序设计视频教程(曾怡):本套视频教程由曾怡副教授讲解,使用教材为:《C程序设计》 谭浩强 清华大学出版社出版。是难得的C语言学习视频教程。全程共30讲,每讲45分钟左右,CSF视频格式。讲课内容如下:

第一讲 第一章 C语言概述

第二讲 第二章 程序的灵魂—算法

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

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

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

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

第四章 最简单的C程序设计—顺序程序设计

第七讲 第四章 最简单的C程序设计—顺序程序设计

第八讲 第四章 最简单的C程序设计—顺序程序设计

第九讲 第五章 选择结构的程序设计

第十讲 第五章 选择结构的程序设计

第十一讲 第五章 选择结构的程序设计

第十二讲 第六章 循环结构程序设计

第十三讲 第六章 循环结构程序设计

第十四讲 第六章 循环结构程序设计

第十五讲 第六章 循环结构程序设计

第七章 数组

第十六讲 第七章 数组

第十七讲 第七章 数组

第十八讲 第七章 数组

第十九讲 第七章 数组

第二十讲 第七章 数组

第八章 函数

第二十一讲 第八章 函数

第二十二讲 第八章 函数

第二十三讲 第八章 函数

第二十四讲 第十章 指针

第二十五讲 第十章 指针

第二十六讲 第十章 指针

第二十七讲 第十章 指针

第十一章 结构体

第二十八讲 第十一章 结构体

复习总结第一讲

复习总结第二讲

c语言教程的目录

第0章从零开始

0.1为什么要用C

0.2ANSIC标准

0.3从C到C++

0.4从C和C++到Java

第1章C语言概述

第1章 C语言概述

1.1 C语言发展简史

1.2 C语言的特点

1.3 简单C语言程序举例

1.4 C语言程序的组成与结构

1.5 C语言程序的开发步骤

小结

习题

第2章 算法与程序设计基础

2.1 算法概述

2.1.1 算法的概念

2.1.2 算法的特征

2.2 算法的常用表示方法

2.2.1 自然语言

2.2.2 流程图

2.2.3 N—S流程图

2.3 程序设计典型算法

2.4 结构化程序设计方法

小结

习题

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

3.1 C语言的基本符号

3.1.1 标识符

3.1.2 常量

3.1.3 变量

3.1.4 关键字

3.2 C语言的数据类型

3.2.1 整型数据

3.2.2 实型数据

3.2.3 字符型数据

3.3 运算符和表达式

3.3.1 算术运算符和算术表达式

3.3.2 赋值运算符和赋值表达式

3.3.3 逗号运算符和逗号表达式

3.4 数据类型转换

3.4.1 不同数据类型的数据间的混合运算

3.4.2 强制类型转换

3.5 自增运算和自减运算

3.6 位运算

小结

习题

第4章 数据的输入和输出

4.1 数据的输出

4.1.1 格式输出函数printf

4.1.2 字符输出函数putchar

4.2 数据的输入

4.2.1 格式输入函数scanf

4.2.2 字符输入函数getchar

4.3 应用举例

小结

习题

第5章 选择结构

5.1 关系运算符和关系表达式

5.1.1 关系运算符

5.1.2 关系表达式

5.2 逻辑运算符和逻辑表达式

5.2.1 逻辑运算符

5.2.2 逻辑表达式

5.3 选择语句

5.3.1 if语句

5.3.2 if语句的嵌套

5.3.3 switch语句

5.4 条件运算符和条件表达式

5.5 应用举例

小结

习题

第6章 循环结构

6.1 goto语句与标号

……

第7章 数 组

第8章 函数

第9章 指针

第10章 结构体与共用体

第11章 文件

第12章 面向对象程序设计与C++基础

第13章 数据结构基础

附录A C语言的关键字

附录B 双目算术运算中两边运算类型转换规律

附录C 运算符的优先级和结合性

附录D 常用字符与ASCII码对照表

附录E 常用库函数

参考文献

C语言,高级编程

呵呵,这位兄台很像我前几个月的样子。学c以前觉得c应该什么都能实现。可是能学完发现自己离windows还有很远的距离。不过我现在不这么想了。开发平台不是问题所在。其实就像上面那位兄台所说得C只是一个工具。学会了c就相当于会用了一个工具。而真正的学习才刚刚开始。一个计算机的体系是与很多东西组成的。想写出很好程序就要知道怎么用好自己的这支笔。下面是我对计算机体系的一点浅显的认识:

1、计算机组成原理。这个就不多说了,学编成的连我们的劳动对象都不清楚那还玩什么啊?

2、数据结构和算法。其实所谓的程序就是对数据进行处理,而处理的数据当然要有存储的方式,而应对这些数据存储的方式应运而生了算法。也就是处理问题的方法。这是真正编程的灵魂。十分重要。

3、操作系统。学完了上说的那些东西你还会认为操作系统很神秘。那我们就来亲手掀开他神秘的面纱,知道操作系统都为我们做了些什么是一件很令人愉快的事。

4、编译原理。这门课有点难度,不过也很重要,其中有很多思维方式需要掌握,不多说了,看了就知道了。

懂了上面我说的这些东西,我想你对计算机程序设计会有一种新的认识。可千万不要被吓倒了哦。每个出色的程序员都是这么混出来的。为成为一名优秀的程序员而努力吧!

求C语言教程

我给你电子文档笔记吧~~

复制来的....

第一章 概述

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含义同上,靠左对齐,如果nm,则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(表达式) 语句1 else 语句2

If(表达式1) 语句1

Else if(表达式2) 语句2

else 语句n

3. 条件运算符

(ab)?a:b 条件为真,表达式取值a,否则取值b

4. Switch语句

Switch(表达式)

{

case 常量表达式1:语句1; break;

case 常量表达式2:语句2; break;

case 常量表达式n:语句n; break;

default :语句n+1;

}

Top of Page

第五章 循环控制

1. 几种循环语句

goto语句(现已很少使用)

while语句 先判断表达式后执行语句

do-while语句 先执行语句后判断表达式

for语句

2. Break语句和continue语句

Break语句用于跳出循环,continue用于结束本次循环。

Top of Page

第六章 数组

1. 一维数组

c规定只有静态存储(static)和外部存储(extern)数组才能初始化。给数组初始化时可以不指定数组长度。

2. 二维数组

3. 字符数组

部分字符串处理函数

puts(字符数组) 将一个字符串输出到终端。

gets(字符数组) 从终端输入一个字符串到字符数组,并且得到一个函数值,为该字符数组的首地址

strcat(字符数组1,字符数组2) 连接两个字符数组中的字符串,数组1必须足够大。

Strcpy(字符数组1,字符串2) 将字符串2拷贝到字符数组1中。

Strcmp(字符串1,字符串2) 比较字符串,相等返回0,字符串1字符串2,返回正数,小于返回负数。

Strlen(字符数组) 求字符串长度。

Strlwr( 字符串) 将字符串中的大写字母转换成小写

Strupr( 字符串) 将字符串中的小写字母转换成大写

以上是一些比较常用的字符串处理函数。

Top of Page

第七章 函数

1. 关于形参和实参的说明

① 在函数被调用之前,形参不占内存

② 实参可以是常量、变量或表达式

③ 必须指定形参的类型

④ 实参与形参类型应一致

⑤ 实参对形参的数据传递是"值传递",即单向传递

2. 函数返回值

如果想让函数返回一个值,在函数中就要用return语句来获得,在定义函数时也要对函数值指定类型,如果不指定,默认返回整型。

3. 函数调用

1)注意在函数调用时实参和形参的个数、类型应一一对应。对实参表求值的顺序是不确定的,有的系统按自左至右,有的系统则按自右至左的顺序。这一点要注意。

2)函数调用的方式:函数语句,函数表达式,函数参数

3)如果主调函数和被调函数在同一文件中,并且主调函数在前,那么一般要在主调函数中对被调函数进行说明。除非:(1)被调函数的返回值类型为整型或字符型(2)被调函数出现在主调函数之前。

4)对函数的说明和定义是不同的,定义是指对函数功能的确立,包括指定函数名,函数值类型,形参及其类型、函数体等。说明则只是对已定义的函数返回值类型进行说明,只包括函数名、函数类型以及一个空的括弧,不包括形参和函数体。

5)c语言允许函数的递归调用(在调用一个函数的过程中又出现直接或间接的调用该函数本身)。

4. 数组作为函数参数

1)数组元素作为函数参数 和一般变量相同

2)数组名作参数应该在主调和被调函数分别定义数组,形参数组的大小可以不定义。注意:数组名作参数,不是单向传递。

3)多维数组作参数,在被调函数中对形参数组定义时可以省略第一维的大小说明,但不能省略第二维或更高维的说明。

5. 局部变量和全局变量

从变量作用域角度分,变量可分为局部变量和全局变量。

1)内部变量(局部变量)

在一个函数内定义,只在函数范围内有效的变量。

2)外部变量(全局变量)

在函数外定义,可以为本文件其它函数所共用,有效范围从定义变量的位置开始

到本文件结束。建议尽量少使用全局变量,因为它在程序全部执行过程中都占用

资源,而且使函数的通用性降低了。如果在定义外部变量之前的函数要想使用该

外部变量,则应在该函数中用extern作外部变量说明。

6. 动态存储变量与静态存储变量

从变量值存在的时间(生存期)角度来分,可分为静态存储变量和动态存储变量。静态存储指在程序运行期间给变量分配固定的存储空间,动态存储指程序运行期间根据需要动态的给变量分配存储空间。

C语言中,变量的存储方法分为两大类:静态存储类和动态存储类,具体包括:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。

1) 局部变量的存储方式

函数中的局部变量如不作专门说明,都之auto的,即动态存储的,auto可以省略。局部变量也可以定义为static的,这时它在函数内值是不变的。静态局部变量如不赋初值,编译时系统自动赋值为0,动态局部变量如不赋初值,则它的值是个不确定的值。C规定,只有在定义全局变量和局部静态变量时才能对数组赋初值。为提高执行效率,c允许将局部变量值放在寄存器中,这种变量叫register变量,要用register说明。但只有局部动态变量和形式参数可以作为register变量,其它不行。

2) 全局变量的存储方式

全局变量在函数外部定义,编译时分配在静态存储区,可以在程序中各个函数所引用。多个文件的情况如何引用全局变量呢?假如在一个文件定义全局变量,在别的文件引用,就要在此文件中用extern对全局变量说明,但如果全局变量定义时用static的话,此全局变量就只能在本文件中引用了,而不能被其它文件引用。

3) 存储类别小结

从作用域角度分,有局部变量和全局变量

局部变量:自动变量,即动态局部变量(离开函数,值就消失)

静态局部变量(离开函数,值仍保留)

寄存器变量(离开函数,值就消失)

(形参可定义为自动变量和寄存器变量)

全局变量:静态全局变量(只限本文件引用)

全局变量(允许其它文件引用)

从存在的时间分,有静态存储和动态存储

动态存储:自动变量(本函数内有效)

寄存器变量(本函数内有效)

形参

静态存储:静态局部变量(函数内有效)

静态全局变量(本文件内有效)

全局变量(其它文件可引用)

从变量值存放的位置分

静态存储区:静态局部变量

静态全局变量

全局变量

动态存储区:自动变量和形参

寄存器内:寄存器变量

7. 内部函数和外部函数

内部函数:只能被本文件中的其它函数调用,定义时前加static,内部函数又称静态函数。

外部函数:可以被其它文件调用,定义时前加extern,如果省略,则隐含为外部函数,在需要调用此函数的文件中,一般要用extern说明。

Top of Page

第八章 预编译处理

c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译

1. 宏定义

不带参数的宏定义

用一个指定的标识符来代表一个字符串,形式:#define 标识符 字符串

几点说明:

1) 宏名一般用大写

2) 宏定义不作语法检查,只有在编译被宏展开后的源程序时才会报错

3) 宏定义不是c语句,不在行末加分号

4) 宏名有效范围为定义到本源文件结束

5) 可以用#undef命令终止宏定义的作用域

6) 在宏定义时,可以引用已定义的宏名

带参数的宏定义

定义形式:#define 宏名(参数表) 字符串

这和函数有些类似,但他们是不同的:

1) 函数调用时,先求实参表达式值,再代入形参,而宏只是简单替换,并不求值

2) 函数调用是在程序运行时分配内存的,而宏展开时并不分配内存,也没有返回值的概念

3) 对函数中的实参和形参都要定义类型,而且要求一致,宏名无类型,其参数也没有类型。

4) 函数只有一个返回值,而宏可以得到几个结果

5) 宏替换不占运行时间,只占编译时间,而函数调用占运行时间

2. 文件包含处理

#include "文件1" 就是将文件1的全部内容复制插入到#include位置,作为一个源文件进行编译。

在#include命令中,文件名可以用" "也可以用 ,假如现在file1.c中包含file2.h文件," "表示系统先在file1.c所在目录中找file2.h,如果找不到,再按系统指定的标准方式检索目录, 表示系统直接按指定的标准方式检索目录。所以用" "保险一点。

3. 条件编译

条件编译指不对整个程序都编译,而是编译满足条件的那部分。条件编译有以下几种形式:

1)#ifdef 标识符

程序段1

#else

程序段2

#endif

它的作用:当标识符在前面已经被定义过(一般用#define),则对程序段1编译,否则对程序段2编译。

2)#ifndef 标识符

程序段1

#else

程序段2

#endif

它的作用和#ifdef相反,当标识符没被定义过,对程序段1编译,否则对程序段2编译。

3)#if 表达式

程序段1

#else

程序段2

#endif

它的作用:当表达式值为真(非0)时,对程序段1编译,否则对程序段2编译。

Top of Page

第九章 指针

指针说白了就是地址。指针变量就是用来存放指针(地址)的变量。

1. 变量的指针和指向变量的指针变量

读起来很拗口,说白了就是变量的地址和用来存放变量地址的地址变量。因为一个变量在编译的时候系统要为它分配一个地址,假如再用一个变量来存放这个地址,那么这个变量就叫做指向变量的指针变量,也就是用来存放变量地址的这么一个变量。所谓"指向"就是指存放××的地址,如指向变量的指针变量,"指向"就是指用来存放变量的地址,再如指向数组的指针变量,"指向"就是指存放数组的地址。只要理解了这个,指针也就不难了。另外,还有指向字符串的指针变量,指向函数的指针变量,指向指针的指针变量等。

1) 指针变量的定义

形式:类型标识符 *标识符 如:int *pointer;

要注意两点:*表示pointer是个指针变量,在用这个变量的时候不能写成*pointer, *pointer是pointer指向的变量。一个指针变量只能指向同一个类型的变量。如上面

pointer只能指向int型变量。

2)指针变量的引用

两个有关的运算符:

取地址运算符 a 就代表变量a的地址

* 指针运算符 *a 就代表变量a的值

2. 数组的指针和指向数组的指针变量

数组的指针指数组的起始地址,数组元素的指针指数组元素的地址。

1)指向数组元素的指针变量的定义与赋值

定义和指向变量的指针变量定义相同,c规定数组名代表数组的首地址,即第一个数组元素地址。

2)通过指针引用数组元素

我们通常引用数组元素的形式是a[i],如果用指针可以这样引用,*(a+i),或定义一个指针变量p,将数组a的首地址赋给p,p=a;然后用*(p+i)引用。

注意:指针变量p指向数组a首地址,则p++指向数组a的下一元素地址,即a[1]的地址。

3)数组名作函数参数

形参数组和实参数组之间并不是值传递,而是共用同一段地址,所以在函数调用过程中如果形参的值发生变化,则实参的值也跟着变化。

4)指向多维数组的指针和指针变量

以二维数组为居多。假设定义了一个二维数组a[3][4],那么

a代表整个二维数组的首地址,也代表第0行的首地址,同时也是第0行第0列的元素的首地址。a +0和a[0]代表第0行首地址,a+1和a[1]代表第一行的首地址。

假设a是一个数组的首地址,那么如果a是一维的,a+I代表第I个元素的地址,如果a是二维的,则a+I代表第I行的首地址。

那么第一行第二列的元素地址如何表示呢?a[1]+2或a[1][2]或*(a+1)+2。

我们只要记住:在二维数组中a代表整个数组的首地址,a[I]代表第I行的首地址,a[I]与*(a+I)等价就行了。只要运用熟练了就没什么复杂的了。

5)指向由m个整数组成的一维数组的指针变量

如:int (*p)[4],p是一个指向包含4个元素的一维数组,如果p先指向a[0],则p+1指向a[1],即p的增值是以一维数组的长度为单位的,这里是4,举个例子:

假设a[3][4]=,p先指向a[0]也就是数组a的首地址,那么p+1就是a[1]的首地址即元素9的地址,因为在定义p时int (*p)[4],定义一维数组长度为4,所以p+1就等于加了一个一维数组的长度4。

3. 字符串的指针和指向字符串的指针变量

1)字符串的表示形式

c中字符串有两种表示形式:一种是数组,一种是字符指针

char string[]="I love c!";

char *str="I love c!";

其实指针形式也是在内存中开辟了一个数组,只不过数组的首地址存放在字符指针变量str中,千万不要认为str是一个字符串变量。

2)字符串指针作函数参数

实际上字符串指针就是数组的首地址。

3)字符指针变量与字符数组的区别

① 字符数组由若干元素组成,每个元素存放一个字符,而字符指针变量只存放字符串的首地址,不是整个字符串

② 对数组初始化要用static,对指针变量不用。

③ 对字符数组赋值,只能对各个元素赋值,不能象下面这样:

char str[14];

str="I love c!";

对指针变量可以,

char *str;

str="I love c!";

注意:此时赋给str的不是字符,而是字符串首地址。

④ 数组在定义和编译时分配内存单元,而指针变量定义后最好将其初始化,否则指针变量的值会指向一个不确定的数.

嘎嘎。。。就这么多啦~~

C语言知识总结

c语言概要

第一章、 概述

1、 c语言的基本知识

1.1、 c语言的执行步骤

编辑-程序代码的录入,生成源程序*.c

编译-语法分析查错,翻译生成目标程序*.obj

(语法或逻辑错误,从第一个开始改,变量定义,语句格式,表达式格式等)

链接-与其他目标程序或库链接装配,生成可执行程序*.exe

执行

1.2、 main函数的基本知识

main()函数的位置

c程序总是从main( )函数开始执行

一个c程序可以包含一个主函数,即main()函数;也可以包含一个main()函数和若干其它函数

1.3、 c程序的结构

函数与主函数

程序由一个或多个函数组成

必须有一个且只能有一个主函数main()

程序执行从main开始,在main中结束,其他函数通过嵌套调用得以执行

程序语句

C程序由语句组成

用“;”作为语句终止符

注释

//

/* */ 为注释,不能嵌套

不产生编译代码

1.4、c 程序书写的规则

习惯用小写字母,大小写敏感

不使用行号,无程序行概念:通常一个语句占一行

可使用空行和空格

常用锯齿形的书写格式;同一层次结构的语句上下对齐。

第二章、基本数据类型与运算

2.1、c程序的数据类型

注意类型和变量含义的不同(类型是固定好的名字,变量是自己起的名字)

变量占用的存储空间

数据类型

基本类型:整型、字符型、浮点型(单精度型,双精度型)

构造类型:数组类型、结构体类型

指针类型

空类型

注意基本类型赋初值的方式

基本数据类型的表示形式

整形数据

十进制:以非0数字开头,如:123,-9,0

八进制;以0数字开头,如:0123,067

十六进制:以0x开头,如:0x123,0xff

实型数据

十进制:必须带小数点,如:123.0,-9.0

指数形式;如:1.23E3,0.9e-2,5e2

字符型数据

普通字符:如:’a’,’2’,’H’,’#’

转义字符:如:’\n’,’\167’,’\xlf,’\\’

(实现几列的对齐:指定宽度。如%100\ ‘\t’制表位)

(字符串长度。“abc\n\t\\” strlen 6; sizeof 7)

基本数据类型的存储长度

整型

Int 字节数 2 位数 16 数的表示范围 -32768—32767

Short 2 16 -32768—32767

Long 4 32 -2147483648—2147483647

实型

Float 4 32 3.4e-38---3.4e38

Double 8 64 1.7e-308---1.7e308

字符型

Char 1 8 -128----127

2.2、标识符命名规则

C语言标志符命名规则

标识符有数字,字母,下划线组成

标识符的首字符必须为字母和下划线

标识符不能为c语言的保留字(关键字)

如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed

算术运算符 + - * / %

关系运算符 == = = !=

逻辑运算符 ! ||

位运算符 ~ | ^

赋值运算符 = 及其扩展赋值运算符

条件运算符 ? :

逗号运算符 ,

指针运算符 *

求字节数运算符 sizeof

强制类型转换运算符 (类型)

分量运算符 . -

下标运算符 [ ]

其他 如函数调用运算符()

运算符的优先级

由高到低:单目运算符,算数运算符,关系运算符,赋值运算符

说明:单目运算符:自增运算符,自减运算符,类型装换运算符。结合方向:自右至左

如:++--I 先—i.。

算术运算 结合方向自左至右

2.3基本运算和表达式

关系表达式和逻辑表达式

(ab)(xy) (a==b)||(x==y) !=a||(ab)

Ab.a为0.不执行b

A||b a为1.不执行b

在 c 中逻辑运算结果:1代表“真”,0代表“假”;

判断一个表达式是否真:0代表“假”,非0代表“真”

条件表达式 逗号表达式

如:k=5,k++

逗号值为5;k为6.

表达式1?表达式2 :表达式3

K=56 ? 1 : 0

2.4、混合运算的数据类型转换

2/3+0.5 双精度浮点型

第三章、顺序结构程序设计

3.1、c语句的分类

简单语句

表达式语句 表达式+分号

空语句 只有分号的语句

复合语句 用花括号将若干语句括起来

流程控制语句

选择语句 if ,switch

循环语句 while, do while , for

转移语句 break ,continue ,return goto

3.2、格式输入函数scanf

一般形式:scanf(“格式控制字符串“,地址列表);

使用scanf函数时,需要注意:

格式字符的个数必须与输入项的个数相同,数据类型必须一一对应,非格式字符串(说明性的)要原封不动的输入。

输入实行数据时,可以不带小数点,即按整型数据输入

数值型数据与字符或字符串混合输入时,需要注意输入方式。

3.3、格式输出函数printf

Printf(“格式控制字符串“,输出列表);

指定输出格式,由格式字符串和非格式字符串两种组成,非格式字符串照原样输出。

%[标志][输出最小宽度][.精度][长度]类型

标志:- 左对齐;+ 右对齐;

%f, %d, %c, %s

3.4、其他输入输出函数

Putchar getchar puts gets

第四章、选择结构程序设计

If选择结构

单分支

If(表达式)

语句

双分支

If(表达式)

语句1

Else

语句2

多分支

If (表达式1)

语句1

Else if(表达式2)

语句2

。。。

Else if(表达式m)

语句m

Else

语句n

Switch(表达式)

{

Case 常量表达式1:语句1;break;

Case 常量表达式2:语句2;break;

。。。

Case 常量表达式m:语句m;break;

Default:语句n;break;

}

注意break的使用

第五章、循环结构程序设计

循环三要素

初始条件 ;终止条件 ;在初始条件和终止条件间反复做某件事情(循环体)

While(表达式)

语句

Do

语句

While(表达式);

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

( for( ) ; // ; 进行时间延迟。在信息交换等时用。如for(i=0,i100) ; 互相通讯的时间延迟。 Delay )

Break语句 :不能用于循环语句和switch语句之外的任何其他语句;跳出循环。

Continue语句 :跳过循环体中剩余的语句而强行执行下一次循环;跳出本次循环。

第六章、函数与编译预处理

6.1、函数的定义和调用

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

{ 声明部分

语句

}

例:

Int max (int x,int y)

{int z;brZ=xy?x:y;brReturn(z);}

6.2、局部变量和全局变量

注意函数中静态变量的定义和使用

6.3、变量的存储类型

局部变量的存储类型

自动变量(auto) 动态存储

局部静态变量(static) 静态存储

寄存器变量(register) 静态存储

全局变量的存储类型

自动变量(auto) 动态存储

外部变量 (extern) 静态存储

全局静态变量(static )静态存储

Extern 外部引用

Static 不能用extern 引用。

第七章、数组

7.1、一维数组的定义和使用

特别需要注意循环体的初值,终止条件

例:

Main()

{

Int I,a[10];

For(i=0;i=9;i++)

A=I;

For(i=9;i=0;i--)

Printf(“%d”,a);

}

注意下标问题

7.2、二维数组的定义和使用

二维数组的初始化

例如:

Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};

Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};

例如:int a[3][3]={{1},{2},{3}};

是对每一行的第一列元素赋值,未赋值的元素取0

7.3、字符数组和 字符串

字符串用字符数组来处理,结束标志符 ‘\0’

如:char c[ ]={“I am happy”};

用字符串常量使字符数组初值化

Char c[ ]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’,’\0’};

第八章、指针

8.1、地址和指针的概念

Int I;

Int *i_point;

8.2、指针变量和变量的地址

操作符:*

8.3、指针和一维数组

若有定义

Int a[10];

Int *p=a;

分析下面表达式的含义:

A, a,

*(a+i), a+I,

*(p+i), p+i

A=*(a+i)=*(P+i)

a=a+i=p+i

8.4、指针与字符串

Main()

{

Char string[ ]=”I love china!”;

Printf(“%s\n”,string);

}

Main()

{ char *string=”I love china!”;

Printf(“%s\n”,string);

}

8.5、指针变量作为函数参数

形参的定义方式;实参的形式;参数的传递方式。

第九章、结构体

9.1、结构体类型和变量的定义

Struct 结构体名

{成员列表};

Struct student

{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};

Stuct student

{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};

Struct student stu1, stu2;

9.2、结构体变量的引用

一般形式为:

结构体变量名.成员名

9.3、结构体数组

结构体数组 结构体数组元素.成员名

指向结构体的指针变量

(*p).成员名

p-成员名

其他

Strcpy(字符数组1,字符串2)

Strcat(字符数组1,字符数组2)

Strcmp(字符串1,字符串2)

Strlen(字符数组)