第 二 章 C++简单程序设计
2-10 执行完下列语句后,a、b、c三个变量的值为多少? a = 30; b = a++; c = ++a;
解:
a:32 ; b:30 ; c:32;
2-13 写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while语句完成同样的循环。 解: for循环:
for (int n = 100; n <= 200; n += 2); while循环: int x = 100; while (n <= 200) n += 2;
do…while循环: int n = 100; do {
n += 2;
} while(n <= 200);
2-17 修改下面这个程序中的错误,改正后它的运行结果是什么? #include
i = 10; /* 给i赋值 j = 20; /* 给j赋值 */
cout << \输出结果 */ return 0; } 解: 改正:
#include
i = 10; // 给i赋值 j = 20; /* 给j赋值 */
cout << \输出结果 */ return 0; }
程序运行输出:
i + j = 30
2-18 编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。 解: 源程序:
#include
cout << \请输入一个数字:\cin >> i;
cout << \您输入一个数字是\return 0; }
程序运行输出: 请输入一个数字:5
您输入一个数字是5
2-20 打印ASCII码为32~127的字符。 解:
#include
{
for (int i = 32; i<128; i++) cout << (char) i; return 0; }
程序运行输出:
!\,./0123456789:;<>?@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\\]^'abcdefghijklmnopqrstuvwxyz<|>~s
2-21 运行下面的程序,观察其输出,与你的设想是否相同? #include
unsigned int x; unsigned int y = 100; unsigned int z = 50; x= y - z;
cout << \x = z - y;
cout << \return 0; }
解:
程序运行输出:
Difference is: 50
Now difference is: 4294967246
注意,第二行的输出并非 -50,注意x、y、z的数据类型。 2-22 运行下面的程序,观察其输出,体会i++与++i的差别。 #include
int myAge = 39; // initialize two integers int yourAge = 39;
cout << \cout << \myAge++; // postfix increment ++yourAge; // prefix increment cout << \
cout << \cout << \cout << \
cout << \cout << \cout << \
cout << \cout << \return 0; }
解:
程序运行输出: I am 39 years old You are 39 years old One year passes I am 40 years old You are 40 years old Another year passes I am 40 years old You are 41 years old Let's print it again I am 41 years old You are 41 years old
2-28 编写一个完整的程序,实现功能:向用户提问\现在正在下雨吗?\,提示用户输入Y或N。若输入为Y,显示\现在正在下雨。\; 若输入为N,显示\现在没有下雨。\;否则继续提问\现在正在下雨吗?\解:
源程序:
#include
void main() {
char flag; while(1) {
cout << \现在正在下雨吗?(Yes or No):\cin >> flag;
if ( toupper(flag) == 'Y') {
cout << \现在正在下雨。\break; }
if ( toupper(flag) == 'N') {
cout << \现在没有下雨。\break; } } }
程序运行输出:
现在正在下雨吗?(Yes or No):x 现在正在下雨吗?(Yes or No):l 现在正在下雨吗?(Yes or No):q 现在正在下雨吗?(Yes or No):n 现在没有下雨。
或:
现在正在下雨吗?(Yes or No):y
现在正在下雨。
2-29 编写一个完整的程序,运行时向用户提问\你考试考了多少分?(后判断其等级,显示出来。规则如下: 解:
#include
int i,score;
cout << \你考试考了多少分?(0~100):\cin >> score;
if (score>100 || score<0)
cout << \分数值必须在0到100之间!\else {
i = score/10; switch (i) {
0~100)\,接收输入case 10:
case 9:
cout << \你的成绩为优!\break; case 8:
cout << \你的成绩为良!\break; case 7: case 6:
cout << \你的成绩为中!\break; default:
cout << \你的成绩为差!\} } }
程序运行输出:
你考试考了多少分?(0~100):85 你的成绩为良!
2-31 用穷举法找出1~100间的质数,显示出来。分别使用while,do-while,for循环语句实现。
解:
源程序:
使用while循环语句: #include
int i,j,k,flag; i = 2;
while(i <= 100) { flag = 1; k = sqrt(i); j = 2;
while (j <= k) {
if(i%j == 0) { flag = 0; break; } j++; }