习题答案(1~10)
Posted PaQiuQiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题答案(1~10)相关的知识,希望对你有一定的参考价值。
文章目录
练习5.1
什么是空语句?什么时候会用到空语句?
只含义一个单独的分号的语句是空语句。如:
;
如果在程序的某个地方,语法上需要一条语句但是逻辑上不需要,此时应该使用空语句。
while (cin >> s && s != sought)
;
练习5.2
什么是块?什么时候会用到块?
用花括号括起来的语句和声明的序列就是块。
// ...
如果在程序的某个地方,语法上需要一条语句,而逻辑上需要多条语句,此时应该使用块
while (val <= 10)
sum += val;
++val;
练习5.3
使用逗号运算符重写1.4.1节的 while 循环,使它不再需要块,观察改写之后的代码可读性提高了还是降低了。
while (val <= 10)
sum += val, ++val;
代码的可读性反而降低了。
练习5.4
说明下列例子的含义,如果存在问题,试着修改它。
(a) while (string::iterator iter != s.end()) /* . . . */
(b) while (bool status = find(word)) /* . . . */
if (!status) /* . . . */
- (a) 这个循环试图用迭代器遍历string,但是变量的定义应该放在循环的外面,目前每次循环都会重新定义一个变量,明显是错误的。
- (b) 这个循环的 while 和 if 是两个独立的语句,if 语句中无法访问 status 变量,正确的做法是应该将 if 语句包含在 while 里面,
练习5.5
写一段自己的程序,使用if else 语句实现把数字转换为字母成绩的要求。
#include <iostream>
#include <vector>
#include <string>
using std::vector; using std::string; using std::cout; using std::endl; using std::cin;
int main()
vector<string> scores = "F", "D", "C", "B", "A", "A++" ;
for (int g; cin >> g;)
string letter;
if (g < 60)
letter = scores[0];
else
letter = scores[(g - 50) / 10];
if (g != 100)
letter += g % 10 > 7 ? "+" : g % 10 < 3 ? "-" : "";
cout << letter << endl;
return 0;
练习5.6
改写上一题的程序,使用条件运算符代替if else语句。
#include <iostream>
#include <vector>
#include <string>
using std::vector; using std::string; using std::cout; using std::endl; using std::cin;
int main()
vector<string> scores = "F", "D", "C", "B", "A", "A++" ;
int grade = 0;
while (cin >> grade)
string lettergrade = grade < 60 ? scores[0] : scores[(grade - 50) / 10];
lettergrade += (grade == 100 || grade < 60) ? "" : (grade % 10 > 7) ? "+" : (grade % 10 < 3) ? "-" : "";
cout << lettergrade << endl;
return 0;
练习5.7
改写下列代码段中的错误。
(a) if (ival1 != ival2)
ival1 = ival2
else
ival1 = ival2 = 0;
(b) if (ival < minval)
minval = ival;
occurs = 1;
(c) if (int ival = get_value())
cout << "ival = " << ival << endl;
if (!ival)
cout << "ival = 0\\n";
(d) if (ival = 0)
ival = get_value();
- (a)
ival1 = ival2
后面少了分号。 - (b) 应该用花括号括起来。
- ©
if (!ival)
应该改为else
。 - (d)
if (ival = 0)
应该改为if (ival == 0)
。
练习5.8
什么是“悬垂else”?C++语言是如何处理else子句的?
C++语言规定else与它最近的尚未匹配的if匹配。
练习5.9
编写一段程序,使用一系列if语句统计从cin读入的文本中有多少元音字母。
#include <iostream>
using std::cout; using std::endl; using std::cin;
int main()
unsigned aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;
char ch;
while (cin >> ch)
if (ch == 'a') ++aCnt;
else if (ch == 'e') ++eCnt;
else if (ch == 'i') ++iCnt;
else if (ch == 'o') ++oCnt;
else if (ch == 'u') ++uCnt;
cout << "Number of vowel a: \\t" << aCnt << '\\n'
<< "Number of vowel e: \\t" << eCnt << '\\n'
<< "Number of vowel i: \\t" << iCnt << '\\n'
<< "Number of vowel o: \\t" << oCnt << '\\n'
<< "Number of vowel u: \\t" << uCnt << endl;
return 0;
练习5.10
我们之前实现的统计元音字母的程序存在一个问题:如果元音字母以大写形式出现,不会被统计在内。编写一段程序,既统计元音字母的小写形式,也统计元音字母的大写形式,也就是说,新程序遇到’a’和’A’都应该递增 aCnt 的值,以此类推。
#include <iostream>
using std::cin; using std::cout; using std::endl;
int main()
unsigned aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;
char ch;
while (cin >> ch)
switch (ch)
case 'a':
case 'A':
++aCnt;
break;
case 'e':
case 'E':
++eCnt;
break;
case 'i':
case 'I':
++iCnt;
break;
case 'o':
case 'O':
++oCnt;
break;
case 'u':
case 'U':
++uCnt;
break;
cout << "Number of vowel a(A): \\t" << aCnt << '\\n'
<< "Number of vowel e(E): \\t" << eCnt << '\\n'
<< "Number of vowel i(I): \\t" << iCnt << '\\n'
<< "Number of vowel o(O): \\t" << oCnt << '\\n'
<< "Number of vowel u(U): \\t" << uCnt << endl;
return 0;
数据库系统概论第五版(笔记+习题答案)(全)
因学习数据库系统概论,将会对每一个章节进行一个整理,包括笔记和习题答案。
目录
前言
- 本篇文章学习参考书:《数据库系统概论》第5版 王珊 萨师煊编著
- 会持续更新直到更新完毕,更新范围为本书的本科生必读范围(1-11章)(如果没有超链接,表示还没有更新到)
- 作为初学者,初学我们最重要的是掌握其理论、思想,和语句,因为最重要的理论在其它数据库都是通用的,只是因为版本软件问题不一定能全部实现。
- 本人也是逐渐学习过程,如果笔记和课后习题答案有什么问题可以评论交流。
- 本文中,我将每一章的大体笔记范围写在章节内,同时在目录章节后面标注章节习题答案,请注意使用。(可以先做着试试在参考,同时有问题可以评论哦)
第 1 章 绪论
1.1 数据库系统概述
1.2 数据模型
1.3 数据库系统的结构
1.4 数据库系统的组成
第 1 章习题答案
第 2 章 关系数据库
2.1 关系数据结构及形式化定义
2.2 关系操作
2.3 关系的完整性
2.4 关系代数
2.5 关系演算(本章节不要求学习)
第 2 章习题答案
第 3 章 关系数据库标准语言SQL
3.1 SQL概述
3.2 学生—课程数据库
3.3 数据定义
3.4 数据查询
3.5 数据更新
3.6 空值的处理
3.7 视图
第 3 章习题答案
第 4 章 数据库安全性
4.1 数据库安全性概述
4.2 数据库安全性控制
4.3 视图机制
4.5 数据加密
4.6 其他安全性保护
第 4 章习题答案
第 5 章 数据库完整性
5.1 实体完整性
5.2 参照完整性
5.3 用户定义完整性
5.4 完整性约束命名字句
5.5 域中的完整性限制(本章节不要求学习)
5.5 断言
5.7 触发器
第 5 章习题答案
第 6 章 关系数据理论
6.1 问题的提出
6.2 规范化
6.3数据依赖的公理系统
6.4 模式的分解(本章节不要求学习)
第 6 章习题答案
第 7 章 数据库设计
7.1 数据库设计概述
7.2 需求分析
7.3 概念结构设计
7.4 逻辑结构设计
7.5 物理结构设计
7.6 数据库的实验和维护
第 7 章习题答案
第 7 章之后的章节,理论性较弱,更多的在于实战方面,还有就是相关性强的方面,有普及知识的,也有真正进入实战的,后续章节属于拓展性,学校教学要求也不高,更多自学,后续章节我将会把 8—11 章节的课后习题答案整理。
有需要的同学可以评论回复,我将会在前面整理完后更新。
以上是关于习题答案(1~10)的主要内容,如果未能解决你的问题,请参考以下文章
最详细数据结构(C语言版 第2版)课后习题答案全集 严蔚敏 等 编著