C++课后习题(一)
苦哈哈的三天国庆就要结束了,又要开始学习C++了,我爱C++,你爱C++吗?
第一章:C++的初相识
包含C++类的程序
#include<iostream>
using namespace std;class Student
{public:void setdata(){cin >> num;cin >> score;}void display(){cout << "num=" << num << endl;cout << "score=" << score << endl;}
private:int num;int score;};Student stu1, stu2;
int main()
{stu1.setdata();stu2.setdata();stu1.display();stu2.display();return 0;system("pause");}
运行结果
第二章:数据的存储、表示形式和基本运算
将字符赋给整型变量
#include<iostream>
using namespace std;int main()
{int i, j;i = 'A';j = 'B';cout << i << ' ' << j << '\n';return 0;
}
运行效果如下
第三章:程序设计初步
Fibonacci数列
#include<iostream>
#include<iomanip>using namespace std;int main()
{long long f1, f2;int i;f1 = f2 = 1;for (i = 1; i <= 20; i++){cout << setw(12) << f1 << setw(12) << f2;//设备输出字段宽度为12,每次输出两个数if (i % 2 == 0)cout << endl;//每输出完4个数后换行,使每行输出4个数f1 = f1 + f2;f2 = f1 + f2;}return 0;
}
运行效果如下
课后习题:输出所有的“水仙花数”
#include<iostream>
#include<iomanip>using namespace std;int main()
{for (int i = 100; i <= 999; i++){int a = i / 100;int b = (i / 10) % 10;int c = i % 10;if (i == a * a * a + b * b * b + c * c * c){cout << i << endl;}}
}
运行效果如下
课后习题:输出所有的“完数”
#include<iostream>
#include<iomanip>using namespace std;int main(void)
{static int k[10]; // 定义一个静态整型数组int i, j, n, s;for (j = 2; j < 100000; j++) // j 是所求范围内的所有数,目的:找出完数{n = -1; // n 是 k[10] 数组里的下标s = j; // 将 j 赋值 给 s, 用 s 来做一系列的筛选判断for (i = 1; i < j; i++) // 在 j 数字的范围内再遍历一次数字,目的:找出因子{if ((j % i) == 0) // 第一道筛选: 找出 数字 j 的因子{n++; // n++ 以后 n 等于 0// 第二道筛选 : 找出 s = 0s = s - i;//假设 s=j=1或者2或者3或者6, i 遍历到了 1或者2或者3或者6,s 就会等于 0k[n] = i; // k[0] = 1, k[1] = 2, k[2] = 3}}if (s == 0) // 上面的 for 循环结束以后才执行 这个 if 语句{printf("%d is a PerfectNumber:", j);for (i = 0; i < n; i++)printf("%d,", k[i]);printf("%d\n", k[n]);}}printf("\nThe duration is %lf s.\n", ((double)clock() / CLOCKS_PER_SEC));return 0;
}
运行结果如下
第四章:利用函数实现指定的功能
课后作业:汉塔问题
#include <iostream>
using namespace std;
int process(int num, char a, char b, char c) {if (num == 0) {return 0;}if (num == 1) {cout << num << ": " << a << " -> " << c << endl;return 1;}int part1 = process(num - 1, a, c, b);int part2 = 1;cout << num << ": " << a << " -> " << c << endl;int part3 = process(num - 1, b, a, c);return part1 + part2 + part3;
}int main() {int n, m;char a[3];cin >> n >> a[0] >> a[1] >> a[2];m = process(n, a[0], a[2], a[1]);return 0;
}
运行效果如下
第五章:利用数组批量处理数据
课后作业:打印杨辉三角
#include <iostream>
#include <iomanip>
using namespace std;/*杨辉三角最终显示效果是一个等腰三角形,两个最外边都是1杨辉三角的根本在于,每个数等于它上方两数之和
*/
int main() {const int n = 11;//变量n在此处起到了限制输出行数的作用,可优化成用户输入int i, j, a[n][n];//使第一列和对角线元素的值为1for (i = 1; i < n; i++) { //前两行全为1,拿出来单独处理a[i][i] = 1;//使最右侧边全为1a[i][1] = 1;//使最左侧边全为1}//从第三行开始处理for (i = 3; i < n; i++) //三行开始出现变化for (j = 2; j <= i - 1; j++) //j始终慢i一步a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//每个数等于它上方两数之和,如a32=a21+a22//输出数组各元素的值for (i = 1; i < n; i++) { //从第一行开始for (j = 1; j <= i; j++) //利用j将每一行的数据全部输出cout << setw(5) << a[i][j] << " "; //在C++中,setw(int n)用来控制输出间隔,这里是指前元素末尾与后元素末尾之间有个5空格位cout << endl;}cout << endl;return 0;
}
效果如下
第七章:用户自定义数据类型
课后习题:创建动态链表
#include<stdio.h>
#include<stdlib.h>struct node{int data; //数据域 node *next; //指针域,指向下一个元素
}; node* creatlist(int arr[],int len){ //建立链表 node*head,*pre,*p;head=new node; //创造头结点 head->next=NULL;pre=head; //pre赋值 for(int i=0;i<len;i++){p=new node;p->data=arr[i]; //赋值给数据域 p->next=NULL; //最后一个节点的指针域置空 pre->next=p; //新结点连到链表的结尾 pre=p; //pre指向链表的最后一个结点 } return head;}
void insert(node*head,int pos,int x){ //实现将一个数据插入到链表的指定位置pos处 node*p,*pre;pre=head;p=new node; //分配新结点 p->data=x;while(--pos){ //将pre指针定位到pos位置的前面 pre=pre->next;}p->next=pre->next; //先将pre的next赋值给p ,将pre所指结点后面所有的结点连接到p所指的结点 pre->next=p; //将p所指的结点链接到pre所指结点后面。
}
int search(node*head,int x){ //实现在链表中查找数据域等于x的结点的个数 int count=0; //计数器,初始化为零 node*p=head->next;while(p!=NULL){if(p->data==x){ //找到一个结点,计数器加一 count++;}p=p->next; //p往后挪一个位置 }return count; //返回查找结果 }void del(node*head,int x){ //实现将链表所有数据域等于x的结点删除 node *pre,*p;pre=head; //pre指针始终指向被删除结点的前置结点 p=pre->next; //p指针为工作指针,用于遍历链表 while(p!=NULL){if(p->data ==x){ //如果是要被删除的结点 pre->next =p->next; delete(p); //要记得用过的内存还给操作系统 p=pre->next ; //p指针更新到pre指针的后面 } else { pre=p; //如果不是要删除的结点那么两个指针分别后移,这一步该为pre=pre->next; p=p->next ; } }
} int main()
{int arr[7]={5,4,7,3,3,9,0}; //这个是例子。 node*L=creatlist(arr,7),*p;insert(L,2,12);del(L,3);p=L->next;while(p!=NULL){printf("%d ",p->data);p=p->next; }}
第八章:类和对象的特性
课后习题:计算长方体
#include <iostream>
#include <iomanip>
using namespace std;
class Chang
{public://~Chang();void TI(){cout << a * b * c;}void getTi(){cin >> a >> b >> c;}
private:int a;int b;int c;
};
int main(){Chang n;n.getTi();n.TI();return 0;
}
效果如下
C++课后习题(一)相关推荐
- 人工智能及其应用(第5版).蔡自兴-1-5章课后习题。【部分无答案】
本科-人工智能复习题 貌似是重点的: 1.人工智能及其应用(第5版).蔡自兴-1章课后习题.[暂时无答案] 2.人工智能及其应用(第5版).蔡自兴-2章课后习题.[部分参考答案] 3.人工智能及其应用 ...
- 整理对应_JSP第二版课后习题答案【侵权联系我删除】
JSP第二版课后习题下载:https://download.csdn.net/download/weixin_42859280/11265785 JSP第二版课后习题答案下载:https://down ...
- 计算机计组成原理课后,计算机组成原理课后习题课(0001).doc
计算机组成原理课后习题课(0001).doc (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 1.什么是指令周期?什么是机器周期? ...
- 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...
唐朔飞<计算机组成原理>(第2版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] 第一部分 名校考研真题 2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业 ...
- java基础入门课后习题_《Java基础入门》课后习题及答案
<Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...
- 线性代数同济第六版_线性代数考试内容与课后习题
2021 线性代数 复习要点+课后习题 重要链接 唐老师告诉大家7月份前我们怎么做 高数第十二章考试内容与课后习题(内有高数第一到十一章的链接) 一.复习要点与课后习题 <线性代数>同 ...
- python语言程序设计2019版第二章课后答案-python语言程序设计基础(嵩天)第二章课后习题...
**第二学期第一周学习总结 一. 本周学习内容总结 一维数组,了解了一维数组的定义(定义一个数组,需要明确数组变量名,数组元素的类型和数组大小,即数组中元素的数量) 一维数组定义的一般形式为:类型名, ...
- python语言程序设计2019版第二章课后答案-《Python语言程序设计》 —2.7 课后习题...
2.7 课后习题 1. 是指在程序运行过程中值可以发生改变的量. 2. 已知s="Python语言程序设计",则print(s[2:4])的输出结果为 ,print(s[- ...
- python快速编程入门课后简答题答案-编程python入门 编程python入门课后习题
编程python入门 编程python入门课后习题 米粒妈咪课堂小编整理了填空.选择.判断等一些课后习题答案,供大家参考学习. 第一章 一.填空题 Python是一种面向对象的高级语言. Python ...
- 第四章课后习题及答案
第四章课后习题答案 转载于:https://www.cnblogs.com/hhdn/archive/2007/05/13/744537.html
最新文章
- 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储
- 网络推广网站总结降低网站跳出率的技巧有哪些?
- Java设计模式-工厂模式(2)工厂方法模式
- java通过对.class文件字节码加密,不被轻易反编译出源代码,分析及其实现。
- delimiter在mysql中的作用_细细研究MySql中delimiter起到的作用_MySQL
- 【BZOJ3609】人人尽说江南好,博弈
- idea swing 插件_【分享】我的idea配置
- 人脸方向学习(十四):Face Anti-Spoofing-人脸活体检测-双目红外活体检测解读
- kalilinux装到u盘上的弊端_暗黑系统安装盘高达14G!kali linux在它面前顿然失色
- C# 图片exif信息
- 翻转数组,将数组倒序输出
- python爬取新浪微博大V的所有微博内容
- Unity—火焰特效制作
- 2023届深信服C++A卷笔试
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.5 层次结构模型...
- java工作空间报错,java更改工作空间后报错
- golang设计模式——策略模式
- 怎么拿到属于自己的那份心仪的offer
- 在虚拟磁盘中安装Windows Server 2016
- LeetCode俄罗斯套娃信封问题
热门文章
- 北京积分落户2021年新政策细则详解
- 计算机网络课程设计性能优化方案,计算机网络课程设计方案(华北电力大学科技学院).doc...
- 马宁伟-20年工作经验谈-3-十年磨一剑
- 软件过程与管理:configuration management
- L2-040 哲哲打游戏 (25 分)(分析题目意思,读懂题)
- 零售ERP开发(一)
- 机器人教练SWOT分析_全球工业机器人市场四大家族SWOT分析
- linux学习34-运维自动化之ANSIBLE
- 程序开过多线程,导致hadoop作业无法运行成功——Call to hadoop1:9000 failed on lo cal exception: java.io.IOException: Coul
- js下载get请求返回的文件流(请求头携带token)