笔试训练Day1
发布人:shili8
发布时间:2024-11-16 19:36
阅读次数:0
**笔试训练 Day1**
### 一、前言笔试是程序员面试的重要组成部分,通过笔试可以快速筛选出对编程技术有兴趣并具备基本能力的人员。作为一名程序员,笔试是你展示自己编程技能和知识的一个机会。
在这篇文章中,我们将带领你完成一天的笔试训练,涵盖了基础数据结构、算法、面向对象编程等方面的题目。
### 二、基础数据结构####1. 数组数组是最基本的线性表结构,它由一组具有相同类型的元素组成。下面是一个使用 C++ 的例子:
cpp#include <iostream>
using namespace std;
int main() {
int arr[5] = {1,2,3,4,5};
cout << "第一个元素:" << arr[0] << endl;
cout << "最后一个元素:" << arr[4] << endl;
return0;
}
注释:上述代码使用 C++ 来定义一个长度为5 的整型数组,并输出第一个和最后一个元素。
####2. 链表链表是线性表的一种,它的每个结点包含一个数据域和一个指向下一个结点的引用。下面是一个使用 Java 的例子:
javapublic class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
public class LinkedList {
Node head;
public void addNode(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
} else {
Node lastNode = head;
while (lastNode.next != null) {
lastNode = lastNode.next;
}
lastNode.next = newNode;
}
}
public void printList() {
Node currentNode = head;
while (currentNode != null) {
System.out.print(currentNode.data + " ");
currentNode = currentNode.next;
}
System.out.println();
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.printList(); // 输出:123 }
}
注释:上述代码使用 Java 来定义一个链表,并添加三个结点,然后输出链表中的元素。
### 三、算法####1. 查找最大值下面是一个使用 C++ 的例子:
cpp#include <iostream>
using namespace std;
int findMax(int arr[], int size) {
int max = arr[0];
for (int i =1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int arr[] = {3,5,2,7,1};
cout << "最大值:" << findMax(arr, sizeof(arr)/sizeof(arr[0])) << endl;
return0;
}
注释:上述代码使用 C++ 来定义一个函数 `findMax`,用于查找数组中最大值,并输出结果。
####2. 排序下面是一个使用 Java 的例子:
javapublic class Sort {
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i =0; i < n -1; i++) {
for (int j =0; j < n - i -1; j++) {
if (arr[j] > arr[j +1]) {
// Swap arr[j] and arr[j+1]
int temp = arr[j];
arr[j] = arr[j +1];
arr[j +1] = temp;
}
}
}
}
public static void printArray(int[] arr) {
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = {5,2,8,3,1};
bubbleSort(arr);
printArray(arr); // 输出:12358 }
}
注释:上述代码使用 Java 来定义一个函数 `bubbleSort`,用于对数组进行冒泡排序,并输出结果。
### 四、面向对象编程####1. 类和对象下面是一个使用 C++ 的例子:
cpp#include <iostream>
using namespace std;
class Person {
public:
string name;
int age;
void printInfo() {
cout << "Name:" << name << endl;
cout << "Age:" << age << endl;
}
};
int main() {
Person person;
person.name = "John";
person.age =30;
person.printInfo();
return0;
}
注释:上述代码使用 C++ 来定义一个类 `Person`,并创建一个对象 `person`,然后输出其属性。
####2. 继承下面是一个使用 Java 的例子:
javapublic class Animal {
public void sound() {
System.out.println("动物叫");
}
}
public class Dog extends Animal {
@Override public void sound() {
System.out.println("狗叫");
}
public void wagTail() {
System.out.println("摇尾巴");
}
}
public class Cat extends Animal {
@Override public void sound() {
System.out.println("猫叫");
}
public void scratch() {
System.out.println("抓挠");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound(); // 输出:狗叫 dog.wagTail(); // 输出:摇尾巴 Cat cat = new Cat();
cat.sound(); // 输出:猫叫 cat.scratch(); // 输出:抓挠 }
}
注释:上述代码使用 Java 来定义一个类 `Animal`,并创建两个子类 `Dog` 和 `Cat`,然后输出其行为。
### 五、总结本篇文章涵盖了基础数据结构、算法和面向对象编程等方面的题目。通过这些例子,我们可以看到不同语言(如 C++ 和 Java)如何实现相同功能,并且可以学习到如何使用这些技术来解决实际问题。
笔试是程序员面试的重要组成部分,通过笔试可以快速筛选出对编程技术有兴趣并具备基本能力的人员。作为一名程序员,笔试是你展示自己编程技能和知识的一个机会。
希望这篇文章能够帮助你更好地理解这些概念,并且能够在实际面试中表现出色!

