C语言复习
1.源程序的后缀是c
2.二进制文件的后缀是obj
3.int main()和int main(void)
4.浮点型又称实型
5.双目算数运算符中,乘法*、除法/、求余%的优先级大于加法+和减法-
6.输入时,float型数据必须使用%f,double型数据必须使用%lf,输出不一定
7.常用的数学函数(P28、345)
8.%4d,左补空格成为4位,%04d,左补0成为4位,%-4d,右补空格成为4位
9.%m.nf,保留n位小数,输出宽度为m(包括符号位和小数点,也就是说整个数字。比如3.22,代表m为4,n为2),实际位数小于m,左补空格,大于m,按实际位数输出
10.for语句的循环体语句只能是一条语句,用大括号{}括起来后,组成复合语句,复合语句也可以被认为是一条语句
11.调用scanf()和printf()输入输出字符时,如果输入空格‘ ’,则空格也会被作为输入字符
12.getchar()和putchar()一次只能读入读出一个字符,例如putchar(‘!’)只能输出一个!
13.关系运算符为:小于<、小于等于<=、大于>、大于等于>=、等于==、不等于!=
14.逻辑运算符“非!、与&&、或||”的优先级低于关系运算符
15.year是闰年,即year能被4整除但不能被100整除,或year能被400整除:(year%4==0&&year%100!=0)||(year%400==0)
16.多分枝结构:嵌套的if语句和case语句,嵌套的if语句又包括else-if语句和嵌套的if-else语句
17.else和if的匹配准则:else与最靠近它的、没有与别的else匹配过的if匹配,即使书写格式不对齐
18.循环的三种形式:while语句、for语句和do-while语句(P69-73)
19.判断素数:例如判断11,如果11不能被区间[2,11/2]上的任何一个数整除,即11%i!=0,则11就是素数,循环结束条件是i>11/2
20.continue和break(P76)
21.局部变量、全局变量(P108-112)
22.变量生存周期、变量的作用范围(P112-113)
23.静态局部变量(P113-115)
24.数据的存储:整型(原码、反码和补码)、实型、字符型(P120-122)
25.八进制首位数字必须是0,十六进制首位数字前必须有前缀0x或0X(P123)
26.基本数据类型中,l或L后缀表示long型常量,u或U后缀表示unsigned型常量,还有的是l和u或L和U后缀(P123)
27.ch=‘A’和ch=65等价(P123-124)
28.转义字符(P124)
29.单精度浮点数占4个字节,有效数字一般7~8位;双精度浮点数占8个字节,有效数字一般15~16位(P125)
30.实型常量,即实数,也称浮点数。实型常量都是双精度浮点数。可以用十进制浮点表示法和科学计数法表示。在科学计数法中,由正号、符号、数字和字母e或E组成,e是指数的标志,在e之前要有数字,e之后的指数只能是整数
31.输入输出形式:十进制%d,八进制%o,十六进制%x(P125-127)
32.实型数据格式控制:float和double在scanf和printf中所用的格式(P127)
33.ch-’a’+’A’把小写字母转为大写字母;ch-’0’把数字字符转为数字(P129)
34.类型转换,分为自动转换和强制转换。强制转换中,例如(double)i将i转换为double型,注意是类型名加括号(P129-131)
35.运算符的优先级和结合性(P132、142、326-327)
36.x为0时,可以用x==0或!x表示
37.位运算(P140-142)
38.长度运算符sizeof,求出字节长度(P142)
39.特殊运算符,例如*和&与指针运算有关,->和.用来表示结构分量(P142)
40.斐波那契数列(P152)
41.选择排序法(P155-157)
42.n×n方阵的一些术语及下标情况:主对角线i==j,副对角线i+j==n-1,上三角i<=j,下三角i>=j(P163)
43.可以用fflush()或getchar()来吸收多余空格,清除文件缓冲区
44.字符串需要由有效字符和字符串结束符‘\0’组成
45.“a”表示‘a’和‘\0’两个字符,‘a’则是字符常量(P169)
46.十六进制转换为十进制数:当字符是数字字符时,num=num*16+str[i]-’0’; 当是大写英文字母时,num=num*16+str[i]-’A’+10; 当是写小写英文字母时,num=num*16+str[i]-’a’+10; (P172-173)
47.冒泡排序法(P191-192、199)
48.二分查找法(P197-198)
49.字符串的输入与输出:(P203-204)
①scanf(“%s”,str); 遇回车或空格输入结束,自动补充字符串结束符‘\0’
②printf(“%s”,str); 输出遇‘\0’结束
③gets(str); 遇回车输入结束,允许带空格,自动补充字符串结束符‘\0’
④puts(str); 输出时遇‘\0’自动转换为‘\n’,输出字符串后自动换行
50.字符串一些特殊的函数:字符串复制函数strcpy,字符串连接函数strcat,字符串比较函数strcmp,字符串长度函数strlen,存放在string.h的头文件中(P205-206)
51.strcmp(s1,s2)函数中,如果s1>s2,返回一个正数
52.strlen()函数返回‘\0’之前的字符个数
53.动态存储管理机制:动态存储分配函数malloc(),计数动态存储分配函数calloc(),动态存储释放函数free(),分配调整函数realloc(),例:fp=(int*)malloc(n*sizeof(int)),定义在stdlib.h中(P209-211、349)
54.指向运算符->(P229-230)
55.宏定义:#define 宏名 宏定义字符串(P246-249)
56.文件包含(即#include)的格式:#include<头文件名>或#include”头文件名”(P250-251)
57.二级指针(P266-269)
58.FILE(P299、301-303)
59.自定义类型typedef(P302、341)
60.打开文件:fopen(“文件名”,“文件打开方式”);(P306-307)
61.文件打开方式:r(打开文本文件只读)、w(建立新文本文件只写)、a(打开文本文件进行追加)、r+(打开文本文件读/写)、w+(建立新文本文件读/写)、a+(打开文本文件进行读/写/追加),二进制文件在字母后面加b做后缀(P306-308)
62.exit(0)作用是关闭所有打开的文件,并终止程序的执行(P308)
63.关闭文件:fclose(文件指针); 例:fclose(fp);(P308-309)
64.文件读写操作函数,存放在标准库stdio.h中(P309-315)
65.一个个字符读写:ch=fgetc(fp); 从fp中读入一个字符到ch,fputc(ch,fp); 把一个字符ch写到fp中
66.一行行字符串读写:fgets(s,n,fp); s是字符数组名或字符指针,n是读入的字符的个数,fp是文件指针,将fp中的字符串输入到s中,函数调用时最多可以读取n-1个字符,fputs(s,fp); s是要写入的字符串,结束符‘\0’不写入文件(P311-312)
67.文本文件读写:fscanf(fp,“%d”,&n); 从fp中读入整型数到n,遇回车、空格Tab符结束,fprintf(fp,“%d”,n); 把变量n的数值写入到文件fp中(P314)
68.二进制文件读写:fread(fa,4,5,fp); 意义是从fp所指的文件中,每次读4个字节送入fa中,连续读5次,fwrite(fa,4,5,fp); 意义相似(P315)
69.与文件指针位置和状态有关的函数,存放在标准库stdio.h中,其中与文件定位有关的函数:①重定义文件首函数rewind(fp); ②指针移动控制函数fseek(fp,20L,0);(0、1、2或SEEK_SET、SEEK_CUR、SEEK_END分别对应文件首部、当前位置和文件尾部)③获取指针当前位置函数ftell(fp); 相对于文件开头的位移量,用字节数来表示,如返回2L。其中检测文件指针状态的函数主要有:①文件末尾检测函数feof(fp); 0表示文件未结束 ②读写错误检查函数ferror(fp); 0表示未出错 ③出错标记清除函数clearerr(fp); 用来清除出错标志和文件结束标志,使变为0值。(P317-318)
缺月挂疏桐,漏断人初静。时见幽人独往来,缥缈孤鸿影。
惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞沙洲冷。