欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言-循环结构、数组(一)及答案解析.doc

    • 资源ID:1325481       资源大小:141.50KB        全文页数:32页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言-循环结构、数组(一)及答案解析.doc

    1、二级 C 语言-循环结构、数组(一)及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:100.00)1.在下列选项中,没有构成死循环的是_。 A. int i=100; while(1) i=i % 100+1; if(i100) break; B. for(;) C. int k=10000; dok+;while(k10000); D. int s=36; while(s) -s;(分数:2.50)A.B.C.D.2.以下程序的输出结果是_。int n=10;while(n7) n-;printf(“% d#“, n); A.10 9 8 B.9

    2、8 7 C.10 9 8 7 D.9 8 7 6(分数:2.50)A.B.C.D.3.有以下程序:#include stdio.hmain() int i=5;do if(i % 3=1)if(i % 5=2) printf(“* % d“, i); breaki+; while(i !=0);printf(“/n“);程序的运行结果是_。 A.*7 B.*3*5 C.*5 D.*2*6(分数:2.50)A.B.C.D.4.若变量已正确定义,有以下程序段:i=0;do printf(“% d,“, i); while(i+);printf(“% d/n“, i);其输出结果是_。 A.0,0

    3、B.0,1 C.1,1 D.程序进入无限循环(分数:2.50)A.B.C.D.5.以下叙述正确的是_。 A.do.while 语句构成的循环不能用其他语句构成的循环代替 B.只有 do.while 语句构成的循环能用 break 语句退出 C.用 do.while 语句构成循环时,在 while 后的表达式为零时不一定结束循环 D.用 do.while 语句构成循环时,在 while 后的表达式为零时结束循环(分数:2.50)A.B.C.D.6.有以下程序:#include stdio.hmain() int y=9;for(; y0; y-)if(y % 3=0) printf(“% d“,

    4、 -y);程序的运行结果是_。 A.7 4 1 B.9 6 3 C.8 5 2 D.8 7 5 4 2 1(分数:2.50)A.B.C.D.7.以下程序的输出结果是_。#include stdio.hmain() int i, sum;for(i=1; i6; i+)sum+=sum;printf(“% d/n“, sum); A.15 B.14 C.不确定 D.0(分数:2.50)A.B.C.D.8.若 x 是 int 型变量,以下程序的输出结果是_。for (x=3; x6; x+)printf(x% 2)? (“* * % d/n“):(“ #% d/n“), x); A. * *3#4

    5、* *5 B.#3* *4#5 C. #3 * *4 #5 D. * *3 #4 * *5(分数:2.50)A.B.C.D.9.设 i 和 x 都是 int 类型,则以下 for 循环语句_。for(i=0, x=0; i=9 i+) scanf(“% d“, x); A.最多执行 10 次 B.最多执行 9 次 C.是无限循环 D.循环体一次也不执行(分数:2.50)A.B.C.D.10.以下 for 循环语句_。int i, k ;for(i=0, k=-1; k=1; i+, k+)printf(“* * *“); A.判断循环结束的条件非法 B.是无限循环 C.只循环一次 D.一次也不

    6、循环(分数:2.50)A.B.C.D.11.以下是计算 n!值的程序,空格处应选_。#include stdio.hmain() int i, s, n;s=1;printf(“Enter n:“);scanf(“% d“, for(i=1; i=n; i+)_;printf(“s=% d“, s); A.s=s*i B.s*i C.s=s+i D.s+i(分数:2.50)A.B.C.D.12.以下程序的输出结果是_。#include stdio.hmain() int x, i;for(i=1; i=100; i+) x=i;if(+x% 2=0)if(+x% 3=0)if(+x% 7=0)

    7、printf(“% d“, x);printf(“/n“); A.3981 B.4284 C.2668 D.2870(分数:2.50)A.B.C.D.13.以下程序的输出结果是_。#include stdio.hmain() int k=0, m=0;int i, j;for(i=0; i2; i+) for(j=0; j3; j+)k+;k-=j;m=i+j;printf(“k=% d, m=% d“, k, m); A.k=0, m=3 B.k=0, m=5 C.k=1, m=3 D.k=1, m=5(分数:2.50)A.B.C.D.14.以下程序的功能是:按顺序读入 10 名学生 4 门

    8、课程的成绩,计算出每位学生的平均分并输出,程序如下:#include stdio.hmain() int n, k;float score, sum, ave;sum=0.0;for(n=1; n=10; n+) for(k=1; k=4; k+) scanf(“% f“, sum+=score;ave=sum/4.0;printf(“NO% d:% f/n“, n, ave);上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是_。 A.sum=0.0; B.sum+=score; C.ave=sum/4.0; D.printf(“NO% d:% f/ n“,

    9、n, ave);(分数:2.50)A.B.C.D.15.以下程序的输出结果是_。int i, j, m=0;for(i=1; i=15; i+=4)for(j=3; j=19; j+=4)m+;printf(“% d/n“, m); A.12 B.15 C.20 D.25(分数:2.50)A.B.C.D.16.在以下程序中,判断 ij 共执行了_次。#include stdio.hmain() int i=0, j=10, k=2, s=0;for(;) i+=k;if(ij) printf(“% d“, s);break;s+=i; A.4 B.7 C.5 D.6(分数:2.50)A.B.C

    10、.D.17.以下程序的输出结果是_。#include stdio.hmain() int i;for(i=1; i=5; i+) if(i% 2) putchar();else continue;putchar ();putchar (#); A. # B. # C. # D. #(分数:2.50)A.B.C.D.18.以下程序的输出结果是_。#include stdio.hmain() int y=10;for(;y0; y-)if(y% 3=0) printf(“% d“, -y);continue; A.741 B.852 C.963 D.8754321(分数:2.50)A.B.C.D.

    11、19.在 while(x)语句中的 x 与下面条件表达式等价的是_。 A.x=0 B.x=1 C.x!=1 D.x!=0(分数:2.50)A.B.C.D.20.以下程序的输出结果是_。#include stdio.hmain() int k, j, m;for (k=5; k=1; k-) m=0;for (j=k; j=5; j+)m=m+k*j;printf(“% d/n“, m); A.124 B.25 C.36 D.15(分数:2.50)A.B.C.D.21.以下程序的输出结果是_。#include stdio.hmain() int x=10, y=10, i;for (i=0; x

    12、8; y=+i)printf(“% d % d“, x-, y); A.10 1 9 2 B.9 8 7 6 C.10 9 9 0 D.10 10 9 1(分数:2.50)A.B.C.D.22.以下程序的输出结果是_。a=1; b=2; c=2;while(abc) t=a; a=b; b=t; c-;printf(“% d, % d, % d“, a, b, c); A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1(分数:2.50)A.B.C.D.23.以下 for 循环体的执行次数是_。#include stdio.hmain() int i, j;for(i=0, j=i;

    13、 i=j+1; i+ =2, j-)printf(“% d/n“, i); A.3 B.2 C.1 D.0(分数:2.50)A.B.C.D.24.有以下程序:#include stdio.hmain() int n=9;while(n6) n- ; printf(“% d“, n);该程序段的输出结果是_。 A.987 B.876 C.8765 D.9876(分数:2.50)A.B.C.D.25.有以下程序段:int k=0;while(k=)k+;while 循环执行的次数是_。 A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行一次(分数:2.50)A.B.C.D.26.以下程

    14、序中,while 循环的循环次数是_。#include stdio.hmain() int i=0;while(i10) if(i1) continue;if(i=5) break;i+;. A.1 B.10 C.6 D.死循环,不能确定次数(分数:2.50)A.B.C.D.27.以下程序的输出结果是_。#include stdio.hmain() int i=0, a=0;while(i20) for(;) if(i% 10)=0)break;else i-;i+=11; a+=i;printf(“% d/n“, a); A.21 B.32 C.33 D.11(分数:2.50)A.B.C.D

    15、.28.语句 while(!E);中的条件!E 等价于_。 A.E=0 B.E!=1 C.E!=0 D.E(分数:2.50)A.B.C.D.29.以下的 for 循环_。for(x=0, y=0; (y!=123) x+); A.是无限循环 B.循环次数不定 C.循环执行 4 次 D.循环执行 3 次(分数:2.50)A.B.C.D.30.执行以下程序段的结果是_。int x=23;do printf(“% d“, x-);while(!x); A.打印出 321 B.打印出 23 C.不打印任何内容 D.陷入死循环(分数:2.50)A.B.C.D.31.下面程序有错误的行是_。main()

    16、int a3=i;int i;scanf(“% d“, for(i=1; i3; i+) a0=a0+ai;printf(“a0=% d/n“, a0); A.3 B.6 C.7 D.4(分数:2.50)A.B.C.D.32.若有定义:int a10;,则对数组 a 元素的正确引用是_。 A.a10 B.a3.5 C.a(5) D.a10-10(分数:2.50)A.B.C.D.33.现有以下程序段:#include stdio.hmain() int k30=12, 324, 45, 6, 768, 98,21, 34, 453, 456;int count=0, i=0;while(ki)

    17、if(ki % 2=0|ki % 5=0) count+;i+ printf(“% d, % d/n“, count, i); 则程序段的输出结果是_。 A.7,8 B.8,8 C.7,10 D.8,10(分数:2.50)A.B.C.D.34.以下选项中,合法的数组说明语句是_。 A.int a=“string“; B.int a5=0,1,2,3,4,5; C.char a=“string“; D.char a=0,1,2,3,4,5;(分数:2.50)A.B.C.D.35.已知 int 类型的变量占 4 个字节,现有以下程序段:#include stdio.hmain() int a=1,

    18、2,3,4,5;printf(“% d“, sizeof(a);则程序段的输出结果是_。 A.5 B.10 C.15 D.20(分数:2.50)A.B.C.D.36.若有以下语句,则正确的描述是_。char x=“12345“;char y=i,2,3,4,5; A.x 数组和 y 数组的长度相同 B.x 数组长度大于 y 数组长度 C.x 数组长度小于 y 数组长度 D.x 数组等价于 Y 数组(分数:2.50)A.B.C.D.37.有以下程序,最后输出的值为_。main() int a44 =1,4,3,2), 8 6,5,7, 3,7,2,5, 4,8,6,1, i, j, k, t;f

    19、or(i=0; i4; i+)for(j=0; j3; j+)for(k=j+i; k4; k+if(ajiaki) t=aji; aji=aki; aki=t;for(i=0; i4; i+) printf(“% d,“, aii); A.1,6,5,7 B.8,7,3,1 C.4,7,5,2 D.1,6,2,1(分数:2.50)A.B.C.D.38.若二维数组 a 有 m 列,则在 aij之前的元素个数为_。 A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1(分数:2.50)A.B.C.D.39.以下程序的输出结果是_。#include stdio.hmain() i

    20、nt i, x33=1,2,3,4,5,6 7,8,9;for(i=0; i3; i+)printf(“% d,“, xi2-i; A.1,5,9, B.1,4,7, C.3,5,7, D.3,6,9,(分数:2.50)A.B.C.D.40.以下不能正确定义二维数组的选项是_。 A.int a22=1,2; B.int a2=1,2,3,4; C.int a22=1,2,3; D.int a2=1,2,3,4;(分数:2.50)A.B.C.D.二级 C 语言-循环结构、数组(一)答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:100.00)1.在下列选

    21、项中,没有构成死循环的是_。 A. int i=100; while(1) i=i % 100+1; if(i100) break; B. for(;) C. int k=10000; dok+;while(k10000); D. int s=36; while(s) -s;(分数:2.50)A.B.C.D. 解析:解析 选项 A 的循环表达式的条件永为 1,并且小于 100 的数与 100 取余不超过 99,所以在循环体内表达式 i%100+1 的值永远不会大于 100,break 语句永远不会被执行,所以是死循环;选项 B 的括号内没有能使循环停下来的变量增量,是死循环。选项 C 中先执行

    22、 k+,使 k=10001,从而使循环陷入死循环。2.以下程序的输出结果是_。int n=10;while(n7) n-;printf(“% d#“, n); A.10 9 8 B.9 8 7 C.10 9 8 7 D.9 8 7 6(分数:2.50)A.B. C.D.解析:解析 以上程序段只包含了一个 while 循环,循环的控制表达式是 n7,只要 n 的值大于 7,循环体就不断执行。在进入循环时,n 的值为 10。循环体内只有两条语句,每循环一次,首先 n 的值减 1,然后输出 n 的值;由于 n 的初值为 10,所以执行循环中的 n-; 后, n 的值依次为 9、8、7,并进行输出,p

    23、rintf 每执行一次就在最后输出一个空格。当 n 的值为 7 时,while 的控制表达式 n7 的值已为 0,因此退出循环。3.有以下程序:#include stdio.hmain() int i=5;do if(i % 3=1)if(i % 5=2) printf(“* % d“, i); breaki+; while(i !=0);printf(“/n“);程序的运行结果是_。 A.*7 B.*3*5 C.*5 D.*2*6(分数:2.50)A. B.C.D.解析:解析 整个程序中只有时 i 增加的语句没有对 i 减少的语句,所以 2、3 都不可能出现,选项 B和 D 错误。而 i=5

    24、 时第一个 if 语句的表达式为假,所以选项 C 也错误。4.若变量已正确定义,有以下程序段:i=0;do printf(“% d,“, i); while(i+);printf(“% d/n“, i);其输出结果是_。 A.0,0 B.0,1 C.1,1 D.程序进入无限循环(分数:2.50)A.B. C.D.解析:解析 对于 do.while 循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次 i的值“0”,再接着判断表达式 i+的值,其值为 0,所以循环结束。此时变量 i 的值经过自加已经变为1,程序再次输出 i 的值“1”。5.以下叙述正确的是_。 A.do.while 语

    25、句构成的循环不能用其他语句构成的循环代替 B.只有 do.while 语句构成的循环能用 break 语句退出 C.用 do.while 语句构成循环时,在 while 后的表达式为零时不一定结束循环 D.用 do.while 语句构成循环时,在 while 后的表达式为零时结束循环(分数:2.50)A.B.C.D. 解析:解析 do.while 语句构成的循环可以用其他语句构成的循环来代替。但要注意,for 和 while语句构成的循环,循环体是否执行取决于时循环控制条件的设置;而 do.while 构成的循环不管循环控制的条件如何设置,循环体总要执行一次。无论是哪种循环,break 语句都

    26、可以退出循环。用 do.while语句构成的循环和 while 语句构成的循环一样,都是在 while 后的表达式为零时结束循环,非零时循环继续。6.有以下程序:#include stdio.hmain() int y=9;for(; y0; y-)if(y % 3=0) printf(“% d“, -y);程序的运行结果是_。 A.7 4 1 B.9 6 3 C.8 5 2 D.8 7 5 4 2 1(分数:2.50)A.B.C. D.解析:解析 本题考查 for 循环和自加“+”、自减“-”的问题。当 y 的值为 9、6 或 3 时,if 语句的条件成立,执行输出语句,输出表达式-y 的值

    27、,y 的自减要先于输出语句执行,故输出结果为 8 5 2。7.以下程序的输出结果是_。#include stdio.hmain() int i, sum;for(i=1; i6; i+)sum+=sum;printf(“% d/n“, sum); A.15 B.14 C.不确定 D.0(分数:2.50)A.B.C. D.解析:解析 本题中包含一个 for 循环,循环变量由 1 变化到 5,所以其循环体执行 5 次。for 循环体内只有一条语句“sum+=sum;”,它相当于“sum=sum+sum;”,此表达式的值只与变量 sum 有关,并执行 5次。观察 sum 的值,可以发现程序没有给它赋

    28、初值,因此在第一次执行 sum+sum 时,sum 的值是不确定的;在运行此程序时,系统会给出警告信息,提示用户:sum 在使用前没有确定的值。8.若 x 是 int 型变量,以下程序的输出结果是_。for (x=3; x6; x+)printf(x% 2)? (“* * % d/n“):(“ #% d/n“), x); A. * *3#4* *5 B.#3* *4#5 C. #3 * *4 #5 D. * *3 #4 * *5(分数:2.50)A.B.C.D. 解析:解析 以上 for 循环的循环控制变量 x 的值依次为 3、4、5,因此循环体执行 3 次。也就是说,循环体中的 printf

    29、 语句进行 3 次输出。调用 printf 进行输出时,其后面的括号中的第一项应当是一个格式控制字符串。在本题的 printf()函数调用中,第一项似乎是一个条件表达式,但进一步分析可知,在?号之前“表达式 1”的值无论是 1 还是 0,此条件表达式的值总是一个字符串,或者为“* *d”,或者为“#%d/n”,因此是符合 printf()函数调用的语法的。根据以上分析,当 x 的值为奇数时,使(x%2)的值为 1,输出所用的格式串是“* *%d”;当 x 的值为偶数时,(x%2)的值为 0,输出所用的格式串是“#%d/n”。已知 X 的值是 3、4、5,当 x 的值为 3 时,输出* *3,且

    30、不输出换行符,接着输出#4,输出一个换行符,最后当 x 的值为 5 时,从新的一行开始输出* *5,然后退出循环。9.设 i 和 x 都是 int 类型,则以下 for 循环语句_。for(i=0, x=0; i=9 i+) scanf(“% d“, x); A.最多执行 10 次 B.最多执行 9 次 C.是无限循环 D.循环体一次也不执行(分数:2.50)A. B.C.D.解析:解析 此题中 for 循环的执行次数取决于关系表达式(i=0, x=0; i=9 i+)的结果。只要 i=9 且 x!=876,循环就将继续执行。结束循环取决于两个条件:或者 i9,或者 x=876。只要在执行 s

    31、canf 语句时,从终端输入 876,循环就将结束。如果从终端一直未输入 876,则 i 值的增加使i9,从而结束循环。按照题中所给定的 for 语句,每执行一次循环,i 自动增 1,因此执行 10 次循环后,i 的值为 10,循环最终也将结束。10.以下 for 循环语句_。int i, k ;for(i=0, k=-1; k=1; i+, k+)printf(“* * *“); A.判断循环结束的条件非法 B.是无限循环 C.只循环一次 D.一次也不循环(分数:2.50)A.B. C.D.解析:解析 本例的关键是赋值表达式 k=1。由于表达式 2 是赋值表达式 k=1,为真,因此执行循环体

    32、,使 k 增 1,但循环再次计算表达式 2 时,又使 k 为 1,如此反复循环。11.以下是计算 n!值的程序,空格处应选_。#include stdio.hmain() int i, s, n;s=1;printf(“Enter n:“);scanf(“% d“, for(i=1; i=n; i+)_;printf(“s=% d“, s); A.s=s*i B.s*i C.s=s+i D.s+i(分数:2.50)A. B.C.D.解析:解析 以上程序是典型的连乘算法。与累加一样,连乘也是程序设计中基本的算法之一,程序中i 从 1 变化到 n,每次增 1。在循环体内应该有一个能表达连乘的式子。

    33、变量 s 的初值为 1,可以用此变量存放每次 i 增 1 后连乘的结果。在上述空格处填上 s=s*i 就可以满足要求。12.以下程序的输出结果是_。#include stdio.hmain() int x, i;for(i=1; i=100; i+) x=i;if(+x% 2=0)if(+x% 3=0)if(+x% 7=0)printf(“% d“, x);printf(“/n“); A.3981 B.4284 C.2668 D.2870(分数:2.50)A.B.C.D. 解析:解析 for 循环的循环控制变量 i 由 1 变化到 100,循环体将执行 100 次。循环体每执行一次,首先把 i

    34、 的值赋给了 x,即在循环的过程中,x 的值由 1 变化到 100。接着执行了一条嵌套的 if 语句,在各层的条件表达式中,x 的值在增 1 后,如果满足了指定的条件,才能执行到最内层的 printf 语句。在执行最外层的 if 语句时,若条件表达式+x%2=0 的值为 1,这时的 x 中的值为偶数。执行第二层 if 语句时,若条件表达式+x%3=0 的值为 1,这时的 x 中的值必定是上述偶数加 1 后能被 3 除尽的奇数,这些数是3,9,15,21,27,33,39,45,51,57,63,69,75,81,87,93,99。执行最内层 if 语句时,若条件表达式+x%7=0的值为 1,这

    35、时的 x 中的值必定是上述奇数加 1 后能被 7 除尽的偶数。由以上列出的数中,可以看到能满足此条件的数只有 28 和 70。13.以下程序的输出结果是_。#include stdio.hmain() int k=0, m=0;int i, j;for(i=0; i2; i+) for(j=0; j3; j+)k+;k-=j;m=i+j;printf(“k=% d, m=% d“, k, m); A.k=0, m=3 B.k=0, m=5 C.k=1, m=3 D.k=1, m=5(分数:2.50)A.B. C.D.解析:解析 本例考查一个二重循环结构。只要留意在一个循环终止时循环控制变量的变

    36、化即可。很明显,外层循环执行两次。这两次执行循环的情形如下:在 i=0 时,内层循环执行 3 次(j=0,1,2),直到j=3 时终止。由于每次内层循环使 k 加 1,故循环结束时 k=3。再执行 k-=j;,在 i=1 时,内层循环仍执行原操作,使 j=3, k=0。现在,计算表达式 i=2,表达式 i2 为假,外层循环结束,执行 m=i+j=2+3=5。14.以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:#include stdio.hmain() int n, k;float score, sum, ave;sum=0.0;for(

    37、n=1; n=10; n+) for(k=1; k=4; k+) scanf(“% f“, sum+=score;ave=sum/4.0;printf(“NO% d:% f/n“, n, ave);上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是_。 A.sum=0.0; B.sum+=score; C.ave=sum/4.0; D.printf(“NO% d:% f/ n“, n, ave);(分数:2.50)A. B.C.D.解析:解析 本题考查的是 for 循环语句的嵌套结构。15.以下程序的输出结果是_。int i, j, m=0;for(i=1; i

    38、=15; i+=4)for(j=3; j=19; j+=4)m+;printf(“% d/n“, m); A.12 B.15 C.20 D.25(分数:2.50)A.B.C. D.解析:解析 本题所示的程序段包含了一个双重循环。外层的循环控制变量是 i,其初值是 1,每循环一次,i 的值增 4。在执行时,i 的值依次是 1、5、9、13,当 i 的值达到 17 时,外层的循环就结束,去执行最后的 printf 语句,因此外层循环执行 4 次。外层的循环体内只包含了一条语句,也是一个 for 循环,此内层的循环控制变量是 j,其初值是 3,每循环一次,j 的值增 4,j 的值依次为 3、7、11

    39、、15、19,内循环体执行 5 次。内循环体也只包含一条语句 m+;,即每执行一次内循环体,m 的值增 1。因为 m 的初值为 0,所以 m 的值就是内循环总的循环次数。内循环总的执行次数是 4(外循环执行次数)5(内循环次数)=20,所以 m 的值为 20。16.在以下程序中,判断 ij 共执行了_次。#include stdio.hmain() int i=0, j=10, k=2, s=0;for(;) i+=k;if(ij) printf(“% d“, s);break;s+=i; A.4 B.7 C.5 D.6(分数:2.50)A.B.C.D. 解析:解析 本例涉及 break 语句

    40、,重在循环次数的判定。本例的循环由于无外出口,只能借助 break语句终止。鉴于题目要求说明判断 ij 的执行次数,只需考查经过 i+=k 运算如何累计 i 的值(每次累计i 的值,都会累计判别 ij 一次),i 值分别是 i=2、4、6、8、10、12,当 i 的值为 12 时判断 ij 为真,程序输出 s 的值并结束,共循环 6 次。17.以下程序的输出结果是_。#include stdio.hmain() int i;for(i=1; i=5; i+) if(i% 2) putchar();else continue;putchar ();putchar (#); A. # B. # C

    41、. # D. #(分数:2.50)A. B.C.D.解析:解析 本例考查 cuntinue 语句的基本使用方法。在程序中,当 i%2 为真时,执行输出语句,否则执行 continue 语句,即开始 i+运算,进入下一次循环,即当 i 是偶数时(i%2 为 0)无任何输出。18.以下程序的输出结果是_。#include stdio.hmain() int y=10;for(;y0; y-)if(y% 3=0) printf(“% d“, -y);continue; A.741 B.852 C.963 D.8754321(分数:2.50)A.B. C.D.解析:解析 for 循环的循环控制变量 y

    42、 的初值是 10,每循环一次 y 减 1,因此 y 的值由 10 变化到1。for 循环中只包含了一条 if 语句,if 子句是一个复合语句。if 后的表达式 y%3=0 表示只有 y 的值能被 3 整除时,其后的子句才执行。已知 y 由 10 变化到 1,当 y 的值分别为 9、6、3 时才会执行 if 子句中的 printf 语句,进行输出。输出的值应是 8、5、2。continue 语句的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句。就本题而言,在 if 语句之后,不再有余下尚未执行的语句,因此就接着判断是否执行下一次循环。由此可见,在本题中,continue 是虚设的,不起

    43、任何作用。19.在 while(x)语句中的 x 与下面条件表达式等价的是_。 A.x=0 B.x=1 C.x!=1 D.x!=0(分数:2.50)A.B.C.D. 解析:20.以下程序的输出结果是_。#include stdio.hmain() int k, j, m;for (k=5; k=1; k-) m=0;for (j=k; j=5; j+)m=m+k*j;printf(“% d/n“, m); A.124 B.25 C.36 D.15(分数:2.50)A.B.C.D. 解析:21.以下程序的输出结果是_。#include stdio.hmain() int x=10, y=10,

    44、i;for (i=0; x8; y=+i)printf(“% d % d“, x-, y); A.10 1 9 2 B.9 8 7 6 C.10 9 9 0 D.10 10 9 1(分数:2.50)A.B.C.D. 解析:22.以下程序的输出结果是_。a=1; b=2; c=2;while(abc) t=a; a=b; b=t; c-;printf(“% d, % d, % d“, a, b, c); A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1(分数:2.50)A. B.C.D.解析:23.以下 for 循环体的执行次数是_。#include stdio.hmain() int i, j;for(i=0, j=i; i=j+1; i+ =2, j-)printf(“% d/n“, i); A.3 B.2 C.1 D.0(分数:2.50)A.B.C. D.解析:24.有以下程序:#include stdio.hmain() int n=9;while(n6) n- ; printf(“% d“, n);该程序段的输出结果是_。 A.987 B.876 C.8765 D.9876(分数:2.50)A.B


    注意事项

    本文(【计算机类职业资格】二级C语言-循环结构、数组(一)及答案解析.doc)为本站会员(livefirmly316)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开