C语言基础知识总复习考前突击专用.doc

上传人:h**** 文档编号:1300479 上传时间:2019-02-06 格式:DOC 页数:14 大小:121.65KB
下载 相关 举报
C语言基础知识总复习考前突击专用.doc_第1页
第1页 / 共14页
C语言基础知识总复习考前突击专用.doc_第2页
第2页 / 共14页
C语言基础知识总复习考前突击专用.doc_第3页
第3页 / 共14页
C语言基础知识总复习考前突击专用.doc_第4页
第4页 / 共14页
C语言基础知识总复习考前突击专用.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、 C 语言 基础 知识 总复习(考前突击专用) 总体上必须清楚的 : 1)程序结构是三种 : 顺序结构 、 选择结构 (分支结构 )、 循环结构 。 2)读程序都要从 main()入口 , 然后从最上面顺序往下读 (碰到循环做循环 ,碰到选择做选择 ), 有且只有 一个 main 函数 。 3)计算机的数据在电脑中保存是以 二进制 的形式 . 数据存放的位置就是 他的地址 . 4)bit 是 位 是指为 0 或者 1。 byte 是指 字节 , 一个字节 = 八个位 . 概念常考到的: 1、编译预处理 不是 C 语言的一部分, 不占 运行时间, 不要加 分号。 C 语言编译的 程序称为源程序

2、,它以 ASCII 数值 存放在 文本文件 中。 2、 define PI 3.1415926; 这个写法是 错误 的, 一定不能出现分号 。 3、每个 C语言程序中 main 函数 是 有且只有一个 。 4、在函数中 不可以 再定义函数。 5、算法: 可以没有 输入 ,但是 一定要有 输出 。 6、 break 可用于循环结构和 switch 语句。 7、 逗号运算符 的级别 最低 , 赋值 的级别 倒数第二 。 第一章 C 语言的基础知识 第一节、对 C 语言的基础认识 1、 C 语言编写的程序称为 源程序 , 又称为 编译单位 。 2、 C 语言 书写格式是自由的 ,每行可以写多 个语句

3、,可以写多行。 3、一个 C语言程序有且只有一个 main函数,是程序运行的 起点 。 第二节、熟悉 vc+ 1、 VC 是软件,用来运行写的 C语言程序。 2、每个 C 语言程序写完后,都是 先 编译 ,后 链接 ,最后 运行 。 ( .c-.obj-.exe)这个过程中注意 .c 和 .obj 文件时无法运行 的,只有 .exe文件才可以运行 。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由 字母 , 数字 , 下划线 组成。有其它元素就错了。 并且 第一个必须为 字母 或则是 下划线 。第一个为数字就错了 2、标识符分为关键字、预定 义标识符、用户标识符。 关键字:

4、 不可以 作为用户标识符号 。 main define scanf printf 都不是关键字 。迷惑你的地方 If是可以做为用户标识符 。因为 If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵 define scanf printf include。记住 预定义标识符 可以 做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1) C 语言只有 八、十、十六 进制, 没有二进制 。但是 运行时候,所有的进制都要转换成二进制来进行处理 。(考过两次

5、) a、 C 语言中的 八进制 规定要 以 0 开头 。 018 的数值是非法的, 八进制是没有 8 的,逢8 进 1。 b、 C 语言中的 十六进制 规定要 以 0x 开头 。 2)小数的合法写法 : C语言 小数点两边有一个是零的话 , 可以不用写 。 1.0在 C 语言中可写成 1. 0.1在 C 语言中可以写成 .1。 3)实型数据的合法形式: a、 2.333e-1 就是合法的,且数据是 2.333 10-1。 b、考试口诀 : e 前 e 后必有数, e 后 必为 整 数 。 请结合书上的例子。 4) 整型 一般是 4 个字节 , 字符型 是 1个字节, 双精度 一般是 8 个字节

6、: long int x; 表示 x 是长整型。 unsigned int x; 表示 x 是无符号整型。 第六、七节:算术表达式和赋值表达式 核心: 表达式一定有数值 ! 1、算术表达式: +, -, *, /, % 考试一定要注意: / 两边 都是 整型的话,结果就是一个 整型 。 3/2的结果就是 1. / 如果 有一边是 小数,那么结果就是 小数 。 3/2.0 的结果就是 0.5 %符号请一定要注意是 余数 ,考试最容易算成了除号。 ) %符号两边要求是整数 。不是整数就错了。 注意 ! 2、赋值表达式:表达式数值是最左边的数值, a=b=5;该表达式为 5,常量不可以赋值 。 1、

7、 int x=y=10: 错啦, 定义时 , 不可以 连续赋值。 2、 int x,y; x=y=10; 对滴, 定义完成后 , 可以 连续赋值。 3、 赋值的左边只能是 一个变量 。 4、 int x=7.7;对滴, x就是 7 5、 float y=7;对滴, x就是 7.0 3、复合的赋值表达式: int a=2; a*=2+3;运行完成后, a的值是 12。 一定要注意,首先要在 2+3 的上面打上括号。变成( 2+3)再运算。 4、自加表达式: 自加、自减表达式:假设 a=5, +a(是为 6), a+(为 5); 运行的机理: +a 是先把变量的数值加上 1,然后把得到的数值放到变

8、量 a 中,然后再用这个 +a 表达式的数值为 6,而 a+是 先用该表达式的数值为 5,然后再把 a 的数值加上 1为 6, 再放到变量 a 中。 进行了 +a 和 a+后 在下面的程序中再用到 a 的话都是变量 a 中的 6了。 考试 口诀 : +在前 先加后用 , +在 后 先用后加 。 5、逗号表达式: 优先级别 最低 。表达式的数值逗号 最右边 的那个表达式的数值。 ( 2, 3, 4)的表达式的数值就是 4。 z=( 2, 3, 4) (整个是赋值表达式 ) 这个时候 z 的值为 4。(有点难度哦!) z= 2, 3, 4 (整个是逗号表达式)这个时候 z 的值为 2。 补充: 1

9、、空语句 不可以 随意执行,会导致 逻辑错误 。 2、注释是最近几年考试的重点, 注释 不是 C 语言 ,不占 运行时间, 没有 分号。 不可以 嵌套! 3、 强制类型转换 : 一定是 ( int) a 不是 int( a),注意 类型上 一定有括号 的。 注意( int)( a+b) 和( int) a+b 的区别。 前是把 a+b 转型,后是把 a 转型再加 b。 4、 三种 取整丢小数 的情况 : 、 int a =1.6; 、 (int)a; 、 1/2; 3/2; 第八节、字符 1)字符数据的合法形式 :: 1 是 字符 占 一 个字节, “1“是字符串占 两 个字节 (含有一个结束

10、符号 )。 0 的 ASCII 数值表示为 48, a 的 ASCII数值是 97, A的 ASCII 数值是 65。 一般考试表示 单个字符错误的形式: 65 “1“ 字符是可以进行算术运算的,记住: 0-0=48 大写字母和小写字母转换的方法: A+32=a 相互之间一般是相差 32。 2)转义字符: 转义字符分为一般 转义字符、八进制转义字符、十六进制转义字符 。 一般转义字符:背诵 0、 n、 、 、 。 八进制转义字符: 141 是合法的, 前导的 0 是不能写的。 十六进制转义字符: x6d 才是合法的,前导的 0 不能写,并且 x 是小写 。 3、 字符型和整数是近亲:两个具有很

11、大的相似之处 char a = 65 ; printf( %c , a); 得到的输出结果: a printf( %d , a); 得到的输出结果: 65 第九章、位运算 1)位运算的考查:会有一到二题考试题目。 总的处理方法:几乎所有的位运算的题目都要按这个流程来处理( 先把十进制变成二进制再变成十进制 )。 例 1: char a = 6, b; b = a右移一位表示除以 2。 第二章 第一节:数据输出(一)(二) 1、使用 printf 和 scanf 函数时,要在最前面加上 #include stdio.h 2、 printf 可以只有一个 参数, 也可以有两个 参数。(选 择题考过

12、一次) 3、 printf( 第一部分 ,第二部分 );把第二部分的变量、表达式、常量以第一部分的形式展现出来! 4、 printf( a=%d, b=%d, 12, 34) 考试重点! 一定要记住是将 12 和 34 以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为 :一模一样 。 在黑色屏幕上面显示为 a=12, b=34 printf( a=%d, n b=%d, 12, 34)那么输出的结果就是: a=12, b=34 5、 int x=017; 一定要弄清楚为什么是 这个结果!过程很重要 printf( %d, x); 15 printf( %o, x); 17 printf

13、( %#o, x); 017 printf( %x, x); 11 printf( %#x, x); 0x11 6、 int x=12, y=34; 注意这种题型 char z= a; printf( %d , x, y); 一个格式说明,两个输出变量,后面的 y 不输出 printf( %c, z); 结果为: 12a 7、一定要背诵的 格式说明 表示内容 格式说明 表示内容 %d 整型 int %c 字符 char %ld 长整型 long int %s 字符串 %f 浮点型 float %o 八进制 %lf double %#o 带前导的八进制 % 输出一个百分号 %x 十六进制 %5d

14、 %#x 带前导的十六进制 举例说明: printf( %2d, 123 ); 第二部分有三位,大于指定的两位,原样输出 123 printf( %5d, 123 ); 第二部分有三位,小于指定的五位 ,左边补两个空格 123 printf( %10f, 1.25 ); 小数要求补足 6 位的,没有六位的补 0,。结果为 1.250000 printf( %5.3f, 125 ); 小数三位,整个五位,结果为 1.250(小数点算一位) printf( %3.1f, 1.25 );小数一位,整个三位,结果为 1.3(要进行四舍五入) 第三节 数据输入 1、 scanf( a=%d, b=%d,

15、 跳过输入的第三个数据。 2) putchar ,getchar 函数的考查: char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量 a。 putchar( y )把字符 y 输出到屏幕中。 3) 如何实现两个变量 x , y 中数值的互换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x; x=y; y=t。 4) 如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) y=( int)( x*100+0.5) /100.0 这个保留 两位 ,对第三位四舍五入 y=( int)( x*1000+0.5) /1000.0 这个保留 三位 ,对

16、第四位四舍五入 y=( int)( x*10000+0.5) /10000.0 这个保留 四位 ,对第五位四舍五入 这个有推广的意义,注意 x = ( int) x 这样是把小数部分去掉。 第三章 特别要注意: C 语言中是用 非 0 表示逻辑真的, 用 0 表示逻辑假的。 C 语言 有 构造类型 , 没有 逻辑类型 。 关系运算符号:注意 8 这个关系表达式是真的,所以 98 这个表达式的数值就是 1。 如 7 else if( b= =t) printf( b ); else if( c= =t) printf( c ); else pritnf( d ); 通过习题,要熟悉以上几种 if

17、 语句! 经典考题:结合上面四种 if 语句题型做题,答错了,请自行了断!预备,开始! int a=1, b=0; if(! a) b+; else if( a= =0) if( a) b+=2; else b+=3;请问 b 的值是多少? 如果没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。 正确的是 b为 3。 int a=1, b=0; if(! a) b+; 是假的不执行 else if( a= =0) 是假的执行 if( a) b+=2; 属于 else if 的嵌套 if 语句,不执行。 else b+=3; if-else-if 语句没有一个正确的,就执行

18、 else 的语句! 4)条件表达式: 表达式 1 ?表达式 2 :表 达式 3 a、考试口诀 : 真前假后 。 b、 注意是当表达式 1 的数值是 非 0 时,才采用表达式 2 的数值做为整个运算结果,当表达式 1 的数值 为 0 时, 就用表达式 3 的数值做为整个的结果。 c、 int a=1, b=2, c=3, d=4, e=5; k=ab? c: de? d: e;求 k的数值时多少? 答案为 san 5) switch 语句: a) 执行的流程一定要弄懂!上课时候详细的过程讲了,请自己一定弄懂 ! b)注意有 break 和没有 break 的差别,书上的两个例子, 没有 bre

19、ak 时候,只要有一个case 匹配了,剩下的都 要执行 , 有 break 则是直接跳出了 swiche 语句。 break在 C 语言中就是分手,一刀两断的意思。 c) switch 只可以和 break 一起用 ,不可以和 continue 用。 d) switch(x) x:是整型常量,字符型常量,枚举型数据。 case 1: . 不可以是变量。 case 2: . e) switch 是必考题型,请大家一定要完成书上的课后的 switch 的习题。 第四章 1)三种循环结构 : a) for() ; while(); do- while()三种。 b) for 循环当中 必须 是 两

20、个分号 ,千万不要忘记。 c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。 d) do-while()循环的最后一个 while();的分号一定不能够丢。(当心上机改错), do while循环是至少执行一次循环。 2) break 和 continue 的差别 记忆方法: break:是 打破 的意思,(破了整个循环)所以 看见 break 就退出整个一层循环 。 continue: 是 继续 的意思,(继续循环运算),但是 要 结束本次循环 ,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件, 进行新一轮的循环 。 3)嵌套循环 就是有循环里面还有循环,这

21、种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。 4) while( c=getchar()) !=n) 和 while( c=getchar() !=n)的差别 先看 a = 3 != 2 和 ( a=3)! =2 的区别: (! =号的级别高于 =号 所以第一个先计算 3! =2) 第一个 a 的数值是得到的 1;第二个 a的数值是 3。 考试注意点 : 括号在这里的重要性。 5)每行输出五个的写法: for( i=0; i=100; i+) printf( %d, i); if(( i+1)%5=0)printf( n ); 如果 i 是从 1 开始的话,就是 i

22、f(i%5=0)printf( n ); 6)如何整除一个数: i%5=0表示整除 5 I%2=0表示整除 2,同时表示是偶数! 7)输入 123,输出 321逆序输出 数据 int i=123; while( i! =0) printf( %d, i%10) ; i=i/10; 8)for 只管后面 一个 语句 : int i=3; for( i=3; i6;i+): printf( # ): 请问最终打印几个 #号?答案为一个! 9)不停的输入,直到输入 # 停止输入! 不停的输入,直到输入 $停止输入! while( (x=getchar()!= # ) while( (x=getcha

23、r()!= $ ) 不停的输入,直到遇到?停止输入! while( (x=getchar()!= ? ) 解说:一定要注意这种给出了条件,然后如何去写的方法! 10) for 循环和 switch 语句的和在一起考题! 11) 多次出现的考题 : int k=1 int k=1; while( - -k); while( k- -); printf( %d, k); printf( %d, k); 结果为 0 结果为 -1 第五章 1、函数:是具有一定功能的一个程序块, 是 C语言的基本组成单位。 2、函数不可以嵌套定义。但是可以嵌套调用。 3、函数名缺省返回值类型,默认为 int。 4、 C

24、 语言由函数组成,但有且仅有一个 main 函数!是程序运行的开始! 5、如何判断 a是否为质数:背诵这个程序! void iszhishu( int a ) for( i=2; ia/2; i+) if(a%i=0) printf(不是质数) ; printf( 是质数! ); 6、 如何求阶层 : n! 背诵这个程序! int fun(int n) int p=1; for(i=1;i=n;i+) p=p*i; return p; 7、函数的参数可以是常量,变量,表达式,甚至是 函数调用 。 add( int x, int y) return x+y; main() int sum; su

25、m=add( add( 7,8), 9);请问 sum的结果是多少? 结果为 24 8、 函数的参数,返回数值(示意图): 9、一定要注意参数之间的传递 实参和形参之间 传数值 ,和 传地址 的差别。(考试的重点) 传 数值 的话,形参的变化 不会改变 实参的变化。 传 地址 的话,形参的变化就会 有可能改变 实参的变化。 10、函数声明的考查: 一定要有:函数名,函数的返回类型,函数的参数类型。 不一定要有:形参的名称 。 填空题也可能会考到!以下是终极难度的考题。打横线是函数声明怎么写! int *fun( int a , int b) . 已经知道函数是这样 。这个函数的正确的函数声明怎

26、么写? int *fun( int *a , int *b) 这里是函数声明的写法,注意数组就是指针 int *fun( int a , int b) 这种写法也是正确的 int *fun( int b , int c) 这种写法也是正确的,参数的名称可以随便写 int *fun( int * , int *) 这种写 法也是正确的,参数的名称可以不写 11、要求掌握的库函数: a、库函数是已经写好了函数,放在仓库中,我们只需要如何去使用就可以了! b、以下这些库函数经常考到,所以要背诵下来。 abs()、 sqrt()、 fabs()、 pow()、 sin() 其中 pow(a, b)是重

27、点。 23是由 pow(2, 3)表示的。 第六章 指针变量的本质 是用来放地址,而 一般的变量 是放数值的。 1、 int *p 中 *p 和 p的差别:简单说 *p 是数值, p是地址! *p 可以当做变量来用; *的作用是取后面地址 p 里 面的数值 p 是当作地址来使用。可以用在 scanf 函数中: scanf( %d, p); main() int a = 5,b=6,c; c = add(a,b); printf(“%d”,c); 调用函数 a,b 是实参 整个函数得到一个数值就是 Add 函数的返回数值。 int add ( int x, int y) int z; z=x+y

28、; return z; 被调用函数 x, y 是形式参数 函数返回数值是整型 z 就 是这个 add 函数计算后得到的结果,就是函数返回给主程序的返回数值。 程序是在从上往下顺序执行,当碰到了函数 add 后,把 a, b的数值穿给调用函数,程序暂时中断等待返回数值。当得到了返回数值后,再顺序的往下执行 2、 *p+ 和 ( *p) +的之间的差别: 改错题目中很重要!考试超级重点 *p+是 地址会变化。 口诀:取当前值,然后再移动地址! ( *p) + 是数值会要变化。 口诀:取当前值,然后再使数值增加 1。 例题: int *p,a=1,3,5,7,9; p=a; 请问 *p+和( *p)

29、 +的数值分别为多少? *p+: 这个本身的数值为 1。由于是地址会增加一,所以指针指向数值 3 了。 ( *p) + 这个本身的数值为 1。由于有个 +表示数值会增加,指针不移动,但数值 1 由于自加了一次变成了 2。 3、二级指针: *p:一级指针:存放变量的地址。 *q:二级指针:存放一级指针的地址。 常考题目: int x=7; int*p=&x, *q=p; 问你: *p 为多少? *q为多少? *q 为多少? 7 p 7 再问你: *q=&x 的写法可以吗? 不可以,因为二级指针只能存放一级指针的地址。 4、三名主义:(考试的重点) 数组名:表示第一个元素的地址。 数组名不可以自加

30、,他是地址常量名。(考了很多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。 5、移动指针(经常加入到考试中其他题目综合考试) char *s= meikanshu while( *s) printf( %c, *s); s+; 这个 s 首先会指向第一个字母 m 然后通过循环会一次打印出一个字符, s+是地址移动,打印了一个字母后,就会移动到下一个字母! 6、 指针变量两种初始化(一定要看懂) 方法一: int a=2, *p=&a; (定义的同时初始化 ) 方法二: int a=2, *p; (定义之后初始化 ) p=&a; 7、 传数值和传地址(每年必考好多题目

31、) void fun( int a, int b) void fun( int *a, int *b) int t ; int t ; t=a; a=b; b=t; t=*a; *a=*b; *b=t; main() main() int x=1, y=3, int x=1, y=3, fun( x, y); fun( &x, &y) printf( %d, %d, x, y); printf( %d, %d, x, y); 这个题目答案是 1 和 3。 这个题目的答案就是 3 和 1。 传数值, fun 是用变量接受,所以 fun 中 传地址, fun 用指针接受!这个时候 fun 的交换不会影响到 main 中的 x 和 y 。 中的交换,就会影响到 main 中的 x 和 y。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。