内容正文:
编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。
本专辑第16卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】:
(三)分支结构程序设计:条件语句
重庆市高等职业教育分类考试 计算机类
《C语言程序设计》考点双析卷 第16卷
条件语句 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题2分,共40分)
1.以下程序段的运行结果是( )
int a=5,b=4,c=2,d=1;
if(a>b>c)d=3;
else d--:
printf("%d
",d);
A.0 B.1 C.2 D.3
2.C语言对于嵌套if语句规定 else总是与____匹配。( )
A.与最外层的if B.与之前最近的if
C.与之前最近的不带else 的if D.与最近的{}之前的if
3.已知 int a=1,b=2,c=3,d=4;,则条件表达式 a>b? a:c<d?c:d的值是( )
A.4 B.3 C.2 D.1
4.以下程序段的输出结果是( )
int x=1,y=0;
if(!x) y++;
else if(x==0)if(x) y+=5;else y+=6;printf("%d",y);
A.0 B.1 C.2 D.3
5.执行下列程序段时输入:153<回车>,输出结果是( )
int a,b,c,x;scanf("%d",&x);
if(x<1000&&x>=100)
{a=x/100;b=x/10%10;c=x%10;
if(x==a*a*a+b*b*b+c*c*c)printf("是水仙花数");
else printf("不是水仙花数");}
else printf("输入错误");
A.是水仙花数 B.不是水仙花数 C.输入错误 D.无输出
6.执行以下程序段时输入:35<回车>,输出结果为( )
int x;scanf("%d",&x);
if(x%3==0) {if(x%5==0)printf("yes");}
else printf("no");
A.yes B.no C.35 D.无输出
7.执行以下程序段时输入:12 35 5<回车>,输出结果是( )
int x,y,z,t;scanf("%d%d%d",&x,&y,&z);
if(x>y){t=x;x=y;y=t;}
if(x>z){t=x;x=z;z=t;}
if(y>z){t=y;y=z;z=t;}printf("%d,%d,%d",x,y,z);
A.12,35,5 B.5,12,35 C.12,5,35 D.35,12,5
8.执行以下程序段的输出结果是( )
int x=1,y=2,z=3;
if(x<y)
if(y<z)printf("%d",++z);
else printf("%d",++y);
else printf("%d",++x);
A.4 B.2 C.3 D.1
9.设有定义:int a=1,b=2,c=3;以下if语句中执行效果与其他3个不同的是( )
A.if(a>b)c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c;}
10.执行以下程序段的输出结果是( )
int a=100;
if(a>100)printf("%d",a>100);
else printf("%d",a<=100);
A.a>100 B.a<=100 C.0 D.1
11.下列程序段的输出结果是( )
main()
{int a=1;
if(a--!=1)printf("789");
else printf("13");getch();}
A.13 B.789 C.78913 D.有语法错误
12.执行以下程序段的运行结果是( )
main()
{int a=3,b=3,x=3;
if(x=a+b) printf("****");
else printf("!!!!");getch();}
A.**** B.!!!!
C.不能通过编译,有语法错误 D.能通过编译,但不能连接
13.以下程序段的输出结果是( )
main()
{int a=3,b=2,c=4,d;
if(a<b) d=b;
else d=a;
if(d<c)d=c;
printf("%d",d);getch();}
A.0 B.2 C.3 D.4
14.已知int a=10,b=20;,以下语句中编译时会出错的是( )
A.if(a>b);
B.if(a==b)&&(a!=b) a=a+b;
C.if(a!=b)scanf(“%d”,&a);else scanf(“%d”,&b);
D.if(a<b){a++;b++;}
15.下列程序段的运行结果是( )
main()
{int a=3,b=2,c=4,d;
if(a>b)
{d=a;a=b;b=d;}
if(b>c)
{d=b;b=c;c=d;}
printf("%d,%d,%d",a,b,c);getch();}
A.4,2,2 B.2,4,3 C.2,3,4 D.3,2,4
16.执行以下程序段的输出结果是( )
main()
{int a=1,b=0;
if(!a)b++;
else if(a==0)
if(a) b+=2;
else b+=3;
printf("%d
",b);getch();}
A.0 B.1 C.2 D.3
17.执行以下程序段的输出结果是( )
main()
{int w=2,x=0,y=2,z=4;
printf("%d",(--w)?w*2:y<z?y:x);getch();}
A.1 B.2 C.3 D.4
18.执行下列程序段后的输出结果是( )
main()
{int w=2,x=0,y=2,z=4,m;
m=w<x?w--:x++;
m=m<y?m:y--;
m=m<z?m:z++;
printf("%d",m);getch();}
A.0 B.1 C.2 D.3
19.在C语言中,为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与 配对( )
A.缩排位置相同的if
B.同一行上的if
C.其之后最近的if
D.其之前最近且没有else配对的if
20.若给定条件表达式:(M)?(a++):(a--),则表达式“(M)”与 等价( )
A.(M==0) B.(M==1) C.(M!=0) D.(M!=1)
二、程序设计题(本大题共4小题,每题15分,共60分)
21.对输入的任何一个年份判断是否是闰年,将结果输出
#include<stdio.h>
main(){
int year;
scanf("%d",&year);
/*******space*******/
/*******space*******/
}
22.输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”
#include<stdio.h>
main(){
int x;
scanf("%d",&x);
/*******space*******/
/*******space*******/
}
23.输入三角形的三条边,判断能否构成三角形,若能,判断是直角三角形,还是等边三角形,还是等腰三角形或一般三角形。
#include<stdio.h>
void main(){
float a,b,c;
/*******space*******/
/*******space*******/
}
24.企业发放的奖金根据利润提成。利润(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*******/
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。
本专辑第16卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】:
(三)分支结构程序设计:条件语句
重庆市高等职业教育分类考试 计算机类
《C语言程序设计》考点双析卷 第16卷
条件语句 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题2分,共40分)
1.以下程序段的运行结果是( )
int a=5,b=4,c=2,d=1;
if(a>b>c)d=3;
else d--:
printf("%d
",d);
A.0 B.1 C.2 D.3
【答案】C
2.C语言对于嵌套if语句规定 else总是与____匹配。( )
A.与最外层的if B.与之前最近的if
C.与之前最近的不带else 的if D.与最近的{}之前的if
【答案】C
3.已知 int a=1,b=2,c=3,d=4;,则条件表达式 a>b? a:c<d?c:d的值是( )
A.4 B.3 C.2 D.1
【答案】B
4.以下程序段的输出结果是( )
int x=1,y=0;
if(!x) y++;
else if(x==0)if(x) y+=5;else y+=6;printf("%d",y);
A.0 B.1 C.2 D.3
【答案】A
5.执行下列程序段时输入:153<回车>,输出结果是( )
int a,b,c,x;scanf("%d",&x);
if(x<1000&&x>=100)
{a=x/100;b=x/10%10;c=x%10;
if(x==a*a*a+b*b*b+c*c*c)printf("是水仙花数");
else printf("不是水仙花数");}
else printf("输入错误");
A.是水仙花数 B.不是水仙花数 C.输入错误 D.无输出
【答案】A
6.执行以下程序段时输入:35<回车>,输出结果为( )
int x;scanf("%d",&x);
if(x%3==0) {if(x%5==0)printf("yes");}
else printf("no");
A.yes B.no C.35 D.无输出
【答案】B
7.执行以下程序段时输入:12 35 5<回车>,输出结果是( )
int x,y,z,t;scanf("%d%d%d",&x,&y,&z);
if(x>y){t=x;x=y;y=t;}
if(x>z){t=x;x=z;z=t;}
if(y>z){t=y;y=z;z=t;}printf("%d,%d,%d",x,y,z);
A.12,35,5 B.5,12,35 C.12,5,35 D.35,12,5
【答案】B
8.执行以下程序段的输出结果是( )
int x=1,y=2,z=3;
if(x<y)
if(y<z)printf("%d",++z);
else printf("%d",++y);
else printf("%d",++x);
A.4 B.2 C.3 D.1
【答案】A
9.设有定义:int a=1,b=2,c=3;以下if语句中执行效果与其他3个不同的是( )
A.if(a>b)c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c;}
【答案】C
10.执行以下程序段的输出结果是( )
int a=100;
if(a>100)printf("%d",a>100);
else printf("%d",a<=100);
A.a>100 B.a<=100 C.0 D.1
【答案】D
11.下列程序段的输出结果是( )
main()
{int a=1;
if(a--!=1)printf("789");
else printf("13");getch();}
A.13 B.789 C.78913 D.有语法错误
【答案】A
12.执行以下程序段的运行结果是( )
main()
{int a=3,b=3,x=3;
if(x=a+b) printf("****");
else printf("!!!!");getch();}
A.**** B.!!!!
C.不能通过编译,有语法错误 D.能通过编译,但不能连接
【答案】A
13.以下程序段的输出结果是( )
main()
{int a=3,b=2,c=4,d;
if(a<b) d=b;
else d=a;
if(d<c)d=c;
printf("%d",d);getch();}
A.0 B.2 C.3 D.4
【答案】D
14.已知int a=10,b=20;,以下语句中编译时会出错的是( )
A.if(a>b);
B.if(a==b)&&(a!=b) a=a+b;
C.if(a!=b)scanf(“%d”,&a);else scanf(“%d”,&b);
D.if(a<b){a++;b++;}
【答案】B
15.下列程序段的运行结果是( )
main()
{int a=3,b=2,c=4,d;
if(a>b)
{d=a;a=b;b=d;}
if(b>c)
{d=b;b=c;c=d;}
printf("%d,%d,%d",a,b,c);getch();}
A.4,2,2 B.2,4,3 C.2,3,4 D.3,2,4
【答案】C
16.执行以下程序段的输出结果是( )
main()
{int a=1,b=0;
if(!a)b++;
else if(a==0)
if(a) b+=2;
else b+=3;
printf("%d
",b);getch();}
A.0 B.1 C.2 D.3
【答案】A
17.执行以下程序段的输出结果是( )
main()
{int w=2,x=0,y=2,z=4;
printf("%d",(--w)?w*2:y<z?y:x);getch();}
A.1 B.2 C.3 D.4
【答案】B
18.执行下列程序段后的输出结果是( )
main()
{int w=2,x=0,y=2,z=4,m;
m=w<x?w--:x++;
m=m<y?m:y--;
m=m<z?m:z++;
printf("%d",m);getch();}
A.0 B.1 C.2 D.3
【答案】A
19.在C语言中,为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与 配对( )
A.缩排位置相同的if
B.同一行上的if
C.其之后最近的if
D.其之前最近且没有else配对的if
【答案】D
20.若给定条件表达式:(M)?(a++):(a--),则表达式“(M)”与 等价( )
A.(M==0) B.(M==1) C.(M!=0) D.(M!=1)
【答案】C
二、程序设计题(本大题共4小题,每题15分,共60分)
21.对输入的任何一个年份判断是否是闰年,将结果输出
#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整除,但此题得分点要分开书写,即普通闰年和超级闰年的条件要分开书写。
22.输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”
#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语句。
23.输入三角形的三条边,判断能否构成三角形,若能,判断是直角三角形,还是等边三角形,还是等腰三角形或一般三角形。
#include<stdio.h>
void main(){
float a,b,c;
/*******space*******/
/*******space*******/
}
【答案】if(a+b>c && a+c>b && b+c>a){
if(a==b && b==c){
printf("等边三角形");
}
else if(a==b || b==c || a==c){
printf("等腰三角形");
}
else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
printf("直角三角形");
}
else{
printf("一般三角形");
}
}
【详解】构成三角形的必要条件是任意两边之和大于第三边,等边三角形的必要条件是三边相等,等腰三角形是任意两边相等,直角三角形根据勾股定理,其它情况则是一般三角形。
24.企业发放的奖金根据利润提成。利润(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;
【详解】考察点依然是多重分支结果,结合数学里的分段函数进行考察,属于应用题。
满足不同的区间段计算不同的奖金。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$