1.入口条件循环和出口条件循环之间的区别是什么?各种C++循环分别属于其中的哪一种?
答:
入口条件循环是先判断,再循环,有可能不循环。
出口条件循环是先执行一次循环,再判断,至少会循环一次。
for和while是入口条件循环
do while是出口条件循环
2.如果下面的代码片段是有效程序的组成部分,它将打印什么内容?
int i;
for (i=0;i<5;i++)
cout<<i;
cout<<endl;
答:
01234(换行)
3.如果下面的代码片段是有效程序的组成部分,它将打印什么内容?
int j;
for (j=0;j<11;j+=3)
cout<<j;
cout<<endl<<j<<endl;
答:
0369
12(此处有一个换行)
4.如果下面的代码片段是有效程序的组成部分,它将打印什么内容?
int j=5;
do
cout<<" k = "<<k<<endl;
while(k++<9);
答:
k = 5
k = 6
k = 7
k = 8
k = 9
5.如果下面的代码片段是有效程序的组成部分,它将打印什么内容?
int k=8;
do
cout<<" k = " << k <<endl;
while(k++ <5 );
答:
k = 8(这里有一个换行符)
6.编写一个打印1、2、4、8、16、32、64的for循环,每轮循环都将计数变量的值乘以2.
答:
for(int i=1;i<65;i*=2)cout<<i<<endl;
7.如何在循环体中包括多条语句?
答:
使用大括号{}将这些语句括起来。例如{int a=1;int b=2;}注意,最后一个语句结尾要有分号,但是大括号外面无需分号。
8.下面的语句是否有效?如果无效,原因是什么?如果有效,他将完成什么工作?
int x =(1,024);
下面的语句又如何呢?
int y;
y=1,024;
答:
int x=(1,024);的效果是,x=024; (024是八进制)原因在于,(1,024)被认为是一个表达式,而表达式的值是由逗号最右边的式子决定的,即024,而024是0开头,编译器会认为是八进制数字
int y;
y=1,024;
给int类型 a赋值1,原因在于y被赋值1,右边的 ,024只是一个单纯的表达式,并没有赋值,因此也没有影响。
9.在查看输入方面,cin>>ch同cin.get(ch)和ch=cin.get()有什么不同?
答:
cin>>ch不能读取空格,换行符,tab字符等。他从遇见的第一个非这些字符开始读取(之前的这些字符将被舍弃),一直读取到遇见这些字符为止,且不读取,且不舍弃。他可以读取各种类型,如int、double、long、char、string等
cin.get(ch)的效果是将读取到的字符赋值给ch,他读取空格、换行符、tab字符等。但他对类型有限制,char类型是可以的(貌似且只能读取char类型)。
ch=cin.get()也是只读取一个字符,可以读取空格、换行符、tab等,但是他可以读取int类型,读取string类型等多个类型,但他只能读取char内存宽度的字符,假如字符宽度超过char类型,他无法全部读取。