0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言笔试题

学益得智能硬件 来源:学益得智能硬件 2024-12-30 09:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来看一个C语言笔试题,应该很少有人能给出正确答案。

#include 


int f(){
    printf("this is f ...
"); return 1;
}


int g(){
    printf("this is g ...
"); return 2;
}


int main()
{
    printf("%d %d
", f(), g());


    return 0;
}

代码很简单,函数 f 输出一个字符串,返回整数 1。

函数 g 输出一个字符串,返回整数 2。

主函数中用 printf 输出两个函数的函数值,后面的参数一个是函数 f,一个是函数 g。

运行程序应该会有三行输出,两个函数输出两个,主函数中再打印两个数字。

问题是,这三个输出的顺序应该是什么样的?有没有同学能看出答案,可以写在评论区。

运行程序,先打印 g,再打印 f,最后输出 1 2。

这个结果确实耐人寻味,先调用了函数 g,然后再调用函数 f,写在前面的反而最后调用。

不过这还没结束,再来换个 ARM 平台。

相同的代码,这次却先输出 f,再输出 g,顺序和参数的顺序一致。

好像已经看出了结果,调用的顺序不一定,得看编译器。

最后,再来看下C语言官方文档,确实提到了这一点,函数参数的计算顺序属于为指定行为。

之所以未指定,是想让编译器充分利用自身架构的特点,所以在写代码的时候,不要依赖他们的计算顺序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146108
  • 代码
    +关注

    关注

    30

    文章

    4975

    浏览量

    74349

原文标题:又一个无解笔试题

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式春招笔试高频算法题(附解题思路)

    的应届生、新手打造,整理了5道嵌入式春招笔试高频算法题,覆盖数组、链表、字符串、进制转换等核心考点,每道题都附上“题干+解题思路+C语言代码实现”,贴合嵌入式笔试场景,可直接复制练习,
    发表于 03-18 10:08

    C语言主要特点

    C语言的主要特点有: 1.语言简洁、紧凑,使用方便、灵活 。C语言一共只有32个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,
    发表于 01-05 07:41

    C语言C++的区别及联系

    C语言C++到底是什么关系? 首先C++和C语言本来就是两种不同的编程
    发表于 12-24 07:23

    C语言特性

    1、高效性:直接操作硬件 C 语言代码的执行效率极高,这是其最为显著的优势之一。它能够直接访问硬件资源,与底层硬件进行紧密交互,充分发挥硬件的性能潜力。在嵌入式开发中,硬件资源往往十分有限,对程序
    发表于 11-24 07:01

    C语言和单片机C语言有什么差异

    单片机c语言相对于普通C语言增加了一些基本的指令,还有变量的赋值是16进制,当然单片机c语言只牵
    发表于 11-14 07:55

    MiniVC6(C语言快速部署)资料

    MiniVC6(C语言快速部署)软件,无需安装。
    发表于 09-04 16:59 0次下载

    常见电子类硬件笔试题整理(含答案)

    violation,画图说明,并说明解决办法。(威盛VIA2003.11.06上海笔试试题) Setup/hold time是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号
    发表于 06-27 15:05

    最全的硬件工程师笔试试题

    硬件面试题之一 1、下面是一些基本的数字电路知识问题,请简要回答之。 (1) 什么是 Setup 和 Hold 时间? 答:Setup/Hold Time 用于测试芯片对输入信号和时钟信号之间的时间
    发表于 06-26 15:34

    常见电子类硬件笔试题整理(含答案)

    violation,画图说明,并说明解决办法。(威盛VIA2003.11.06上海笔试试题) Setup/hold time是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号
    发表于 05-26 14:30

    主流的 MCU 开发语言为什么是 C 而不是 C++?

    在单片机的地界儿里,C语言稳坐中军帐,C++想分杯羹?难喽。咱电子工程师天天跟那针尖大的内存空间较劲,C++那些花里胡哨的玩意儿,在这儿真玩不转。先说内存这道坎儿。您当stm32f4的
    的头像 发表于 05-21 10:33 1190次阅读
    主流的 MCU 开发<b class='flag-5'>语言</b>为什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C</b>++?

    【硬件方向】名企面试笔试真题:大疆创新校园招聘笔试题

    名企面试笔试真题:大疆创新校园招聘笔试题-硬件 是几年前的题目,不过值得参考一下哦 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 05-16 17:31

    硬件工程师面试/笔试经典 100 题

    分享一些常见的硬件工程师面试/笔试题。公众号后台回复关键字:100题,可获取完整的PDF。--END--免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系,谢谢!加入粉丝
    的头像 发表于 04-30 19:34 1644次阅读
    硬件工程师面试/<b class='flag-5'>笔试</b>经典 100 题

    单片机c语言编程实例大全

    单片机c语言编程实例大全_18
    发表于 04-30 16:11 7次下载

    深入理解C语言C语言循环控制

    C语言编程中,循环结构是至关重要的,它可以让程序重复执行特定的代码块,从而提高编程效率。然而,为了避免程序进入无限循环,C语言提供了多种循环控制语句,如break、continue和
    的头像 发表于 04-29 18:49 2201次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制

    硬件工程师面试必看试题(经典)

    时间。(Infineon 笔试试题) 15、电阻 R 和电容 C 串联,输入电压为 R 和 C 之间的电压,输出电压分别为 C 上电压和 R 上电 压,要求制这两种电路输入电压的频
    发表于 04-21 15:36