内容正文:
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第3卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(二)运算符与表达式
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第3卷
运算符与表达式 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为( )
main()
{int x,y,z;
scanf("%d,%d,%d",&x,&y,&z);
printf("x+z=",x+z);}
A.x+y+z=48 B.x+y+z=35
C.x+z=35 D.不确定值
【答案】C
2.以下程序的运行结果是( )
#include<stdio.h>
#define MIN(x,y) (x)>(y) ? (x) : (y)
int main ( ) {
int i=10, j=15 , k;
k = 10*MIN(i,j);
printf("%d
",k);
return 0;
}
A.15 B.100 C.10 D.150
【答案】C
3.假定有以下变量定义
int k=7,x=12;
则能使值为3的表达式是( )
A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5)
【答案】D
4.设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f的数据类型是( )
A.int型 B.float型 C.double型 D.不确定
【答案】C
5.已知x = 4.5,y = 2.5,求表达式(x + y)/2 + (int)y % (int)x的值是( )
A.3 B.5 C.3.5 D.5.5
【答案】D
6.下面是C语言合法的复合语句的是( )
A.{
#define PI=3.14;
double v1,r=3;
v1=PI*r*r;
}
B.{
double s,a=5,b=10,h=8
s=(a+b)*h/2.0
printf(“area=%lf”,s)
}
C.{
int t,a=4,b=7;
t=a,a=b,b=t
};
D.{
double v1,r=5;
v1=4*3.14*r*r*r/3;
{
double v2,h=12;
v2=3.14*r*r*h;
}
printf("%lf,%lf",v1,v2);
}
【答案】D
7.以下程序运行后的输出结果是( )
main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d",x,y,z);}
A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1
【答案】C
8.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是( )
A.把x和y按从大到小排列 B.把x和y按从小到大排列
C.无确定结果 D.交换x和y中的值
【答案】D
9.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( )
A.算术运算、赋值运算、关系运算
B.关系运算、赋值运算、算术运算
C.算术运算、关系运算、赋值运算
D.关系运算、算术运算、赋值运算
【答案】A
【详解】C语言中,算术运算符、赋值运算符和关系运算符的运算优先级从高到低依次为:
算术运算符(如 +, -, *, /)
关系运算符(如 >, <, ==, !=, >=, <=)
赋值运算符(如 =, +=, -=, *=, /=)
10.若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是( )
A.1 B.2 C.2.0 D.2.5
【答案】C
11.以下程序的运行结果是( )
#include <stdio.h>
int main( )
{ int m=5, n=10;
printf("%d, %d
",m++, --n);
return 0;
}
A.5,9 B.6,9 C.5,10 D.6,10
【答案】A
12.将数学表达式ab/(c+df)改写为C语言表达式,正确的是( )
A.ab/(c+df) B.a*b/c+d*f C.a*b/(c+d*f) D.(a*b)/(c+d)*f
【答案】C
13.以下叙述正确的是( )
A.在C程序中,每行只能写一条语句
B.若a是实型变量,C程序中不允许a=10这种赋值
C.在C程序中,%是只能用于整数运算的运算符
D.在C程序中,无论是整数还是实数,没有什么区别
【答案】C
14.以下程序的输出结果是 ( )
int main( )
{ double d=3.2 ;
int x=1.2, y ;
y=(x+3.8)/5.0 ;
printf("%d
",d*y);}
A.3 B.3.2 C.0 D.3.07
【答案】C
15.以下程序的运行结果是( )
#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
16.若以下选项中的变量已正确定义,则正确的赋值语句是( )
A.x1=26.8%3 B.1+2=x2 C.x3=0x12; D.x4=1+2=3;
【答案】D
17.若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d
",m,i);
}
执行后的输出结果是( )
A.8,6 B.8,3 C.6,4 D.7,4
【答案】C
【详解】该程序考察复合赋值运算符的运算顺序。执行过程分三步:
先计算i*=k(即i=ik=22=4),此时i=4
再计算k+=i(即k=k+i=2+4=6),此时k=6
最后将结果赋给m(m=6) 输出结果: 6,4
18.以下程序的输出结果是( )
int main()
{ int a=20,b=10;
printf("%d,%%d
",a+b,a-b); }
A.30,%d B.30,10 C.30,%10 D.以上答案均不正确
【答案】A
19.若执行下面的程序时从键盘上输入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
20.下列语句中符合C语言语法的赋值语句是( )
A.a=7+b+c=a+7; B.a=7+b++=a+7;
C.a=7+b,b++,a+7; D.a=7+b,c=a+7;
【答案】D
二、程序设计题(本大题共4小题,每题10分,共40分)
21.程序设计:数位分解,如数值123,则百位数为1,十位数为2,个位数为3
#include<stdio.h>
main(){
int a,b,c,d;
/*******space*******/
/*******space*******/
printf("百位数:%d,十位数为:%d,个位数为:%d
",b,c,d);
}
【答案】scanf("%d",&a);
b=a/100%10;
c=a/10%10;
d=a%10;
【详解】数位分离,个位分离的方式是%10,十位分离的方法是/10%10,百位分离的方法是/100%10,以此类推。
22.不用第三个变量,实现两个数的对调操作。
#include<stdio.h>
void main(){
int a,b;
/*******space*******/
/*******space*******/
}
【答案】scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
【详解】不用第三个变量进行值的交换的代码如上。
23.程序设计:输入一个大于100的正整数a,将a的百位、十位和个位依次放在b的个位、十位和百位上(例如输入321,则输出结果为123)
#include<conio.h>
#include<stdio.h>
main(){
int a;
printf("请输入一个大于100的正整数");
scanf("%d",&a);
/*******space*******/
/*******space*******/
}
【答案】b=a%10*100+(a/10%10)*10+a/100%10;
printf("%d",b);
【详解】进行数位分离后将其放置在对应的位上即可。要放到十位即*10,要放到百位即*100。
24.功能:求一个n位自然数的各位数字的积(n是小于10的自然数)
#include<stdio.h>
long fun(long n){
/*******space*******/
/*******space*******/
}
main(){
long m;
printf(“Enter m:”);
scanf(“%ld”,&m);
printf(“
The result is %ld
”,fun(m));
}
【答案】long int s=1;
while(n!=0){
s=s*n%10;
n=n/10;
}
return s;
【详解】同样,在函数里无法确定形参n的位数,所以求各位数字之积得使用数位分离中的除十取余法。注意的乘积变量s得使用长整形。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。
本专辑第3卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】:
(二)运算符与表达式
湖南省普通高等学校对口招生考试 计算机应用类
《C语言程序设计》考点双析卷 第3卷
运算符与表达式 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为( )
main()
{int x,y,z;
scanf("%d,%d,%d",&x,&y,&z);
printf("x+z=",x+z);}
A.x+y+z=48 B.x+y+z=35
C.x+z=35 D.不确定值
2.以下程序的运行结果是( )
#include<stdio.h>
#define MIN(x,y) (x)>(y) ? (x) : (y)
int main ( ) {
int i=10, j=15 , k;
k = 10*MIN(i,j);
printf("%d
",k);
return 0;
}
A.15 B.100 C.10 D.150
3.假定有以下变量定义
int k=7,x=12;
则能使值为3的表达式是( )
A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5)
4.设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f的数据类型是( )
A.int型 B.float型 C.double型 D.不确定
5.已知x = 4.5,y = 2.5,求表达式(x + y)/2 + (int)y % (int)x的值是( )
A.3 B.5 C.3.5 D.5.5
6.下面是C语言合法的复合语句的是( )
A.{
#define PI=3.14;
double v1,r=3;
v1=PI*r*r;
}
B.{
double s,a=5,b=10,h=8
s=(a+b)*h/2.0
printf(“area=%lf”,s)
}
C.{
int t,a=4,b=7;
t=a,a=b,b=t
};
D.{
double v1,r=5;
v1=4*3.14*r*r*r/3;
{
double v2,h=12;
v2=3.14*r*r*h;
}
printf("%lf,%lf",v1,v2);
}
7.以下程序运行后的输出结果是( )
main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d",x,y,z);}
A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1
8.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是( )
A.把x和y按从大到小排列 B.把x和y按从小到大排列
C.无确定结果 D.交换x和y中的值
9.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( )
A.算术运算、赋值运算、关系运算
B.关系运算、赋值运算、算术运算
C.算术运算、关系运算、赋值运算
D.关系运算、算术运算、赋值运算
10.若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是( )
A.1 B.2 C.2.0 D.2.5
11.以下程序的运行结果是( )
#include <stdio.h>
int main( )
{ int m=5, n=10;
printf("%d, %d
",m++, --n);
return 0;
}
A.5,9 B.6,9 C.5,10 D.6,10
12.将数学表达式ab/(c+df)改写为C语言表达式,正确的是( )
A.ab/(c+df) B.a*b/c+d*f C.a*b/(c+d*f) D.(a*b)/(c+d)*f
13.以下叙述正确的是( )
A.在C程序中,每行只能写一条语句
B.若a是实型变量,C程序中不允许a=10这种赋值
C.在C程序中,%是只能用于整数运算的运算符
D.在C程序中,无论是整数还是实数,没有什么区别
14.以下程序的输出结果是 ( )
int main( )
{ double d=3.2 ;
int x=1.2, y ;
y=(x+3.8)/5.0 ;
printf("%d
",d*y);}
A.3 B.3.2 C.0 D.3.07
15.以下程序的运行结果是( )
#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
16.若以下选项中的变量已正确定义,则正确的赋值语句是( )
A.x1=26.8%3 B.1+2=x2 C.x3=0x12; D.x4=1+2=3;
17.若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d
",m,i);
}
执行后的输出结果是( )
A.8,6 B.8,3 C.6,4 D.7,4
18.以下程序的输出结果是( )
int main()
{ int a=20,b=10;
printf("%d,%%d
",a+b,a-b); }
A.30,%d B.30,10 C.30,%10 D.以上答案均不正确
19.若执行下面的程序时从键盘上输入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
20.下列语句中符合C语言语法的赋值语句是( )
A.a=7+b+c=a+7; B.a=7+b++=a+7;
C.a=7+b,b++,a+7; D.a=7+b,c=a+7;
二、程序设计题(本大题共4小题,每题10分,共40分)
21.程序设计:数位分解,如数值123,则百位数为1,十位数为2,个位数为3
#include<stdio.h>
main(){
int a,b,c,d;
/*******space*******/
/*******space*******/
printf("百位数:%d,十位数为:%d,个位数为:%d
",b,c,d);
}
22.不用第三个变量,实现两个数的对调操作。
#include<stdio.h>
void main(){
int a,b;
/*******space*******/
/*******space*******/
}
23.程序设计:输入一个大于100的正整数a,将a的百位、十位和个位依次放在b的个位、十位和百位上(例如输入321,则输出结果为123)
#include<conio.h>
#include<stdio.h>
main(){
int a;
printf("请输入一个大于100的正整数");
scanf("%d",&a);
/*******space*******/
/*******space*******/
}
24.功能:求一个n位自然数的各位数字的积(n是小于10的自然数)
#include<stdio.h>
long fun(long n){
/*******space*******/
/*******space*******/
}
main(){
long m;
printf(“Enter m:”);
scanf(“%ld”,&m);
printf(“
The result is %ld
”,fun(m));
}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$