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選項。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |