c++语言程序设计第四版郑莉.docx
《c++语言程序设计第四版郑莉.docx》由会员分享,可在线阅读,更多相关《c++语言程序设计第四版郑莉.docx(10页珍藏版)》请在冰点文库上搜索。
c++语言程序设计第四版郑莉
c++语言程序设计第四版郑莉
第二章
2-1c++语言有哪些优点和缺点,
答:
c+,语言的主要特点表现在两个方面,一是全面兼容c,二是支持面向对象的方法。
C,十是一个更好的c,它保持了c的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对的类型系统进行了改革和扩充,因此c++比c更安全,c++的编译系统能检查出更多的类型错误。
C++语言最重要的特点是支持面向对象的方法。
2-2下列标识符哪些是合法的,
Programe,-page,_lock,test2,3inl,@mail,A_B_C_D答:
Programe,_lock,test2,A_B_C_D是合法的标识符。
2-3例2-1中每条语句的作用是什么,
答:
#include//指示编译器将文件iostream.h中的代码
//嵌入到本程序中该指令所在的地方
voidmian(viod)//主函数名,void表示函数没有返回值
{
cout<<”Hello!
\n”;//输出字符串Hello!
到标准输出设备(显示器)上
cout<<”WelcometoC++!
\n”;//输出字符串WelcometoC++!
}
2-4请用c++语句声明一个常量PI,值为3.1416;再声明一个浮点型变量a,把PI的值赋给a。
答:
const定义的常量是有类型的,所以在使用它们时编译器可以检查类型错误;而且,这些常量在调试时是可见的。
2-5在下面的枚举类型中,BLUE的值是多少,
EnumColor{WHITE,BLACK=100,RED,BLUE,GREEN=300};
答:
BLUE=102
2-6注释有什么作用,(C++中有哪几种注释的方法,它们之间有什么区别,)
答:
注释在程序中的作用是对程序进行注解和说明,以便于阅读。
编译系统在对源程序进行编译时不理会注释部分,因此注释对于程序的功能实现不起任何作用。
而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。
适当地使用注释,能够提高程序的可读性。
在C+,中,有两种给出注释的方法:
一种是沿用C语言的方法,使用“/*”和“*/”括起注释文字。
另一种方法是使用“//”,从“//”开始,直到它所在行的行尾,所有字符都被作为注释处理。
2-7什么叫做表达式,x=5+7是一个表达式吗,它的值是多少,
答:
解:
任何一个用于计算值的公式都可称为表达式。
x=5+7是一个表达式,它的值为122-8下列表达式的值是多少,
(1)201/4=50
(2)201%4=1
(3)201/4.0=50.25
2-9执行完下列语句后,a,b,c三个变量的值为多少,
a=30;
b=a++;
c=++a;
答:
a:
32b:
30c:
32
2-10在一个for语句中,可以给多个变量赋初值吗,如何实现,
答:
在循环设置条件的第一个“;”前用“,”分隔不同的赋值表达式。
例如:
2-11执行完下列语句后,n的值为多少,intn;
for(n=0;n<100;n++);答:
n=100
2-12写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while
循环完成同样的循环。
答:
for循环
for(n=100;n<=200;n+=2;);
while循环
intn=100;
do{
n+=2;
}while(n<=200)
2-13if(x=3)和if(x==3)这两条语句的差别是什么,答:
语句if(x=3)把3赋给x,赋值表达式的值为true,作为if语句的条件;语句if(x==3))
首先判断x的值是否为3若相等,条件表达式的值为true,否则为faule.
2-14已知x,y两个变量,写一条简单的if语句,把较小的值付给而原本值较大的量。
if(x>y)
x=y;
else
y=x;
2-15修改下面这个程序中的错误,改正后它的运行结果是什么,
#includeusingnamespacestd;intmain()
inti
intj;
i=10;/*给i赋值
j=20;/*给j赋值*/
cout<<:
i+j=<
;/*输出结果*/
return0;
}
答:
#includeusingnamespacestd;intmain()
inti;
intj;
i=10;/*给i赋值
j=20;/*给j赋值*/
cout<<:
i+j=<
;/*输出结果*/
return0;
}程序运行输出:
i+j=30
2-16编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。
#include
usingnamespacestd;
intmain()
{
inti;
cout<<”请输入一个数:
”;
cin>>i;
cout<<”您输入的数是:
”<
return0;
2-17c++有那种数据类型,简述其值域。
编程显示你使用的计算机中的各种数据类型的字节
数。
答:
#include
usingnamespacestd;
intmain()
{
cout<<”thesizeofanintis:
\t\t”<\t\t”<\t\t”<\t\t”<\t\t”<\t\t”<}”
程序运行输出:
thesizeofanintis:
4bytesthesizeofanshortintis:
2bytesthesizeofanlongintis:
4bytesthesizeofacharis:
1bytesthesizeofadoubleis:
4bytesthesizeofafloatis:
8bytes
2-18输出ASCII码为32~127的字符。
解:
#include
usingnamespacestd;
intmain()
{
for(inti=32;i<128;i++)
cout<<(char)i;
return;
}
2-19运行下面的程序,观察其输出,与你的设想是否相同,#include
usingnamespacestd;
intmain()
{
unsignedintx;
unsignedinty=100;
unsignedintz=50;
x=y-z;
cout<<”differenceis:
”<x=z-y;
cout<<”\nNowdifferenceis:
”<return0;
}
程序运行输出:
differenceis:
50
Nowdifferenceis:
42949672462-20运行下面的程序,观察其输出,体会i++与++i的差别。
#include
usingnamespacestd;
intmain()
{
intmyAge=39;
intyourAge=39;
cout<<”Iam:
”<cout<<”Youare:
”yourage<<”yearsold.”<myAge++;
++yourAge;
cout<<”oneyearpasses….”<cout<<”Iam:
”<cout<<”Youare:
”<cout<<”Anotheryearpasses.”<cout<<”Iam:
”<cout<<”Youare:
”<<++yourAge<<”yearsold.<cout<<”Let’sprintitagain.”<cout<<”Iam:
”<cout<<”Youare:
”<return0;
}
输出:
Iam39yearsold
Youare39yearsold
Oneyearpasses
Iam40yearsold
Youare40yearsold
Anotheryearpasses
Iam40yearsold
Youare41yearsold
Letsprintitagain
Iam41yearsold
Youare41yearsold
2-21什么叫变量,什么叫常量,
答:
所谓常量是指在程序运行的整个过程中其值始终不可改变的量。
除了用文字表
示常量外也可以为常量命名,这就是符号常量;在程序的执行过程中其值可以变化的量称
为变量变量是需要用名字来标识的。
2-22变量有哪几种存储类型,
答:
变量有以下几种存储类型:
auto存储类型:
采用堆栈方式分配内存空间,属于一时性存储,其存储空间可
以被若干变量多次覆盖使用;
register存储类型:
存放在通用寄存器中;
extern存储类型:
在所有函数和程序段中都可引用;
static存储类型:
在内存中是以固定地址存放的,在整个程序运行期间都有效。
2-23写出下列表达式的值:
(1)2<3&&6<9=true
(2)!
(4<7)=false
(3)!
(3<5)||(6<2)=true
2-24若a=1,b=2,c=3,下列各式的结果是什么,
(1)a|b-c=-1
(2)a^b&-c=1
(3)a&b|c=3
(4)a|b&c=3
2-25若a=1,下列各式的结果是什么,
(1)!
a|a=1
(2)a|a=-1
(3)a^a=0
(4)a>>2=0
2-26编写一个完整的的程序,实现功能:
向用户提问“现在在下雨吗,”,提示用
户输入Y或N。
若输入为Y,显示“现在正在下雨。
”;若输入为N,显示“现在没有下雨。
”;否则继续提问“现在在下雨吗,”。
2-27编写一个完整的程序,运行时向用户提问“你考试考了多少分,(0~100)”,
接收输入后判断其等级显示出来。
规则如下:
优:
90<=分数<=100
良:
80<=分时<=90
中:
60<=分数<=80
差:
0<=分数<60
2-28实现一个简单的菜单程序,运行时显示“Menu:
A(dd)D(elete)S(ort)
Q(uit),Selectone:
”提示用户输入。
A表示增加,D表示删除,S表示排序,Q表示退出。
输入为A,D,S时分别提示“数据已经增加,删除,排序。
”,输入为Q时程序结束。
(1)要求使用if…else语句进行判断,用break,continue控制程序流程。
(2)要求使用switch语句。
2-29用穷举法找出1~100间的质数并显示出来。
分别使用while,do…while,for循环语句实现。
2-30比较break语句与continue语句的不同用法
答-break使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句,不能用在别处;continue语句结束本次循环,接着开始判断决定是否继续执行下一次循环。
2-31声明一个表示时间的结构体,可以精确表示年,月,日,小时,分,秒;提示用户输入年,月,日,小时,分,秒的值,然后完整的显示出来。
2-32在程序中定义一个整形变量,赋予1~100的值。
要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。
分别使用while,do…while语句实现循环。
2-33声明枚举类型Weekday,包括SUNDAY到SATURDAY七个元素在程序中声明Weekday类型的变量,对其赋值,声明整形变量,看看能否对其赋Weekday类型的值。
2-34口袋中有红,黄,蓝,白,黑5种颜色的求若干个。
每次从口袋中取出三个不同颜色的球,问有多少种取法,
2-35输出九九乘法表。
2-36有符号整数和无符号整数,在计算机内部是如何区分的,