还剩7页未读,继续阅读
文本内容:
总体上必须清楚的:2读程序都要从__in入口然后从最上面顺序往下读碰到循环做循环碰到选择做选择4bit是位是指为0或者1byte是指字节一个字节=八个位.5一定要记住二进制如何划成十进制概念常考到的1、编译预处理不是C语言的一部分,不再运行时间C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中2、每个C语言程序中__in函数是有且只有一个3、在函数中不可以再定义函数4、算法一定要有输出的,但可以没有输入5、break可用于循环结构和switch语句6、逗号运算符的级别最低第一章1)合法的用户标识符考查合法的要求是由字母,数字,下划线组成有其它元素就错了并且第一个必须为字母或则是下划线第一个为数字就错了关键字不可以作为用户标识符号__in define scanf printf都不是关键字迷惑你的地方If是可以做为用户标识符因为If中的第一个字母大写了,所以不是关键字关键字有 autobreakcasecharconstcontinuedefault dodoubleelseenumexternfloatfor gotoifintlongregisterreturnshort signedstaticsizeofstructswitchtypedefunion unsignedvoidvolatilewhile auto声明自动变量 double声明双精度变量或函数 int声明整型变量或函数 struct声明结构体变量或函数 break跳出当前循环 else条件语句否定分支(与if连用) long声明长整型变量或函数 switch:用于开关语句 case开关语句分支 enum声明枚举类型 register声明寄存器变量 typedef用以给数据类型取别名 char声明字符型变量或函数 extern声明变量是在其他文件正声明 return子程序返回语句(可以带参数,也可不带参数) union声明共用数据类型 const声明只读变量 float声明浮点型变量或函数 short声明短整型变量或函数 unsigned声明无符号类型变量或函数 continue结束当前循环,开始下一轮循环 for一种循环语句 signed声明有符号类型变量或函数 void声明函数无返回值或无参数,声明无类型指针 default开关语句中的“其他”分支 goto无条件跳转语句 sizeof计算数据类型长度 volatile说明变量在程序执行中可被隐含地改变 do循环语句的循环体 while循环语句的循环条件static声明静态变量if:条件语句2)实型数据的合法形式
2.333e-1就是合法的,且数据是
2.333×10-1考试口诀e前e后必有数,e后必为整数.3)字符数据的合法形式: 1是字符占一个字节,1是字符串占两个字节含有一个结束符号 0的ASCII数值表示为48,a的ASCII数值是97,A的ASCII数值是654)整型一般是两个字节字符型是一个字节,双精度一般是4个字节 考试时候一般会说,在16位编译系统,或者是32位系统碰到这种情况,不要去管,一样做题掌握整型一般是两个字节字符型是一个字节,双精度一般是4个字节就可以了5)转义字符的考查 在程序中inta=0x6d,是把一个十六进制的数给变量a注意这里的0x必须存在 在程序中inta=065是一个八进制的形式6)算术运算符号的优先级别 同级别的有的是从左到右,有的是从右到左7)强制类型转换 一定是(int)a不是 int(a),注意类型上一定有括号的 注意(int)(a+b)和(int)a+b的区别前是把a+b转型,后是把a转型再加b8)表达式的考查 是表达式就一定有数值 赋值表达式表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值 自加、自减表达式假设a=5,++a(是为6),a++(为5);运行的机理++a是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了 考试口诀++在前先加后用,++在后先用后加逗号表达式优先级别最低;表达式的数值逗号最右边的那个表达式的数值(2,3,4)的表达式的数值就是49)位运算的考查 会有一到二题考试题目总的处理方法几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)一定要记住,在没有舍去数据的时候,左移一位表示乘以2;右移一位表示除以210)018的数值是非法的,八进制是没有8的,逢8进111)%符号两边要求是整数不是整数就错了12 两种取整丢小数的情况 1、inta=
1.6; 2、inta; 第二章1)printf函数的格式考查 %d对应整型;%c对应字符;%f对应单精度等等宽度的,左对齐等修饰 %ld对应longint;%lf对应double2)scanf函数的格式考察 注意该函数的第二个部分是a这样的地址,不是a; Scanf“%d%d%*d%d”abc;跳过输入的第三个数据3)putchargetchar函数的考查 char a=getchar是没有参数的,从键盘得到你输入的一个字符给变量a putchar‘y’把字符y输出到屏幕中5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) 这个有__的意义,注意x=(int)x这样是把小数部分去掉 第三章特别要注意c语言中是用非0表示逻辑真的,用0表示逻辑假的1)关系表达式 表达式的数值只能为1(表示为真),或0(表示假) 当关系的表达是为真的时候得到1如98这个是真的,所以表达式的数值就是1;2)逻辑表达式 只能为1(表示为真),或0(表示假)a 共有 || !三种逻辑运算符号b !|| 优先的级别c 注意短路现象考试比较喜欢考到表达式1)表达式2如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路”表达式1)||表达式2如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路”3)if语句 else是与最接近的if且没有else的相组合的4)条件表达式 表达式1?表达式2表达式35)switch语句a)一定要注意有break和没有break的差别,书上(34页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句 b)switch只可以和break一起用,不可以和continue用 第四章1)三种循环结构 a)for();while; do-while三种 b)for循环当中必须是两个分号,千万不要忘记 c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环 ddo-while循环的最后一个while;的分号一定不能够丢(当心上机改错)2break和 continue的差别 记忆方法break是打破的意思,(破了整个循环)所以看见break就退出真个一层循环continue是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环3)嵌套循环 就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的4while((c=getchar)!=’\n’)和while(c=getchar!=’\n’)的差别先看a=3!=2 和(a=3)!=2的区别(!=号的级别高于=号所以第一个先计算3!=2)第一个a的数值是得到的1;第二个a的数值是3考试注意点:括号在这里的重要性 第五章函数是具有一定功能的一个程序块;2)一定要注意参数之间的传递 实参和形参之间传数值,和传地址的差别(考试的重点) 传数值的话,形参的变化不会改变实参的变化 传地址的话,形参的变化就会有可能改变实参的变化3)函数声明的考查一定要有函数名,函数的返回类型,函数的参数类型不一定要有形参的名称第六章*p++和(*p)++的之间的差别改错题目中很重要 *p++是地址会变化 (*p)++是数值会要变化 三名主义(考试的重点) 数组名表示第一个元素的地址数组名不可以自加,他是地址常量名(考了很多次) 函数名表示该函数的入口地址 字符串常量名表示第一个字符的地址第七章1一维数组的重要概念对a
[10]这个数组的讨论1、a表示数组名,是第一个元素的地址2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列 对a
[3]
[3]的讨论1、a表示数组名,是第一个元素的地址2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行4、a
[0]、a
[1]、a
[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a
[0]+1,a
[1]+1,a
[2]+1都是跳一列5、注意a和a
[0]、a
[1]、a
[2]是不同的,它们的基类型是不同的前者是一行元素,后三者是一列元素二维数组做题目的技巧如果有a
[3]
[3]={123456789}这样的题目步骤一把他们写成 第一列 第二列 第三列 a
[0] 1 2 3 -第一行a
[1] 4 5 6 —第二行a
[2] 7 8 9 -第三行步骤二这样作题目间很简单 *a
[0]+1我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a
[0]
[1]元素,所以是2*a
[1]+2我们就知道是第二行的第一个元素往后面跳二列那么这里就是a
[1]
[2]元素,所以是6一定记住只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写 inta[]={1,2}合法 inta[]
[4]={2,3,4}合法 但inta
[4][]={2,3,4}非法二维数组中的行指针inta
[1]
[2];其中a现在就是一个行指针,a+1跳一行数组元素 搭配(*)p
[2]指针 a
[0],a
[1]现在就是一个列指针a
[0]+1跳一个数组元素搭配*p
[2]指针数组使用无条件等价 a
[2]等价于*(a+2) a
[2]
[3]等价于*(a+2)
[3]等价于*(*(a+2)+3)这个思想很重要!。