《C程序设计(第四版)》,谭浩强 著, 清华大学出版社知识点总结期末复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、关键字和标识符
关键字:int for if
标识符:char str[30];int a; double b; str,a,b是标识符
标识符命名规则:字母、数字、下划线、且数字不能开头3test 否tes_3 是u&54 否
二、运算符优先级
数学运算:+ - * / &
关系运算:< > <= >= 低于数学运算
逻辑运算:&& || !低于关系运算
三、数据类型
int char double float
表示范围(有类型所占空间长度决定)
类型转换:1)隐式转换:赋值时转换int a = 3.2;float b = 3; //a为3 b为3.0
运算时转换任何数与float或double类型运算,都转为double
2)强制转换:float a =3.2; int b = (int)a; //b为3
四、面向过程编程:
顺序结构:从上到下依次执行
选择结构:if if...else if...else if...else switch
分支结构:while() for() do...while();
五、模块化编程(函数)
函数的定义:返回类型函数名(参数列表)
void myPrint(char s[]);
int max(int a,int b);
函数的调用:1、直接调用max(3,5);
2、作为参数调用:printf("%d",max(3,5));
3、作为条件调用:if(max(3,5)>2)
eg://应用场合:给一个字符串,求数字个数helloChina5AAA6BBB'\n'
while(scanf("%c",&tmp)==1 && tmp != '\n'){
if('0'<=tmp && tmp<='9')
cnt++;
}
或者:
scanf("%s",str)//char str[50];
int len = strlen(str);
for(int i=0;i<len;i++){
if('0'<=str[i] && str[i]<='9')
cnt++;
}
形式参数和实际参数:函数头中的参数就是形式参数,用来点位;实际被处理的是实参
局部变量和全局变量
局部变量:定义中代码块{ }中的变量;可能在函数中,可能在if、while、for中
只在局部有效,出代码块,消失
全局变量:定义在代码块{ }之外,全局可用,一直存在。
静态变量:分配在静态内存区,会一直存在,知道程序结束
动态变量;分配在动态存储区,随时分配,随时释放。
数组:
数组的定义:int a[10]; double b[20];float x&5[20] 错
数组的初始化int a[5] = {1,2,3};//{1,2,3,0,0}
int b[6] = {0}; //{0,0,0,0,0,0}
只要不在初始化阶段,数组的赋值就要用循环。
数组元素的引用int a[10]; a[0] = 10; 注意一点;下标范围为0~(数组长度-1)
重要应用:选择排序、冒泡排序
函数参数为数组;int getArrayLen(int a[10])//此函数可以返回数组的长度
二维数组:
定义、初始化int a[3][4] = {{1,2,3,4},{2,3,4,5},{3,4,5,6}}表示定义一个3行4列的数组
引用:注意下标范围:a[0~2][0~3]
重要应用:矩阵的运算:加减、换行、翻转(主对角线、副对角线)
字符数组:
定义和初始化:char a[20] = "hello"; 或者char b[] = "hello";
字符串:双引号引起来的一串字符
字符数组:用来存放字符的数组
字符数组的读入:char str[30]; scanf("%s",str);//由于数组名字即为地址,所以str前不加&
重要注意:scanf("%s",str); 读入后,会自动补一个\0,所以数组长度应定义为字符长度+1
字符数组的输出:printf("%s",str);
字符串操作方法:strlen, strcmp, strcpy, strcat, strlwr, strupr,
其他:++i 和i++的区别:前者先加再引用,后者先引用再加,如果不用其赋值,则都为自增,
指针:。