1、C语言编写的程序称为源程序,又称为编译单位。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
二
1、VC是软件,用来运行写的C语言程序。
2、每个C语言程序写完后,都是先编译,后链接,最后运行。
三
1、标识符:
合法的要求是由字母,数字,下划线组成。
并且第一个必须为字母或则是下划线。
2、标识符分为关键字、预定义标识符、用户标识符。
四
核心:表达式一定有数值!
1、算术表达式:+,-,*,/,%
考试一定要注意:“/” 两边都是整型的话,结果就是一个整型。 3/2的结果就是1.
“/” 如果有一边是小数,那么结果就是小数。 3/2.0的结果就是0.5
“%”符号请一定要注意是余数,考试最容易算成了除号。)%符号两边要求是整数。不是整数就错了。
2、赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
1、定义时,不可以连续赋值。
3、复合的赋值表达式:
int a=2;
a*=2+3;运行完成后,a的值是12。
一定要注意,首先要在2+3的上面打上括号。变成(2+3)再运算。
4、自加表达式:
自加、自减表达式:假设a=5,++a(是为6), a++(为5);
运行的机理:++a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,
再放到变量a中。 进行了++a和a++后 在下面的程序中再用到a的话都是变量a中的6了。
口诀:++在前先加后用,++在后先用后加。
补充:
1、空语句不可以随意执行,会导致逻辑错误。
2、注释是最近几年考试的重点,注释不是C语言,不占运行时间,没有分号。不可以嵌套!
3、强制类型转换:
一定是 (int)a 不是 int(a),注意类型上一定有括号的。
注意(int)(a+b) 和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。
五
1)字符数据的合法形式::
'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
一般考试表示单个字符错误的形式:'65' "1"
字符是可以进行算术运算的,记住: '0'-0=48
大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。
2)转义字符:
转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。
一般转义字符:背诵\0、 \n、 \’、 \”、 \\。
八进制转义字符: ‘\141’ 是合法的, 前导的0是不能写的。
十六进制转义字符:’\x6d’ 才是合法的,前导的0不能写,并且x是小写。
3、字符型和整数是近亲:两个具有很大的相似之处
char a = 65 ;
printf(“%c”, a); 得到的输出结果:a
printf(“%d”, a); 得到的输出结果:65
六
1、使用printf和scanf函数时,要在最前面加上#include“stdio.h”
2、printf可以只有一个参数,也可以有两个参数。
3、printf(“ 第一部分 ”,第二部分 );把第二部分的变量、表达式、常量以第一部分的形式展现出来!
4、
格式说明 表示内容 格式说明 表示内容
%d 整型 int %c 字符 char
%ld 长整型 long int %s 字符串
%f 浮点型 float %o 八进制
%lf double %#o 带前导的八进制
%% 输出一个百分号 %x 十六进制
%5d %#x 带前导的十六进制
举例说明:
printf(“%2d”,123 ); 第二部分有三位,大于指定的两位,原样输出123
printf(“%5d”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123
printf(“%10f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为 1.250000
printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位)
printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入)
七
1、scanf(“a=%d,b=%d”,&a,&b)
一定要记住是以第一部分的格式在终端输入数据。
在黑色屏幕上面输入的为 a=12,b=34才可以把12和34正确给a和b 。
2、特别注意指针在scanf的考察
例如: int x=2;int *p=&x;
scanf(“%d”,p);
补充:
1)scanf函数:
注意该函数的第二个部分是&a 这样的地址,不是a;
scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。
2)如何实现两个变量x ,y中数值的互换
不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。
八
注意:C语言中是用非0表示逻辑真的,用0表示逻辑假的。
C语言有构造类型,没有逻辑类型。
关系运算符号:注意<=的写法,==和=的区别!
if只管后面一个语句,要管多个,请用大括号!
1)关系表达式:
a、表达式的数值只能为1(表示为真),或0(表示假)。
如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1。
如 7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0
2)逻辑表达式:
核心:表达式的数值只能为1(表示为真),或0(表示假)。
a)共有&& || ! 三种逻辑运算符号。
b)!>&&>|| 优先的级别。
4)条件表达式:
表达式1 ?表达式2 :表达式3
a、注意是当表达式1的数值是非0时,才采用表达式2的数值做为整个运算结果,当表达式1的数值为0时,就用表达式3的数值做为整个的结果。
5)switch语句:
a) switch只可以和break一起用,不可以和continue用。
b) switch(x) x:是整型常量,字符型常量,枚举型数据。
{case 1: …. 不可以是变量。
case 2: ….
}
九
1)三种循环结构:
a)for() ; while(); do- while()三种。
b)for循环当中必须是两个分号.
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d) do-while()循环的最后一个while();的分号一定不能够丢,do-while循环是至少执行一次循环。
2) break 和 continue的差别
break:是打破的意思,(破了整个循环)所以看见break就退出整个一层循环。
continue: 是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。
3)循环嵌套
就是有循环里面还有循环,一般两层是处理二维数组的。
十
1、函数:是具有一定功能的一个程序块,是C语言的基本组成单位。
2、函数不可以嵌套定义。但是可以嵌套调用。
3、函数名缺省返回值类型,默认为 int。
4、C语言由函数组成,但有且仅有一个main函数!是程序运行的开始!
5、一定要注意参数之间的传递
实参和形参之间 传数值,和传地址的差别。
传数值的话,形参的变化不会改变实参的变化。
传地址的话,形参的变化就会有可能改变实参的变化。
6、函数声明:
一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。
7、要求掌握的库函数:
a、库函数是已经写好了函数,放在仓库中,我们只需要如何去使用就可以了!
第六章
指针变量的本质是用来放地址,而一般的变量是放数值的。
1、int *p 中 *p和p的差别:简单说*p是数值,p是地址!
*p可以当做变量来用;*的作用是取后面地址p里面的数值
p是当作地址来使用。可以用在scanf函数中:scanf(“%d”,p);
2、指针变量两种初始化
方法一:int a=2,*p=&a;(定义的同时初始化)
方法二:int a=2,*p; (定义之后初始化)
p=&a;
十一
1、所谓数组,就是按一定顺序排列,具有某种相同性质的同类型变量的集合。这些变量具有相同的名字和数据类型。
2、定义格式:
基本数据类型 数组名[整型常量表达式];
3、二维数组定义格式:
基本数据类型 数组名[整型常量表达式] [整型常量表达式];
第一个数组是存行,第二个是存列。
二维数组的初始化:
基本数据类型 数组名[整型常量表达式] [整型常量表达式]={初始化数据};
十二
一: 结构体类型的声明格式为: struct 结构名{
数据类型1 成员名;
数据类型2 成员名;
数据类型3 成员名;
..........
数据类型n 成员名;
};
其中值得注意的地方有:
1:每一处的分号是必不可少的。
2:声明变量时,变量要写在“}”的后面,声明相同变量时,要用“,”隔开,结尾以“;”结束。
3:运用时可以想到基本数据类型的格式。
4:关键字一定不要写错。
访问结构体变量的成员格式:
结构变量名.成员名
注意要看之前的数据类型,且打印出来时也要把”结构变量名.成员名“加在”,“的后面。
二:共用体(union)
1: 在共用体变量中起作用的是最后一个存放的成员,在存入一个新成员后,原有的成员就都失去了作用。
2:共用体变量的地址和其成员地址都是同一地址。
3:不用给共用体变量赋值,还不能在定义共用体变量时对其初始化。
三:枚举型(enum)
声明枚举类型的语法形式为:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...........
标识符[=整型常数],
};
注意枚举类型是按照整型常量规则,从0开始,依次是1,2,3,4,5,6..........,如果有在声明枚举变量时赋值,也是从0开始,到赋值,后在赋的值的基础上累加下去。
十三
1 指针的概念
所谓的指针,也称为指针变量,其内容储存了另一个变量的内存地址。
2 声明指针类型的变量
在C语言声明一个指针类型变量,也就是定义了一个指针的语法如下:
指向的变量的类型名 *指针变量名;
这里,指针变量的类型是“指向的变量的类型名 * ”,而不是“指向的变量的类型名”。列如
int *p
这里,变量p的类型为int*,而不是int、指针变量p可以储存任何int类型的变量的地址。
3 指针的使用
我们可以使用间接运算符*,来访问被一个指针指向的变量的值。假设我们声明了如下变量:
int number = 15;
int *pointer=&number;
int result = 0;
因为指针变量pointer包含了变量number的地址,所以可以按照如下方式,在一个求和的表达式中使用它:
result = *pointer + 5;
表达式*pointer等于pointer包含的地址中存储的值,而存储在number中的值为15,所以result的值最后为20.
说明:
间接运算符*可以让我们访问被一个指针指向的变量的值。
取址运算符&可以让我们获得一个变量的内存地址。
十四
1 函数的定义
函数的定义就是写出函数的全部内容来,即完成函数功能的程序块,它的一般格式为:
函数类型 函数名称(形式参数表){
说明语句序列
可执行语句序列
}
其中前两行构成函数的头,后面的用一对花括号括起来的部分构成函数。
2 函数的参数
从函数的形式上看,函数分为两类:无参形式,有参形式
无参函数的一般形式:
类型标识符 函数名(){
声明部分
语句
}
有参函数的一般形式:
类型标识符 函数名(形式参数表列){
声明部分
语句
}
有参函数比无参函数多了一个内容,即形式参数表列,在形参表中给出的参数成为形式参数,他们可以是各种类型的变量,各参数之间用逗号隔开。
3 函数的返回值
从函数的值来看,函数分为两类:
无返回值的函数:即Void函数,吴函数值的函数,一般用来执行指定的一组,类似于其他高级语言中的过程。
有返回值的函数:调用函数后,可以通过函数名带回函数值供主调函数使用。
函数的返回值由return语句返回。一般格式为:
return 表达式;
任何一个函数,只要执行到return语句,函数就结束运行。注意的是:一个函数只有一个返回值。
如 下列代码定义了一个无返回值的无参函数:
void printmessage(){
printf("欢迎来到函数学习");
}
int main(){
printmessage();
}