2015年計算機二級考試《C語言》提高練習題匯總三份(2)
1[填空題]從鍵盤輸入一組小寫字母,保存在字符數組str中。請補充函數proc(),該函數的功能是:把字符數組str中字符下標為奇數的小寫字母轉換成對應的大寫字母,結果仍保存在原數組中。例如,輸入abcdefg,輸出aBcDeFg。
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在函數proe()的橫線上填入所編寫的若干表達式或語句。
試題程序:
參考解析:
【解析】要將字符串中所有下標為奇數的小寫字母轉化為大寫字母,應該檢查字符串str中從第一個到最后一個字符,判斷其下標是否為奇數,因此【l】填“str[i]!= ˊ\0ˊ”。每找到一個下標為奇數的小寫字母。就將其轉換為大寫字母,大寫字母的ASCⅡ碼值比與其對應的小寫字母小32,因此【2】填“32”。每判斷完一個字符,要為檢查下一個字符做準備,因此【3】填“i++”。
2[填空題]數組xx[M]保存著一組3位數的無符號正整數,其元素的個數通過變量m傳人函數proc()。請補充函數proc(),該函數的功能是:從數組xx中找出十位和百位的數字相等的所有無符號整數,結果保存在數組yy中,其個數由函數proc()返回。
例如,當xx[8]={234 339 666 850 220 448 528 440)時,bb[5]={339 666 220 448 440}。
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的橫線上填入所編寫的若干表達式或語句。
試題程序:
參考解析:
【解析】要找出數組xx中十位和百位數字相等的所有整數,首先要得到數組中每一個整數的十位和百位數字,因此,【1】處填“(xx[i]/10)%10”;如果十位和百位數字相等,則將該整數放在數組bb ee,因此,【2】處填“bb[n++]=xx[i]”;符合條件的整數個數放在變量n中,返回給主函數,因此,【3】處填“n”。
3[簡答題]編寫函數fun,其功能是:將所有大于1小于整數m的非素數存入xx所指數組中,非素數的個數通過k返回。
例如,若輸入17,則應輸出:4 6 8 9 10 12 14 15 16。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【參考答案】
【考點分析】
本題考查:如何判斷非素數;循環判斷結構;數組的引用。
【解題思路】
題目要求將1一m之間的非素數存入數組中,應使用循環判斷結構。循環語句用來遍歷l一m之間的每個數,判斷語句用來判斷該數是否為素數,若不是素數,則將其存入數組中。本題是考查一個數是否為素數的簡單延伸,只要掌握了判斷素數的方法,問題便能順利解決。
【解題寶典】
判定一個數是否為素數,即判斷該數是否除了能被l和它本身整除外,不能被任何數整除。
代碼實現如下:
此語句需要熟記,很多判斷素數的題目可通過此法解決。
4[填空題]請補充函數proc(),該函數的功能是判斷一個數的十位數字和百位數字之和是否等于其個位上的數字,是則返回“yes!”,否則返回“no!”
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的橫線上填入所編寫的若干表達式或語句。
試題程序:
參考解析:
【1】n/100 【2】yes 【3】no!
由函數proc()可知,變量b存放的是整數n百位上的數,因此’【l】處填“n/100”;根據題目要求,十位數與百位數之和等于其個位數返回yes,因此,【2】處填“yes!”;十位數與百位數之和不等于其個位數返回ri0,因此,【3】處填“no!”。
5[填空題]請補充fun()函數,該函數的功能是:把字符的ASCII碼中為奇數的字符從字符串str中刪除,結果仍然保存在字符串str中,字符串str從鍵盤輸人,其長度作為參數傳人fun()函數。
例如,輸入“abcdef”,則輸出“bdf”。
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在mare()函數的橫線上填入所編寫的若干表達式或語句。
試題程序:
參考解析:
【解析】先判斷ASCⅡ碼的奇偶。
第一空:根據主函數“fun(str,len);”調用語句,其中len為字符串str的長度,用來控制循環。根據主函數中對應的調用語句,補全fun()函數定義,第一空填“fun(char s[],intn)”。
第二空:“s[j++]=s[i];”語句中j的變量在使用前要對其取值進行初始化,因為數組下標是由0開始的,初始化值為0,所以第二空填“j-0”。
第三空:新生成的字符串要加尾符標志,所以第三空填“s[j]= ˊ\0ˊ”。
6[單選題] 在數據庫設計中,將E—R圖轉換成關系數據模型的過程屬于( )。
A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段
參考解析:E—R圖轉換成關系模型數據則是把圖形分析出來的聯系反映到數據庫中,即設計出表,所以屬于邏輯設計階段。
7[單選題] 對如下二叉樹進行后序遍歷的結果為( )。
A.ABCDEFB.DBEAFCC.ABDECF D.DEBFCA
參考答案:D
參考解析:所謂的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,并且在遍歷左、右樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點。因此,后序遍歷二叉樹的過程也是一個遞歸過程。
8[單選題] 對線性表進行二分法檢索,其前提條件是( )。
A.線性表以順序方式存儲,并按關鍵碼值排好序
B.線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序
C.線性表以鏈式方式存儲,并按關鍵碼值排好序
D.線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序
參考答案:A
參考解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關鍵碼值的大小排好序。
9[單選題] 以下敘述中正確的是( )。
A.C語句必須在一行內寫完
B.C程序中的每一行只能寫一條語句
C.C語言程序中的注釋必須與語句寫在同一行
D.簡單C語句必須以分號結束
參考答案:D
參考解析:C語句可以跨行來寫,但是必須以分號結束,所以A選項錯誤。c程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行也可以不放在一行,所以C選項錯誤。
10[單選題] 在滿足實體完整性約束的條件下( )。
A.一個關系中應該有一個或多個候選關鍵字
B.一個關系中只能有一個候選關鍵字
C.一個關系中必須有多個候選關鍵字
D.一個關系中可以沒有候選關鍵字
參考答案:A
參考解析:實體完整性約束要求關系的主鍵中屬性值不能為空值,所以選擇A。