1.下面代码段将打印出多少个’=’?运用相关知识解释该输出。

int main()
{for(unsigned int i=3;i>=0;i--){putchar('=');}
}
 无数个'=',因为无符号数无负,造成死循环。

2.下列三种交换整数的方式是如何实现交换的?

/*(1)*/ int c = a ; a = b ; b = c;
/*(2)*/ a = a - b ; b = b - a ; a = b -a ;
/*(3)*/ a ^ = b ; b ^ = a ; a ^ = b ;
 1.通过引进一个新变量直接赋值,将a与b的值交换;2.通过两个变量之间的关系进行运算,达到将a与b值交换的目的;3.通过^的异或运算,将a与b进行交换;

3.有如下代码段所示的函数f,当我们执行该函数时,会产生什么样的输出结果?在同一程序中多次执行该函数,输出结果是否一致?

void f()
{static int a=0;int b=0;printf("%d,%d",++a,++b);
}
 a会逐步增加,b不变;static局部变量的“记忆性”,是指在函数调用多次时,在第二次调用进入时,能保持第一次调用退出时的值;

4.下面程序段的输出是什么?请解释该现象并说出与之相关近可能多的知识;

int main(void)
{printf("%d\n",printf("Xiyou Linux Group2%d",printf("")));
}
 输出Xiyou Linux Group2019;printf的返回值是你输出的位数;printf函数的运行机制为在栈上申请存储空间, 规则为先进后出, 因此printf()表现为参数从右向左运算;

5.执行下面的代码段,会输出什么?请试着解释其原因,并叙述相关知识;

int main(int argc, char *argv[])
{char ch = 255;int d = a + 1;printf("%d %d",ch,d);
}
 -1 "a+1"的值;计算机中, 数字存其补码, 255的原反补都是1111 1111,以char来看1111 1111,原码为10000001;为-1;

6.执行以下代码段,将产生什么样的输出?请对输出加以解释,并手动计算代码中t的值;

int main(int argc, char *argv[])
{char x=-2,y=3;char t=(++x)|(y++);printf("x=%d,y=%d,t=%d\n",x,y,t);t=(++x)||(y++);printf("x=%d,y=%d,t=%d\n",x,y,t);
}
 x=-1,y=4,t=-1  x=0,y=5,t=1|:二进制''或"(有1是都是1;都是0才是0)11111111  |  00000100  =  11111111->原码:10000001=-1;||:逻辑或;因为其中有一个为真,所以输出1;

7.下面代码段的输出结果是什么?输出该结果的原因是?

#define X a+b
int main()
{int a=1,b=1;printf("%d\n",X*X);}
 结果为3;因为在编译时候,只做简单替换

8.请解释下面代码段中每一句的效果;

int val = 2018;
int *pi = 2019;
pi = &val;
*pi = 0;
 定义一个变量val为2018;将pi的地址改为2019;将val的值存在pi中;再将pi的地址赋为0;

9.执行下列程序段,并输入“Xiyou Linux”,那么程序的输出结果是什么?请解释其原因;

int main()
{char *p=(char *)malloc(sizeof(char) * 20),*q=p;scanf("%s %s",p,q);printf("%s %s\n",p,q);
}
 结果为Linux Linux;p 指向开辟的20个 char 类型的空间,将 p 赋值给 q ;p 和 q 都是指向那块动态开辟的空间,指向的为同一块内存空间,输入 adc ,p 所存储的数据为 abc 。因为q 与 p 指向同一块空间,q 也指向 abc 。 再给 q 赋值,将 def 输入给 q 。q = p ,def 这时就将 adc 给覆盖掉了。

10.执行下面的程序段,每次执行的输出结果一致吗,整理并解释输出结果;

int main()
{int a[4]={2,0,1,9};printf("%p %p\n",a,&a);printf("%p %p\n",a+1,&a+1);
}
 000000000062FE10 000000000062FE10000000000062FE14 000000000062FE20第一行都指向数组的开头;第二行第一个是数组加一个int类型的空间,第二个是是增加整一个数组的地址;

西邮Linux兴趣小组2019纳新试题总结相关推荐

  1. 西邮Linux兴趣小组2021纳新试题

    1.大小和长度竟然不是一个意思, sizeof()和strlen()有什么异同之处? 他们对于不同参数的结果有什么不同?请试举例子说明. int main(void) { char s[] = &qu ...

  2. 西邮Linux兴趣小组2020纳新试题题解

    西邮Linux兴趣小组2020纳新试题题解 1. 请试着解释其输出. int main(int argc , char *argv[]) {unsigned char a = 255;char ch ...

  3. 西邮Linux兴趣小组2021纳新试题②

    1. 结果:127 -128 signed char的范围是-128~127 unsigned char的范围是0~256 计算a-ch是把ch转换成整数,而输出ch是进行了类型转换为char类型,1 ...

  4. 西邮Linux兴趣小组2020纳新试题

    第一题: 运行下面的代码,输出结果是什么,请解释说明: #include<stdio.h> int i; int main(int argc, char *argv[]) {i--;if ...

  5. 西邮 Linux 兴趣小组 2021 纳新试题

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

  6. 西邮Linux兴趣小组2021纳新面试题

    #include<stdio.h> #include<string.h> int main(void) {char s[]="I love Linux\0\0\0&q ...

  7. 西邮Linux兴趣小组2021纳新面试题题解

    注: 本题目仅作西邮Linux兴趣小组2021纳新面试题的有限参考. 为节省版面本试题的程序源码中省略了#include指令. 本试题中的程序源码仅用于考察C语言基础,不应当作为C语言代码风格的范例. ...

  8. 西邮linux兴趣小组网络,西邮Linux兴趣小组2012纳新笔试题

    这是我们西邮Linux兴趣小组2012的纳新笔试题,对于大一的学生,出得有难度哦,个人感觉比腾讯实习生的笔试题出的有水平. 西邮Linux兴趣小组纳新试题 姓名:                    ...

  9. 西邮Linux兴趣小组2022纳新面试题题解

    本题目只作为Xiyou Linux兴趣小组2022纳新面试的有限参考. 为节省版面,本试题的程序源码省去了#include指令. 本试题中的程序源码仅用于考察C语言基础,不应当作为C语言「代码风格」的 ...

最新文章

  1. 安装 Linux -Mplayer 播放器
  2. jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档
  3. 遇见C++ AMP:在GPU上做并行计算
  4. 使用setfacl实现子目录继承父目录权 限
  5. flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持
  6. win10安装mudbox失败,怎么强力卸载删除注册表并重新安装
  7. 奥运转播加速上云,北京冬奥组委测试阿里云视频传输技术
  8. 企业即时通讯规模将达7亿
  9. 疑似禁令影响开始显现:华为Mate 40量产或被迫推迟
  10. 现代软件工程 第3-6章 作业
  11. VMRC 控制台的连接已断开 for win8 vsphere5.0
  12. 模拟行走机器人-c语言
  13. # Day15-Java基础
  14. QT 控件增加双击事件
  15. Jenkins 打包配置
  16. Grandmaster 楼教主回忆录
  17. 2018百度之星程序设计大赛 - 资格赛 A B C E F
  18. Spring Data JPA分页查询
  19. HEU 3014 Piggy-Bank
  20. 手机Web开发框架 Mobl

热门文章

  1. 念数字python_念数字解题
  2. Failed to launch wechat web devTools, please make sure http port is open【自动化测试】
  3. Windows安装配置FitNesse
  4. 10种排序算法比较(直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、折半插入排序、2路插入排序)
  5. Android 监听屏幕锁屏,用户解锁
  6. 记manjaro双系统开机引导显示与关闭
  7. 斗兽棋java程序,Java 斗兽棋算法 帮优化一下解决办法
  8. CAD/CASS批量桩号里程标注插件(6种模式)
  9. 正交基与非正交基在信号表达上的区别
  10. 数学史资料:中国数学