标准C语言
        基础知识
    流程控制
    函数
    数组
    字符串
    文件
    指针
    结构体
基础知识
1.语言分类:机器语言,汇编语言,高级语言,面向对象和面向过程语言。C语言是典型的面向过程的语言。
2.算法性质:有穷性,确定性,有0或多个输入,有一个或多个输出,有效性。
3.软件开发过程:确定用户需求,设计与开发,文档,维护。(备份)
4.标识符:保留字,标准标识符,自定义标识符。自定义标识符规则:由字母,数字,下划线组成;首字符必须是字母或下划线;不允许有空白符;不能是保留字。一般呈骆峰状,如:checkItem,linkList.
5.主函数:int main( 可执行程序;return  0;) ;int:函数的返回类型,main::函数名,():参数列表 每一句执行语句用分号分开,分号一定不能忘。
6.数据类型:整形和浮点型
整型:char,short int,,int,long int,unsigned short int,unsigned int,unsigned long int;系统默认为int类型,char为单个字符,如:'a',注意单引号一定不能忘记。
浮点型:float,double;系统默认为double类型
7.程序中一般都包含头文件 #include<stdio.h>(标准输入输出库).
8.编程风格:缩排,注释
缩排:使程序更加有条理,整齐,舒服。
注释:使读程序的看起来更容易理解。单行注释:// 多行注释:/*  */
9标准输出函数:printf("要输出的内容"); 注意:里面的双引号和括号要匹配,分号不能忘记。
10.转义符:\n:换行符 \t:不同内容跳八格 \r:回到首行,并将行首的第一个字符替换掉 \b:将当前位置移到前一列
如:abc\tde\rf\tg\n 执行过程:\t:abc-----de\rf\tg \r:fbc-----de\tg \t:fbc-----ge.
11.指数形式:1.625 e 3 e的前面必须有数字,e的后面必须是整数
12.输出结果:%d :输出整形结果 %c:输出单个字符 %f:输出浮点数结果 %s:输出字符串 %u:输出变量的地址
%o:输出结果为八进制 %x:输入结果为十六进制 %m.nf :右对齐 总共m列小数点后有n位小数 %-m.nf:左对齐 总共m列小数点后有n位小数 %md:右对齐 总共m %+md:右对齐有正号总共m %m.ns 右对齐 总共m列取前n个字符。
13.变量声明:dataType variableName
如:int num1;int num2;int num3;也可将同一类型的变量声明在一块 int num1,num2,num3;
变量又分为全局变量,局部变量,常量,指针变量和静态变量,局部变量一般在函数体内也可以在函数的参数传递变量中,全局变量一般在主函数的前面声明,常量一般在函数的外面声明#define  MAX 10 , 指针变量dataType *variablename,静态变量使用时要初始化,并且只能初始化一次,一般用static type variablename
14.变量赋值:如果变量已经声明可以用变量名等于一个值,表达式,变量名,函数的返回值。也可以在变量的初始化时给予赋值,其形式与已经声明的变量的赋值方式基本相同。
变量赋值时等号左边只能为变量名,右边可以是具体的值或表达式,变量只有初始化才能使用。
15.计数器:k=count++:k=count,count+=1k=++count:count+=1,k=count
16.格式化输入:scanf("%d",&num);scanf在输入空格键或回车键盘时代表输入结束,当多个scanf联用时要注意清空缓存。常用的输入缓存的方法有两种:一种声明一个字符型变量,在scanf语句后面加上scanf("%c",&char1);另一种方法用fflush(stdin)函数。
17.求得一个n位数各位上的值:用到取模与整除的灵活运用。最高位一般用该数值除以10的数的位数减去1次方,最低位直接模10即可得到,通用的方法为:从左向右查,要得第n位的值需要将该数值除上10n-1次方再模上10strcmp比较数组即可得到。
18.两个数据的交换在二级与三级题中用的频率非常高,在交换两个数据时常常需要声明一个中间变量,注意两个数据与中间变量的顺序。特别注意的是当两个数据是指针变量时,中间变量不能为指针变量,应该与这个数据的数据类型相同。有些情况会用到自定义结构体的形式,当交换时所有的内容都会交换。
流程控制
1.选择:if if-else switch
A.if:if(expression){ statement1;statement2;and so on} 如果只有一条语句时可以省略两个花括号。当expression里面有多个表达时,如果用&连接相当于逻辑运算,只有多个表达式的值全为真时才能执行if里面的语句,如果用&&连接当第一个表达式的值为假时其它的表达式的结果将不再计算,当第一个表达式的结果为真时才执行后面的表达式。|||的用法与&&&相似。
B.if-else:If(expression){ statement1;statement2;and so on)else if(expression){ statement1;statement2;and so on}and so on else{statement1;sttement2;and so on}
C.Switch:switch(integer-expression){case values1:statement1;statement2;and so on;break;and so on case values1:statement1;statement2;and so on;break;default:statement;}要注意当一个条件执行结束之后要加上break语句。
D.三者之间的区别与联系:if用于只有一次选择的情况,if-else即可用于有限次选择中也可用
于无限次的选择中,如果选择的次数有限可以用switch代替if-else,switch用于有限次的选择中,特别要注意其格式,在适当的地方一定不能忘记break语句。相互之间可以嵌套使用。
E.If的判断条件中有多个条件时,如果有&&||交叉联用时先执行&&后执行||运算,为了使用户看的清楚明白可以在适当的位置加上括号。
F.If里面的条件:注意“==”与“=”及“&&”与“&”之间的区别与联系。“==”的作用是判断两边的值是否相等,如果相等返回1,否则0,;而“=”相当于赋值语句,无论怎样都满足条件,恒为真。
2.循环:
A.while: while(expression){statement1;statement2;and so on} while1)和while(a=0)都是死循环,while(0)一次也不执行。
B.Forfor(initializing list;tested expression;alterimg list){ statement1;statement2; and so on}也可以是以下两种方式:for(;tested expression;altering list)for(;test expression;)
Initializing list:循环的初始条件,tested expression:循环的结束条件,altering list:循环变量的改变控制
C.do-while:do{ statement1;statement2;and so on}while(expression);后面的分号一定不能忘记。
D.三者之间的区别与联系:while一般用于循环次数的有限与无限都可以,for循环一般用于循环次数有限的情况,可以用while循环代替,do-while循环 一般用于循环次数的有限与无限都可以,不管循环条件是否满足都要执行一次。
E.breakcontinue的区别:break可用于选择和循环中,其作用是结束循环或选择;continue只用于循环中,跳出当前的循环,余下的循环还可以执行下去。
E.冒泡排序中两个for循环在使用时的注意事项:第一个for循环的初值为0,结束时为排序数量的值减去2,因为最后一个数值不用执行。第二个for循环的初值为i1,终值为排序数量的长度。
F.选择排序中两个for循环使用时的注意事项,第一个for循环的初始值为i=0终值为要排序数
组的长度减去2,每次将当前的值作为最小或最大值;第二个for循环的初始值为i+1,终止值为要排序的数组的长度减去1,该值需要与最小值比较,根据题目的要去看是升序还是降序排列,再进行交换;第二个for循环结束后要比较最小或最大值与开始时设定的值是否一样,不一样的话在进行交换
G.两种排序方法的比较:冒泡排序的效率比较高,代码相对较简单,不容易了解,其实质就是在每一次循环时把最大的一个数放到最后面。选择排序比较简单,其实质就是最小值,然后与当前的最小值进行交换。两种排序方法的循环的初值与终止比较中要。
H.这两种排序还可以运用到对字符串与对单个字符的处理中,在字符串中常常用到字符串的比较和字符串的长度函数,一般此类题需要与文件结合着出题。而字符这类题常常与回文这类题相关。
函数
1.声明函数:函数的还回值类型:void,整型,浮点数型,文件型,字符型,结构体型。函数名:跟变量的命名规则相同,尽量取得有意义一些。函数的参数列表:返回值类型的任意类
型的变量及类型,也可以没有任何变量。函数的参数列表可以只写数据类型不写变量名,当为数组时要加“[],当为指针变量时要有“*”。
2.函数的调用:函数名(参数值或表达式);如果形式参数为指针类型,调用时要用&+变量名,如果形式参数为数组则调用时只需用数组名。
3.函数体:函数的返回类型+函数名(参数列表);函数体内的参数与声明函数时的参数表基本相同,要写出其完整的申明变量的形式,即类型+变量名。