CPP2022-07-循环结构01(上)

简介: CPP2022-07-循环结构01

判断题

1-1

在for(表达式1;表达式2;表达式3)中,如果表达式2为空,表示循环条件默认为真。

TRUE //可将for的第二个表达式的判断移至循环体内,借助break来结束循环

1-2

for语句循环体可能一次也不执行。

TRUE//可能不满足循环条件

1-3

continue 只能用于循环体中。

TRUE

1-4

continue 不是结束本次循环,而是终止整个循环的执行。

FALSE

1-5

在多层循环中, 一个break语句只向外跳一层。

TRUE

1-6

运行包含以下代码段的程序将可能进入死循环。

1. int i = 1;
2. while(i>0){ i++; printf("%d ",i); }

FALSE //数据的溢出现象

1-7

do-while循环的while后的分号可以省略。

FALSE

1-8

do-while循环至少要执行一次循环语句。

TRUE

1-9

以下两个程序段等价,其功能是计算 s=1+2+...+10。

1. /* 程序段A*/
2. s = 0;
3. i = 1;
4. while(i <= 10){
5.     s = s + i;
6.     i++;
7. }
8. /* 程序段B */
9. s = 0;
10. i = 1;
11. while(1){
12. if(i > 10){
13. break;
14.     }
15.     s = s + i;
16.     i++;
17. }

TRUE

1-10

C语言的三种循环不可以互相嵌套。

FALSE

单选题

BAADC,ACCCB

程序填空题

1-1

计算并输出一个非零整数序列(序列非空)中偶数的平均值。所有输入数据用空格隔开,用0结束输入。输出数据保留2位小数。

1. #include <stdio.h>
2. int main()
3. {
4. int number;
5. int sum,n;
6. double average;
7.    n = 0;
8.    sum = 0;
9. scanf("%d",&number);
10. 
11. while(number != 0){
12. if(number%2 == 0){
13.             sum += number;
14.             n ++;
15.         }
16. scanf("%d",&number);   
17. }
18.    average = sum*1.0/n;
19. printf("%.2lf\n",average);
20. return 0;
21. }

number != 0

scanf("%d",&number)

average = sum*1.0/n

1-2

求100-999之间的水仙花数之和(水仙花数 是指一个三位数的各位数字的立方和是这个数本身,如:153=1^3+5^3+3^3)。。

1. #include <stdio.h>
2. int main()
3. {
4. int d1,d2,d3;
5. int n;
6. int sum;
7.     sum = 0;
8. for(
9. d1=1; d1<=9; d1++){
10. for(d2=0; d2<=9; d2++){
11. for(d3=0; d3<=9; d3++){
12.                 n = d1*100 + d2*10 + d3;
13. if(n == d1*d1*d1 + d2*d2*d2 + d3*d3*d3){
14.                     sum += n;
15.                 }
16.             }
17.         }
18.     }
19. printf("%d\n",sum);
20. return 0;
21. }

d1=1; d1<=9; d1++

d2=0; d2<=9; d2++

n == d1*d1*d1 + d2*d2*d2 + d3*d3*d3

1-3

用数组来求fibonacci数列问题,打印前20项数列,每行打印4个数。

1. #include<stdio.h>
2. int main()
3. {
4. int i;
5. int f[20]={1,1};
6. for (i=2;i<20;i++)
7.     f[i]=f[i-1]+f[i-2];
8. for (int i=0;i<20;i++)
9.     {if((i+1)%4==0)printf("\n");
10. printf("%d ",f[i]);
11.      }
12. return 0;
13. }

f[i-1]+f[i-2]

int i=0

(i+1)%4==0

1-4

输入正整数n,计算s = 1/1! + 1/2! + 1/3! + ……+ 1/n!的值。

1. #include <stdio.h>
2. int main( void)
3. {   
4. int j, k, n;
5. double f, s;
6. 
7. scanf("%d", &n);
8.     s=0.0; 
9. for (k=1; k<=n; k++){
10.          f=1.0;
11. for(j=1; j<=k; j++) 
12.              f=f*j;
13.          s=s+1.0/f;
14.     }
15. printf("sum=%f\n", s); 
16. return 0;
17. }

s=0.0

f=1.0

j<=k

f=f*j

1-5

语句填空:下列 for循环语句将输出: 0 1 2 0 1 2 0 1 2

for( i=1; i<=9; i++ ) printf("%2d", (i-1)%3);

(i-1)%3

编程题

1-1

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

1. *****
2.  ***
3.   *
4.  ***
5. *****

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
21.C语言:if语句编译选择结构举例
21.C语言:if语句编译选择结构举例
47 0
CPP2022-14-递归(下)
CPP2022-14-递归(下)
112 0
|
5月前
|
C语言
C语言循环结构详解:for、while、do while、break与continue
C语言循环结构详解:for、while、do while、break与continue
152 0
|
5月前
|
C语言
C语言条件判断:if、else、else if 和 switch 详解
C语言条件判断:if、else、else if 和 switch 详解
296 0
|
编译器 C语言
C语言循环坑 -- continue的坑
C语言循环坑 -- continue的坑
108 0
C语言循环坑 -- continue的坑
CPP2022-07-循环结构01(下)
CPP2022-07-循环结构01(下)
123 1
|
C语言 C++
CPP2022-06-分支结构
CPP2022-06-分支结构
71 1