本文主要整理了关于程序三大结构中,分支结构与循环结构等部分的练习题、笔试题(并附有答案解析)。
挑战开始:
1.求下列程序的输出结果是()
int score = 78;if(score>60){ printf("%s", ">60");}if(score>70){ printf("%s", ">70");}if(score>80){ printf("%s", ">80");}if(score>90){ printf("%s", ">90");}else{ printf("%s", "<60");}
A:>60

B:>70
C:>60>70
D:>60>70<60
2.求变量x的结果()
int x = 5;if(x%2==0)++x;x++;printf("%d",x);
A:4
B:5
C:6
D:7
3.运行下列代码,输出结果是()
int number = 5;if(number<=5){ number = number + 2; printf("%d", number);}printf("%d", number+5);
A:10
B:5、10
C:7、12
D:7
4.求下列程序输出结果()
int score = 95;if(score>=60){ printf("及格");}else if(score >= 80){ printf("良好");}else{ printf("优秀");}
A:及格
B:良好
C:优秀
D:及格、良好、优秀
5.求变量c的值()
int a=1,b=2,c=3;if(a<0){ if(b<0){ c=10;}else{ c=20;} }printf(c);
A:10
B:20
C:3
D:30
6.执行下列代码会出现()结果
int i=1;switch (i){case 0:printf("zero");break;case 1:printf("one");case 2:printf("two");default:printf("default");}
A:one
B:onedefault
C:onetwodefault
D:default
7.求下列程序运行后,变量k的结果()
int i=1;int j=2;int k=0;switch (j-i){default: k=k+4;break;case 1:k++;break;case 2:k--;break;}printf("%d",k);
A:0
B:1
C:4
D:5
题目1-7解析:第1题答案:D
题目解析:
单分支结构,只要 if 括号内的表达式结果为true,那么对应的方法体中的代码都会执行!
第2题答案:C
题目解析:
如果 if 没有方法体{},那么默认方法体内容为第一个分号前的代码语句!
第3题答案:C
题目解析:
单分支执行结束后,按程序的顺序结构继续执行!
第4题答案:A
题目解析:
多分支结构,一个分支满足要求,进入方法体,其余的分支结构则不运行!
第5题答案:C
题目解析:
分支结构嵌套,但表达式不满足要求,程序继续按顺序结构执行!
第6题答案:C
题目解析:
switch属于多分支结构,每个case都可以对应一个break,程序执行break跳出switch结构,如果没有break,则继续向下执行!
第7题答案:B
题目解析:
参考题目6。
8.变量sum表示1到10的累加之和,横线处应填的代码分别是()
int sum = 0;int i = _____;while(i<=_____){i++;sum += i;}
A:1,10
B:1,9
C:0,10
D:0,9
9.下列代码输出的内容是()
int i = 2;do{if(i%2==0){printf("");}else{printf("#");} i++;}while (i<7);
A:
B:###
C:##
D:
10.计算1+2+3+......+100的和,下面选项中可以得到正确的结果是()选俩项
A:
int sum = 0for(int i=1;i<=100;i++){ sum += i;}
B:
int i = 1;int sum = 0;do{ sum += i;}while(i<=100);
C:
int i = 1;int sum = 0;while(i<=100){ sum += i; i++;}
D:
int sum =0; int i=1; int j=100;while(i<=j){ i++; j++;}
11.下列程序,输出结果为()
int i = 3;do{i--;if(i==2){break;}printf(i);}while (i>0);
A:2
B:2 、1
C:什么都不输出
D:3、2、1
12.分析下列代码,输出结果是()
int a = 100;while(a%2==0){printf(a);a = a/4;}
A:1002561
B:10025
C:100
D:25
13.如下代码的输出结果为()
int i = 0;do{i++;printf(i);if(i==2){ break;}}while (i>0);
A:1、2
B:1
C:死循环
D:什么也不输出
14.下列程序正确的输出结果是()
int i =0; int sum =0;while (i<=10) {if(i%2 == 0){sum += i++;}}printf(sum);
A:20
B:30
C:40
D:死循环
15.程序中包含如下片段,则正确的结果是()
int i=3;do{ if(i--%2 ==0) { printf(i); break; } printf(i);}while (i>0);
A:3、2
B:2、1
C:3、1
D:3、3
16.如下代码的输出结果是()
for(int i=0;i<6;i++){if(i>1){printf(i);continue;}if(i>4){break;}}
A:34
B:345
C:2345
D:23456
17.下列代码输出结果是()
for(int i=0;i<3;i++){for(int j=1;j<i;j++){ printf(i); printf(j); }}
A:021
B:012
C:21
D:321
18.下列语句输出的结果是()
for(int i=0;i<6;i++){ for(int j=0;j<6;j++){ if(i+j>7) { printf(i+j); break; } }}
A:8
B:88
C:888
D:88888
题目8-18解析第8题答案:D
题目解析:
求1-10的累加,变量 i 的取值也必须满足从1到10的覆盖。
第9题答案:C
题目解析:
while的条件为i<7,那么变量 i 的值为2、3、4、5、6,对应循环体内的分支结构条件,输出结果为##。
第10题答案:A、C
题目解析:
答案B为死循环,答案D为自增而不是累加。
第11题答案:C
题目解析:
变量 i 自减,满足分支结构的表达式,执行break语句,结束离break最近的一层循环结构。
第12题答案:C
题目解析:
100%2结果为0,符合循环的条件,进入循环体,打印变量 a 的结果为100,a=100/4的结果为25,不再满足循环的表达式要求,所以循环结束。
第13题答案:A
题目解析:
变量 i 完成两次循环累加后,值等于2,符合循环内分支结构的表达式要求,执行分支结构内的break关键字,结束循环。
第14题答案:D
题目解析:
第一次进入循环体,变量 i 的值为0,0%2的结果为0,满足分支结构的表达式,执行结构内代码,此时变量 i 的值为1,循环继续执行,1%2的结果为1,不再满足分支结构的表达式,因此产生死循环。
第15题答案:B
题目解析:
变量 i 的值为3,进入循环体,执行表达式后不满足条件,但自身完成自减操作,打印结果为2,再次执行循环操作,满足表达式,并且完自减操作,打印结果1,执行break语句,终止循环执行。
第16题答案:C
题目解析:
循环条件变量 i 的值范围为0、1、2、3、4、5,对于表达式i>1有实际意义的为2、3、4、5,执行打印后,运行continue关键字,跳过本次循环,执行下一次循环,所以下面的分支结构一直也不会运行。
第17题答案:C
题目解析:
内层循环结构能够执行的条件为,变量 i 的值为2,当这个条件满足的时候,内部循环结构会执行一次,打印结果为i=2、j=1。
第18题答案:C
题目解析:
当变量 i 的值为3、4、5,对应变量 j 的值为5、4、3时,可以满足内部循环的分支结构条件,执行结构体内的代码段。
喜欢的小伙伴可以关注我,一起交流学习!
我是IT鸟叔,一位喜欢写程序、钓鱼、喝茶、玩游戏的中年大叔!