C++程序设计教程--读书笔记 第二章 基本编程语句

第二章
 
一、知识点
1、switch括号中的表达式只能是整型、字符型或枚举型表达式。(P51)
 
2、“case 值: ”即标号,标号是不能重复的名字,所以每一个case常量表达式的值必须互不相同。例如:(P52)
case 'A' : cout << "this is A\n";
case 65: cout << "this is 65\n";   // 错:’A‘等于ASCII 码的65
 
3、do-while 循环存在结构上的一些问题容易引起错误,例如:
int sum = 0;
do{
     int i = 1;
     sum += i;
     i++;
}while(i <= 100);  // 错误:i 没有定义
程序员的惯性思维是已经定义i 在前,但是由于do-while 结构,使得i 的定义必须在 do-while 的外部。(P 59)
 
4、判断素数的方法一:(P64)
一个数,如果有因子的话,那么在它的平方根数以内就应该有,否则就没有因子。
证明:
假定某个整数 m 不是素数,则一定可以表示成两个因子的积:
m = i * j  假定 i <= j
则 i * i <= i * j <= j * j
则 i * i <= m <= j * j
则 i <= m的平方根 <= j
 
5、流的格式操作,如对齐、宽度定制、精度规定、数制等显示形式亦可直接以输出流状态的方式操作之。(P66)

C++程序设计教程--读书笔记 第二章 基本编程语句

C++程序设计教程--读书笔记 第二章 基本编程语句

6、有参数的三个常用的流状态:(P67)

C++程序设计教程--读书笔记 第二章 基本编程语句

这些流状态是以cout捆绑调用它们的形式设置的,不能与流出符<< 连用。
特别注意width(n)为一次性操作,即第二次显示时将不再有效。默认为width(0),表示仅显示数值。例如:

C++程序设计教程--读书笔记 第二章 基本编程语句

即输出数值23可以规定其长度,如果数值本身的长度(23的长度为2)不到该设置长度(5),则可以在前面补加一些符号,这些符号由fill('X')设定,默认时为空,即fill(' ')。输出的两个23中,只有前面那个受宽度格式控制,长度为5,而后面那个则不受长度控制。
 
7、还有另一种与流出符<<连用的设置方式,但在使用时,要包含另一个头文件iomanip。(P67)
setw(int)
setfill(char)
setprecision(int)
例如:

C++程序设计教程--读书笔记 第二章 基本编程语句

8、文件的打开格式:(P69)
ifstream fin(filename, openmode = ios::in);
ofstrean fout(filename, openmode = ios::out);
例如:
ifstream in("a.in");
ofstream out("a.out");
 
9、筛法判断素数:(P70)
#include <iostream>
#include <vector>
#include <fstream>
 
using namespace std;
 
int main(){
     vector <int> prime(10000, 1);
     for(int i = 2; i < 100; i++)       // 构造素数集合
          if(prime[i])
               for(int j = i; i*j < 10000; ++j)
                    prime[i*j] = 0;
     ifstream in("a.txt");
     for(int a; in >> a && a > 1 && a < 10000; )   // 判断素数
          cout << a << " is " << (prime[a] ? "":"not ") << " a prime.\n";
}
     程序中,先将10000个向量元素都赋值1,凡是该下标的元素为1的,则为素数。在此基础上,将不是素数的数筛掉。
 
10、break语句只是跳出当前循环。要跳出多重循环则要借助于每重循环中的额外条件判断或者是goto语句来完成。
continue 语句则是用在循环语句中,作为结束本次循环,准备进入下一次循环的条件测试。
 
11、流的默认输出是6位。

转载于:https://www.cnblogs.com/lydf-2012/archive/2012/05/01/2477642.html