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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C复习资料1版.docx

1、C复习资料1版C程序设计复习资料1一、基础知识计算机工作原理、应用计算机工作原理:存储程序应用方面:最早应用是科学计算,现在最普遍的应用是数据信息处理。例:1、用计算机进行论文检索,属于计算机在_方面的应用。 A. 科学计算 B. 实时控制 C. 信息处理 D. 人工智能进制转换:利用计算器例:2、下列四个二进制数中,_与十进制数73等值 A. 01110111 B. 01001100 C. 01110110 D. 01001001计算机系统例3、计算机软件主要分为_。A. 数据库软件和网络软件B. 系统软件和应用软件C. 客户端软件和服务器端软件D. 应用软件和网络软件例4、微型计算机的微处

2、理器芯片上集成的主要组件包括_。A. 控制器和运算器B. 内存和控制器C. 控制器和存储器D. 运算器和I/O接口Windows操作网络、多媒体、病毒二、C语言基本概念题一)C语言程序程序组成1)C语言程序由一个或多个函数组成2)C语言程序中有且仅有一个main( )函数,位置任意。3)C语言程序总是从main( )函数开始执行,最后也在main( )函数结束4)C语言属于高级语言,编写的代码为源程序,需要编译为目标程序再连接后形成可执行文件程序才可以执行。二)C语言程序书写1)C语言区分大小写字母2)一行能写多条语句、一条语句可分成几行书写3)C语言程序中的语句必须以分号结束4)C程序在书写

3、时,没有严格的缩进要求5)语言本身没有输入输出语句6)C语言有两类注释语句, 注释语句不参加编译/* */、 /例题:1、C语言程序总是从_开始执行。A. 第一条语句 B. 第一个函数 C. main函数 D. #include 答案C2、下列关于C语言程序书写规则的说法中正确的是_。A. 不区分大小写字母B. 一行只能写一条语句C. 一条语句可分成几行书写D. 每行必须有行号答案C3、以下叙述错误的是_。 A. 一个C程序可以包含多个函数 B. 一个C程序只能有一个主函数 C. C程序在书写时,有严格的缩进要求,否则不能编译通过 D. C程序的主函数必须用main作为函数名答案C4、以下叙述

4、正确的是_。 A. 在C程序中,main函数必须位于程序的最前面 B. C语言本身没有输入输出语句 C. C语言的每一行中只能写一条语句 D. 在对一个C语言程序进行编译的过程中,可发现注释中的拼写错误答案B5、一个C程序的执行是从_。 A. 本程序的main函数开始,到main函数结束 B. 本文件的第一个函数开始,到本文件的最后一个函数结束 C. 本程序的main函数开始,到本文件的最后一个函数结束 D. 本文件的第一个函数开始,到本文件的main结束答案A6、计算机能直接执行的程序是_。 A. 可执行程序 B. 目标程序 C. 源程序 D. 汇编程序答案A三、类型及表达式一)合法的标志符

5、:命名规则(1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。(2)有效长度:随系统而异,但至少前个字符有效。(3)C语言的关键字不能用作变量名。例题:1是合法的用户自定义标识符的( )A)ah-spks B)double C) D)_myapple注解:A)用了不合法的-;B)是关键字; C)用了不合法的,所以答案为D2以下正确的C语言标识符是( )A)%x B)a+b C)a123 D)test!注解:A)用了不合法的%;B) 用了不合法的+ ;D)用了不合法的!,所以答案为C3以下不能定义为用户标识符的是( ) A) Void B) b_2 C) int D) name

6、注解:A)是大写的V,所不是关键字void,合法;B) 和D)肯定合法 ;C)int是关键字,所以答案为C二)合法的整型常量(1)十进制。例如10、36。(2)八进制(以数字开头)。例如012。(注意0后的数字不能=8)(3)十六进制(以数字+小写字母x开头)。例如0x36。例题:1以下选项中可作为C语言合法整数的是( ) A) 11010 B B) 0583 C) x2b2 D) 0xafb 注解:A)C语言没用二进制,不对;B) 以0开头则是8进制,不能用8和9这两个数字符号 ;C)十六进制应用0x开头,所以答案为D三)合法的实型常量(1)十进制小数形式。例如3.14、9.8。 (小数点后

7、数字可省略)(2)指数形式: E(e)。字母e或E前后必须有数字,且后面指数必须为整数例题:1以下选项中可作为C语言合法常量的是( )A)-80. B)-080 C)-8e1.0 D)-80.0e注解: B) 以0开头则是8进制,不能用8和9这两个数字符号 ;C)e后面要跟整数,1.0不是 D)e前后必须有数字 所以答案为A四)合法的字符型常量(1)用一对单引号括起来的单个字符,称为字符常量。(2)以“ ”开头的转义字符(常见的n、t、ddd(1-3位八进制)、xdd (1-2位十六制),这些都代表1个字符)例题:1设有说明语句:char a=123;则变量a( )A)包含1个字符 B)包含2

8、个字符 C)3个字符 D)说明不合法注解: 123是指ASCII码八进制值为123的那一个字符,所以答案为A2下列_是不合法的常量。 A) xabcde B) x1f C) 0x12 D) 2.1e3注解: A) 单引号只能括起一个字符,不能括起多个字符;B)是字符串常量,C)0x12是十六进制为12的整型常量,D)2.1e3是指数形式的实数,为2.1*103 所以答案为A五)合法的字符串常量(1)以一对双引号括起来的多个字符,称为字符串常量。(2)字符串常量的串末尾默认有一个0例题:1C 语言中,“x5d”在内存中占用的字节数是( ) A) 2 B) 5 C) 4 D) 1 注解: A) “

9、x5d”是字符串常量,存放了一个转义字符x5d,另外存储时会在末尾加一个0,所以答案为A2字符串“tx42bcdn”的长度是( )。A)7 B)10 C)12 D)13注解: t 一个x42一个 一个 b一个 c一个d一个 n一个,共7个,注意,讲长度时不算0,是指第一个0前面的字符个数。所以答案为A六)各种基本类型变量所占的字节数int 4 short 2 unsigned 4float 4 double 8 char 1例题:1下列式中,值不为4的表达式是( )A)sizeof(unsigned long) B)sizeof(long) C)sizeof(short) D)sizeof(f

10、loat)注解: sizeof()是求()中变量或类型的所占字节数,short为2,所以答案为C七)合法的表达式(1)%两边操作数必须是整型(2)赋值的左边一定是变量例题:1设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是( )A)a=5+ B)a=b=c+ C)a%=2.5 D)b=a+1=2注解:A)常量不能+;C)%两边必须是整型 ;D)=左边是a+1不允许。所以答案为B八)表达式的值每个表达式都有值(1)算术表达式的值就是计算结果(注意整除和取余运算)(2)赋值表达式的值被赋值变量的值(3)逗号表达式的值是最后一个表达式的值(4)注意两个表达式的意义:令a是数字字符,

11、则a-0就是对应的数字令a是字母字符,则a-32就是小写变为大写,a+32就是大写变为小写例题:1设整型变量a的值为2,下列表达式值为1的是( )A)a%3 B)a/3 C)-a D)a-注解:A)2%3=2 B)2/3=0 C)a=a-1,表达式为1 D)表达式为2 ,a=a-1=1所以答案是C(注意表达式是指除去+、-的式子)2下列表达式的值为0的是( ) A) 7/8 B) 7%8 C) 7/8.0 D) 78 注解:A)7/8=0 B)7%8=7 C)7/8.0=0.875 D)78=1所以答案是A3设float m=4.0, n=4.0; 使m为10.0的表达式是( )A) m-=n

12、*2.5 B) m/=n+9 C) m*=n-6 D) m+=n+2 注解:A)等价为m=m-(n*2.5)=6.0 ;B) 等价 m=m/(n+9)=0.31 ;C)等价m=m*(n-6)=8 D) 等价为m=m+(n+2)=10.0 所以答案是D4逗号表达式(a=4*5,a*2),a+15 的值是( ) A) 35 B) 40 C) 55 D) 20 注解:逗号表达式的值为最后一项的值,所以a=20(=的优先级比逗号高),所以表达式为20+15=35, 所以答案是A九)+、-运算1)先将表达式中+、-去掉2)再将前置型的写在表达式上方3)最后将后置型的写在表达式下方例题:当i=4,j=5时

13、,表达式3-(i+)*4+(-j)的值如何,i,j的值多少?按上面的做法表达式改为下面的三步,自上向下算,中间表达式值为9j=j-1;3-i*4+j;i=i+1;十)表达式的类型自动转换:表达式中有整型和字符型,结果一定为整型 表达式中有实型,结果一定为double类型强制转换:可以强制转换为指定的类型例题:1下列式中,最终运算结果的数据类型不是双精度的表达式的是( )A)(int)(3+3.0) B)1e-3 C)(double)(3) D)(int)3.0+3.0注解:A已强制转化为整型。而D则将第一个3.0强制整型,再+3.0自动转换为double类型。所以选A2. 设有定义int x;

14、float y;double z;,则表达式x+z-y值的数据类型为_。A. float B. charC. int D. double注解:一般表达式中有double或float类型的,若没有强制转换,最终一定是double类型,所以选D。三、顺序结构一)putchar和getchar:一次只能输入输出一个字符例题:1.putchar函数可以向终端输出一个( )A)整数B)实数C)字符串D)字符二)printf和scanf语句的使用方法:scanf注意数据输入时的分隔符(“”中有的要原样输入,没有的数值数据以空格、回车、Tab键为默认分隔符,字符数据没有分隔符)例题:1.设有语句scanf(

15、%d,%d”,&m,&n);要使m、n的值依次是2、3,正确是输入是( )A)2 3 B)2,3 C)2;3 D)2、3注解:对数值型和字符串型scanf中有任何分隔符,都要原样输入,若没有以空格、回车、Tab键分隔。所以选B2.设变量定义为int a,b;执行下列语句时,输入( ),则a和b的值都是10scanf(“%d,%d”,&a,&b);A)10 10 B) 10,10 C)a=10 b=10 D)a=10,b=10注解:同上。所以选B3.有以下程序#include void main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(

16、%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )A)123,456,789 B)m=123 n=456 p=789C)m=123,n=456,p=789D)123 456 789注解:scanf中任何非格式字符(%d%c%f%s),都要原样输入。所以选Bprintf注意输出形式%m.n形式,m代表输出的数据占的列宽,不够的在前面补上空格,n代表小数的显示位数例题:1.有如下程序段:int a=3,b=15;float f=7.5;printf(“%.1f”,(float)a+b/2+(int)f%3);执行该程

17、序段后,运算结果为:( )A)11.5 B)11.0 C)11 D)12.0注解:(float)a为3.0,b/2为整除值是7,(int)f为7,7%3=1,再相加值=3.0+7+1=11.0。所以选B三)算法1. 两数交换:t=a;a=b;b=t;(三步曲)2. 大小写字母互换 ch=ch+32; /大写字母转换为小写字母 ch=ch-32; /小写字母转换为大写字母3. 数字字符转换为对应数值 x=ch-48; /或x=ch-0; 三、选择结构一)关系表达式、逻辑表达式和条件表达式(1)C中结果为真时值用1表示,结果为假时值用0表示;(2)C中的操作数是以非0认为是真,以0认为是假;(3)

18、数学中表示10a100的C语言表示形式:10a&a100(4)逻辑运算中的短路原则(对于&前假则右边表达式不运算,右边变量值不发生任何改变;对于|前真则右边表达式不运算,右边变量值不发生任何改变)例题:1.在C程序中,用( )表示逻辑”真”。A)1 B)非0的数 C)非1的数 D)大于0的数注解:选B2.若有定义:int x=2,y=3,z=4;则表达式!(x+y)+z-1&y+z%2的值为( )A)4 B)0 C)1 D)2注解:先做!(x+y)为0再加z减1为3,则&左边为真,右边y+z%2为3也为真,真&真,结果为真值为1。所以选C3.设有int a=1,b=0;,则表达式a2|+b的值

19、是_。A. 0 B. 1C. T D. F注解:先做a0|+b;后,b的值为( )A)0 B)1 C)2 D)不确定注解:先做a0,则|左边为真,右边为任何情况结果都肯定为真值为1赋给c,另短路,b没改变。该题问b值所以选A 5.已知:int a=1,b=2,c=3,d=4;,则执行语句ab&+c=d;后,变量c的值是_。A. 4 B. 3C. 1 D. 不确定注解:先做ab,则&左边为假,右边为任何情况结果都肯定为假值为0,故短路,c没改变。该题问c值所以选B 6.设intx,y,z=4;x=y=+z;x=(yz)?x+2:x+;则x的值是( )A)4 B)5 C)6 D)7注解:先执行x=

20、y=+z;则x=y=z=5。再x=(yz)?x+2:x+;三目运算先完成yz假,执行x+,x为6。所以选C 7.为表示关系xy=z,则正确的c语言表达方式为( )。A)(xy=z) B)(xy)and(y=z)C)(y=z) D)(xy)&(y=z)注解:要描述三个数之间的关系一定要用到逻辑运算。所以选C 运算符的优先级和结合性记忆方法优先级单目双目三目特殊双目(赋值逗号)结合性单目、三目 自右向左双目 自左向右特殊双目(赋值) 自右向左例题:8、执行语句int a=8;a+=a-=a*a;后,变量的值是_。A. -240 B. 64 C. 112 D. -112解释:赋值的结合性为自右向左,

21、则先做右边a-=a*a 得到a为-56,再做左边a+=a 得到a=-112,选D二)if语句(1)条件if(a)等价if(a!=0) if(!a) 等价if(a= =0)(2)else的匹配原则:与上方最近的且没被匹配的if匹配(3)满足if条件的只执行if下方的一条语句,若有多条语句一定要用 括起来。例题:1有以下程序main( ) int a=0,b=0,c=0,d=0;if(a= =1)b=1;c=2; else d=3;printf(%d,%d,%d,%dn,a,b,c,d);程序输出()A)0,1,2,0 B)0,0,0,3 C)1,1,2,0 D)编译有错注解:满足if条件后有两条

22、语句,没有用,马上又跟else,语法出错。所以选D 2以下程序运行后的输出结果是 #include void main() int a=3,b=4,c=5,t=99; if(ba&ac) t=a;a=c;c=t; if(ac&bc) t=b;b=a;a=t; printf(%d %d %dn,a,b,c);注解:注意也是没,可正确匹配为 if(ba&ac) t=a; /43&35假不执行a=c;c=t; /a=5;c=99 if(ac&bc) t=b; /599&499真t=4b=a;a=t; /b=5; a=4所以结果为4 5 99三)switch语句(1)switch的执行过程(根据swi

23、tch后面的表达式的值找到case的入口,从入口处执行直到遇到break。)(2)break的用法例题:1#include void main() int x=1,y=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+;break;, case 3:a+;b+; printf(“a=%d,b=%dn”,a,b);输出结果:a=2,b=1四)算法1分段函数输入出租车里程S,输出应付车费F。S和F的关系如下:2. 奇偶判断 if(x%2=0) /偶数条件3. 整除判断 if(x%n=0) /表示x能被n整除4. 大写字母字符的判断 if(

24、ch=A&ch=a&ch=A&ch=a&ch=0&ch=9) /表示ch是数字字符的条件四、循环结构一)循环条件均以条件为真(非0)进行循环,以条件为假(0)结束循环)例题:1.以下叙述正确的是( )A)do-while语句构成的循环不能用其它语句构成的循环来代替B)do-while语句构成的循环只能用break语句退出C)do-while语句构成的循环,在while后的表达式为非零时结束循环D)do-while语句构成的循环,在while后的表达式为零时结束循环解答:D2.设有程序段:int k=10; while(k=0) k=k-1;则循环体执行的次数为( )A)10次B)9次C)0次D

25、)1次解答:注意条件为k=0,一个等号,这是将0赋值给k,故表达式为0,结束循环,所以选C二)三种循环的执行流程例题:1.设变量y值为3,执行下列循环语句后,变量y的值的是( )do y+; while(y4);A)3 B)4 C)5 D)6解答:+,-独立书写时不用管是后置还是先置,就认为是y=y+1,所以选B2.执行语句for(I=1;I4;I=I+2); 后变量I的值是( )A)3 B)4 C)5 D)0解答: I=1,14y I=3,34y I=5,54n,所以选C 3.已知:int x=0,y=10;while(xy) x+;y-;,则该循环_。A. 是无限循环 B. 执行次数不定C

26、. 执行6次 D. 执行5次解答: x=0,y=10 010 y x=1,y=9 x=1,y=9 19 y x=2,y=8x=2,y=8 28 y x=3,y=7x=3,y=7 37 y x=4,y=6x=4,y=6 46 y x=5,y=5x=5,y=5 55 n 结束循环所以选D4.设有int i;,则执行for(i=1;i+=4;);后变量i的值为_。A. 4 B. 5 C. 6 D. 7解答: 注意i+=4是后置+则改为i=4 i=i+1i=1, 1=4 i=2 y i=2, 2=4 i=3 y i=3, 3=4 i=4 y i=4, 4=4 i=5 y i=5, 5=4 i=6 n

27、结束循环所以选C三)循环嵌套的执行次数例题:1#include “stdio.h” void main() int I,j;for(I=0;I=3;I+) for(j=0;jI;j+) printf(”%d”,I);printf(“*n”);输出结果:解答:I=0 I=3 y j=0 j0 n 结束第二个for循环,执行printf(“*n”);I=1 I=3 y j=0 j1 y printf(”%d”,1);j=1 j1 n结束第二个for循环,执行printf(“*n”);I=2 I=3 y j=0 j2 y printf(”%d”,2);j=1 j2 y printf(”%d”,2);j=2 j2 n结束第二个for循环,执行printf(“*n”);I=3 I=3 y j=0 j3 y printf(”%d”,3);j=1 j3 y printf(”%d”,3);j=2 j3 y printf(”%d”,3);j=3 j3 n结束第二个for循环,执行printf(“*n”);I=3 I=3 n 结束外层循环。 所以结果是: * 1* 22* 333*四)break 和continue的用法例题:1有以下程序#include void main() int a=1,b; for(b=1;b=10;b+) if(a

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

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