c語(yǔ)言知識(shí)筆試題_第1頁(yè)
c語(yǔ)言知識(shí)筆試題_第2頁(yè)
c語(yǔ)言知識(shí)筆試題_第3頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、筆試題一、填空題(每個(gè)空4分,共28分)1) struct tag ABC(char n ame 10;char sex ;long sno ;float score 4;*pAbc;(四字節(jié)對(duì)齊)pAbc=NULL ;那么,執(zhí)行 pAbc+=2 ;之后pAbc的值為(64 )2) 如下代碼,最終 value的值是(8 )int *pl,*p2;int value;pl=(i nt*)0X400;p2=(i nt*)0X408;value = p2-pl;3) 如下代碼,printf的結(jié)果為(2 )ttin clude stdio. h ttin clude (stri ng, h)void

2、mai n(void)(0” ;n”,strlen(acNew);4) 有如下程序段,運(yùn)行該程序的輸岀結(jié)果是(33 )main ()int y=3, x=3, z=l;printf(”% d%dn", (+x, y+), z+2);5) 設(shè)有:int a=l, b=2, c=3, d=4, m=2, n=2;執(zhí)行(m=a>b) &&(n=c>d)后,n 的值為(26) struct tagAAAUn sig nedcharucld:1;Un sig nedcharucParaO:2;Un sig nedcharucState:6 ; ucTail:4;Un

3、 sig nedcharcharUn sig nedUn sig necharucAvail; unTail2:4;Unsigned long ulData;AAA_S問(wèn):AAA_S在字節(jié)對(duì)齊分別為 1,4情況下,占用的空間大小分別是多少?(9 )( 12 )二、選擇題(每題 2 分,共 34 分)1) 若有說(shuō)明 int (*p) 3 ;以下敘述正確的是 ( D )A: p 是指針數(shù)組B: ( *p ) 3 和 *p3 等價(jià)C: p 是指向一維數(shù)組中任何一個(gè)元素的指針D: p 是指向含有 3 個(gè)整型元素的一維數(shù)組的指針2) 以下關(guān)于單元測(cè)試的描述,哪些是對(duì)的?( D )A:黑盒測(cè)試針對(duì)軟件的功

4、能,不考慮功能的實(shí)現(xiàn)細(xì)節(jié);B:白盒測(cè)試針對(duì)源代碼的測(cè)試,從程序功能的具體實(shí)現(xiàn)上找錯(cuò);C:路徑覆蓋是黑盒測(cè)試的一種方法,編寫測(cè)試用例使程序的每條語(yǔ)句都能走到;D:條件覆蓋是百盒測(cè)試的一種方法,編寫測(cè)試用例使程序的每個(gè)判斷的各種情況都能到3) 以下可以用于任務(wù)間通信的有( ABCD)A:共享內(nèi)存B:信號(hào)量C:消息隊(duì)列和管道D: socket調(diào)用4) 有關(guān)結(jié)構(gòu),以下哪些描述是對(duì)的?( BC )A:為了測(cè)試方便,盡量把一個(gè)結(jié)構(gòu)的功能設(shè)計(jì)得多一些B:不同結(jié)構(gòu)間的關(guān)系不要過(guò)于復(fù)雜不可結(jié)述C:結(jié)構(gòu)中的各元素應(yīng)代表同一事務(wù)的不同側(cè)面,而不應(yīng)把描述沒(méi)有關(guān)系或關(guān)系很弱的 同事務(wù)的元素放到同一結(jié)構(gòu)中D:結(jié)構(gòu)中元素的

5、布局與排列順序可以隨意設(shè)計(jì)5) 關(guān)于強(qiáng)制類型轉(zhuǎn)化,下面說(shuō)法正確的是( ABCD)A: 當(dāng)目的結(jié)構(gòu)的空間大于源結(jié)構(gòu)的空間時(shí),要重點(diǎn)關(guān)注內(nèi)存訪問(wèn)超過(guò)源結(jié)構(gòu)范圍的情形 能越界;B: 當(dāng)目的結(jié)構(gòu)的空間小于源結(jié)構(gòu)的空間時(shí),要重點(diǎn)關(guān)注對(duì)目的結(jié)構(gòu)賦值不能完全覆蓋源 構(gòu)范圍的情形,可能遺漏;C:結(jié)構(gòu)體之間的強(qiáng)制類型轉(zhuǎn)換時(shí),其成員字段的數(shù)據(jù)類型的差異也是要格外小心的;D:與結(jié)構(gòu)體之間的強(qiáng)制類型轉(zhuǎn)換相比,基本數(shù)據(jù)結(jié)構(gòu)的強(qiáng)制類型轉(zhuǎn)換更容易岀現(xiàn)上面描 的情況,使用的時(shí)候,一定要慎之又慎;6) 正確的使用 assert, 軟件系統(tǒng)不會(huì)對(duì)人為原因造成的錯(cuò)誤進(jìn)行處理。它有利于(ABCD)A 缺陷及早暴露,加快定位進(jìn)程;B

6、明確表示函數(shù)接口或算法邏輯的校驗(yàn)關(guān)系,增強(qiáng)軟件代碼的可讀性;C 去除不必要的容錯(cuò)處理,簡(jiǎn)化代碼處理流程,降低軟件處理復(fù)雜度;D 強(qiáng)化編程接口之間的契約,增強(qiáng)軟件的可維護(hù)性;7) 對(duì)于循環(huán)體的執(zhí)行效率,下述說(shuō)法正確的是( ABCD)A 循環(huán)體內(nèi)工作量最小化B 在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層C:盡量減少循環(huán)的嵌套層次D:避免在循環(huán)體內(nèi)做無(wú)謂的判斷語(yǔ)句,將循環(huán)語(yǔ)句置于判讀語(yǔ)句的代碼塊之中8) 設(shè)數(shù)組a5 =( 10, 20, 30, 40, 50);已知指針p指向al;則表達(dá)式*+?的值是(A)A.20B.21C.30D.319)有以下程序段,執(zhí)行后, mul 的值為 ( B )int a

7、=1,3,57,9;int mul, *data, x;mul=1;data=&a1;for (x=0; x<3; x+) mul *= *(data+x);10)有以下程序段,執(zhí)行后的結(jié)果為 (D)A.15B.105C.315D.945int list =(6,7,8,9,10;int * p;p=list;*(P+2)=10printf( ”n”,*p,*(p+2);A.8, 10B.6, 8C.7,9D.6, 1011) 以下語(yǔ)句不能正確賦值的是 (A)A. char s1 10; s1=,China ,J;B. chars2='C','h'

8、,'i','n','a'C. char s320= ,China ,J;D. char *s=,AChi naf;12) C語(yǔ)言中,定義 PI為一個(gè)符號(hào)常量,正確的是(A)A.#define PI 3.14B.define PI 3.14C.#include PI 3.14D.include PI 3.1413) 有以下程序,該程序輸出的結(jié)果為 (B)#define N 3#define M N+2#define NUM 2*M+1 main()int i ;?i=NUM ;printf( ” n” ,i);A. 11 、B. 9C. 7D. 5

9、14) 有以下程序,程序運(yùn)行后的輸出結(jié)果是 ( D )#include <string.h>#include <stdio.h> main()char *p= ,tabcdeOfghjikO ,);pintf(" n”, strlen(p);A. 12B. 15C. 6D. 515) 為了比較兩個(gè)字符串 si 和 s2 是否相等,應(yīng)當(dāng)使用 ( C )A. if (s1=s2)B. if (s1=s2)C. if (strcmp(s1, s2)=0)D. if (strcmp(&s1, &s2)=0)16) 設(shè)有如下結(jié)構(gòu)定義:struct stu

10、dent(int num;char name20;char sex;int age;char addr30; stud ;若用 printf(" n” ,.)訪問(wèn)該結(jié)構(gòu)中 name 值的正確方法是 ( D )A.stud->nameB.&C.stud.&nameD.17) 想對(duì)一個(gè)文本文件的尾部追加寫入,應(yīng)當(dāng)在 fopen 語(yǔ)句中使用的文件操作方式指示符號(hào) 為 (D )A. wB. rC. wbD. a三、指出下列程序的錯(cuò)誤(每題 4 分,共 2。分)void Test(void)1) .如下程序用于輸出 ” Welcome

11、Home" 。請(qǐng)指出其中的錯(cuò)誤: (4分) char pcArray12;strcpy(pcArray,"Welcome Home");printf("%s!", pcArray);return;答案:數(shù)組越界。2) .如下程序用于把 "blue" 字符串返回,請(qǐng)指出其中的錯(cuò)誤: (4 分) char *GetBLUE(void)char* pcColor ;char* pcNewColor;pcColor = "blue"pcNewColor = (char*)malloc(strlen(pColor)

12、;if(NULL = pcNewColor)return NULL;strcpy(pcNewColor, pcColor);return pcNewColor; 答案:申請(qǐng)內(nèi)存空間不足,字符串結(jié)尾還有、0。3) .下面程序期望輸出 str = hello world. 請(qǐng)指出其中的錯(cuò)誤: ( 4 分 ) char * GetStr(char *p)p = "hello world"return p;)void main()(char *str = NULL;if(NULL != GetStr(str)printf("rn str = %s",str);r

13、eturn; 答案:無(wú)法返回字符串,參數(shù)使用錯(cuò)誤。4) .請(qǐng)指出下面程序錯(cuò)誤的地方: (4 分)#define BUFFER_SIZE 256 void Test(void)char *str = NULL;str = (char *)malloc(BUFFER_SIZE); if(NULL = str) return; strcpy(str, "hello"); free (str); if(NULL != str) strcpy(str, "world"); printf(str); return; 答案:引用了已經(jīng)釋放的內(nèi)存。5) .請(qǐng)指出下面程序

14、的錯(cuò)誤: ( 4 分 )void GetMemory(char *ppcChar, int iLength) if(NULL = ppcChar)( return;?*ppcChar = (char *)malloc(iLength); return;void Test(void)char *szStr = NULL; GetMemory(&szStr, 100);if(NULL != szStr) strcpy(szStr, "hello"); printf(szStr); return;) 答案:沒(méi)有釋放內(nèi)存。四、簡(jiǎn)答題(每題 4 分,共 8 分)1)寫宏定義M

15、AX求出兩個(gè)數(shù)中的較大者。(4分)答案: 曲 efined MAX(A.B)(A)>=(B)?(A):(B)2)畫出同下面多叉樹等價(jià)的二叉樹,并作說(shuō)明。(4分)答案如下:(采用樹的孩子兄弟法將樹轉(zhuǎn)換成二叉樹)匕)五、編程題(共10分)1)給一個(gè)單鏈表,刪除某一節(jié)點(diǎn)(要求:先找到是否有這個(gè)節(jié)點(diǎn),然后再刪除 要能保證程序運(yùn)行正確)(10分)參考解法如下:include<iostream.h>#include<malloc.h>#include<stdio.h>#include<conio.h>typedef struct linkqueue 1

16、 int data;struct linkqueue 1 *next;)linkqueue 1,linklist;linklist *creat(void) 建立鏈表linklist *head;int n=l,len;linklist *pl,*p2;cout?"input number of records:"? endl;cin?len;head=p 1 =p2=(linklist *)malloc(sizeof(linklist);cout?"input records: "? endl;cin?pl->data; head->nex

17、t=NULL;while(n+<=len-1)(p 1 =(linklist *)malloc(sizeof(linklist);cin?pl->data;p2->next=pl;p2=pl;p2->next=NULL;return (head);void outlink(linklist *head)(linklist *p;p=head;while(p)(cout?p->data?" p=p->next;int bianlidinklist *head, int Number) 遍歷鏈表,返回 1 說(shuō)明有要?jiǎng)h除的元素,反之 linklist *

18、p;p=head;while(p->next! =NULL)(if( p->data= Number)return 1 ;return 0;)linklist *deletenode(linklist *head,int deleteNumber) ( linklist * Pointer, *Back;Back = head;Pointer = Back->next;while(Pointer->data! = deleteNumber) (Pointer+;Back= Back->next;if(Pointer->data = deleteNumber)(printf ( ”刪除首節(jié)點(diǎn)! nn);head = Pointer ->next;free( Pointer); break;else(Back->next = Pointer->next;free(P

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論