内容正文:
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第7卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(四)条件语句
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第7卷
条件语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.给出以下问题:
①求面积为1的正三角形的周长;
②求键盘所输入的三个数的算术平均数;
③求键盘所输入的两个数中较小数;
④求函数当自变量取x0时的函数值.
其中不需要用条件语句来描述算法的问题有( )
A.1个 B.2个 C.3个 D.4个
【答案】B
2.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是( )
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else printf("%d
",x - -); }
A.7和5 B.6和3 C.7和4 D.6和4
【答案】A
3.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是( )
A.必须是逻辑值 B.必须是整数值
C.必须是正数 D.可以是任意合法的数值
【答案】D
4.若执行下面的程序时从键盘上输入3和4,则输出是( )
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d
",s);}
A.14 B.16 C.18 D.20
【答案】B
5.以下运算符中优先级最高的是( )
A.&& B.+ C.!= D.?:
【答案】B
6.在嵌套使用if语句时,C语言规定else总是( )
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
【答案】C
7.为了避免嵌套的if—else 语句的二义性,C 语言规定else 总是与 组成配对关系。( )
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
【答案】C
8.在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是( )
Int main(void)
{
Int a,b,s,t;
scanf(“%d,%d”,&a,&b);
s=1;t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
else if(a==b) t=5;
else t=2*s;
printf(“t=%d
”,t);
return 0;
}
A.a>b B.a<b<0 C.0<a<b D.0>a>b
【答案】C
9.有一函数,以下程序段中错误的是( )
A.if(x>0) y=1 ;
else if(x==0) y=0;
else y=-1;
B.y=0;
if(x>0)y=1;
else if(x<0) y=-1;
C.y=0;
if(x>=0);
if(x>0)y=1;
else y=-1;
D.if (x>=0)
if(x>0)y=1;
else y=0;
else y=-1;
【答案】C
10.以下程序的运行结果是( )
main()
{int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d",i,j,k);getch();}
A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3
【答案】C
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小题,每题10分,共40分)
21.企业发放的奖金根据利润提成。利润(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;
【详解】考察点依然是多重分支结果,结合数学里的分段函数进行考察,属于应用题。
满足不同的区间段计算不同的奖金。
22.对输入的任何一个年份判断是否是闰年,将结果输出
#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整除,但此题得分点要分开书写,即普通闰年和超级闰年的条件要分开书写。
23.输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”
#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语句。
24.编写程序输入三位数(100—999),然后按数字逆序输出
#include <stdio.h>
void main()
{
int n,ge,shi,bai;
scanf("%d",&n);
/*******space*******/
/*******space*******/
}
【答案】if(x<100 || x>999) {
printf("输入的数据有误");
}
else{
ge=n%10;
shi=n/10%10;
bai=n/100%10;
printf("%d%d%d",ge,shi,bai);
}
【详解】题目要求输入的数是三位数,所以对输入的数做判断先,不满足要求的数做提示。满足要求的数进行数位分离后输出即可,注意是逆序输出,即先输出个位。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第7卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(四)条件语句
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第7卷
条件语句 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.给出以下问题:
①求面积为1的正三角形的周长;
②求键盘所输入的三个数的算术平均数;
③求键盘所输入的两个数中较小数;
④求函数当自变量取x0时的函数值.
其中不需要用条件语句来描述算法的问题有( )
A.1个 B.2个 C.3个 D.4个
2.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是( )
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else printf("%d
",x - -); }
A.7和5 B.6和3 C.7和4 D.6和4
3.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是( )
A.必须是逻辑值 B.必须是整数值
C.必须是正数 D.可以是任意合法的数值
4.若执行下面的程序时从键盘上输入3和4,则输出是( )
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d
",s);}
A.14 B.16 C.18 D.20
5.以下运算符中优先级最高的是( )
A.&& B.+ C.!= D.?:
6.在嵌套使用if语句时,C语言规定else总是( )
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
7.为了避免嵌套的if—else 语句的二义性,C 语言规定else 总是与 组成配对关系。( )
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
8.在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是( )
Int main(void)
{
Int a,b,s,t;
scanf(“%d,%d”,&a,&b);
s=1;t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
else if(a==b) t=5;
else t=2*s;
printf(“t=%d
”,t);
return 0;
}
A.a>b B.a<b<0 C.0<a<b D.0>a>b
9.有一函数,以下程序段中错误的是( )
A.if(x>0) y=1 ;
else if(x==0) y=0;
else y=-1;
B.y=0;
if(x>0)y=1;
else if(x<0) y=-1;
C.y=0;
if(x>=0);
if(x>0)y=1;
else y=-1;
D.if (x>=0)
if(x>0)y=1;
else y=0;
else y=-1;
10.以下程序的运行结果是( )
main()
{int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d",i,j,k);getch();}
A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3
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小题,每题10分,共40分)
21.企业发放的奖金根据利润提成。利润(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*******/
}
22.对输入的任何一个年份判断是否是闰年,将结果输出
#include<stdio.h>
main(){
int year;
scanf("%d",&year);
/*******space*******/
/*******space*******/
}
23.输入一个数,如果输入是正数,显示“输入的数大于零”;如果输入是零,显示“输入的数等于零”;如果输入小于零,显示“输入小于零”
#include<stdio.h>
main(){
int x;
scanf("%d",&x);
/*******space*******/
/*******space*******/
}
24.编写程序输入三位数(100—999),然后按数字逆序输出
#include <stdio.h>
void main()
{
int n,ge,shi,bai;
scanf("%d",&n);
/*******space*******/
/*******space*******/
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$