0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言筆試題

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2024-12-30 09:48 ? 次閱讀

來看一個(gè)C語言筆試題,應(yīng)該很少有人能給出正確答案。

#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;
}

代碼很簡單,函數(shù) f 輸出一個(gè)字符串,返回整數(shù) 1。

函數(shù) g 輸出一個(gè)字符串,返回整數(shù) 2。

主函數(shù)中用 printf 輸出兩個(gè)函數(shù)的函數(shù)值,后面的參數(shù)一個(gè)是函數(shù) f,一個(gè)是函數(shù) g。

運(yùn)行程序應(yīng)該會(huì)有三行輸出,兩個(gè)函數(shù)輸出兩個(gè),主函數(shù)中再打印兩個(gè)數(shù)字。

問題是,這三個(gè)輸出的順序應(yīng)該是什么樣的?有沒有同學(xué)能看出答案,可以寫在評(píng)論區(qū)。

運(yùn)行程序,先打印 g,再打印 f,最后輸出 1 2。

這個(gè)結(jié)果確實(shí)耐人尋味,先調(diào)用了函數(shù) g,然后再調(diào)用函數(shù) f,寫在前面的反而最后調(diào)用。

不過這還沒結(jié)束,再來換個(gè) ARM 平臺(tái)。

相同的代碼,這次卻先輸出 f,再輸出 g,順序和參數(shù)的順序一致。

好像已經(jīng)看出了結(jié)果,調(diào)用的順序不一定,得看編譯器。

最后,再來看下C語言官方文檔,確實(shí)提到了這一點(diǎn),函數(shù)參數(shù)的計(jì)算順序?qū)儆跒橹付ㄐ袨椤?/p>

之所以未指定,是想讓編譯器充分利用自身架構(gòu)的特點(diǎn),所以在寫代碼的時(shí)候,不要依賴他們的計(jì)算順序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137317
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4814

    瀏覽量

    68849

原文標(biāo)題:又一個(gè)無解筆試題

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言經(jīng)典筆試題集錦

    有以下程序,如果 x 等于 254,則函數(shù)的返回值是多少?
    的頭像 發(fā)表于 11-09 11:39 ?260次閱讀

    C語言指針學(xué)習(xí)筆記

    本文從底層內(nèi)存分析,徹底讓讀者明白C語言指針的本質(zhì)。
    的頭像 發(fā)表于 11-05 17:40 ?274次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指針學(xué)習(xí)筆記

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計(jì)算機(jī)之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?398次閱讀

    C語言C++中結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語言C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?316次閱讀

    C語言與Java語言的對(duì)比

    C語言和Java語言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨(dú)特的優(yōu)勢和特點(diǎn),適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺(tái)性、性能、應(yīng)用領(lǐng)域等多個(gè)方面對(duì)C
    的頭像 發(fā)表于 10-29 17:31 ?397次閱讀

    C語言與其他編程語言的比較

    C語言作為一種歷史悠久的編程語言,自其誕生以來,一直在軟件開發(fā)領(lǐng)域扮演著重要角色。它以其高效、靈活和可移植性強(qiáng)的特點(diǎn),成為了系統(tǒng)級(jí)編程的首選語言之一。
    的頭像 發(fā)表于 10-29 17:30 ?338次閱讀

    C++語言基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《C++語言基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?7次下載

    按照這樣學(xué)習(xí)C語言,成為卷王不是夢!

    在計(jì)算機(jī)編程領(lǐng)域,C語言被譽(yù)為一種強(qiáng)大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種編程任務(wù),還能夠?yàn)槟愕穆殬I(yè)生涯打下堅(jiān)實(shí)的基礎(chǔ)。但
    的頭像 發(fā)表于 07-06 08:04 ?340次閱讀
    按照這樣學(xué)習(xí)<b class='flag-5'>C</b><b class='flag-5'>語言</b>,成為卷王不是夢!

    PLC編程語言C語言的區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個(gè)方面存在顯著的區(qū)別。本文將從多個(gè)維度深入探討PLC編程
    的頭像 發(fā)表于 06-14 17:11 ?3101次閱讀

    C語言基礎(chǔ)-為什么要使用C?

    當(dāng)今最流行的 Linux 操作系統(tǒng)和 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng)) MySQL 都是使用 C 語言編寫的。
    發(fā)表于 03-25 11:20 ?474次閱讀

    char是有符號(hào)類型還是無符號(hào)類型?

    看一個(gè)C語言筆試題,題目很簡單,問char是有符號(hào)類型還是無符號(hào)類型?
    的頭像 發(fā)表于 03-17 10:15 ?1289次閱讀

    C語言#define的應(yīng)用

    C/C++ 編程語言中,當(dāng)程序被編譯時(shí),被發(fā)送到編譯器,編譯器將程序轉(zhuǎn)換為機(jī)器語言,然后完成編譯并執(zhí)行該程序。預(yù)處理器也稱為宏預(yù)處理器。
    發(fā)表于 03-06 11:29 ?414次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應(yīng)用

    plc編程語言c語言的聯(lián)系 c語言和PLC有什么區(qū)別

    PLC編程語言C語言的聯(lián)系 PLC(可編程邏輯控制器)是一種針對(duì)自動(dòng)化控制系統(tǒng)的特殊計(jì)算機(jī)。PLC編程語言是為了控制和管理自動(dòng)化生產(chǎn)過程中的各種設(shè)備而設(shè)計(jì)的。與之相比,
    的頭像 發(fā)表于 02-05 14:21 ?4307次閱讀

    c語言,c++,java,python區(qū)別

    C語言、C++、Java和Python是四種常見的編程語言,各有優(yōu)點(diǎn)和特點(diǎn)。 C語言
    的頭像 發(fā)表于 02-05 14:11 ?2526次閱讀

    vb語言c++語言的區(qū)別

    VB語言C++語言是兩種不同的編程語言,雖然它們都屬于高級(jí)編程語言,但在設(shè)計(jì)和用途上有很多區(qū)別。下面將詳細(xì)比較VB
    的頭像 發(fā)表于 02-01 10:20 ?2439次閱讀