美文网首页代码改变世界
C语言经典笔试题 附试题详解!

C语言经典笔试题 附试题详解!

作者: 诸葛青云999 | 来源:发表于2019-06-09 10:15 被阅读0次

1.以下程序的结果是什么?

A: main()函数里的i是一个未定义值

B: main()函数的i为1

C: 编译器不允许这种写法

D: main()里i的值为0

解答:当笔试者看到此代码时,可能会觉得古怪。虽然在C++中编译是可以通过的(显然是不合理)。当main()函数里的i从定义开始,外部的全局变量i就已经被屏蔽掉,所以main()函数里作为右值的i的值不会0也不会是1,与外部的i无关。而是一个未定义的符号。

答案:A

2.以下程序的输出结果是什么?

A:13 13

B:112 13

C :12 12

D:12 13

解析:本题主要考察指针以及栈的概念 。ptr首先指向数组arr的第一个元素,*(ptr++) += 100之后,arr中的0号元素即a[0]变成了111,别忘了ptr也向后挪了一位即指向1号元素,此时*ptr的值为12。问题来了:printf(“%d %d ”,*ptr,*(++ptr))的输出结果竟然不是12 13 而是13 13 原因在于printf的两个参数压栈顺序为从右至左,故也先计算*(++ptr),所以ptr已经指向了arr[2],所以两次都是13

答案:A


小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:【870+963+251】适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程



3. 以下代码说法正确的是:

A:一定输出-120

B:一定不能输出-120

C:可能输出-120

D:输出%d

解答:本题乍一看,-120木有问题! 再仔细一看 char类型表示的数据范围是-128~127,也没有溢出。应该没错咯。但本题考查的重点并非在此。重点在于aInt = aChar = -120;这句话,为什么呢?我们知道=号的意思是赋值,是从右往左运算,那第一步会将-120赋给aChar。第二步是aChar的值给aInt。对于第一步没有什么要说的。第二步呢就有个问题了。以32位系统常规平台来看,是将8字节数据的char类型变量放到32个字节的int变量里去,那这里就存在一个问题了!没错,那就是大小端存储导致的问题,即-120这个数字对应的八个位的二进制码是放到int变量的高位还是低位,所以结果自然不必多说了。

答案:C

相关文章

  • C语言经典笔试题 附试题详解!

    1.以下程序的结果是什么? A: main()函数里的i是一个未定义值 B: main()函数的i为1 C: 编译...

  • IOS面试(2018)

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

  • ios-面试题链接(四)

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

  • 2018 iOS面试题系列

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

  • 剑指offer学习笔记:整体结构

    67道经典面试题+相关扩展 c++版 从面试题6开始附leetcode或者牛客网连接 哎,简书怎么上传xmind呀

  • C语言面试题收集

    参考: C语言十二道有趣的面试题(1) C语言十二道有趣的面试题(2) exit()和_exit()的区别 C语言...

  • sizeof与字节对齐

    参考 【面试题】sizeof引发的血案编译器与字节对齐c 语言字节对齐问题详解C/C++内存对齐内存存取粒度C和C...

  • 1. 为什么说Objective-C是一门动态的语言?

    整个《面试题》都是对2017年6月iOS招人心得(附面试题)的整理。 1.解释动态语言、静态语言 动态类型语言:动...

  • 18.NSCache优于NSDictionary的几点?

    整个《面试题》都是对[2017年6月iOS招人心得(附面试题)]的整理  http://www.jianshu.c...

  • C面试-内存对齐

    参考: 【嵌入式时代】C语言面试题详解(第7节),不知道“内存对齐”的程序员是不合格的 转载自:C语言的内存对齐 ...

网友评论

    本文标题:C语言经典笔试题 附试题详解!

    本文链接:https://www.haomeiwen.com/subject/icugxctx.html