1[簡答題]下列給定程序中fun函數的功能是:求表達式s=aa…aa-…-aaa-aa-a
(此處aa…aa,表示n個a,a和n的值在1~9之間)
例如,a=3,n=6,則以上表達式為:
s=333333-33333-3333-333-33-3其值是296298。
a和n是fun函數的形參,表達式的值作為函數值傳回main函數。
請改正程序中的錯誤,使它能計算出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
【參考答案】
(1)long s=0,t=0;
(2)t=t/10;
【考點分析】
本題考查:變量賦初值操作;求余運算和除法運算的區別。
【解題思路】
(1)t用來存放每次循環后的多位數,第一次循環時,t應當是個位數,所以t的初始值應為0。
(2)根據題意,這里不需要求余數,而是要去掉個位數,重新組合為一個數,因此運用除法運算。
【解題寶典】
去掉數值n的個位數的方法是采用除法運算,如果需要取出個位數則使用求余運算,不要混淆。
2[簡答題]編寫函數fun,其功能是:求出1~1000之間能被7或11整除,但不能同時被7和11整除的所有整數,并將其放在a所指的數組中,通過n返回這些數的個數。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【參考答案】
【考點分析】
本題考查:if語句,用來判斷能被7整除或者能被ll整除,但又不能同時被7和11整除的數,此處需充分理解“邏輯與”和“邏輯或”的區別;for循環語句的循環條件用來控制循環變量取值范圍。’
【解題思路】
該題需要運用循環判斷結構來實現,其中循環語句比較容易,只要確定循環變量的范圍即可,下面來看判斷語句。題目要求找出能被7或11整除,但不能同時被7和11整除的所有整數,能同時被7和11整除的整數一定能被77整除,且不能被77整除的數不一定就是能被7或11整除的數,因而,可得出程序中的if語句。注意(i%7==o||i%11==0)兩邊必須要有小括號。
3[單選題] 設有定義:char p E]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數據所占字節數的表達式是( )。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
參考答案:A
參考解析:根據題目中的定義可以知道sizeof(p),計算的是數組P中所有元素所占用的字節數,而不是ch”型數據所占字節數。
4[單選題] 以下fun函數的功能是將形參s所指字符串內容顛倒過來
在橫線處應填同入的內容是
A.+1B.-1C.+0D.k=0
參考答案:B
參考解析:本題考查字符串處理函數strlen,strlen計算一個字符串的長度,包含結尾符,所以本題中j的初始化應該是從最后一個字符開始,所以應該將得到的字符串長度減1,選項B正確。
5[單選題] 設有定義語句:
則以下敘述正確的是
A.aa[0]存放了字符串“abcd“的首地址
B.aa數組的兩個元素只能存放含有4個字符的一維數組的首地址
C.aa數組的值分別是字符串”abcd”和”ABCD”
D.fla是指針變量,它指向含有兩個元素的字符型數組
參考答案:A
參考解析:本題中定義了一個指針數組,數組中存放的是字符指針,aa數組的兩個元素分別包含了5個字符,所以可以存放5個字符的一維數組的首地址,所以B選項錯誤。aa數組的值是指向那兩個字符串的字符指針,而不是那兩個字符串,所以C選項錯誤。Eta本身是一個指向兩個字符指針的指針,所以D選項錯誤。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |