当前位置: 首页 > news >正文

c语言技术面试记录 ---- 纲要、题目、分析及给分标准

纲要

作为一个面试官,除了编程类的问题,你还可以考虑问一些关于技术知识项目经验解决问题能力团队合作等方面的问题,以全面评估应聘者的能力适应性。以下是一个可能的提问逻辑和大纲,供你参考:

技术知识和基础问题

  1. C语言以外,你是否还熟悉其他编程语言?
  2. 请谈谈指针和引用的区别是什么,以及在什么情况下你会选择使用它们?
  3. 什么是内存泄漏?如何避免内存泄漏的发生?
  4. 你是否了解数据结构和算法?请谈谈你熟悉的一些常见数据结构和它们的应用场景。

项目经验和实际应用

  1. 请分享一个你在学习过程中或个人项目中遇到的挑战,并描述你是如何解决它的。
  2. 你是否在团队中参与过开发项目?请谈谈你在团队中的角色以及如何协调工作。
  3. 你是否了解版本控制系统(如Git)?在团队协作中,你如何处理代码冲突和合并?

解决问题和逻辑思维

  1. 如果你遇到一个性能问题,你会如何去排查和解决?
  2. 当你遇到一个复杂的bug,但没有明确的错误信息时,你会采取什么步骤来定位问题所在?
  3. 请分享一个你通过分析和创造性思考解决问题的经历。

团队合作和沟通能力

  1. 在之前的团队项目中,你是如何与其他成员合作的?你如何解决团队中的分歧或冲突?
  2. 在团队中,如何保持有效的沟通,以确保每个人都在同一页面上?

个人发展和兴趣

  1. 除了编程,你还有什么兴趣爱好?你在业余时间都在学些什么?
  2. 你对于学习新技术或领域有何计划?

以上大纲可以帮助你全面了解应聘者的技术知识、实际经验、解决问题的能力以及团队合作和沟通能力。根据具体的职位要求和公司文化,你可以调整问题的重点和深度。此外,还可以针对应聘者的回答深入提问,以更好地了解他们的思维过程和能力。

c语言笔试题

题目一:基本语法和控制结构

  1. 编写一个程序,输入一个整数,判断该整数是奇数还是偶数,并输出相应的信息。

  2. 编写一个循环,计算并输出1到100之间所有能被3整除但不能被5整除的数的和。

题目二:数组和指针

  1. 声明一个整型数组,包含5个元素,然后编写代码实现数组元素的逆序排列。

  2. 编写一个函数,接受一个整型数组和数组的长度作为参数,返回数组中的最大值。

题目三:函数和字符串处理

  1. 编写一个函数,接受一个字符串作为参数,返回该字符串中的字符个数(不包括结尾的空字符)。

  2. 编写一个函数,接受两个字符串作为参数,判断第一个字符串是否是第二个字符串的子串,如果是,则返回子串第一次出现的位置,否则返回-1。

题目四:结构体和文件操作

  1. 声明一个表示学生的结构体,包含学生的姓名、年龄和成绩。然后编写代码,从文件中读取多个学生的信息,并计算他们的平均成绩。

  2. 编写一个函数,接受一个学生结构体的数组和数组长度作为参数,按照成绩降序对学生进行排序,并输出排序后的结果。

题目五:动态内存分配

  1. 编写一个程序,接受用户输入的一个正整数n,动态分配一个整型数组,然后逐个输入n个整数到数组中,最后计算并输出这些整数的平均值。

  2. 扩展上述程序,除了计算平均值外,还要找出输入的n个整数中的最大值和最小值,并输出它们。

这些题目涵盖了C语言的一些基本概念和常见操作。希望这些题目能够帮助应届生们巩固他们的C语言知识。

这些题目对于评估应聘者的C语言编程能力是相当合适的,尤其是针对大学本科或研究生级别的应届生。这些题目涵盖了C语言的基本语法、控制结构、数组、指针、函数、字符串处理、结构体、文件操作和动态内存分配等方面的知识点,能够很好地测试应聘者的编程基础和逻辑思维能力。

如果你希望进一步深入考察应聘者的能力,你还可以考虑增加一些稍微复杂一点的题目,涵盖更多的高级特性,比如多文件编程、指针的高级应用、递归、位操作等等。不过,这些题目已经涵盖了大部分C语言的基本和常用知识,足以评估应聘者的编程水平。

如果时间允许,你也可以考虑添加一些编程练习题,让应聘者在实际问题中应用他们的C语言知识,从而更全面地了解他们的能力。

总之,你可以根据招聘职位的要求和考察的重点,酌情增减题目。这些题目应该能够帮助你评估应聘者的C语言编程水平和解决问题的能力。

标准答案 & 给分标准

题目一:基本语法和控制结构

1. 标准答案和分析:

#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num);} else {printf("%d是奇数\n", num);}return 0;
}

给分标准:

  • 正确判断奇偶数并输出相应信息:5分
  • 正确使用if语句:3分
  • 正确输入输出:2分

2. 标准答案和分析:

#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 3 == 0 && i % 5 != 0) {sum += i;}}printf("结果:%d\n", sum);return 0;
}

给分标准:

  • 正确计算并输出1到100之间符合条件的数的和:8分
  • 正确使用for循环:2分

题目二:数组和指针

1. 标准答案和分析:

#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5 / 2; i++) {int temp = arr[i];arr[i] = arr[4 - i];arr[4 - i] = temp;}printf("逆序排列后的数组:");for (int i = 0; i < 5; i++) {printf("%d ", arr[i]);}return 0;
}

给分标准:

  • 正确逆序排列数组元素:8分
  • 正确使用for循环:2分

2. 标准答案和分析:

#include <stdio.h>int findMax(int arr[], int length) {int max = arr[0];for (int i = 1; i < length; i++) {if (arr[i] > max) {max = arr[i];}}return max;
}int main() {int arr[] = {23, 45, 12, 67, 89};int length = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, length);printf("最大值:%d\n", max);return 0;
}

给分标准:

  • 正确找到数组中的最大值并返回:8分
  • 正确使用函数:2分

题目三:函数和字符串处理

1. 标准答案和分析:

#include <stdio.h>
#include <string.h>int countCharacters(char str[]) {return strlen(str);
}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);int count = countCharacters(str);printf("字符个数:%d\n", count);return 0;
}

给分标准:

  • 正确计算字符串中的字符个数:8分
  • 正确使用函数:2分

2. 标准答案和分析:

#include <stdio.h>
#include <string.h>int findSubstring(char str[], char sub[]) {char *ptr = strstr(str, sub);if (ptr != NULL) {return ptr - str;} else {return -1;}
}int main() {char str[100], sub[100];printf("请输入主字符串:");scanf("%s", str);printf("请输入子字符串:");scanf("%s", sub);int pos = findSubstring(str, sub);if (pos != -1) {printf("子字符串在位置:%d\n", pos);} else {printf("子字符串不存在\n");}return 0;
}

给分标准:

  • 正确判断子字符串是否是主字符串的子串:8分
  • 正确返回子串在主串中的位置或返回-1:2分
  • 正确使用函数:2分

题目四:结构体和文件操作

1. 标准答案和分析:

#include <stdio.h>struct Student {char name[50];int age;float score;
};int main() {FILE *file = fopen("students.txt", "r");if (file == NULL) {printf("无法打开文件\n");return 1;}struct Student students[100];int count = 0;while (fscanf(file, "%s %d %f", students[count].name, &students[count].age, &students[count].score) != EOF) {count++;}fclose(file);float totalScore = 0.0;for (int i = 0; i < count; i++) {totalScore += students[i].score;}float averageScore = totalScore / count;printf("平均成绩:%f\n", averageScore);return 0;
}

给分标准:

  • 正确读取文件中的学生信息:8分
  • 正确计算平均成绩:6分
  • 正确使用结构体:3分
  • 正确文件操作和输入输出:3分

2. 标准答案和分析:

#include <stdio.h>
#include <string.h>struct Student {char name[50];int age;float score;
};int compare(const void *a, const void *b) {return ((struct Student *)b)->score - ((struct Student *)a)->score;
}int main() {struct Student students[5] = {{"Alice", 21, 85.5},{"Bob", 22, 76.2},{"Carol", 20, 92.0},{"David", 23, 78.8},{"Eve", 21, 89.7}};int count = sizeof(students) / sizeof(students[0]);qsort(students, count, sizeof(struct Student), compare);printf("按成绩降序排序后的学生信息:\n");for (int i = 0; i < count; i++) {printf("姓名:%s,年龄:%d,成绩:%f\n", students[i].name, students[i].age, students[i].score);}return 0;
}

给分标准:

  • 正确使用结构体存储学生信息:5分
  • 正确排序学生信息并输出:10分
  • 正确使用qsort函数和自定义比较函数:5分

题目五:动态内存分配

1. 标准答案和分析:

#include <stdio.h>
#include <stdlib.h>int main() {int n;printf("请输入整数个数:");scanf("%d", &n);int *arr = (int *)malloc(n * sizeof(int));if (arr == NULL) {printf("内存分配失败\n");return 1;}int sum = 0;for (int i = 0; i < n; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &arr[i]);sum += arr[i];}float average = (float)sum / n;printf("平均值:%f\n", average);free(arr);return 0;
}

给分标准:

  • 正确分配动态内存:5分
  • 正确输入并计算平均值:5分
  • 正确释放内存:2分

2. 标准答案和分析:

#include <stdio.h>
#include <stdlib.h>int main() {int n;printf("请输入整数个数:");scanf("%d", &n);int *arr = (int *)malloc(n * sizeof(int));if (arr == NULL) {printf("内存分配失败\n");return 1;}int max = -2147483648; // 初始值为最小整数int min = 2147483647;  // 初始值为最大整数for (int i = 0; i < n; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &arr[i]);if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}float average = 0.0;int sum = 0;for (int i = 0; i < n; i++) {sum += arr[i];}average = (float)sum / n;printf("最大值:%d,最小值:%d,平均值:%f\n", max, min, average);free(arr);return 0;
}

给分标准:

  • 正确找到最大值和最小值:5分
  • 正确计算并输出最大值、最小值和平均值:7分
  • 正确分配和释放动态内存:3分

请注意,给分标准可以根据实际情况进行调整,确保考察的内容和难度与招聘职位的要求相符。同时,给分标准应该注重考察代码的正确性、逻辑性和风格,以及对关键知识点的理解和应用。

相关文章:

c语言技术面试记录 ---- 纲要、题目、分析及给分标准

纲要 作为一个面试官&#xff0c;除了编程类的问题&#xff0c;你还可以考虑问一些关于技术知识、项目经验、解决问题能力和团队合作等方面的问题&#xff0c;以全面评估应聘者的能力和适应性。以下是一个可能的提问逻辑和大纲&#xff0c;供你参考&#xff1a; 技术知识和基…...

前端进阶之——模块化

在做项目的时候越来越发现模块化的重要性&#xff0c;做好模块化开发不仅给后期的维护带来不少好处而且大大提升项目开发效率&#xff0c;接下来整理一下模块化相关知识吧。 模块化开发的优点 封装方法、提高代码的复用性、可维护性和可读性隔离作用域&#xff0c;避免污染全…...

Python爬虫抓取表情包制作个性化聊天机器人

在现代社交媒体和即时通讯应用中&#xff0c;使用表情包已经成为一种流行的沟通方。本文将介绍如何利用Python编写一个简单而有趣的聊天机器人&#xff0c;并通过爬虫技术来抓取各类表情包&#xff0c;使其具备个性化特点。   1.确定需求与功能   -定义聊天机器人需要实现哪…...

使用pip命令安装库,装到其他环境中的问题。

问题描述&#xff1a;我们在pycharm中创建了新的虚拟环境&#xff0c;但是在其终端使用Pip命令安装库时&#xff0c;发现库却安装到了其他conda创建的环境中。图示安装gym库&#xff0c;刚开始安装到了其他地方&#xff0c;第二次正确安装。 原因分析&#xff1a;安装库时&…...

如何使用CSS实现一个带有动画效果的进度条?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ HTML 结构&#xff1a;⭐ CSS 样式&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那…...

uni-app 报错 navigateTo:fail page “/pages/.../...“ is not found

这个错误的意思是&#xff1a;识别不到该页面 错误可能一&#xff1a;没有在 pages.json【微信小程序是 app.json】中定义该页面的路径 如&#xff1a; pages.json "pages": [{"path": "pages/index/index" }, {"path": "pag…...

【unity插件】使用BehaviorDesigner插件制作BOSS的AI行为树

文章目录 前言素材插件一、基础使用二、敌人物理攻击三、敌人面向玩家四、敌人法术攻击五、随机进行攻击六、敌人不同的阶段推荐学习视频源码完结 前言 Behavior Designer是一个行为树插件&#xff0c;是一款为了让策划&#xff0c;程序员&#xff0c;美术人员方便使用的可视化…...

概念解析 | 量子机器学习:将量子力学与人工智能的奇妙融合

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:量子机器学习。 量子机器学习:将量子力学与人工智能的奇妙融合 量子增强机器学习:量子经典混合卷积神经网络 量子机器学习是量子计算和机器学习的结合,它利用量子力学的特…...

【Cortex-M3权威指南】学习笔记4 - 异常

目录 实现 CM3流水线CM3 详细框图CM3 总线接口总线连接模板 异常异常类型优先级定义优先级组 向量表中断输入于挂起NMI中断挂起 Fault 类异常总线 faults存储器管理 faults用法 faults SVC 与 PendSV 实现 CM3 流水线 CM3 处理器使用 3 级流水线&#xff0c;分别是&#xff1a;…...

RISC-V(2)——特权级及特权指令集

目录 1. 特权级 2. 控制和状态寄存器&#xff08;CSR&#xff09; 2.1 分类 2.2 分析 1. 特权级 一个 RISC-V 硬件线程&#xff08;hart&#xff09;是运行在某个特权级上的&#xff0c;这个特权级被编码到一个或者多个 CSR&#xff08;control and status register&a…...

Linux——常用命令大汇总(带你快速入门Linux)

纵有疾风起&#xff0c;人生不言弃。本文篇幅较长&#xff0c;如有错误请不吝赐教&#xff0c;感谢支持。 &#x1f4ac;文章目录 一.终端和shell命令解析器终端和shell命令解析器概述终端提示符的格式常用快捷键 二.Linux命令格式帮助文档&#xff1a;man 三.目录基础知识Wind…...

记录 使用 git 克隆仓库报错:Warning: Permanently added‘github.com’ to the .....(ssh )

解决方法&#xff1a; 1. 新建空文件夹->右键->点击 Git Bash Here2. 输入 cd C&#xff1a;3. 输入 cat ~/.ssh/id_rsa.pub4. 输入 ssh-keygen重复回车&#xff0c;生成一个矩形&#xff0c;则说明公钥已经生成了。重复步骤3&#xff0c;生成publickey&#xff0c;右键…...

kafka---- zookeeper集群搭建

1.准备工作: ##准备3个节点&#xff0c;要求配置好主机名称&#xff0c;服务器之间系统时间保持一致 ##注意/etc/hostname 和/etc/hosts 配置主机名称(在这个里我准备Prac-zk-133, Prac-zk-134 , Prac-zk-135二节点) vim /etc/hosts #保证可以通过主机名互通 添加格式为IP 主…...

linux安装firefox

1.下载对应包 https://www.mozilla.org/en-US/firefox/all/#product-desktop-release 2. 挂载桌面链接(如果/usr/bin/firefox下有的话,先删除) ln -s /opt/firefox/firefox /usr/bin/firefox 3.执行以下命令&#xff0c;即可启动Firefox客户端&#xff1a; firefox...

【MySQL】基础语法总结

MySQL 基础语句 一、DDL 数据库定义语言 1.1CREATE 创建 1.1.1 创建数据库 语法结构 CREATE DATABASE database_name;示例 CREATE DATABASE demo;1.1.2 创建表 语法结构 CREATE TABLE 表名 (列1 数据类型,列2 数据类型,... );示例 CREATE TABLE new_user (id INT PRIMARY KE…...

【玩玩Vue】使用el-menu作为菜单时,通过一二级路由控制菜单高亮

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、Vue路由二、路由一级控制高亮&#xff08;常用&#xff09;1.vue中路由文件2.网址样式3.Vue文件4.$route的内容 三、路由二级控制高亮…...

9.2 【C语言】使用结构体数组

一个结构体变量中可以存放一组有关联的数据&#xff08;如一个学生的学号、姓名、成绩等数据&#xff09;&#xff0c;如果有10个学生需要参加运算&#xff0c;显然应该用数组&#xff0c;这就是结构体数组。 9.2.1 定义结构体数组 例9.3 有三个候选人&#xff0c;每个选民只…...

leetcode原题: 最小值、最大数字

题目1&#xff1a;最小值 给定两个整数数组a和b&#xff0c;计算具有最小差绝对值的一对数值&#xff08;每个数组中取一个值&#xff09;&#xff0c;并返回该对数值的差 示例&#xff1a; 输入&#xff1a;{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出&#xff1a;3&…...

Prompt2Model: Generating Deployable Models from Natural Language Instructions

本文是LLM系列文章&#xff0c;针对《 Prompt2Model: Generating Deployable Models from Natural Language Instructions》的翻译。 Prompt2Model&#xff1a;从自然语言指令生成可部署模型 摘要1 引言2 Prompt2Model框架3 参考实现4 实验设置5 实验结果6 讨论与结论不足道德…...

前端埋点 sendBeacon 替代方式

看英文文档真的很重要 sendBeacon 限制比较多, 容易跨域, 跨域时候还必须指定请求头, 不能使用通配符来解决跨域 文档地址 文档里面说 fetch 其实可以代替 sendBeacon 原文: Note: For use cases that need the ability to send requests with methods other than POST, or …...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...