
C++程序设计(第3版)(除去和C相同不包含C++OOP部分
C++程序设计(第3版)(除去和C相同内容且不包含C++面向对象部分)是除了和 C程序设计(第五版)重复的内容之外 以及 C++程序设计(第3版)面向对象章节的内容之外 的内容。
本专栏所有源代码全部在DEV-C++5.11和VS2019这两个IDE下编译通过,没有任何错误和任何警告。
AKK188888881
这个作者很懒,什么都没留下…
展开
-
课后习题7.11 医院内科有A,B,C,D,E,F,G共7位医生,每人在一周内要值一次夜班,排班的要求是: (1)A医生值班日比C医生晚1天; (2)D医生值班日比E医生晚2天; (3)B医生值班日比
课后习题7.11 医院内科有A,B,C,D,E,F,G共7位医生,每人在一周内要值一次夜班,排班的要求是:(1)A医生值班日比C医生晚1天;(2)D医生值班日比E医生晚2天;(3)B医生值班日比G医生早3天;请编写程序,输出每位医生的值班日。值班日以Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday分别表示星期日到星期六(提示:用枚举变量)#include<iostream> using namespace std;原创 2020-10-26 13:33:16 · 5441 阅读 · 0 评论 -
例7.6 临时开辟一个存储空间以存放一个结构体数据。假设已声明一个结构体类型Student(成员包括name,num,sex)。
例7.6 临时开辟一个存储空间以存放一个结构体数据。假设已声明一个结构体类型Student(成员包括name,num,sex)。#include<iostream>using namespace std;struct Student{ string name; int num; char sex;};int main(){ Student* p; p = new Student; p->name = "Wang Fang"; p->num = 101原创 2020-10-26 13:32:04 · 761 阅读 · 0 评论 -
例6.19 对3个变量按由小到大的顺序排序。
例6.19 对3个变量按由小到大的顺序排序。#include<iostream>using namespace std;int main(){ void sort(int&, int&, int&); int a, b, c; cout << "Please enter 3 integers:"; cin >> a >> b >> c; sort(a, b, c); cout << "sor转载 2020-10-26 13:30:48 · 1179 阅读 · 0 评论 -
例6.18 实现两个变量的值互换,用“引用”作形参。
例6.18 实现两个变量的值互换,用“引用”作形参。#include<iostream>using namespace std;int main(){ void swap(int&, int&); int i = 3, j = 5; swap(i, j); cout << "i=" << i << " " << "j=" << j << endl; return 0;}void sw转载 2020-10-25 13:27:15 · 579 阅读 · 0 评论 -
例6.17 使用指针变量作形参,实现两个变量的值互换。
例6.17 使用指针变量作形参,实现两个变量的值互换。#include<iostream>using namespace std;int main(){ void swap(int*, int*); int i = 3, j = 5; swap(&i, &j); cout << i << " " << j << endl; return 0;}void swap(int *p1, int *p2){ i转载 2020-10-25 13:26:42 · 823 阅读 · 0 评论 -
例6.16 要求将变量i和j的值互换。
例6.16 要求将变量i和j的值互换。/*此程序未能实现两个变量的值互换,因为交换的只是i和j的副本a和b的值*/ #include<iostream>using namespace std;int main(){ void swap(int, int); int i = 3, j = 5; swap(i, j); cout << i << " " << j << endl; return 0;}void swap(i转载 2020-10-25 13:26:05 · 399 阅读 · 0 评论 -
例6.15 通过引用得到变量的值。
例6.15 通过引用得到变量的值。#include<iostream>#include<iomanip>using namespace std;int main(){ int a = 10; int& b = a; a = a * a; cout << a << setw(6) << b << endl; b = b / 5; cout << b << setw(6) <&l转载 2020-10-25 13:25:26 · 121 阅读 · 0 评论 -
例6.14 在函数中改变指针形参所指对象的值。
例6.14 在函数中改变指针形参所指对象的值。#include<iostream>using namespace std;void fun(int* p){ *p = 5 * (*p);}int main(){ int a = 10; fun(&a); cout << a << " " << endl; return 0;}转载 2020-10-25 13:24:48 · 157 阅读 · 0 评论 -
课后习题5.17 输入10个学生的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出。
课后习题5.17 输入10个学生的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出。#include <iostream>using namespace std;const int n = 10;string name[n];int num[n], score[n];int main(){ int i; void input_data(); input_data(); cout << endl << "The lis转载 2020-10-25 13:23:42 · 2262 阅读 · 0 评论 -
课后习题5.16 输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL。 (1)用字符数组方法; (2)用string方法。
课后习题5.16 输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL。(1)用字符数组方法;(2)用string方法。(1)用字符数组方法:#include <iostream>using namespace std;int main(){ const int n = 10; int i; char a[n], temp; cout << "please input a string:"; for (i = 0; i < n; i转载 2020-10-25 13:23:08 · 3005 阅读 · 0 评论 -
课后习题5.15 输入n个字符串,把其中以字母A打头的字符串输出。
课后习题5.15 输入n个字符串,把其中以字母A打头的字符串输出。#include <iostream>using namespace std;int main(){ const int n = 5; string str; for (int i = 0; i < n; i++) { cout << "please input string:"; cin >> str; if (str[0] == 'A') cout <&l转载 2020-10-25 13:21:27 · 879 阅读 · 0 评论 -
课后习题5.14 输入n个字符串,将它们按字母由小到大的顺序排列并输出。
课后习题5.14 输入n个字符串,将它们按字母由小到大的顺序排列并输出。#include <iostream>using namespace std;int main(){ const int n = 5; int i, j; string str[n], temp; cout << "please input strings:" << endl; for (i = 0; i < n; i++) cin >> str[i]; f转载 2020-10-25 13:19:33 · 2405 阅读 · 0 评论 -
课后习题5.13 编写一程序,将两个字符串连接起来,结果取代第一个字符串。 (1)用字符数组,不用stract函数(即自己写一个具有stract函数功能的函数); (2)用标准库中的stract函数;
课后习题5.13 编写一程序,将两个字符串连接起来,结果取代第一个字符串。(1)用字符数组,不用stract函数(即自己写一个具有stract函数功能的函数);(2)用标准库中的stract函数;(3)用string方法定义字符串变量。(1)用字符数组,不用stract函数(即自己写一个具有stract函数功能的函数):#include <iostream>#include <string>using namespace std;int main(){ c转载 2020-10-24 12:27:51 · 3043 阅读 · 5 评论 -
课后习题5.11 打印以下图案: * * * * * * * * * * * * * * * * * * * * * * * * * (1)用字符数组的方法; (2)用string方法。
课后习题5.11 打印以下图案:* * * * * * * * * * * * * * * * * * * ** * * * *(1)用字符数组的方法;(2)用string方法。(1)用字符数组的方法:#include <iostream>using namespace std;int main(){ char a[5] = { '*','*','*','*','*' }; int i, j, k; char space = ' ';原创 2020-10-24 12:26:10 · 3887 阅读 · 0 评论 -
课后习题5.9 给出年、月、日,计算该日是该年的第几天。
课后习题5.9 给出年、月、日,计算该日是该年的第几天。#include <iostream>using namespace std;int main(){ int sum_day(int, int); int leap(int year); int year, month, day, days = 0; cout << "input date(year,month,day):"; cin >> year >>转载 2020-10-24 12:24:22 · 148 阅读 · 0 评论 -
例5.12 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后,程序就查找该班中有无此学生,如果有,则输出他的姓名和
例5.12 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后,程序就查找该班中有无此学生,如果有,则输出他的姓名和学号,如果查不到,则输出“本班无此人”。#include <iostream>using namespace std;string name[50], num[50];int n;int main(){ void input_data(); void search(string转载 2020-10-24 12:23:39 · 1438 阅读 · 0 评论 -
例5.11 输入3个字符串,要求将字母按由小到大顺序输出。
例5.11 输入3个字符串,要求将字母按由小到大顺序输出。#include<iostream>using namespace std;int main(){ string string1, string2, string3, temp; cout << "please input three strings:"; cin >> string1 >> string2 >> string3; if (string2 > stri转载 2020-10-24 12:22:43 · 1255 阅读 · 0 评论 -
课后习题4.12 三角形的面积为 area=s*s(s-a)*(s-b)*(s-c) 其中,s=1/2(a+b+c),a,b,c为三角形的三边。定义两个带参数的宏,一个用来求s,另一个用来求area。
课后习题4.12 三角形的面积为area=ss(s-a)(s-b)*(s-c)其中,s=1/2(a+b+c),a,b,c为三角形的三边。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序,在程序中用带实参的宏名来求面积area。#include <iostream>#include <cmath>using namespace std;#define S(a,b,c) (a+b+c)/2#define AREA(a,b,c) sqrt(S(a,b,c)转载 2020-10-24 12:20:55 · 4336 阅读 · 0 评论 -
课后习题4.11 用递归方法求 f(x)=∑i^2(下标是i=1,上表是n) n的值由主函数输入。
课后习题4.11 用递归方法求f(x)=∑i^2(下标是i=1,上表是n)n的值由主函数输入。#include <iostream>using namespace std;int main(){ int f(int); int n, s; cout << "input the number n:"; cin >> n; s = f(n); cout << "The result is " <&转载 2020-10-24 12:20:22 · 2594 阅读 · 1 评论 -
课后习题4.9 Hanoi(汉诺)塔问题。这是一个经典的数学问题:古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(见图4.16)。有一个老和尚想把这
课后习题4.9 Hanoi(汉诺)塔问题。这是一个经典的数学问题:古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(见图4.16)。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求编程序打印移出移动的步骤。#include <iostream>using namespace std;int main(){ void hanoi(int转载 2020-10-24 12:19:28 · 2651 阅读 · 0 评论 -
课后习题4.7 写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7,...,在主函数中输入一个不小于6的偶数n,然后调用函数gotbaha,在
课后习题4.7 写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7,…,在主函数中输入一个不小于6的偶数n,然后调用函数gotbaha,在gotbaha函数中再调用prime函数,prime函数的作用是判别一个数是否为素数。在gotbah函数中输出以下形式的结果:34=3+31#include <iostream>#include <cmath>using namespace std;int main(){转载 2020-10-24 12:18:33 · 4253 阅读 · 0 评论 -
课后练习4.5 写一函数求sin(x)的值,求sin(x)的近似公式为sinh(x)=(e^x-e^(-x))/2,其中用一个函数求e^x。
课后练习4.5 写一函数求sin(x)的值,求sin(x)的近似公式为sinh(x)=(ex-e(-x))/2,其中用一个函数求e^x。#include <iostream>#include <cmath>using namespace std;int main(){ double e(double); double x, sinh; cout << "enter x:"; cin >> x; sinh = (e(x) + e(-x))转载 2020-10-24 12:17:13 · 693 阅读 · 0 评论 -
课后习题4.4 求a!+b!+c!的值,用一个函数fac(n)求n!。a,b,c的值由主函数输入,最终得到的值在主函数输出。
课后习题4.4 求a!+b!+c!的值,用一个函数fac(n)求n!。a,b,c的值由主函数输入,最终得到的值在主函数输出。#include <iostream>using namespace std;int main(){ int fac(int); int a, b, c, sum = 0; cout << "enter a,b,c:"; cin >> a >> b >> c; sum = su转载 2020-10-23 15:00:49 · 2259 阅读 · 0 评论 -
例4.11 求两个或3个正整数中的最大数,用带有默认参数的函数实现。
例4.11 求两个或3个正整数中的最大数,用带有默认参数的函数实现。#include<iostream>using namespace std;int main(){ int max(int a, int b, int c = 0); int a, b, c; cin >> a >> b >> c; cout << "max(a,b,c)=" << max(a, b, c) << endl; cout转载 2020-10-23 14:59:50 · 1869 阅读 · 0 评论 -
例4.10 将例4.9程序改为通过函数模板来实现。
例4.10 将例4.9程序改为通过函数模板来实现。#include<iostream>using namespace std;template<typename T>T max(T a, T b, T c){ if (b > a) a = b; if (c > a) a = c; return a;}int main(){ int i1 = 185, i2 = -76, i3 = 567, i; double d1 = 56.87,转载 2020-10-23 14:58:59 · 220 阅读 · 0 评论 -
例4.9 编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。
例4.9 编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。#include<iostream>using namespace std;int main(){ int max(int a, int b, int c); int max(int a, int b); int a = 8, b = -12, c = 27; cout << "max(a,b,c)=" &l转载 2020-10-23 14:58:02 · 2156 阅读 · 0 评论 -
例4.8 求3个数中最大的数(分别考虑整数、双精度数、长整数的情况),用函数重载方法。
例4.8 求3个数中最大的数(分别考虑整数、双精度数、长整数的情况),用函数重载方法。#include<iostream>using namespace std;int main(){ int max(int a, int b, int c); double max(double a, double b, double c); long max(long a, long b, long c); int i1, i2, i3, i; cin >> i1 >&g转载 2020-10-23 14:57:12 · 1110 阅读 · 0 评论 -
例4.7 函数指定为内置函数。
例4.7 函数指定为内置函数。#include<iostream>using namespace std;inline int max(int, int, int);int main(){ int i = 10, j = 20, k = 30, m; m = max(i, j, k); cout << "max=" << m << endl; return 0;}inline int max(int a, int b, int c)转载 2020-10-23 14:54:22 · 118 阅读 · 0 评论 -
课后习题3.24 输出以下图案: * *** ***** ***** *** *
课后习题3.24 输出以下图案:******************#include <iostream>using namespace std;int main(){ int i, k; for (i = 0; i <= 3; i++) // 输出上面4行*号 { for (k = 0; k <= 2 * i; k++) cout << "*";转载 2020-10-23 14:52:47 · 4527 阅读 · 0 评论 -
课后习题3.4 编程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和cout语句输出这两个字符。并思考以下问题: (1)变量c1,c2应定义为字符型还是整形?抑或两者皆
课后习题3.4 编程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和cout语句输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型还是整形?抑或两者皆可?(2)要求输出c1和c2的值的ASCII码,应如何处理?课后习题3.4法一#include <iostream>using namespace std;int main(){ char c1, c2; cout << "请输入两个字符c1,c2:"; c1 = g转载 2020-10-23 14:51:32 · 3896 阅读 · 0 评论 -
课后习题3.3 输入一个华氏温度,要求输出摄氏温度。公式为c=5/9(F-32),输出要有文字说明,取两位小数。
课后习题3.3 输入一个华氏温度,要求输出摄氏温度。公式为c=5/9(F-32),输出要有文字说明,取两位小数。#include <iostream>#include<iomanip>using namespace std;int main(){ float c, f; cout << "请输入一个华氏温度:"; cin >> f; c = float((5.0 / 9.0) * (f - 32)); cout << seti原创 2020-10-23 14:49:50 · 2545 阅读 · 0 评论 -
课后习题3.2 设圆的半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用cin输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。请编程序。
课后习题3.2 设圆的半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用cin输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。请编程序。#include <iostream>#include <iomanip>using namespace std;int main(){ float h, r, l, s, sq, vq, vz; const float pi = 3.1415926f; cout <<原创 2020-10-23 14:48:40 · 1988 阅读 · 0 评论 -
例3.1 各行小数点对齐。
例3.1 各行小数点对齐。#include<iostream>#include<iomanip>using namespace std;int main(){ double a = 123.456, b = 3.14159, c = -3214.67; cout << setiosflags(ios::fixed) << setiosflags(ios::right) << setprecision(2); cout <&l转载 2020-10-22 15:01:50 · 609 阅读 · 0 评论