三亚理工职业学院是海南省最早一批具备高职办学条件的学院之一,其高职分类考试是学校教学质量的重要保障之一。以下是历年高职分类考试真题及答案。
2018年高职分类考试真题及答案
题目一:
给定正整数n(n>1),输出由n个字母“S”组成的等腰直角三角形。要求:直角边为斜边的一半,如图。
输入格式:一个正整数n(n>1)。
输出格式:由n个字母“S”组成的等腰直角三角形,每行末不能有多余空格。
输入样例:
5
输出样例:
S
SS
SSS
SSSS
SSSSS
答案一:
#include
using namespace std;
int main() {
int n;
cin>>n;
for(int i=1;i<=n;i++) {
for(int j=1;j<=i;j++)
cout<<"S";
cout< } return 0; }
题目二:
写一个求最小公倍数的程序,输入两个正整数a和b,求它们的最小公倍数(LCM)。
输入格式:正整数a和b
输出格式:它们的最小公倍数
输入样例:
4 6
输出样例:
12
答案二:
#include
using namespace std;
int gcd(int a,int b) {
if(a%b==0)
return b;
return gcd(b,a%b);
}
int main() {
int a,b;
cin>>a>>b;
cout<
return 0; }
2019年高职分类考试真题及答案
题目一:
给定一组由a,b,c三个字母组成的字符串s,如果其中不包含"abc"这个子串,则将其中包含b的子串所有字符都改为a,将其中包含c的子串所有字符都改为b,最后输出处理过后的字符串。
输入格式:字符串s(长度不超过100000,s由a、b、c三个字母组成)。
输出格式:处理过后的字符串。
输入样例:
acbabccacbabcbbccbac
输出样例:
abaaabbbbbaaabbbbbbaa
答案一:
#include
#include
using namespace std;
int main()
{
string s;
cin>>s;
int n=s.length();
for(int i=0;i { if(s[i]=='b') { int j=i; while(s[j]=='b') j++; string temp=s.substr(i,j-i); int len=temp.length(); for(int k=0;k temp[k]='a'; s.replace(i,len,temp); i=j-1; } else if(s[i]=='c') { int j=i; while(s[j]=='c') j++; string temp=s.substr(i,j-i); int len=temp.length(); for(int k=0;k temp[k]='b'; s.replace(i,len,temp); i=j-1; } } cout< return 0; } 题目二: 给定一个字符串s和一个非负整数n,你需要把s分成若干个长度为n的字符串,若s的长度不是n的整数倍,则在最后添加必要的字符,使得s的长度变为n的整数倍,具体来说,如果s的长度为len,则需要在末尾添加n?len%n个英文字母(每种字母可以任选),使得s的长度变为(n?len%n)+len。然后,将s均分为长度为n的字符串,每个字符串的长度不超过n,同时排列顺序为输入顺序。例如,当s=“HelloWorldFromYichang”,n=4时,需要先添加2个英文字母,将s变为“HelloWorldFromYichang..”(其中..表示2个英文字母),然后,再将其分为4个字符串“Hell”、“oWor”、“ldFr”、“omYi”、“cha”、“ng..” 输入格式:字符串s和正整数n(1<=n<=1000,s的长度不超过100000)。 输出格式:若干行,每行一个字符长度为n的子串。每个子串的长度应不超过n,字符串的顺序应该和输入顺序一致。注意,末尾的子串如果长度不够n,则在其末尾添加必要的英文字母。 输入样例: HelloWorldFromYichang 4 输出样例: Hell oWor ldFr omYi cha ng.. 答案二: #include #include #include using namespace std; char a[100005],b[1005][1005]; int main() { cin>>a; int n; cin>>n; int len=strlen(a); int k=0; int i,j; for(i=0;i { for(j=0;j b[i][j]=a[k++]; } if(k for(j=0;j if(k b[i][j]=a[k++]; if(len%n!=0) { for(j=len-len%n;j a[j]='*'; k=0; for(i=0;i { for(j=0;j b[i][j]=a[k++]; } if(k for(j=0;j if(k b[i][j]=a[k++]; } for(i=0;i { for(j=0;j cout<
cout< } return 0; } 题目一: 给定正整数a、b,求它们的最大公约数(GCD)和最小公倍数(LCM)。 输入格式:两个正整数a和b。 输出格式:每行输出一个整数。第一行为它们的最大公约数(GCD),第二行为它们的最小公倍数(LCM)。 输入样例: 10 15 输出样例: 5 30 答案一: #include using namespace std; int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } int main() { int a,b; cin>>a>>b; cout< return 0; } 题目二: 有一个n(n<10000)项的数列a0,a1,a2,…,an?1,在其中寻找一个连续的子序列,使得该子序列中所有数的和最大。 输入格式:第一行一个整数n,表示数列的项数。第二行n个整数,表示该数列。 输出格式:仅一行,输出最大的子序列和。 输入样例: 8 1 -2 3 10 -4 7 2 -5 输出样例: 18 答案二: #include #include using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0;i cin>>a[i]; int sum=a[0],m=a[0]; for(int i=1;i { sum=max(a[i],sum+a[i]); m=max(m,sum); } cout< return 0; }
2020年高职分类考试真题及答案