长沙理工研究生复试真题编程题以及答案.docx
《长沙理工研究生复试真题编程题以及答案.docx》由会员分享,可在线阅读,更多相关《长沙理工研究生复试真题编程题以及答案.docx(35页珍藏版)》请在冰豆网上搜索。
长沙理工研究生复试真题编程题以及答案
从2015年开始,长沙理工大学计算机研究生复试考试科目将566改成现在的F0803,这里列举的是15~19年的编程题题目和答案。
备注:
统计了一下有2个C++的题目,其余为C语言题目。
2015年
//1.求出10至1000之内能同时被2、3、7整除的数,并输出。
#include
intmain()
{
inti;
for(i=10;i<=1000;i++)
{
if(i%2==0&&i%3==0&&i%7==0)
{
printf("%-4d",i);
}
}
return0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*2.任意输入一个三位正整数,十位上的数字不动,将个位和百位上的数字交换,
够成一个新的正整数后输出。
(例如:
484变为684)*/
#include
intExchange(intx);
intmain()
{
inti,x;
printf("请输入一个三位正整数:
\n");
scanf("%d",&x);
i=Exchange(x);
printf("%d",i);
return0;
}
intExchange(intx)
{
inta,b,c;
c=x%10;
b=(x/10)%10;
a=x/100;
returnc*100+b*10+a;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*3.编写自定义函数prime(intx),判断x是否为素数。
利用此函数编写程序找出
100~2000中的所有素数,并输出素数的个数。
*/
#include
#include
intprime(intx);
intmain()
{
intx,i;
intj=0,flag=0;
printf("请输入一个数:
\n");
scanf("%d",&x);
flag=prime(x);
if(flag==1)
{
printf("该数是素数\n");
}else{
printf("该数不是素数\n");
}
printf("100至2000之内的素数为\n");
for(i=100;i<=2000;i++)
{
if(prime(i))
{
printf("%-5d",i);
j++;
}
}
printf("\n素数的个数为%d个\n",j);
return0;
}
intprime(intx)
{
inti;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
return0;
}
}
if(i>sqrt(x))
{
return1;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2016年
/*1、使用C语言编写程序打印出10000以内的所有“完全数”,每个数之间用英文逗号
隔开。
“完全数”是指一个正整数,其所有小于该数的因子之和等于该数本身。
例如:
6=1+2+3,又如:
28=1+2+4+7+14。
*/
#include
intmain()
{
inti,j,sum;
for(i=1;i<10000;i++)
{
sum=0;
for(j=1;j
{
if(i%j==0)
{
sum+=j;
}
}
if(i==sum)
{
printf("%d,",i);
}
}
return0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//2、用C语言编写程序,根据输入的三角形的三条边(a,b,c),判断是否能组成三
角形(如果任意两边之和大于第三边则认为可组成三角形),若可以则输出三角形的
类型(等边三角形、等腰三角形、直角三角形、一般三角形)及
面积(area=sqrt(s*(s-a)*(s-b)*(s-c));s=(a+b+c)/2);
否则输出“不能组成三角形”。
*/
#include
#include
#defineEPS1e-2
intmain()
{
floata,b,c;
floats,area;
intflag=0;
printf("请输入三角形的三条边:
\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
if(fabs(a-b)<=EPS||fabs(b-c)<=EPS||fabs(c-a)<=EPS)
{
printf("等腰");
flag=1;
}
elseif(fabs(a-b)<=EPS&&fabs(b-c)<=EPS&&fabs(c-a)<=EPS)
{
printf("等边");
flag=1;
}
if(fabs(a*a+b*b-c*c)<=EPS||fabs(a*a+c*c-b*b)<=EPS||
fabs(b*b+c*c-a*a)<=EPS)
{
printf("直角");
flag=1;
}
if(flag==0)
{
printf("一般");
}
printf("三角形");
}else{
printf("不能组成三角形");
}
printf("\n面积为:
");
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f",area);
return0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*3、已知交通工具类定义如下
classvehicle{
protected:
intwheels;//车轮数
floatweight;//重量
public:
voidinit(intwheels,floatweight);
floatget_weight();//返回重量
intget_wheels()();//返回车轮数
voidprint();//输出车轮数和重量,格式为“车轮数:
x,重量:
x“其中x为实
际值,不一定相同
};
要求:
(1)实现这个类;
(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人
数,小车的函数有init
(设置车轮数,重量和载人数),getpassenger(获取载人数),print(打印车
轮数,重量和载人数,格式为”
车轮数:
x,重量:
x载人数:
x“x为实际值,不一定相同)。
*/
#include
usingnamespacestd;
classVehicle
{
protected:
intwheels;//车轮数
floatweight;//重量
public:
voidinit(inta,floatb)
{
wheels=a;
weight=b;
}
floatget_weight()
{
returnweight;
}
intget_wheels()
{
returnwheels;
}
voidprint()
{
cout<<"车轮数:
"<cout<<"重量:
"<}
};
classCar:
publicVehicle
{
private:
intpeople;//载人数
public:
intinit(inta,intb,intc)
{
people=a;
wheels=b;
weight=c;
}
intgetpassenger()
{
returnpeople;
}
voidprint()
{
cout<<"车轮数:
"<cout<<"重量:
"<cout<<"载人数:
"<}
};
intmain()
{
Vehiclev;
Carcar;
v.init(2,12.2);
v.get_weight();
v.get_wheels();
v.print();
car.init(4,4,4);
car.getpassenger();
car.get_weight();
car.get_wheels();
car.print();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
8