(2)一个函数由函数的首部和函数体组成。
(3)函数是从主函数(main())开始执行,回到主函数(main())结束;(与main()函数在程序中定义的位置无关)
(4)一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束;
(5)算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性
(6)算法(程序)的几个结构:选择结构,顺序结构,循环结构
用户标识符,由数字,字母,下划线构成,第一个不能是数字(一般会出选择题让你判断哪个标识符定义正确),字母要区分大小写。不能与32个关键字相同。例:P24 第2题P122、2,模拟题第一题
注释符://注释一行;/和/注释多行,注释不可以嵌套书写。注释没有任何语法功能。
基本数据类型
16位编译器
32位编译器
char :1个字节
char :1个字节
char*(即指针变量): 2个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。)
short int:2个字节
short int : 2个字节
int: 2个字节
int: 4个字节
unsigned int :2个字节
unsigned int : 4个字节
float:4个字节
float: 4个字节
double: 8个字节
double: 8个字节
long: 4个字节
long: 4个字节
long long: 8个字节
long long: 8个字节
unsigned long: 4个字节
unsigned long: 4个字节
一般只需要记int类型是2个字节,float是4个字节,double是8个字节,注意int的最大表示范围是-32768――+32767,当超过这个范围的时候,即以%d输出+32768时结果为-32768长整型(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整型的3,如果是a=3L,那么就是长整型的3;当分别以%o,%ld,%x (8进制,长整型,16进制)输出的时候,结果没有前面的0,0X,和后面的L
例:int a=075,b=ox14;long int c=5L;
printf(“%o,%x,%ld”,a b c); 结果为(75,14,5)
转义字符:\n \t \ \’ \” \ddd(1-3位八进制所代表的字符) \xhh(1-2位十六进制所代表的字符) 这个书上习题特别多,P25 第19题,P120第3题,P138第16题P147第14题P152第2题等
sizeof()和strlen():sizeof()测试字符串的存储长度;strlen()测试字符串长度,只计算遇到的第一个\0前面的字符个数。
例:strlen(“abc\089”)=3 strlen(“abc\012”)=4
注意这个例题:char a[30]=“abc\0b”;
sizeof(a)=30 ;
sizeof(“abc\0b”)=6;
strlen(a)=3 ;
strlen(“abc\0b”)=3 ;
4. 运算符和表达式
(1)算术运算符和算术表达式:注意自增++,自减–,自反-,
++,–,当++,–,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当++,–,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握++,–结合性是右结合,若i+++j等价于(i++)+j;
(2)关系运算符:>,<,<=,>=,= =,!= ,==和!=优先级最低。
注意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1(关系运算的结果本应是逻辑值,但C语言中没有逻辑数据类型,因此用整型数据来表示关系运算的结果)。
(3)逻辑运算符:&& ,||,!在这几个中优先级!大于 && 大于 ||,优先级是体现在结合性上而不是运算的先后性上。例如
a=b=c=1;d=++a||++b&&++c
在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1
(4)赋值运算符:简单赋值运算符“=”其左边必须是变量。一般形式:变量名=表达式
复合赋值运算符:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。注意当等号后面接的是表达式的时候要把表达式看成一个整体即x =y+8等价于x=x(y+8),y+8是一个整体
(5)条件运算符:由两个符号“?”和“:”构成,
一般形式:表达式1?表达式2:表达式3
先计算表达式1的值,如果值为真(非0),则将表达式2的值作为条件表达式的值,否则将表达式3的值作为条件表达式的值。
(6)逗号运算符和逗号表达式
一般形式:表达式1,表达式2,……,表达式n
求值时从左至右依次计算,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值。
例:#include<stdio.h>
void main()
{ int a;
printf(“%d\n”,(a=38,a4,a+5));
}该程序的输出结果为29,变量a的值为24,注意此处考察了逗号表达式、逗号和赋值符号的优先级。=优先级高于,的优先级。
(7)位运算符和位表达式(参考教材P17-18)
位运算符有 | (或)即只要有一个1就是1, &(与)要全部为1才为1 ^(异或)要不相同才为1 ;注意的是当向左移动n位就是乘以2的n次方;向右移动n位就是除以2的n次方。
(8)强制类型转换运算符
强制类型转换的一般形式:(类型名)表达式
表达式(double)(x+y),是将x+y的值转换为double类型后得到的值,变量x,y和表达式x+y都保持原来的数据类型。
printf()函数的一般形式为:printf(“格式控制字符串”,输出表列);
格式控制包括两种信息:(1)格式说明:由%和格式字符组成。如%d、%f等。作用是将输出的数据转换为指定的格式输出。格式说明总是由%字符开始。(2)普通字符:即需要原样输出的字符。如逗号、空格和换行符。所以在写程序输出结果时,这种字符要原样写出来。
putchar()函数的作用是向终端输出一个字符。一般形式:putchar©,输出字符变量c的值,c可以是字符型变量或整型变量。
%d,%md,%m.nd, %e,以及相应的几种格式是什么意思
scanf()函数的一般形式为:scanf(“格式控制字符串”,变量地址表);
这里的格式控制与printf()中的一样。变量地址表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
getchar()函数的作用是从终端输入一个字符。gechar函数没有参数,一般形式:getchar()
常用数学类标准库函数的简单应用:
abs()、fabs()、fmod()、sin()、cos()、tan()、exp()、pow()、log()、log10()、sqrt()。参考教材