选择与循环结构练习题-学习十一
选择与循环结构练习题-学习十一
2022-02-02 / 0评论 / 280阅读 / 0点赞
-- XG.孤梦

选择与循环结构练习题-学习十一

XG.孤梦
2022-02-02 / 0 评论 / 280 阅读 / 正在检测是否收录...

练习

1、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是___。

if(x>y)
z=x; x=y; y=z;

(A)10 20 30

(B)20 30 10

(C)20 30 30

(D)30 20 10


2、以下不正确的语句是___。

(A)if(x>y) x=1;

(B)if(x=y)&&(x!=0) x+=y;

(C)if(x!=y) scanf("%d",&x);

(D)if(x<y){x++;y++>


3、请读以程序写出程序的输出结果___。

#include <stdio.h>

main() {
    int x = 1, y = 0, a = 0, b = 0;
    switch (x) {
    case 1:
        switch (y) {
        case 0: a++; break;
        case 1: b++; break;
        }
    case 2:
        a++; b++; break;
    }
    printf("a=%d,b=%d", a, b);
}

(A)a=1,b=0

(B)a=2,b=1

(C)a=2,b=2

(D)a=0,b=0


4、写出下面程序的运行结果是___。

#include <stdio.h>

main() {
    int i;
    for (i = 1; i <= 5; i++)
        switch (i % 5) {
        case 0: printf("*"); break;
        case 1: printf("#"); break;
        default:printf("\n");
        case 2:printf("&");
        }
}

(A)

#&
&
&*

(B)

#&

&*

(C)

#&

&

(D)

#&&&*

5、下面程序的运行结果是___。

#include <stdio.h>

main()
{
    int i = 0, j = 0, k = 0, m;
    for (m = 0; m < 3; m++)
        switch (m) {
        case 0: i = m++;
        case 1: j = ++m; break;
        case 2: k = m++;
        case 3: ++m;
        }
    printf("%d, %d, %d,%d", i, j, k, m);
}

(A)0,2,0,4

(B)1,2,1,4

(C)0,2,0,3

(D)0,3,2,4


6、下列程序的输出结果为___。

#include <stdio.h>

main()
{
    int sum = 10;
    for (int i = 100; i <= 10; i++)
        sum = sum + i;
    printf("%d", sum);
}

(A)10

(B)100

(C)5050

(D)5005


7、假设i的初始值为0,每循环一次后i的值增加1。如果想要让循环执行6次,那么for语句中循环继续的条件应该是:

(A)i>6

(B)i<=6

(C)i<7

(D)i<6


8、有以下程序,写出输出结果___。

#include <stdio.h>

main(){
    int i;
    for (i = 0; i < 3; i++)
        switch (i)
        {
        case 0: printf("%d", i);
        case 1: printf("%d", i);
        default: printf("%d",i);
        }
}

9、设一个三位数可以表示为abc,若其能满足条件a3+b3+c3=abc,则称其为水仙花数,编程求出所有的水仙花数。例如: 153是一个“水仙花数”,因为153=13+53+33。









10、输入一行字符,分别统计出其中的英文字母、空格、数字、和其他字符的个数。









11、输入一个大于3的整数n,判定它是否素数(prime,又称质数)。









12、求费波那西(Fibonacci)数列的前40个数。这个数列有如下特点:第1、2两个数为1、1。从第3个数开始该数是其前面两个数之和。

F1=1    (n=1)
F2=1     (n=2)
....
Fn=F(n-2)+F(n-1)   (n>2)









答案

选择题

应用题答案

9、

#include <stdio.h>

main(){
    int a,b,c,i;
    for (i = 100; i <= 999; i++)
    {
        a = i / 100;
        b = i % 100 / 10;
        c = i % 10;
        if (i == a*a*a + b*b*b + c*c*c)
            printf("%d,", i);
    }    
}

10、

#include <stdio.h>

void main(){
    int z,k,s,q;
    char c;
    z = k = s = q = 0;
        
    for (c = getchar(); c != '\n';)
    {
        if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z')
            z++;
        else if (c == ' ')
            k++;
        else if (c >= '0'&&c <= '9')
            s++;
        else q++;
        c = getchar();
    }
    printf("字母:%d,空格:%d,数字:%d,其他:%d", z, k, s, q);
}

11、

#include <stdio.h>

void main() {
    int n, i;
    printf("请输入一个大于3整数:"); 
    scanf_s("%d", &n);
    for (i = 2; i <= n - 1; i++)
        if (n%i == 0) break;
    if (i < n) 
        printf("%d 不是素数\n", n);

    else printf("%d 是素数\n", n);
}

12、

#include <stdio.h>

void main() {
    int f1 = 1, f2 = 1, f3; int i;
    printf("%12d\n%12d\n", f1, f2);
    for (i = 1; i <= 38; i++)
    {
        f3 = f1 + f2;
        printf("%12d\n", f3);
        f1 = f2;
        f2 = f3;
    }
}

0

评论

博主关闭了所有页面的评论