ImageVerifierCode 换一换
格式:PDF , 页数:130 ,大小:1.65MB ,
资源ID:5444899      下载积分:15 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(C语言程序设计教程课后习题答案.pdf)为本站上传会员【曲****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言程序设计教程课后习题答案.pdf

1、C+语言程序设计教程课后习题答案(2011-03-09 17:24:22)标签:杂谈分类:学习第1章C+语言概述练习题11.1判断题XI.C+语言和C语言都是面向对象的程序设计语言。V 2.面向对象方法具有封装性、继承性和多态性。V 3.C语言是C+语言的一个子集。C+语言继承了 C语言。X4.C+语言程序与C语言程序一样都是函数串。X5.C+语言支持封装性和继承性,不支持多态性。V 6.C+语言比C语言对数据类型要求更加严格了。V 7.C+语言对C语言进行了一次改进,使得编程更加方便了。X8.C+源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。V 9.编译C+源程序时,出现了警告

2、错(Warning)也可以生成可执行文件。V 10.C+语言程序的实现也要经过编辑、编译连接和运行3个步骤。1.2单选题1.下列关于面向对象概念的描述中,错误的是(C)。A.面向对象方法比面向过程方法更加先进B.面向对象方法中使用了一些面向过程方法中没有的概念C.面向对象方法替代了结构化程序设计方法D.面向对象程序设计方法要使用面向对象的程序设计语言2.下列各种高级语言中,不是面向对象的程序设计语言是(D)0A.C+B.JavaC.VBD.C3.下列关于类的描述中,错误的是(A 0A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描

3、述体4.下列关于对象的描述中,错误的是(C)。A.对象是类的一个实例B.对象是属性和行为的封装体C.对象就是C语言中的结构变量D.对象是现实世界中客观存在的某种实体5.下列关于C+程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C)。A.提取符是对右移运算符()重载得到的B.插入符是对左移运算符()重载得到的C.提取符和插入符都是双目运算符,它们要求有两个操作数D.提取符和插入符在输入/输出语句中不可以连用1.3填空题1.C+语言具有面向对象方法中要求的三大特性:封装性、继承性 和多态性。2.C+程序中,有且仅有一个 主 函数。3.C+程序是由类和函数 组成的。4.C+源程序的扩展

4、名是cpp o5.使用插入符进行标准输出文件输出时,使用的输出流对象名是cout1.4上机调试下列程序,并分析输出结果1.#include void main()(int i,j;coutEnter i j:;cinij;couti=i,j=njendl;couti+j=ni+j7Hi*j=i*jendl;)假定,输入数据如下:Enter x y:5V91答:i=5,j=9i+j=14,i*j=452.#include int max(int,int);void main()int a,b,c;a=5;b=8;c=max(a,b);coutnmax(na,bH)=ncendl;)int max

5、(int x,int y)(return xy?x:y;)答:max(5,8)=83.文件el.4.3.cpp内容如下:#include voidfl(),f2();void main()(cout v v”在北京.n”;fl();f2();coutv再见An”;)文件1.4.3-l.cpp内容如下:#include void fl()(coutvv”在上海.n”;)文件1.4.3-2.cpp内容如下:#include void f2()(coutvv”在广州.n”;)答:在北京。在上海。在广卅。再见。1.5编译下列程序,修改所出现的错误,获得正确结果1.main()coutIn main()

6、.n答:修改后如下:#include void main()(coutIn main().n;#include void MAIN()(cina;int b=a+a;coutb=bn;)答:修改后如下:#include void main()(int a;cina;int b=a+a;cout*b=bn;#include void main()(int i,j;i=5;int k=i+j;COUTni+j=nkendl;)答:#include void main()(int i,j;j=10;i=5;int k=i+j;cout ni+j=nkendl;1.6通过对1.5题中3个程序的修改,回

7、答下列问题1.从1.5题中第1题程序的修改中,总结出编程应该注意哪些问题。答:C+程序要包含iostraem.h,main。函数前应加类型说明符void。2.C+程序中所出现的变量是否必须先说明后使用?在函数体内说明变量时是否都要放在函数体的开头?答:C+程序中所出现的变量必须先说明后使用。在函数体内说明变量时不一定要放在函数 体的开头。3.使用cout和插入符()输出字符串常量时应注意什么?答:可输出一个字符串常量,也可输出多个字符串常量。每输出一个字符串常量要使用一次 插入符(4?0:1D.2&2II015.下列表达式中,其值不为逻辑值的是(A 0A.算术表达式B.关系表达式C.逗号表达式

8、 D.逻辑表达式16.下列关于数组概念的描述中,错误的是(B)。A.数组中所有元素类型是相同的B.数组定义后,它的元素个数是可以改变的C.数组在定义时可以被初始化,也可以不被初始化D.数组元素的个数与定义时的每维大小有关17.下列关于数组维数的描述中,错误的是(C)。A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积18.下列关于数组下标的描述中,错误的是(B)。A.C+语言中数组元素的下标是从0开始的B.数组元素下标是一个整常型表达式C.数组元素可以用下标来表示D.数组元素的某维下标值应小于该维的

9、大小值19.下列关于初始值表的描述中,错误的是(C)。A.数组可以使用初始值表进行初始化B.初始值表是用一对花括号括起的若干个数据项组成的C.初始值表中数据项的个数必须与该数组的元素个数相等D.使用初始值表给数组初始化时,没有被初始化的元素都具有默认值20.下列关于字符数组的描述中,错误的是(D 0A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串21.下列关于字符串的描述中,错误的是(C)。A.一维字符数组可以存放一个字符串B.二维字符数组可以存放多个字符串C.可以使用一个字符串给二维字符数组赋值D.可以用一个字符串给二维

10、字符数组初始化22.已知:inta5=l,2,3,4;下列数组元素值为2的数组元素是(B)。A.a0 B.alC.a2 D.a323.已知:山瓦3=1,5,6,3,0,2;数组元素制1川的值为(A)。A.0 B.1C.2 D.324.已知:chars口二“abed”;输出显示字符d的表达式是(C)。A.s B.s+2C.s2 D.s325.已知:char ss 6=while,nfor,else1,break;输出显示“reak”字符串的表达式是(B)oA.ss3 B.ss3+lC.ss+3 D.ss3l2.3 填空题1.C+语言中,基本数据类型包含有整型、浮点型、字符型、空值型和 布尔型。2

11、.变量的存储类可分为自动类、寄存器类、外邹类 和静态存储类。3.浮点型常量可分为单精度、双精度和长双精度浮点型常量。4.结合性从右至左的运算符有单目运算符、双目运算符 和赋值运算符。5.条件表达式是由 三目 运算符组成的,该表达式的类型是由冒号左边和右边两个操作 数中类型高的操作数类型决定的。6.已知:double dd 3=1.2,2.4,3.6,4.8,5.2,6.4;这里 dd 是一个 二 维数组的数 组名,该数组共有 9 个元素,每个元素的类型是 double o数组元素dd的 值是 1.2,的值是 5.2,数组元素dd22的值是 0。7.已知:char ss 6=while1,bre

12、ak,nforn,else);字符数组 ss 是 二 维数组,它的 第1维大小应该是4。使用cout和输出字符串“for”时,对应的表达式是ss+2。使用cout 和输出字符串break”的子串“reak”时,对应的表达式是ssl+l o使用cout和vv输出字 符串else中的字符C时,对应的表达式是ss3。2.4 分析下列程序1.#include void main()(int a,b;coutEnter a b:cinba;int d=a-b;coutd=dendl;假定输入为5和8。答:d=32.#include void main()(const int A=8;const char

13、 CH=k;const double D=8.5;cout A=nAendl;coutCH+2=char(CH+2)endl;coutHD-5.8=nD-5.8endl;)答:A=8CH=2=m3.#include int a=9;void main()int b=5;cout a+b=a+bendl;static int c;cout c+a=c+aendl;const long int d=8;cout a+d-b=a+d-bendl;)答:a+b=14c+a=9a+d-b=124.#include void main()(int a=3;char b=m;couta=a7b=bendl;

14、(int a=5;b=n;couta=a7b=bendl;couta=a7b=bendl;)答:a=5,b=ma=3,b=na=3,b=n5.#include void main()(cout6%4*5/3+3endl;cout(l 0&3l8)endl;cout(52)+(52)endl;cout-4endl;)答:610216.#include void main()(int a=5;coutlong(&a)7sizeof(a)7sizeof(int)endl;double b=1.5;coutsizeof(l.5f)7sizeof(b)7sizeof(l.5L)endl;)答:地址值,4

15、,44,8,87.#include void main()(int a=3,b=5;cout(ab+a=b-2)7(a!=b+a=b)endl;char c=k;cout(c=,k,),(c!=,h,+2)endl;float f=2.3f;cout(-f=f)endl;答:0,11,018.#include void main()(int i,j,k;i=j=k=5;!i&+j&-k;couti,j 7kendl;illj-ll+k;couti,j 7kendl;i-5llj-5&+k;couti,j 7kendl;)答:5,5,55,5,55,5,59.#include void main

16、()(inti(5),j(8);cout(i=i*=j)endl;i=5,j=8;i=5*j/(j-5);couti7j endl;i=5,j=8;cout(j+=i*=j-5)endl;)答:4013,72310.#include int a=8;void main()int b=6;double d=1.5;d+=a+b;coutdendl;cout(a=l,b=2,d=2.5,a+b+d)endl;cout(a0?a:b0?a+:b+)endl;211.#include void main()(intm3=9,8,7,6,5,4,3,2,l,s=0;for(int i=0;i3;i+)s

17、+=mii;coutsendl;)答:1512.#include void main()(char s=bhy543kpm345n;for(int i=0;si!=,0,;i+)(if(si=,a,&si=,z,)continue;coutsi;)coutendl;)答:54334513.#include void main()(intb=5,-3,4,l,-8,9,0,10);int i=0,j;for(j=i;ibj)j二i;coutj 7bj endl;)答:7,1014.#include void main()(int a 口 3=1,2,34,5,6,7,8,9;int sl(0),

18、s2(0);for(int i=0;i3;i+)for(intj=0;j3;j+)(if(i!=j)sl+=aij;if(i+j=l)s2+=aij;)coutnsl=sl7ns2=s2endl;答:)sl=30,s2=615.#include void main()(char s=n#%#n;for(int i=0;i3;i+)(for(intj=0;ji;j+)cout*;for(int k=0;k0;i-)(for(int j=O;ji-l;j+)cout!for(int k=0;k3;k+)coutsk;coutendl;答:#%#%#%#%#%#2.5编程题1.已知:inta=3,b

19、=5;编程计算下列两个代数式的值,并比较它们是否相等。(a+b)2和a2+2ab+b2答:编程如下:#include void main()(int a=3,b=5;int dl=(a+b)*(a+b);int d2=a*a+2*a*b+b*b;coutHdl=ndlendlnd2=nd2endl;从结果中可以看出dl和d2值是相等的。2.已知:intx=5;编程求下列代数式的值。f(x)=3x3+2x2+5x+2答:编程如下:#include void main()(int x=5;int f=3*x*x*x+2*x*x+5*x+2;coutfendl;)3.从键盘上输入两个double型数

20、,编程输出其中最小者。答:编程如下:#include void main()(double a,b;coutvv”请输入两个double型数:”;cinab;coutv”输入的两个数中较小的是,;if(a=b)coutaendl;elsecoutbendl;)4.华氏温度转换成摄氏温度的计算公式如下:C=(F-32)*5/9其中,C表示摄氏温度,F表示华氏温度。从键盘上输入一摄氏温度,编程输出对应的华氏 温度O答:编程如下:#include void main()(double c,f;coutvv”请输入一个摄氏温度值:”;cinc;f=9.0/5.0*c+32.0;coutvv”摄氏温度为

21、“c 华氏温度为 vvfv vendl;)5.从键盘上输入5个浮点数,输出它们的和以及平均值。答:编程如下:#include void main()(double a,b,c,d,e;coutvv”请输入5个double型数:”;cinabcde;double f=a+b+c+d+e;cout”输入的5个数的和是”vvfvv”平均值是“vvf/5.0vvendl;)6.将字符串”12345”,逆向输出为“54321”。答:编程如下:#include void main()(char a口=12345”;couta4a3a2ala0endl;)2.6简单回答下述问题1.C+语言中注释符的格式如何

22、?注释信息的功能是什么?答:注释符格式有2种:格式一:格式二:注释信息注释信息是用来对程序进行提示和说明的。2.使用const定义符号常量比使用#define定义符号常量有何优点?答:使用const定义符号常量时要指出数据类型,而用#define定义符号常量时不需提出类型,因此前者比后者对类型要求更严格,这样会更安全。3.内部静态存储类变量有何特点?答:内部静态存储类变贯的特点是作用域较小,但寿命很长,这种变量作用域与寿命不一致,因此会出现不可见但又存在的情况。4.在使用插入符()输出若干个表达式值时,有的表达式中使用的运算符的优先级低 于插入符优先级时应该如何处理?答:这时需将表达式用括号括

23、起来,己改变其优先级。5.由多种不同运算符组成的表达式,其类型如何确定?例如,int a,b,c;a=bc?b:c;这是一个条件表达式还是赋值表达式?答:表达式类型由优先级低的运算符组成的表达式来确定。这是一个赋值表达式,因为赋值运算符优先级低于三目运算符。6.数组元素个数是由什么决定的?答:数组元素个数是由维数及其大小来决定的。一维数组元素个数是该维的大小,二维数组 的元素个数是两维大小之积等。7.数组元素下标有何规定?答:C+语言中,数组元素下标从0开始。8.初始值表中数据项的类型和个数有何规定?答:初始值表中数据项的类型应与该变是类型相同,个数应小于或等于被初始化的数组元素 的个数。9.

24、字符数组和字符串有什么关系?答:字符数组中可存放字符串,而字符数组不都是存放字符串的。如果字符数组中有字符串 结束符,则说明该字符数存放的是字符串。10.一个数组中的元素类型是否一定相同?何时定义的数组元素具有默认值?答:数组中元素类型必须相同。存储类为外部和静态的数组其元素具有默认值。第3章语句和预处理练习题33.1判断题V 1.表达式和表达式语句是不同的。X 2.空语句是一种没有用处的语句。X 3.复合语句就是分程序。X 4.条件语句中if子句和else子句都是必须有并且仅有一个。V 5.条件语句中else if子句可以没有,也可以有多个。V 6.开关语句可实现多路分支。X 7.开关语句的

25、语句序列中必须有一个break语句,否则该开关语句便无法退出。X 8.任何循环语句都是至少执行一次循环体。X 9.退出for循环语句必须是for后面括号内的中间一个表达式的值为0。V 10.do-while循环语句至少要执行一次循环体。X 11.循环语句的循环体中可以出现if语句,if语句的if体内不能出现循环语句。x 12.goto语句中所使用的语句标号是一种标识符,它的作用域是文件级的。V 13.break语句和continue语句都可以出现在循环体中,但是它们的作用是不同的。X 14.文件包含命令所能包含的文件类型是不受限制的。3.2单选题1.下列关于语句的描述中,错误的是(A)。A.C

26、+程序中的函数是由若干条语句组成的B.每条语句都要实现某种操作C.条件语句是用来实现分支操作的D.循环语句是用来在一定条件下重复执行某段程序的2.下列关于条件语句的描述中,错误的是(C 。A.if语句中最多只能有一个else子句B.if语句的if体内可以出现开关语句C.if语句中else if子句和else子句的顺序是没有限制的D.if语句中else子句是与它最近的if子句配对的3.下列关于开关语句的描述中,错误的是(B)。A.开关语句中,case子句的个数是不受限制的B.开关语句中,case子句的语句序列中一定要有break语句C.开关语句中,default子句可以省略D.开关语句中,右花括

27、号具有退出开关语句的功能4.下列关于循环语句的描述中,错误的是(A)。A.while循环语句中条件给定的表达式不能为非0的常量,否则便是死循环B.for循环语句的循环体内可以出现while循环语句、do-while循环语句和for循环语句C.循环语句的循环体可以是空语句D.循环语句的循环体内可以出现break语句,也可以出现continue语句5.已知:inti(3);下列do-while循环语句的循环次数是(D)。docouti-endl;while(i!=0);A.0 B.3C.1 D.无限6.下列for循环语句的循环次数是(B)。for(int i(0),j(5);i=3;i+,j-);

28、A.3 B.无限C.5 D.07.下列while循环语句的循环次数是(A)。while(int i(0)i;A.0 B.1C.2 D.无限8.下列程序段执行后,j值是(B)。for(int i(0),j(0);i10;i+)if(i)j+;A.0 B.9C.10 D.无限9.已知:typedefcharCH;下列描述中,正确的是(A)。A.使用CH定义的变量是char型变量B.使用CH定义的是一个字符常量C.使用CH定义的变量其类型不确定D.使用CH定义的是一个字符串10.下列关于预处理命令的描述中,错误的是(D)。A.预处理命令最左边的标识符是#B.预处理命令是在编译前处理的C.宏定义命令可

29、以定义符号常量3.3填空题1.表达式语句是一个表达式后边加上 分号 组成的。空语句是 只有一个分号的语句。2.复合语句是由 两条 条或 两条 条以上的语句加上 花括号()组成的。3.分程序是一种带有 说明 语句的复合语句。4.循环语句的共同特点是都应具有循环体和退出循环的条件。5.下列程序是求100之内的能被7整除的自然数之和。#inelude void main()(int sum;_sum=0_;for(int i(l);_i=100_;i+)if(_i%7=0_)sum+=i;coutsumendl;)3.4上机调试下列程序,并分析其输出结果1.#include void main()(

30、int a(8),b(5);if(b;else if(b)if(a)a+;elsea-;elseb+;couta7bendl;)答:9,52.#include void main()(int a(10);while(a)(if(a=5)break;if(a%2=0&a%3=0)coutaendl;)答:987continue;3.#include void main()intb(10);do+b;cout+bendl;if(b=15)break;while(b15);coutok!Hendl;)答:121416ok!4.#include void main()(int w(5);do swit

31、ch(w%2)(case 1:w;break;case 0:w+;break;w;coutwendl;while(w0);)答:31-15.#include void main()(inta(4),b(5),i(0),j(0);switch(a)(case 4:switch(b)(case 4:i+;break;case 5:j+;break;default:i+;j+;case 5:i+;j+;break;default:i+;j+;)couti7j endl;)答:1,26.#include void main()(intb(10);for(int i=9;i=0;i-)(switch(i

32、)(case 1:case 4:case 7:b+;break;case 2:case 5:case 8:break;case 3:case 6:case 9:b+=2;coutbendl;)答:197.#include void main()(int a(6);for(int i(l);i=a;i+)(for(int j=l;j=a-i;j+)coutvvfor(j=l;j=2*i-l;j+)coutA;coutendl;)答:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8.#include#define MAX(x,y)(x)(y)?(x):(y)void ma

33、in()(typedef int IN;IN a,b(4),c;c=MAX(a,b)*2;coutcendl;)答:83.5编程题1.求100之内的自然数中奇数之和。答:编程如下:#include void main()int s=0;for(int i=l;i100;i+=2)s+二i;coutsendl;)2.求两个整数的最大公约数和最小公倍数。答:编程如下:假定两个整数分别为15和25,求它们的最大公约数和最小公倍数。#include void main()(int m,n,t;m=15;n=25;if(mn)(t=m;m=n;n=t;)int mO=m,nO=n;while(n!=0)

34、t=m%n;m=n;n=t;)cout vv”最大公约数为vvmv vendl;coutvv最小公倍数为vmO*nO/mv vendl;)3.求下列分数序列前15项之和。2/1,3/2,5/3,8/5,13/8,答:编程如下:#include void main()(int a;double i=2,j=l,sum=0,t;for(a=l;a15;a+)(sum+=i/j;仁i;i+=jj=t;coutHSUM=sumendl;)4.按下列公式,求e的近似值。e=l+l/l!+1/2!+1/3!+l/n!答:编程如下:#include#include void main()(double x(

35、l),s(0);for(int i=1;fabs(x)1 e-8;i+)(x*=(-L0)*(2*i-3)/(2*i-l);s+=x;)s*=4;cout npi=n sendl;5.求下列式子之和,假定口下0。S=l+(1+2)+(1+2+3)+,+(1+2+3+n)答:编程如下:#include void main()(int s(O),sl(O);for(int i=l;i=10;i+)(sl+=i;s+=sl;)coutsendl;3.6简单回答下列问题1.分程序是复合语句吗?复合语句与分程序的区别是什么?答:分程序是复合语句。复合语句与分程序的区别在于含有说明语句的复合语句称为分程序

36、。2.if语句中,else子句的功能是什么?答:该子句的功能是当if子句和所有else if子句的条件都为0时,则执行else子句。3.在开关语句中,是否每个case子句后面的语句序列中都应该有break语句?答:通常case子句后面的语句序列中都有break语句,根据需要也可以没有break语句。4.循环语句的循环体中出现的continue语句的作用是什么?答:结束本次循环,转到循环头判断是否继续循环。5.文件包含命令的功能吗?该命令一定要放在程序首部吗?答:该预处理命令是将指定的包含文件内容放在该命令出现的地方。通常放在程序开头,便 于后边语句的使用。第4章指针和引用练习题44.1判断题X

37、 1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个 地址值是相等的。V 2.指针的类型是它所指向的变量或对象的类型。X 3.定义指针时不可以赋初值。V 4.指针可以赋值,给指针赋值时一定要类型相同,级别一致。X 5.指针可以加上或减去一个int型数,也可以加上一个指针。V 6.两个指针在任何情况下相减都是有意义的。V 7.数组元素可以用下标表示,也可以用指针表示。X 8.指向数组元素的指针只可指向数组的首元素。V 9.指向一维数组的指针是一个二级指针。X 10.指针数组的元素可以是不同类型的指针。V 11.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值

38、。X 12.引用是一种变量,它也有值和地址值。V 13.引用是某个变量的别名,引用是被绑定在被引用的变量上。V 14.创建引用时要用一个同类型的变量进行初始化。V 15.指针是变量,它可以有引用,而引用不能有引用。4.2单选题1.下列关于定义一个指向double型变量的指针,正确的是(B)。A.int a(5);double*pd=a;B.double d(2.5),*pd二&d;C.double d(2.5),*pd=d;D.double a(2.5),pd=d;2.下列关于创建一个int型变量的引用,正确的是(A)。A.int a(3),&ra=a;B.int a(3),&ra=&a;C.

39、double d(3.1);int&rd=d;D.int a(3),ra=a;3.下列关于指针概念的描述中,错误的是(B)。A.指针中存放的是某变量或对象的地址值B.指针的类型是它所存放的数值的类型C.指针是变量,它也具有一个内存地址值D.指针的值(非常量指针)是可以改变的4.下列关于引用概念的描述中,错误的是(A)。A.引用是变量,它具有值和地址值B.引用不可以作数组元素C.引用是变量的别名D.创建引用时必须进行初始化5.已知:inta5,*p=a;贝!J与+*p相同的是(D)。A.*+pB.a0C.*p+D.+a06.已知:inta=1,2,3,4,5,*p=a;在下列数组元素地址的表示中

40、,正确的是(C)。A.&(a+l)B.&(p+l)C.&p2D.*p+7.已知:inta34,*p 4;下列赋值表达式中,正确的是(A)0A.p=a+2B.p=alC.p=*a8.已知:intb35=0;下列数组元素值的表示中,错误的是(D)0D.p=*a+2A.*(b+l)B.e(b+i)2C.*(*(b+l)+l)D.*(b+2)9.已知:int a=l,b=2,*p2;下列表达式中正确的是(C)oA.p=&aB.p=&bC.pO=&a,pl=&bD.p=&a,&b;10.已知:inta 5,&ra=a;下列描述中,错误的是(D)。A.ra是变量a的引用,即为变量的别名B.ra的值为5C.

41、ra的地址值为&a D.改变ra的值为10,变量a值仍为54.3填空题1.单目运算符&作用在变量名左边,表示该变量的 地址值,单目运算符*作用在指针名 的左边,表示取该变量的 值。2.指向一维数组元素的指针是 一 级指针,指向二维数组元素的指针是 一 级指针,指向一维数组的指针是 二 级指针,指向一级指针的指针是 二 级指针,一维一级指针数组名是 二 级指针的地址值,二维数组的数组名是 二 级指针的地址值。3.在一个二维数组b3中,b与*b 是等价的,&bl与b+1是等价的。4.指针的运算有4种,它们是 赋值 运算、一个指针加减整型数的运算、两个指针相减 和比较运算。5.引用不是变量,它是某个

42、变量或对象的 别名。引用的值是 被引用的变量的值,引用的地址值是 被引用的变量的地址值。4.4分析下列程序的输出结果1.#include void main()(int a口=5,4,321;int*p=&a2;int m(5),n;for(int i(2);i=0;i-)(n=(*(p+i)v*a)?*(p+i):*a;coutnendl;)答:1232.#include void main()(char*pl,*p2;pl=nabcqrvn;p2=abcpqo;while(*p 1&*p2&*p2+=*p 1+)int n=*(pl-l)-*(p2-l);coutnendl;)答:13.#

43、include int a=10,9,6,5,4,2,1);void main()(intn(7),i(7),x(7);while(x*(a+i)*(a+i+l)=*(a+i);*(a+i+l)=x;for(i=0;in;i+)cout*(a+i)7;coutaiendl;)答:10,9,7,6,5,4,2,14.#include int a3=1,2,34,5,6,7,8,9);int*p=a0,al,a2;int*pp=p;void main()(int(*s)3=a;for(int i(l);i3;i+)for(intj(0);j2;j+)cout*(ai+j)7*(*(p+i)+j)7

44、(*(pp+i)j7*(*s+3*i+j)endl;)答:4,4,4,47,7,7,78,8,8,85.#include int a=1,2,345,6,7,8,9;void main()(int*pa二a;cout*pa7;cout*(pa+)7;cout*+pa7;cout*(pa-)7;pa+=4;cout*pa7*(pa+2)endl;答:1,1,3,3,6,86.#include void main()(charstr4=345,n789,*m2;int s(0);for(int i=0;i2;i+)mi=stri;for(i=0;i2;i+)for(intj(0);j4;j+=2)

45、s+=m5叶O;coutsendl;)答:247.#include void main()(double dl=3.2,d2=5.2;double&rd 1=d 1,&rd2=d2;coutrd 1+rd27d 1+rd2endl;rdl=9.3;coutrd 1+rd27d 1+rd2endl;d2=0.8;cout2*rd2endl;8.#include void main()(int*p;int*&rp=p;int a=90;p=&a;couta=a7n*rp=*rpendl;int b=50;rp=&b;coutb=bVn*rp=*rpendl;答:a=90,*rp=90b=50,*r

46、p=504.5 编程题(使用指针)1.已知4个字符串,编程输出它们中最小的一个。答:编程如下:#include#include void swap(char pl,char p2);void main()(charsl10=nwhileH,s210=elseH,s310=default,s410=continue;if(strcmp(sl,s2)swap(sl,s2);if(strcmp(s3,s4)swap(s3,s4);if(strcmp(sl,s3)swap(sl,s3);coutslendl;void swap(char pl,char p2)char p10;strcpy(p,pl)

47、;strcpy(pl,p2);strcpy(p2,p);)2.将一个长度为n的字符串,编程实现其逆序输出。答:编程如下:#include#include void inverse(char);void main()(char s50;cout输入一个字符串:”;cins;inverse(s);coutvv”反序后的字符串是sendl;)void inverse(char p)int n=strlen(p);int limit=n/2;for(int i=O;ilimit;i+)(char t=pi;pi=pn-i-l;pn-i-l=t;)3.已知一个二维int型数组,编程求出它的最小的元素值。

48、答:编程如下:#include void main()(intn32=3,8,-5,9,2,4;int lim=n00;for(int i=0;i3;i+)for(int j=0;j2;j+)if(nijlim)lim=nij;coutcv”最小元素值为 Hlimendl;4.已知字符型指针数组中存放若干个字符串,编程从键盘上修改其中某个字符串。答:编程如下:#include#include char*str5=,abcVdef,V,ghin,njkln,npqo;char modify(int,char);void main()(int n;char s10;coutvv”修改第几个字符串:

49、”;cinn;coutvv”该字符串修改为:”;cins;coutv”修改后的字符串是 Hmodify(n,s)endl;coutvv”修改后字符指针数组中的字符串如下:n”;for(int i=0;i5;i+)coutstri endl;char*modify(int n,char s)return*(str+n-l)=s;5.有n个小孩排成一圈。从第1个小孩开始作1至3报数,凡报数为3的小孩从圈中出 来,求最后出圈的小孩的顺序号是多少?答:编程如下:#include void main()(int n,num100;coutvv”输入排号人数:”;cinn;int*p=num;for(in

50、t i=0;in;i+)*(p+i)=i+l;i=0;int k=0,a=0;while(an-l)(if(*(p+i)!=O)k+;if(k=3)*(p+i)=O;k=0;a+;i+;if(i=n)i=0;)while(*p=0)P+;coutvv”最后留下的是第n*p号vvendl;)4.6 简单回答下列问题1.指针与一般变量有何不同?答:指针是变量,它不同于一般量。其一是指针存放的是地址值,其二指针的类型是它所指 向的变量类型。2.指针可以作哪些运算?答:指针的运算有4种:赋值运算加减一个整型数运算 在一定条件下,两个指针可以比较运算在一定条件下,两个指针可以相减运算3.指针可以作数组元

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服