欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C++】循环与分支练习题

程序员文章站 2022-04-06 11:41:06
...

刚来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 只桃子!好家伙真能吃!
请按任意键继续. . .
相关标签: c++ 算法