1[單選題] 若有C語言表達式2+3*4+7/3,以下選項中敘述正確的執行順序是
A.先執行3*4得12,再執行2+12得14,再執行7/3得2,最后執行14+2得16
B.先執行3*4得12,再執行7/3得2.5,最后執行2+12+2.5得16.5
C.先執行7/3得2,再執行3*4得12,再執行12+2得l4,最后執行2+14得l6
D.先執行2+3得5,再執行5*4得20,再執行20+7得27,最后執行27/3得9
參考答案:A
參考解析:首先,在c語言中,乘除法優先級要高于加減法,其次,除法運算符"/"兩邊參加運算對象都是整數,運算結果要取整,故排除B,D選項;C語言中。因為“*”和“/”都滿足從左到右的運算規則,故應先計算3*4=12。因此c排除,答案為A選項。
2[單選題] 設有以下函數:
voidfun(intn,char}s){……}
則下面對函數指針的定義和賦值均正確的是( )。
A.void(*pf)(int,char);pf=&fun;
B.void+pf( );pf=fun;
C.void*pf( );*pf=fun;
D.void(*pf)(int,char*);pf=fun;
參考答案:D
參考解析:函數的參數可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數中。函數名代表函數的人口地址,指向函數的指針應該定義為void(+pf)()。如果定義為void·pf(),則表示函數pf返回值為一個基類型為void的指針。因此D選項正確。
3[簡答題]下列給定程序中,函數proc()的功能是:將str所指字符串中的字母轉換為按字母序列的后續字母(但Z轉化為A,z轉化為a),其他字符不變。
請修改函數proc()中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
參考解析:
(1)錯誤:while(*str!='@')
正確:while(*str)
(2)錯誤:(*str)++;
正確:str++;
4[單選題] )以下敘述中正確的是()
A.每個后綴為.C的C語言源程序都可以單獨進行編譯
B.每個后綴為.C的C語言源程序都應該包含一個main函數
C.在C語言程序中,main函數必須放在其他函數的最前面
D.在C語言程序中,只有main函數才可單獨進行編譯
參考答案:A
參考解析:一個普通的C函數可以單獨作為一個C的程序文件存在被包含到其他程序中。每個后綴為.C的C語言源程序都可以單獨進行編譯,所以B。D錯誤。main函數可以放在程序的開始。中間,最后,所以C錯誤。
5[簡答題]編寫函數void proc(int x,int pp[],int*n),它的功能是求出能整除x且不是奇數的各整數,并按從小到大的順序放在pp所指的數組中,這些除數的個數通過形參返回。
例如,若x中的值為30,則有4個數符合要求,它們是2 6 10 30。
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。
試題程序:
參考解析:
【解析】按照題目中要求,求出能整除x且不是奇數的各整數。首先判斷小于等于整數x的所有偶數是否能被x整除,將能被x整除的奇數放入數組pp中。最后將數組pp中元素的個數返回到主函數當中。
6[單選題] 若有下列定義(設int類型變量占2個字節):int j=8,j=9;則下列語句:printf(”i=%%d,j=%%dn”,i,j);輸出的結果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9 D.8,9
參考答案:B
參考解析:本題考查函數的輸出格式。在printf函數中,格式說明符中有兩個“%”,表示將第1個%后面的字符原樣輸出,并不輸出其對應的變量值。
7[單選題] 軟件生命周期是指( )。
A.軟件產品從提出、實現、使用維護到停止使用退役的過程
B.軟件從需求分析、設計、實現到測試完成的過程
C.軟件的開發過程
D.軟件的運行維護過程
參考答案:A
參考解析:通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。
8[單選題] 以下敘述中錯誤的是( )。
A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中字符變量存放的是字符的ASCIl碼值
參考答案:B
參考解析:C程序在運行過程中的所有計算都以二進制方式進行,所以B選項錯誤。
9[簡答題]編寫函數fun,其功能是:將所有大于1小于整數m的非素數存人XX所指數組中,非素數的個數通過k返回。
例如,若輸入17,則應輸出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件PROGl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
參考解析:
【考點分析】
本題考查:如何判斷非素數;循環判斷結構;數組的引用。
【解題思路】
題目要求將l—m之問的非素數存人數組中,應使用循環判斷結構。循環語句用來遍歷1一m之間的每個數,判斷語句用來判斷該數是否為素數,若不是素數,則將其存人數組中。這道題目是考查—個數是否為素數的簡單延伸,只要掌握了判斷素數的方法,問題便能順利解決。
【解題寶典】
判定一個數是否為素數,即該數除了能被l和它本身外,不能被任何數整除。
代碼實現為:
for(j=2;j
此語句需要熟記,很多判斷素數的題目也可通過此法解決。
10[填空題]給定程序中,函數fun的功能是:計算形參X所指數組中N個數的平均值(規定所有數均為正數),將所指數組中大于平均值的數據移至數組的前部,小于等于平均值的數據移至X所指數組的后部,平均值作為函數值返回,在主函數中輸出平均值和移動后的數據。
例如,有l0個正數:46、30、32、40、6、17、45、15、48、26,平均值為30.500000。
移動后的輸出為:46、32、40A5、48、30、6、17、15、26。
請在程序的下畫線處填入正確的內容并把下畫線刪除,使程序得出正確的結果。
注意:部分源程序在文件BLANKl.C中。
不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
(1)sdN (2)j++ (3)一1
【解題思路】
填空l:由原程序可知,av代表的是平均值,而平均值的求法是所有數的總和除以數的個數,因而本空應該填寫s/N。
填空2:y數組代表暫時存放X數組,if(X[i]>av)表達的是當x數組中的數大于平均值時,應該把這些大于平均值的數放在y數組的前半部分,因而此空應該填y[j++]。
填空3:此空表明當x[i]不等于什么時,X[i]中的數要賦值給Y數組,由題意可知此空只能填寫一1。
更多精彩資訊請關注查字典資訊網,我們將持續為您更新最新資訊!