2022-5浙江工业大学计算机学院转专业二志愿机试题目
这次的第二志愿机试算是非常简单的了,然后今年的一志愿面试其实也很简单,可惜我一志愿考前没有认真准备,到最后只做了三道。这次我把二志愿题目搬到这里,以供参考
题号 题目 Problem A 亮健康码 Problem B 某月天数 Problem C 胜利V字 Problem D 质数字符 Problem E 质数字符 Problem A:亮健康码 Description 在疫情防控的大局下,各地出入均要求亮码测温。请你将出示健康码的提示打印在屏幕上。 Input 无 Output 见样本输出。一行输出,无须换行。 Sample Input ` ` Sample Output ` \ Show me your health QR code, please./ `
别忘记加转义字符就行
#include <iostream> using namespace std; int main() { cout << "\"\ Show me your health QR code, please.\"" << endl; return 0; }
Problem B:某月天数
Description
小A要印日历,他必须要能知道某年某月有几天才能去印刷。现在请你想办法来帮他算一- 算。
Input
多组数据,每组-行,分别输入两个int范围内的整数:年份和月份。其中,正确的输入数据需要满足:年份∈[1900,5000]月份∈[1,12]。数据组数不超过100
Output
对于每组数据输出一行,根据给出的年份和月份,给出这个月份的天数。如果输入年份或者月份错误则输出The year or month is error
Sample Input
2022 5 1900 2 2000 2 1600 7
Sample Output
31 28 29 The year or month is error
*
判断闰年,顺便别忘记判断错误年月日
`cpp
#include
using namespace
本次第二批次的计算机测试相对较为简单。相比之下,今年的一批次面试内容也较为基础。遗憾的是,在备考阶段我对一批次的准备不够充分,在此期间仅完成了三道试题的练习。在本次整理过程中,我特意将第二批次的试题内容整理到这里以便供各位考生参考使用。
| 题号 | 题目 |
|---|---|
| Problem A | 亮健康码 |
| Problem B | 某月天数 |
| Problem C | 胜利V字 |
| Problem D | 质数字符 |
| Problem E | 质数字符 |
Problem A:亮健康码
Description
在疫情防控的整体框架下,在各级别出入点都实施了健康码查验制度和体温监测要求。请相关部门按照指示,在规定时间内制作电子版健康码,并将其作为出入人员身份验证的重要依据,在出入口显著位置进行展示。
Input
无
Output
见样本输出。一行输出,无须换行。
Sample Input
Sample Output
"\Show me your health QR code, please./"
别忘记加转义字符就行
#include<iostream>
using namespace std;
int main()
{
cout<<"\"\ Show me your health QR code, please.\/\""<<endl;
return 0;
}
Problem B:某月天数
Description
小A想要印刷日历,他必须能够知道某年某月共有多少天才能完成印刷任务.现在,请你能够帮助他计算一下.
Input
多组数据,每组-行,分别输入两个int范围内的整数:年份和月份。
其中,正确的输入数据需要满足:年份∈[1900,5000]月份∈[1,12]。
数据组数不超过100
Output
根据用户的指示,在每组数据的基础上输出一行结果,请提供指定的年份和月份信息。当输入的年份或月份有误时返回'The input year or month is invalid'。
Sample Input
2022 5
1900 2
2000 2
1600 7
Sample Output
31
28
29
The year or month is error
判断闰年,顺便别忘记判断错误年月日
#include<iostream>
using namespace std;
int main()
{
int y,m,m1[12]={31,28,31,30,31,30,31,31,30,31,30,31},mark=0;
while(cin>>y>>m)
{
if(m>0&&m<13&&y>1899&&y<5001)
{
if((y%4==0&&y%100!=0||y%400==0)&&m==2)cout<<29<<endl;
else cout<<m1[m-1]<<endl;
}
else cout<<"The year of month is error"<<endl;
}
return 0;
}
Problem C:胜利V字
Description
请确保输出仅包含改写后的内容
需要改写的内容如下
改写内容放在【
小A即将参加专业考试,请为小A编写一个程序,在计算机上绘制一个象征胜利的V型图案,并用计算机生成一段充满祝福的文字.
Input
多组数据, 每组-行,给出V的高度N。数据组数不超过50,N为整数且N∈([3,50]。
Output
根据每一组数据, 采用字母 V 的形式绘制高度为 N 个单位的 V 型, 宽度设定为 2 个单位的具体要求, 请参考样例展示。完成每组数据后, 在行末添加一个空白行
Sample Input
4
5
Sample Output

这里我放张图了,你们可能能好理解点。。。
#include<iostream>
using namespace std;
int main()
{
int i,j,k,n;
while(cin>>n)
{
for(i=0;i<n-2;i++)
{
for(j=i;j>0;j--)cout<<' ';
cout<<"VV";
for(k=0;k<n*2-i*2-5;k++)cout<<' ';
cout<<"VV"<<endl;
}
for(i=0;i<n-2;i++)cout<<' ';
cout<<"VVV"<<endl;
for(i=0;i<n-1;i++)cout<<' ';
cout<<'V'<<endl<<endl;
}
return 0;
}
将最后两行V独立处理,以及,别忘记输出格式
Problem D:质数字符
Description
部分字符的ASCII数值恰好是素数。请在数据串中找出所有满足条件的字符。
Input
多个数据集排布方式下,在每一行对应一个独立的数据块进行处理,并且每个输入行都包含由字母、数字、符号和空格组成的字符串;其中每个字符串的长度均小于500字符,并且总共有不超过50个这样的输入行
Output
每当处理一组数据时,在每一行中按照从左到右的顺序逐一生成ASCII编码值属于质数的所有字符;如果同一字符多次出现,则会相应地进行多次输出而不进行去重处理。
若没有符合要求的字符仅输出一个空行。
Sample Input
ABCD EFGH IJKLM N
Abc defgh ijkl mn
Sample Output
CGI
egkm
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
bool zhi(int a)
{
if(a==1)return false;
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0)return false;
}
return true;
}
int main()
{
int i,j,k,n;
string c;
while(getline(cin,c))//ÒòΪÓпոñËùÒÔÓÃgetline
{
for(i=0;i<c.length();i++)
{
if(zhi((int)c[i]))cout<<c[i];
}
cout<<endl;
}
return 0;
}
也是注意格式这种问题,其实问题都非常简单。
Problem E:质数字符
Description
对于一个具有唯一性的无重复数据集A1, A2, A3, ……, An, 我们采用以下方案以实现数据之间的较量。
第一次,A1和A2-An依次进行比赛。若A1大,它就得1分,反之对手数字得1分
第二次,A2和A3-An依次进行比赛。若A2大,它就得1分,反之对手数字得1分;
第三次,A3和A4-An依次进行比赛。若A3大,它就得1分,反之对手数字得1分;
Input
多组数据, 每组数据一-行。、
每组数据的第一个数值N (N<50) 代表集合中的数据数量,并具体包括N个互不相同的数值。每个数值的取值范围都在整数范围内,并且最多有50组不同的数值组合。
Output
对于每个数据集进行处理时,请记录该集合在每次比赛中获得的具体分数。
最后按照积分从低到高排列并展示这些集合的数据。
各组之间的结果用逗号分隔,并在每组结果后添加一个空白行以确保格式的一致性
Sample Input
5 12 34 4 55 7
6 98 76 5 43 2 10
Sample Output
2,1,0,1,0
2,3,0,2,0
2,3,0,3,1
2,3,0,4,1
2,3,0,4,1
4,7,12,34,55
1
5,0,0,0,0,0
5,4,0,0,0,0
5,4,1,1,0,1
5,4,1,3,0,1
5,4,1,3,0,2
5,4,1,3,0,2
2,5,10,43,76,98
#include<iostream>
using namespace std;
int main()
{
int i,j,k,n,a[50],b[50];
string c;
while(cin>>n)
{
for(i=0;i<n;i++)
{
cin>>a[i];
b[i]=0;
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
if(a[i]>a[j])b[i]++;
else b[j]++;
for(k=0;k<n;k++)
{
if(k!=0)cout<<',';
cout<<b[k];
}
cout<<endl;
}
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
for(k=0;k<n;k++)
{
if(k!=0)cout<<',';
cout<<a[k];
}
cout<<endl;
}
return 0;
}
可以看出每位选手均参与了n−1场比赛,
最高得分总是属于最强的那位选手,
因此,在完成所有计算后,
只需将结果按照降序排列即可。
