北京凝思软件股份有限公司笔试题(研发工程师)
姓名: 学校: 专业:通信工程 阅卷人: 得分:
一、单项选择题(每题5分,共25分)
1、下列程序段的输出结果是( A )
#include <stdio.h>
void main()
{
int a = 6, b = 4;
a += a - b;
b *= a = a + b;
printf("%d, %d\n", a%2, b);
}
A: 6, 48 B: 4, 32 C: 0, 48 D: 6, 32
2、在Ubuntu操作系统中,我刚刚执行了 " dpkg -i text_1.2.3-4_all.deb " 命令安装了一个名为text的软件包,现在要将其卸载干净,应该执行以下哪条命令( D )
A: rm -rf text*
B: rpm -e text
C: yum remove text
D: dpkg -P text
3、改变文件所有者的命令为( c )
A: chmod B:chcon C:chown D:chgrp
4、你使用命令 " vim /etc/ssh/sshd_config " 查看该文件的内容,你不小心改动了一些内容,为了防止系统出问题,你不想保存所修改的内容,你应该如何操作( A )
A:在末行模式下,键入 " q! "
B:在命令行模式下,键入 " q! "
C:在可视模式下,键入 " q! "
D:在编辑模式下,按下ESC键后,键入 " :wq! "
5、在bash中,在一条命令后加入 " 1>&2 " 意味着( )
A:标准错误输出重定向到标准输入 B:标准输出重定向到标准错误输出
C:标准输入重定向到标准错误输出 D:标准输出重定向到标准输入
二、填空题(每题5分,共25分)
1、下列程序段的输出结果是__ _____________________
#!/bin/bash
var="Welcome to Linux OS"
echo ${var:11:5}
解压 text.tar.gz 文件,需要执行命令:tar -zxvf text.ter.gz
3、bash中, " $? " 代表什么:_获取上一句命令是否正确执行的结果_
4、修改全局环境变量,应该修改什么文件:_ _____________________________________
三、简答题(每题10分,共20分)
1、简述C语言中使用 < > 和 “ ” 引用头文件的区别。
1引用的头文件不同
#include< >引用的是编译器的类库路径里面的头文件。
#include“ ”引用的是你程序目录的相对路径中的头文件。
2、用法不同
#include< >用来包含标准头文件(例如stdio.h或stdlib.h).
#include“ ”用来包含非标准头文件。
3、调用文件的顺序不同
#include< >编译程序会先到标准函数库中调用文件。
#include“ ”编译程序会先从当前目录中调用文件。
2、简述队列和栈的区别。
四、程序设计(每题10分,共30分)
1、使用C语言编写一段程序,实现从1开始以每秒累加1的方式向终端打印数字,写到100后停止。要求代码格式规范,输出结果清晰易懂。 提示:sleep(1)
#include <stdio.h>
#include <unistd.h>
int main() {
for (int i = 1; i <= 100; ++i) {
printf("%d\n", i);
sleep(1);
}
return 0;
}
2、现有一 /tmp/test 目录,其中存放了许多压缩包,共tar.gz和zip两种格式。编写一个shell脚本,遍历该目录下的所有压缩包,将每个压缩包中包含的文件信息单独输出到各自以压缩包名称命名、后缀为 .log 的文件中,最后将生成的所有文件汇总打包成一个名为 compress.tar.gz 的压缩包。
使用C语言或者shell,编写一个程序,提取字符串 " Depends: libc6 (>= 2.2.5), libncurses5 (>= 6), libtinfo5 (>= 6) " 中的libc6、libncurses5、libtinfo5。
#include <stdio.h>
#include <string.h>
int main() {
char input[] = "Depends: libc6 (>= 2.2.5), libncurses5 (>= 6), libtinfo5 (>= 6)";
char *token = strtok(input, " ");
while (token != NULL) {
if (strcmp(token, "libc6") == 0 || strcmp(token, "libncurses5") == 0 || strcmp(token, "libtinfo5") == 0) {
printf("%s\n", token);
}
token = strtok(NULL, " ");
}
return 0;
}