专题十 while、do...while、for循环 模拟题-山东省职教高考电子信息《编程语言基础》专题复习讲练测(解析版+原卷版)

2023-08-07
| 2份
| 10页
| 200人阅读
| 0人下载

内容正文:

专题十 while、do...while、for循环 1、 选择题 1.以下能正确计算1*2*3*……*10的程序是( )。 A.do{i=1;s=1; s=s*i; i++; }while(i<=10); B.do{i=1;s=0; s=s*i; i++; }while(i<=10); C.i=1;s=1; do{ s=s*i; i++; }while(i<=10); D.i=1;s=0; do{ s=s*i; i++; }while(i<=10); 答案:C 解析:本题考察do-while循环的执行过程。选项A和选项B,每次循环i均是从1开始,死循环。选项D,s的初始值设置错误。 2.下面程序的运行结果是( )。 #include <stdio.h> main() { int y=10; do{y--;} while(--y); printf("%d ",y--); } A. -1 B. 1 C. 8 D. 0 答案:D 解析:本题考察do-while循环的执行过程。当while后表达式为0时,循环结束。 3.若运行以下程序时,从键盘输入3.6 2.4<CR>(<CR>表示回车),则下面程序的运行结果是( )。 #include<math.h> #include<stdio.h> main() { float x,y,z; scanf(“%f%f”,&x,&y); z=x/y; while(1) { if(fabs(z)>1.0) { x=y;y=z;z=x/y;} else break; } printf(“%f ”,y); } A. 500000 B. 1.600000 C. 2.000000 D. 2.400000 答案:B 解析:本题考察while循环的执行过程。当|z|>1.0时,执行x=y;y=z;z=x/y;,否则执行break,循环结束。 4.运行以下程序: #include <stdio.h> main( ) { int m,n,r,s; scanf(" %d,%d",&m,&n); s=m*n; while(n) { r=m%n; m=n; n=r;} printf("%d,%d " ,m,s/m);} 输入20,30,输出结果是( )【2020春考题】 A.5,120 B.10,60 C.20,30 D.30,20 答案:B 解析:本程序的功能是用辗转相除法,计算最大公约数和最小公倍数。 5.设int a=11,b=2;,执行下述程序段后,变量a和b的值分别是( ) for(;a>b;) {a/=b++; } A.1,3 B.1,4 C.2,3 D.2,4 答案:B 解析:本题考察for循环的执行过程,第一次循环a>b为真,执行a/=b++后,a==5,b==3;再判断a>b成立,执行a/=b++,后a为1,b为4;循环条件不成立,循环结束。 6.以下程序段的运行结果是( )【2021春考题】 int a=1,i; for(i=1;i<4;i++) { switch(i) { case 0: case 1:a+=3; case 2:a+=2; break; case 3:a+=5; default:a+=4; } } printf("%d ",a); A. 6 B. 16 C. 17 D. 32 答案:C 解析:本题考查for循环的执行过程,以及分支语句switch的执行过程。本程序中break是跳出switch结构,无法跳出循环。 二、程序填空题 1.根据公式e=1+1/1!+1/2!+1

资源预览图

专题十  while、do...while、for循环 模拟题-山东省职教高考电子信息《编程语言基础》专题复习讲练测(解析版+原卷版)
1
专题十  while、do...while、for循环 模拟题-山东省职教高考电子信息《编程语言基础》专题复习讲练测(解析版+原卷版)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。