- 0
- 0
- 约7.72千字
- 约 22页
- 2026-01-21 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年计算机编程面试题集及答案解析
1.编程语言基础(5题,每题10分)
1.1题目1(Python)
编写一个Python函数,接收一个正整数n,返回一个列表,其中包含从1到n的所有奇数。如果输入不是正整数,则抛出`ValueError`。
答案解析:
python
defget_odds(n):
ifnotisinstance(n,int)orn=0:
raiseValueError(输入必须是正整数)
return[iforiinrange(1,n+1)ifi%2!=0]
解析:使用列表推导式生成奇数列表,通过`isinstance`检查输入类型,确保输入为正整数。
1.2题目2(Java)
实现一个Java方法,接收一个字符串,返回该字符串中所有单词的逆序排列。例如,输入HelloWorld,输出WorldHello。
答案解析:
java
publicstaticStringreverseWords(Strings){
if(s==null)returnnull;
String[]words=s.trim().split(\\s+);
StringBuildersb=newStringBuilder();
for(inti=words.length-1;i=0;i--){
sb.append(words[i]);
if(i0)sb.append();
}
returnsb.toString();
}
解析:先去除前后空格,按空格分割字符串,然后逆序拼接单词。
1.3题目3(C++)
编写C++代码,实现一个函数,接收一个整数数组,返回数组中的最大值和最小值,要求不使用任何标准库函数。
答案解析:
cpp
includevector
structMinMax{
intmin;
intmax;
};
MinMaxfindMinMax(conststd::vectorintarr){
if(arr.empty())throwstd::invalid_argument(数组不能为空);
intmin=arr[0],max=arr[0];
for(intnum:arr){
if(nummin)min=num;
if(nummax)max=num;
}
return{min,max};
}
解析:遍历数组,更新最小值和最大值。
1.4题目4(JavaScript)
给定一个数组`arr`,编写JavaScript代码,返回一个新数组,其中包含所有大于`arr`平均值的元素。
答案解析:
javascript
functiongreaterThanAverage(arr){
if(!arr.length)return[];
constsum=arr.reduce((acc,num)=acc+num,0);
constavg=sum/arr.length;
returnarr.filter(num=numavg);
}
解析:计算平均值,然后过滤出大于平均值的元素。
1.5题目5(C#)
实现一个C#方法,接收一个字符串,返回该字符串中所有重复字符的频率(字典形式)。例如,输入hello,输出`{e:1,l:2,h:1,o:1}`。
答案解析:
csharp
usingSystem.Collections.Generic;
publicDictionarychar,intCountDuplicates(strings){
Dictionarychar,intfreq=newDictionarychar,int();
foreach(charcins){
if(freq.ContainsKey(c))freq[c]++;
elsefreq[c]=1;
}
returnfreq;
}
解析:遍历字符串,统计每个字符的频率。
2.数据结构与算法(8题,每题10分)
2.1题目6(链表)
实现一个单链表反转的函数,不使用递归。
答案解析:
python
classListNode:
def__init__(self,val=0,next=None):
self.val=val
self.next=next
defreverseList(head):
prev=None
current=head
whilecurrent:
next_node=cur
原创力文档

文档评论(0)