當前位置:才華齋>IT認證>NIIT認證>

精選C++面試題及答案

NIIT認證 閱讀(8.7K)

  1、區域性變數能否和全域性變數重名?

精選C++面試題及答案

能,區域性會遮蔽全域性。要用全域性變數,需要使用"::"

區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義一個同名的區域性變數,而那個區域性變數的作用域就在那個迴圈體內。

  2、如何引用一個已經定義過的全域性變數?

extern

可以用引用標頭檔案的方式,也可以用extern關鍵字,如果用引用標頭檔案方式來引用某個在標頭檔案中宣告的全域性變理,假定你將那個變寫錯了,那麼在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那麼在編譯期間不會報錯,而在連線期間報錯。

  3、全域性變數可不可以定義在可被多個.C檔案包含的標頭檔案中?為什麼?

可以,在不同的C檔案中以static形式來宣告同名全域性變數。

可以在不同的C檔案中宣告同名的全域性變數,前提是其中只能有一個C檔案中對此變數賦初值,此時連線不會出錯。

  4、語句for( ;1 ;)有什麼問題?它是什麼意思?

無限迴圈,和while(1)相同。

  5、do……while和while……do有什麼區別?

前一個迴圈一遍再判斷,後一個判斷以後再迴圈。

  6、請寫出下列程式碼的輸出內容

#include

main()

{

int a,b,c,d;

a=10;

b=a++;

c=++a;

d=10*a++;

printf(“b,c,d:%d,%d,%d”,b,c,d);

return 0;

}

答:10,12,120

  7、請找出下面程式碼中的所以錯誤

說明:以下程式碼是把一個字串倒序,如“abcd”倒序後變為“dcba”

#include “string.h”

main()

{

char*src=”hello,world”;

char* dest=NULL;

int len=strlen(src);

dest=(char*)malloc(len);

char* d=dest;

char* s=src[len];

while(len–!=0)

d++=s–;

printf(“%s”,dest);

return 0;

}

答:

方法1:

int main()

{

char* src = “hello,world”;

int len = strlen(src);

char* dest = (char*)malloc(len+1);//要為