1[填空題]從鍵盤輸入一組無符號整數并保存在數組xx[M]中,以整數0結束輸入,即第M+1個數是0(共M個數據),數與數之間以Enter鍵分隔,要求這些數的最大位數不超過4位,其元素的個數通過變量num傳人函數proc()。請補充函數proc(),該函數的功能是:從數組XX中找出十位和百位的數字之和大于5的所有無符號整數,結果保存在數組yy中,其個數由函數proc()返回。
例如,當xx[8]={3 637 369 421 35 7334 54 67}時,bb[4]={637 369 421 7334 67)。
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的橫線上填人所編寫的若干表達式或語句。
試題程序:
參考解析:
【1】xx[i]/100【2】bb[n++]=xx[i]【3】n
從數組XX中找出十位和百位的數字之和大于5的所有無符號整數,首先要得到每一個整數十位和百位的數字。要得到一個整數十位和百位的數字,可以通過取余來實現,因此,【1】處填“xx[i]/100”;每得到一個符合要求的整數,放在數組bb中,因此,【2】處填“bb[n++]=xx[i]”;變量n中存放的是符合要求的個數,最后返回各主函數,因此【3】處填“n”。
2[單選題] 若變量已正確定義
for(x=0,Y=0;(y!=99&&x<4);x++)
則以上for循環
A.執行3次B.執行4次C.執行無限次D.執行次數不定
參考答案:B
參考解析:本題重點考查for語句的循環次數,for(x=0,y=0;(y!=99&&x<4);x++),y!=99&&x<4即循環條件當y不等于99以及x<4時,執行循環語句,當有一個條件不成立時,均結束循環,因此循環4次,B選項正確。
3[單選題] 以下敘述中錯誤的是
A.用typedef可以說明一種新的類型名
B.typedef的作用是用一個新的標識符來代表已存在的類型名
C.可以用typedef說明的新類型名來定義變量
D.typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤
參考答案:D
考解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,新類型可以使用小寫,所以D選項錯誤。
4[簡答題]規定輸入的字符串中只包含字母和*號。編寫函數fun(),其功能是:刪除字符串中所有的*號。編寫函數時,不得使用C語言提供的字符串函數。
例如,字符串中的內容為“****A*BC*DEF*G****”,刪除后,字符串中的內容應當是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入編寫的若干語句。
試題程序:
參考解析:
【解析】此題是刪除字符串中的星號。思路是通過for循環來完成對字符串的遍歷,通過if判斷,找到不是“*”的字符,將其賦值到數組a中星號前的位置,“if(a[i]!= ˊ*ˊ)”“a[j++]=a[i]”,最后返回主函數將刪除*后的字符串輸出即可。
5[單選題] 下列變量聲明合法的是()。
A.short a=1.4e-1;
B.double b=1+3e2.8;
C.10ng do=0xfdaL;
D.float 2_ aaa=1e-3;
參考答案:A
參考解析:解答本題需了解3個知識點:①標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線;②do是C語言的一個關鍵字,不能再用作變量名和函數名;③C語言規定指數形式的實型數量e或E后面的指數必須是整數。
6[單選題] 以下敘述中錯誤的是()。
A.改變函數形參的值,不會改變對應實參的值
B.函數可以返回地址值
C.可以給指針變量賦一個整數作為地址值
D.當在程序的開頭包含文件stdio.h時,可以給指針變量賦NULL
參考答案:C
參考解析:指針變量的值只能是存儲單元地址,而不能是一個整數,故選項C錯誤。
7[填空題]請補充main()函數,該函數的功能是求方程axs+bx+c=0的兩個實數根。方程的系數a、b、C從鍵盤輸入,如果判別式(disc=b*b-4*a*c)tb于0,則要求重新輸人a、b、c的值。
例如,當a=1,b=2,c=1時,方程的兩個根分別是:x1=-1.00,X2=-1.00。
注意:部分源程序給出如下。
請勿改動函數中的其他任何內容,僅在橫線上填入所編寫的若干表達式或語句。
試題程序:
參考解析:
【1】disc%0或0>disc【2】sqrt【3】sqrt
【解析】本題考查的是do-while循環,第【1】處填空:“disc<0”或“0)disc”;本題引入“#include”頭文件可知,可調用函數sqrt。
8[單選題] 下列數據結構中,能夠按照“先進后出”原則存取數據的是( )。
A.循環隊列B.棧C.隊列D.二叉樹
參考答案:B
參考解析:棧是按先進后出的原則組織數據的。隊列是先進先出的原則組織數據。
9[簡答題]下列給定程序中函數fun的功能是:用冒泡法對6個字符串進行升序排列。請改正程序中的錯誤,使它能得出正確的結果。
注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結構!
參考解析:
(1)fh(j=i+1;j<6;j++)
(2)*(pstr+i)=}(pstr+j);
【考點分析】
本題考查:冒泡排序算法;for循環語句格式;指針數組。
【解題思路】
(1)此處考查for語句的格式,各表達式之間應用“;”隔開。
(2)此處考查用指針表示數組元素的方法,}(pstr+I)表示pstr所指向數組的第1個元素,同理}(pstr+j)表示pstr所指向數組的第j個元素。
【解題寶典】
冒泡排序算法,其基本思想是,將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮。在冒泡排序算法中我們要對這個“氣泡”序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,并時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即“輕”的元素在下面,就交換它們的位置。顯然,處理一遍之后,“最輕”的元素就浮到了最高位置;處理二遍之后,“次輕”的元素就浮到了次高位置。依次類推,完成排序。
用代碼實現數組s[N]的升序排列為:for(i=0;i
for(j=i十1;j
if(s[i]>s[j]){t-s[i];s[i]=s[j]s[j]=t;}
10[單選題] 有以下程序:
程序執行后的輸出結果是( )。
A.x=4B.X=8C.x=6D.x=12
參考答案:B
參考解析:
eoulinue的作用是跳出循環體中剩余的1語句而進行下一次循環。第一次執行外循環i的值為0,執行|x++,x的值變為l,第一次執行內層循環j的值為0,不滿足if1條件,執行x++,x的值變為2,第二次內循環j的值為1,if條1件成立,跳出本次循環,第三次執行內循環j的值為2,不滿足l if條件,x的值變為3,第四次執行內循環j的值為3滿足條件1跳出本次內循環,x的值加l,即為4,第一次外循環結束。第1二次執行外循環時,同理,i的值被加了,4次,變為8,所以選擇I,B選項。
更多精彩資訊請關注查字典資訊網,我們將持續為您更新最新資訊!