内容正文:
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第6卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(三)数据的输入与输出
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第6卷
数据的输入与输出 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.使用getchar和putchar函数进行单个字符输入输出时,必须使用预处理命令”#include”包括( )文件
A.stdio.h B.math.h C.string.h D.stdlib.h
【答案】A
【详解】这道题考查的是C语言中字符输入输出函数所需的头文件。getchar和putchar函数属于标准输入输出函数,其相关声明都包含在stdio.h头文件中
2.若执行下面的程序时从键盘上输入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
3.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句为( )
A.scanf(“%d%lx,%le”,&x,&y,&z);
B.scanf(“%2d*%d%lf”,&x,&y,&z);
C.scanf(“%x%*d%o”,&x,&y,);
D.scanf(“%x%o%6.2f”,&x,&y,&z);
【答案】D
4.以下程序的运行结果是( )
#include<stdio.h>
#define X 5
#define Y X+1
#define Z Y*X/2
int main ( ) {
int a=Y;
printf("%d
",Z);
printf("%d
",--a);
return 0;
}
A.75 B.125 C.76 D.126
【答案】A
5.以下程序的运行结果是( )
#include<stdio.h>
#define ADD(x) x+x
int main ( )
{
int m=1,n=2,k=3,sum ;
sum = ADD(m+n)*k ;
printf(“%d
”,sum) ;
return 0;
}
A.18 B.9 C.12 D.10
【答案】D
6.#include <stdio.h>
main()
{ char a,b,c,d;
scanf(“%c%c”,&a,&b);
c=getchar(); d=getchar();
printf(“%c%c%c%c
”,a,b,c,d);
}
当执行程序时,按下列方式输入数据:
12<CR>
34<CR>
则输出结果是( )
A.1234 B.12 C.12 D.12
【答案】B
7.以下程序运行的结果是( )
#define X 5
#define Y X+1
#define Z Y*X/2
void main( )
{
int a=Y ;
printf(" %d,%d" ,Z,--a ) ;
}
A.7,6 B.12,6 C.12,5 D.7,5
【答案】D
8.有以下程序,程序输出为( )
main()
{ int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d
",a,b,c,d);}
A.0,1,2,0 B.0,0,0,3 C.1,1,2,0 D.编译有错
【答案】D
9.执行下列程序段时,若键盘上输入EFG,则输出结果是( )
main( ){
char ch;
ch=getchar( );
putchar(ch) ;}
A.E B.EF C.EFG D.输出不确定的值
【答案】A
【详解】getchar() 每次只读取一个字符(从输入缓冲区中读取第一个字符)。
输入"EFG"后,getchar() 只读取第一个字符'E',并赋值给变量ch。
putchar(ch) 输出字符'E'。
后续的"FG"仍留在输入缓冲区中,但程序没有继续读取,因此只输出'E'。
10.写出以下程序的执行结果( )
char c='z';
printf("%c",c-25);
A.a B.B.Z C.z-25 D.y
【答案】A
【详解】字符变量 c 被赋值为 'z',其ASCII值为122。
c-25 即 122 - 25 = 97,对应ASCII字符 'a'。
printf 使用 %c 格式输出,因此打印字符 'a'。
11.执行下列语句的结果是( )
i=3;
printf("%d,",++i);
printf("%d",i++);
A.3,3 B.3,4 C.4,3 D.4,4
【答案】D
【详解】i=3;初始化变量i为3。
++i是前自增,先执行i自增(i变为4),然后输出4。
i++是后自增,先输出当前i的值(4),然后i自增(i变为5)。
因此,输出结果为"4,4"。
12.下列程序的结果是( )
#include<stdio.h>
int fun(int x)
{int p;
if(x==0||x==1) p=3;
else p=x-fun(x-2);
return p;}
main(){printf("%d
",fun(7));}
A.1 B.2 C.3 D.4
【答案】B
13.以下程序段的运行结果是( )
int a;char c=10;float f=125.0;double x;a=f/=c*=(x=5.5);
printf("%d,%d,%.1f,%.1f",a,c,f,x);
A.2,55,2.3,5.5 B.3,55,2.3,5.5 C.2,55.0,2.3,5.5 D.2,55,2.3,6.0
【答案】A
14.以下程序段的输出结果是( )
float a=3.4;int b,c=45,d;b=256;d=c/3;
printf("a=%.1f,b=%u,d=%x",a,b,d);
A.a=3.4,b=-256,d=f B.a=3.400000,b=256,d=f
C.a=3.4,b=256,d=15 D.a=3.4,b=256,d=f
【答案】D
15.以下程序段的输出结果是( )
char a,b,c='x';a='A';b=111;putchar(a+1);putchar(b);c++;putchar(c);
A.Boy B.Bna C.boy D.bOy
【答案】A
16.已有定义:int x=10,y=3,z;执行语句:printf("%d",z=(x%y,x/y));后的输出结果是( )
A.0 B.1 C.2 D.3
【答案】D
17.若有定义语句:char c1,c2;,则以下不正确的输入输出语句是( )
A.scanf(“c1=%cc2=%c”,&c1,&c2); B.c1=getchar();
C.putchar(c2); D.putchar(c1,c2);
【答案】D
18.设变量均已正确定义,若要通过语句:scanf(“%d%c%d%c”,%a1,&c1,&a2,&c2);为int型变量a1和a2赋值10和20,为char型变量c1和c2赋值a和b,下列正确的输入是( )(注:□表示空格)
A.10□e□30□f<回车> B.10□e30□f<回车>
C.10□e<回车>30□f<回车> D.10e<回车>30f<回车>
【答案】D
【详解】%c输入时会将空格当做字符型数值输入字符变量。
19.设有定义语句int a,b,c;,若要通过语句scanf(“%d,%d”,&a,&b);使得变量a得到数值10,变量b得到数值2,下面输入形式中错误的是( )(注:□代表空格)
A.6,5<Enter> B.6,□□5<Enter>
C.65<Enter> D.6, <Enter>5<Enter>
【答案】C
【详解】非格式符原样输入,在输入时int型数据时,空格和回车键可作为分隔符。
20.下列有关scanf函数的叙述中,正确的是( )
A.输入项可以为一实型常量,如scanf(“%f”,3.5);
B.只有格式控制没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%3.1f”,&a);
D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&a);
【答案】D
【详解】注意,scanf函数不能控制实型数据的精度。
二、程序设计题(本大题共4小题,每题10分,共40分)
21.输入一个数字n(n<10000),输出1~n之间素数的个数。
#include<stdio.h>
void main()
{
int i,j,n,k=0;
scanf("%d",&n);
/*******space*******/
/*******space*******/
printf("素数的个数=%d",k);
}
【答案】scanf("%d",&n);
for(i=2;i<=n;i++){
for(j=2;j<i;j++){
if(i%j==0) break;
}
if(j>=i) k++;
}
【详解】考察判断素数方法。参考专题3.4的知识点1判断素数的方法之一 判断素数的普通方法。
22.输入n的值,统计所有在正整数1和n之间能被5整除、但不能被10整除的数有多少个。
#include<stdio.h>
void main()
{
int i,n,k=0;
/*******space*******/
/*******space*******/
printf("%d
",k);
}
【答案】scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%5==0 && i%10!=0) k++;
}
【详解】利用循环挑选出范围内的数字,当其中的数模除5等于0且模除1000不等于0时,进行计数器累加即可。
23.从键盘输入n,统计[1,n]范围内各位数字之和能被15整除的整数个数。例如:78的各位数字之和是:7+8=15,则78是一个各位数字之和能被15整除的整数。
#include<stdio.h>
void main()
{
int n,sum,i,j,acount=0;
/*******space*******/
/*******space*******/
printf("%d",acount);
}
【答案】scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0;
j=i;
while(j!=0)
{
sum=sum+j%10;
j=j/10;
}
if(sum%15==0)
acount++;
}
【详解】利用循环挑选出范围内的数字,利用数位分离进行求每个数的各位数字之和,然后当数字之和为15的倍数时进行计数器累加即可。
24.输入语数外三门功课的成绩,求总分和平均分,并保留两位小数
#include<stdio.h>
void main(){
float math,chinese,english;
float sum,avg;
/*******space*******/
/*******space*******/
}
【答案】scanf(“%f%f%f“,&math,&chinese.&english);
sum=math+chinese+english;
avg=sum/3;
printf("总分为%f,平均分为%f",sum,avg);
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第6卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(三)数据的输入与输出
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第6卷
数据的输入与输出 学生练习卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.使用getchar和putchar函数进行单个字符输入输出时,必须使用预处理命令”#include”包括( )文件
A.stdio.h B.math.h C.string.h D.stdlib.h
2.若执行下面的程序时从键盘上输入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
3.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句为( )
A.scanf(“%d%lx,%le”,&x,&y,&z);
B.scanf(“%2d*%d%lf”,&x,&y,&z);
C.scanf(“%x%*d%o”,&x,&y,);
D.scanf(“%x%o%6.2f”,&x,&y,&z);
4.以下程序的运行结果是( )
#include<stdio.h>
#define X 5
#define Y X+1
#define Z Y*X/2
int main ( ) {
int a=Y;
printf("%d
",Z);
printf("%d
",--a);
return 0;
}
A.75 B.125 C.76 D.126
5.以下程序的运行结果是( )
#include<stdio.h>
#define ADD(x) x+x
int main ( )
{
int m=1,n=2,k=3,sum ;
sum = ADD(m+n)*k ;
printf(“%d
”,sum) ;
return 0;
}
A.18 B.9 C.12 D.10
6.#include <stdio.h>
main()
{ char a,b,c,d;
scanf(“%c%c”,&a,&b);
c=getchar(); d=getchar();
printf(“%c%c%c%c
”,a,b,c,d);
}
当执行程序时,按下列方式输入数据:
12<CR>
34<CR>
则输出结果是( )
A.1234 B.12 C.12 D.12
7.以下程序运行的结果是( )
#define X 5
#define Y X+1
#define Z Y*X/2
void main( )
{
int a=Y ;
printf(" %d,%d" ,Z,--a ) ;
}
A.7,6 B.12,6 C.12,5 D.7,5
8.有以下程序,程序输出为( )
main()
{ int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d
",a,b,c,d);}
A.0,1,2,0 B.0,0,0,3 C.1,1,2,0 D.编译有错
9.执行下列程序段时,若键盘上输入EFG,则输出结果是( )
main( ){
char ch;
ch=getchar( );
putchar(ch) ;}
A.E B.EF C.EFG D.输出不确定的值
10.写出以下程序的执行结果( )
char c='z';
printf("%c",c-25);
A.a B.B.Z C.z-25 D.y
11.执行下列语句的结果是( )
i=3;
printf("%d,",++i);
printf("%d",i++);
A.3,3 B.3,4 C.4,3 D.4,4
12.下列程序的结果是( )
#include<stdio.h>
int fun(int x)
{int p;
if(x==0||x==1) p=3;
else p=x-fun(x-2);
return p;}
main(){printf("%d
",fun(7));}
A.1 B.2 C.3 D.4
13.以下程序段的运行结果是( )
int a;char c=10;float f=125.0;double x;a=f/=c*=(x=5.5);
printf("%d,%d,%.1f,%.1f",a,c,f,x);
A.2,55,2.3,5.5 B.3,55,2.3,5.5 C.2,55.0,2.3,5.5 D.2,55,2.3,6.0
14.以下程序段的输出结果是( )
float a=3.4;int b,c=45,d;b=256;d=c/3;
printf("a=%.1f,b=%u,d=%x",a,b,d);
A.a=3.4,b=-256,d=f B.a=3.400000,b=256,d=f
C.a=3.4,b=256,d=15 D.a=3.4,b=256,d=f
15.以下程序段的输出结果是( )
char a,b,c='x';a='A';b=111;putchar(a+1);putchar(b);c++;putchar(c);
A.Boy B.Bna C.boy D.bOy
16.已有定义:int x=10,y=3,z;执行语句:printf("%d",z=(x%y,x/y));后的输出结果是( )
A.0 B.1 C.2 D.3
17.若有定义语句:char c1,c2;,则以下不正确的输入输出语句是( )
A.scanf(“c1=%cc2=%c”,&c1,&c2); B.c1=getchar();
C.putchar(c2); D.putchar(c1,c2);
18.设变量均已正确定义,若要通过语句:scanf(“%d%c%d%c”,%a1,&c1,&a2,&c2);为int型变量a1和a2赋值10和20,为char型变量c1和c2赋值a和b,下列正确的输入是( )(注:□表示空格)
A.10□e□30□f<回车> B.10□e30□f<回车>
C.10□e<回车>30□f<回车> D.10e<回车>30f<回车>
19.设有定义语句int a,b,c;,若要通过语句scanf(“%d,%d”,&a,&b);使得变量a得到数值10,变量b得到数值2,下面输入形式中错误的是( )(注:□代表空格)
A.6,5<Enter> B.6,□□5<Enter>
C.65<Enter> D.6, <Enter>5<Enter>
20.下列有关scanf函数的叙述中,正确的是( )
A.输入项可以为一实型常量,如scanf(“%f”,3.5);
B.只有格式控制没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%3.1f”,&a);
D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&a);
二、程序设计题(本大题共4小题,每题10分,共40分)
21.输入一个数字n(n<10000),输出1~n之间素数的个数。
#include<stdio.h>
void main()
{
int i,j,n,k=0;
scanf("%d",&n);
/*******space*******/
/*******space*******/
printf("素数的个数=%d",k);
}
22.输入n的值,统计所有在正整数1和n之间能被5整除、但不能被10整除的数有多少个。
#include<stdio.h>
void main()
{
int i,n,k=0;
/*******space*******/
/*******space*******/
printf("%d
",k);
}
23.从键盘输入n,统计[1,n]范围内各位数字之和能被15整除的整数个数。例如:78的各位数字之和是:7+8=15,则78是一个各位数字之和能被15整除的整数。
#include<stdio.h>
void main()
{
int n,sum,i,j,acount=0;
/*******space*******/
/*******space*******/
printf("%d",acount);
}
24.输入语数外三门功课的成绩,求总分和平均分,并保留两位小数
#include<stdio.h>
void main(){
float math,chinese,english;
float sum,avg;
/*******space*******/
/*******space*******/
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$