ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:40.02KB ,
资源ID:9452983      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9452983.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vc冲刺课复习.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vc冲刺课复习.docx

1、vc冲刺课复习二、冲刺课复习(一)、C语言部分1、C语言的基础知识1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.33310-1。考试口诀:e前e后必有数,e后必为整数。.3)字符数据的合法形式:: 1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号)。

2、0 的ASCII数值表示为48,a 的ASCII数值是97,A的ASCII数值是65。一般考试表示单个字符错误的形式:65 1字符是可以进行算术运算的,记住:0-0=48大写字母和小写字母转换的方法:A+32=a 相互之间一般是相差32。4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。5)转义字符的考查: 在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中 int

3、a = 06d, 是一个八进制的形式。 在转义字符中,x6d 才是合法的,0不能写,并且x是小写。 141 是合法的, 0是不能写的。 108是非法的,因为不可以出现8。6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。7)强制类型转换: 一定是 (int)a 不是 int(a),注意类型上一定有括号的。 注意(int)(a+b) 和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。8)表达式的考查: 是表达式就一定有数值。 赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。 自加、自减表达式:假设a=5,+a(是为6), a+

4、(为5);运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个+a表达式的数值为6,而a+是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。 进行了+a和a+后 在下面的程序中再用到a的话都是变量a中的6了。 考试口诀:+在前先加后用,+在后先用后加。逗号表达式:优先级别最低 ; 表达式的数值逗号最右边的那个表达式的数值。 (2,3,4)的表达式的数值就是4。例题:main() int x,y,z;x=y=1; z=x+,y+,+y;printf(“%d,%d,%dn”,x,y,z);程序运行后的输出结果是A) 2,3,3 B) 2,3,2

5、C) 2,3,1 D) 2,2,19)位运算的考查: 会有一到二题考试题目。 总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。 例1:char a = 6, b; b = a2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。 例2:一定要记住,异或的位运算符号。0 异或 1得到1。 0异或 0得到0。两个女的生不出来。 1 异或 1得到0。两个男的生不出来。考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。 例3:在没有舍去数据的时候,右移一位表示除以2。10)018的数值是非法的,八进制是没有8的,逢8进1。 11)%符号两边

6、要求是整数。不是整数就错了。12)三种取整丢小数的情况:1、int a =1.6; 2、(int)a; 3、1/2; 3/2;13)字符型和整数是近亲: char a = 65 ; printf(“%c”, a); 得到的输出结果:aprintf(“%d”, a);得到的输出结果:652、输入和输出1)printf函数的格式考查: %d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。 %ld对应 long int;%lf 对应double。2)scanf函数的格式考察: 注意该函数的第二个部分是&a 这样的地址,不是a; scanf(“%d%d%*d%d”,&a,&b,&c)

7、; 跳过输入的第三个数据。3)putchar ,getchar 函数的考查: char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。 putchar(y)把字符y输出到屏幕中。4)如何实现两个变量x ,y中数值的互换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) 这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。 main() double hui;int xy; scanf(“%f”,&hui);scanf(“%d”,&xy); printf

8、(“%f,%d”,hui,xy);如果从键盘上输入的数据的值是:23 回车 34.789回车,则最后的输出结果是: 3、选择结构 特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。1)关系表达式: 表达式的数值只能为1(表示为真),或0(表示假) 当关系的表达是为真的时候得到1。如 98这个是真的,所以表达式的数值就是1;2)逻辑表达式: 只能为1(表示为真),或0(表示假)a) 共有& | ! 三种逻辑运算符号。b) !&| 优先的级别。c) 注意短路现象。考试经常考到。 d) 要表示 x 是比0大,比10小的方法。0x10是不可以的(一定记住)。是先计算0x 得到的结果为1或则0

9、;再用0,或1与10比较得到的总是真(为1)。所以一定要用 (0x)&(xbc)printf(%dn,d); else if(c-1=d)=1)printf(%dn,d+1); elseprintf(%dn,d+2);执行后输出结果是()。A) 2 B) 3 C) 4 D) 编译时有错,无结果4)条件表达式: 表达式1 ?表达式2 :表达式3 注意是当表达式1的值为:非0时候 是表达式2的数值,当为0是就是表达式2的数值。考试口诀:真前假后。5)switch语句:a) 一定要注意 有break 和没有break的差别,书上(54页)的两个例子,没有break时候,只要有一个case匹配了,剩下

10、的都要执行,有break则是直接跳出了swiche语句。b) switch只可以和break一起用,不可以和continue用。c) switch(x) x:是整型常量,字符型常量,枚举型数据。case 1: . case后面的只能是常量不能是变量 。 case 2: . 注意:break可以用在循环语句中,也可以用在switch语句中。但是continue语句只能用在循环语句中。例题:main() int x=1,y=0,a=0,b=0;switch( x) case 1: switch(y) case 0: a+;break; case 1:b+;break; case 2: a+;b+;

11、break;printf(“a=%d,b=%dn”,a,b);4、循环结构1)三种循环结构: a)for() ; while(); do- while()三种。 b)for循环当中必须是两个分号,千万不要忘记。 c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。 d) do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错),dowhile循环是至少执行一次循环。复习:三个循环结构的执行过程。while 是先判断后执行。do.while是先执行后判断。for() 先执行表达式1,判断表达式2,执行循环体中的内容,在执行表达式3.例题:2) bre

12、ak 和 continue的差别 记忆方法: break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。 continue: 是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。3)嵌套循环 就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。4) while(c=getchar())!=n) 和 while(c=getchar() !=n)的差别先看a = 3 != 2 和 (a=3)!=2 的区别:(!=号的级别高于=号 所以第一个先计算 3

13、!=2) 第一个a的数值是得到的1;第二个a的数值是3。考试注意点: 括号在这里的重要性。main() int i=0,s=0; for(;) if(i=0|i=5) continue ; if(i=6) break; i+;s+=i;printf(“%d”,s);A、10 B、13 C、21 D、程序进入死循环5、函数函数:是具有一定功能的一个程序块;是C语言的基本组成单位。1) 函数的参数,返回数值void f(int v,int w) int t;t=v;v=w;w=tmain()int x=1,y=3,z=2;if(xy) f(x,y); else if(yz) f(y,z);else

14、 f(x,z);printf(“%d,%d,%dn”,x,y,z);2)函数的调用: 实参和形参之间 传数值,和传地址的差别。(考试的重点) 按数值传替,形参的变化不会改变实参的变化。(单向传替) 按地址传替,形参的变化就会有可能改变实参的变化。(双向传替)3)函数声明的考查:一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。4)要求掌握的库函数:sqrt() fabs() pow() sin() 其中pow(a,b)是重点。23为pow(2,3)。以及sqrt()表示的是一个表达式或者是一个数值的开方。 5)函数最后返回值的类型决定于函数的定义类型。6、指针1)、指针

15、变量的本质是用来放地址,而一般的变量是放数值的。int *p 中 *p和p的差别:*p可以当做变量来用;*的作用是取后面地址p里面的数值 p是当作地址来使用。*p+ 和 (*p)+的之间的差别:改错题目中很重要 *p+是 地址会变化。 (*p)+ 是数值会要变化。若有说明: int n=2,*p=&n,*q=p;则以下的非法的赋值语句是:()A、p=q B、*p=*q C、n=*q; D、p=n 2)、三名主义:(考试的重点) 数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。考试重要的话语:指针

16、变量是存放地址的。并且指向哪个就等价哪个,所有出现*p的地方都可以用它等价的代替。例如:int a=2,*p=&a; *p=*p+2;(由于*p指向变量,所以指向哪个就等价哪个,这里*p等价于,可以相当于是a=a+2)指针变量两种初始化方法一:int a=2,*p=&a;(定义的同时初始化)方法二:int a=2,*p;(定义之后初始化)p=&a;3)、给指针变量赋空值之后,不能对该变量进行指针运算。#include“stdio.h”main() int n,*p=NULL; *p=&n; printf(“请输入数据:”); scanf(“%d”,&p);printf(“结果是:”);prin

17、tf(“%dn”,p);该程序试图通过指针p为变量n读入数据并输出数据,但是程序中有多处错误,以下语句正确的是:()A、int n,*p=NULL; B、*p=&n; C、scanf(“%d”,&p); D、printf(“%dn”,p);4)返回指针的函数: 格式: 函数返回值类型 *函数名(形式参数列表)int *f(int *x,int *y) if(*x*y) return x; else return y;main() int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=f(p,q); printf(“%d,%d,%d”,*p,*q,*r);执行后输出结果是()A)

18、 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,87、数组1)一维数组的重要概念:对a10这个数组的讨论。 1、a表示数组名,是第一个元素的地址,也就是元素a10的地址。 2、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。 3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。对a33的讨论。 1、a表示数组名,是第一个元素的地址,也就是元素a10的地址。 2、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。 3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。 4、a0、a1、a2也都是地址常量,不可以对它进行赋值操作,同时

19、它们都是列指针,a0+1,a1+1,a2+1都是跳一列。 5、注意a和a0 、a1、a2是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。重点复习:定义的格式和排序例题:一下能正确定义一维数组的是:A、int num; B、#define N 100 int num0.100 D、int N=100 int numN; int numN#include“stdio.h”main() int i,j,t;a5=2,1,4,3,5; for(i=0;i4;i+) for(j=i+1;j5;j+)if(aiaj) t=ai;ai=aj;aj=t; for(i=0;i 1 2 3 第一

20、行 a1- 4 5 6 第二行 a2- 7 8 9 第三行步骤二:这样作题目间很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是6。一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。3) 数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写 int a=1,2 合法。 int a4=2,3,4合法。 但int a4=2,3,4非法。4) 二维数组中的行指针 int a12; 其中a现在就是一个行指针,a+1跳一行数组元素

21、。 搭配(*)p2指针 a0,a1现在就是一个列指针。a0+1 跳一个数组元素。搭配*p2指针数组使用5) 还有记住脱衣服法则: a2 变成 *(a+2) a23变成 *(a+2)3再可以变成 *(*(a+2)+3)以下错误的定义语句是A)int x3=0,1,1,2,3;B)int x43=1,2,3,1,2,3,1,2,3,1,2,3;C)int x4=1,2,3,1,2,3,1,2,3,1,2,3;D)int x3=1,2,3,4;8、字符串1)、字符串的概念:由双引号括起来的若干个字符所组成的序列。每一个字符串都有一个0做为结束的标识。2)字符串的存储形式:两种存储 数组存储 用数组来

22、存储字符串。 、将每一个字符分别赋值给数组中的每一个元素。 、定义字符数组的时候就给数组中的每一个元素赋初值。但是最后必须有一个结束符。 C、直接把一个字符串赋值给一个数组。 D、当把字符串中的内容赋值给数组时,当数组中的元素的个数多余数组字符个数的时候,可以不用加最后的结束符。 E、在定义数组的时候,省略了数组的长度的时候,如果没有结束符,那么这个数组时不能构成一个字符串的。 指针存储 用指针来存储字符串。在定义指针变量的同时将一个字符数组赋值给一个指针变量。以下不能正确进行字符串赋值的语句时:()A、char str5=”good!”; B、char str=”good!”C、char *

23、str=”good!” D、char str5=g,o,o,d;3)、字符串的输入和输出输出: A、printf函数输出字符串是,格式控制说明符是%s,其中的输出项为:地址。输出时不带有字符串的定界符。B、puts函数输出的一个字符串,同样的括号中的内容只能是一个字符串或者是一个地址。输出时不带有字符串的定界符。输入: A、scanf函数,在输入的时候,格式控制说明符任然为%s,输入项中的内容仍然为:地址。在输入的时候不输入字符串的定界符。但是使用scanf函数在输入数据的时候,不能接受回车符和空格符。 、gets()函数接受的仍然是一个字符串,输入项中的内容仍然为:地址。在输入的时候不输入字

24、符串的定界符。但是使用scanf函数在输入数据的时候,能接受回车符和空格符。例题:当用户要求输入的字符串中含有空格时,应使用的输入函数是:A、scanf() B、getchar() C、gets() D、getc()4)、字符串处理函数掌握字符串的处理函数:strcpy() strcmp() strlen() strcat()其中括号中的内容均是地址。掌握每一个函数的含义和功能。#include”stdio.h”main() char p20=”abcd”,q=”abc”,r=”abcde”;strcat(p,r);strcpy(p+strlen(q),q);printf(“%dn”sizeo

25、f(p);9、文件1)、文件指针的定义的格式:FILE *文件指针。2)、打开文件的格式:fopen(“文件名”,“打开方式”); 重点看打开方式为 r和w的形式。3)、关闭文件:fclose(文件指针)。 文件的操作:1)、feof函数的格式以及函数的功能。返回的是文件指针的位置.如果在文件的末尾,则返回的是一个非0值,若是不在文件末尾,返回的是0值。2)、fseek函数(定位函数) 掌握定位的原则。 例如:与fseek(fp,0L,seek_set)有相同作用的是:A、feof() B、ftell() C、fgetc() D rewind()上机考试重点:fprintf( 文件指针,格式控

26、制字符串,输入列表 );功能:按照格式控制说明的格式将输入列表中的值输入到文件指针所指的文件中。fscanf(文件指针,格式控制字符串,输出列表);功能:按照格式控制说明的格式从文件指针所指的文件中读取中数据来,并且赋值给输出列表。10、对C语言的深入讨论1)、用户定义类型: typedef 原有类型 标识符;掌握:没有定义新的类型,只是将原有的类型换了一个名字而已。2)、编译预处理 编译预处理必须单独占有一行,在程序执行时不占用程序的执行时间。 运算规则:先替换,后计算。# include # define N 5 # define M N+1 # define f(x) (x*M) mai

27、n() int i1,i2; i1=f(2); i2=f(1+1);printf(“%d %dn”,i1,i2);程序运行结果是A) 12 12 B) 11 7 C) 11 11 D) 12 73)、标识符的作用域 按照变量出现的位置,将其分为:全局变量和局部变量。按照存储存储类别分为:自动型和静态型。四个关键字:auto register static extern 局部变量的作用范围只是其所在的花括号中。而全局变量的作用范围是从定义开始,一直到程序的结束。 当同时出现局部变量和全局变量的时候,局部变量有效,而全局变量没有效果。全局变量相当于一个静态变量。 静态变量在使用时占有永久的存储单元

28、。在使用的时候只用看一次其初值。#include int a=5;void fun(int b) int a=10;a+=b; printf(“%d”,a);main() int c=20; fun(c); a+=c; printf(“%dn”,a);4)、动态存储分配掌握函数开辟存储单元的格式: A、malloc(size) 开辟的是动态的存储单元,返回的是一个空指针,若要将其赋值给一个指针变量,必须进行强制类型转换。B、calloc(n,size) 开辟的是动态的存储单元,返回的是一个空指针,若要将其赋值给一个指针变量,必须进行强制类型转换。例如:已有定义语句,double *p,请写出完整的语句,利用malloc函数使p指向一

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1