1.运行下面代码段

#include<stdio.h>
int i;
int main(){i--;if(i>sizeof(i)){printf(">\n");}else{printf("<\n");}
}

这里使用了反码和补码的知识,-1的补码切换成为反码,后改为源码,便可以大于int类型所使用的4,同时可以得到,如果对i多次累减在一定次数即二的三十二次方里面是可以做到正常的出现,但在累加的情况下,必须要在四次以上才可以。

输出为>

2.执行下面的代码,

#include<stdio.h>
#define A 2+2
#define B 3+3
#define C A+B
int main(){printf("%d",C);
}

这个题的结果应该是10,define的含义是替换,即在遇到C时便将其替换成为A+B然后出现了A,B于是将A,B转化为2+2和3+3.最后对其求和即可得到10

3. 分析下面输出的结果

#include<stdio.h>
#include<string.h>
int main(){char str[]="welcome to xiyoulinuxgroup";printf("%zu %zu\n",strlen(str),sizeof(str));
}

结果出来是26和27.里面可以得到的str【】这个数组里面得到了那一串用英语写的,但sizeof和strlen作为对其中元素遍历的函数,会将其中的字母个数进行输出,但strlen会比sizeof少/0的存在,所以会在这个情况少1

4.

#include<stdio.h>
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);
}
int main(){fun();fun();
}

这个题考虑到了局部和全局变量的存在。在这个题中,x是作为局部变量的存在,所以在函数执行结束便会消失再下一次再调用便会再生成。但num是全局变量的存在。在这个过程中num的调用和结果会被全部记录,得到每次 累积下来的结果

即x为恒为5而num会是5*次数

5.

#include<stdio.h>
int main(){int number;unsigned mask;mask=1u<<31;scanf("%d",&number);while(mask){printf("%d",(number&mask)?1:0);mask>>=1;}
}

这个源代码是用来处理将十进制的数转化成为二进制 最高可以到2的三十三次方减一;

6.

#include<stdio.h>
int main(){char *str ="Xiyou Linux Group";printf("%c\n",*str+1);
} 

这个源代码中,当对其进行指向时,会得到其第一个字母,当对这个地址加一便可以得到其后的那个字母即Y

7.运行并且分析

#include<stdio.h>
int main(){double a=3.14;float b=a;printf("%f  %f ",a,b);if((float)a==b){printf("xiyou");if(a!=b){printf("linuxgroup");}}
}

在这个源代码中,double 和float是不一样的,在这里double是8个字节而float是4个字节所以在转化的时候并不相同,但在强制转化之后可以得到是相同的因为其中并不会直接改变数字,而是在这里进行去除无用元素的过程

所以强制转换之后是相同的,但在这之前并不相同

8.

#include<stdio.h>
int main(){int a[6]={0x6f796958, 0x694c2075, 0x2078756e, 0x756f7247, 0x30322070,0};printf("%d",printf("%s",(char *)a));
}

这个源代码中,存了几个字符的ASCLL码,在输出时,利用ASCLL码输出可以得到

Xiyou Linux Group 20然后在第二个输出中因为一共二十个字符,所以再输出20所以得到Xiyou Linux Group 2020

9.

#include<stdio.h>
int main(int argc, char *argv[])
{int a[2][3] = {{5, 7}, {5, 2}};int b[2][3] = {5, 7, 5, 2};int c[2][2] = {{5, 7}, {5, 2}};int d[2][2] = {5, 7, 5};printf("%d %d\n", a[1][1], b[1][1]);printf("%d %d\n", c[1][1], d[1][1]);return 0;
}

这个代码输出是换行的20/20 第一个2的原因是a[1][1]中a[1]是{5,2}其中[1]是2所以可以得到第一个2,然后b数组中没有对b[1][1]进行定义所以得到的是0,相同的道理可以得到下一行也得到20

10.

#include<stdio.h>
int main(){int a=1;printf("%d\n",*(char *)&a);
} 

结果是1,即a的值 a的4个字节中的第一个字节地址赋给char* 型指针变量所以后面的那一段所说的也就是a这个变量

11.参考19年的面试题

12.C语言从源文件变为可执行文件之间发生的过程

会经历预处理,编辑,汇编,汇编,链接

首先有两个环境:一个翻译环境,一个运行环境
翻译环境:就是把源代码翻译为计算机可以识别得懂得01二进制代码

运行环境:就是执行代码,运行代码的一个环境;

翻译环境完成的工作为:编译+链接的过程

编译又分为:预处理,编译,汇编三个步骤

而预处理主要做的就是:

- 头文件的展开(#include);
- 宏替换(#define);
- 条件编译的处理(#if #endif等);
- 去注释;
将.c文件变为预处理后的.i临时文件

13.参考19年的冒泡排序那道题

2020西安邮电大学linux兴趣小组面试题相关推荐

  1. 2020西安邮电大学linux兴趣小组补录

    1. #include <string.h> int main(void) { char *str = "linux"; str[0] = "L"; ...

  2. 西安邮电大学计算机学院研究生分数,2020西安邮电大学考研复试分数线已公布...

    院校考研复试分数线是判别该考生能否进入院校重要评判标准,了解分数线是考研过程中的第一步,以便于给自己制定一个要求.点击查看-2020西安邮电大学考研复试分数线~~ 西安邮电大学2020年硕士研究生招生 ...

  3. 2020西安邮电大学ThoughtWorks®联合创新实验室面试题解

    2020西安邮电大学ThoughtWorks®联合创新实验室面试题解 题目 1.年轻人我劝你耗子尾汁 2.学生分组问题 3.青蛙过河 4.熊熊的困惑 5.素数和 6.自然之美 7.海涛数对 8.那就是 ...

  4. 西邮Linux兴趣小组面试题总结(2020)

    面试题总结 宏定义 #define 标识符 字符串 2019年面试题 下面代码段的输出结果是什么?输出该结果的原因是? #define X a + b int main(int argc, char ...

  5. 2021年 西邮Linux兴趣小组 纳新免试题揭秘

    文章目录 引言 第一关 第二关 第三关 第四关 第五关 总结 引言 小组2020年的免试题的四位出题人是:小组18级成员李兆龙,20级成员赵子玮,刘树杭,任子涧. 同时19级成员周阔,戚凯萌,胡哲宁, ...

  6. 西邮Linux兴趣小组2017纳新免试题揭秘

    声明 今年的免试题按照关卡顺序依次是由小组15级成员何攀.楚东方.宫展京.杜肖孟.王一妃同学精心准备的(鼓掌),每个人总结了一下自己负责关卡的解法,我这里整理了一下,给出一套完整的免试题详解,免试题通 ...

  7. 电子商务案例分析php,2020知到《西安邮电大学网课电子商务案例分析》单元测试答案2020高校邦《ThinkPHP框架技术》答案免费...

    2020知到<西安邮电大学网课电子商务案例分析>单元测试答案2020高校邦<ThinkPHP框架技术>答案免费 更多相关问题 [判断题] 动物性原料最适宜剞蓑衣花刀. [问答题 ...

  8. 西邮linux兴趣小组2019,2020补纳面试题

    西邮linux兴趣小组2019,2020补纳面试题 2019补纳 2020补纳 C语言基础 数据结构与算法 GNU Linux常识 关于纳新试题,您需要了解: 本题仅作为面试有限参考 为了代码的简洁, ...

  9. Xiyou Linux兴趣小组2020纳新试题

    1.请试着解释其输出 int main(int argc , char *argv[]) { unsigned char a = 255; char ch = 128; a -= ch; printf ...

最新文章

  1. gulp插件之browser-sync安装报错
  2. RecycleView加载不同类型的Item
  3. MYSQL查看执行计划 Explain
  4. Java安全(一) : java类 | 反射
  5. Cesium:修改点击显示的infoBox内容
  6. 第13章 集成学习和随机森林 学习笔记上
  7. 【2017西安邀请赛:A】XOR(区间异或最大值多次查询---线段树+线性基合并)
  8. 《轻松读懂spring》之 IOC的主干流程(上)
  9. sony手机刷linux,索尼Z3 Z3C 5.0系统刷recovery教程_Sony Z3第三方recovery
  10. 【java期末复习题】第15章 JDBC数据库编程
  11. Express框架概述
  12. 数据库必看--WYL篇
  13. html中把图片移动位置不变,css如何定位图片保持位置不变?
  14. 2022年高处安装、维护、拆除操作证考试题库及在线模拟考试
  15. 企业邮箱群发邮件 - 邮件群组群发邮件详解
  16. 设计师:设计师知识储备之室内设计风格图文介绍大全(中式风格、清新风格、现代简约、现代风格、后现代风格、田园风格-中式田园-欧式田园-美式田园-美式乡村风格)之详细攻略
  17. 利用百度地图采集大量某一区域经纬度信息
  18. ddwin32diskimager软碟通Ultraiso 简单分析区别和长处
  19. Datawhale 集成学习 Task06:掌握分类问题的评估及超参数调优
  20. 浪潮服务器u盘安装linux系统,Redhat/CentOS 6.x系统安装步骤

热门文章

  1. mysql数据表查询
  2. You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofi
  3. Python 写函数,计算并返回传入字符串中数字个数、字母个数、空格个数以及其他字符的个数。
  4. 利用spring-cloud-gateway怎么实现一个动态路由功能
  5. 为什么1TB的硬盘并没有1TB
  6. python问题两个乒乓球队进行比赛_Python练习题 017:三支乒乓球队出赛名单
  7. 3526:最简真分数 ②
  8. KB和kb,傻傻分不清楚
  9. 海狮号水下机器人_「揭晓」水下机器人哪家强?冠军出炉了
  10. C++类对象到底占多大存储空间呢