版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级C语言(C语言程序设计)机
试模拟试卷2
一、选择题(本题共28题,每题1.0分,共28分。)
1、有如下嵌套的if语句if(a
A、k=(a
B、k=(a
C、k=(a
D、k=(a
标准答案:D
知识点解析:嵌套的ifelse语句的含义是,在变量a的值小于变量b的值,同时,
变量a的值小于变量c的值时,把变量a的值赋给变量k。在变量a的值小于变量
b的值,同时,变量a的值大于等于变量c的值时,把变量c的值赋给变量k0在
变量a的值大于等于变量b的值,同时,变量b的值小于变量c的值时,把变量b
的值赋给变量k。在变昌:a的值大于等于变量b的值,同时,变量b的值大于等于
变量c的值时,把变量。的值赋给变量k。
rVx(x2o)
2、有以下计算公式V4x(xK))y=I/"X(X<0)若程序前面已经在命令
行中包含malh.h文件,不能够正确计算上述公式的程序段是
A、y=sqrt(x);if(x<0)y=sqrt(-x):
B>if(x>=0)y=sqrt(x);elsey=sqrt(-x);
C、if(x>=0)y=sqrt(x);if(x
D、y=sqrt(x>=07x:-x);
标准答案:A
知识点解析:由题意可知计算公式的含义是:当x大于等于0时,y值等于x的算
术平方根:当x小于。时,y值等于x的相反数的算术平方根。所以选项B用一个
完整的ifelse语句表达了计算公式的含义;选项C用两个if语句表达了计算公式
的含义;选项D在求平方根函数的后面用xK)?x:-x条件表达式来表达了计算公式
的含义。选项A没有用C语言语句正确的表达计算公式的含义。
3、有以下程序#includemain(){intx;scanf("%d",&x);if(x<=3);else
if(x!=10)printf(”%dkn"x);}程序运行时,输入的值在哪个范围才会有输出结果
A、不等于10的整数
B、大于3或等于10的整数
C、小于3的整数
D、大于3且不等10的整数
标准答案:D
知识点解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行
上,因此,程序的意思是当x大于3且不等于10时打印出来。
4、有以下程序main(){inta=l,b=2,c=3,d=0:if(a==1&&b++==2)
if(l)!=2IIc==!=3)pnntf("%d,%d,%d\n",a,b,c);elseprintf(H%d,%d,%
d\11",a,b,c);elseprintf(M%d,%d,%d\n'\a,b,c);)程序运行后的输
出结果是
A、1,3,2
B、1,2,3
C、1,3,3
D、3,2,1
标准答案:C
知识点解析:a,b,c,d初始值分别为1,2,3,Oo嵌套的if语句中,第一个if
中,表达式a=l&&b++=2值为1,执行嵌套的if分支,此时b=3.b!=2成立,由于
运算符是II,不管后面一个表达式的值是不是1,其整个表达式的值总是1,c-
・!二3表达式不执行,最后打印出a,b,c的值是1,3,3。
5、下列条件语句中,输出结果与其他语句不同的是
A、if(a==O)printf("%d\n",x);elseprintf("%d\n",y);
B、if(a==O)printf("%d\n",y);elseprintff'%d\n">x);
C、if(a!=O)printf("%d\n",x);elseprintf("%d\n",y);
D、if(a)printf("%d\n",x);elseprintfC^d\n",y);
标准答案:A
知识点解析:选项B)、C)、D)这三条语句都是在变量不等于0的情况下,输出
x:等于0的情况下输出y.而选项A)则正好相反.
6、若有以下程序#inchidemain。{inta=l,b=2»c=3,d=4;if((a=2)II(b=l))c=2;
if((c==3)&&(d=-l))a=5;printfC,%d,%d,%d,%d\n",a,b,C,d);}则程序
的输出结果是
A、2,1,2,1
B、2,2,2,4
C、5,1,2,-1
D、1,2,3,4
标准答案:B
知识点解析:代码中有两条并列的if语句,第…条if语句执行,(a=2)II(b=l)值为
1,由于逻辑或表达式,根据其短路运算规则,a=2,b-2,即b值不变执行if分支
c=2o并列的if语句中表达式(c==3)&&(d=-l)为逻辑与表达式,c==3不成立,不考
虑d=-l表达式,d为5.逻辑表达式值为0,不执行相应if分支。
7、若有以下程序#includemain。{inta=l,b=2,c=3>d=4,r=0;if(a!=l);else
r=l;if(b==2)r+=2:else;if(c!=3)r+=3;else;if(d==4)r+=4:printf(H%dkn".
r);)则程序的输出结果是
A、10
B、6
C、7
D、3
标准答案:C
知识点解析:程序代码中有四条并列的if语句,第一条if表达式a!二l不成立,执
行else分支,r=l;第二条if表达式b==2成立,执行r+=2,r=3;第三条if语句
c!=3不成立,执行else分支,分支为空语句;第四条if分支d==4成立,执行该if
分支语句,r+=4,r=7o
8、若有以下程序#includemain。{inta=Lb=2,c=3,(1二二4;
if((a=2)&&(b=1))c=2:if((c==3)II(d——l))a=5:printf(n%d»%d,%d,%d\
11”,a,b,C,d);}则程序的输出结果是
A、2,1,2,11
B、2,2,2,4
C、1,2,3,4
D、5,1,2,一1
标准答案:D
知识点解析:代码中有两条并列的if语句,第一条if语句,逻辑与表达式
(a=2)&&(b=l)中,a=2,则执行b=l,得到该逻辑与表达式值为1,执行分支语句
c=2:第二条if语句(c==3)II(d=-l),c==3不成立,执行d=-l,而后得出整个逻辑
与表达式值为1,执行分支语句a=5。
9、若有以下程序main。{inta=l,b=2,c=3,d=4,r=O;if(a!=l);elser=l;
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
标准答案:B
知识点解析:程序代码中有四条并列的if语句,第一条if表达式a!二l不成立,执
行else分支,r=l:第二条if表达式b==2成立,执行r+=2,r==3;第三条if语句
c!=3不成立,执行语句r+=3,r=6;第四条if分支d=4成立,执行该if分支语句,
r+=4,r=10o
10、以下叙述中正确的是
A、if语句只能嵌套一层
B、不能在else子句中再嵌套if语句
C、if子句和else子句中可以是任意的合法的C语句
D、改变if-else语句的缩进格式,会改变程序的执行流程
标准答案:C
知识点解析:含else子句的i「语句的格式为if(表达式)语句Ielse语句2其中if和
else是C语言的关键字。“语句1”称为if子句,“语句2”称为else子句,这些子句
只允许为一条语句,若需要多条语句时,则应该使用复合语句,对于if和else语
句的嵌套原则是比较自由的。
11、有以下程序main(){intx=l,y=0»a=0,b=0switch(x){case1:switch(y)(case
0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;
b++;}printf(”a=%d,b=%d\n",a,b);}程序的运行结果是
A、a=2,b=2
B、a=l,b=l
C、a=l,b=0
D、a=2,b=l
标准答案:D
知识点解析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个
switch(x)判断,进入case1中进行嵌套判断.如果switch(y)也成立,a自加1,遇
到break,退出嵌套,接着执行case2,a自加为2,b自加为1,遇到break,结束
循环,此时a=2,b=lo
12、若有定义:floatx=1.5;inta=Lb=3,c=2;则正确的switch语句是
A、switch(a+b){case1:printf("*\n");case2+1:printf("**kn");)
B、switch((int)x);{case1:printf(M*\n");case2:printf("**\n**);)
C^switch(x){case1.O:printf("*\n");case2.O:printf("**\n");!
D、switch(a+b){case1:printf("*kn");casec:printf("**\n");)
标准答案:A
知识点解析:在C语言中.*witch()后一对圆括号中的可以是整型表达式或字符表
达式。case语句后面的常量表达式的类型必须与switch后圆括号中的表达式类型相
同,各case语句标号的值应该互不相同,选项B中swilch后括号表达式出错,选
项C中case后面的常量类型不正确,选项D中case后面出现了变量表达式,所以
D)不正确。
13、下列叙述中正确的是
A、在switch语句中必须使用default
B、break语句必须与switch语句中的case配对使用
C^在switch语句中,不一定使用break语句
D、break语句只能用于switch语句
标准答案:C
知识点解析:break为C语言关键字,又称间断语句。break语句的功能是跳出正在
执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语
句中。default是关键字,起标号的作用,代表所有case标号之外的那些标号。
default标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有
default标号。
14>有以下程序main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k-;
break;default:n=0;k-;case2:case4:n+=2;k-;break;}printf("%d",
n);}while(k>0&&n<5)}运行以后的输出结果是
A、0235
B、235
C、02356
D、2356
标准答案:B
知识点解析:因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执
行default语句,m=O,k=4,没有break语句,因此执行casc2分支语句,n为2,
k为3,程序进行第2次循环,执行case3:n=3,k=2,输出n值为3,程序进行第
3次循环,执行ease3这个分支。结果是n=5,k=l,打印出5:这时因为n=5不满
足n<5的循环条件,因此退出循环,程序运行结束。
15、以下选项中与if(a==l)a=b;elsea++;语句功能不同的switch语句是
A、switch(a==1){case0:a=b:break?case1:a++;)
B、switch(a){case1:a=b;break;default:a++;}
C、switch(a){default:a++;break;case1:a=b;}
D、switch(a==l){case1:a=b;break;case0:a++;}
标准答案:A
知识点解析:ifelse语句的含义是,如果变量a的值等于1,则把变量b的值赋给变
量a,否则,变量a的值加1。在本题的4个选项中,与其含义不同的是选项A,
表示如果变量a的值等于1,则把变量a的值加I,否则,把变量b的值赋给变量
a。
16>有以下程序#includcmain(){intx=l,y=0,a=0,b=0;switch(x){case1:
switch(Y){case0:a++;break;case1:b++;break;)case2:a++;b++;
break;}printf(*'a=%d,b=%d\nu,a,b);}程序运行后的输出结果是
a=hb=l
B、a=l»b=0
C、a=2,b=l
D^a=2,b=2
标准答案:C
知识点常析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个
switch(x)判断,进入case1中进行嵌套判断,如果switch(y)也成立,a自加1,遇
到break,退出嵌套,接着执行case2,a自加为2,b自加为1,遇到break,结束
循环,此时a=2,b=lo
17、若以下选项中的变量a,b,y均已正确定义并赋值,则语法正确的switch语句
是
A、switch(a*a+b*b){default:break;case3:y=a+b:break;case2:y=a-b;
break;)
B、switch(a+b){easel:case3.4y=a+b:break;caseO:case4:y=a-b;)
C、switch(a+9){casea:y=a-b;caseb:y=a+b:}
D、switcha*b{case10:y=a+b;default:y=a_b;}
标准答案:A
知识点解析:使用switch语句直接处理多个分支,其一般形式为:switch(表达式)
{case常量表达式1:语句1:break;case常量表达式2:语句2:break;case
常量表达式n:语句n:break;default:语句n+1:break:}switch语句的执行
流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case
的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相
等,就执行此case后面的语句,执行后遇break语句就退出switch语句:若圆括号
中表达式的值与所有ease后面的常量表达式都不等,则执行default后面的语句
n+1,然后退出swilch语句。对于选项B),case语句和常量之间没有空格,而选
项C)中的case后面为变量,选项D)中switch后面没给出圆括号。
18、以下程序段中,与语句:k=a>b?(b>c?l:0):O;功能相同的是
A、if((a>b)II(b>c))k=1;elsek=0;
B、iffa<=b)k=O;elseif(b<=c)k=l;
C、if((a>b)&&(b>c))k=l;elsek=0;
D、if(a>b)k=l;elseif(b>c)k=l;elsek=0;
标准答案:C
知识点解析:题干中的表达式的功能是当a>b并且b>c时,变量k的值等于1,其
余情况下,变量k的值都是等于0。
19、关于“while(条件表达式)循环体”.以下叙述正确的是
A、循环体的执行次数总是比条件表达式的执行次数多一次
B、条件表达式的执行次数与循环体的执行次数一样
C、条件表达式的执行次数总是比循环体的执行次数多一次
D、条件表达式的执行次数与循环体的执行次数无关
标准答案:C
知识点解析:while语句中表达式是循环条件,语句为循环体。while语句中当表达
式计算的值为真(非O)时,执行循环体语句。因此条件表达式执行的次数总是比循
环体多一次。
20>有以下程序#includemain(){inty=10;while(y-);printf("y=%dha",y);}程
序执行后的输出结果是
A、y=0
B、y=-l
C、)y=l
D、while构成无限循环
标准答案:B
知识点解析:在while循环中每次变量y的值减1,直到其值等于0时退出循环,
这时y的再减1变为-1。
21、有以下程序main(){intk=5;while(--k)printf("%d”,k-=3);printf("\n");}
执行后的输出结果是
A、2
B、4
C、1
D、死循环
标准答案:C
知识点解析:在程序语句中,k的初始值为5,进行第1次while循环后,k自减1
为4.非0,执行循环体里的prinlf语句,输出I。此时k的值变为1。程序执行第
2次循环时,k自减1变为0。为假,退出while循环语句。所以程序的最后结果为
lo
22、有以下程序main(){inty=10;while(y-);printf("y=%d\n",y);}程序执行
后的输出结果是
A、y=0
B、y=l
C^y=-l
D、while构成无限循环
标准答案:C
知识点解析:while循环语句的循环体为空语句,所以每一次循环程序什么都不
做。当循环自变量y=0时,退出循环结束,变量y执行自减运算,得-1,所以打印
输出变量y的值为-1。
23>有以下程序程ncludevoidmain。(ints;scanf("%d",&s);while(s>0)
{switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4);break;case
3:pfintf("%d",s+3);default:printf(H%d",s+1);break;)scanf("%d",
&s):}}运行时,若输入123450,则输出结果是
A、66656
B、6566456
C、66666
D、6666656
标准答案:B
知识点解析:这道试题主要考查了switch和break语句,当变量s的值为1时,执
行easel、case2两条语句,输出65;当变量s的值为2时,执行case2语句,输出
6;变量s的值为3时,执行case3、default两条语句,输出6_4;变量s的值为4
时,执行default语句。输入5;变量s的值为5时,执行default语句,输出6:变
量s的值为0时,程序运行结束。
24、有以下程序#includemain(){inta=7;while(a-);printf("%dkn",a);}程序
运行后的输出结果是
A、0
B、1
C、.1
D、7
标准答案:C
知识点解析:在while语句中,先判断while后面的表达式是否为0.如果为0,则
退出循环,否则执行循环体。在本题中,当变量a的值经过几次循环后,其值等于
0时.退出while循环语句,变量a再执行自减运算,所以其值等于•1。
25、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是
A、(E>0IIE<0)
B、(!E=0)
C、(E!=0)
D、(E=0)
标准答案:A
知识点解析:在while(E)中,表达式E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中医针灸学(中级)题库检测试卷附参考答案详解【典型题】
- 2026年中职学校文化课语文作文题库附完整答案详解【全优】
- 2026年机械培训心得体会全流程拆解
- 2026年熟食店员工安全培训内容实操要点
- 2026年评标专家培训考能力检测附答案详解(培优)
- 2026年消防安全培训考核自测题库及一套参考答案详解
- 系统管理员安全培训内容2026年实操流程
- 2026年山东省建筑施工企业安全生产管理人员安全生产知识模拟题库讲解及一套参考答案详解
- 2026年证券从业《证券市场基本法律法规》每日一练含完整答案详解【典优】
- 2026年大学单片机原理与接口技术期末练习题包附参考答案详解(达标题)
- 天津市十二区重点学校2025-2026学年高三下学期毕业联考-语文试卷
- 2026年全国社会工作者职业资格证考试模拟试卷及答案(共六套)
- 公路危大工程监理实施细则
- 2026安徽省供销集团有限公司集团本部招聘7人笔试参考题库及答案解析
- 2026年山西药科职业学院单招综合素质考试题库及答案详解(基础+提升)
- 福利院食品卫生安全制度
- 5G通信网络规划与优化-课程标准
- 肾单位模型改进课件
- 茶楼劳动合同
- 中数联物流运营有限公司招聘笔试题库2026
- 高压线路新建监理规划书
评论
0/150
提交评论