CPP2022-计算机类-期末考试(下)

简介: CPP2022-计算机类-期末考试

 

6-1 判断素数

分数 5

全屏浏览题目

切换布局

作者 李国瑞

单位 东北大学秦皇岛分校

设计一个函数,判断输入数据是否为素数,返回bool类型结果。

函数接口定义:

bool prime(int num);

说明:num为正整数。

裁判测试程序样例:

#include <iostream> #include <cmath> using namespace std; bool prime(int num); int main() { int i; cin>>i; bool result=prime(i); cout<<result<<endl; return 0; } /* 请在这里填写答案 */

输入样例1:

5

输出样例1:

1

输入样例2:

8

输出样例2:

0
1. bool prime(int num)
2. {
3. if(num==1)
4.     {
5. return 0;
6.     }
7. for(int i=2;i*i<=num;i++)
8.     {
9. if(num%i==0)
10.         {
11. return 0;
12.         }
13.     }
14. return 1;
15. }

 

6-2 会员类实现

分数 5

全屏浏览题目

切换布局

作者 李国瑞

单位 东北大学秦皇岛分校

定义一个会员类Member,内有会员编号、会员名称、剩余金额三个数据成员。

请您帮助实现该类的两个成员函数:

①实现该类的构造函数用来初始化会员数据;

②实现会员消费函数:若剩余金额大于消费金额则将剩余金额减去消费金额并输出计算结果(保留2位小数),否则输出“ERROR!”信息。

Member类成员函数接口定义:

Member(int mid, string name, double money); void consume(double con);

裁判测试程序样例:

#include <iostream> #include <iomanip> #include <string> using namespace std; class Member { public: Member(int mid, string name, double money); void consume(double con); private: int MID; string Name; double Money; }; /* 你的代码将被嵌在这里 */ int main() { int mid; //mid表示用户编号 string name; //name表示用户名称 double money; //money表示剩余金额 double c; //c表示消费金额 cin>>mid>>name>>money; Member m(mid,name,money); cin>>c; m.consume(c); return 0; }

输入样例1:

1. 101 Bob 2000
2. 500

输出样例1:

1500.00

输入样例2:

1. 102 Alice 1000
2. 1200

输出样例2:

ERROR!

 

1. Member::Member(int mid, string name, double money)
2. {
3.     MID=mid;
4.     Name=name;
5.     Money=money;
6. }
7. void Member::consume(double con)
8. {
9. if(con<=Money)
10.     {
11.         cout<<fixed<<setprecision(2)<<Money-con<<endl;
12.     }
13. else
14.     {
15.         cout<<"ERROR!"<<endl;
16.     }
17. }

7-1 符号函数

分数 10

全屏浏览题目

切换布局

作者 李国瑞

单位 东北大学秦皇岛分校

按照要求计算下列符号函数的值。

sign(x)=⎩⎨⎧10−1(x>0)(x=0)(x<0)

输入格式:

在一行内输入实数型自变量x的值。

输出格式:

在一行中输出A+B的值。

输入样例:

在这里给出一组输入。例如:

2.5

输出样例:

在这里给出相应的输出。例如:

sign=1
1. #include<bits/stdc++.h>
2. using namespace std;
3. int main()
4. {
5. double x;
6.     cin>>x;
7. if(x>0)
8.     {
9.         cout<<"sign="<<1;
10.     }
11. else if(x==0)
12.     {
13.         cout<<"sign="<<0;
14.     }
15. else
16.     {
17.         cout<<"sign="<<-1;
18.     }
19. return 0;
20. }

 

1. 7-2 斐波那契数列第n项
2. 分数 10
3. 作者 李国瑞
4. 单位 东北大学秦皇岛分校
5. 斐波那契数列的第1项和第2项都是1,此后各项满足F 
6. n
7. 
8.  =F 
9. n−1
10. 
11.  +F 
12. n−2
13. 
14.  。
15. 
16. 编写程序,输入正整数n,输出斐波那契数列第n项。
17. 
18. 输入格式:
19. 在一行中输入不超过100的正整数n。
20. 
21. 输出格式:
22. 在一行中输出斐波那契数列第n项的值。
23. 
24. 输入样例:
25. 6
26. 输出样例:
27. 8
1. #include<bitsdc++.h>
2. using namespace std;
3. 
4. int main()
5. {
6. int n;
7.     cin>>n;
8. int f1[100],f2[100],f[100];
9.     f1[0]=1;
10.     f2[0]=1;
11. 
12. for(int i=1; i<=99; i++)
13.     {
14.         f1[i]=f2[i]=0; //数组清零
15.     }
16. if (n<=2) 
17.     {
18.         cout<<1;
19. return 0;
20.     }
21. 
22. for(int i=3; i<=n ; i++)
23.     {
24. //f=f1+f2;
25. int carry=0;
26. for(int i=0; i<=99; i++)
27.         {
28.             carry = f1[i]+f2[i]+carry; //注意进位处理
29.             f[i] = carry %10;
30.             carry = carry /10;
31.         }
32. 
33. //f1=f2,f2=f
34. for(int i=0; i<=99; i++)
35.         {
36.             f1[i]=f2[i];
37.             f2[i]=f[i];            
38.         }
39.     }
40. 
41. //数组倒着找第一个不为零的位
42. int pos = 99;
43. while(f[pos]==0)
44.     {
45.         pos--;
46.     }
47. 
48. //倒着输出
49. for(int i=pos; i>=0; i--)
50.     {
51.         cout<<f[i];
52.     }
53. 
54. return 0;
55. }

 

7-3 求500以内各位数字之和为指定数值的所有正整数的平均值

分数 10

全屏浏览题目

切换布局

作者 李国瑞

单位 东北大学秦皇岛分校

给定一个正整数n,判断整数m(1≤m≤500)的各位数字之和s是否为给定的值n,如果s==n,则m为满足条件的数。

求在1≤m≤500范围内所有满足上述条件的整数m的平均值。

输入格式:

在一行输入指定正整数n。

输出格式:

在一行内输出计算得到的平均值(结果保留2位小数)。

输入样例:

12

输出样例:

268.19

 

1. #include<bits/stdc++.h>
2. using namespace std;
3. bool check(int n,int num)
4. {
5. int temp=num,ans=0;
6. while(temp)
7.     {
8.         ans=temp%10+ans;
9.         temp=temp/10;
10.     }
11. if(ans==n)
12.     {
13. return 1;
14.     }
15. else
16.     {
17. return 0;
18.     }
19. }
20. int main()
21. {
22. int n,cnt=0;
23. double sum=0;
24.     cin>>n;
25. for(int i=1;i<=500;i++)
26.     {
27. if(check(n,i))
28.         {
29.             sum=sum+i;
30.             cnt++;
31.         }
32.     }
33.     cout<<fixed<<setprecision(2)<<sum/cnt<<endl;
34. return 0;
35. }

相关文章
|
7月前
|
算法 搜索推荐 程序员
C语言十九练——养兔子
C语言十九练——养兔子
75 0
|
7月前
|
PHP
[ACTF2020 新生赛]Include1
[ACTF2020 新生赛]Include1
团体程序设计天梯赛-练习集L2篇⑦
团体程序设计天梯赛-练习集L2篇⑦
78 0
|
7月前
|
存储 程序员 C#
揭秘C代码格式之美,助你写出'好用到哭'的示范程序!
揭秘C代码格式之美,助你写出'好用到哭'的示范程序!
34 0
|
7月前
|
存储 关系型数据库 MySQL
C语言/C++雷霆战机代码(终极版)
C语言/C++雷霆战机代码(终极版)
|
存储 C语言
课外闲谈7.C语言期末考试必备知识点
在C语言中使用auto关键字声明一个变量为自动变量,如果没有被声明为其他类型的变量都是自动变量,即,省去类型说明符auto的都是自动变量。其他类型指的是变量的存储类型即:静态类型变量(static )、寄存器类型变量(register)和外部类型变量(extern)。
109 0
课外闲谈7.C语言期末考试必备知识点
|
存储 算法 调度
【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码
【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码
406 0
|
人工智能
【CCCC】PAT : 团体程序设计天梯赛-练习集 L1 答案
【CCCC】PAT : 团体程序设计天梯赛-练习集 L1 答案
398 0
【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)
【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)
126 0