亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語(yǔ)言

標(biāo)準(zhǔn)c語(yǔ)言筆試題

時(shí)間:2024-09-07 14:41:36 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

標(biāo)準(zhǔn)c語(yǔ)言筆試題

  引導(dǎo)語(yǔ):在應(yīng)聘與c語(yǔ)言相關(guān)崗位的工作時(shí)會(huì)要求進(jìn)行筆試,以下是小編整理的標(biāo)準(zhǔn)c語(yǔ)言筆試題,歡迎參考閱讀!

標(biāo)準(zhǔn)c語(yǔ)言筆試題

  1. 局部變量能否和全局變量重名? (華為)

  解析:能,局部會(huì)屏蔽全局。要用全局變量,需要使用"::"

  局部變量可以與全局變量同名,在函數(shù)內(nèi)引用這個(gè)變量時(shí),會(huì)用到同名的局部變量, 而不會(huì)用到全局變量。對(duì)于有些編譯器而言,在同一個(gè)函數(shù)內(nèi)可以定義多個(gè)同名的局部變量. 比如在兩個(gè)循環(huán)體內(nèi)都定義一個(gè)同名的局部變量,而那個(gè)局部變量的作用域就在那個(gè)循環(huán)體內(nèi)。

  3. 如何引用一個(gè)已經(jīng)定義過(guò)的全局變量? (華為)

  解析:extern

  可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來(lái)引用某個(gè)在頭文件中 聲明的全局變理,假定你將那個(gè)編寫錯(cuò)了,那么在編譯期間會(huì)報(bào)錯(cuò),如果你用extern方式引用時(shí), 假定你犯了同樣的錯(cuò)誤,那么在編譯期間不會(huì)報(bào)錯(cuò),而在連接期間報(bào)錯(cuò)。

  4. static全局變量與普通的全局變量有什么區(qū)別?

  解析:1) 全局變量(外部變量)的說(shuō)明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。 全局變量本身就是靜態(tài)存儲(chǔ)方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式 從以上分析可以看出,

  static全局變量與普通的全局變量有什么區(qū)別:

  static全局變量只初使化一次,防止在其他文件單元中被引用; static局部變量和普通局部變量有什么區(qū)別:

  static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值; static函數(shù)與普通函數(shù)有什么區(qū)別: static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個(gè)被調(diào)用中維持一份拷貝

  5. 進(jìn)程和線程的差別(微軟亞洲)

  解析:答:線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體. 與進(jìn)程的區(qū)別:

  (1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位

  (2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行

  (3)擁有資源:進(jìn)程是擁有資源的獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬于進(jìn)程的資源.

  (4)系統(tǒng)開(kāi)銷:在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開(kāi)銷明顯大于創(chuàng)建或撤消線程時(shí)的開(kāi)銷

  6. 用宏定義寫出swap(x,y)(思科)

  解析:#define swap(x, y) x = x + y; y = x - y; x = x - y

  7. 什么是預(yù)編譯,何時(shí)需要預(yù)編譯:(思科)

  解析:就是指程序執(zhí)行前的一些預(yù)處理工作,主要指#表示的. 何時(shí)需要預(yù)編譯? 1)、總是使用不經(jīng)常改動(dòng)的大型代碼體。

 。)、程序由多個(gè)模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項(xiàng)。 在這種情況下,可以將所有包含文件預(yù)編譯為一個(gè)預(yù)編譯頭。

  8. 下述三個(gè)有什么區(qū)別?char * const p;char const * p,const char *p; (慧通)

  解:const char* p和char const *p修飾的是p所指向的變量,

  不可以用*p=’a’等這樣的方式修改變量區(qū)的內(nèi)容. 指針本身是可以修改的,比如說(shuō)

  char x,y; const *p = &x, p = &y,修改指針本身是可以的,*p = ‘b’就不行。

  Char *const p;中const修飾的是指針,表明指針在操作過(guò)程中不可以修改,

  而指針?biāo)赶虻膬?nèi)容是可以修改的,比如說(shuō)char x ,y; char* const p = &x; *p = ‘b’是可以的, 但p=&y;是不可以的,const修飾的是指針,不可以修改指針的指向,

  只可以修改指針?biāo)壍淖兞?/p>

  9. int (*s[10])(int) 表示的是什么啊 ? (慧通)

  解析:這樣的表達(dá)式可以遵循這樣的規(guī)則:從右向左,由近及遠(yuǎn),括號(hào)優(yōu)先;

  比如:從a符號(hào)開(kāi)始。其右邊是[10],說(shuō)明a是個(gè)數(shù)組,其中存了十個(gè)元素。 再看a的左邊是一個(gè)*。說(shuō)明數(shù)組中存的是指針。 現(xiàn)在在看(*a[10])的右邊是(int);說(shuō)明所存的指針是指向有一個(gè)int形參的函數(shù) 現(xiàn)在看(*a[10])的左邊是個(gè)int ,說(shuō)明指向的函數(shù)的返回值為int 類型;

  10. 進(jìn)程之間通信的途徑,進(jìn)程間通信方法(慧通)

  解析:無(wú)名管道,命名管道,消息隊(duì)列,信號(hào),共享內(nèi)存,套接字。等

  11. 什么是“引用”?申明和使用“引用”要注意哪些問(wèn)題?

  解析:引用就是某個(gè)目標(biāo)變量的“別名”(alias),對(duì)應(yīng)用的操作與對(duì)變量直接操作效果完全相同。申明一個(gè)引用的時(shí)候,切記要對(duì)其進(jìn)行初始化。引用聲明完畢后,相當(dāng)于目標(biāo)變量名有兩個(gè)名稱,即該目標(biāo)原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一個(gè)引用,不是新定義了一個(gè)變量,它只表示該引用名是目標(biāo)變量名的一個(gè)別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲(chǔ)單元,系統(tǒng)也不給引用分配存儲(chǔ)單元。不能建立數(shù)組的引用

  12.include和include “filename.h”的區(qū)別?

  解析:<>是從標(biāo)準(zhǔn)庫(kù)路徑搜索,

  “”是從用戶當(dāng)前工作目錄開(kāi)始,找不到,在到標(biāo)準(zhǔn)庫(kù)開(kāi)始

  13.Heap和Stack的區(qū)別?

  解析:Heap是堆,Stack是棧。

  棧的空間由操作系統(tǒng)自動(dòng)分配和回收,而堆上的空間由程序員申請(qǐng)和釋放。

  棧的空間大小較小,而堆的空間較大。

  棧的地址空間往低地址方向生長(zhǎng),而堆向高地址方向生長(zhǎng)。

  棧的存取效率更高。

  程序在編譯期間對(duì)變量和函數(shù)的內(nèi)存分配都在棧上,

  且程序運(yùn)行過(guò)程中對(duì)函數(shù)調(diào)用中參數(shù)的內(nèi)存分配也是在棧上。

  14.sizeof和strlen之間的區(qū)別?

  解析:(1)sizeof操作符的結(jié)果類型是size_t,它在頭文件中的typedef為

  unsigned int類型,該類型保證能容納實(shí)現(xiàn)所建立的最大對(duì)象的字節(jié)大小。

 。2)sizeof是運(yùn)算符,strlen是函數(shù)

 。3)sizeof可以用類型做參數(shù),strlen只能用char *做參數(shù),

  且必須是以’