亚洲v欧美v国产v在线成_制服丝袜中文字幕丝袜专区_一区二区三区韩国电影_激情欧美一区二区中文字幕

C語言軟件開發(fā)筆試題目(最新)

  (1)什么是預(yù)編譯,何時需要預(yù)編譯:

  答案:

  1、總是使用不經(jīng)常改動的大型代碼體。

  2、程序由多個模塊組成,所有模塊都使用一組標準的包含文件和相同的編譯選項。在這種

  情況下,可以將所有包含文件預(yù)編譯為一個預(yù)編譯頭。

  預(yù)編譯又稱為預(yù)處理,是做些代碼文本的替換工作。處理#開頭的指令嗎,比如拷貝#include包含的文件代碼,#define宏定義的替換,條件編譯等,就是為編譯做的預(yù)備工作的階段,主要處理#開始的預(yù)編譯指令,預(yù)編譯指令指示了在程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。c編譯系統(tǒng)在對程序進行通常的編譯之前,先進行預(yù)處理。c提供的預(yù)處理功能主要有以下三種:1)宏定義 2)文件包含 3)條件編譯。

  (2)char* const p, char const* p,const char*p 上述三個有什么區(qū)別?

  答案:

  char * const p; //常量指針,p 的值不可以修改

  char const * p;//指向常量的指針,指向的常量值不可以改

  const char *p;//和char const *p等價

  (3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc";

  const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < <( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout <

  < ( str7 == str8 ) < < endl;

  結(jié)果是:0 0 1 1 str1,str2,str3,str4 是數(shù)組變量,它們有各自的內(nèi)存空間;而str5,str6,str7,str8

  是指針,它們指向相同的常量區(qū)域。

  (4)以下代碼中的兩個sizeof 用法有問題嗎?

  void UpperCase( char str[] ) // 將 str 中的小寫字母轉(zhuǎn)換成大寫字母

  {

  for( size_t i=0;i

  if( 'a' <=str[i] && str[i] <='z' )

  str[i] -= ('a'-'A' );

  }

  char str[] = "aBcDe"; cout < < "str 字符長度為: " < < sizeof(str)/sizeof(str[0]) < < endl;

  UpperCase( str ); cout < < str < < endl;

  答案:函數(shù)內(nèi)的sizeof 有問題。根據(jù)語法,sizeof 如用于數(shù)組,只能測出靜態(tài)數(shù)組的大小,無法檢測動態(tài)分配的或外部數(shù)組大小。函數(shù)外的str 是一個靜態(tài)定義的數(shù)組,因此其大小為6,因為還有'\0',函數(shù)內(nèi)的str 實際只是一個指向字符串的指針,沒有任何額外的與數(shù)組相關(guān)的信息,因此sizeof 作用于上只將其當指針看,一個指針為4 個字節(jié),因此返回4。

  (5)一個32 位的機器,該機器的指針是多少位答案:

  指針是多少位只要看地址總線的位數(shù)就行了。80386 以后的機子都是32 的數(shù)據(jù)總線。所以

  指針的位數(shù)就是4 個字節(jié)了。

本文已影響6827
上一篇:客服專員應(yīng)聘筆試題目 下一篇:軟件測試工程師筆試試題(2015)

相關(guān)文章推薦

|||||