内容正文:
编写说明:2027版湖南省普通高等学校对口招生考试计算机应用类《考纲百套卷》,依据《2022年湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共96份试卷,其中知识训练卷62份、专题训练卷21份、课程综合卷13份。
本试卷是第34卷,为知识训练卷,按《C语言程序设计》中“输入输出与库函数”范围和要求编写。具体内容为:⑥常用C语言输入、输出函数。⑨常用C语言库函数。③常用库函数的使用。(技能部分)。
湖南省对口招生考试
计算机应用类《考纲百套卷》
第34卷 C语言程序设计——输入输出与库函数
(考试时间:45分钟 满分:100分)
一、单项选择题(共20题,每题2分,共40分)
1.C语言标准输入输出函数的声明通常需要包含( )
A.stdlib.h头文件
B.string.h头文件
C.stdio.h头文件
D.math.h头文件
2.scanf读取整型变量时,通常需要传入( )
A.变量存储地址
B.变量当前数值
C.变量名称文本
D.输入格式文本
3.printf中%d格式通常用于输出( )
A.字符类型数据
B.实型类型数据
C.字符串类型数据
D.整数类型数据
4.scanf读取double变量时应使用( )
A.使用%d格式
B.使用%lf格式
C.使用%f格式
D.使用%c格式
5.printf输出double变量时通常使用( )
A.使用%d格式
B.使用%f格式
C.使用%c格式
D.使用%s格式
6.scanf函数的返回值通常表示( )
A.输出字符总数量
B.输入字符总数量
C.格式字符串长度值
D.成功转换项目数
7.printf函数的返回值通常表示( )
A.实际输出字符数
B.成功转换项目数
C.输入字符总数量
D.格式字符串长度值
8.getchar函数的主要作用是( )
A.输出下一个字符
B.读取一行字符串
C.读取下一个字符
D.输出一行字符串
9.putchar函数的主要作用是( )
A.读取一个字符
B.输出一个字符
C.读取一行字符
D.输出一行字符
10.puts函数输出字符串后通常会( )
A.自动补充换行符
B.自动补充制表符
C.自动补充空字符
D.自动补充空格符
11.转义字符
通常表示( )
A.表示制表符号
B.表示回车符号
C.表示反斜杠符号
D.表示换行符号
12.在printf调用中,%c格式主要表示( )
A.整数类型数据
B.实型类型数据
C.字符类型数据
D.字符串类型数据
13.printf中%s格式要求实参通常是( )
A.字符串首字符地址
B.字符变量地址
C.字符串首字符值
D.字符串结束位置值
14.sqrt、pow、fabs等函数的声明通常位于( )
A.stdio.h头文件
B.stdlib.h头文件
C.math.h头文件
D.string.h头文件
15.sqrt(25.0)的结果通常是( )
A.结果为10.0
B.结果为25.0
C.结果为50.0
D.结果为5.0
16.pow(2.0, 3.0)的结果通常是( )
A.结果为4.0
B.结果为8.0
C.结果为6.0
D.结果为9.0
17.fabs(-3.5)的结果通常是( )
A.结果为3.5
B.结果为-3.5
C.结果为0.0
D.结果为7.0
18.使用sqrt等数学库函数前通常需要( )
A.包含stdio.h头文件
B.包含string.h头文件
C.包含ctype.h头文件
D.包含math.h头文件
19.printf("%.2f", 3.14159)的输出是( )
A.输出3.15数值
B.输出3.14数值
C.输出3.141数值
D.输出3.142数值
20.scanf("%d%d", &a, &b)成功读入两个整数时返回( )
A.返回成功值1
B.返回字符数2
C.返回项目数2
D.返回格式长6
二、程序填空题(共5题,每题4分,共20分)
1.下面程序读入两个整数,分别输出它们的和、差与乘积,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int a, b, sum, diff, product;
int count;
count = __________;
if (count == 2)
{
sum = a + b;
diff = a - b;
product = a * b;
printf("%d %d %d
", sum, diff, product);
}
return 0;
}
2.下面程序读取一个字符,输出其字符形式、编码值以及后继字符,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int ch, code, next;
ch = __________;
code = ch;
next = code + 1;
printf("char=%c code=%d next=%c
", ch, code, __________);
return 0;
}
3.下面程序计算直角三角形两条直角边对应的斜边和面积,请在横线处填入适当内容。
#include <stdio.h>
#include <math.h>
int main()
{
double x = 3.0, y = 4.0;
double square, hypotenuse, perimeter;
square = __________;
hypotenuse = sqrt(__________);
perimeter = x + y + hypotenuse;
printf("area=%.1f hyp=%.1f perimeter=%.1f
", square, hypotenuse, perimeter);
return 0;
}
4.下面程序计算一个实数的绝对值、平方和立方,请在横线处填入适当内容。
#include <stdio.h>
#include <math.h>
int main()
{
double x = -2.5, absolute, square, cube;
absolute = __________;
square = pow(x, __________);
cube = x * x * x;
printf("%.1f %.2f %.2f
", absolute, square, cube);
return 0;
}
5.下面程序格式化输出总价、折扣后价格和价格差,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
double price = 128.0, discount = 0.85;
double final_price, saved;
final_price = price * discount;
saved = __________;
printf("price=%.2f final=%.2f saved=%.2f
", __________, final_price, saved);
return 0;
}
三、程序改错题(共4题,每题4分,共16分)
1.下面程序读入两个double数并输出它们的平均值,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
double a, b, average;
scanf("%f%f", a, b);
average = (a + b) / 2.0;
printf("average=%d
", average);
return 0;
}
2.下面程序输出输入字符及其编码值,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int ch, code;
ch = getchar();
code = ch;
printf("char=%s code=%c
", ch, code);
return 0;
}
3.下面程序计算圆的面积和周长,其中有2处错误,请找出并改正。
#include <stdio.h>
#include <math.h>
int main()
{
double r = 2.0, area, length;
area = 3.1415926 * pow(r, 2);
length = 2 * 3.1415926 + r;
printf("area=%d length=%.1f
", area, length);
return 0;
}
4.下面程序输出平方根和绝对值,其中有2处错误,请找出并改正。
#include <stdio.h>
#include <math.h>
int main()
{
double x = -9.0, root, absolute;
root = sqrt(x);
absolute = abs(x);
printf("root=%.1f abs=%.1f
", root, absolute);
return 0;
}
四、写程序运行结果题(共4题,每题4分,共16分)
1.写出下面程序的运行结果。
#include <stdio.h>
int main()
{
int a, b, count;
a = 12;
b = 5;
count = printf("%d %d
", a, b);
printf("count=%d sum=%d
", count, a + b);
return 0;
}
2.写出下面程序的运行结果。
#include <stdio.h>
#include <math.h>
int main()
{
double x = 3.0, y, z;
y = sqrt(x * x + 4.0);
z = pow(2.0, 3.0) + fabs(-1.5);
printf("%.1f %.1f
", y, z);
return 0;
}
3.写出下面程序的运行结果。
#include <stdio.h>
int main()
{
char c = 'A';
int first, second;
first = putchar(c);
putchar('!');
second = printf(" %d
", first);
printf("second=%d
", second);
return 0;
}
4.写出下面程序的运行结果。
#include <stdio.h>
#include <math.h>
int main()
{
double value = -2.5, result;
result = fabs(value) + pow(2.0, 2.0);
printf("value=%.1f result=%.2f
", value, result);
puts("done");
return 0;
}
五、程序设计题(共1题,共8分)
1.编写程序:输入两个实数a、b和一个字符编号,输出a与b的和、差、乘积、平方和的平方根以及编号。要求使用scanf完成输入,使用sqrt、fabs等库函数,所有实数结果保留两位小数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版湖南省普通高等学校对口招生考试计算机应用类《考纲百套卷》,依据《2022年湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共96份试卷,其中知识训练卷62份、专题训练卷21份、课程综合卷13份。
本试卷是第34卷,为知识训练卷,按《C语言程序设计》中“输入输出与库函数”范围和要求编写。具体内容为:⑥常用C语言输入、输出函数。⑨常用C语言库函数。③常用库函数的使用。(技能部分)。
湖南省对口招生考试
计算机应用类《考纲百套卷》
第34卷 C语言程序设计——输入输出与库函数
(考试时间:45分钟 满分:100分)
一、单项选择题(共20题,每题2分,共40分)
1.C语言标准输入输出函数的声明通常需要包含( )
A.stdlib.h头文件
B.string.h头文件
C.stdio.h头文件
D.math.h头文件
【答案】C
【解析】printf、scanf、getchar、putchar等标准输入输出函数的声明位于stdio.h头文件中。
2.scanf读取整型变量时,通常需要传入( )
A.变量存储地址
B.变量当前数值
C.变量名称文本
D.输入格式文本
【答案】A
【解析】scanf需要把读入的数据存入变量,因此应传入变量的地址,例如scanf("%d", &n)。
3.printf中%d格式通常用于输出( )
A.字符类型数据
B.实型类型数据
C.字符串类型数据
D.整数类型数据
【答案】D
【解析】%d用于按十进制整数形式输出int等整型数据;字符、实型和字符串分别常用%c、%f和%s。
4.scanf读取double变量时应使用( )
A.使用%d格式
B.使用%lf格式
C.使用%f格式
D.使用%c格式
【答案】B
【解析】scanf读取double变量时使用%lf,读取float变量时使用%f,格式控制符必须与变量类型匹配。
5.printf输出double变量时通常使用( )
A.使用%d格式
B.使用%f格式
C.使用%c格式
D.使用%s格式
【答案】B
【解析】printf输出double变量时通常使用%f;%d用于整数,%c用于字符,%s用于字符串。
6.scanf函数的返回值通常表示( )
A.输出字符总数量
B.输入字符总数量
C.格式字符串长度值
D.成功转换项目数
【答案】D
【解析】scanf返回成功完成赋值的输入项目数;如果遇到输入失败或文件结束,返回值可能小于要求的项目数。
7.printf函数的返回值通常表示( )
A.实际输出字符数
B.成功转换项目数
C.输入字符总数量
D.格式字符串长度值
【答案】A
【解析】printf成功时返回实际输出的字符数,不包括字符串结尾的空字符。
8.getchar函数的主要作用是( )
A.输出下一个字符
B.读取一行字符串
C.读取下一个字符
D.输出一行字符串
【答案】C
【解析】getchar从标准输入读取下一个字符,并以int类型返回,以便表示普通字符和EOF。
9.putchar函数的主要作用是( )
A.读取一个字符
B.输出一个字符
C.读取一行字符
D.输出一行字符
【答案】B
【解析】putchar把给定字符输出到标准输出,适合输出单个字符;读取字符应使用getchar。
10.puts函数输出字符串后通常会( )
A.自动补充换行符
B.自动补充制表符
C.自动补充空字符
D.自动补充空格符
【答案】A
【解析】puts输出字符串内容后会自动输出一个换行符;字符串本身仍以空字符作为结束标志。
11.转义字符
通常表示( )
A.表示制表符号
B.表示回车符号
C.表示反斜杠符号
D.表示换行符号
【答案】D
【解析】
表示换行,\t表示水平制表,\r表示回车,\\表示反斜杠。
12.在printf调用中,%c格式主要表示( )
A.整数类型数据
B.实型类型数据
C.字符类型数据
D.字符串类型数据
【答案】C
【解析】%c用于按字符形式输出一个字符;若按字符编码的整数值输出,可使用%d。
13.printf中%s格式要求实参通常是( )
A.字符串首字符地址
B.字符变量地址
C.字符串首字符值
D.字符串结束位置值
【答案】A
【解析】%s需要从字符串首字符地址开始读取字符,直到遇到字符串结束标志\0。
14.sqrt、pow、fabs等函数的声明通常位于( )
A.stdio.h头文件
B.stdlib.h头文件
C.math.h头文件
D.string.h头文件
【答案】C
【解析】sqrt、pow、fabs等数学库函数的声明通常位于math.h头文件中,使用时应包含该头文件。
15.sqrt(25.0)的结果通常是( )
A.结果为10.0
B.结果为25.0
C.结果为50.0
D.结果为5.0
【答案】D
【解析】sqrt用于求非负实数的平方根,sqrt(25.0)的结果为5.0。
16.pow(2.0, 3.0)的结果通常是( )
A.结果为4.0
B.结果为8.0
C.结果为6.0
D.结果为9.0
【答案】B
【解析】pow(x,y)计算x的y次幂,pow(2.0,3.0)等于8.0。
17.fabs(-3.5)的结果通常是( )
A.结果为3.5
B.结果为-3.5
C.结果为0.0
D.结果为7.0
【答案】A
【解析】fabs用于求实数的绝对值,因此fabs(-3.5)的结果为3.5。
18.使用sqrt等数学库函数前通常需要( )
A.包含stdio.h头文件
B.包含string.h头文件
C.包含ctype.h头文件
D.包含math.h头文件
【答案】D
【解析】程序使用sqrt、pow、fabs等数学库函数时,应包含math.h以获得函数声明。
19.printf("%.2f", 3.14159)的输出是( )
A.输出3.15数值
B.输出3.14数值
C.输出3.141数值
D.输出3.142数值
【答案】B
【解析】%.2f要求按实型输出并保留两位小数,3.14159按四舍五入显示为3.14。
20.scanf("%d%d", &a, &b)成功读入两个整数时返回( )
A.返回成功值1
B.返回字符数2
C.返回项目数2
D.返回格式长6
【答案】C
【解析】scanf的返回值是成功完成赋值的输入项目数,两个%d转换都成功时返回2。
二、程序填空题(共5题,每题4分,共20分)
1.下面程序读入两个整数,分别输出它们的和、差与乘积,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int a, b, sum, diff, product;
int count;
count = __________;
if (count == 2)
{
sum = a + b;
diff = a - b;
product = a * b;
printf("%d %d %d
", sum, diff, product);
}
return 0;
}
【答案】(1)scanf("%d%d", &a, &b)(4分)。
【解析】scanf把两个转换项目成功赋值给a和b时返回2;程序在确认输入完整后,再依次计算和、差、积并输出。
2.下面程序读取一个字符,输出其字符形式、编码值以及后继字符,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
int ch, code, next;
ch = __________;
code = ch;
next = code + 1;
printf("char=%c code=%d next=%c
", ch, code, __________);
return 0;
}
【答案】(1)getchar()(2分);(2)(char)next(2分)。
【解析】getchar以int类型返回读入字符,既可按%c输出,也可把其编码值保存到code;next加1后转换为char,按字符形式输出。
3.下面程序计算直角三角形两条直角边对应的斜边和面积,请在横线处填入适当内容。
#include <stdio.h>
#include <math.h>
int main()
{
double x = 3.0, y = 4.0;
double square, hypotenuse, perimeter;
square = __________;
hypotenuse = sqrt(__________);
perimeter = x + y + hypotenuse;
printf("area=%.1f hyp=%.1f perimeter=%.1f
", square, hypotenuse, perimeter);
return 0;
}
【答案】(1)x * y / 2(2分);(2)x * x + y * y(2分)。
【解析】直角三角形面积为两直角边乘积的一半;斜边由勾股定理求得,先计算平方和,再交给sqrt求平方根。
4.下面程序计算一个实数的绝对值、平方和立方,请在横线处填入适当内容。
#include <stdio.h>
#include <math.h>
int main()
{
double x = -2.5, absolute, square, cube;
absolute = __________;
square = pow(x, __________);
cube = x * x * x;
printf("%.1f %.2f %.2f
", absolute, square, cube);
return 0;
}
【答案】(1)fabs(x)(2分);(2)2.0(2分)。
【解析】fabs用于求实数绝对值;pow(x,2.0)计算平方,指数使用double常量2.0,cube则用连续乘法计算。
5.下面程序格式化输出总价、折扣后价格和价格差,请在横线处填入适当内容。
#include <stdio.h>
int main()
{
double price = 128.0, discount = 0.85;
double final_price, saved;
final_price = price * discount;
saved = __________;
printf("price=%.2f final=%.2f saved=%.2f
", __________, final_price, saved);
return 0;
}
【答案】(1)price - final_price(2分);(2)price(2分)。
【解析】折扣后价格已经由price乘discount得到,节省金额为原价减折后价;printf的第一个%.2f对应price。
三、程序改错题(共4题,每题4分,共16分)
1.下面程序读入两个double数并输出它们的平均值,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
double a, b, average;
scanf("%f%f", a, b);
average = (a + b) / 2.0;
printf("average=%d
", average);
return 0;
}
【答案】(1)scanf("%f%f", a, b);改为scanf("%lf%lf", &a, &b);(2分);(2)printf("average=%d
", average);改为printf("average=%.2f
", average);(2分)。
【解析】scanf读取double需要%lf并传入变量地址;average是double类型,printf应使用实型格式%.2f输出。
2.下面程序输出输入字符及其编码值,其中有2处错误,请找出并改正。
#include <stdio.h>
int main()
{
int ch, code;
ch = getchar();
code = ch;
printf("char=%s code=%c
", ch, code);
return 0;
}
【答案】(1)printf("char=%s code=%c
", ch, code);中的%s改为%c(2分);(2)其中的%c改为%d(2分)。
【解析】ch是getchar返回的字符编码整数,按字符形式输出应使用%c,按编码数值输出应使用%d,不能把%c用于code的数值显示。
3.下面程序计算圆的面积和周长,其中有2处错误,请找出并改正。
#include <stdio.h>
#include <math.h>
int main()
{
double r = 2.0, area, length;
area = 3.1415926 * pow(r, 2);
length = 2 * 3.1415926 + r;
printf("area=%d length=%.1f
", area, length);
return 0;
}
【答案】(1)length = 2 * 3.1415926 + r;改为length = 2 * 3.1415926 * r;(2分);(2)printf("area=%d length=%.1f
", area, length);中的%d改为%.1f(2分)。
【解析】圆周长应为2πr,不能把半径与2π相加;area和length都是double,输出area应使用实型格式%.1f。
4.下面程序输出平方根和绝对值,其中有2处错误,请找出并改正。
#include <stdio.h>
#include <math.h>
int main()
{
double x = -9.0, root, absolute;
root = sqrt(x);
absolute = abs(x);
printf("root=%.1f abs=%.1f
", root, absolute);
return 0;
}
【答案】(1)root = sqrt(x);改为root = sqrt(-x);(2分);(2)absolute = abs(x);改为absolute = fabs(x);(2分)。
【解析】sqrt的实数定义域要求参数非负,x为负数时应先取-x;abs是整数绝对值函数,double应使用数学库函数fabs。
四、写程序运行结果题(共4题,每题4分,共16分)
1.写出下面程序的运行结果。
#include <stdio.h>
int main()
{
int a, b, count;
a = 12;
b = 5;
count = printf("%d %d
", a, b);
printf("count=%d sum=%d
", count, a + b);
return 0;
}
【答案】12 5
count=5 sum=17
【解析】第一条printf输出12、空格、5和换行,共5个字符,因此count为5;第二条输出count=5和sum=17。
2.写出下面程序的运行结果。
#include <stdio.h>
#include <math.h>
int main()
{
double x = 3.0, y, z;
y = sqrt(x * x + 4.0);
z = pow(2.0, 3.0) + fabs(-1.5);
printf("%.1f %.1f
", y, z);
return 0;
}
【答案】3.6 9.5
【解析】y为sqrt(9+4)=sqrt(13),按一位小数输出3.6;z为8.0+1.5=9.5。
3.写出下面程序的运行结果。
#include <stdio.h>
int main()
{
char c = 'A';
int first, second;
first = putchar(c);
putchar('!');
second = printf(" %d
", first);
printf("second=%d
", second);
return 0;
}
【答案】A! 65
second=4
【解析】putchar输出A后返回其字符编码65,再输出!;printf中的前导空格、65和换行共4个字符,因此second为4。
4.写出下面程序的运行结果。
#include <stdio.h>
#include <math.h>
int main()
{
double value = -2.5, result;
result = fabs(value) + pow(2.0, 2.0);
printf("value=%.1f result=%.2f
", value, result);
puts("done");
return 0;
}
【答案】value=-2.5 result=6.25
done
【解析】fabs(-2.5)为2.5,pow(2.0,2.0)为4.0,result为6.25;puts输出done后自动换行。
五、程序设计题(共1题,共8分)
1.编写程序:输入两个实数a、b和一个字符编号,输出a与b的和、差、乘积、平方和的平方根以及编号。要求使用scanf完成输入,使用sqrt、fabs等库函数,所有实数结果保留两位小数。
【答案】参考程序如下。评分点:正确包含头文件并声明、读入数据2分;正确计算和、差、积2分;正确计算平方和并调用sqrt求平方根2分;按两位小数输出并输出编号2分。
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, sum, diff, product, root;
char code;
scanf("%lf%lf %c", &a, &b, &code);
sum = a + b;
diff = fabs(a - b);
product = a * b;
root = sqrt(a * a + b * b);
printf("sum=%.2f diff=%.2f product=%.2f root=%.2f code=%c
", sum, diff, product, root, code);
return 0;
}
【解析】程序使用scanf按double、char类型匹配格式读入数据;差值使用fabs保证结果非负,平方和使用a*a+b*b计算,再调用sqrt求平方根,最后用%.2f统一格式化实数结果。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$