C語言常見基礎面試題(1)

2021-10-19 22:21:17 字數 1823 閱讀 8797

1.撤掉物件後系統自動呼叫(析構函式)

2.在c語言程式中函式的定義不可以巢狀,但是函式的呼叫可以巢狀。

3.定義變數的時候第乙個字元只能是字母或者下劃線。

4.三目運算子看做表示式1?表示式2:表示式3

運算規則:若表示式 1(條件)結果為真,整個運算結果為表示式 2 的值;若表示式 1(條件)結果為假,整個運算結果為表示式 3 的值。

5.%作為運算子是用來取餘的,/是除法運算。

例如:除法表示式

65 ÷8 = 8餘1

那麼65 / 8 = 8

65 %8 = 1

6.不管是16位系統32位系統還是64位系統 long的長度都是4

下面程式段的輸出結果是

#include

main()

,*p;

p=a;

*(p+3)+ =2;

printf(" %d,%d",p,(p+3));

}int a = , *p

p=a; p指向陣列的首元素,即1

*(p+3),這個指標指向陣列的第四個元素,即4,並沒有改變p的指向

*(p+3)+ =2; 將陣列的第四個元素加2

*p,輸出陣列第乙個元素的值

*(p+3);輸出陣列第4個元素的值,因為第四個元素被修改,所以輸出6

8.if中是可以巢狀switch語句的

9.ftell(fp)的作用是得到流式檔案中的當前位置

10.#include 「stdio.h」

main()

;則在程式中不能將字元陣列str2賦值給

str1的語句是 -》strcpy(str1,str2);

陣列名 是 位址常量。常量之間 是不能互相賦值的。

1、strcpy 其一般形式為strcpy(字元陣列1,字串2)作用是將字串2複製到字元陣列1中去。

13下邊程式輸出的結果是(0)

include

main(){

int i=1;

i=i^i;

printf("%d\n",i);

}本題考查位運算中按位異或運算子,異或運算只有在兩個比較的位不同時其結果是1,否則結果為0,i^i運算子兩邊相同,所以結果為0

14.暫存器類變數的作用域和壽命與自動類變數的相同。正確

15.c語言本身不提供輸入輸出語句但是可以通過輸入輸出函式來實現資料的輸入輸出。正確

16.當輸入數值資料時,對於整型變數只能輸入整型值;對於實型變數只能輸入實型值。

以上敘述是否正確? 錯誤。

float a=10;也對

17.char st1[12]= 「yes」, st2[5]= 「no」, st3[7]= 「or」;

, 則執行下列語句,輸出結果是_________。

複製**

1cout<< strcat(strcat(st1,st3), st2);

輸出結果是yes or no

18.設 x 和 y 均為 int 型變數,在不考慮資料溢位的情況下,則以下語句:x+=y;y=x-y;x-=y;的功能是?

交換x和y中的值

把原先的賦值寫成下面的形式:12

3xt = x + y

yt = xt - y

xt = xt - yt

然後化簡就可以了:

複製**12

yt = (x + y) - y = x

xt = (x + y) - (x + y - y) = y

19.區域性變數能否和全域性變數重名?

能,但是區域性變數會遮蔽全域性變數

20.const修飾類的成員函式,則該成員函式不能修改類中任何非const成員函式。一般寫在函式的最後來修飾。

C語言基礎 面試題

1 i 和 i 的區別 區別 i先加1再取值 i 先取值再加1 for迴圈為麼效果一樣 for 語句1 語句2 語句3 for 迴圈是在 執行語句 結束後,才執行 語句3 因此 i和i 的效果相同 for迴圈中 i和i 的u區別 當需要處理大量的資料時,i更優。i 由於是在使用當前值之後再 1,所以...

C 語言常見面試題

1 define 與 typedef的區別 1 define是預處理指令,在預處理時進行替換,其後邊沒有分號 2 typedef是在編譯時處理的,使用時注意 1例 define pint int typedef int pint pint a,b 相當於int a,b 只定義了乙個指標 pint a...

常見C 面試題

1.解釋堆 heap 和棧 stack 的區別。答 堆 1.由程式設計師分配釋放,存放new出來的物件 2.不連續,類似於鍊錶,大小取決於計算機系統的虛擬記憶體 棧 1.由編譯器自動分配釋放,存放函式引數值或區域性變數等。2.連續的儲存區域 2m左右 空間不足會提示棧溢位 overflow 2.論述...