西邮Linux2020年面试题(上)

简介: 西邮Linux2020年面试题

西邮Linux2020年面试题

1运行下面代码,输出结果是什么?解释其原因。

2执行下面代码段,谈谈你对宏的理解。

3分析下面程序的输出结果

4在程序中执行此函数,其输出结果是什么,在同一程序中执行多次该函数,输出结果是否相同?

5分析以下程序,推测并验证其作用。

6下面程序的执行结果是什么,请解释说明

7 以下程序段运行的结果是什么,你知道怎么判断两个浮点数是否相同?

8 运行下列代码,解释运行结果,谈谈自己的理解。

9分析下列程序的输出,解释其原因

10执行下面程序段,其输出结果是什么,解释其原因。

11 下面程序段的输出结果是什么,若取消第三行的const注释,数组a还能被修改吗?取消6,8行的注释,程序还能正常运行吗?解释其原因

12一个c源文件到一个可执行文件的过程中经历了那些步骤?

1运行下面代码,输出结果是什么?解释其原因。

int i;
int main(int argc,char *argv[]){
    i--;
    if(i>sizeof(i)){
        printf(">\n");
    }else{
        printf("<\n");
    }
    return 0;
}
>
1111 1111 1111 1111 1111 1111 1111 1111
而sizeof的结果为4,二进制表示为
0000 0000 0000 0000 0000 0000 0000 0100
显然在比较中将i当作了无符号整型来与sizeof(i)比较的,所以结果>

2执行下面代码段,谈谈你对宏的理解。

#define A 2 + 2
#define B 3 + 3
#define C A *B
int main(int argc, char *argv[])
{
    printf("%d\n", C);
    return 0;
}
宏进行的是简单的文本替换,题中A*B的替换结果其实是2+2*3+3

3分析下面程序的输出结果

int main(int argc, char *argv[])
{
    char str[] = "Welcome to XiyouLinuxGroup";
    printf("%zu %zu\n", strlen(str), sizeof(str));
    return 0;
}
%zu输出size_t型,size_t在库中定义为unsigned int 。
strlen计算的是字符串的元素个数(不包括结尾的"\0")
而sizeof计算的是其占内存的大小,结尾"\0"也占一字节,所以结果为27。

4在程序中执行此函数,其输出结果是什么,在同一程序中执行多次该函数,输出结果是否相同?

void fun()
{
    int x = 0;
    static int num = 0;
    for (int i = 0; i < 5; i++)
    {
        x++;
        num++;
    }
    printf("x = %d num = %d\n", x, num);
}
x = 5 num = 5
x = 5 num = 10
x输出结果相同,num的不同。
使用static修饰符定义静态局部变量,它的生命周期是整个应用程序的运行时间,它只会被初始化一次。每次调用fun()都会在num原有的基础上再加5,而x每次都是从0加到5

5分析以下程序,推测并验证其作用。

int main(int argc, char *argv[])
{
    int number;
    unsigned mask;
    mask = 1u << 31;
    scanf("%d", &number);
    while (mask)
    {
        printf("%d", (number & mask) ? 1 : 0);
        mask >>= 1;
    }
    return 0;
}
如char a=1,a的二进制为0000 0001,执行a<<3后a的值为8,其二进制数为0000 1000,低位补0。
&是且运算,对应二进制位都为1时该位的结果为1,否则为0。
如a=3,b=7,a&b=2(0011 & 1110 = 0010)
同理mask>>=1是向右移动一位,高位补0。
"?:"是双目运算符,?前面的返回值不为零则返回?与:中间的值,否则返回:后面的值

6下面程序的执行结果是什么,请解释说明

int main(int argc, char *argv[])
{
    char *str = "Xiyou Linux Group";
    printf("%c\n", *str + 1);
    return 0;
}
X的地址为该字符串的首地址,则*str='X',而'X'+1='Y'(ASCII码的加减)
相关文章
|
2月前
|
Linux Shell
面试题13: Linux 命令
面试题13: Linux 命令
|
3月前
|
网络协议 Linux 程序员
程序员的50大Linux面试问题及答案(二)
程序员的50大Linux面试问题及答案(二)
|
2月前
|
Linux Shell 调度
Linux面试题
Linux 一般是指 Linux 内核、 Linux 系统、 Li nux 发行版。严格意义上说 Linux 是指由 Linus Torvalds 维护的并发布的内核。它的代码只包括内核而不包括其它方面的应用。内核提供系统核心服务,如进程管理,进程的调度,虚拟文件系统,内存的管理等等。
85 0
Linux面试题
|
11天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
64 0
|
1月前
|
算法 Linux 调度
嵌入式linux面试题目总结
嵌入式linux面试题目总结
37 0
|
2月前
|
Linux
Linux面试常用命令大全(常用指令)
Linux面试常用命令大全(常用指令)
|
2月前
|
Linux
面试题12: 基本Linux 命令题目
面试题12: 基本Linux 命令题目
|
3月前
|
存储 Linux 编译器
Linux系统中驱动面试分享
Linux系统中驱动面试分享
41 0
|
3月前
|
存储 Unix Shell
程序员的50大Linux面试问题及答案(一)
程序员的50大Linux面试问题及答案(一)
|
4月前
|
Linux 应用服务中间件 数据库
Linux 面试题-(腾讯,百度,美团,滴滴)
Linux 面试题-(腾讯,百度,美团,滴滴)
48 0