軟件水平考試模擬練習題及解析
設函數的功能是交換X和y的值,且通過正確調用返回交換結果。不能正確執行此功能的函數是( )
① funa(int *x, int *y)
{
int * p;
* p=*x; *x=*y; *y=*p;
}
② funb(int x, int y)
{
int t;
t=x;x=y;y=t;
}
③ func(int *x, int *y)
{
int p;
p=*x; *x=*y; * y=p;
}
④fund( int *x,int *y)
{
*x=*x+ *y;*y=*x- *y;*x= *x- *y;
}
【解】設計實現交換兩個變量值的函數。希望函數調用能改變調用環境中的變量,方法之一是讓函數設置指針類型的形參,實參傳送給形參的是希望交換值的兩個變量的指針。函數的兩個形參得到這兩個變量的指針後,函數就能通過形參間接引用要交換值的'變量,或引用它們的值,或改變它們的值。從而實現從函數傳回信息存於調用環境的變量中。以上所述是設計交換變量值函數的一般原則,具體編寫函數時還需注意對上述原則的正確應用。
對於函數funa,該函數的定義滿足設置指針形參,並通過指針形參間接引用環境變量的要求。但是在函數體中定義了指針變量p,並在p宋明確設定它所指向的變量下,代碼*p=* x企圖將值存入它所指的變量中,這是初學者經常出現的一種嚴重的錯誤。該函數因有錯,不能實現交換變量值的功能。
對於函數funb,該函數不定義指針形參,函數體也沒有可用的指針間接引用調用環境中的變量,所以該函數也不能實現交換變量值的功能。
對於函數func,該函數正確定義了指針形參,函數體也正確通過指針形參間接引用環境中的變量,並正確定義了自己的局部變量。該函數能實現交換變量值的功能。
對於函數fund,該函數也正確定義指針形參和函數體通過形參間接引用環境變量。特別要指出的是,該函數是利用*x和*y的;日值與新值之間的關係實現問題要求的。其中第一個賦值使。x存有原來未交換之前的*x與*y之和;第二個賦值從這個和中減去原來的*y,並將差賦給*y,使*y的值是交換之前的*x的值;第三個賦值再次從和中減去新的*y,即減去交換之前的*x,這個差就是交換之前的*y,並將差賦給*x。經以上三個賦值,實現兩變量之間的值交換。所以不能正確執行交換變量值的函數是funa和funb,即正確選擇是①②。
-
考試作文優秀【8篇】
在日常生活或是工作學習中,大家都跟作文打過交道吧,作文要求篇章結構完整,一定要避免無結尾作文的出現。相信寫作文是一個讓許多人都頭痛的問題,以下是小編爲大家整理的考試作文8篇,僅供參考,大家一起來看看吧。考試作文篇1今天張老師在夕會客課上報語文成績的時候,我...
-
[通用]期末誠信考試演講稿
演講稿可以按照用途、性質等來劃分,是演講上一個重要的準備工作。在現在的社會生活中,需要使用演講稿的場合越來越多,相信許多人會覺得演講稿很難寫吧,下面是小編收集整理的期末誠信考試演講稿,歡迎大家借鑑與參考,希望對大家有所幫助。期末誠信考試演講稿1老師們、...
-
考試後的感想作文5篇【必備】
無論是在學校還是在社會中,大家或多或少都會接觸過作文吧,作文是一種言語活動,具有高度的綜合性和創造性。相信寫作文是一個讓許多人都頭痛的問題,下面是小編精心整理的考試後的感想作文5篇,歡迎閱讀,希望大家能夠喜歡。考試後的感想作文篇1今天,第二節課的時候我知到...
-
考試後作文【實用4篇】
在日常生活或是工作學習中,大家都跟作文打過交道吧,作文可分爲國小作文、中學作文、大學作文(論文)。相信寫作文是一個讓許多人都頭痛的問題,以下是小編幫大家整理的考試後作文4篇,歡迎閱讀與收藏。考試後作文篇1有人說:“人生只有兩次重要的考試——會考和大學聯考!”我...