笔试训练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)如何实现相同功能,并且可以学习到如何使用这些技术来解决实际问题。
笔试是程序员面试的重要组成部分,通过笔试可以快速筛选出对编程技术有兴趣并具备基本能力的人员。作为一名程序员,笔试是你展示自己编程技能和知识的一个机会。
希望这篇文章能够帮助你更好地理解这些概念,并且能够在实际面试中表现出色!