重庆市二级C语言基础知识点_第1页
重庆市二级C语言基础知识点_第2页
重庆市二级C语言基础知识点_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、好老师重庆市二级 C 语言基础知识点总结以及题目订正第一章1,函数是从主函数( main()开始 执行 ,回到主函数( main()结束;2,一个程序的 编译 是从第一个函数(语句)开始,到最后一个函数(语句) 结束; 第二章1,算法的特性:有穷性,确定性,有一个或者 0 个输入 ,有一个或者多个 输 出;有效性2,算法(程序)的几个结构:选择结构,顺序结构,循环结构第三章1,int类型是 2个字节, float 是4个字节, dooble是 8个字节2,数据类型分为:基本类型(整型,实型,字符型,枚举型) ,指针类型,构 造类型(结构体类型,数组类型,共用体类型) ,空类型 (空类型合法哦,

2、不要 忘记了这个特殊哦 )3,变量的地址是确定的,变量变的地方只是地址里面的值。4,用户标志符,由数字,字母,下划线构成, 第一个不能是数字, 但是 32 个关键字除外。5,注意 int 的最大表示范围是 -32768 32767,当超过这个范围的时候, 即以 d输出 32768时结果为 327686, 长整形( long)表示方法是在数字后面加 L,如果一个变量 a 3,那么表 示的是一个整形的 3,如果是 a 3L,那么就是长整形的 3;当分别以 o, ld, x (8进制,长整形, 16进制)输出的时候,结果 没有前面的 0,0X,和后面的 L例:int a075, b ox14; lo

3、ng int c5L; printf(“o,x,ld ”,a b c); 结果为(75,14,5)7,当出现 '0'的什么时候为结束,什么时候为八进制的转义字符 : 当'0'后面 有 1 7 之间的数字的 时候为转义字符;其他的时候为字符串结束标志, 注意转 义字符有哪些(参考书 p8)这样一个例题 若 strlen(”a 089”) =3strlen( “0a1b2c”)48,强制转换不会改变一个变量的值,只是改变其作用的那个表达式的值。 9,当, 在变量 后面的 时候表示在 本次 运算的时候 不 会改变,在下次引用或者参与运算的时候才会自变; 当,在变量的

4、前 面的时候则是在 本次运算就 会发生自变(顺便掌握 ,结合性是右结合 , 若 i j 等价于 (i+)+j ;10,复合运算符要注意当等号后面接的是表达式的时候要把表达式看成一个整 体即 x *y+8 等价于 xx*(y8),y8 是一个整体 第四章1,格式输入和输出的时候, 注意格式。要严格按照题目的格式进行操作。 (在 做题的时候尤其是读程序写结果的时候要细心哈! )2, d, md, m.nd, %e,以及相应的几种格式是什么意思,参考书 p13 第五章1,关系运算符, ,= ,=,= =,!= ,和!优先级最低,主意 与的区别: 是赋值的意思, 表达式的值是对变量赋的值, 是关系运

5、算符,关系运算表达式的值为 0或者 1.2,逻辑运算符, && ,|,!在这几个中优先级! > && > | ,优先级是体现在 结合性上而不是运算的先后性上。例如a=b=c=1;d=+a|+b&&+c 在这个里面 && 最高那就是加粗部分先 看成一个整体,运算顺序还是从 a 开始,即做完这个运算后,可以依次判断 出后边的运算式子没有必要计算了,所以 d1,a2,b1,c13,if 语句基本格式: 1 有 else的情况是: if (表达式)语句; else语句;(注意有分号哦),2 没有 else 的情况是: if (

6、表达式)语句;当有多个 if 和 else的 时候 if 是与 其后最近的没有配对的 else结合 ;注意,当函数作为 if 里面的表达 式的时候即 if(printf(“* ”)的时候,则是以函数的返回值判断 if 的真假,printf 输出以 1个字符则返回为 1,所以这个 if 是真的;4 条件表达式,? : ;右结合性,是从右往左结合,即是以最后一个?开 始结合,但是计算顺序仍然是从左到右(这个牵涉到 + , - 问题)(参考书 p16)5,switch 语句,switch 语句只有碰到 break 或者做到最后一个语句才结束, case 和 default 语句都只是入口。 (参考书

7、 p17 页例子) 第六章1, while 语句基本格式是 while(表达式)语句 ;注意在 while ()后面没有; 号 ,当函数或者赋值表达式放在 while 的()中时与 if 的判断方法一样,时候函 数的返回值或表达式值的逻辑值;2,do while ();语句和 while 语句的区别在于前者先做后判断后者是先判 断后做,这个知识点多参考书上( p18 例题)和卷子上的题3,for 语句,例如: for (i 1; i<100; i)ssi ;注意 for 括号的后面没有;号, 当有两个 for 语句即嵌套的 for 循环的时候 例如: for (i 1; i<4;

8、i)for (j0;j<5;j+ )ss i ; 这个时候是先做 i1;然后判断 i;然后做加 粗的部分,即是把加粗部分看成一个整体做完之后才会回到 i;所以 ssi ; 这个语句做了 20 次,(参考书 p19 例题)4,总结 if,for,whlie,后面如果没有 的时候,即是只有一个简单的语句的 时候,if ,for,whlie 的作用效力范围是到与之最近的分号结束; 当有 的时候 即是把 看成一个整体,控制范围是整个 里面的所有语句。5,break是结束整个循环; contine结束本层循环 ;具体参考书( p19页例子这 个很重要哦,一定要掌握) 第七章和第十章(重点哦! !)

9、1,维数的判断,当 *, 前面有 int ,char, float 等常见的类型名的时候表示是 在定义,一个 * 或者 表示升一维,当表达式前面没有 int ,char,float 的时候 则是在引用(或称为使用)一个 *或者 表示降一维;2,注意这样一些东西: int a33 ,*p=a 则, a0等价于 *p 表示的是这个 2 维数组的第一行或者说是这个 2 维数组的首元素的地址; ai等价与 *(pi)都 表示是数组的第 i 行或者是第 i 行的首元素的地址; 所以要引用这个 a 数组的元 素应该用 aij 或者 *p3,对一个数组的输入输出总结当数组是 int (整形的时候)一个有 n

10、 个元素的 1 维数组:输入for(i0;i<n;i)scanf(“ d, & ai ”); 输出for(i 0; i<n;i)printf (“ d”,ai );注意 int 类型要以 d 的格式一个有 n 行 m 列的 2 维数组: 输入:for(i0;i<n;i)(这里 i 控制行, j 控制列)for(j0;j<m;j) scanf(“d”,& aij ); 输出: for (i0;i<n;i) for ( j 0;j<m ;j) printf (“ d”,aij );(注意 在输入的时候才有 & 符号,输出的时候没有)一个字

11、符串数组即 char a10;对这个的输入有两种方式 (1)for(i0;i<n;i) scanf(“ c”,&ai );(2)gets(a); scanf(“ s”,a)(注意这两种方式的括号里面的只能是 一个数组名)输出也对应有两种方式: ( 1),for (i 0;i<n;i) printf (“c”, ai); (2)puts(a);printf(“ s”,a);注意这两种方式的括号 里面的只能是一个数组名;4,对一个有 n 个元素的数组的遍历(既是说从第一个成员访问到最后一个成 员)有以下两种方式:1,for(i0;i<n;i+ )2,for(i0;ai!&

12、#39;0'i+)+ai;(都是指从 a0访问到 an1)ai ; 参考书 p315,对字符串的操作注意: sizeof 是一个系统关键字,不是函数,求其后边的 参数占用的内存空间, strlen 求字符串中有多少有效字符。注意这个例题: char a30=“abc0b”; sizeof(a)30 ; sizeof(“abc0b”) 6;strlen(a)3 strlen(“abc0b”) 3 ; 6, *p+ 表达式中 p 与+ 先结合, 取完值之后地址指向下一个元素的地址; * p 则是直接输出第二个元素,指针输出完之后,也指向了下一个元素的地 址7,char a10;while(

13、ai) 和 while(ai!=0')都是表示当 a 数组不结束的情况下继续循环,一般就是指访问整个数组8,自编函数实现求字符串的长度:int fun( char *a)int fun(char *s) int k ; char *p;whlie(ak) k+;p=s whlie(*p) p+;第八章1,分清形参和实参的区别: (1)形参是在定义或声明中,实参是在引用当中 ; 当函数名前有 int ,float , char 等类型名时是定义或者声明,但是要排除省略 类型名的情况;一般引用出现在主函数中, ( 2)形参是不确定的值,因此 不能为 常量 ,实参是确定的值所以 可以为常量

14、。2,当实际参数是一个变量的时候, 实参向形参传递值, 只是个简单的值传递, 不会改变实参的值;当是 实参是地址传递的时候就要改变例:(1), int sub(int x ,int y ) int c ;cx;xy;y c;void main() int a 3,b2;sub(a, b);printf (“d, d”,a,b); 结果是 3,2(2),int sub( int* x ,int *y )int c *x;*x*y ;*yc;void main()int a3,b2;sub(&a,&b );printf (“ d, d”,a,b); 结果是 2,3 3,局部变量和全

15、局变量;注意分清各自的作用范围;参考书p64 第 4 题4,注意形参和实参必须赋值兼容,也就是说形参和实参维数必须一样;注意 区别 viod 和 return;当主函数里面带参数的形式, main(int argc,char *argv ) 中 argc是表示参数的个数, argv 这个数组储存的是具体的参数个数。 例, void main(int argc,char *argv ) char *p ;while( argc) *p=argvargc ;puts(*p ); 若输入为 china Beijing flie 则结果为: flie Beijing ; 5,注意函数的调用以及静态变量

16、;参考各次卷子中关于这个方面的题 第九和十一章1,宏替换的时候只是简单的字符替换, 不要加任何东西, 宏名中不能包含空格; 例: define xx(m) m*m int i 5;iixx (45); 结果为 i 5 45*4534; 2,宏替换是在 预编译 的时候进行,所以不占用程序运行时间; 宏名是无类型的; 3,结构体变量的长度是各个成员长度的和 ;当结构体指针和数组的时候注意分 清 . 和-的区别;参考书中 p59第 3题4,共用体变量的长度是由成员中的最长的成员决定 ; 5,链表的题就掌握模拟考试题中的一道选择题就可以了; 第十一章的其他内容, 还是要去看书了解第十二章和第十三章1,

17、位运算符有 | (或)即只要有一个 1就是 1, & (与)要全部为 1才为 1 (异或)要不相同才为 1 ;注意的是当向左移动 n位就是乘以 2的n 次方;向右移动 n 位就是除以 2 的 n 次方。2,文件, c 语言中可以认识两种文件存储类型( 1),文本文件( 2),二进制文 件;3,打开文件操作注意语句 if (fp fopen(“文件名”,“r ”)=NULL );当 等于 NULL 的时候就不能打开;注意文件打开之后必须关闭,即是fclose(fp);这两个必然是成对出现;4,文件在什么情况下结束 (1),fp EOF 的时候结束fp! EOF 的时候不结束。(2),当 feof(fp)返回值为 0 时不结束,返回非零 时就是结束

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论