C++语言程序设计课后答案(1)
第二章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
void main()
int i
int j;
i = 10; /* 给i赋值
j = 20; /* 给j赋值*/
cout << "i + j = << i + j; /* 输出结果*/ return 0;
utan}
解:
改正:
#include
int main()
{
int i;
int j;
i = 10; // 给i赋值
j = 20; /* 给j赋值*/
cout << "i + j = " << i + j; /* 输出结果*/ return 0;
}
程序运行输出:
i + j = 30
2-18 编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。解:
源程序:
#include
int main()
{
int i;
cout << "请输入一个数字:";
cin >> i;
cout << "您输入一个数字是" << i << endl;
return 0;
}
程序运行输出:
2-20 打印ASCII码为32~127的字符。
#include
int main()
{
for (int i = 32; i<128; i++)
cout << (char) i;
return 0;
}
程序运行输出:
!"#$%G'()*+,./0123456789:;<>?@ABCDE
FGHIJKLMNOP_QRSTUVWXYZ[\]^'abcdefg
hijklmnopqrstuvwxyz<|>~s
2-21 运行下面的程序,观察其输出,与
你的设想是否相同?
#include
int main()
{
unsigned int x;
unsigned int y = 100;
unsigned int z = 50;
x= y - z;
cout << "Difference is: " << x;
x = z - y;
cout << "\nNow difference is: " << x
<<endl;< bdsfid="146" p=""></endl;<>
return 0;
}
程序运行输出:
Difference is: 50
Now difference is: 4294967246
注意,第二行的输出并非-50,注意x、
y、z的数据类型。
2-22 运行下面的程序,观察其输出,体
会i++与++i的差别。
#include
int main()
{
int myAge = 39; // initialize two integers
int yourAge = 39;
cout << "I am: " << myAge << " y ears
old.\n";
cout << "Y ou are: " << y ourAge << " y ears
comparewithold\n";
myAge++; // postfix increment
++yourAge; // prefix increment
cout << "One y \n";
cout << "I am: " << myAge << " y ears
old.\n";
cout << "Y ou are: " << yourAge << " y ears
old\n";
cout << "Another year pass\n";
cout << "I am: " << myAge++ << " y ears
old.\n";
cout << "Y ou are: " << ++yourAge << "
years old\n";
cout << "Let's print it again.\n";
cout << "I am: " << myAge << " y ears
old.\n";
cout << "Y ou are: " << yourAge << " y ears
old\n";
return 0;
}
解:
程序运行输出:
I am 39 y ears old
You are 39 y ears old
One y ear pass
I am 40 y ears old
You are 40 y ears old
Another year pass
I am 40 y ears old
You are 41 y ears old
puppet英语怎么读Let's print it again
I am 41 y ears old
You are 41 y ears old
2-28 编写一个完整的程序,实现功能:
向用户提问"现在正在下雨吗?",提示
用户输入Y或N。若输入为Y,显示"现
在正在下雨。";若输入为N,显示"现
在没有下雨。";否则继续提问"现在正
在下雨吗?"
源程序:
#include
#include
void main()
{
char flag;
while(1)
{
nice boatcout << "现在正在下雨吗?(Y es or No):"; cin >> flag;
if ( toupper(flag) == 'Y')
{
cout << "现在正在下雨。";
break;
}
if ( toupper(flag) == 'N')
rosamund pike
{
cout << "现在没有下雨。";
break;
}
}
}
程序运行输出:
现在正在下雨吗?(Y es or No):x
现在正在下雨吗?(Y es or No):l
现在正在下雨吗?(Y es or No):q
现在正在下雨吗?(Y es or No):n
现在没有下雨。
或:
现在正在下雨吗?(Y es or No):yplane怎么读
现在正在下雨。
2-29 编写一个完整的程序,运行时向用户提问"你考试考了多少分?(0~100)",接收输入后判断其等级,显示出来。规则如下:
解:
#include
void main()
{
int i,score;
cout << "你考试考了多少分?(0~100):"; cin >> score;
if (score>100 || score<0)
cout << "分数值必须在0到100之间!"; el
{
i = score/10;
switch (i)
{
ca 10:
ca 9:
cout << "你的成绩为优!";
break;
ca 8:
cout << "你的成绩为良!";
break;
ca 7: ca 6:
cout << "你的成绩为中!";
break;
default:
cout << "你的成绩为差!";
}
}
}
程序运行输出:
你考试考了多少分?(0~100):85
你的成绩为良!
2-31 用穷举法找出1~100间的质数,显
示出来。分别使用while,do-while,for
循环语句实现。
解:
源程序:
使用while循环语句:
#include
#include
void main()
{
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++;
}
if (flag)
cout << i << "是质数." << endl;
i++;
}
}
使用do…while循环语句:
#include 怎么缓解工作压力
#include
void main()
{
int i,j,k,flag;
i = 2;
阿黛尔007主题曲
do{
flag = 1;arrived
k = sqrt(i);
j = 2;
do{
if(i%j == 0)
{
flag = 0;
break;
}
j++;
}while (j <= k);
if (flag)
cout << i << "是质数." << endl;
i++;
}while(i <= 100);
}
使用for循环语句:
#include
#include
void main()
{
int i,j,k,flag;
for(i = 2; i <= 100; i++)
{
flag = 1;
k = sqrt(i);
for (j = 2; j <= k; j++)
{
if(i%j == 0)
{
flag = 0;
break;
}
}
if (flag)
cout << i << "是质数." << endl;
}
}
程序运行输出:
2是质数.
3是质数.
5是质数.
7是质数.
11是质数.
13是质数.
17是质数.
19是质数.
23是质数.
29是质数.
31是质数.
37是质数.
41是质数.
43是质数.
47是质数.
53是质数.
59是质数.
61是质数.
67是质数.
71是质数.
73是质数.
79是质数.
83是质数.
89是质数.
97是质数.
2-33 定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。
解:
源程序见"实验指导"部分实验二
electric是什么意思2-34 在程序中定义一个整型变量,赋以1~100的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while、do…while 语句实现循环。
解:
//使用while语句
#include
void main() {
int n = 18;
int m = 0;
while(m != n)
{
cout << "请猜这个数的值为多少?(0~~100):";