【C++】循环与分支练习题
刚来CSDN,还望大家多多支持!后续陆续发布C++、R、Linux、Python等基础教程。
一、结构化程序包括的基本控制结构是 ( C ) 。
A、选择结构、循环结构和层次结构
B、选择结构、循环结构和嵌套结构
C、顺序结构、选择结构和循环结构
D、选择结构、goto跳转和循环结构
二、结构化程序设计中,下面对goto语句的使用描述正确的是 ( C ) 。
A、禁止使用goto语句
B、使用goto语句的程序效率高
C、应尽量避免滥用goto语句
D、以上说法都不对
三、以下程序的输出结果为( C )。
int main()
{
int i=0;
if (i++)
printf("%d\n", i++);
else if (i++)
printf("%d\n", i++);
else
printf("%d\n", i++);
}
A、0 B、1 C、2 D、3
四、以下程序的输出结果为( A )。
int main()
{
int x = 1,a=0,b=0;
switch(x)
{
case 0:a++;
case 1:b++;
default:a++;b++;
case 2:a+=b;b+=a;
}
printf("a=%d,b=%d\n",a,b);
}
A、a=3,b=5 B、a=0,b=1 C、a=1,b=1 D、a=3,b=3
五、以下程序的输出结果为( B )。
int main()
{
int a=9,b=11,c=-1;
switch(a%3)
{
case 0:c++;
case 1:c++;break;
switch(b%2)
{
default:c++;
case 0:c++;break;
}
}
printf("%d\n",c);
return 0;
}
A、0 B、1 C、2 D、3
六、以下程序的输出结果为( C )。
int main()
{
int i =0;
for(;i<=9;i++);
printf("%d ",i);
return 0;
}
A、0 B、0 1 2 3 4 5 6 7 8 9 C、10 D、9
七、编程实现:使用循环和分支结构输出一个九九乘法表。
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
……
#include<iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
cout << j << "x" << i << "=" << i*j << " ";
}
cout << endl;
}
system("pause");
return 0;
}
运行结果:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
请按任意键继续. . .
八、编程实现:使用循环和分支结构输出以下图形。
*
**
***
****
*****
******
代码:
#include<iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 6; i++) {
int x = i;
while (--x)
{
cout << " ";
}
int y = i;
while (y--)
{
cout << "*" ;
}
cout << endl;
}
system("pause");
return 0;
}
结果:
*
**
***
****
*****
******
请按任意键继续. . .
九、编程实现:使用循环和分支结构输出以下图形。
*
***
*****
*******
*****
***
*
代码:
#include<iostream>
using namespace std;
void printStr(string str, int num) {
while (num--) {
cout << str;
}
}
int main()
{
for (int i = 1; i <= 7; i++) {
int x;
if (i <= 4) {
x = 4 - i;
}else{
x = i - 4;
}
int y = 7 - x * 2;
printStr(" ", x);
printStr("*", y);
printStr(" ", x);
cout << endl;
}
system("pause");
return 0;
}
结果:
*
***
*****
*******
*****
***
*
请按任意键继续. . .
十、(附加题)输出100以内的素数(一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数。如2,3,5,7)
代码:
#include<iostream>
using namespace std;
int main()
{
for (int i = 2; i <= 100; i++) {
int num = 0;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
num++;
}
}
if (!num) {
cout << i << endl;
}
}
system("pause");
return 0;
}
结果:
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
请按任意键继续. . .
十一、(附加题)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。第10天早上想吃时,就只剩下一个桃子了。求第一天摘了多少个桃子。
代码:
#include<iostream>
using namespace std;
int main()
{
int num = 1;
cout << "第" << 10 << "天没吃前剩余桃子还剩:" << num << " 个" << endl;
for (int i = 1; i <= 9; i++) {
num = (num + 1) * 2;
cout << "第" << 10 - i << "天没吃前桃子还剩:" << num << " 个" << endl;
}
cout << "\n第一天猴子总共摘了 " << num << " 只" << "桃子!好家伙真能吃!" << endl;
system("pause");
return 0;
}
结果:
第10天没吃前剩余桃子还剩:1 个
第9天没吃前桃子还剩:4 个
第8天没吃前桃子还剩:10 个
第7天没吃前桃子还剩:22 个
第6天没吃前桃子还剩:46 个
第5天没吃前桃子还剩:94 个
第4天没吃前桃子还剩:190 个
第3天没吃前桃子还剩:382 个
第2天没吃前桃子还剩:766 个
第1天没吃前桃子还剩:1534 个
第一天猴子总共摘了 1534 只桃子!好家伙真能吃!
请按任意键继续. . .
上一篇: 循环与分支结构