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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C复习资料.docx

1、C复习资料C语言程序设计综合复习资料一、单选题1. C语言中基本数据类型有 。CA) 整型、实型、逻辑型 B)整型、字符型、逻辑型 C) 整型、实型、字符型 D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个 。AA) 八进制数 B) 十进制数 C) 十六进制数 D) 非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是 。AA) 在标识符中,大写字母和小些字母的意义相同 B) 有些不同类型的变量可以在一个表达式中运算 C) 在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义4. 下列关于C语言用户标识符的叙述中正确

2、的是 。BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是 。DA) 顺序结构 B) 选择结构 C) 循环结构 D) 数组结构6. C语言提供的合法关键字是 。DA) swicth B) cha C) Case D) default

3、7以下非法的赋值语句是 CA) n=(i=2,+i); B)j+; C) +(i+1); D)x=j0;【解析】对表达式不能进行自加自减运算。8.在以下一组运算符中,优先级最高的运算符是 。A) 算术运算符关系运算符逻辑与“&”逻辑或“|”赋值运算符逗号运算符。由于C选项为求余运算符,所以本题正确答案为C选项。9. 以下四个选项中不能看作一条语句的是 。DA) ; B) a=0,b=0,c=0; C) if(a0) D) if(b=0)m=1;n=2;【解析】C语言的基本语句包含控制语句、表达式语句、空语句、复合语句、函数调用语句。控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if

4、-else、while、continue、switch、return、for、do-while、break、goto;表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一行,多数情况下含赋值运算符。复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环语句中。空语句:只有一个分号,表示什么也不做。函数调用语句:由函数名、圆括号内加实参表和分号组成。本题中D选项为三条语句,一条控制语句,链条表达式语句。正确答案为D选项。10. 能将高级语言编写的源程序转换为目标程序的软件是 。D A) 汇编程序 B) 编辑程序 C) 解释程序 D) 编译程序11

5、.以下选项中合法的实型常数是 。CA) 5E2.0 B) E-3 C) .2E0 D) 1.3E【解析】以指数形式表示实数时,字母e或E之前必须有数字,且e后面指数必须为整数。12.依据C语言的语法规则,下列合法标识符是 A A)Else B)else C)user$2 D)5_examp【解析】标识符的定义有明确的规则:(1)标识符只能由字母、数字、下划线三者构成;(2)标识符的首字符必须是字母或者下划线;(3)标识符命名对字母大小写敏感;(4)标识符定义不能和C语言关键字(Key Words)相同。C语言中标识符对大小写敏感,sum和SUM是不同的标识符。13.以下选项中合法的用户标识是

6、。A) long B) _2Test C) 3Dmax D) A.dat【解析】选项中A为保留字;选项C没有以字母或者“_”开头;选项D中不能有“.”14.在C语言中,字符型数据在内存中的存储形式是 。DA) 原码 B) 补码 C) 反码 D) ASCII码【解析】数据在内存中是以二进制形式存放的。数值是以补码表示的。c的char数据属于基本类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。而这些ASCII代码值在计算机中也是以二进制形式存放的。这个与整型的存储很相似。因此这两类之间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对

7、值的二进制形式“按位求反再加1”; 实型:在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂次来表示指数部分!15.以下非法的赋值语句是 。CA) n=(i=2,+i); B) j+; C) +(i+1); D) x=j0;【解析】对表达式不能进行自加自减运算。16.已定义c为字符型变量,则下列正确的赋值语句是 。DA) c=66; B) c=66; C) c=B; D) c=66;17.已知小写字母的ASCII码为97,对于int a=99, b=b; printf(“%c,%d”, a , b);的结果是 。BA) 99

8、, b B) c, 98 C) 99, 98 D) c, b【解析】字符类型变量用char来定义,特别要注意字符数据在内存中的存储方式:字符数据在内存中是用字符对应的ASCII码存储,其存储形式实质是采用整数形式,由于ASCII码集合中有256个字符,因此用0255这个范围内的256个整数分别与每个字符对应。因此字符型数据和整型数据在一定范围(0255)内,形式上可以相互引用。表现在这两种类型的变量能够以对方形式常量来赋值,以对方的形式来输出,还可以同时出现在算数表达式中参与运算int n=a; /*相当于n=97*/char c=65; /*相当于c=A,A的ASCII码是65*/print

9、f(n=%d,n=%c,n,n); /*输出:c=97,n=a*/printf(c=%d,c=%c,c,c); /*输出:n=65,n=A*/虽然字符型数据和整型数据在一定范围内可以通用,但其外在表现形式并不影响各自的数据类型,上例中n本质上还是整型变量,c本质上还是字符型变量。18.若变量a和i已正确定义,且i已正确赋值,合法的语句是 。BA) a=1 B) +i; C) a=a+=5 D) a=int(i)【解析】C语言的语句必须以分号结束,选项A是错误的。赋值表达式等号的左边只能是变量,而不能是表达式,选项C中含有a+=5,是错误的。选项D中的强制转换类型必须用圆括号将int括起来,也是

10、不正确的。19.假定x和y为double型,则表达式x=2,y=x+3/2的值是 。DA) 3.500000 B) 3 C) 2.000000 D) 3.000000【解析】算出来结果为3,排除A和C选项;又因为是double型,所以D选项为正确答案。20.以下程序的输出结果是 。Cmain() int a=5,b=4,c=6,d; printf(“%dn”,d=ab?(ac?a:c):(b);) 5 ) 4 ) 6 ) 不确定【解析】本题考察条件表达式。简单的条件表达式(条件表达式?表达式1:表达式2)可以用来代替if语句进行赋值。详见教材102页。21.设a=3,b=4,c=-5,则逻辑表

11、达式:a | b+c & b=c 的值是 。BA) 1 B) 0 C) 非0 D) 语法错【解析】运算符优先级由高到底为算术运算符-关系运算符-&和|-赋值运算符。其中&和|的结合方向为从左到右22.表示关系x=y=z的c语言表达式为 。AA) (x=y)&(y=z) B) (x=y)AND(y=z)C) x=y=z D) (x=y)&(yz-后,x,y,z的值分别是 。D) 1,1,1 ) 1,2,0 ) 0,1,1 ) 0,2,0【解析】注:前缀是先增值后引用,后缀是先引用再增值24.已知 int a=4,b=5; ,执行表达式 a=ab 后,变量a的值为 。AA)0 B)1 C)4 D)

12、5【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”算术运算符关系运算符逻辑与“&”逻辑或“|”赋值运算符逗号运算符。由于关系运算符优先级别高于赋值运算符,所以先执行ab,得到结果为假,即0,所以变量a的值为0。25.能正确表示逻辑关系“a10或a0”的C语言表达式是 。BA) a=10 or a=10 | a=10 & a=10 | a=026.设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是 。D A) a&b B) a=b C) a|b+c&b-c D) !(a=A & ch=A & ch0; k-=3) putchar(*); 输出是 。B A)*

13、 B)* C)* D)无限循环【解析】在k分别为16,13,10,7,4,1的时候,分别输出一个*。putchar()函数(字符输出函数)的作用是向终端输出一个字符。用putchar()函数可以输出能在屏幕上显示的字符,也可以输出控制字符,如putchar(n)的作用是输出一个换行符,使输出的当前位置移到下一行的开头。35.已知int i=1;执行语句while(i+4)后,变量i的值为 。CA) 3 B) 4 C) 5 D) 6【解析】i+是先进行其他运算,运算终了后再将i加1。所以循环中过程如下:i=0判断i4:成立i=i+1,于是i=1继续循环:判断i4:成立i=i+1,于是i=2继续循

14、环:判断i4:成立i=i+1,于是i=3继续循环:判断i4:成立i=i+1,于是i=4继续循环:判断i0前1个大,7) m-;printf(“%dn”,m);C)9876B)10987A)9 8 7D)1098【解析】复习一下while循环的执行过程:(1)计算while一对圆括号中表达式的值。当值为非零时,执行步骤(2);当值为零时,执行步骤(4)。(2)执行循环体中语句。(3)转去执行步骤(1)。(4)退出while循环。由以上while循环的一般过程来看,只有当while后面的括号中表达式的值为零时才停止循环。本题中,当m=7是循环停止,也就是说最后一个输出的应是7.开始m被赋予10,进

15、入循环体,由于m-;所以m自减1为9,所以第一个输出的应是9.44.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是 。BA) s=a+b; B) s=a+c; C) s=s+c; D) s=b+c;【解析】掌握两点:一、a赋给了s;二、s执行c次自加;所以最终相当于将a+c赋给了s。45.以下程序中,while循环的循环次数是 。Dmain() int i=0;while(i10) if(i1)continue; if(i=5)break; i+; A) 1 B) 10

16、C) 6 D) 死循环,不能确定次数【解析】在循环中,如果执行continue,将直接开始下一次循环,不继续执行continue下面的语句。进入循环时,i=0,当执行到if(i1)continue;一句时,将执行continue命令,直接开始下一次循环,i的值始终没有变,循环条件(i10)将一直满足下去。所以,程序将一直无法退出循环,即死循环。46.当对两个字符串进行比较时,应该使用的函数是 。BA) strcat B) strcmp C) strcpy D) strlen47若有定义“int k,*q;”,则下列各选项中赋值表达式正确的是 。BA) q=(&k+1) B) q=&k C) q

17、=k D) *q=&k【解析】(1)本题的定义语句中,在q前面有一个*号说明符,表示q是一个指针变量,而C语言规定,在指针变量中只能存放存储单元(即变量)的地址。(2)因为在定义中,q的基类型为int,所以q中只能存放int类型变量的地址。(3)在C程序中&号是求地址符,表达式&k的值是变量k在内存中的地址,而*号的作用是求地址指向单元的值。(4)现在来看看选项C和D。C中,是把整型变量直接赋给指针变量q,由于赋值不兼容性,这是错误的。D中,企图把k的地址赋给一个整型变量(*p在此可代表一整型变量),这也是不允许的,地址值不可能转换为一个整数。(5)关于A,还得声明一点,地址符&只能应用于变量

18、和以后将要介绍的数组元素,不可以用于表达式,常量或者被说明为register的常量。因此A也不正确。(6)那答案只能是B,因为此处q中只能存放int类型的地址,而k是int型,&k又是k的地址,B当然是正确的。48.若有以下定义:char s20= “programming”,*ps=s;则不能代表字符g的表达式是 。AA) ps+3 B) s3 C) ps3 D) ps+=3,*ps【解析】1、C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放该字符串常量。2、指向数组的指针变量也可以带下标,如pi与*(p+i)等价。详见教材231页。49.以下能正确定义数组并正确赋初

19、值的语句是 。CA) int N=5,bNN; B) int a12=1,3;C) int c2= 1,2,3,4; D) int d32=1,2,34;【解析】如果对全部元素都赋初值 (即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省!系统会根据总个数和第二维的长度算出第一维的长度。 详见教材p13850.假设已定义 char c8= test;int i; 则下面的输出函数调用中错误的是 。DA) printf(%s,c); B) for(i=0;i8;i+) printf(%c,ci);C) puts(c) D) for(i=0;i8;i+) puts(c

20、i);【解析】首先A、B两个选项是没有问题的,puts函数一般形式为puts(字符数组),其作用是输出字符串,所以D选项是错误的。51.下程序段:char s20 =xyz, *sp=s; strcat(sp,12345); puts(sp);的输出结果是 。AA) xyz12345 B) 12345xyz C) 12345 D) xyz 【解析】strcat(字符数组1,字符数组2)-(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值-字符数组1的地址。 52. 在执行int a 3=1,2,3,4; 语句后a12的值是 。CA. B. C. D. 【解析】考查知识点:二维数组的初始化int a 3=1,2,3,4;初始化的数组元素如下: 53已知:int a 3=1,2,3,4,5,6,7,8,9,0; 则数组a的第一维的大小是 。CA. 2 B. 3 C. 4 D. 无法确定;【解析】此数组共3列。应该是在C语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。系统会根

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

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