c第1~3章答案解析

合集下载

Visual C++面向对象程序设计教程与实验(第二版)清华大学出版社第3章习题参考答案

Visual C++面向对象程序设计教程与实验(第二版)清华大学出版社第3章习题参考答案

1.为什么要引入构造函数和析构函数?对象的初始化是指对象数据成员的初始化,在使用对象前,一定要初始化。

由于数据成员一般为私有的(private),所以不能直接赋值。

对对象初始化有以下两种方法:类中提供一个普通成员函数来初始化,但是会造成使用上的不便(使用对象前必须显式调用该函数)和不安全(未调用初始化函数就使用对象)。

当定义对象时,编译程序自动调用构造函数。

析构函数的功能是当对象被撤消时,释放该对象占用的内存空间。

析构函数的作用与构造函数正好相反,一般情况下,析构函数执行构造函数的逆操作。

在对象消亡时,系统将自动调用析构函数,执行一些在对象撤消前必须执行的清理任务。

2. 类的公有、私有和保护成员之间的区别是什么?①私有成员private: 私有成员是在类中被隐藏的部分,它往往是用来描述该类对象属性的一些数据成员,私有成员只能由本类的成员函数或某些特殊说明的函数(如第4章讲到的友员函数)访问,而类的外部根本就无法访问,实现了访问权限的有效控制,使数据得到有效的保护,有利于数据的隐藏,使内部数据不能被任意的访问和修改,也不会对该类以外的其余部分造成影响,使模块之间的相互作用被降低到最小。

private成员若处于类声明中的第一部分,可省略关键字private。

②公有成员public:公有成员对外是完全开放的,公有成员一般是成员函数,它提供了外部程序与类的接口功能,用户通过公有成员访问该类对象中的数据。

③保护成员protected: 只能由该类的成员函数,友元,公有派生类成员函数访问的成员。

保护成员与私有成员在一般情况下含义相同,它们的区别体现在类的继承中对产生的新类的影响不同,具体内容将在第5章中介绍。

缺省访问控制(未指定private、protected、public访问权限)时,系统认为是私有private 成员。

3. 什么是拷贝构造函数,它何时被调用?拷贝构造函数的功能是用一个已有的对象来初始化一个被创建的同类对象,是一种特殊的构造函数,具有一般构造函数的所有特性,当创建一个新对象时系统自动调用它;其形参是本类对象的引用,它的特殊功能是将参数代表的对象逐域拷贝到新创建的对象中。

【水力学】题集1~3章答案解析

【水力学】题集1~3章答案解析

第一章绪论第一题、选择题1.理想液体是( B )(A)没有切应力又不变形的液体;(B)没有切应力但可变形的一种假想液体;(C)切应力与剪切变形率成直线关系的液体;(D)有切应力而不变形的液体。

2.理想液体与实际液体最主要的区别是(D )A.不可压缩;B.不能膨胀;B.没有表面张力;D.没有粘滞性。

3.牛顿内摩擦定律表明,决定流体内部切应力的因素是(C )A动力粘度和速度B动力粘度和压强C动力粘度和速度梯度D动力粘度和作用面积4.下列物理量中,单位有可能为m2/s的系数为(A )A. 运动粘滞系数B. 动力粘滞系数C. 体积弹性系数D. 体积压缩系数6.影响水的运动粘度的主要因素为( A )A.水的温度;B.水的容重;B.当地气压; D.水的流速。

7.在水力学中,单位质量力是指(C )A、单位面积液体受到的质量力B、单位面体积液体受到的质量力C、单位质量液体受到的质量力D、单位重量液体受到的质量力8.某流体的运动粘度v=3×10-6m2/s,密度ρ=800kg/m3,其动力粘度μ为( B )A.3.75×10-9Pa·sB.2.4×10-3Pa·sC.2.4×105Pa·sD.2.4×109Pa·s第二题、判断题1.重度与容重是同一概念。

(√)2.液体的密度ρ和重度γ不随温度变化。

(×)3.牛顿内摩擦定律适用于所有的液体。

(×)4.黏滞力随相对运动的产生而产生,消失而消失。

(√)5.水的粘性系数随温度升高而减小。

(√)7.一般情况下认为液体不可压缩。

(√)8.液体的内摩擦力与液体的速度成正比。

(×)9.水流在边壁处的流速为零,因此该处的流速梯度为零。

(×)10.静止液体有粘滞性,所以有水头损失。

(×)12.表面张力不在液体的内部存在,只存在于液体表面。

(√)13.摩擦力、大气压力、表面张力属于质量力。

江苏省安全员题库C2 -第一章

江苏省安全员题库C2 -第一章

第一章一、判断题第1题、道德行为具有受法律法规影响的特征,在职业生涯中,从业人员随时都受到相关职业领域的职业道德等舆论的影响。

○ A、正确◎ B、错误正确答案:错误题目解析:教材P2。

道德行为具有受舆论影响的特征,在职业生涯中,从业人员随时都受到相关职业领域的职业道德等舆论的影响。

第2题、职业道德的主要内容是对从业人员权利的要求。

○ A、正确◎B、错误正确答案:错误题目解析:教材P1。

职业道德的主要内容是对从业人员义务的要求。

第3题、职业道德主要依靠文化、内心信念和习惯,并通过从业人员的自律来实现。

◎A正确 B错误正确答案:正确解析:职业道德主要依靠文化、内心信念和习惯,并通过从业人员的自律来实现。

第4题、加强公民道德建设对践行社会主义核心价值观发挥着深刻的作用A、正确◎B、错误正确答案:错误加强公民道德建设对践行社会主义核心价值观发挥着基础性作用。

第5题、职业道德要求把个人理想同各行各业、各个单位的发展目标结合起来,同个人的岗位职责结合起来,以增强员工的置业观念、职业事业心和职业责任感。

◎A、正确 B、错误正确答案:错误题目解析:教材P3.职业道德要求把个人理想同各行各业、各个单位的发展目标结合起来,同个人的岗位职责结合起来,以增强员工的职业观念、职业事业心和职业责任感。

第6题[判断题] 在社会主义市场经济条件下,只有具备职业道德精神的从业人员,才能在社会中站稳脚跟,成为社会的栋梁之材,在为社会创造效益的同时,也保障了自身的健康发展。

A、正确B、错误正确答案:正确题目解析: 教材P3。

在社会主义市场经济条件下,只有具备职业道德精神的从业人员,才能在社会中站稳脚跟,成为社会的栋梁之材,在为社会创造效益的同时,也保障了自身的健康发展。

第7题[判断题] 爱岗敬业既是一种崇高的人格力量,也是从业人员做人的准则、做事的原则。

A、正确B、错误正确答案:错误题目解析: 教材P4。

诚实守信既是一种崇高的人格力量,也是从业人员做人的准则、做事的原则。

数据结构-c语言描述(第二版)答案耿国华编著

数据结构-c语言描述(第二版)答案耿国华编著

第1章绪论2.(1)×(2)×(3)√3.(1)A(2)C(3)C5.计算下列程序中x=x+1的语句频度for(i=1;i<=n;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)x=x+1;【解答】x=x+1的语句频度为:T(n)=1+(1+2)+(1+2+3)+……+(1+2+……+n)=n(n+1)(n+2)/66.编写算法,求一元多项式p n(x)=a0+a1x+a2x2+…….+a n x n的值p n(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。

注意:本题中的输入为a i(i=0,1,…n)、x和n,输出为P n(x0)。

算法的输入和输出采用下列方法(1)通过参数表中的参数显式传递(2)通过全局变量隐式传递。

讨论两种方法的优缺点,并在算法中以你认为较好的一种实现输入输出。

【解答】(1)通过参数表中的参数显式传递优点:当没有调用函数时,不占用内存,调用结束后形参被释放,实参维持,函数通用性强,移置性强。

缺点:形参须与实参对应,且返回值数量有限。

(2)通过全局变量隐式传递优点:减少实参与形参的个数,从而减少内存空间以及传递数据时的时间消耗缺点:函数通用性降低,移植性差算法如下:通过全局变量隐式传递参数PolyValue(){int i,n;float x,a[],p;printf(“\nn=”);scanf(“%f”,&n);printf(“\nx=”);scanf(“%f”,&x);for(i=0;i<n;i++)scanf(“%f”,&a[i]);/*执行次数:n次*/p=a[0];for(i=1;i<=n;i++){p=p+a[i]*x;/*执行次数:n次*/x=x*x;}printf(“%f”,p);}算法的时间复杂度:T(n)=O(n)通过参数表中的参数显式传递float PolyValue(float a[],float x,int n){float p,s;int i;p=x;s=a[0];for(i=1;i<=n;i++){s=s+a[i]*p;/*执行次数:n次*/p=p*x;}return(p);}算法的时间复杂度:T(n)=O(n)第2章线性表习题1.填空:(1)在顺序表中插入或删除一个元素,需要平均移动一半元素,具体移动的元素个数与插入或删除的位置有关。

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案1.假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。

计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。

#include <stdio.h>#include <math.h>/*** @brief* 假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。

* 计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。

** @return int*/int main(){float r, p, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);system("pause");return 0;}2、存款利息的计算。

有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: P=1000* (1+r)^n;活期存款本息和: P= 1000 *(1+r/4) ^{4n};说明: 1000 *(1+r/4)是⼀个季度的本息和。

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个 main函数。

c) 在C语言中,输出操作是有库函数 printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为 main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。

数据结构(C语言版)第三四章习题答案解析

数据结构(C语言版)第三四章习题答案解析

第3章栈和队列习题1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。

A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。

A.i B.n-i C.n-i+1 D.不确定(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。

A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n (4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。

A.x=top->data;top=top->link; B.top=top->link;x=top->link;C.x=top;top=top->link; D.x=top->link;(5)设有一个递归算法如下int fact(int n) { //n大于等于0if(n<=0) return 1;else return n*fact(n-1); }则计算fact(n)需要调用该函数的次数为()。

A. n+1 B. n-1 C. n D. n+2 (6)栈在()中有所应用。

A.递归调用 B.函数调用 C.表达式求值 D.前三个选项都有(7)为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。

主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是()。

A.队列 B.栈 C.线性表 D.有序表(8)设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。

计算机数学基础(第三版)习题参考答案 第1-3章

计算机数学基础(第三版)习题参考答案 第1-3章

计算机数学基础(第三版)习题参考答案第1-3章习题1.11.(1)D (2)A (3)A (4)D (5)D (6)C (7)C (8)D (9)C 2.(1)]14,6[],3,2[-=-=f fR D ; (2)];1,0[],1,1[=-=f fR D(3));,0[),,(+∞=+∞-∞=f fR D (4));,0[),,(+∞=+∞-∞=f fR D(5)]1,1[),,(-=+∞-∞=f fR D3.(1)(2)不同;(3)(4)相同。

4.(1)];2,2[-=fD (2)),1()1,(+∞-∞= fD(3)RDf= (4)},,01|),{(R y R x y x y x Df∈∈>++= 5.(1)2010+-=h T (2)斜率10-=k (3)C ︒-5 6.(1)有界,]3,1[=fR ; (2)有界,]56,25.0[-=fR;(3)无界,),0(+∞=fR; (4)有界,)1,0(=fR。

7.(1)非奇非偶函数;(2)偶函数;(3)偶函数;(4)偶函数。

8.(1)周期函数,周期为π2;(2)不是周期函数;(3)周期函数,周期为π; 9.(1)1;(2)2。

10.(1));,(,15))(()(23+∞-∞=-+=++g f R x xx g f);,(,1))(()(23+∞-∞=+-=--g f R x x x g f );,(,263))(()(2345+∞-∞=+-+=fg R x x x x x fg),33()33,33()33,(,132))(/()/(223+∞---∞=-+= g f R x x x x g f(2)]1,1[,11))(()(-=-++=++g f R x x x g f]1,1[,11))(()(-=--+=--g f R x x x g f]1,1[,1))(()(2-=-=fg R x x fg)1,1[,11))(/()/(-=-+=g f R xxx g f11.(1)),(,62118))(()(2+∞-∞=++=g f R x xx g f),(,236))(()(2+∞-∞=+-=f g R x x x f g),(,88))(()(234+∞-∞=+--=f f R x x x x x f f),(,89))(()(+∞-∞=+=g g R x x g g(2)),0()0,(,21))(()(3+∞-∞=+= g f R xxx g f),0()0,(,21))(()(3+∞-∞=+=f g R x xx f g),0()0,(,))(()(+∞-∞== f f R x x f f),(,410126))(()(3579+∞-∞=++++=g g R x x x x x x g g12.(1)9,)(5-==x u uu F (2)xu u u F ==,sin )((3)1,ln )(2+==x u u u F (4)3,1)(+==x u u u F13.(1)xx x f2351)(1+-=-; (2)2)(11-=--x e x f; (3)xx x f -=-1log )(21;(4)⎩⎨⎧<≤--≤≤--=-.01,01,1)(1时当时当x x ;x x x f14.(1)由ue y =,x u arctan =复合而成; (2)由x v v u u y ln ,ln ,ln ===复合而成; (3)由x v v u u y sin ,,ln 3===复合而成。

C语言程序设计试题及答案解析[1]

C语言程序设计试题及答案解析[1]

C语言程序设计试题第1、2、3章概述、类型、表达式一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:()A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:()A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:()A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、在C语言中(VC环境),一定是长整型常数的是:()A、0LB、4962710C、0412765D、0xa34b7fe11、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、以下合法的赋值语句是:()A、x=y=100B、d--;C、x + yD、c = int(a+b);13、设变量t为int型,下列选项中不正确的赋值语句是:()A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、在以下一组运算符中,优先级最高的是:()A、<=B、==C、%D、&&15、下列能正确表示a≥10或a≤0的关系表达式是:()A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、下列只有当整数x为奇数时,其值为“真”的表达式是:()A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)17、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”19、表达式17%4 /8的值为:()A、0B、1C、2D、320、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:()A、无输出B、结果不确定C、-1D、121、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、组成C语句的一个必不可少的符号是:()A. 逗号B. 引号C. 冒号D. 分号23、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()A. intB. longC. floatD. double24、下述是C语言中有关变量定义的几个说法,正确的是:()A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、与x * = y + z等价的赋值表达式是:()A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、当代电子计算机能够自动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、以下叙述中最准确的是:()A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、关于计算机程序设计,以下描述最准确的是:()A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、目前编写计算机程序一般采用的是:()A.机器语言B.汇编语言C.高级语言D.英语30、设计一个计算机程序最基本的工作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是31、算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可行性D.确定性32、下述哪一个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套33、C语言是一种:()A.机器语言B.汇编语言C.高级语言D.以上都不是34、C语言源程序的扩展名为:()A..exe B..c C..obj D..cpp35、C程序编译后最终产生(即计算机执行)的文件的扩展名为( )A..exe B..c C..obj D..cpp36、下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数38、下列叙述正确的是:()A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、以下为C语句的是:()A.a=8 B.a++;C.if(a>8) D. #include <stdio.h> 以下不是C语句的是:()A.a=8; B.a++;C.if(a>8);D.for(i=1;i<5;i++) 42、以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。

C程序设计题目集答案之第3章

C程序设计题目集答案之第3章

判断题1-1在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

(1分)1-2在switch语句中,每一个的case常量表达式的值可以相同。

(1分)1-3case语句后如没有break,顺序向下执行。

(1分)1-4if(a=5) 是允许的。

(1分)1-5在switch语句中,可以根据需要使用或不使用break语句。

(1分)1-6(1分)1-7if-else语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就执行语句2。

(1分)1-8if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。

(1分)1-9为了检查以下else-if语句的三个分支是否正确,至少需要设计5组测试用例,即x的取值至少有五组(小于0的数、0、大于0且小于15的数、15和大于15的数)。

(1分)1-10(1分)1-11在switch语句中,必须使用default。

(1分)1-12为了检查以下嵌套的if语句的三个分支是否正确,至少需要设计3组测试用例,即(1分)1-13在if语句中,必须出现else。

(1分)1-14if(a>b) {t=a;a=b;b=t;}是3条c语句。

(1分)1-15switch语句中多个case标号可以共用一组语句。

(1分)单选题2-1为了避免嵌套的条件分支语句if~else二义性,C语言规定,C程序中的else 总是与( )组成配对关系。

(2分)A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if下列叙述中正确的是()。

(2分)A.break语句只能用于switch语句B.在switch语句中必须使用defaultC.break语句必须与switch语句中的case配对使用D.在switch语句中,不一定使用break语句下列程序段的输出结果是()。

(2分)A.0B.1C.2D.3下列程序段的输出结果是()。

C语言1-3章练习题-作业-答案

C语言1-3章练习题-作业-答案

一、选择题(可不抄题目)1.执行"int k=11;k=1/3*k++;"后,k的值是____A.0B.3C.4D.122.以下常量中正确的是___ ___A.'abc'B.'\x123'C.3.145E-1.2D."a"3.能将高级语言编写的源程序转换成目标程序的是______。

A. 编辑程序B. 编译程序C. 解释程序D. 链接程序4.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。

A. 6.500000B. 6C. 5.500000D. 6.0000005. 正确的C语言用户自定义标识符是______。

A. ok?B. floatC. a3bD. random﹪26.以下程序的输出结果是void main( ){int a=12,b=12;printf("%d %d\n",--a,++b);}A.10 10B.12 12C.11 10D.11 13二、填空题(可不抄题目)1.若有"int a=5;a+=a-=-a*a;",则a的值是___2.表达式a=3*5,a*4,a+5的值是___________3. C程序开始往往含有以“#”开头的命令,它们是命令。

在程序中以“/*”开始, 以“*/”结束的内容, 它们是程序中的部分, 用以帮助阅读程序。

程序代码的录入,生成程序*.c,语法分析查错,翻译生成程序*.obj,与其它目标程序或库链接装配,生成程序*.exe。

4. 设int a; float f; double i ;则表达式10+'a'+i*f值的数据类型是___________。

三、程序题:1、编写一个程序,能显示出以下两行文字(用顺序结构完成)。

2、从键盘上输入三个小数,求出平均值,并输出这三个数和平均值,要求平均值保留2位小数位数。

第1章C语言概述

第1章C语言概述

第1章 C语言概述1、以下叙述中错误的是()。

A) 使用三种基本结构构成的程序只能解决简单问题B) 结构化程序由顺序、分支、循环三种基本结构组成C) C语言是一种结构化程序设计语言D) 结构化程序设计提倡模块化的设计方法参考答案:A【解析】使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。

2、流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。

其中输入输出框的图形是A) 平行四边形B) 长方形C) 椭圆型D) 菱形参考答案:A【解析】算法可以用各种描述方法进行描述,目前最常用的有3种:伪代码、流程图和N-S结构图。

传统的流程图由下图所示的几种基本图形组成。

A选项正确。

3、以下叙述错误的是A) 在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法B) 同一程序各模块可由一组人员同时进行编写调试,可提高编写程序的效率C) 模块化的程序设计是采用自顶向下、逐步细化的原则D) 程序的每个模块都可通过三种基本结构实现参考答案:A【解析】结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码。

进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入输出关系,然后完成各个模块的编写调试后再集中编译,模块化的程序设计采用自顶向下、逐步细化的原则,A选项叙述错误,C选项叙述正确。

各个模块可以由不同人员同时进行编写调试,提高编写程序的效率,B选项叙述正确。

结构化程序主要由3种基本控制结构组成,顺序结构、选择结构、循环结构,这三种基本结构可以解决任何复杂的问题,D选项叙述正确。

故选择A选项。

4、以下选项中叙述正确的是A) 函数体必须由 { 开始B) C程序必须由main语句开始C) C程序中的注释可以嵌套D) C程序中的注释必须在一行完成参考答案:A【解析】函数体是函数首部下面的花括号内的部分,所以函数体必须由{开始,A选项正确。

第3章 数组(习题答案及解析)

第3章 数组(习题答案及解析)

习题3 参考答案一、选择题3.1 C 分析:本题考查程序和数组的基本概念。

3.2 A 分析:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。

因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。

C选项不正确。

C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此A选项是正确。

3.3 A 分析:如果第一维的长度没有指定,则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,则所得的商加1作为第一维的大小,所以选项A相当于:double a[1][3] = {6};其中a[0][0]=6,其他元素赋值0,选项A正确,答案为A。

3.4 D 分析:本题考察的知识点是:字符串常量。

在C语言中,字符串常量是以双引号括起来的字符序列。

因此B选项和C选项不正确。

字符序列中可包含一些转义字符,转义字符都是以"\"开头的。

A选项中包含了三个"\",前两个(\\)代表了一个"\"字符,后面一个和"""一起(\")被看作一个""",所以该字符串缺少一个结束的""",因此不正确。

D选项的两个"""之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。

护师(基础护理第1-3章答案)

护师(基础护理第1-3章答案)

1--3章答案及解析第一章、一、A1 1、【正确答案】 B【答案解析】 1860年,南丁格尔在英国的圣托马斯医院创办了世界上第一所护士学校。

从1860年到1890年,学校共培养学生1005名,为护理教育奠定了基础。

2、【正确答案】 E3、【正确答案】 E4、【正确答案】 A5、【正确答案】 C6、【正确答案】 C【答案解析】 1920年北京协和医学院开办高等护理教育,学制4~5年,五年制毕业学生授予护理学士学位。

7、【正确答案】 B8、【正确答案】 E【答案解析】 1977年,美国医学家恩格尔提出了“生物-心理-社会医学模式”。

这一新的医学模式强化了人是一个整体的思想,护理从“以疾病为中心”转向为“以病人为中心”的护理。

二、B 1、<1>、【正确答案】 A【答案解析】以疾病为中心的护理阶段(19世纪60年代~20世纪40年代):这一阶段出现于现代护理发展的初期,一切医疗行为都围绕着疾病进行,以消除病灶为基本目标。

协助医生诊断和治疗疾病成为这一时期护理工作工作的主要内容。

<2>、【正确答案】 B【答案解析】以病人为中心的护理阶段(20世纪40年代~20世纪70年代):1977年,美国医学家恩格尔提出了“生物-心理-社会医学模式”。

这一新的医学模式强化了人是一个整体的思想,护理从“以疾病为中心”转向为“以病人为中心”的护理。

<3>、【正确答案】 C【答案解析】以人的健康为中心的护理阶段(20世纪~70年代至今):1977年WHO提出“2000年人人享有卫生保健”的战略目标,对护理的发展起到了及其重要的作用,使“以人的健康为中心的护理”成为必然。

2、<1>、【正确答案】 B【答案解析】 1888年,美国护士E.Johnson(约翰逊)在福州一所医院里开办了我国第一所护士学校。

<2>、【正确答案】 C【答案解析】 1909年,中国护理界群众性的学术团体“中华护士会”在江西牯岭成立,1936年改为中华护士学会,1964年改为中华护理学会并沿用至今。

C语言程序设计(谭浩强)第四版-课后答案解析

C语言程序设计(谭浩强)第四版-课后答案解析

第一章程序设计和C语言【第15页】1-5#include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂【第36页】暂无答案第3章最简单的C程序设计——顺序程序设计【第82页】3-1#include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。

计算机二级c语言1-3章先择题(带答案)

计算机二级c语言1-3章先择题(带答案)

1.第一章第二章1.C语言的函数体由()括起来。

A)<> B){}C)[] D)()2.下面叙述错误的是()A)一个C源程序可由一个或多个函数组成B)构成C语言源程序的基本单位是语句C)C源程序中大、小写字母是有区别的D)若一条语句较长,可分写在下一行或多行上3.下面叙述正确的是()A)每行最多只能写两条语句B)main()函数必须位于源程序文件的开头C)所有语句都必须以分号;结束D)程序中必须含有自定义函数4.C源程序中main()函数的位置().A)必须位于程序的最前面B)必须在自定义函数前面C)必须在系统库函数后面D)可以在自定义函数后面5.结构化程序设计不包括()。

A)最优化B)自顶而下,逐步细化C)模块化设计D)结构化编码6.下面叙述中,()不是结构化程序设计中的三种基本结构之一。

A)数据结构B)选择结构C)循环结构D)顺序结构2.第三章数据类型、运算符和表达式1.(B )为非法的字符串常量A)“056”B)‘123' C)““D)“case”2.(B )为正确的用户标识符。

A)min-5 B)max_at C)3_row D)union3.以下( D )是正确的变量名。

A) a.bee B)—p11 C) int D) p_114.以下(D )是正确的变量名。

A)5f B)if C)f。

5 D)_f55.以下( D )是正确的常量。

A)E—5 B)1E5。

1 C)'a12' D)32766L6.以下(A )是不正确的字符串常量.A)’abc’B)”12'12"C)”0”D)" "7.以下(BC )是正确的字符常量。

A)”c"B)'\\’C)’W’D)"\32a"8.char型变量存放的是(A).A)ASCII代码值B)字符本身C)十进制代码值D)内码值9.( B)为合法的常量.A)5,236B) 1.23E+8 C)‘b_k’D)3。

C语言习题册1-3章题解

C语言习题册1-3章题解

程序设计技术基础(C语言)习题集题解分析第一、二、三章一、选择题(四个选项中只有一个是正确的----下同)1.与十进制数97不等值的字符常量是A) ’a’ B) ’\101’ C) ’\x61’ D) ’\141’题解分析:小写字母a的ASCII码是97;十六进制61转换为十进制为97;八进制141转换为十进制为97;八进制101转换为十进制为65,不等于97。

参考教材:p21 (3)字符常量;p22 转义字符表2-12,及其讲解。

2.在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在A) C001.C B) C001.OBJ C) C001.DAT D) C001.EXE题解分析:源程序C001.C经编译后生成目标文件C001.OBJ,再经过链接后生成可执行文件C001.EXE。

参考教材:p7 1.5.2 链接目标程序3.以下选项中正确的整型常量是A) 5.B)-10 C)1.000 D)4/5题解分析:整型常量及整数也,实型常量及实数也。

参考教材:p19(1)整型常量,p20(2)实型常量4.以下选项中正确的实型常量是A) 0 B)3. 1415 C)0.03x102D).32题解分析:0——属于整型常量;3. 1415——小数点和1415间不能分开(计算机不认);0.03x102——在C语言中要用0.03e2或0.03E2来表示。

参考教材:p20(2)实型常量5.以下选项中不正确的实型常量是A)2.670E-1 B)0.05e+1.5 C)-77.77 D)456e-2题解分析: C语言在科学计数法表示实型常量时,指数部分必须是整数,不可用小数。

答案B)中的0.05e+1.5表示的是0.05×101.5,指数1.5不符合要求。

6.以下选项中不合法的用户标识符是A)wb-1 B)file C)Main D)PRINTF题解分析:在C语言中标识符只能由字母、数字和下划线组成,A)中的“-”错了。

C语言PTA平台知识题与答案解析

C语言PTA平台知识题与答案解析
结果 在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号 把分母括起来输出;如果分母为零,则输出的商应为 Error
#include<stdio.h> int main() {
int a,b; scanf("%d %d",&a,&b); if(b>0)printf("%d/%d=%.2f",a,b,a*1.0/b); else if(b<0)printf("%d/(%d)=%.2f",a,b,a*1.0/b); else printf("%d/%d=Error",a); return 0; } ③高速公路超速处罚
return 0; }
第二章 作业 2
①求整数均值本题要求编写程序,计算 4 个整数的和与平均值。题目保证输入与输出均在
整型范围内。 在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精 确到小数点后一位
#include<stdio.h> int main() {
#include<stdio.h> int main() {
int a,b; int x; scanf("%d %d",&a,&b); x = round(1.0*(a-b)/b*100); if(x<10){printf("OK\n");} else if (x<50){printf("Exceed %d%%. Ticket 200\n",x);} else printf("Exceed %d%%. License Revoked\n",x); return 0;

高数习题册第一章~第三章答案

高数习题册第一章~第三章答案

第一章 极限与连续一、填空题1.x 2-x+In (x-1), x ∈(-2,2) 3.[-1,2]4.x ∈(-1,1)且x ≠05. -12 解析:f (2π+0)=02lim x π⎛⎫→+ ⎪⎝⎭cos 2xx π-=02lim x π⎛⎫→+ ⎪⎝⎭sin()22()2x x ππ--=12-=a 6.x=-1(可去间断点) 7.1 8.0 9.-1 (解析:分子有理化) 10.1 11.3 12.1 13.-1,0 14.可去 15.无穷小 16.-1 17.2 二、选择题1.D 解析: '(0)f =0lim x →()(0)0f x f x --=0lim x →()f x x,0lim x →()g x =0lim x →()f x x ='(0)f ,∵()f x 为奇函数,∴()f x -=-()f x 即(0)(0)f f =- ∴(0)f =02.B 解析:0000limlim lim lim 0(1)1x x x x →+→+→+→==-=--=3.D4.C5.D6.C 解析: 20()lim 1x f x x →=, ∴2()~f x x 则200()lim lim 0x x x f x xx →→== 7.D 8.D 9.D 10.B 解析:如42()()()x a f x x a -=- 11.A 12..C13.B 解析:∵2220()lim 0x x e ax bx c x→-++= 即0lim x →2x e=1 1-c=0 c=114.C 15.A 16.D 17.B 18.B 三、计算题1.原式=0limx →1tan sin (1)1sin x x x x-++=0lim x →3tan sin 1sin (1sin )tan sin tan sin (1)1sin x x xx x x x x x x -++--[+]+=3tan sin 1lim1sin x x xxx e→-.+,而3t a n s i n 1l i m 1s i n x x x xx →-.+=3tan sin limx x xx →- =21(1)sin cos .x x x x-=0lim x →21(1)cos x x-=0lim x →2sin (cos )2x x x - =0lim x →2cos 2x-=12,∴原式=12e2.原式= (c o sc o s ...c o s s i n .2)2422l i m2s i n 2n n x n xx x xx →∞=sin sin sin lim lim (0)2sin sin 222x x n n nnx x x x x x x x x →∞→∞==≠ 3.原式=201x x →20212lim (12sin cos )22x x x x x x →=++0(1(sin cos )222x x →=++0113sin sin sin 222(.2cos )2222x x x xx x →→==+4.解:∵3214lim1x x ax x C x →---+=+且1lim(1)0x x →-+= ∴321lim(4)1x x ax x →---+=- 11440a a --++=-= ∴4a = 从而3214lim 1x x ax x x →---+=+32144lim 1x x x x x →---++221(1)4(1)lim1x x x x x →----=+1lim(4)(1)0x x x →---≠ ∴C ≠0 5.解:∵0sin 2(00)lim2x xf x-→-==且()f x 在0x =处连续,∴(0)2f a ==且(00)f +=01lim(sin )2x b x b x+→+==∴2,2a b == 6. 解:∵22122()()1x x f x x f x x ++=+ ①, ∴令1,t x =则1x t =且2212112()()11t t f f t t t t++=+ 即21(12)2()()1t t t f f t t t ++=+ 即212(12)2()4()1x x f x x f x x ++=+ ②, ②—①得22133()1x x f x x=+即11()1f xx =+ 也即1()111x f x x x==++ 7.解:∵lim()x x ax b →∞→∞+=22x =2220x ==, ∴210a -=即21a =, ∴原式=22(1)(21)2101x x b ab ab a --+-===-, ∴11,2a b =-=-. 四、证明题1.证明:∵()f x 在0x =处连续, ∴[]0lim ()(0)0x f x f ∆→∆-= 即0lim ()(0)x f x f ∆→∆=, 又 1212()()()f x x f x f x +=,12,(,)x x ∈-∞+∞,∴(00)(0)(0)f f f += 即2(0)(0)f f = 即(0)0f =或(0)1f =。

第1章 c语言概述(习题答案及解析)

第1章 c语言概述(习题答案及解析)

习题1 参考答案一、选择题1.1 C 分析:简单程序设计步骤为:确定数据结构、确定算法、编码、调试、整理文档,不包括安装编译程序,故答案为C选项。

1.2 D 分析:一个算法应该具有以下五个重要的特征:有穷性,确定性,输入,输出以及可行性,故答案选D选项。

1.3 A 分析:编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,A选项正确。

算法不一定要包含所有三种基本结构,也可以只包含一种或两种,B选项错误。

结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,C选项错误。

算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量,D选项错误。

1.4 A 分析:计算机只能识别机器语言,不能直接识别由高级语言编写的程序,答案为A选项。

1.5 A 分析:C语言程序必须要定义main()函数,B选项错误;只有同时包含三种基本结构时,程序才是结构化程序,C选项错误;程序中的语法错误在编译时能显现,排除D选项,答案选A。

1.6 A 分析:计算机只能识别机器码,机器码是由二进制构成的,因此只能识别二进制构成的代码程序,不可以直接识别由十六进制代码构成的程序,十六进制的代码必须转为二进制才能在计算机上直接执行。

因此选项A错误。

1.7 A 分析:书写风格良好的程序易读性好,方便团队合作,分模块来完成复杂的程序设计,B选项叙述正确。

但是书写风格与程序执行效率无关,程序执行效率与程序的数据结构有关,由算法的时间复杂度和空间复杂度决定,A选项叙述错误。

C语言程序书写规范中,良好的书写习惯中一般一行上写一条语句,这样方便阅读,但是一行写多条语句是符合C程序编写规则的,C选项叙述正确。

C程序允许将一条较长的语句分写在多行,D选项叙述正确。

叙述中错误的是A选项,故选择A选项。

1.8 A 分析:程序中,注释可以出现在程序的任何位置,B选项错误;注释中间不能嵌套另一个注释,C选项错误;注释内容不影响程序编译,D选项错误,答案为A选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++习题参考答案第1xx面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。

面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

消息是面向对象程序设计用来描述对象之间通信的机制。

一个消息就是一个对象要求另一个对象实施某种操作的一个请求。

二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。

(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。

(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。

(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

三、选择题(至少选一个,可以多选)(1)面向对象程序设计着重于(B)的设计。

A.对象B.类C.算法D.数据(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C)。

A.抽象B.继承C.封装D.多态(3)在面向对象程序设计中,类通过(D)与外界发生关系。

A.对象B.类C.消息D.接口(4)面向对象程序设计中,对象与对象之间的通信机制是(C)。

A.对象B.类C.消息D.接口(5)关于C++与C语言的关系的描述中,(D)是错误的。

A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。

C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。

(6)面向对象的程序设计将数据结构与(A)放在一起,作为一个相互依存、不可分割的整体来处理。

A.算法B.信息C.数据隐藏D.数据抽象(7)下面(A)不是面向对象系统所包含的要素。

A.重载B.对象C.类D.继承【结果分析】面向对象=对象+类+继承+消息+多态(8)下面说法正确的是(BC)。

A.将数据结构和算法置于同一个函数内,即为数据封装B.一个类通过继承可以获得另一个类的特性C.面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序D.同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性【结果分析】面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

将数据结构和算法置于同一个类内,即为数据封装。

同一消息为不同的对象接受时,产生的行为可能是不一样的,这称为多态性。

(9)下面说法正确的是(AD)。

A.对象是计算机内存中的一块区域,它可以存放代码和数据B.对象实际是功能相对独立的一段程序C.各个对象间的数据可以共享是对象的一大优点D.在面向对象的程序中,对象之间只能通过消息相互通信【结果分析】对象是计算机内存中的一块区域。

在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。

对象之间存在各种联系,但它们之间只能通过消息进行通信。

四、判断题(1)在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。

(√ )(2)C++语言只支持面向对象技术的抽象性、封装性、继承性等特性,而不支持多态性。

(× )【结果分析】C++语言不仅支持面向对象技术的抽象性、封装性、继承性等特性,而且支持多态性。

(3)面向对象程序设计中的消息应该包含“如何做”的信息。

(× )【结果分析】消息是面向对象程序设计用来描述对象之间通信的机制。

向对象“发送消息”只需告诉对象做什么,对象根据这个消息决定如何做。

(4)一个消息只能产生特定的响应效果。

(× )【结果分析】当一个对象发出消息时,由于接收对象的类型可能不同,所以,它们可能做出不同的反应。

这样,一个消息可以产生不同的响应效果,这种现象叫做多态。

(5)类的设计和类的继承机制实现了软件模块的可重用性。

(√ )(6)C++语言和Java语言均不是一个纯正的面向对象的程序设计的语言。

(× )【结果分析】Java语言是一个纯正的面向对象的程序设计语言。

(7)学习C++语言是学习面向对象的程序设计方法的唯一途径。

(× )【结果分析】程序设计方法是独立于具体程序设计语言的一种技术,学习C++语言是学习面向对象程序设计方法的重要途径之一。

(8)在C++语言中,类是支持数据封装的工具。

(√ )五、简答题(1)什么是结构化程序设计方法它有哪些优点和缺点【问题解答】结构化程序设计方法着眼于系统要实现的功能,从系统的输入输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。

首先是数据安全性问题。

由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。

其次是可维护性及可重用性差。

它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。

每一种相对于老问题的新方法都要带来额外的开销。

另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。

(2)什么是面向对象程序设计方法它有哪些优点【问题解答】面向对象的程序设计方法中,将程序设计为一组相互协作的对象而不是一组相互协作的函数。

在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。

可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。

对象之间存在各种联系,它们之间通过消息进行通信。

程序可表示为:程序=对象+消息在面向对象程序设计中应着重于类的设计。

类正是面向对象语言的基本程序模块,通过类的设计来完成实体的建模任务。

类通过一个简单的外部接口与外界发生关系。

一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。

程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。

不必预先确定消息产生的顺序,更符合客观世界的实际。

并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。

(3)结构化程序设计方法与面向对象程序设计方法在对待数据结构和算法关系上有什么不同【问题解答】结构化程序设计方法中,把数据结构和算法分离为相互独立的实体;而在面向对象程序设计中,数据结构和算法封装在一起,结合成一个独立的单位,即对象,并尽可能隐蔽对象的内部细节。

对象的私有属性只能由这个对象的行为来读取和修改,与外部的联系通过公有行为充当外部接口。

第2章从C到C++一、名词解释引用xx函数重载函数【问题解答】所谓引用就是给对象取一个别名,使用该别名可以存取该对象。

换句话说是使新对象和原对象共用一个地址。

内联函数是使用inline关键字声明的函数。

重载函数指在同一个作用域内名字相同而参数不同的函数。

重载函数通常用来对具有相似行为而数据类型或数据个数不同的操作提供—个通用的名称。

二、填空题(1)一般情况下,用C++语言编写的程序是由函数加上类组成的。

(2)C++有两种注释符号,一种是intp1,*p2,p3; B.int*p2,p1,*p3;C. int p1,*p2=&p1,*p3;D. int*p2,p1,*p3=&p1;【结果分析】指针定义的具体格式如下所示:<类型> *<指针名1>,*<指针名2>,…;(2)若有定义“double xx=,*pp=&xx;”,则*pp等价于(D)。

A. &xxB. *xxC.D. xx【结果分析】pp指向xx所在的内存单元,这样*pp和xx等价。

(3)下面对引用的描述中(C)是错误的。

A.引用是某个变量或对象的别名B.建立引用时,要对它初始化C.对引用初始化可以使用任意类型的变量D.引用与其代表的对象具有相同的地址【结果分析】所谓引用就是给对象取一个别名,使用该别名可以存取该对象,所以对引用初始化必须使用同类型的变量。

(4)函数没有返回值的时候,应该选择(A)的函数类型。

A. voidB. intC.不确定D. float(5)在函数的定义格式中,下面各组成部分中,(D)是可以省略的。

A.函数名B.函数体C.返回值类型D.函数参数【结果分析】函数的定义可以缺省形式参数,此时称为无参函数。

(6)对重载的函数来说,下面叙述不正确的是(D)。

A.参数的类型不同B.参数的顺序不同C.参数的个数不同D.参数的个数、类型、顺序都相同,但函数的返回值类型不同【结果分析】对重载的函数来说,编译系统将根据函数参数的类型和个数来判断使用哪一个函数,所以重载函数参数的个数、类型、顺序不能都相同。

(7)下列有关设置函数参数默认值的描述中,(D)是正确的。

A.对设置函数参数默认值的顺序没有任何规定B.函数具有一个参数时不能设置默认值C.默认参数要设置在函数的原型中,而不能设置在函数的定义语句中D.设置默认参数可使用表达式,但表达式中不可用局部变量【结果分析】在C++中,在函数原型中可以为一个或多个参数指定默认值。

对函数参数设置默认值要注意以下几点。

◆若没有声明函数原型,参数的默认值可在函数定义的头部进行设置,否则必须在函数原型中进行设置。

◆在一个指定了默认值的参数右边不能出现没有指定默认值的参数。

◆设置默认参数可使用表达式,但表达式中不可用局部变量。

(8)下面说法正确的是(C)。

A.所有的函数都可以说明为xx函数B.具有循环语句、switch语句的函数不能说明为内联函数C.使用内联函数,可以加快程序执行的速度,但会增加程序代码的大小D.使用内联函数,可以减小程序代码大小,但使程序执行的速度减慢【结果分析】内联函数主要是解决程序的运行效率问题。

在程序编译时,编译系统将程序中出现内联函数调用的地方用函数体进行替换,进而减少了程序运行的时间,但会增加程序代码的大小。

它是以空间换取时间,因此内联函数适用于功能不太复杂,但要求被频繁调用的函数。

(9)一个函数功能不太复杂,但要求被频繁调用,应选用(A)。

A.内联函数B.重载函数C.递归函数D.嵌套函数(10)C++对C语言做了很多改进,下列描述中使得C语言发生了质变,即从面向过程变成面向对象的是(D)。

A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进了类和对象的概念【结果分析】面向对象=对象+类+继承+消息+多态四、判断题(1)C++程序中,不得使用没有定义或说明的变量。

相关文档
最新文档