加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

嵌入式開(kāi)發(fā)工程師面試題2

11/25 14:30
938
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

程序運(yùn)行后的輸出結(jié)果是()

int main() {int a[3][3], *p, i;    p = &a[0][0];for(i = 0; i < 9; i++) p[i] = i;for(i = 0; i < 3; i++) printf("%d ", a[1][i]);}

解析:

程序運(yùn)行后的輸出結(jié)果將是數(shù)組?a?的第二行元素的值。讓我們逐步分析這個(gè)程序:

聲明了一個(gè) 3x3 的整型數(shù)組?a,一個(gè)整型指針?p,和一個(gè)整型變量?i。

將指針?p?指向數(shù)組?a?的第一個(gè)元素,即?a[0][0]。

使用一個(gè)循環(huán),通過(guò)指針?p?為數(shù)組?a?的所有元素賦值,從 0 到 8。數(shù)組?a?將會(huì)是這樣的:

a[0][0] = 0, a[0][1] = 1, a[0][2] = 2,
a[1][0] = 3, a[1][1] = 4, a[1][2] = 5,
a[2][0] = 6, a[2][1] = 7, a[2][2] = 8

第二個(gè)循環(huán)遍歷數(shù)組?a?的第二行,即?a[1][i],并打印每個(gè)元素。

所以,程序?qū)⒋蛴〉诙械娜齻€(gè)元素:3, 4, 5。

完整的輸出結(jié)果是:復(fù)制代碼

3 4 5

2.以下程序段中,不能正確賦字符串(編譯時(shí)系統(tǒng)會(huì)提示錯(cuò)誤)的是( )

A?char s[10]="abcdefg";

B?char t[]="abcdefg",*s=t;

C?char s[10];s="abcdefg";

D?char s[10];strcpy(s,"abcdefg");

解析:

在C語(yǔ)言中,字符串的賦值是一個(gè)常見(jiàn)的操作,但需要遵循一定的規(guī)則。

A.?char s[10]="abcdefg";
這是正確的。這里定義了一個(gè)字符數(shù)組s,并初始化為字符串"abcdefg"。數(shù)組大小為10,足夠存儲(chǔ)該字符串及其終止符。

B.?char t[]="abcdefg",*s=t;
這也是正確的。這里定義了一個(gè)字符數(shù)組t并初始化為字符串"abcdefg",同時(shí)定義了一個(gè)字符指針s,并將其指向數(shù)組t的首地址。這樣,指針s就指向了字符串"abcdefg"。

C.?char s[10];s="abcdefg";
這是錯(cuò)誤的。在這里,s是一個(gè)字符數(shù)組,而不是字符指針。數(shù)組名(在這里是s)在大多數(shù)表達(dá)式中會(huì)被轉(zhuǎn)換為指向數(shù)組首元素的指針,但它本身是一個(gè)常量,不能被賦值。嘗試將字符串字面量的地址賦給數(shù)組名s是不合法的,編譯時(shí)會(huì)報(bào)錯(cuò)。

D.?char s[10];strcpy(s,"abcdefg");
這是正確的。這里使用strcpy函數(shù)將字符串"abcdefg"復(fù)制到字符數(shù)組s中。strcpy函數(shù)是標(biāo)準(zhǔn)庫(kù)函數(shù),用于復(fù)制字符串,包括終止符。數(shù)組大小為10,足夠存儲(chǔ)該字符串及其終止符。

綜上所述,不能正確賦字符串,并且編譯時(shí)系統(tǒng)會(huì)提示錯(cuò)誤的選項(xiàng)是C。在C語(yǔ)言中,不能直接將字符串字面量賦給字符數(shù)組名,而應(yīng)該使用初始化(如選項(xiàng)A)或字符串復(fù)制函數(shù)(如選項(xiàng)D)。

3.C語(yǔ)言中break和continue語(yǔ)句說(shuō)法正確的是()。

A?break語(yǔ)句只應(yīng)用于循環(huán)體中

B?continue語(yǔ)句只應(yīng)用于循環(huán)體中

C?break是無(wú)條件跳轉(zhuǎn)語(yǔ)句,continue不是

D?break和continue的跳轉(zhuǎn)范圍不夠明確,容易產(chǎn)生問(wèn)題

解析:

在C語(yǔ)言中,breakcontinue是兩個(gè)用于控制流程的關(guān)鍵字,它們主要在循環(huán)和switch語(yǔ)句中使用。接下來(lái),我們將逐一分析每個(gè)選項(xiàng)的正確性:

A.?break語(yǔ)句只應(yīng)用于循環(huán)體中

這是不正確的。break語(yǔ)句不僅可以在循環(huán)體中使用,還可以在switch語(yǔ)句中使用,用于跳出當(dāng)前的switch分支或循環(huán)體。

B.?continue語(yǔ)句只應(yīng)用于循環(huán)體中

這是正確的。continue語(yǔ)句只能在循環(huán)體中使用,它的作用是跳過(guò)當(dāng)前循環(huán)的剩余部分,并立即開(kāi)始下一次循環(huán)迭代。

C.?break是無(wú)條件跳轉(zhuǎn)語(yǔ)句,continue不是

這個(gè)說(shuō)法部分正確,但不完全準(zhǔn)確。break確實(shí)是無(wú)條件地跳出當(dāng)前的循環(huán)或switch語(yǔ)句,可以認(rèn)為是一種無(wú)條件跳轉(zhuǎn)。然而,continue也可以被視為一種“有條件”的跳轉(zhuǎn),因?yàn)樗鼤?huì)跳過(guò)當(dāng)前循環(huán)的剩余部分,但并不是無(wú)條件地跳出整個(gè)循環(huán)或程序塊。更準(zhǔn)確地說(shuō),continue是控制循環(huán)迭代的語(yǔ)句,而不是傳統(tǒng)意義上的跳轉(zhuǎn)語(yǔ)句。

D.?breakcontinue的跳轉(zhuǎn)范圍不夠明確,容易產(chǎn)生問(wèn)題

這是不正確的。在C語(yǔ)言中,breakcontinue的跳轉(zhuǎn)范圍是明確的。break會(huì)跳出最近的包圍它的循環(huán)或switch語(yǔ)句,而continue會(huì)跳過(guò)當(dāng)前循環(huán)的剩余部分并繼續(xù)下一次迭代。只要程序員理解了這些語(yǔ)句的作用和范圍,它們就不會(huì)產(chǎn)生混淆或問(wèn)題。

綜上所述,正確的選項(xiàng)是B:continue語(yǔ)句只應(yīng)用于循環(huán)體中。

4.fseek函數(shù)的正確調(diào)用形式是()

A?fseek(文件類型指針,起始點(diǎn),位移量)

B?fseek(文件類型指針,位移量,起始點(diǎn))

C?fseek(位移量,起始點(diǎn),文件類型指針)

D?fseek(起始點(diǎn),位移量,文件類型指針)

解析:

在C語(yǔ)言中,fseek函數(shù)用于移動(dòng)文件指針到指定的位置。其正確的調(diào)用形式非常重要,因?yàn)樗鼪Q定了函數(shù)如何以及在哪里移動(dòng)文件指針。

fseek函數(shù)的原型通常是這樣的:c

復(fù)制代碼

int fseek(FILE *stream, long offset, int whence);

從原型中我們可以看出,fseek函數(shù)需要三個(gè)參數(shù):

FILE *stream:這是一個(gè)指向文件的指針,它標(biāo)識(shí)了要操作的文件。

long offset:這是位移量,表示要從起始點(diǎn)移動(dòng)多少字節(jié)。

int whence:這是起始點(diǎn),用于指定從哪里開(kāi)始計(jì)算位移。它通常是以下幾個(gè)宏之一:SEEK_SET(從文件開(kāi)始)、SEEK_CUR(從當(dāng)前位置)或SEEK_END(從文件末尾)。

根據(jù)這個(gè)原型,我們可以對(duì)比給出的選項(xiàng):

A.?fseek(文件類型指針,起始點(diǎn),位移量)
這是錯(cuò)誤的,因?yàn)閰?shù)的順序不正確。

B.?fseek(文件類型指針,位移量,起始點(diǎn))
這是正確的,它匹配了fseek函數(shù)的原型。

C.?fseek(位移量,起始點(diǎn),文件類型指針)
這是錯(cuò)誤的,因?yàn)閰?shù)的順序和類型都不正確。

D.?fseek(起始點(diǎn),位移量,文件類型指針)
這也是錯(cuò)誤的,因?yàn)閰?shù)的順序不正確。

因此,正確的選項(xiàng)是B:fseek(文件類型指針,位移量,起始點(diǎn))。這符合fseek函數(shù)的定義和用法。

 

未完待續(xù),持續(xù)更新!以防后邊找不到可以點(diǎn)贊收藏下!

相關(guān)推薦

電子產(chǎn)業(yè)圖譜