C习题解答
50道C++编程练习题及解答-c编程例题
50道C++编程练习题及解答-c编程例题C++作为一种广泛应用的编程语言,通过大量的练习可以帮助我们更好地掌握其编程技巧和逻辑思维。
以下是为您精心准备的 50 道 C++编程练习题及详细解答,希望能对您的学习有所帮助。
练习题 1:计算两个整数之和题目描述:编写一个 C++程序,输入两个整数,计算它们的和并输出。
```cppinclude <iostream>using namespace std;int main(){int num1, num2, sum;cout <<"请输入第一个整数:";cin >> num1;cout <<"请输入第二个整数:";cin >> num2;sum = num1 + num2;cout <<"这两个整数的和为:"<< sum << endl;return 0;}```练习题 2:判断一个数是否为偶数题目描述:编写一个 C++程序,输入一个整数,判断它是否为偶数。
```cppinclude <iostream>using namespace std;int main(){int num;cout <<"请输入一个整数:";cin >> num;if (num % 2 == 0) {cout << num <<"是偶数" << endl;} else {cout << num <<"不是偶数" << endl;}return 0;}```练习题 3:打印 1 到 100 之间的所有奇数题目描述:编写一个C++程序,打印出1 到100 之间的所有奇数。
```cppinclude <iostream>using namespace std;int main(){for (int i = 1; i <= 100; i++){if (i % 2!= 0) {cout << i <<"";}}cout << endl;return 0;}```练习题 4:计算一个整数的阶乘题目描述:编写一个 C++程序,输入一个整数,计算它的阶乘。
《C语言程序设计教程》第三版课后习题参考答案
《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
C语言习题及解答
第1部分课后练习题第1章C语言概述一、选择题1.一个C程序的执行是从。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2.以下叙述正确的是。
.在C程序中,main函数必须位于程序的最前面A)C程序的每行中只能写一条语句B)C语言本身没有输入输出语句C)在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面4.C语言规定:在一个源程序中,main函数的位置。
A) 必须在最开始 B) 必须在系统调用的库函数的后面C) 可以任意 D) 必须在最后5.一个C语言程序是由。
A) 一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成6.C语言中的语句需要符号作为结尾。
A) : B) ; C)。
D) //7.C 语言程序中可以对程序进行注释,注释部分用符号_____括起来。
A)‘{‘ 和’}’ B)‘[‘和’]’C)“/*”和”*/” D)“*/”和”/*”8.C语言中注释的位置。
A) 必须在程序的最开始 B) 必须在程序的结尾C) 可以在程序的任何位置 D) 不可以写到main函数里面9.C语言程序能够在不同的操作系统下面运行,这说明c语言具有很好的。
1A) 适应性 B)移植性 C)兼容性 D) 操作性10.C语言经过编译后生成的文件的后缀是。
A).c B) .cpp C) .exe D) .obj11.C语言编译程序的首要工作是。
A) 检查C语言程序的语法错误 B) 检查C语言程序的逻辑错误C)检查程序的完整性 D) 同时检查语法和逻辑错误12. C语言经过链接后生成的文件的后缀是。
C 习题与答案
第一章习题一、选择填空1.下列各种高级语言中,()是面向对象的程序设计语言。
A.BASIC;B.PASCAL;C.C++D.Ada2.下列各种高级语言中,()是最早提出了对象的概念。
A.Algol60;B.Simula67;C.Smalltalk;D.C++3.下述面向对象抽象的原理中,()是不对的。
A.数据抽象;B.行为共享;C.进化;D.兼容;4.()不是面向对象系统所包含的要数。
A.重载;B.对象;C.类;D.继承;5.关于C++与C语言的关系的描述中,()是错误的。
A.C语言是C++的一个子集;B.C语言与C++是兼容的;C.C++对C语言进行了一些改进;D.C++和C语言都是面向对象的;6.下面关于对象概念的描述中,()是错误的。
A.对象就是C语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C.对象是一个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的;7.下面关于类概念的描述中,()是错误的。
A.类是抽象数据类型的实现;B.类是具有共同行为的若干对象的统一描述体;C.类是创建对象的样板;D.类就是C语言中的结构类型;8.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,即从面向过程变成为面向对象。
A.增加了一些新的运算符;B.允许函数重载,并允许设置缺省参数;C.规定函数说明必须用原型;D.引进了类和对象的概念;9.按照标识符的要求,()符号不能组成标识符。
A.连接符;B.下划线;C.大小写字母;D.数字字符;10.下列符号中,()不可作为分隔符。
A.,;B.:;C.?;D.;二、判断下列描述的正确性,对者划√,错者划×。
1.C++引进了引用的概念,对编程带来了很多方便。
Y2.C++允许使用友元,但是友元会破坏封装性。
Y3.C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。
X4.C++中为了减轻使用者的负担,与C语言相比较C++中减少了一些运算符。
C语言程序设计习题(含答案)
C语言程序设计习题(含答案) C语言程序设计习题(含答案)C语言是一种常用的编程语言,被广泛应用于计算机科学和软件开发领域。
为了帮助学习者更好地掌握C语言的编程技巧,本文提供一些常见的C语言程序设计习题及其答案。
通过完成这些习题,学习者可以锻炼编程思维,加深对C语言的理解,并提高编程能力。
习题一:求两个整数的和题目描述:编写一个程序,计算两个整数的和并输出结果。
解答:```C#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```习题二:计算圆的周长和面积题目描述:编写一个程序,根据用户输入的半径,计算圆的周长和面积,并输出结果。
解答:```C#include <stdio.h>#define PI 3.14159int main() {double radius, circumference, area;printf("请输入圆的半径:");scanf("%lf", &radius);circumference = 2 * PI * radius;area = PI * radius * radius;printf("圆的周长为:%lf\n", circumference);printf("圆的面积为:%lf\n", area);return 0;}```习题三:判断一个数是否为素数题目描述:编写一个程序,判断用户输入的一个正整数是否为素数。
解答:```C#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```习题四:计算两个矩阵的乘积题目描述:编写一个程序,计算两个3x3的矩阵的乘积并输出结果。
高等数学C习题答案-1
高等数学(少学时)习题解答第一章 函数与极限习题1-11.求下列函数的定义域:(1) 211x xy --=; 解:110≤≤-≠x x 且;(2) ;1arctan 3xx y +-=解:30≤≠x x 且;(3) ()x x x y -+--=2ln 1562;解:由020562>-≥--x x x 且,得16≤≤-x ;(4) 212arccosx xy +=. 解:由,11212≤+≤-xxR x ∈. 2. 设()x f 的定义域为[]1,0,求()()()0>-++a a x f a x f 的定义域.解:⎩⎨⎧+≤≤-≤≤⎩⎨⎧≤-≤≤+≤a x a ax a a x a x 111010-知由从而得 ][.211,210φ时,定义域为;当时,定义域为当>-≤<a a a a3. 设 ⎪⎩⎪⎨⎧≥<=3||,03|||,sin |)(ππϕx x x x ,求)2(46ϕπϕπϕ、、⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛.解:6sin )6(ππϕ=21=;22)4sin()4(=-=-ππϕ;()02=ϕ4.判断下列函数的奇偶性:(1) x x x f cos sin )(+=;解:x x x x x f cos sin )cos()sin()(+-=-+-=-;非奇非偶;(2) ()1e e 2-=+x xy ; 解:)()(21)(x f e e x f x x=+=--;偶函数; (3) ()1e e 2-=-x xy ; 解:)()(21)(x f e e x f x x -=-=--;奇函数;(4) )tan(cos x y =.解:)()tan(cos ))tan(cos()(x f x x x f ==-=-;偶函数. 5.求2sin 3,,66ππ⎡⎤=∈-⎢⎥⎣⎦y x x 的反函数. 解:32,23sin ,3sin 2yarcisnx y x x y ===;反函数为:[]1,1,2arcsin 31-∈=x x y 6.对于下列每组函数写出))((x g f 的表达式: (1)1)(,sin )(2-==x x g x x f ; 解:)1sin())((2-=x x g f ;(2)()⎪⎩⎪⎨⎧>-=<=111011x x x x f ,()e =x g x . 解:⎪⎩⎪⎨⎧>-=<=⎪⎪⎩⎪⎪⎨⎧>-=<=0,10,00,1)]([1)(,11)(,01)(,1)]([x x x x g f x g x g x g x g f 从而得 7.火车站收取行李费的规定如下:当行李不超过50kg 时,按基本运费计算,如从上海到某地以0.15元/kg 计算基本运费,当超过50kg 时,超重部分按0.25元/kg 收费.试求上海到该地的行李费y (元)与重量x (kg)之间的函数关系.解:25.0)50(15.050⨯-+⨯=x y 8.某产品共有1500吨,每吨定价150元,一次销售不超过100吨时,按原价出售,若一次销售量超过100吨,但不超过500吨时,超出部分按9折出售;如果一次销售量超过500吨,超过500吨的部分按8折出售,试将该产品一次出售的收入y 表示成一次销量的函数.解:设一次销售量为x 吨,()⎪⎩⎪⎨⎧>-+-+≤<-+≤=500)500(120)100(13515000500100)100(13515000100150x x x x x x xx f习题1-21.观察下列数列的变化趋势,判断它们是否有极限,若有极限写出它们的极限:(1) n n x 311+=;解:极限是1;(2) n n n x 412+=;解:极限不存在;(3) 1332-+=n n x n ; 解:极限是32; (4) ()[]nn x n n 111+-+=.解:极限不存在;2.判断下列各题是否正确,并说明原因. (1)如果数列{}n x 发散,则{}n x 必是无界数列. 解:错,反例:()[]nn x nn 111+-+= (2)数列有界是数列收敛的充分必要条件. 解:错,必要但不充分条件(3),lim lim a z y n n n n ==∞→∞→且当N n >时有,n n n z x y ≤≤则.lim a x n x =∞→解:对,夹逼定理 (4)1sin lim=∞→xxx .解:错,极限是0(5)1)11(lim =+∞→n n n.解:错,极限是e3*.用数列极限的定义证明22lim 313→∞=-n n n .证明:|392||1n 33)13(26||321n 3n 2|-=---=--n n n )( 0>∀ε,存在时,有当N N ≥⎥⎦⎤⎢⎣⎡+=n |,3192|εε<-=---=--|392||1n 33)13(26||321n 3n 2|n n n )( 既22lim313→∞=-n n n .习题1-31.判断下列各题是否正确,并说明原因.(1)如果)(0x f =5,但4)(lim )(lim 00==+→→-x f x f x x x x ,则)(lim 0x f x x →不存在.解:错,)(lim 0x f x x →=4(2))(lim x f x ∞→存在的充分必要条件是)(lim x f x +∞→和)(lim x f x -∞→都存在.解:正确(3)如果在0x 的某一去心邻域内,,0)(>x f 且,)(lim 0A x f x x =→则.0>A解:正确2.设⎩⎨⎧≥-<+=,1 ,12,1 ,4)(x x x x x f 求)(lim ),(lim 11x f x f x x +-→→; )(lim 1x f x →是否存在,为什么? 解:5)(lim 1=-→x f x ,1)(lim 1=+→x f x ,)(lim )(lim 11x f x f x x +-→→≠, )(l i m 1x f x →不存在.3.设x x f =)(,求)(lim 0x f x →.解:10|0|)(lim 0-=∆∆-=∆-∆+=-→∆xxx x x f x ;10|0|)(lim 0=∆∆=∆-∆+=+→∆xxx x x f x . 左右极限不相等,极限不存在. 4*.根据函数的定义证明: (1) ()813lim 3=-→x x ,解:即可。
C程序设计基础(第4版)习题解答
2.用 C++语言编写的源程序要成为目标程序必须要经过( D )。
(A)解释
(B)汇编
(C)编辑
(D)编译
3.C++程序中冒号
(B)分号
(C)空格
(D)花括号
4.假设有说明 int a=0; double x=5.16;,则在以下语句中,( C )属于编译错误。
一个最简单的c程序可以只有一个a库函数a解释冒号b自定义函数b汇编b分号cmain函数c编辑c空格d空函数d编译d花括号2
《C++程序设计基础》(第 4 版)(上)
习题与解答
第 1 章 基本数据与表达式
1.1 选择题
1.一个最简单的 C++程序,可以只有一个( C )。
(A)库函数
(B)自定义函数
(C)main 函数 (D)空函数
【解答】
变量类型
定义
存储
使用方式
数据
类型 标识符
数据值
通过名访问即直接访问对变量内容操作
指针
类型 * 标识符
地址值
通过指针变量的地址值间址访问对象
验证程序:
#include<iostream>
using namespace std;
int main()
{ int a,b,c;
cout<<"a,b,c= ";
} 4.数据对象在 C++中有几种不同的访问方式?请编写一个程序验证之。
【解答】
数据对象在 C++中的访问方式有:名访问,引用(别名)访问,间址访问。 验证程序:
#include<iostream> using namespace std; int main() { int a;
C语言程序设计习题集及解答
目录第一章C语言基础知识 (1)第二章C语言程序设计的初步知识 (2)第二章答案 (25)第三章顺序结构程序设计 (3)第四章选择结构程序设计 (4)第五章循环结构程序设计 (6)第六章数组 (7)第六章答案 (26)第七章函数 (9)第七章答案 (27)第八章指针 (12)第八章答案 (28)第九章结构体与共用体 (14)第九章答案 (28)第十章文件 (16)第十章答案 (29)模拟试题 (17)模拟试题答案 (25)第一章C语言基础知识考点:1.C语言的特点。
2.C语言的基本结构、字符集、标识符、关键字。
3.算法的概念和描述方法。
一、选择题1. A 是C程序的基本构成单位。
A)函数B) 函数和过程C) 超文本过程D) 子程序2.下列说法正确的是 C 。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对3.下列说法正确的是C。
A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号4.下列标识符正确的是C。
A)x+y123 B)4_student C)a456 D)U.S5.以下说法正确的是C。
A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分6.B不是C语言提供的合法关键字。
A)char B)scanf C)case D)default7.C语言提供的合法关键字是C。
A)ELSE B)INT C)case D)printf8. 一个C语言程序是由B。
A)一个主程序和若干个子程序组成;B)函数组成, 并且每一个C程序必须且只能由一个主函数;C)若干过程组成;D)若干子程序组成.9. 以下叙述中错误的是(C )A.C语言是一种结构化程序设计语言。
c程序设计第三版习题参考解答(全)
c程序设计第三版习题参考解答(全) C程序设计第三版习题参考解答本文为《C程序设计第三版习题参考解答》的全文内容。
为了更好地适应题目要求,文章将按照解答问题的方式进行分段,每个问题对应一个小节。
以下是各个问题的解答:第一章:C概述和程序设计基本原则1. 什么是计算机程序?计算机程序是一系列指令的集合,用于告诉计算机执行特定的任务。
它由一系列语句组成,每条语句都包含了计算机可以理解和执行的命令。
2. C语言的起源和发展历程是什么?C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的一种通用高级编程语言。
C语言基于早期的B语言进行了扩展和改进,成为了应用广泛且高效的编程语言。
3. 编译和解释有什么区别?编译是将源代码一次性转换为机器语言的过程。
它将整个源代码文件编译成可执行文件,然后可以直接在计算机上运行。
解释是逐行解析源代码并立即执行的过程。
解释器逐行读取源代码并将其转换为机器代码,然后立即执行转换后的代码。
4. C程序的一般结构是什么样的?C程序的一般结构包括预处理指令、函数声明、全局变量声明、main函数以及其他函数的定义。
预处理指令用于包含头文件、定义宏等。
函数声明用于声明函数的名称和参数。
全局变量声明用于声明全局变量。
main函数是C程序的入口点,也是程序执行的起始位置。
第二章:C基本语法和数据类型1. C中的注释有哪些类型?在C中,注释分为单行注释和多行注释。
单行注释以"//"开头,多行注释以/*开头,以*/结尾。
2. 什么是变量?变量是在程序中用来存储数据的存储区域。
每个变量都有一个名称和一个数据类型,可以通过变量名来引用它所存储的数据。
3. C语言中的常量有哪些类型?C语言中的常量分为整型常量、实型常量、字符常量和字符串常量。
整型常量表示整数值,实型常量表示实数值,字符常量表示单个字符,字符串常量表示一串字符。
4. C语言中的运算符有哪些类型?C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符、自增自减运算符等。
《C语言程序设计教程》习题参考答案
《C语言程序设计教程》习题参考答案《C语言程序设计教程》习题参考答案祝胜林主编华南理工大学出版社【习题1】 (1)【习题2】 (2)【习题3】 (3)【习题4】 (5)【习题5】 (8)【习题6】 (11)【习题7】 (14)【习题8】 (17)【习题9】 (17)【习题10】 (20)一、简答题(在课本中寻找答案,略)1.1C程序的基本结构包括哪些内容?1.2如何定义标识符?1.3输入格式、输出格式的组成包括哪些内容?1.4C语言函数分为哪两类?1.5计算表达式的值应该考虑哪些方面?1.6上机调试程序的步骤如何?二、判断并改错1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。
并不限定在程序的开头。
1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.9编辑与编译不是一回事。
错误:不是一回事。
编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。
正确1.11注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
1.12所有的数学公式可以直接出现在源程序中。
错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。
三、编程题1.13在屏幕上输出自己名字的拼音。
提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。
1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15输入两个整数,输出其中最大者。
c语言程序设计第五版习题答案
习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。
C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。
这些函数的说明都包括在stdio.h文件中。
②main是主函数的名称。
C语言基础知识习题答案——第一章
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D 中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D对于++、--单目运算符来说,其运算对象可以是char型、int型和float 型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B 中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D 中,%(求余运算符)运算对象只能是整形数。
c程序设计第三版习题参考解答(全)
C程序设计(第三版)课后习题参考解答第1章 C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“ Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。
解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。
由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。
2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。
它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。
第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。
注:如果没有学过二进制和补码,此题可以不做。
解:各数据在内存中的存储形式如下表所示:变量的类型25 -2 32769int型00 (000011001)8 位111111111111111015100 … 001(溢出)14long型00 (000011001)24 11 (1110)3100... 0100 (001)16 14short型100 (000011001)8 111111111111111015100 … 001(溢出)14signed char(8位)100011001 11111110 00000001(溢出)unsigned int型00 (000011001)8 11 (110)15100 (001)14unsigned long型00 (000011001)24 11 (110)3100... 0100 (001)16 14unsigned short型00 (000011001)8 11 (110)15100 (001)8unsigned char型00011001 11111110 00000001其中int和short类型,其取值范围是-32768~32767。
c课后习题解答
第6章;类和对象(一)练习题66.1判断题×1.使用class定义的类,其默认的访问权限是公有的,使用struct定义的类,其默认的访问权限是私有的。
×2.类中的成员函数都是公有的,数据成员都是私有的。
×3.定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数。
√4.类定义后,它的成员个数及名称就不会再被改变了。
×5.定义或说明对象时,系统会自动调用构造函数为创建的对象初始化。
如果类中没有定义任何构造函数时,就无法给定义的对象初始化。
√6.定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成员函数是同类对象共享的。
√7.对象成员的表示方法与结构变量成员的表示方法相同。
√8.创建对象时系统自动调用相应的构造函数为对象初始化,没有相应的构造函数时,系统会自动生成。
√9.构造函数是一个其名与类名相同的特殊的成员函数。
×10.析构函数是一个函数体为空的成员函数。
√11.构造函数和析构函数都是系统自动调用的成员函数。
×12.构造函数和析构函数都可以重载。
√13.成员函数与一般函数一样可以重载、内联和设置参数的默认值。
×14.静态成员是指静态对象的成员。
×15.静态数据成员必须在构造函数的成员初始化列表中进行初始化。
√16.静态成员都可以使用类名加作用域运算符的方法来引用。
×17.静态成员函数中引用静态数据成员和非静态数据成员的方式是相同的。
√18.常成员指的是类体内使用const关键字说明的常数据成员和常成员函数。
×19.常数据成员在常成员函数中的值是不允许改变的,而在非常成员函数中是允许改变的。
√20.常对象需要引用常成员函数,而不能引用非常成员函数。
×21.常对象的数据成员都是常数据成员。
√22.友元函数是说明在类体内的非成员函数,它可以访问类中的所有成员。
×23.可以把一个一般函数说明为某类的友元函数,也可以将某类的成员函数说明为另类的友元函数。
C语言程序设计习题答案(第三版)
C语言程序设计(第三版)习题答案习题一一、名词解释(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2(5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10二、简答题1. 设计程序时应遵循哪些基本原则?P4答:正确性、可靠性、简明性、有效性、可维护性、可移植性。
2. 算法具有哪些特点?答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
3. 算法的表示形式有哪几种?答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。
4. 结构化程序设计方法的三种基本结构是什么?答:顺序结构、选择结构和循环结构。
5. 传统流程图与N-S流程图最大的区别是什么?答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。
三、用传统流程图或N-S流程图表示求解以下问题的算法。
1. 从键盘输入10个整数,求出其中的最小数并输出。
2. 求1+2+3+…+100的值。
3. 求10~50的所有素数之和。
4. 求下列分段函数的值。
四、请参照本章例题,编写一个简单的C 程序,输出以下三行信息。
**************************Yangtze University**************************#include <stdio.h>void main(){printf("**************************\n");printf(" Yangtze University\n");printf("**************************\n");}4X-1 (X ≤1) 5(X-1)+6 (1<X<5) 6-3X (X ≥5)习题二一、选择题1~10: B C D C D D B C A A11~20: D A C D B D B A C D二、填空题1.字母 L 或字母 l2. %c(或字符) 、 %d(或整数)3.在程序运行过程中,其值可以在一定的范围内变化的量4.'\0'5.小数形式、指数形式6.关键字、预定义标识符、用户标识符7.字母、数字、下划线、数字8. 189. 2 、 1 、 3010.双精度实数或double11.赋值、逗号、 20 、 20 、 20 、 412. 4 、 4习题三一、选择题1~10: B C C B C C C D C C注:第4题答案D为: 10 22↙33↙二、填空题1. printf 、 scanf2. h3."%5d"4.'\0'5. e 、 E6. 67. s 、 c8. *9. - 、 +10. i三、编程题1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。
部分C语言习题答案
部分习题答案第1章C程序知识初步答案略第2章基本数据类型及其操作1.判断题√××√××××√√2.填空题(1)int a;float b;char c;(2)3(3)double(4)a=1,b=2,c=3(5)0 整型(6)2(7)若有定义:int x=3,y=2;float a=2.5,b=3.5; 则表达式(x+y)%2+(int)a/(int)b的值为 1 。
(8)f3.选择题ACDDB DBACD4.改错题(1)#include <stdoi.h> 改成#include <stdio.h>int celsius;fahr; 改成float celsius,fahr;printf(“fahr=d,celsius=%d\n”,fahr,celsius);改成printf(“fahr=%f,celsius=%f\n”,fahr,celsius);(2)printf("%d\n",m/n+a); 改成printf("%f\n",m/n+a);printf("%f\n",m%a+b); 改成printf("%f\n",m%(int)a+b);(3)下面程序中有两处错误,请查找并改正。
#include<stdio.h>void main (){ int m,n;float a,b;scanf("%d,%f",&m,&a);scanf("%d,%f",&b,&n); 改成scanf("%f,%d",&b,&n);printf("%f\n",m/n+a);printf("%f\n",m%n+b)改成printf("%f\n",m%n+b);}5.阅读程序(1)2(2)** ** ** **(3)程序的功能:从键盘任意输入两个整数,输出它们的和。
C语言习题及解答
C 语言习题及解答1、输入一个华氏温度,要求输出摄氏温度。
公式为#include 〈stdio.h 〉 void main ( ) {float C ,F;printf(”Input F :”); scanf("%f",&F); C=5。
0/9*(F-32); printf(”C=%.2f\n”,C );}2、编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。
(提示:同一个字母的大写比小写小32)#include 〈stdio 。
h 〉 void main ( ) { char ch ;printf(”Input ch:"); scanf ("%c”,&ch); ch=ch+32;printf(“ch=%c\n",ch);}3、编写程序,输入梯形的上底、下底和高,计算并输出梯形的面积。
#include 〈stdio.h> void main( ){ float a ,b,h ,area;printf (”Input a,b,h: ");scanf ("%f%f%f", &a,&b ,&h ); area=(a+b)*h/2;printf("area=%。
2f\n", area); }4、编写程序,输入圆半径r,求圆周长、圆面积、圆球表面积、圆球体积。
#include 〈stdio 。
h 〉#define PI 3。
1415926void main( ) {float r ,L,s1,s2,V; printf(”Input r:”); scanf ("%f”, &r ); L=2*PI*r; s1=PI*r *r ; s2=4*PI*r *r ; V=4。
0/3*PI*r *r*r;printf ("L=%.2f , s1=%。
2f , s2=%。
2f ,V=%.2f\n",L,s1,s2,V); }5、有三个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r.已知电阻并联公式为: #include 〈stdio 。
《C语言程序设计》习题及解答1-4章
参考答案
一、选择题(1)B
(2)C
(3)C
(4)B
(5)B
(6)D
(7)D
(8)C
(9)C
(10)D
(11)B
(12)D
(13)D
(14)C
(15)A
二、填空题【1】2
【5】32767
【2】-2
【6】6.000000
【3】scanf
【7】49
【4】printf
第三章习题
一、单项选择题
1.下面不属于C语言的数据类型是【】。
int x=-32769;
printf("%d",x);
4.执行下列程序的输出结果是【6】。
main( )
{
float a=1,b;
b=++a*++a;
printf("%f\\n",b);
}
5.执行下列程序的输出结果是【7】。
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
本题正确答案为B。
二、填空题
1.若以下程序的输出结果是13,请填空。
main( )
{ int x=016;
printf("%d\\n",【1】); }
分析:在C语言中以0开头的数字是八进制数,016相当于十进制数14,执行printf语句时,输出项应为x的值减1。
本题正确答案为【1】--x或x-=1。
A)整型
B)实型
C)逻辑型
D)双精度实型
分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。
高等数学C1习题解答全部
高等数学1C 习题解答习题一一.单项选择题1、A2、D3、C 二.填空题1、22)1(133-+-x x x 2、(-9,1)三.计算题 1、(1)解 函数要有意义,必须满足⎩⎨⎧≥-≠0102x x 即⎩⎨⎧≤≤-≠110x x 定义域为]1,0()0,1(⋃- (2)解 函数要有意义,必须满足⎪⎪⎩⎪⎪⎨⎧≤≤-≠≥-111003x x x 解得1-≤x 或31≤≤x 3.(1)解 由1-=x e y 得 1ln +=y x 交换x 、y 得反函数为1ln +=x y (2)解 由11+-=x x y 得 yyx -+=11 交换x 、y 得反函数为x x y -+=11 4.(1)解 只有t=0时,能;t 取其它值时,因为 112>+t ,x arcsin 无定义(2)解 不能,因为11≤≤-x ,此时121-=x y 无意义 5.解(1)12arccos 2-====x w w v v u ey u(2) 令22y y y += 则11ln 21+=+==x u u v v y x w e m m x v v u ey wu2)sin(32==+===6.解 ⎪⎩⎪⎨⎧-≤+≤<-+->-=1101)1(0)]([22x x x x x x x f g7.解 设c bx ax x f ++=2)(所以⎪⎩⎪⎨⎧==++=++41242c c b a c b a 解得 25214-===b a c习题二一.单项选择题1、A2、B3、D 二.填空题1、>12、单调增加 三.计算题1、(1)解 因为)(sin )sin()(x f x x x x x f ==--=- 所以函数是偶函数 (2)解 因为)()1ln(11ln )1ln()(222x f x x xx x x x f -=-+-=-+=++=-所以函数是奇函数(3)解 )(0)1(000)1(010001)(x f x x x x x x x x x x x f -=⎪⎩⎪⎨⎧>+-=<--=⎪⎩⎪⎨⎧<---=->-+-=- 所以函数是奇函数 2.解 因为 x x y 2cos 2121sin 2-== 而x 2cos 的周期为π,所以x y 2sin =是周期函数,周期为π 3.解 由h r V 231π=得23rv h π= 表面积: )0(919221226224222222≥++=++=+⋅+=r r v r r r r v r r r r h r s πππππππ四 证明 )()1()1(11)(x f e e e e e e x f x x x x x x -=+-=+-=---习题三一.单项选择题1、C2、C3、B4、C 二.填空题1、12、a3、≥4、2,05、1 三.判断正误1、对;2、对;3、错 四.(1) 证明 令12+=n nx n ε<=<+=-nn n n n x n 11022只要ε1>n ,取]1[ε=N当N n >时,恒有ε<-0n x 所以01lim2=+∞→n nn(2)证明 因为)0()(lim >=+∞→A A x f x ,对取定的2A=ε,存在M>0,当x>M 时,有 2)()(A A x f A x f <-<- 故当x>M 时,2)(A x f > 习题四一.单项选择题1、B2、B3、B4、D 二.填空题1、ae 2、0,6 3、6 4、2,-2 三.判断正误1、错;2、错;3、错; 四.计算题 1、原式=2112lim )1)(1()1)(2(lim11=+--=+---→→x x x x x x x x2、原式=01111lim11lim=++=+++∞→+∞→x xxx x x 3、原式=2311lim)1)(1()1)(1(lim32313231=+++=-+++-→→xx x x x x x x x x 4、原式=31)32(131)32(31lim )32(13233lim 1111=-⋅+=-++∞→++++∞→n n n n n n n n n 5、原式=]21)121121(21)5131(21)311[(lim ⋅+--++⋅-+⋅-+∞→n n n21)2112121(lim =⋅+-=∞→n n 6、、原式=23232223)12)(1(21lim 3)21(3lim n n n n n n n n n n -++=-+++∞→+∞→ 2132123lim 22=+=∞→n nn n 7、因为 0lim =-+∞→xx e1s i n ≤x 所以 0s i n lim =-+∞→x exx习题五一、1.B , 2.A, 3. B二、1.sin tan x x x << 2.0 三、1.(1)0sin 77lim tan 55x x x →=解:(2)0lim sin0x x xπ→=解:这是有界函数乘无穷小量,故(3)000sin 5sin 5115sin 55lim lim lim 1sin 3sin 3sin 31133x x x x x x x x x x xx x x x→→→---===-+++ 解: (4)00sin 1limlim sin 1()x x x x x x++→→+=解:原式=后一项是无穷小量乘有界函数 2.(1)22222222222lim(1)lim[(1)]lim(1)1n n n n n e e n n n⨯+→∞→∞→∞=+=++== 原式 (2)()1()1111lim(1)lim 1xx x x xx e ---∙-→∞→∞⎡⎤⎛⎫-=-=⎢⎥⎪⎝⎭⎢⎥⎣⎦原式= (3)22322(3)3332233lim(1)lim(1)22x x x x e x x -++-∙---→∞→∞⎡⎤-=-=⎢⎥++⎢⎥⎣⎦原式= (4)13330lim(13)xx x e ∙→=+=原式(中间思维过程同前)(5)222222lim ln()lim ln(1)lim ln(1)lim ln(1)1nn n n n n n n n n n n n∙→∞→∞→∞→∞+==+=+=+=原式 四.1.证明:......<+<1,,.n n ==而故由夹逼准则知原式成立2.证明:只要证明原数列单调有界就可以达到目的()()2211112,110,0,.n n n n n n n n n n n n n n n x x x x x x x x x x x x x x x ++++=-+-=-=-->->> n 即而0<x <1,故即故数列单调递增且有界,极限存在.22212(21)11(1)1lim 1n n n n n n n n x x x x x x x +→∞=-+=--++=--<∴=习题六一、1.B,2.B,3.B,4.B,5。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冒号后用逗号隔开的是要初始化的对象成员,附在后面的参数名表1,…,参数名表n依次为调用相应对象成员所属的构造函数时的实参表。这些表中的参数通常来自冒号前的参数总表,但没有类型名。
4.2.9 所有类对象未重载的赋值运算符“=”是怎样工作的?为什么它可以进行连续赋值?
二.编程与综合练习题
4.3 构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用枚举类型,并完成测试。(包括用成员函数和用普通函数)
解:本题要求仅是定义类的练习,并非实用的提供日期时间的程序。实用的日期时间程序见附录二的日期时间函数。
4.2.4 什么叫类域?为什么说类域是抽象的?
答:类域是类体所包括的范围。每个类定义都引入了一个独立的类域,在类域中说明的标识符仅在该类的类域中有效。由于类只是一个说明,看上去有数据,有函数,有类型定义,但是它并非实体,不分配内存,当然也不能运行。所以说类域是抽象的。
4.2.5 引用作为函数参数时为什么能实现两个实参之间的数据交换?为什么对应实参不能为引用?为什么返回值为引用的函数可以作为左值?
4.2.6 什么是缺省的构造函数?缺省的构造函数最多可以有多少个?
答:如果在类定义中不显式地定义构造函数,C++编译器会自动产生一个缺省的构造函数,不过该函数不做具体的初始化工作。只要构造函数是无参的或者只要各参数均有缺省值的,C++编译器都认为是缺省的构造函数。缺省的构造函数只能有一个。
4.2.7 拷贝构造函数用于哪三个方面?
(2)公有的public
(3)私有的private
(4)公有的public
(5)数据
(6)函数
4.1.2 类的访问限定符包括(1)、(2)和(3)。私有数据通常由(4)函数来访问(读和写)。这些函数统称为(5)。
答案:
(1)public(公有的)
(2)private(私有的)
(3)protected(保护的)
答:对所有的类对象,未重载的赋值运算符“=”称作缺省的按成员拷贝赋值操作符,同类对象之间可以用“=”直接拷贝。因为缺省的赋值操作返回一个对象的引用,所以它可以进行连续赋值。
为什么在友元函数的函数体内访问对象成员时,必须用对象名加运算符“.”再加对象成员名?
答:友元函数不是类的成员函数,在函数体中访问对象的成员,必须用对象名加运算符“.”加对象成员名。这一点和一般函数一样。
对象的第一特征是封装,那么由对象组成的面向对象的程序怎样建立各对象之间的有效联系?面向对象程序的组织与面向过程有什么不同?
答:因为对象的操作主要用来响应外来消息并为其他对象提供服务,所以面向对象的程序利用消息传递机制来建立各对象之间的有效联系,协调各对象的运行。一个对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息,完成自身固有的某些操作,从而服务于其他对象。
Windows系统使用事件驱动的编程模式。所谓事件的含义非常广泛。输入设备的动作,如敲打键盘、按鼠标等会产生一系列的事件(注意不是一个事件)。操作系统所作的一举一动也被当作某种类型的事件,应用程序也会产生各种事件。事件用来标识发生的某件事情。
Windows系统对于应用程序环境中发生的每一个事件都会以对应的某种消息的形式标识,并放入相应的Windows建立的消息队列中,然后由对应的应用程序或窗口函数去处理。窗口函数处理是分层的,前面处理不了的送到后面,最后处理不了剩下的全由缺省的窗口函数处理。
答:
(1)用类的一个对象去初始化该类的另一个对象时使用。
(2)当函数的形参是类的对象,调用函数时,进行形参与实参结合时使用。
(3)当函数的返回值是类对象,函数执行结束返回调用者时使用。
4.2.8 写出含有对象成员的类的构造函数的格式,并做简单说明。
答:C++中对含对象成员的类对象的构造函数有固定的格式:
C++中结构、联合与类三者间有何异同?
答:在C++中结构(structure)与类几乎是完全一样的类型,差别仅仅在于缺省情况下结构的成员为公有的。联合(union)是C++的导出数据类型,在语法与功能上类似于结构,二者的区别是:结构变量的各成员同时被分配了各自独立的内存区,而联合变量的各个成员的存储开始地址都相同,所以在任一时刻联合变量只能存储一个成员。
类的成员函数在什么情况下应该定义为私有的?这样做的目的是什么?
答:除接口函数和创建本类对象的构造函数和撤消该对象的析构函数外。其余成员函数应该定义为私有的,这是开发类时故意对外隐蔽起来的操作,而这些往往是最复杂最关键的部分。类中故意的隐藏也为以后的升级扩展留下了余地,只要接口不变,内部再变,也不必修改原来的程序,就象MFC(微软基础类)升级后,由MFC底层类所编的程序完全不必修改,自动升级。
classTimedate{
private:
YR year;
MT month;
intdate;
inthh;
intmm;
intss;
public:
Timedate(){year=Y2000;month=Jan;date=1;hh=0;mm=0;ss=0;}
Timedate(YR a,MT b,intc){
封装性增加了对象的独立性,C++通过建立数据类型——类,来支持封装和数据隐藏。一个定义完好的类一旦建立,就可看成完全的封装体,作为一个整体单元使用,用户不需要知道这个类是如何工作的,而只需要知道如何使用就行。另一方面,封装增加了数据的可靠性,保护类中的数据不被类以外的程序随意使用。这两个优点十分有利于程序的调试和维护。
year=a;
month=b;
date=c;
hh=12;mm=30;ss=0;
}
voidgetdate(YR &,MT &,int&);//使用引用一次取得3个数值
voidgettime(int&,int&,int&);
voidputdate(YR ,MT ,int);
第四章 类与对象习题
一.基本概念与基础知识自测题
4.1 填空题
5.1.1 引入类定义的关键字是(1)。类的成员函数通常指定为(2),类的数据成员通常指定为(3)。指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。通常用类的(5)成员表示类的属性,用类的(6)成员表示类的操作。
答案:
(1)class
(4)公有的成员函数
(5)类的接口
4.1.3 通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。而在物理上通常只有(2)代码区。只有在(3)定义,并(4)的函数和加了关键字(5)的函数例外。
答案:
(1)独立的
(2)共用的
(3)在类说明中
(4)不包括循环等复杂结构
(5)inline
4.1.4 C++中支持三种域:(1)、(2)、(3)。函数域被包括在(4)中,全局域被包括在(5)中。using指示符以关键字using开头,后面是关键字(6),最后是(7)。这样表示以后在该名字空间中所有成员都(8)。如不使用using指示符则在使用时要加::,称为(9)运算符。
friendComplexoperator+(constComplex &c1,constComplex &c2);
类的静态数据成员与函数中的静态成员有何异同?
答:类的静态成员为其所有对象共享,不管有多少对象,静态成员只有一份存于公用内存中,为该类所有对象公用。函数中的静态变量也位于公用内存中,不随函数调用而重新分配,所以总是保留上次进入并执行该函数后留下的信息。
面向过程的程序是模块化的,模块的组织具有分层结构特点,层与层之间是调用关系。面向对象程序是由一个个封装的对象组成,而对象是由紧密结合在一起的算法和数据结构组成。对象之间是相互请求和相互协作的关系。
简叙Windows下应用程序的运行方式。
答:Windows系统支持多个应用程序同时执行,在界面形式上,它支持多个窗口同时活动。它的运行机制是“消息传递和事件驱动(messagebased andevent driven)”。
#include<iostream>
#include<iomanip>
usingnamespacestd;
enumYR{Y2000,Y2001,Y2002,Y2003,Y2004,Y2005};//
enumMT{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};
答案:
(1)参数
(2)返回值
(3)数组元素
(4)数组名本身
4.1.6构造函数的任务是(1)。构造函数无(2)。类中可以有(3)个构造函数,它们由(4)区分。如果类说明中没有给出构造函数,则C++编译器会(5)。拷贝构造函数的参数是(6),当程序没有给出复制构造函数时,系统会自动提供(7)支持,这样的复制构造函数中每个类成员(8)。
4.2.2 C++编译器怎样对标识符进行解析?
答:编译器对标识符的解析分两步,第一步查找在声明中用到的标识符,特别是函数成员声明中用到的参数类型,第二步是函数成员体内的标识符。
4.2.3 为什么说类与对象的概念是客观世界的反映?
答:客观世界的事物都具有某些属性和行为(或操作),具有相同属性和行为的事物可以归属于一类,用分类的方法可以提高认识事物的效率。C++中定义的类则是通过抽象的方法将某一类事物共有的静态特征(属性)和动态特征(行为)概括出来并加以描述,而对象是类的具体实现,所以说类与对象的概念是客观世界的反映。