}
10.大多数C++程序都要包含头文件__________。
该文件中包含了所有输入/输出流操作所需的基本信息。
当使用带参数的操作时,程序中必须包含头文件__________。
三、编程题
1.编写一个程序,输入一个三位数,分别输出该数的百位、十位和个位。
2.编写一个程序打印出各种基本数据类型、几个你自己定义的复合数据类型的大小。
使用sizeof运算符。
【参考答案】
二、选择题
1.d
2.a
3.b
4.b
5.c
6.a
7.b
8.c
9.d
10.a
三、填空题
1.下划线
2.ASC
3.2
4.const
5.\
6.0
7.cout<8.typedefunsignedintUINT;
9.a+ba-ba-b
10.iomanip.hiostream.h
四、编程题
1.
#include
voidmain()
{
intnum,var1,var2,var3;
cout<<"请输入一个三位数:
"<cin>>num;
if(num>999||num<100)//用于检查输入数据的合法性
cout<<"您的输入有误!
"<else
{
var1=num/100;
var2=(num-var1*100)/10;
var3=num%10;
cout<<"百位数为:
"<<<"十位数为:
"<<<"个位数为:
"<}
}
2.
#include
#include
voidmain()
{
intarray[10];
enummonth{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};
char*p;
cout<<"Thesizeofcharis:
"<<<"Thesizeofintis:
"<<<"Thesizeofshortintis:
"<<<"Thesizeoflongintis:
"<<<"Thesizeoffloatis:
"<<<"Thesizeofdoubleis:
"<<<"Thesizeoflongdoubleis:
"<<<"Thesizeofsignedintis:
"<<<"Thesizeofunsignedintis:
"<<<"Thesizeofarrayis:
"<<<"Thesizeofmonthis:
"<<<"Thesizeofpis:
"<}
第3章C++程序的流程控制【习题】
一、 选择题
1. 在循环语句中使用break语句的作用是( )。
(a)结束本次循环 (b)结束该层循环 (c)结束所有循环 (d)结束程序执行
2. 对if后的括号中的表达式,要求i不为0的时候表达式为真,该表达式表示正确的为( )。
(a)i (b)!
i (c)i<>0 (d)i=0
3. 下列循环语句的执行次数是( )。
while(!
1)cout<<”ok!
”;
(a)0次 (b)1次 (c)2次 (d)无数次
4. 运行下列程序结果为( )。
#include
voidmain()
{
inti;
for(i=0;i<=10;i++){
if(i%2)cout<
elsecontinue;
}
}
(a)246810 (b)12345 (c)678910 (d)13579
二、 填空题
1. 结构化程序设计的三种基本结构是__________、__________、__________。
2. continue语句实现的作用是________________________________________。
3.若输入”china2008!
”,运行下列程序的输出结果为___________________________。
#include
#include
voidmain()
{
charc;
intletters=0,digits=0,others=0;
cout<<"Pleaseinputalinecharaters"< while((c=getchar())!
='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else
if(c>='0'&&c<='9')
digits++;
else
others++;
}
cout<<"letters:
"< <<"digits"< <<"others"<}
4.本程序完成1!
+2!
+……+18!
的计算,请将程序补充完整。
#include
#include
voidmain()
{
doublesum=0,fac=1;
for(inti=1;i<=18;i++)
{
___________①____________
____________②___________
}
cout<<"1!
+2!
+……+18!
="
<:
fixed)< <}
三、 编程题
1. 输入某学生成绩,若成绩在90-100输出"优秀",若成绩在80-89输出"良好",若成绩在70-79输出"中",若成绩在60-69输出”及格”,若成绩在0-59输出”不及格”。
2. 输入三人数,按从小到大的大顺序输出。
3. 在100~200中找出同时满足用3除余2,用5除余3和用7除余2的所有整数。
4. 求100~999中的。
所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。
例如,因为153=13+53+33,所以153为水仙花数。
5. 求1000之内的所有完数。
所谓完数是指一个数恰好等于它的所有因子之和。
例如,6=1+2+3,所以6为完数。
6. 编一程序显示如下图案:
*
***
*****
*******
*********
*******
*****
***
*
7. 编一程序显示如下图案:
A
ABC
ABCDE
ABCDEFG
8. 猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?
9. 编程序模拟剪刀,石头和纸游戏。
游戏规则为:
剪刀剪纸,石头砸剪刀,纸包石头.玩游戏者从键盘上输入S(表示剪刀)或R(表示石头)或P(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。
10. 编写程序输出菲波那切数列的前20项。
即前两项为1,以后每一项为前两项之和。
11. 打印九九乘法表。
【参考答案】
一、选择题
1.b
2.a
3.a
4.d
二、填空题
1.顺序结构、选择结构(分支结构)、循环结构
2.跳出本次循环。
3.
pleaseinputalinecharaters
letters:
5
digits:
4
others:
2
4.①fac*=i; ②sum+=fac;
三、编程题
1.
#include
voidmain()
{
doublegrade;
char*degree;
cout<<"请输入学生成绩:
";
cin>>grade;
if(grade>100||grade<0)
{
cout<<"您的输入有误!
"< return;
}
else
if(grade>=70)
if(grade<80)
degree="中";
elseif(grade<90)
degree="良好";
else
degree="优秀";
elseif(grade>=60)
degree="及格";
else
degree="不及格";
cout<<"分数:
"< <}
2.
#include
voidmain()
{
intnum1,num2,num3,num;
cout<<"请输入三个整数:
";
cin>>num1>>num2>>num3;
if(num1>num2)
{
num=num1;
num1=num2;
num2=num;
}
if(num1>num3)
{
num=num1;
num1=num3;
num3=num;
}
if(num2>num3)
{
num=num2;
num2=num3;
num3=num;
}
cout<<"三个数按从小到大输出为:
"< < < <}
3.
#include
voidmain()
{
cout<<"在100~200中同时满足用3除余2,用5除余3和用7除余2的整数为:
"< for(inti=100;i<=200;i++)
{
if(i%3==2&&i%5==3&&i%7==2)
cout<
}
}
4.
#include
#include
voidmain()
{
intx,y,z,sum;
cout<<"100~999中的水仙花数为:
"< for(inti=100;i<=999;i++)
{
x=i/100;
y=i%100/10;
z=i%10;
sum=pow(x,3)+pow(y,3)+pow(z,3);
if(i==sum)
cout<
}
}
5.
#include
voidmain()
{
intsum;
cout<<"1000之内的所有完数为:
"< for(inti=1;i<=1000;i++)
{
sum=0;
for(intj=1;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(i==sum)
cout<
}
}
6.
#include
voidmain()
{
inti,j,n;
cout<<"请输入上三角行数:
";
cin>>n;
for(i=1;i<=n;i++)
{
for(j=1;j<=(n-i)*2;j++)
cout<<'';
for(j=1;j<=2*i-1;j++)
cout<<"*";
cout< }
for(i=n-1;i>=1;i--)
{
for(j=1;j<=(n-i)*2;j++)
cout<<'';
for(j=1;j<=2*i-1;j++)
cout<<"*";
cout< }
}
7.
#include
#include
voidmain()
{
inti,j;
charx;
for(i=1;i<=4;i++)
{
x='A';
for(j=1;j<=2*(4-i);j++)
cout<<'';
for(j=1;j<=2*i-1;j++)
{
cout<(2)< x+=1;
}
cout< }
}
8.
#include
voidmain()
{
intpeach=1;
for(intday=1;day<10;day++)//day表示n天前
peach=2*(peach+1);
cout<<"猴子第一天摘了"<";
}
9.
#include
voidmain()
{
charplay1,play2;
char*result;
cout<<"请两位玩家顺序输入S(表示剪刀)或R(表示石头)或P(表示纸):
";
cin>>play1>>play2;
if((play1=='R'||play1=='S'||play1=='P')&&(play2=='R'||play2=='S'||play2=='P'))
{
switch(play1)
{
case'S':
if(play2=='R')result="玩家2赢!
";
elseif(play2=='P')result="玩家1赢!
";
elseresult="平局!
";
break;
case'R':
if(play2=='P')result="玩家2赢!
";
elseif(play2=='S')result="玩家1赢!
";
elseresult="平局!
";
break;
case'P':
if(play2=='S')result="玩家2赢!
";
elseif(play2=='R')result="玩