程序设计语言C++基础习题.docx

上传人:b****0 文档编号:9752917 上传时间:2023-05-21 格式:DOCX 页数:16 大小:106.47KB
下载 相关 举报
程序设计语言C++基础习题.docx_第1页
第1页 / 共16页
程序设计语言C++基础习题.docx_第2页
第2页 / 共16页
程序设计语言C++基础习题.docx_第3页
第3页 / 共16页
程序设计语言C++基础习题.docx_第4页
第4页 / 共16页
程序设计语言C++基础习题.docx_第5页
第5页 / 共16页
程序设计语言C++基础习题.docx_第6页
第6页 / 共16页
程序设计语言C++基础习题.docx_第7页
第7页 / 共16页
程序设计语言C++基础习题.docx_第8页
第8页 / 共16页
程序设计语言C++基础习题.docx_第9页
第9页 / 共16页
程序设计语言C++基础习题.docx_第10页
第10页 / 共16页
程序设计语言C++基础习题.docx_第11页
第11页 / 共16页
程序设计语言C++基础习题.docx_第12页
第12页 / 共16页
程序设计语言C++基础习题.docx_第13页
第13页 / 共16页
程序设计语言C++基础习题.docx_第14页
第14页 / 共16页
程序设计语言C++基础习题.docx_第15页
第15页 / 共16页
程序设计语言C++基础习题.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

程序设计语言C++基础习题.docx

《程序设计语言C++基础习题.docx》由会员分享,可在线阅读,更多相关《程序设计语言C++基础习题.docx(16页珍藏版)》请在冰点文库上搜索。

程序设计语言C++基础习题.docx

程序设计语言C++基础习题

C++基础

程序设计举例

董国雄

2009年1月

目  录

第1章面向过程的程序设计3

§1.1面向过程的程序设计(控制台程序)3

§1.1.1HelloWord!

3

§1.1.2cin、cout及简单格式控。

3

§1.1.3字符变换、数字映射4

§1.1.4整数和构成整数的字符之区别4

§1.1.5个税计算——数量的分段处理4

§1.1.6“水仙花”数及其它——枚举验证5

§1.1.7用字母输出图形——循环语句5

§1.1.8交换变量值——函数参数传递方式5

§1.1.9数值近似计算——精度缺省值参6

§1.1.10数组作为函数的参数——通用数组处理函数6

§1.1.11字符数组——NULL结尾的字符串7

§1.1.12数组的遍历与扫描——成分分拆、重复计数7

§1.1.13日期时间处理——貌似简单,实则复杂8

§1.1.14递归——理解有点困难8

§1.1.15Josephus问题——规模不确定,new和delete9

§1.1.16哥德巴赫猜想——构造性验证9

§1.1.17矩阵求逆——从文件读入数据10

§1.1.18经典问题——面向过程的程序综合10

§1.2面向对象的程序设计(控制台应用程序)15

§1.3图形界面程序(GUI程序)15

第2章面向对象的程序设计16

第3章样式名称及使用17

§3.1样式名称17

§3.1.1标题名称17

§3.1.1.1一级标题17

§3.1.1.2二级标题17

§3.1.1.3三级标题17

§3.1.1.4四级标题17

§3.1.2正文名称17

§3.1.3页眉页脚17

§3.2页面设置18

§3.3样式创建18

§3.4样式使用18

§3.4.1文档模版18

§3.4.2文档目录18

第4章Word使用的几个问题19

§4.1修订和审阅19

§4.2样式创建与保护19

§4.2.1样式创建和修改19

§4.2.2样式保护19

§4.3无用样式删除19

第1章面向过程的程序设计

§1.1面向过程的程序设计(控制台程序)

§1.1.1HelloWord!

◆问题

✧编制程序,在屏幕上输出HelloWorld!

Ø知识

✓最简单程序的结构。

✓库函数的使用。

✓命名空间。

✓C++的输入输出方法(流对象、库函数)。

✓源程序文件的缺省扩展名。

§1.1.2cin、cout及简单格式控。

◆问题

✧输入圆半径,计算圆的面积和周长并输出。

Ø知识

✓输入流的使用。

✓输出流的格式化。

✓常变量的使用。

✓体会IPO。

§1.1.3字符变换、数字映射

◆问题

✧求浮点数的整数和小数部分。

✧输入一个整数,将其变换/影射到0到99之间。

✧测试异或运算的不变性(ObjA^ObjB^ObjB==ObjA),任给一个数字字符,找出它后面的第n个数字字符(将数字字符看作围成一圈)。

✧简单的加密解密:

将一字符串用另一字符串作异或运算;将一字符串中的字母和数字用其后第n个字母和数字替换;。

Ø知识

✓强制类型转换。

✓相关运算符和运算的使用。

✓ASCII码,字母表

✓判断字符性质(ASCII码或库函数)

§1.1.4整数和构成整数的字符之区别

◆问题

✧输入一个正整数,求出其是几位数?

求出其各位上的字符是什么?

将其各个位上的字符顺序反转后,得到的整数是多少?

Ø知识

✓数字和字符的区别。

✓处理数字位的基本方法。

§1.1.5个税计算——数量的分段处理

◆问题

✧输入个人应税收入,计算并输出应缴个人所得税。

§1.1.6“水仙花”数及其它——枚举验证

◆问题

✧求出所有的水仙花数。

即各位数字的立方和等于数字本身的三位数。

✧求出正整数n的所有因子。

✧求两正整数最小公倍数,最大公约数。

✧两个乒乓球队进行比赛,各出3人。

甲队为A、B、C,乙队为X、Y、Z。

对阵已抽签决定,已知A不和X赛,C不和X、Z赛,试求对阵名单。

Ø知识

✓枚举、验证、排除的方法。

§1.1.7用字母输出图形——循环语句

◆问题

✧用“*”在屏幕上画出菱形。

Ø知识

✓明确问题要求。

✓循环的不同表达。

✓菱形大小和绘制字符作为参数(全局参数)。

§1.1.8交换变量值——函数参数传递方式

◆问题

✧写一函数,交换两个整数(浮点数、字符)变量的值。

Ø知识

✓函数调用及参数传递机制。

✓参数传递方式:

值传递、地址传递。

✓C++参数传递形式:

值、指针、引用。

✓函数如何获得其处理信息。

§1.1.9数值近似计算——缺省值参

◆问题

✧编写函数,用公式1+x^1/1!

+…+x^n/n!

求e^x,误差精度通过缺省值参传入。

✧用迭代公式Xn+1=(Xn+C/Xn)/2求C的平方根。

Ø知识

✓C++的缺省参数。

✓计算机字长对大数计算的影响。

✓舍入误差的累积效应。

✓依赖于误差的迭代终止控制。

§1.1.10数组作为函数的参数——通用数组处理函数

◆问题

编制函数并测试:

✧求一维数组中的最大最小元素,返回值、下标、指针。

✧对一维数组排序。

✧用初等变换将矩阵化为特殊矩阵。

✧矩阵的各种运算。

Ø知识

✓将数组传递到函数中进行处理

✓数组处理的常规方法

§1.1.11字符数组——NULL结尾的字符串

◆问题

编制函数并测试:

✧求字符串的长度。

✧比较字符串的大小。

✧将两个字符串连接构成一个字符串。

✧统计字符串中的单词数量(假定单词以空格分开)。

Ø知识

✓字符串处理的超界问题

✓C++中字符串处理的底层方法

✓C++中字符串处理的库函数

§1.1.12数组的遍历与扫描——成分分拆、重复计数

◆问题

✧输入一个正整数,表示人民币元的数量,用最少张数的纸币表示,求各面值的数量。

✧将小写的人民币表示转换成大写人民币表示,如¥23056.07转换后为:

贰万叁仟零百伍拾陆元零角柒分或

元零柒分。

✧输入一批正整数,求出其中互不重复的整数,每个整数重复出现的次数。

✧输入一段英文文本,每行不超过100个字符,求其中的单词、单词数量和每个单词的重复次数。

Ø知识

✓数组元素的个数不确定,保守假定。

✓记忆的基本方法,扫描和遍历。

✓需要动态处理数据结构的能力。

✓在结构重的查找效率是重要的,如何提高?

§1.1.13日期时间处理——貌似简单,实则复杂

◆问题

✧使用以24小时计时,输入两个时间(时分秒),求两时间间隔的秒数。

✧输入1~365中的一个数,求它是某一年的几月几日。

✧输入年月日,求当日是星期几。

✧输入两个日期(年月日),求间隔的天数。

✧在屏幕上显示某年某月的日历(一行一周),进而构造万年历。

Ø知识

✓元年元月元日为星期一。

✓计算机中如何处理日期和时间?

✓C++中关于日期和时间的库函数有那些功能?

§1.1.14递归——理解有点困难

◆问题

✧观察对函数

voidCallOrder(intn){if(n>0){cout<

voidCallOrder(intn){if(n>0){CallOrder(n/10);cout<

的调用结果,理解调用流程。

✧编制字符串是否为“回文”的递归函数。

✧编制比较两个字符串大小的非递归和递归函数。

✧编制一个二分查找的非递归和递归函数。

✧Hanoi塔问题,统计递归的调用次数。

Ø知识

✓非递归算法和递归算法可以互相转化。

✓递归的实质是栈结构。

✓递归在某些场合似乎成为唯一选择(如Hanoi塔)。

✓静态变量统计函数调用次数。

✓递归的调用流程大多数时候比较难说明。

§1.1.15Josephus问题——规模不确定,new和delete

◆问题

✧有m个人围成一圈,从1到n循环报数,报到n的人退出,最后剩下的人是哪位?

(封装成函数,单独的头文件和源组织)

Ø知识

✓静态数据方法和动态数据方法的优缺点。

✓new和delete的使用。

§1.1.16哥德巴赫猜想——构造性验证

◆问题

✧验证一个不小于6的偶数可以表示成两个素数之和。

(抽象出多次调用的函数,单独的头文件和源文件组织)

Ø知识

✓编译预处理指令。

✓四色定理的证明,归结为一个有限验证。

✓几何定理的机器证明,将证明转化为代数问题(通常是多项式方程组的求解问题)(吴方法)。

与枚举有千壤之别。

§1.1.17矩阵求逆——从文件读入数据

◆问题

✧从文件中读入一个矩阵,求其逆矩阵并输出到另一文件。

✧从文件中读入线性方程组,用Gauss消元法求解并输出到另一文件。

Ø知识

✓文件是大量数据输入输出的有力手段。

✓动态二维数据的申请和使用。

✓命令行参的使用

§1.1.18经典问题——面向过程的程序综合

◆问题

✧八皇后问题。

在8*8的棋盘上,放置8个皇后,使她们不能位于同一行、同一列、同一对角线上,请给出一种摆放方法或报告无解。

✧骑士巡游问题。

在N*N棋盘上,一位骑士从某位置出发,按照中国象棋中“马”的走法(日字对角),欲走遍棋盘上的所有位置各一次,请给出路线图或报告无解。

Ø知识

✓所述问题直接给出了模型,需设计算法并实现算法。

✓确定问题的解空间,通常是一棵树(子集树/排列树)。

✓使用回溯方法,活动节点、扩展节点、死节点。

✓单个解、所有解。

✓一边构造解答树,一边搜索,同时抛弃已搜索的树枝。

✓各类经典算法:

分治法、贪心法、回溯法、分支限界法、动态规划等

(一)可行解示例

(二)解答树示例

(三)解的数据结构

合适的表示解空间(solutionspace)是非常重要的,往往决定者算法的实现难易程度。

n后问题中,解可用数组x[1:

n]表示,x[k]表示第k行的皇后放在x[k]列。

算法的基本思路是从部分可行解{x[1],x[2],……,x[k]}出发,搜索x[k+1],直至找到一个可行或全部可行解。

骑士巡游问题的解是一个二元组(r,c)构成有n*n个元素的一维数组,第k个元素表示第k步落在r行c列。

所有二元组恰好就是棋盘上的各个位置,可用二维数组表示,将每个位置在解数组中的序号保存在对应的二维数组元素中,从而保存了解的所有性质。

(四)递归的观点

已求得部分可行解{x[1],x[2],……,x[k]}后,求解的剩余部分是一个与原问题一样的规模较小的问题,差别仅是解的约束需要考虑已找到的部分解。

第2章面向对象的程序设计

§2.1面向对象的程序设计(控制台应用程序)

§2.1.1简单的学生成绩管理问题

◆问题

✧今需管理若干名学生的成绩信息,个体信息包含:

学号,姓名,分析、代数、几何三门课的成绩。

输入人数和每个学生的所有数据,计算每个人的平均成绩,按平均成绩又高到低的顺序输出所有信息。

Ø知识

✓分析和设计,确定问题当中的类,数据处理方法。

✓实现分析过程得到的类。

✓综合利用已有的方法和手段(动态申请、排序)。

✓测试程序是否满足要求。

✓程序的多文件组织(重用的观点)。

✓对象方法的数据处理范围和对对象集合处理的方法的数据处理范围的区别(各人自扫门前雪)。

§2.2图形界面程序(GUI程序)

第3章样式名称及使用

由于文档之间的拷贝和粘贴,重名样式可能被覆盖,样式名可能被修改,造成排版困难。

因此,构造一套自己的样式名,以便保持格式。

同时,目录中还可以包含内置的标题和大纲级别,使目录的生成更加灵活。

§3.1样式名称

§3.1.1标题名称

§3.1.1.1一级标题

“D标题1”。

大纲级别1,自动编目为第x章,段前换页,居中,宋体二号,粗体。

基于“正文”,无基于样式,后续段落“D正文”。

§3.1.1.2二级标题

“D标题2”。

大纲级别2,自动编目为§x.x,左对齐,宋体三号,粗体。

基于“正文”,无基于样式,后续段落“D正文”。

§3.1.1.3三级标题

“D标题3”。

大纲级别3,自动编目为§x.x.x,左对齐,宋体四号,粗体。

基于“正文”,无基于样式,后续段落“D正文”。

§3.1.1.4四级标题

“D标题4”。

大纲级别4,自动编目为§x.x.x.x,左对齐,宋体小四号,粗体首行缩进2字符。

无基于样式,后续段落“D正文”。

§3.1.2正文名称

“D正文”。

宋体小四,首行缩进2字符,1.5倍行距。

无基于样式,后续段落“D正文”。

§3.1.3页眉页脚

“D页眉”、“D页脚”,宋体小五,下边框、上边框,居中。

§3.2页面设置

Top=3厘米,Bottom=2.54厘米,Left=Right=2.54厘米。

页眉边距=2厘米,页脚边距=1.75厘米,首页页眉页脚与其它页不同。

§3.3样式创建

从空白文档开始,特别注意的是自动编目设置,一定要在同一编目体系下进行,可先命名设置好字体、段落、前后间空,再一次性自定义编目。

编目与标题之间用空格而不是制表符分割,使得编目较长时不会有问题。

§3.4样式使用

§3.4.1文档模版

将此文档作为模版,用格式名称或格式刷应用样式。

§3.4.2文档目录

目录中设置了显示4级大纲。

分别是“D标题1”、“D标题2”、“D标题3”、“D标题4”。

第4章Word使用的几个问题

§4.1修订和审阅

选中“工具|修订”,则所有更改的前后状态都被保存。

凡在“修订”模式下进行过更改的文档,可以用“工具|自定义|审阅”激活审阅工具栏,在其上选择显示状态,接受或拒绝单个修订或所有修订。

修订历史纪录不但使文档较大,也可能会引起文档内部问题,最终文档版本最好用上述法消除修订历史。

§4.2样式创建与保护

§4.2.1样式创建和修改

创建样式可从“工具|样式和格式”或从“格式工具栏”上的快捷按钮进入。

在样式中最好不要选中“添加到模版”和“自动更新”。

添加到模版(Normal.dot)将影响到以后文档的创建。

自建样式最好不要基于已有样式,应为基于样式的改变会引发倚赖其的样式改变。

慎用“样式和格式”任务栏中的“更新以匹配选择”,它会用当前选中的段落的格式替换进行操作的样式,造成样式的破坏。

§4.2.2样式保护

进入“工具|文档保护”可以强制设置样式、文档保护,启用禁用保护需要密码,此保护在对文档进行大修改时,不宜使用。

已可以在“格式工具栏”点击进入。

§4.3无用样式删除

在“格式工具栏”点击选择“XML结构|模版和加载项|模版|管理器”,在其中可以删除无用的样式。

当从其它文档复制粘贴内容后,可能会引起原文档中的样式名的改变,删除部分冗余的样式,可以提高文档的可用性。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2