- 0
- 0
- 约1.38万字
- 约 17页
- 2026-03-06 发布于山东
- 举报
软考中级软件设计师编程题集2025年高频考
题
考试时间:______分钟总分:______分姓名:______
一、
请编写一个C++函数,该函数接收一个字符串`s`和一个字符`c`作为参数,返
回一个`std::vectorint`,其中包含字符`c`在字符串`s`中所有出现位置的索引
(从0开始)。如果字符`c`不在字符串中,则返回一个空的`std::vectorint`。
要求:不使用任何标准库的查找函数。
二、
假设使用链式存储结构实现单链表,节点定义如下:
```c
structListNode{
intvalue;
ListNode*next;
ListNode(intx):value(x),next(nullptr){}
};
```
请补全以下`reverseList`函数的C++实现,该函数接收一个指向单链表头节
点的指针`head`,并返回一个指向反转后链表头节点的指针。
```c++
ListNode*reverseList(ListNode*head){
//补全代码
}
```
三、
请用Java语言编写一个方法`maxProduct`,它接收一个整数数组`nums`作为
参数,返回数组中两个不重叠的(即索引不连续)的数的乘积的最大值。假设数组
中至少有两个元素。例如,对于数组`[1,2,3,2,4]`,方法应返回`6`(3*
2),而不是`8`(2*4),因为它们是相邻的。
四、
请设计一个Java类`Stack`,用于实现一个基于数组的最小栈。该栈需要支持
以下操作:
1.`push(intx)`:将元素`x`压入栈中。
2.`pop()`:弹出栈顶元素。
3.`top()`:获取栈顶元素但不弹出。
4.`getMin()`:获取栈中的最小元素。
要求:所有操作的时间复杂度应为O(1)。请提供该类的完整实现。
五、
请用Python语言编写一个函数`merge_sorted_lists`,该函数接收两个已排
序的链表(链表节点定义如下)作为输入,并返回一个新链表,该链表也是排序的,
包含两个输入链表的所有元素。假设链表节点定义如下:
```python
classListNode:
def__init__(self,val=0,next=None):
self.val=val
self.next=next
```
六、
请编写一个C语言函数`countWords`,该函数接收一个字符串`s`作为参数,
统计并返回字符串`s`中单词的数量。单词之间由一个或多个空格字符()分隔。
假设字符串`s`非空,且不以空格开头或结尾。例如,对于字符串`Helloworld
fromC`,函数应返回`4`。
七、
请用C++或Java语言编写代码,实现一个简单的文件复制功能。程序应接受
两个命令行参数:第一个参数是源文件路径,第二个参数是目标文件路径。程序应
读取源文件的所有内容,并将其写入目标文件。要求处理文件打开失败、读写错误
等异常情况,并给出相应的提示信息。请选择您熟悉的语言完成此任务。
八、
请编写一个Java方法`findMedianSortedArrays`,它接收两个大小分别为`m`
和`n`的已排序的整数数组`nums1`和`nums2`,返回两个数组合并后的中位数。假
设数组长度至少为1,且合并后的数组长度为`m+n`。要求:时间复杂度优于
O(m+n)。
试卷答案
一、
```cpp
#includevector
usingnamespacestd;
vectorintfindAllOccurrences(conststrings,charc){
vectorintindices;
for(inti=0;is.length();++i){
原创力文档

文档评论(0)