内容正文:
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第8卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(四)条件语句
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第8卷
条件语句 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.设有语句段:int a=3,b=2,c=1;c=5?a++:b--;printf(“%d”,c);则输出结果为( )
A.2 B.3 C.4 D.5
2.已知int a=0,b=4;,下列语句中i++;语句能够执行的是( )
A.if(a)i++; B.if(a=b)i++; C.if(a>=b)i++; D.if(!(b-a))i++;
3.C语言中,if语句用做条件判断的表达式为( )
A.关系表达式 B.逻辑表达式 C.算术表达式 D.任意表达式
4.以下if语句中(设变量均已正确定义),编译时会出错的是( )
A.if(i<j); B.if(i==j)i=0,j++;
C.if(i<j)i=0,else j=0; D.if(i!=j) i=j;
5.下列程序的运行结果是( )
main()
{ int m=5;
if(m++>5) printf("%d",--m);
else printf("%d",m++);getch();}
A.4 B.5 C.6 D.7
6.下列程序段的输出结果是( )
main()
{ int a=5,b=1,c=0;
if(a==b+c) printf("2024")
else printf("2023");getch();}
A.有语法错误,不能通过编译
B.可以通过编译,但不能通过连接
C.输出:2023
D.输出:2024
7.下列if语句形式中,不正确的一项是( )
A.if(x!=1000) y++;
B.if(x==y) x=x*y;
C.if(x==y) {x++;y++;}
D.if(x!=y) scanf("%d",&x) else scanf("%d",&y);
8.若变量已正确定义,有以下程序段,则其输出结果是( )
int a=3,b=5,c=7;
if(a>b) a=b;c=a;
printf("%d,%d,%d",a,b,c);
A.3,5,3 B.3,5,5 C.3,5,7 D.3,3,5
9.if (c >= '0' && c <= '9') 判断的是c是否是( )
A.大写字母 B.小写字母 C.数字字符 D.运算符
10.执行以下程序的输出结果是( )
void fun(char c)
{if(c>'x') fun(c-1);
printf ("%c",c);}
main()
{fun('z');getch();}
A.xyz B.wxyz C.zyxw D.zyx
11.执行以下程序的输出结果是( )
void fun (int x)
{ if (x/5>0) fun(x/5);
printf("%d ",x) ;}
main( )
{ fun(11); printf("
");getch();}
A.2 11 B.3 11 C.2 12 D.2 17
12.执行以下程序的输出结果是( )
int fun (int x,int y)
{ if (x!=y) return ((x+y)/2);
else return (x);}
main()
{ int a=4,b=5,c=6;
printf("%d
",fun(2*a,fun(b,c)));getch();}
A.3 B.6 C.8 D.12
13.执行以下程序的输出结果是( )
void fun(int x)
{if(x<10)printf("yes");
else printf("no");}
main()
{fun(10);getch();}
A.no B.yes C.有语法错误 D.可以通过编译但不能执行
14.在下述程序中,判断i>j共执行的次数是( )
main()
{ int i=0, j=10, k=2, s=0;
for (;;)
{ i+=k;
if(i>j)
{ printf("%d",s);
break;
} s+=i; } }
A.4 B.5 C.6 D.7
15.以下是if语句的基本形式:if(表达式)语句,其中“表达式” ( )
A.必须是逻辑表达式
B.必须是关系表达式
C.必须是逻辑表达式或关系表达式
D.可以是任意合法的表达式
16.下列程序的运行结果为( )
#include<stdio.h>
main()
{int a=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
else c+=1;
printf("%d
", c);
}
A.0 B.1 C.2 D.3
17.阅读下列程序,其运行结果是( )
#include<stdio.h>
main()
{
char c='A';
if('0'<=c<='39')
printf(" YES");
else
printf(" NO");
}
A.YES B.NO C.YESNO D.语句错误
18.若有说明:int,y;不能实现以下函数关系的程序段是( )
A.if(x<0)y=-1;
else if(x==0)y=0;
else y=1;
B.y=-1;
if(x!=0)
if(x>0)y=1;
else y=0;
C.y=0;
if(x>=0)
{if(x>0)y=1;}
D.if(x>=0)
19.若w=1,x=2,y=3,z=4;,则条件表达式w>x?w:y<z?y:z的结果为 ( )
A.4 B.3 C.2 D.1
20.下列程序的输出结果是( )
#include <stdio.h>
main() {
int i, s = 0;
for (i = 1; i < 10; i++)
if (!(i % 2) && !(i % 3))
s += i;
printf("%d
", s);
}
A.5 B.6 C.7 D.8
二、程序设计题(本大题共4小题,每题10分,共40分)
21.输入月份和订购机票的数量,计算机票优惠率并输出。计算规则如表所示。
月份m
{7,8,9}
{1~5,10,11}
{6,12}
数量n
n>=20
n<20
n>=20
n<20
优惠率r(%)
15
5
30
20
10
22.输入图书的定价和数量,计算购书金额并输出。其中,图书销售策略为:正常情况下按九折出售,超过十本按八五折出售,超过100本按八折出售。
23.代码实现输入一个 n×m 的矩阵,查找并输出其鞍点(某元素在行中最大,在列中最小)。
24.输入三角形的三条边,判断能否构成三角形,若能,判断是直角三角形,还是等边三角形,还是等腰三角形或一般三角形。
#include<stdio.h>
void main(){
float a,b,c;
/*******space*******/
/*******space*******/
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第8卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(四)条件语句
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第8卷
条件语句 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.设有语句段:int a=3,b=2,c=1;c=5?a++:b--;printf(“%d”,c);则输出结果为( )
A.2 B.3 C.4 D.5
【答案】B
2.已知int a=0,b=4;,下列语句中i++;语句能够执行的是( )
A.if(a)i++; B.if(a=b)i++; C.if(a>=b)i++; D.if(!(b-a))i++;
【答案】B
3.C语言中,if语句用做条件判断的表达式为( )
A.关系表达式 B.逻辑表达式 C.算术表达式 D.任意表达式
【答案】D
4.以下if语句中(设变量均已正确定义),编译时会出错的是( )
A.if(i<j); B.if(i==j)i=0,j++;
C.if(i<j)i=0,else j=0; D.if(i!=j) i=j;
【答案】C
5.下列程序的运行结果是( )
main()
{ int m=5;
if(m++>5) printf("%d",--m);
else printf("%d",m++);getch();}
A.4 B.5 C.6 D.7
【答案】D
6.下列程序段的输出结果是( )
main()
{ int a=5,b=1,c=0;
if(a==b+c) printf("2024")
else printf("2023");getch();}
A.有语法错误,不能通过编译
B.可以通过编译,但不能通过连接
C.输出:2023
D.输出:2024
【答案】A
7.下列if语句形式中,不正确的一项是( )
A.if(x!=1000) y++;
B.if(x==y) x=x*y;
C.if(x==y) {x++;y++;}
D.if(x!=y) scanf("%d",&x) else scanf("%d",&y);
【答案】D
8.若变量已正确定义,有以下程序段,则其输出结果是( )
int a=3,b=5,c=7;
if(a>b) a=b;c=a;
printf("%d,%d,%d",a,b,c);
A.3,5,3 B.3,5,5 C.3,5,7 D.3,3,5
【答案】B
9.if (c >= '0' && c <= '9') 判断的是c是否是( )
A.大写字母 B.小写字母 C.数字字符 D.运算符
【答案】C
【详解】ASCII码中,'0'~'9'是连续的48~57。c >= '0' && c <= '9'检查c的ASCII值是否在48~57之间。
10.执行以下程序的输出结果是( )
void fun(char c)
{if(c>'x') fun(c-1);
printf ("%c",c);}
main()
{fun('z');getch();}
A.xyz B.wxyz C.zyxw D.zyx
【答案】A
【详解】递归调用条件 c > 'x'('x'的ASCII为120),'z'(122)和'y'(121)满足条件,'x'(120)不满足。
执行顺序:
fun('z') 调用 fun('y')
fun('y') 调用 fun('x')
fun('x') 不递归,直接打印 x
返回到 fun('y'),打印 y
返回到 fun('z'),打印 z
输出为xyz。
11.执行以下程序的输出结果是( )
void fun (int x)
{ if (x/5>0) fun(x/5);
printf("%d ",x) ;}
main( )
{ fun(11); printf("
");getch();}
A.2 11 B.3 11 C.2 12 D.2 17
【答案】A
12.执行以下程序的输出结果是( )
int fun (int x,int y)
{ if (x!=y) return ((x+y)/2);
else return (x);}
main()
{ int a=4,b=5,c=6;
printf("%d
",fun(2*a,fun(b,c)));getch();}
A.3 B.6 C.8 D.12
【答案】B
13.执行以下程序的输出结果是( )
void fun(int x)
{if(x<10)printf("yes");
else printf("no");}
main()
{fun(10);getch();}
A.no B.yes C.有语法错误 D.可以通过编译但不能执行
【答案】A
14.在下述程序中,判断i>j共执行的次数是( )
main()
{ int i=0, j=10, k=2, s=0;
for (;;)
{ i+=k;
if(i>j)
{ printf("%d",s);
break;
} s+=i; } }
A.4 B.5 C.6 D.7
【答案】C
15.以下是if语句的基本形式:if(表达式)语句,其中“表达式” ( )
A.必须是逻辑表达式
B.必须是关系表达式
C.必须是逻辑表达式或关系表达式
D.可以是任意合法的表达式
【答案】D
16.下列程序的运行结果为( )
#include<stdio.h>
main()
{int a=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
else c+=1;
printf("%d
", c);
}
A.0 B.1 C.2 D.3
【答案】C
17.阅读下列程序,其运行结果是( )
#include<stdio.h>
main()
{
char c='A';
if('0'<=c<='39')
printf(" YES");
else
printf(" NO");
}
A.YES B.NO C.YESNO D.语句错误
【答案】A
18.若有说明:int,y;不能实现以下函数关系的程序段是( )
A.if(x<0)y=-1;
else if(x==0)y=0;
else y=1;
B.y=-1;
if(x!=0)
if(x>0)y=1;
else y=0;
C.y=0;
if(x>=0)
{if(x>0)y=1;}
D.if(x>=0)
【答案】B
19.若w=1,x=2,y=3,z=4;,则条件表达式w>x?w:y<z?y:z的结果为 ( )
A.4 B.3 C.2 D.1
【答案】B
20.下列程序的输出结果是( )
#include <stdio.h>
main() {
int i, s = 0;
for (i = 1; i < 10; i++)
if (!(i % 2) && !(i % 3))
s += i;
printf("%d
", s);
}
A.5 B.6 C.7 D.8
【答案】B
二、程序设计题(本大题共4小题,每题10分,共40分)
21.输入月份和订购机票的数量,计算机票优惠率并输出。计算规则如表所示。
月份m
{7,8,9}
{1~5,10,11}
{6,12}
数量n
n>=20
n<20
n>=20
n<20
优惠率r(%)
15
5
30
20
10
【答案】#include <stdio.h>
main() {
float r;
int month, num;
printf("请输入月份和机票数量:");
scanf("%d%d", &month, &num);
if (month == 6 || month == 12)
r = 0.1;
else if (month == 7 || month == 8 || month == 9) {
if (num >= 20)
r = 0.15;
else
r = 0.05;
} else {
if (num >= 20)
r = 0.3;
else
r = 0.2;
}
printf("优惠率为:%.2f", r);
}
22.输入图书的定价和数量,计算购书金额并输出。其中,图书销售策略为:正常情况下按九折出售,超过十本按八五折出售,超过100本按八折出售。
【答案】#include <stdio.h>
main() {
float price, r; //r为折扣
int num;
printf("请输入定价和数量:");
scanf("%f %d", &price,&num);
if (num <= 10)
r = 0.9;
else if (num <= 100)
r = 0.85;
else
r = 0.8;
printf("购书金额为:%.2f", num * price * r);
}
23.代码实现输入一个 n×m 的矩阵,查找并输出其鞍点(某元素在行中最大,在列中最小)。
【答案】#include <stdio.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
int matrix[100][100];
// 读取矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
int hasSaddle = 0;
// 遍历每一行
for (int i = 0; i < n; i++) {
// 找到当前行的最大值及其列号
int max_col = 0;
for (int j = 1; j < m; j++) {
if (matrix[i][j] > matrix[i][max_col]) {
max_col = j;
}
}
// 检查该元素是否是所在列的最小值
int isMin = 1;
for (int k = 0; k < n; k++) {
if (matrix[k][max_col] < matrix[i][max_col]) {
isMin = 0;
break;
}
}
// 如果是鞍点,则输出并标记
if (isMin) {
printf("鞍点为:%d(第%d行第%d列)
", matrix[i][max_col], i, max_col);
hasSaddle = 1;
}
}
// 如果没有找到鞍点
if (!hasSaddle) {
printf("矩阵中没有鞍点
");
}
return 0;
}
24.输入三角形的三条边,判断能否构成三角形,若能,判断是直角三角形,还是等边三角形,还是等腰三角形或一般三角形。
#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("一般三角形");
}
}
【详解】构成三角形的必要条件是任意两边之和大于第三边,等边三角形的必要条件是三边相等,等腰三角形是任意两边相等,直角三角形根据勾股定理,其它情况则是一般三角形。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$