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

    【计算机类职业资格】国家二级C语言机试(C语言程序设计)模拟试卷32及答案解析.doc

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

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

    【计算机类职业资格】国家二级C语言机试(C语言程序设计)模拟试卷32及答案解析.doc

    1、国家二级 C语言机试(C 语言程序设计)模拟试卷 32及答案解析(总分:70.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下是 if语句的基本形式: if(表达式)语句 其中“表达式”(分数:2.00)A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达或关系表达D.可以是任意合法的表达式2.有以下程序 main()int a=0,b=0,c=0,d=0; if(a=1)b=1; c=2; else d=3; printf(“d,d,或dn“,a,b,c,d), 程序输出(分数:2.00)A.0,0,0,3B.1,1,2,0C.编译有错D.0,1,2,0

    2、3.有以下程序 main()int x=1,y=0; if(!x)y+; else if(x0) if(x)y+=2; else y+=3; printf(”d11”,y); 程序运行后的输出结果是(分数:2.00)A.2B.0C.1D.34.若变量已正确定义,在 if(W)pfintf(”d11”,k);中,以下不可替代 W的是(分数:2.00)A.ch=getchar(1B.a-b+cC.ab)a=b,b=c;c=a; printf(“a=d b=d c=dn“,a,b,c); 程序的输出结果是(分数:2.00)A.a=10 b=50 c=30B.a=10 b=30 c=10C.a=10

    3、b=50 c=10D.a=50 b=30 c=506.设有定义: int a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是(分数:2.00)A.if(ab)c=a;a=b;b=c;B.if(ab)c=a,a=b,b=c;C.if(ab)c=a,a=b,b=c;D.if(ab)c=a;a=b;b=c;7.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是(分数:2.00)A.必须是整数值B.必须是正数C.可以是任意合法的数值D.if(ab)c=a;a=b;b=c;8.有如下嵌套的 if语句 if(aA.k=(a=0)y=sqrt(x);else y=sqr

    4、t(-x);C.if(x=0)y=sqrt(x);if(xD.y=sqrt(x=07x:-x);10.有以下程序#include main()int x;scanf(“d“,&x);if(x0&nA.0235B.235C.02356D.235624.以下选项中与 if(a=1)a=b;else a+;语句功能不同的 switch语句是(分数:2.00)A.switch(a=1)case 0:a=b;break;case 1:a+;B.switch(a)case 1:a=b;break;default:a+;C.switch(a)default:a+;break;case 1:a=b;D.swi

    5、tch(a=1)case 1:a=b;break;case 0:a+;25.有以下程序 #include 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=dn“,a,b); 程序运行后的输出结果是(分数:2.00)A.a=1,b=1B.a=1,b=0C.a=2,b=1D.a=2,b=226.若以下选项中的变量 a,b,y 均已正确定义并赋值,则语法正确的 switch语句是(分数:2.00)A.swit

    6、ch(a*a+b*b)default:break;case 3:y=a+b;break;case 2:y=ab;break;B.switch(a+b)case1:case3:y=a+b;break;case0:case4:y=a-b;C.switch(a+9)case a:y=a-b;case b:y=a+b;D.switch a*b case 10:y=a+b;default:y=a-b;27.在嵌套使用 if语句时,C 语言规定 else总是(分数:2.00)A.和之前与其具有相同缩进位置的 if配对B.和之前与其最近的 if配对C.和之前与其最近的且不带 else的 if配对D.和之前的

    7、第一个 if配对28.以下程序段中,与语句: k=ab?(bc?1:0):0;功能相同的是(分数:2.00)A.if(ab)(bc)k=1;else k=0;B.if(ab)&(bc)k=1;else k=0;D.iffab)k=1;else if(bc)k=1;else k=0;29.关于“while(条件表达式)循环体”,以下叙述正确的是(分数:2.00)A.循环体的执行次数总是比条件表达式的执行次数多一次B.条件表达式的执行次数与循环体的执行次数一样C.条件表达式的执行次数总是比循环体的执行次数多一次D.条件表达式的执行次数与循环体的执行次数无关30.有以下程序 #include mai

    8、n()int y=10; while(y-); printf(“y=dn“,y); 程序执行后的输出结果是(分数:2.00)A.y=0B.y=-1C.y=1D.while构成无限循环31.有以下程序 main()int k=5; while(-k) printf(“d“,k-=3); printf(“n“); 执行后的输出结果是(分数:2.00)A.2B.4C.1D.死循环32.有以下程序 main()int y=10; while(y-); printf(“y=dn“,y); 程序执行后的输出结果是(分数:2.00)A.v=0B.y=1C.y=-1D.while构成无限循环33.有以下程序

    9、#include void main() int s; scanf(“d“,&s); while(s0) switch(s) case 1:printf(“d“,s+5); case 2:printf(“d“,s+4);break; case 3:printf(“d“,s+3); default:printf(“d“,s+1);break; scanf(“d“,&s); 运行时,若输入 1 2 3 4 5 0,则输出结果是(分数:2.00)A.66656B.6566456C.66666D.666665634.有以下程序 #include main()int a=7; while(a-); pr

    10、intf(“dn“,a); 程序运行后的输出结果是(分数:2.00)A.0B.1C.-1D.735.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是(分数:2.00)A.(E0Eb+c D.a+解析:解析:在 if()语句的括号是一个合法的 C语言表达式即可,如果表达式的值为 0,则不执行 if语句,否则执行 if语句,而在选项 C中,符号b+c)(ab+c。所以它不是一个合法的 C语言表达式。5.有以下程序段 int a,b,c; a=10;b=50;c=30; if(ab)a=b,b=c;c=a; printf(“a=d b=d c=dn“,a,b,c); 程序的输出结

    11、果是(分数:2.00)A.a=10 b=50 c=30B.a=10 b=30 c=10C.a=10 b=50 c=10 D.a=50 b=30 c=50解析:解析:本题的程序段首先定义三个整型变量 a,b,c,并且其初始值分别等于 1050,30,然后判断 ab是否成立,如果条件成立,则把 b的值赋给 a,把 c的值赋给 b。由 a和 b的初始值可知,此条件表达式不成立,所以 a和 b的值保持不变。再执行下一条语句,把 a的值赋给 c,所以 c的当前值等于10,最后由输出语句输出变量 a,b,c 的当前值,分别为 10,50,10。6.设有定义: int a=1,b=2,c=3;以下语句中执行

    12、效果与其它三个不同的是(分数:2.00)A.if(ab)c=a;a=b;b=c; B.if(ab)c=a,a=b,b=c;C.if(ab)c=a,a=b,b=c;D.if(ab)c=a;a=b;b=c;解析:解析:在 C语言中,用分号表示一条语句的结束,用把几条语句放在一块表示一个语句块,其整体表示一个功能。因而在题目给出的四个选项中,选项 B、C)、D)表示的功能相同,而选项 A表示的是一条 if语句,两条赋值语句。7.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是(分数:2.00)A.必须是整数值B.必须是正数C.可以是任意合法的数值 D.if(ab)c=a

    13、;a=b;b=c;解析:解析:在 if语句中,表达式可以是任意合法的数值。当其值为非零时,执行 if语句,为 0时执行else语句。8.有如下嵌套的 if语句 if(aA.k=(a=0)y=sqrt(x);else y=sqrt(-x);C.if(x=0)y=sqrt(x);if(xD.y=sqrt(x=07x:-x);解析:解析:由题意可知计算公式的含义是:当 x大于等于 0时,y 值等于 x的算术平方根;当 x小于 0时,y 值等于 x的相反数的算术平方根。所以选项 B用一个完整的 if else语句表达了计算公式的含义:选项 C用两个 if语句表达了计算公式的含义;选项 D在求平方根函数

    14、的后面用 x0?x:-x 条件表达式来表达了计算公式的含义。选项 A没有用 C语言语句正确的表达计算公式的含义。10.有以下程序#include main()int x;scanf(“d“,&x);if(x0&nA.0235B.235 C.02356D.2356解析:解析:因为变量的初始值分别为 k=5,n=0,所以程序第 1次进入循环时,执行 default语句,“n=0,k=4”,没有 break语句,因此执行 case 2分支语句,n 为 2,k 为 3,程序进行第 2次循环,执行“case 3:n=3,k=2”,输出 n值为 3,程序进行第 3次循环,执行 case 3这个分支,结果是

    15、“n=5,k=1”,打印出 5;这时因为 n=5不满足 nb?(bc?1:0):0;功能相同的是(分数:2.00)A.if(ab)(bc)k=1;else k=0;B.if(ab)&(bc)k=1;else k=0; D.iffab)k=1;else if(bc)k=1;else k=0;解析:解析:题干中的表达式的功能是当 ab并且 bc时,变量 k的值等于 1,其余情况下,变量 k的值都是等于 0。29.关于“while(条件表达式)循环体”,以下叙述正确的是(分数:2.00)A.循环体的执行次数总是比条件表达式的执行次数多一次B.条件表达式的执行次数与循环体的执行次数一样C.条件表达式的

    16、执行次数总是比循环体的执行次数多一次 D.条件表达式的执行次数与循环体的执行次数无关解析:解析:while 语句中表达式是循环条件,语句为循环体。while 语句中当表达式计算的值为真(非 0)时,执行循环体语句。因此条件表达式执行的次数总是比循环体多一次。30.有以下程序 #include main()int y=10; while(y-); printf(“y=dn“,y); 程序执行后的输出结果是(分数:2.00)A.y=0B.y=-1 C.y=1D.while构成无限循环解析:解析:在 while循环中每次变量 y的值减 1,直到其值等于 0时退出循环,这时 y的再减 1变为-1。31

    17、.有以下程序 main()int k=5; while(-k) printf(“d“,k-=3); printf(“n“); 执行后的输出结果是(分数:2.00)A.2B.4C.1 D.死循环解析:解析:在程序语句中,k 的初始值为 5,进行第 1次 while循环后,k 自减 1为 4,非 0,执行循环体里的 printf语句。输出 1,此时 k的值变为 1。程序执行第 2次循环时,k 自减 1变为 0,为假,退出while循环语句。所以程序的最后结果为 1。32.有以下程序 main()int y=10; while(y-); printf(“y=dn“,y); 程序执行后的输出结果是(分

    18、数:2.00)A.v=0B.y=1C.y=-1 D.while构成无限循环解析:解析:while 循环语句的循环体为空语句,所以每一次循环程序什么都不做。当循环自变量 y=0时,退出循环结束,变量 y执行自减运算,得-1,所以打印输出变量 y的值为-1。33.有以下程序 #include void main() int s; scanf(“d“,&s); while(s0) switch(s) case 1:printf(“d“,s+5); case 2:printf(“d“,s+4);break; case 3:printf(“d“,s+3); default:printf(“d“,s+1)

    19、;break; scanf(“d“,&s); 运行时,若输入 1 2 3 4 5 0,则输出结果是(分数:2.00)A.66656B.6566456 C.66666D.6666656解析:解析:这道试题主要考查了 switch和 break语句,当变量 s的值为 1时,执行 case1、case 2 两条语句,输出 65:当变量 s的值为 2时,执行 case 2语句,输出 6:变量 s的值为 3时,执行case3、default 两条语句,输出 64;变量 s的值为 4时,执行 default语句,输入 5;变量 s的值为 5时,执行 default语句,输出 6;变量 s的值为 0时,程序运行结束。34.有以下程序 #include main()int a=7; while(a-); printf(“dn“,a); 程序运行后的输出结果是(分数:2.00)A.0B.1C.-1 D.7解析:解析:在 while语句中,先判断 while后面的表达式是否为 0,如果为 0,则退出循环,否则执行循环体。在本题中,当变量 a的值经过几次循环后,其值等于 0时,退出 while循环语句,变量 a再执行自减运算,所以其值等于-1。35.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是(分数:2.00)A.(E0E0E0 是一个逻辑表达式。


    注意事项

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




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

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

    收起
    展开