潍坊市论坛

首页 » 分类 » 常识 » Linux工程师笔试题详解
TUhjnbcbe - 2021/6/27 23:02:00
江西治疗白癜风的医院 http://pf.39.net/bdfyy/bdfyc/150505/4618891.html

作者

Lee

试题来自牛客网。

下面程序的执行结果是()

charch[]="abcd",*pch;pch=ch;printf("%c\n",*pch+5);

A、f

B、0

C、\0

D、SegmentationFault

答案:A

题解:

pch是指针,指向字符数组ch的第一个元素‘a’。

*pch+5,先计算*pch,即字符‘a’,对字符‘a’加五,得到字符‘f’。

下面程序的执行结果是()

inti=0;voidfunc(inti){printf("%d",i++);}intmain(){func(i);printf("%d\n",i++);return0;}

A、01

B、00

C、12

D、11

答案:B

题解:

后置++的运算规则:先执行语句(输出),然后i的值再加一;

当全局变量遇上局部变量,局部变量优先级更高。

程序第二行的i是形参,属于局部变量,保存的值是0(第九行传过来的)。所以printf输出的是局部变量i的值,并且自增操作也是针对局部变量i,没有影响全局变量i的值。

用一篇文章搞懂++--

若有以下类型的

chara=5;intb=10;floatc=22;doubled=18;longlonge=15;

则表达式a*b+c-d-e的类型为()

A、float

B、int

C、longlong

D、double

答案:D

题解:

混合运算的规则:系统会默认把类型转换成表示范围大的类型。比如int和char一起运算,系统默认把char转换成int。

题目中double表示的范围最大。

下面程序的执行结果是()

intmain(intargc,char*argv[]){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);return0;}

A、China

B、Beijing

C、ng

D、ing

答案:B

题解:

char*p=str;

这行代码的赋值有问题。str是二维数组数组名,也是数组首行的地址,可以理解成是"China"这个一维数组的地址,即数组的地址。如果要用指针来保存该地址,应该是数组指针:

char(*p)[10]=str;

这样写比较合适。

题目中强行赋值,编译器会把第一个字符‘C’的地址赋值给指针p。p+10变成了字符‘B’的地址,所以输出的结果是“Beijing”

voidfunc(){staticintval;}

变量val的内存地址位于()

A、data

B、Bss

C、堆

D、栈

答案:B

题解:

C语言内存分配:

数据段(data):存放初始化的全局变量,属于静态数据区;

BSS段:存放未初始化的全局变量,属于静态数区;

堆:用户通过malloc等函数申请的内存;

栈:存放局部变量、形参。

val属于未初始化的静态变量。

关于Http状态码,下面说法正确的是?()

A、2xx表示成功

B、3xx表示客户端采取进一步的操作才能完成请求

C、4xx表示服务器错误

D、5xx表示客户端错误

答案:A

题解:

监听下面哪些端口,需要root权限?()

A、80

B、

C、

D、

答案:AD

题解:

Linux系统中,监听以下的端口需要root权限。以下的端口为特定应用程序所用。比如80用于HTTP协议,用于HTTPS协议。

下面哪些命令可以查看磁盘IO状况?()

A、vmstat

B、iostat

C、iftop

D、sar

答案:AB

题解:

vmstat命令是最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。

iftop是类似于top的实时流量监控工具。

sar(SystemActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等

对于进程间通信的匿名管道,下面说法正确的是?()

A、支持双向数据流

B、只支持单向数据流

C、只可用于有亲缘关系的进程之间

D、以一种特殊设备文件形式存在于文件系统中

答案:BC

题解:

管道有两种:无名管道和有名管道,无名管道适用于有血缘关系的进程(比如父子孙进程);有名管道适用于任意两个进程,有名管道以文件的形式存放在磁盘上。

管道都是单向的,进程从管道的一端写入数据,从另一端读取数据。

关于UTF-8编码,下面说法正确的是?()

A、可以向下兼容ASCII编码

B、固定使用4个字节表示

C、与字节顺序无关

D、与unicode是相互替代关系

答案:A

题解:

在UTF-8中,可以使用2字节来表示一个字符,格式为:

xxxxx10xxxxxx也可以使用3字节来表示一个字符,格式为:

1xxxx10xxxxxx10xxxxxx甚至也可以使用4个字节来表示,格式为:

11xxx10xxxxxx10xxxxxx10xxxxxxUnicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

十一

在Linux系统中,获取帮助信息的命令是()

A、help

B、man

C、cat

D、display

答案:B

题解:

man手册可以查看命令、函数的信息。

man1ls//查看命令man2open//查看系统调用man3strcpy//查看库函数

十二

若一个系统内存有64MB,处理器是32位地址,则它的虚拟地址空间为多少字节?()

A、2G

B、4G

C、K

D、64M

答案:B

题解:

32为的操作系统,虚拟地址空间大小都是4G,和物理内存大小没有关系。

十三

设栈S的初始状态为空,元素a,b,c,d,e,f,g依次入栈,以下出栈序列不可能出现的是?()

A、abcedfg

B、bcafegd

C、aedcbfg

D、gefdcba

答案:D

题解:

选项D:因为g最先出栈,所以只能是所有元素按顺序进栈,g变成栈顶。那么e不可能先于f出栈。

十四

完全二叉树的结点个数为4*N+3,则它的叶结点个数为()

A、2*N+2

B、2*N

C、2*N-1

D、2*N+1

答案:A

题解:

具有M个节点的完全二叉树,叶子节点数为:

(N+1)/2;

十五

按照二叉树的定义,具有3个结点的二叉树有()种。

A、3

B、4

C、5

D、6

答案:C

题解:

十六

下列叙述中,正确的是()

A、线性表的线性存储结构优于链表存储结构

B、队列的操作方式是先进后出

C、栈的操作方式是先进先出

D、二维数组是指它的每个数据元素为一个线性表的线性表

答案:D

题解:

选项A:线性存储结构容量有限,插入效率低,使用场景很少。

选项B:队列的特点,先进先出

选项C:栈的特点,先进后出

十七

关于指针以下说法错误的是()

A、指针为物理内存的地址

B、程序A向0x7fffff0a地址写入,程序B可以从这个地址读取该值

C、栈变量指针堆变量指针

D、堆变量指针栈变量指针

答案:ABD

题解:

选项A:C语言里面使用的内存都是虚拟内存,为了保护操作系统,在用户态无法直接操作物理地址。

选项B:每个进程都有自己的独立的地址空间,一个进程无法访问另一个进程的地址空间。

选项D:虚拟内存地址分配,从低地址到高地址依次为:代码段、数据段、BSS段、堆、栈。

十八

C语言中为合法的标识符的是()

A、RB

B、Abc

C、foo-func

D、a8bc

答案:BD

十九

以下说法正确的是()

A、static局部变量只被初始化一次,下一次依据上一次结果值

B、static全局变量只初始化一次,防止在其他文件单元中被使用

C、static函数只在当前源文件中被使用

D、对于可在当前源文件以外使用的函数,应该在一个头文件中声明

答案:ABCD

题解:

static关键字在C语言中的作用:

修饰全局变量,改变变量的作用域,该变量只能在本文件中被使用,不能在其他文件中使用;

修饰函数,改变函数的作用域,使函数只能在本文件中被调用,不能在其他文件中调用;

修饰局部变量,改变变量的存储方式,使变量存放在静态数据区,函数调用完并不会被释放。

二十

以下关于符号连接与硬连接的说法,正确的是()

A、创建符号连接时,将创建一个inode

B、创建硬连接时,将创建一个inode

C、删除符号连接源文件后,连接文件还可继续访问

D、删除硬连接源文件后,连接文件还可继续访问

答案:AD

题解:

inode:存放文件元信息的区域,比如文件的作者、大小、创建日期。

符号链接只是记录了源文件的路径,不会创建inode。

硬链接相当于是给文件起了多个名字,每个硬链接都会有一个inode。

删除符号链接的源文件,没有了inode就找不到文件在哪。但是如果删除了硬链接的源文件,通过其他硬链接的inode还能找到文件在哪(虽然是删除,但是磁盘并不会把内容擦掉)。

预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: Linux工程师笔试题详解