1定義結構體陣列:
以上程式段的輸出結果為( )。
A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I
參考答案:A
參考解析:本題主要考查結構體陣列的使用。x[i]為結構體xl-i]中的hum成員,x[i][2]是結構體x[i]中name成員的第3個元素。程式執行迴圈過程時:第1次迴圈,i=1,輸出x[i],x[1][2]的值;第2次迴圈,i=2,輸出x[2],x[2][2]的值,即3N;第3次迴圈,i=3,輸出x[3],x[3][2]的值,即4A;第4次迴圈,i=4,輸出x[4],x[4][2]的值,即5U。
2下述程式的輸出結果是( )。
A.10234B.12344C.12334 D.12234
參考答案:B
參考解析:函式fun()的功能是從陣列a中依次將當前值賦給一個元素,所以當函式fun(a,2,9)執行後,陣列a[]={1,2,3,4,4,5,6,7,8,9,10),由題意依次取該陣列前5個元素,所以選項B正確。
3資料的儲存結構是指( )。
A.資料所佔的儲存空間
B.資料的邏輯結構在計算機中的存放形式
C.資料在計算機中的順序儲存方式
D.儲存在計算機外存中的資料
參考答案:B
參考解析:資料的儲存結構,又稱為資料的物理結構,是資料的邏輯結構在計算機中的存放形式。
4下面描述中,不屬於軟體危機表現的是( )。
A.軟體過程不規範
B.軟體開發生產率低
C.軟體質量難以控制
D.軟體成本不斷提高
參考答案:A
參考解析:軟體危機的表現包括:①對軟體開發的進度和費用估計不準確;②使用者對已完成的軟體系統不滿意的現象時常發生;③軟體產品的質量往往靠不住;④軟體常常是不可維護的;⑤軟體通常沒有適當的文件;⑥軟體成本在計算機系統總成本中所佔的比例逐年上升;⑦軟體開發生產率提高的速度遠遠跟不上計算機應用迅速普及深入的趨勢。
5下列運算子中優先順序最高的算符是( )。
A.
B.
C.
D.
參考答案:A
參考解析:C語言中規定運算子的優先順序:一元算術運算子一>二元算術運算子一>關係運算符一>邏輯運算子一>賦值運算子,A項是關係運算符,B項和D項都是邏輯運算子,C項是賦值運算子,因此優先順序最高的是A項。
6利用fseek()函式可實現的操作是( )。
A.實現檔案的順序讀寫
B.改變檔案的位置指標
C.實現檔案的隨機讀寫
D.以上答案均正確
參考答案:D
參考解析:本題考查fseek()函式,其功能是:改變檔案的位置指標;輔助實現檔案的順序讀寫;輔助實現檔案的隨機讀寫。
7有以下程式:
程式的輸出結果是( )。
.B,CC.C,D D.不確定的值
參考答案:A
參考解析:char ch;ch=ˊAˊ+ˊ5ˊ-ˊ3ˊ;//計算字元ˊAˊ+ˊ5 ˊ-ˊ3ˊ即ˊA ˊ+2,因為ˊ5 ˊ與ˊ3ˊASCL碼就差2,得ˊC ˊprintf(″%d,%cn″,ch,ch);//%d是按整型輸出,輸出的是ch的ASC碼,查表可得67//%c是按字元型輸出,輸出為C所以輸出就為67,C。因此A為正確選項。
8以下敘述中正確的是( )。
-while語句構成的迴圈不能用其他語句構成的迴圈來代替
-while語句構成的迴圈只能用break語句退出
C.用do-while語句構成迴圈時,只有在while後的表示式為非零時結束迴圈
D.用do-while語句構成迴圈時,只有在while後的表示式為零時結束迴圈
參考答案:D
參考解析:選項A,可以用for迴圈代替;選項B,不滿足條件時即條件的邏輯值為假(0)時退出,break也可以;選項C,while(條件),條件為真時進行迴圈,為假(0)時退出。
9讀取二進位制檔案的函式呼叫形式為:fread(buffer,size,count,fp);,其中buffer代表的是( )。
A.一個檔案指標,指向待讀取的.檔案
B.一個整型變數,代表待讀取的資料的位元組數
C.一個記憶體塊的首地址,代表讀人資料存放的地址
D.一個記憶體塊的位元組數
參考答案:C
參考解析:fread函式中的引數buffer是記憶體塊的首地址,輸入的資料存入此記憶體塊中。
10若變數a、b、x、j都已正確定義並賦值,則以下符合C語言語法的表示式是( )。
A.a+=&-=(b-4)*(a=3)B.x%(-3);C.a=a*3=2D.y=float(i)
參考答案:A
參考解析:取餘運算子%兩邊都應是正數,賦值語句左邊必須是變數,不能是表示式,強制轉換語句強制型別應加括號,而非加在變數上。
二、程式填空題
請補充函式proc(),該函式的功能是:把字串str中的字元按字元的ASCⅡ碼升序排列,處理後的字串仍然儲存在原串中,字串及其長度作為函式引數傳人。
例如,如果輸入“9fedcba”,則輸出為“abcdefg”。
注意:部分源程式給出如下。
請勿改動main()函式和其他函式中的任何內容,僅在函式proc()的橫線上填入所編寫的若干表示式或語句。
試題程式:
參考解析:
【1】i+1【2】str[j]=str[i]
【解析】:題目要求把字串str中的字元按其ASCⅡ碼值升序排列,可以使字串中的每一個字元與其後的所有字元相比較,因此【1】填“i+1”;把該字元與ASCⅡ碼值小於其本身而且位置在它後面的字元相交換,最後就可以使ASCⅡ碼值小的在前、大的在後,因此【2】填“str[j]=str[i]”。
三、程式改錯題
下列給定程式中,函式proc()的功能是:刪除字串str中所有空白字元(包括Tab字元、Enter符及換行符)。輸入字串時以“#”結束輸入。
請修改程式中的錯誤,使它能得出正確的結果。
注意:不要改動main()函式,不得增行或刪行,也不得更改程式的結構。
試題程式:
參考解析:
錯誤:c[t]=″