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

    [计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷32及答案与解析.doc

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

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

    [计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷32及答案与解析.doc

    1、国家二级 C语言机试( C语言程序设计)模拟试卷 32及答案与解析 一、选择题 1 以下是 if语句的基本形式: if(表达式 )语句 其中 “表达式 ” ( 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,或 d n“, a, b, c, d), 程序输出 ( A) 0, 0, 0, 3 ( B) 1, 1, 2, 0 ( C)编译有错 ( D) 0, 1, 2, 0 3

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

    3、( B) a=10 b=30 c=10 ( C) a=10 b=50 c=10 ( D) a=50 b=30 c=50 6 设有定义: int a=1, b=2, c=3;以下语句中执行效果与其它三个不同的是 ( 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(表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是 ( A)必须是整数值 ( B)必须是正数 ( C)可以是任意合法的数值 ( D) if(a

    4、b)c=a; a=b; b=c; 8 有 如下嵌套的 if语句 if(a=0)y=sqrt(x); else y=sqrt(-x); ( C) if(x=0)y=sqrt(x); if(x=07x: -x); 10 有以下程序 #include main()int x; scanf(“ d“, &x); if(x main()int a=1, b=2, c=3, d=4; if(a=2)(b=1)c=2; if(c=3)&(d=-1)a=5; printf(“ d, d, d, d n“, a, b, c, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2

    5、, 4 ( C) 5, 1, 2, -1 ( D) 1, 2, 3, 4 14 若有以下程序 #include main()int a=1, b=2, c=3, d=4, r=0; if(a!=1); else r=1; if(b=2)r+=2; else; if(c!=3)r+=3; else; if(d=4)r+=4; printf(“ d n“, r); 则程序的输出结果是 ( A) 10 ( B) 6 ( C) 7 ( D) 3 15 若有以下程序 #include main()int a=1, b=2, c=3, d=4; if(a=2)&(b=1)c=2; if(c=3)(d=-1

    6、)a=5; printf(“ d, d, d, d n“, a, b, c, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2, 4 ( C) 1, 2, 3, 4 ( D) 5, 1, 2, -1 16 若有以下程序 main()int a=1, b=2, c=3, d=4, r=0; if(a!=1); else r=1; if(b=2)r+=2; if(c!=3); r+=3; if(d=4)r+=4; printf(“ d n“, r); 则程序的输出结果是 ( A) 7 ( B) 10 ( C) 6 ( D) 3 17 以下叙述中正确的是 ( A

    7、) if语句只能嵌套一层 ( B)不能在 else子句中再嵌套 if语句 ( C) if子句和 else子句中可以是任意的合法的 C语句 ( D)改变 if-else语句的缩进格式,会改变程序的执行流程 18 以下选项中与 if(a=1)a=b; else a+;语句功能不同的 switch语句是 ( A) switch(a) case 1: a=b: break; default: a+: ( B) switch(a=1) case 0: a=b; break; case 1: a+; ( C) switch(a) default: a+; break; case 1: a=b; ( D)

    8、switch(a=1) case 1: a=b; break; case 0: a+; 19 若以下选项中变量全部为整型变量,且 已正确定义并赋值,则语法正确的switch语句是 ( A) switch(a+b) case 1: case 3: y=a+b; break; case 0: case 4: y=a-b: ( B) switch(a*a+b*b) default: break; case 3: y=a+b; break; case 2: y=a-b; break: 1 ( C) switch(a+9) case c1: y=a-b; case c2: y=a+b; ( D) swi

    9、tch a*b case 10: x: a+b; default: y=a-b; 20 有以下程序 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; case 3: a+; b+; printf(“a= d, b= d n“, a, b); 程 序的运行结果是 ( A) a=2, b=2 ( B) a=1, b=1 ( C) a=1, b=0 ( D) a=2, b=1 21 若有定义: float x=1

    10、5; int a=1, b=3, c=2;则正确的 switch语句是 ( A) switch(a+b)case 1: printf(“* n“); case 2+1: printf(“* n“); ( B) switch(int)x); case 1: printf(“* n“); case 2: printf(“* n“); ( C) switch(x)case 1 0: printf(“* n“); case 2 O: printf(“* n“); ( D) switch(a+b)case 1: printf(“* n“); case c: printf(“* n“); 22 下列叙述中

    11、正确的是 ( A)在 switch语句中必须使用 default ( B) break语句必须与 switch语句中的 case配对使用 ( C)在 switch语句中,不一定使用 break语句 ( D) break语句只能用于 switch语句 23 有以下程序 main()int k=5, n=0; doswitch(k) case 1: case 3: n+=1; k-; break; default: n=0; k-; case 2: case 4: n+=2; k-; break; printf(“ d“, n); while(k0&nb?(bc?1: 0): 0;功能相同的是 (

    12、 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(条件表达式 )循环体 ”,以下叙述正确的是 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次数与循环体的执行次数一样 ( C)条件表达式的执行次数总是比循环体的执行次数多一次 ( D)条件表达式的执行次数与循环体的执行次数无关 30 有以下程序 #include main()int y=10; while(y-); printf(“

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

    14、#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,则输出结果是 ( A) 66656 ( B) 6566456 ( C) 66666 ( D) 6666656 34 有以下程序 #include ma

    15、in()int a=7; while(a-); printf(“ d n“, a); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) -1 ( D) 7 35 在以下给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( A) (E0E不是 C语言的合法运算符,如果要表达 a大于或小于 b+c可用 a!b+c或 (ab+c)(ab+c。所以它不是一个合法的 C语言表达式。 【知识模块】 C语言程序设计 5 【正确答案】 C 【试题解析】 本题的程序段首先定义三个整型变量 a, b, c,并且其初始值分别等于 10 50, 30,然后判断 ab是否成立,如果条件成立,

    16、则把 b的 值赋给 a,把 c的值赋给 b。由 a和 b的初始值可知,此条件表达式不成立,所以 a和 b的值保持不变。再执行下一条语句,把 a的值赋给 c,所以 c的当前值等于 10,最后由输出语句输出变量 a, b, c的当前值,分别为 10, 50, 10。 【知识模块】 C语言程序设计 6 【正确答案】 A 【试题解析】 在 C语言中,用分号表示一条语句的结束,用 把几条语句放在一块表示一个语句块,其整体表示一个功能。因而在题目给出的四个选项中,选项B、 C)、 D)表示的功能相同,而选项 A表示的是一条 if语句,两条赋值语句。 【知识模块】 C语言程序设计 7 【正确答案】 C 【试

    17、题解析】 在 if语句中,表达式可以是任意合法的数值。当其值为非零时,执行 if语句,为 0时执行 else语句。 【知识模块】 C语言程序设计 8 【正确答案】 D 【试题解析】 嵌套的 if else语句的含义是,在变量 a的值小于变量 b的值,同时,变量 a的值小于变量 c的值时,把变量 a的值赋给变量 k。在变量 a的值小于变量 b的值,同时,变量 a的值大于等于变量 c的值时,把变量 c的值赋给变量k。在变量 a的值大于等于变量 b的值,同时,变量 b的 值小于变量 c的值时,把变量 b的值赋给变量 k。在变量 a的值大于等于变量 b的值,同时,变量 b的值大于等于变量 c的值时,把

    18、变量 c的值赋给变量 k。 【知识模块】 C语言程序设计 9 【正确答案】 A 【试题解析】 由题意可知计算公式的含义是:当 x大于等于 0时, y值等于 x的算术平方根;当 x小于 0时, y值等于 x的相反数的算术平方根。所以选项 B用一个完整的 if else语句表达了计算公式的含义:选项 C用两个 if语句表达了计算公式的含义;选项 D在求平方根函数的后面用 x0?x: -x条件表达式来表达了计算公式 的含义。选项 A没有用 C语言语句正确的表达计算公式的含义。 【知识模块】 C语言程序设计 10 【正确答案】 D 【试题解析】 题目中,虽然 else和第二个 if不在同一行上,但等价

    19、于在同一行上,因此,程序的意思是当 x大于 3且不等于 10时打印出来。 【知识模块】 C语言程序设计 11 【正确答案】 C 【试题解析】 a, b, c, d初始值分别为 1, 2, 3, 0。嵌套的 if语句中,第一个if中,表达式 a=1&b+=2值为 1,执行嵌套的 if分支,此时 “b=3, b!=2”成立,由于 运算符是 ,不管后面一个表达式的值是不是 1,其整个表达式的值总是1, “c-!=3”表达式不执行,最后打印出 a, b, c的值是 1, 3, 3。 【知识模块】 C语言程序设计 12 【正确答案】 A 【试题解析】 选项 B、 C)、 D)这三条语句都是在变量不等于

    20、0的情况下,输出x:等于 0的情况下输出 y,而选项 A则正好相反。 【知识模块】 C语言程序设计 13 【正确答案】 B 【试题解析】 代码中有两条并列的 if语句,第一条 if语句执行, (a=2)(b=1)值为1,由于逻辑或表达式, 根据其短路运算规则, a=2, b=2,即 b值不变执行 if分支c=2。并列的 if语句中表达式 (c=3)&(d=-1)为逻辑与表达式, c=3不成立,不考虑 d=-1表达式, d为 5逻辑表达式值为 0,不执行相应 if分支。 【知识模块】 C语言程序设计 14 【正确答案】 C 【试题解析】 程序代码中有四条并列的 if语句,第一条 if表达式 a!

    21、=1不成立,执行 else分支, r=1;第二条 if表达式 b=2成立,执行 r+=2, r=3;第三条 if语句 c!=3不成立,执行 else分支,分支为空语句;第四条 if分支 d=4成立,执行该 if分支语句, r+=4, r=7。 【知识模块】 C语言程序设计 15 【正确答案】 D 【试题解析】 代码中有两条并列的 if语句,第一条 if语句,逻辑与表达式(a=2)&(b=1)中, a=2,则执行 b=1,得到该逻辑与表达式值为 1,执行分支语句c=2;第二条 if语句 (c一 3)(d=-1), c=3不成立,执行 d=-1,而后得出整个逻辑与表达式值为 1,执行分支语句 a=

    22、5。 【知识模块】 C语言程序设计 16 【正确答案】 B 【试题解析】 程序代 码中有四条并列的 if语句,第一条 if表达式 a!=1不成立,执行 else分支, r=1;第二条 if表达式 b=2成立,执行 r+=2, r=3;第三条 if语句 c!=3不成立,执行语句, r+=3, r=6;第四条 if分支 d=4成立,执行该 if分支语句, r+=4, r=10。 【知识模块】 C语言程序设计 17 【正确答案】 C 【试题解析】 含 else子句的 if语句的格式为 if(表达式 ) 语句 1 else 语句 2 其中 if和 else是 C语言的关键字。 “语句 1”称 为 if

    23、子句, “语句 2”称为 else子句,这些子句只允许为一条语句,若需要多条语句时,则应该使用复合语句,对于 if和 else语句的嵌套原则是比较自由的。 【知识模块】 C语言程序设计 18 【正确答案】 B 【试题解析】 本题主要考查 if和 switch结构。 “if(a=1)a=b; else a+; ”代码段的功能是如果 a等于则把 b的值赋值给 a,否则 a+。选项 A使用 switch对 a进行判断,如果是 1则 a=b,跳出 switch,如果是其他值则 a+;选项 B对 a=1的结果进行 switch判断, 如果为 0表示 a不等于 1则 a=b,和题目要求不符合:选项 C和选

    24、项 A一样;选项 D和选项 case条件相反,满足题目要求。 【知识模块】 C语言程序设计 19 【正确答案】 B 【试题解析】 本题考查 switch的使用。选项 A中的 case 0和 case 4没有 break语句;选项 B正确;选项 C中的 case后面不是常量,错误;选项 D中 switch后面没有括号。 【知识模块】 C语言程序设计 20 【正确答案】 D 【试题解析】 本题考查的是用 switch语句实现多分支选择结构,首先进入 第一个 switch(x)判断,进入 ease 1中进行嵌套判断,如果 switch(y)也成立, a自加 1,遇到 break,退出嵌套,接着执行

    25、case 2, a自加为 2, b自加为 1,遇到 break,结束循环,此时 a=2, b=1。 【知识模块】 C语言程序设计 21 【正确答案】 A 【试题解析】 在 C语言中, switch()后一对圆括号中的可以是整型表达式或字符表达式。 case语句后面的常量表达式的类型必须与 switch后圆括号中的表达式类型相同,各 case语句标号的值应该互不相同,选项 B中 switch后括号表达式出错,选项 C中 case后面的常量类型不正确,选项 D中 case后面出现了变量表达式,所以 D)不正确。 【知识模块】 C语言程序设计 22 【正确答案】 C 【试题解析】 break为 C语

    26、言关键字,又称间断语句。 break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch语句中,也可以出现在循环语句中。 default是关键字,起标号的作用,代表所有 case标号之外的那些标号。 default标号可以出现在语句体中任何标号位置上。在 switch语句体中也可以没有 default标号。 【知识模块】 C语言程序设计 23 【正确答案】 B 【试题解析】 因为变量的初始值分别为 k=5, n=0,所以程序第 1次进入循环时,执行 default语句, “n=0, k=4”,没有 break语句,因此执行 case 2分支语句, n为 2, k为 3,程序

    27、进行第 2次循环,执行 “case 3: n=3, k=2”,输出 n值为3,程序进行第 3次循环,执行 case 3这个分支,结果是 “n=5, k=1”,打印出 5;这时因为 n=5不满足 nb并且 bc时,变量 k的值等于 1,其余情况下,变量 k的值都是等于 0。 【知识模块】 C语言程序设计 29 【正确答案】 C 【试题解析】 while语句中表达式是循环条件,语句为循环 体。 while语句中当表达式计算的值为真 (非 0)时,执行循环体语句。因此条件表达式执行的次数总是比循环体多一次。 【知识模块】 C语言程序设计 30 【正确答案】 B 【试题解析】 在 while循环中每次

    28、变量 y的值减 1,直到其值等于 0时退出循环,这时 y的再减 1变为 -1。 【知识模块】 C语言程序设计 31 【正确答案】 C 【试题解析】 在程序语句中, k的初始值为 5,进行第 1次 while循环后, k自减1为 4,非 0,执行循环体里的 printf语句。输出 1,此时 k的值变为 1。程序 执行第 2次循环时, k自减 1变为 0,为假,退出 while循环语句。所以程序的最后结果为 1。 【知识模块】 C语言程序设计 32 【正确答案】 C 【试题解析】 while循环语句的循环体为空语句,所以每一次循环程序什么都不做。当循环自变量 y=0时,退出循环结束,变量 y执行自

    29、减运算,得 -1,所以打印输出变量 y的值为 -1。 【知识模块】 C语言程序设计 33 【正确答案】 B 【试题解析】 这道试题主要考查了 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时,程序运行结束。 【知识模块】 C语言程序设计 34 【正确答案】 C 【试题解析】 在 while语句中,先判断 while后面的表达式是否为 0,如果为 0,则退出循环,否则执行循环体。在本题中,当变量 a的值经过几次循环后,其值等于 0时,退出 while循环语句,变量 a再执行自减运算,所以其值等于 -1。 【知识模块】 C语言程序设计 35 【正确答案】 A 【试题解析】 在 while(E)中 p,表达式 E可以是 C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 A中表达式 E0E0是一个逻辑表达式。 【知识模块】 C语言程序设计


    注意事项

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




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

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

    收起
    展开