发布时间:2022-05-05 10:24:18
发布来源:考而思
摘要:计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准。
近期,有一位同学咨询过我们的老师关于计算机PTA上的编程习题的相关资讯,考虑到可能并不是只有这一位同学会遇到这种情况,本次笑死就针对计算机PTA上的编程习题的部分,来与同学们分享一下相关的经验。
首先PTA是什么?
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准。
计算机PTA考试的主题包括:数据结构、外壳程序编程问题、avl 树根、旅游规划、霍夫曼代码、安卓多进程编程、数据结构/ PTA-PTA排名摘要/结构等,针对计算机PTA上的编程习题讲解,考而思的老师还是很了解的,我们以数据结构为例:
第一个问题:二进制搜索:
Position BinarySearch(List L, ElementType X)
{
// Array size
// int N = sizeof(L->Data) / sizeof(*L->Data);
int start = 1;
int end = L->Last;
int mid;
while (start <= end)
{
mid = (start + end) / 2;
if (L->Data[mid] > X)
end = mid - 1;
else if (L->Data[mid] < X)
start = mid + 1;
else
return mid;
}
return NotFound;
}
第二个问题:最大的子序列和:
方法 1:
#include
#include
int Sum(int A[], int N)
{
int maxSum, thisSum;
maxSum = thisSum = 0;
for (int i = 0; i < N; i++)
{
thisSum = 0;
for (int j = i; j < N; j++)
{
for (int k = i; k <= j; k++)
thisSum += A[k];
if (thisSum > maxSum)
maxSum = thisSum;
}
}
return maxSum;
}
int main(void)
{
int* a = NULL;
int N;
scanf("%d", &N);
a = (int*)malloc(N * sizeof(int));
for (int i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
printf("%d\n", Sum(a, N));
}
方法二:
#include
#include
int Sum(int A[], int N)
{
int maxSum, thisSum;
maxSum = thisSum = 0;
for (int i = 0; i < N; i++)
{
thisSum += A[i];
if (thisSum > maxSum)
{
maxSum = thisSum;
}
else if (thisSum < 0)
{
thisSum = 0;
}
}
return maxSum;
}
int main(void)
{
int* a = NULL;
int N;
scanf("%d", &N);
a = (int*)malloc(N * sizeof(int));
for (int i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
printf("%d\n", Sum(a, N));
}
上述就是计算机PTA上的编程习题讲解中数据结构部分的两道经典例题了,由于条件限制,我们并不能将所有习题一一列举,若是同学们需要了解计算机PTA上的编程习题或者考试的更多相关资讯以及需要专业老师来给出帮助的话,也可以与考而思的在线老师取得联系,从而获取帮助哦。
马上匹配专业老师免费答疑
相关文章
更多