算法分析與設(shè)計(jì)2022年秋學(xué)期在線作業(yè)1題目
試卷總分:100 得分:100
一、單選題 (共 20 道試題,共 40 分)
1.下列算法描述所用的方法是() Begin(算法開始) 輸入 A,B,C IF A>B 則 A→Max 否則 B→Max IF C>Max 則 C→Max Print Max End (算法結(jié)束)
A.流程圖
B.N-S流程圖
C.偽代碼表示
D.程序設(shè)計(jì)語言
2.某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()。
A.n+1
B.n-1
C.2n
D.n/2
3.下列敘述中正確的是()
A.線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B.棧與隊(duì)列是非線性結(jié)構(gòu)
C.雙向鏈表是非線性結(jié)構(gòu)
D.只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)
4.設(shè)有如下函數(shù)定義 int fun(int k) { if (k<1) return 0; else if(k==1) return 1; else return fun(k-1)+1; } 若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun 總共被調(diào)用的次數(shù)是()。
A.2
B.3
C.4
D.5
5.strchr()函數(shù)用來()。
A.字符串連接
B.比較字符
C.求字符位置
D.求子串位置
6.下面4句話中,最準(zhǔn)確的表述是()。
A.程序=算法+數(shù)據(jù)結(jié)構(gòu)
B.程序是使用編程語言實(shí)現(xiàn)算法
C.程序的開發(fā)方法決定算法設(shè)計(jì)
D.算法是程序設(shè)計(jì)中最關(guān)鍵的因素
7.一個(gè)遞歸算法必須包括()。
A.遞歸部分
B.終止條件和遞歸部分
C.循環(huán)部分
D.終止條件和循環(huán)部分
8.插入排序在最好情況下的時(shí)間復(fù)雜度為()
A.O(logn)
B.O(n)
C.O(n*logn)
D.O(n2)
9.已知一棵完全二叉樹的第6層(設(shè)根為第1層)有8個(gè)葉結(jié)點(diǎn),則該完全二叉樹的結(jié)點(diǎn)個(gè)數(shù)最多是(C)。
A.39
B.52
C.111
D.119
10.strstr()函數(shù)用來()。
A.字符串連接
B.比較字符
C.求字符位置
D.求子串位置
11.在程序代碼編輯框外(一般都是程序代碼的最左側(cè))雙擊,就成功設(shè)置了一個(gè)斷點(diǎn),設(shè)置成功后會(huì)在該行的最前面顯示一個(gè)圓點(diǎn),這樣的過程稱作()。
A.設(shè)置斷點(diǎn)
B.單步調(diào)試
C.程序編譯
D.程序調(diào)試
12.有以下程序 #include <stdio.h> int f(int t[ ], int n ); main() { int a[4]={1, 2, 3, 4}, s; s=f(a, 4); printf("%d\n", s); } int f(int t[ ], int n ) { if(n>0) return t[n-1]+f(t, n-1); else return 0; } 程序運(yùn)行后的輸出結(jié)果是()。
A.4
B.10
C.14
D.6
13.八進(jìn)制中最大的數(shù)碼是()。
A.6
B.7
C.8
D.9
14.將f=1+1/2+1/3+…+1/n轉(zhuǎn)化成遞歸函數(shù),其遞歸體是()。
A.f(1)=0
B.f(1)=1
C.f(0)=1
D.f(n)=f(n-1)+1/n
15.分治法是把一個(gè)復(fù)雜的問題分成相似的子問題,再把子問題分成更小的子問題……直到最后子問題可以簡(jiǎn)單的直接求解,原問題的解即子問題解的()
A.合并
B.最大值
C.最小值
D.平均值
16.自動(dòng)化的工具同樣也能夠幫助你跟蹤程序,尤其當(dāng)程序很復(fù)雜時(shí)效果更加明顯,這種工具叫做()。
A.調(diào)試器
B.編輯器
C.編譯器
D.調(diào)解器
17.strcpy()函數(shù)用來()。
A.求字符串長(zhǎng)度
B.比較字符
C.求子串
D.字符串拷貝
18.cd 目錄名的功能是()。
A.退回到根目錄
B.退回到上一級(jí)目錄
C.進(jìn)入特定的目錄
D.顯示出文本文件的內(nèi)容
19.對(duì)于長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A.log2n
B.n/2
C.n
D.n+1
20.()嵌在源程序體中,用于描述其后的語句或程序段做什么工作,也就是解釋下面要做什么,或是執(zhí)行了下面的語句會(huì)怎么樣。而不要解釋下面怎么做,因?yàn)槌绦虮旧砭褪窃趺醋觥?/p>
A.文件注釋
B.函數(shù)注釋
C.功能注釋
D.程序注釋
二、多選題 (共 4 道試題,共 16 分)
21.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種結(jié)構(gòu)共同特點(diǎn)是()
A.只有一個(gè)入口
B.只有一個(gè)出口
C.結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到(不存在死語句)
D.結(jié)構(gòu)內(nèi)不存在死循環(huán)(永遠(yuǎn)執(zhí)行不完的循環(huán))。
22.字符串有關(guān)的格式字符有( )。
A."%c"
B."%d"
C."%f"
D."%s"
23.遞歸算法的執(zhí)行過程分()和()兩個(gè)階段。
A.遞歸
B.遞推
C.回歸
D.回溯
24.設(shè)計(jì)遞歸算法有兩點(diǎn)最為關(guān)鍵()和()。
A.確定遞推公式
B.確定邊界(終了)條件(遞歸出口)
C.每次遞歸調(diào)用,都必須向基本條件前進(jìn)
D.如果結(jié)果已知,那么,不用再重復(fù)調(diào)用遞歸
三、判斷題 (共 22 道試題,共 44 分)
25.簡(jiǎn)單選擇排序算法在最好情況下的時(shí)間復(fù)雜度為O(N)。
26.順序查找是從線性表的一端開始,依次將每個(gè)元素的關(guān)鍵字同給定值K進(jìn)行比較,若某元素關(guān)鍵字與K相等,則查找成功;若所有元素都比較完畢,仍找不到關(guān)鍵字為K的元素,則查找失敗。
27.冒泡排序的時(shí)間復(fù)雜度為O(n*n)。
28.內(nèi)排序要求數(shù)據(jù)一定要以順序方式存儲(chǔ)。
29.排序速度,進(jìn)行外排序時(shí),必須選用最快的內(nèi)排序算法。
30.gets()函數(shù)一次可以輸入多個(gè)字符串。
31.采用順序查找方式查找長(zhǎng)度為n的線性表時(shí),平均查找長(zhǎng)度為(n-1)/2。
32.窮舉法,也稱輾轉(zhuǎn)法,是一種針對(duì)于密碼的破譯方法,即將密碼進(jìn)行逐個(gè)推算直到找出真正的密碼為止。
33.程序調(diào)試的作用是將程序測(cè)試過程中發(fā)現(xiàn)的錯(cuò)誤改正過來,程序調(diào)試后需要再次進(jìn)行測(cè)試。
34.具有10個(gè)頂點(diǎn)的無向圖,邊的總數(shù)最多為44。
35.遞推實(shí)現(xiàn)的關(guān)鍵是找出遞推公式。
36.冒泡排序法每次比較的是相鄰的兩個(gè)數(shù):a[i]和a[i+1],如果前一個(gè)數(shù)比后一個(gè)數(shù)大,則馬上交換。
37.字符型和整型一般情況下可以通用。
38.在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為64。
39.用二分(對(duì)半)查找表的元素的速度比用順序法快。
40.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有20個(gè)葉子結(jié)點(diǎn)。
41.線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)。
42.C語言中,數(shù)組名代表該數(shù)組的起始地址。
43.線性表需要為表示結(jié)點(diǎn)間的邏輯關(guān)系而增加額外的存儲(chǔ)空間。
44.在待排數(shù)據(jù)基本有序的情況下,快速排序效果最好。
45.在后序遍歷二叉樹的序列中,任何結(jié)點(diǎn)的子樹上的所有結(jié)點(diǎn),都是直接跟在該結(jié)點(diǎn)之后。
46.scanf()、printf()可以輸入輸出幾個(gè)字符串。
奧鵬,國(guó)開,廣開,電大在線,各省平臺(tái),新疆一體化等平臺(tái)學(xué)習(xí)
詳情請(qǐng)咨詢QQ : 3230981406或微信:aopopenfd777