内容正文:
编写说明:广西高等职业教育考试-电子与信息类《C语言程序设计》考点双析卷专辑,依据省教育厅《广西高等职业教育考试大纲与说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于广西高等职业教育考试第一轮高考复习教学。
本专辑第18卷精准对标广西壮族自治区考纲,考试内容及范围【C语言程序设计】:
(三)选择结构程序设计:掌握 if 语句的使用,以及条件运算符和条件表达式
广西高等职业教育考试 电子与信息类
《C语言程序设计》考点双析卷 第18卷
条件语句 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.执行以下程序段的输出结果是( )
int x=5;
if(x>7)
{if(x<13) printf("left!
");}
else printf("right!
");
A.left! B.rigth! C.left!right! D.right!left!
【答案】B
2.执行以下程序段时输入:8<回车>,输出结果为( )
int w,x=0,y=0;scanf("%d",&w);
if(w==0) printf("error!");
if(w>0) x+=w++;
else
if(w>10) y-=++w;
else printf("%d ",w);
printf("%d,%d,%d",w,x,y);
A.8,8,8 B.9,8,0 C.0,8,9 D.8,0,0
【答案】B
3.执行以下程序段的输出结果是( )
int a=1,b=2,c=3;
if(a%b&&b/c)
if(a++) printf("%d",a);
printf("%d",a);
A.0 B.1 C.2 D.3
【答案】B
4.执行以下程序段时输入:5<回车>,输出结果是( )
int x;scanf("%d",&x);
if(x!=0)
if(x>0) printf("%d",x+=x++);
else if(x<0)printf("%d",x-=x--);
else printf("error!");
A.12 B.error! C.0 D.10
【答案】D
5.执行以下程序段后的输出结果是( )
int x=2,y=-1,z=-2;
if(x<y)
if(y<0) z=0;
else z*=5;printf("%d",z);
A.-1 B.0 C.1 D.-2
【答案】D
6.执行以下程序段的输出结果是( )
int a;scanf("%d",&a);printf("%d",a);
if(a<50) printf("%d",a);
if(a>40)
if(a>45) printf("%d",a);
else printf("%d",a);
A.58585858 B.585858 C.5858 D.58
【答案】C
7.执行以下程序段的输出结果是( )
int a=10,b=4,c=7,s;
if(a<b) s=a*b+2;
else
if(a<c) s=a*c+2;
else
if(b<c) s=b*c+2;
else s=34;
printf("%d",s);
A.30 B.42 C.72 D.34
【答案】A
8.执行以下程序的输出结果是( )
int m=5;
if(m++>5)
if(m++>5) printf("%d",m--);
else
if(m!=6) printf("%d",m);
else printf("%d",--m);printf("%d",m+=4);
A.10 B.6 C.5 D.7
【答案】A
9.执行以下程序段的输出结果是( )
int i=0;
if(i==0)
if(++i<0)printf("##");
else
if(i++>++i) printf("$$");
printf("%d",i);
A.3 B.2 C.##2 D.$$3
【答案】A
10.以下不正确的if语句形式是( )
A.if(x>y&&x!=y);
B.if(x!=y) x+=y;
C.if(x==y) printf(“%d”,x) else printf(“%d”,y);
D.if(x<y){x++;y++;}
【答案】C
11.执行以下程序段的输出结果是( )
main()
{int i=-1;
if(i<=0) printf("****
")
else printf("%%%%
");}
A.**** B.%%%%c C.%%%% D.有语法错,不能正确执行
【答案】B
【详解】缺少分号,有语法错。
12.执行以下程序段的输出结果是( )
int x=8,y=-10,z=2;if(x<y)
if(y<0) z=2;else z=-2;printf("%d",z);
A.2 B.-2 C.8 D.-10
【答案】A
13.执行以下程序段的输出结果是( )
int n=2;if(n++%3) printf("&");else printf("$");
A.&
B.$
C.有语法错导致编译出错
D.无语法错但连接出错
【答案】A
14.执行以下程序段后的输出结果是( )
int x=10,y=20;if(!x)y++;else if(x==0)
if(x) y+=2;else y+=3;printf("%d",y);
A.23 B.22 C.21 D.20
【答案】D
15.下列条件语句中,输出结果与其他语句不同的是( )
A.if(x) printf(“%d”,a); else printf(“%d”,b);
B.if(x==0) printf(“%d”,b); else printf(“%d”,a);
C.if(x!=0) printf(“%d”,a); else printf(“%d”,b);
D.if(x==0) printf(“%d”,a); else printf(“%d”,b);
【答案】D
16.设以下变量均已正确定义并赋值,则下列不正确的语句是( )
A.if(x>y) x++; B.if(x=y)&&(x!=0) x+=y;
C.if(x!=y) x++;else y++; D.if(x>y) {x--;y--;}
【答案】B
17.以下程序段中,与表达式:k=a>b?(b>c?1:0):0;功能相同的是( )
A.if(a>b&&b>c) k=1;else k=0;
B.if(a>b||b>c) k=1;else k=0;
C.if(a<=b) k=0;else if(b<=c) k=1;
D.if(a>b) k=1;else if(b>c) k=1;else k=0;
【答案】A
18.已有定义:int a=10,b=20,c=30;,执行语句:if(a>b) c=a;a=b;b=c;
printf("%d,%d,%d",a,b,c);后的输出结果是( )
A.10,20,30 B.20,30,10 C.20,30,20 D.20,30,30
【答案】D
19.执行以下程序段的输出结果是( )
void f(int v,int w)
{int t;t=v;v=w;w=t;}
main()
{int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d
",x,y,z);getch();}
A.1,3,2 B.1,2,2 C.1,2,3 D.2,3,1
【答案】A
20.以下代码的输出结果是( )
int x = 0;
if (x = 0)
printf("True");
else
printf("False");
A.True B.False C.编译错误 D.不确定
【答案】B
二、判断题判断题(本大题共5小题,每题2分,共10分)
21.iif (x = 5) 是合法的条件表达式。( )
【答案】正确
22.iif-else if 结构中的条件是按顺序判断的。( )
【答案】正确
23.if 语句的条件表达式可以是任意类型。( )
【答案】错误
24.if-else链中,多个else会与最近的if配对。( )
【答案】正确
【详解】C语言中else默认与最近的未配对if结合。
25.条件运算符?:的结合方向是从右到左,例如a ? b : c ? d : e等价于a ? b : (c ? d : e)。( )
【答案】正确
三、程序设计题(本大题共3小题,每题10分,共30分)
26.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
#include<stdio.h>
#include<conio.h>
main(){
long int i;
int bonus;
/*******space*******/
/*******space*******/
}
【答案】scanf("%d",&i);
if(i<100000) bonus=i*0.1;
else if(x<200000) bonus=100000*0.1+(i-100000)*0.075;
else if(x<400000) bonus=100000*0.1+100000*0.075+(i-200000)*0.05;
elseif (x<600000)
bonus=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
else if(x<1000000)
bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.01
else
bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.01+
(i-1000000)*0.01;
【详解】考察点依然是多重分支结果,结合数学里的分段函数进行考察,属于应用题。
满足不同的区间段计算不同的奖金。
27.对输入的任何一个年份判断是否是闰年,将结果输出
#include<stdio.h>
main(){
int year;
scanf("%d",&year);
/*******space*******/
/*******space*******/
}
【答案】if((year%4==0 && year%100!=0) || (year%400==0))
{
printf("%d年是闰年",year);
}else{
printf("%d年不是闰年",year);
}
【详解】闰年分为普通闰年和超级闰年,普通闰年是满足能被4整除但不能被100整除,超级闰年是能被400整除。当然不管是什么闰年,都满足能被4整除,但此题得分点要分开书写,即普通闰年和超级闰年的条件要分开书写。
28.输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”
#include<stdio.h>
main(){
int x;
scanf("%d",&x);
/*******space*******/
/*******space*******/
}
【答案】if(x>0){
printf("输入的数大于零");
}
else if(x==0){
printf("输入的数等于零");
}
else{
printf("输入小于零");
}
【详解】考察多重分支结构if-elseif-else语句。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:广西高等职业教育考试-电子与信息类《C语言程序设计》考点双析卷专辑,依据省教育厅《广西高等职业教育考试大纲与说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于广西高等职业教育考试第一轮高考复习教学。
本专辑第18卷精准对标广西壮族自治区考纲,考试内容及范围【C语言程序设计】:
(三)选择结构程序设计:掌握 if 语句的使用,以及条件运算符和条件表达式
广西高等职业教育考试 电子与信息类
《C语言程序设计》考点双析卷 第18卷
条件语句 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.执行以下程序段的输出结果是( )
int x=5;
if(x>7)
{if(x<13) printf("left!
");}
else printf("right!
");
A.left! B.rigth! C.left!right! D.right!left!
2.执行以下程序段时输入:8<回车>,输出结果为( )
int w,x=0,y=0;scanf("%d",&w);
if(w==0) printf("error!");
if(w>0) x+=w++;
else
if(w>10) y-=++w;
else printf("%d ",w);
printf("%d,%d,%d",w,x,y);
A.8,8,8 B.9,8,0 C.0,8,9 D.8,0,0
3.执行以下程序段的输出结果是( )
int a=1,b=2,c=3;
if(a%b&&b/c)
if(a++) printf("%d",a);
printf("%d",a);
A.0 B.1 C.2 D.3
4.执行以下程序段时输入:5<回车>,输出结果是( )
int x;scanf("%d",&x);
if(x!=0)
if(x>0) printf("%d",x+=x++);
else if(x<0)printf("%d",x-=x--);
else printf("error!");
A.12 B.error! C.0 D.10
5.执行以下程序段后的输出结果是( )
int x=2,y=-1,z=-2;
if(x<y)
if(y<0) z=0;
else z*=5;printf("%d",z);
A.-1 B.0 C.1 D.-2
6.执行以下程序段的输出结果是( )
int a;scanf("%d",&a);printf("%d",a);
if(a<50) printf("%d",a);
if(a>40)
if(a>45) printf("%d",a);
else printf("%d",a);
A.58585858 B.585858 C.5858 D.58
7.执行以下程序段的输出结果是( )
int a=10,b=4,c=7,s;
if(a<b) s=a*b+2;
else
if(a<c) s=a*c+2;
else
if(b<c) s=b*c+2;
else s=34;
printf("%d",s);
A.30 B.42 C.72 D.34
8.执行以下程序的输出结果是( )
int m=5;
if(m++>5)
if(m++>5) printf("%d",m--);
else
if(m!=6) printf("%d",m);
else printf("%d",--m);printf("%d",m+=4);
A.10 B.6 C.5 D.7
9.执行以下程序段的输出结果是( )
int i=0;
if(i==0)
if(++i<0)printf("##");
else
if(i++>++i) printf("$$");
printf("%d",i);
A.3 B.2 C.##2 D.$$3
10.以下不正确的if语句形式是( )
A.if(x>y&&x!=y);
B.if(x!=y) x+=y;
C.if(x==y) printf(“%d”,x) else printf(“%d”,y);
D.if(x<y){x++;y++;}
11.执行以下程序段的输出结果是( )
main()
{int i=-1;
if(i<=0) printf("****
")
else printf("%%%%
");}
A.**** B.%%%%c C.%%%% D.有语法错,不能正确执行
12.执行以下程序段的输出结果是( )
int x=8,y=-10,z=2;if(x<y)
if(y<0) z=2;else z=-2;printf("%d",z);
A.2 B.-2 C.8 D.-10
13.执行以下程序段的输出结果是( )
int n=2;if(n++%3) printf("&");else printf("$");
A.&
B.$
C.有语法错导致编译出错
D.无语法错但连接出错
14.执行以下程序段后的输出结果是( )
int x=10,y=20;if(!x)y++;else if(x==0)
if(x) y+=2;else y+=3;printf("%d",y);
A.23 B.22 C.21 D.20
15.下列条件语句中,输出结果与其他语句不同的是( )
A.if(x) printf(“%d”,a); else printf(“%d”,b);
B.if(x==0) printf(“%d”,b); else printf(“%d”,a);
C.if(x!=0) printf(“%d”,a); else printf(“%d”,b);
D.if(x==0) printf(“%d”,a); else printf(“%d”,b);
16.设以下变量均已正确定义并赋值,则下列不正确的语句是( )
A.if(x>y) x++; B.if(x=y)&&(x!=0) x+=y;
C.if(x!=y) x++;else y++; D.if(x>y) {x--;y--;}
17.以下程序段中,与表达式:k=a>b?(b>c?1:0):0;功能相同的是( )
A.if(a>b&&b>c) k=1;else k=0;
B.if(a>b||b>c) k=1;else k=0;
C.if(a<=b) k=0;else if(b<=c) k=1;
D.if(a>b) k=1;else if(b>c) k=1;else k=0;
18.已有定义:int a=10,b=20,c=30;,执行语句:if(a>b) c=a;a=b;b=c;
printf("%d,%d,%d",a,b,c);后的输出结果是( )
A.10,20,30 B.20,30,10 C.20,30,20 D.20,30,30
19.执行以下程序段的输出结果是( )
void f(int v,int w)
{int t;t=v;v=w;w=t;}
main()
{int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d
",x,y,z);getch();}
A.1,3,2 B.1,2,2 C.1,2,3 D.2,3,1
20.以下代码的输出结果是( )
int x = 0;
if (x = 0)
printf("True");
else
printf("False");
A.True B.False C.编译错误 D.不确定
二、判断题判断题(本大题共5小题,每题2分,共10分)
21.iif (x = 5) 是合法的条件表达式。( )
22.iif-else if 结构中的条件是按顺序判断的。( )
23.if 语句的条件表达式可以是任意类型。( )
24.if-else链中,多个else会与最近的if配对。( )
25.条件运算符?:的结合方向是从右到左,例如a ? b : c ? d : e等价于a ? b : (c ? d : e)。( )
三、程序设计题(本大题共3小题,每题10分,共30分)
26.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
#include<stdio.h>
#include<conio.h>
main(){
long int i;
int bonus;
/*******space*******/
/*******space*******/
}
27.对输入的任何一个年份判断是否是闰年,将结果输出
#include<stdio.h>
main(){
int year;
scanf("%d",&year);
/*******space*******/
/*******space*******/
}
28.输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”
#include<stdio.h>
main(){
int x;
scanf("%d",&x);
/*******space*******/
/*******space*******/
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$