2024年大學(xué)試題(計算機科學(xué))-程序設(shè)計教程筆試歷年真題薈萃含答案_第1頁
2024年大學(xué)試題(計算機科學(xué))-程序設(shè)計教程筆試歷年真題薈萃含答案_第2頁
2024年大學(xué)試題(計算機科學(xué))-程序設(shè)計教程筆試歷年真題薈萃含答案_第3頁
2024年大學(xué)試題(計算機科學(xué))-程序設(shè)計教程筆試歷年真題薈萃含答案_第4頁
2024年大學(xué)試題(計算機科學(xué))-程序設(shè)計教程筆試歷年真題薈萃含答案_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2024年大學(xué)試題(計算機科學(xué))-程序設(shè)計教程筆試歷年真題薈萃含答案(圖片大小可自由調(diào)整)第1卷一.參考題庫(共30題)1.簡述寄存器、內(nèi)存以及外存的區(qū)別。2.編寫一個程序,對輸入的一個算術(shù)表達式(以字符#結(jié)束),檢查圓括號配對情況。輸出:配對、多左括號或多右括號。3.在你的計算機上運行下面的程序: 結(jié)果與你預(yù)期的是否相符?如果不符,請解釋它的原因。4.下面的聲明中哪一些是定義性聲明?這些定義性聲明的非定義性聲明是什么? 5.下面的函數(shù)定義為什么是正確的?在函數(shù)f中如何區(qū)分(使用)它們? 6.編寫一個程序,輸出十進制乘法表。 7.表達式中的類型轉(zhuǎn)換規(guī)則是什么?下面的表達式計算時如何進行操作數(shù)類型轉(zhuǎn)換? 8.下面的設(shè)計有什么問題?如何解決? 9.根據(jù)下圖寫一個函數(shù):intpath(intn);用于計算從結(jié)點1到結(jié)點n(n大于1)共有多少條不同的路徑。 10.寫出下面程序的運行結(jié)果: 11.編寫一個程序,從鍵盤輸入一個字符串,分別統(tǒng)計其中的大寫字母、小寫字母以及數(shù)字的個數(shù)。12.編寫一個程序,將用24小時制表示的時間轉(zhuǎn)換為12小時制表示的時間。例如,輸入20和16(20點16分),輸出8:16pm;輸入8和16(8點16分),輸出8:16am。13.在多繼承中,什么情況下會出現(xiàn)二義性?怎樣消除二義性?14.寫出下列條件的C++表達式 (1)i能被j整除。 (2)ch為字母字符。 (3)m為偶數(shù)。 (4)n是小于100的奇數(shù)。 (5)a、b、c構(gòu)成三角形的三條邊。15.編寫一個程序解八皇后問題。八皇后問題是:設(shè)法在國際象棋的棋盤上放置八個皇后,使得其中任何一個皇后所處的“行”、“列”以及“對角線”上都不能有其它的皇后。16.利用操作符重載給出一個完整的復(fù)數(shù)類的定義。17.簡述馮?諾依曼計算機的工作模型。18.定義一個多項式類Polynomial,其實例為多項式:a0+a1x+a2x2+...+anxn,該類具有如下的接口: 19.簡述程序設(shè)計的步驟。20.操作符的優(yōu)先級和結(jié)合性分別是指的什么?21.下面的求n!的函數(shù)有什么問題? 22.十進制數(shù)0.1的二進制表示是什么?23.操作符重載的形式有哪兩種形式?這兩種形式有什么區(qū)別?24.將下列公式表示成C++的表達式: 25.編寫一個程序,計算圓周率??衫霉剑? 直到最后一項的絕對值小于10-8。26.下面哪一些是合法的C++字面常量,它們的類型是什么? 27.下面哪一些是合法的C++標識符? extern,_book,Car,car_1,ca1r,1car,friend,car1_Car,Car_Type,No.1,12328.寫出計算Ackermann函數(shù)Ack(m,n)值的遞歸函數(shù)。Ack(m,n)定義如下(m≥0,n≥0): 29.簡述變量的生存期和標識符的作用域。30.什么是軟件?軟件是如何分類的?第1卷參考答案一.參考題庫1.參考答案: 寄存器主要用于記錄下一條指令的內(nèi)存地址、當(dāng)前指令的執(zhí)行狀態(tài)以及暫時保存指令的計算結(jié)果供下一(幾)條指令使用,其作用主要是減少訪問內(nèi)存的次數(shù),提高指令的執(zhí)行效率。 內(nèi)存用于存儲計算機程序(指令和數(shù)據(jù)),內(nèi)存由許多存儲單元構(gòu)成,每個存儲單元都有一個地址,對存儲單元的訪問是通過其地址來進行的,與寄存器相比,內(nèi)存的容量要大得多,但指令訪問內(nèi)存單元所花費的時間比訪問寄存器要多得多。 外存是大容量的低速存儲部件,用于永久性地存儲程序、數(shù)據(jù)以及各種文檔等信息,存儲在外存中的信息通常以文件形式進行組織和訪問,外存儲了在容量和速度上與內(nèi)存不同,另一個區(qū)別在于內(nèi)存中存儲的是正在運行的程序和正在使用的數(shù)據(jù),外存中存儲的則是大量的、并非正在使用的程序和數(shù)據(jù)。2.參考答案: 3.參考答案: 運行結(jié)果為2。由于十進制小數(shù)3.3和1.1無法用double型精確表示。通過查看結(jié)果內(nèi)存內(nèi)的內(nèi)容,最終結(jié)果比3.0略小,所以強制轉(zhuǎn)換成int型后結(jié)果為2。4.參考答案: 5.參考答案: 兩個f的作用域不一樣,voidf()中的f為全局作用域,intf;中的f為局部作用域。在函數(shù)f中如果使用局部變量,則用f;如果使用函數(shù)f,則用::f。6.參考答案: 7.參考答案: 表達式中類型轉(zhuǎn)換規(guī)則是:基于單個操作符依次進行轉(zhuǎn)換。 1)3與5同類型,不轉(zhuǎn)換,結(jié)果為0,轉(zhuǎn)換成double型后與12.3做乘法。 2)10轉(zhuǎn)換成double型與5.2做乘法,’a’轉(zhuǎn)換成double型后與前者結(jié)果做加法。 3)3.0F與24L均轉(zhuǎn)換成double型后做乘法,12U轉(zhuǎn)換成double型后與前者結(jié)果做加法。8.參考答案: Square不能以public繼承方式繼承Rectangle類,否則,Rectangle的所有public成員函數(shù)就能被Square類的對象訪問,特別地,當(dāng)用set_width和set_height分別對Square類的對象進行操作時,就可能破壞Square類對象的長、寬相等的特性。 解決辦法是:把Square定義成以protected或private方式從Rectangle繼承。為了能對Square類的對象訪問Rectangle中定義的area和print,可在Square類中加上對Rectangle類成員的訪問控制調(diào)整聲明: 9.參考答案: 10.參考答案: 11.參考答案: 12.參考答案: 13.參考答案:在多繼承中會出現(xiàn)兩個問題:名沖突和重復(fù)繼承。在多繼承中,當(dāng)多個基類中包含同名的成員時,它們在派生類中就會出現(xiàn)名沖突問題;在多繼承中,如果直接基類有公共的基類,就會出現(xiàn)重復(fù)繼承,這樣,公共基類中的數(shù)據(jù)成員在多繼承的派生類中就有多個拷貝。在C++中,解決名沖突的方法是用基類名受限;解決重復(fù)繼承問題的手段是采用虛基類。14.參考答案: 15.參考答案: 16.參考答案: 17.參考答案:馮?諾依曼計算機的工作模型是:待執(zhí)行的程序從外存裝入到內(nèi)存中,CPU從內(nèi)存中逐條地取程序中的指令執(zhí)行;程序執(zhí)行中所需要的數(shù)據(jù)從內(nèi)存或從外設(shè)中獲得,程序執(zhí)行中產(chǎn)生的中間結(jié)果保存在內(nèi)存中,程序的執(zhí)行結(jié)果通過外設(shè)輸出。18.參考答案: 19.參考答案:程序設(shè)計一般遵循以下步驟:明確問題;系統(tǒng)設(shè)計;用某種語言進行編程;測試與調(diào)試;運行與維護。20.參考答案:運算符的優(yōu)先級和結(jié)合性決定表達式中各個運算符的運算次序。操作符的優(yōu)先級規(guī)定了相鄰的兩個操作符誰先運算:優(yōu)先級高的先計算;如果相鄰的兩個操作符具有相同的優(yōu)先級,則需根據(jù)操作符的結(jié)合性來決定先計算誰,操作符的結(jié)合性通常分為左結(jié)合和右結(jié)合:左結(jié)合表示從左到右計算,右結(jié)合表示從右到左計算。21.參考答案: 有函數(shù)副作用的問題。函數(shù)執(zhí)行結(jié)束后,調(diào)用該函數(shù)的實參值被改變了(通過形參,變?yōu)?)。22.參考答案:(0.1)10=(0.000110011...)2,它是無限循環(huán)小數(shù)。也就是說,十進制數(shù)0.1無法精確用二進制表示!23.參考答案: 一種就是作為成員函數(shù)重載操作符;另一種就是作為全局(友元)函數(shù)重載操作符。 當(dāng)操作符作為類的非靜態(tài)成員函數(shù)來重載時,由于成員函數(shù)已經(jīng)有一個隱藏的參數(shù)this,因此對于雙目操作符重載函數(shù)只需要提供一個參數(shù),對于單目操作符重載函數(shù)則不需提供參數(shù)。 當(dāng)操作符作為全局函數(shù)來重載時,操作符重載函數(shù)的參數(shù)類型至少有一個為類、結(jié)構(gòu)、枚舉或它們的引用類型。而且如果要訪問參數(shù)類的私有成員,還需要把該函數(shù)說明成相應(yīng)類的友元。對于雙目操作符重載函數(shù)需要兩個參數(shù),對于單目操作符重載函數(shù)則需要給出一個參數(shù)。操作符=、()、[]以及->不能作為全局函數(shù)來重載。 另外,作為類成員函數(shù)來重載時,操作符的第一個操作數(shù)必須是類的對象,全局函數(shù)重載則否。24.參考答案: 25.參考答案: 26.參考答案: 27.參考答案: 合法的C++標識符:_book,Car,car_1,ca1r,car1_Car,Car_Type28.參考答案: 29.參考答案:變量的生存期指程序運行時一個變量占有內(nèi)存空間的時間段。C++把變量的生存期分為靜態(tài)、自動和動態(tài)三種。標識符的作用域是指:一個定義了的標識符的有效范圍,即該標識符所標識的程序?qū)嶓w能被訪問的程序段。在C++中,根據(jù)標識符的性質(zhì)和定義位置規(guī)定了標識符的作用域。作用域分為:全局作用域、文件作用域、局部作用域、函數(shù)作用域、函數(shù)原型作用域、類作用域、名空間作用域。30.參考答案: 計算機軟件是計算機系統(tǒng)中的程序以及有關(guān)的文檔。程序是對計算任務(wù)的處理對象(數(shù)據(jù))與處理規(guī)則(算法)的描述;文檔是為了便于人理解程序所需的資料說明,供程序開發(fā)與維護使用。 軟件通??梢苑譃橄到y(tǒng)軟件、支撐軟件和應(yīng)用軟件。系統(tǒng)軟件居于計算機系統(tǒng)中最靠近硬件的一級,它與具體的應(yīng)用領(lǐng)域無關(guān),其他軟件一般要通過系統(tǒng)軟件發(fā)揮作用,如操作系統(tǒng)屬于系統(tǒng)軟件。支撐軟件是指支持軟件開發(fā)與維護的軟件,一般由軟件開發(fā)人員使用,如軟件開發(fā)環(huán)境就是典型的支撐軟件。應(yīng)用軟件是指用于特定領(lǐng)域的專用軟件,如人口普查軟件、財務(wù)軟件等。第2卷一.參考題庫(共30題)1.編寫一個程序,求a和b的最大公約數(shù)。2.寫一個函數(shù)map,它有三個參數(shù)。第一個參數(shù)是一個一維double型數(shù)組,第二個參數(shù)為數(shù)組元素個數(shù),第三個參數(shù)是一個函數(shù)指針,它指向帶有一個double型參數(shù)、返回值類型為double的函數(shù)。函數(shù)map的功能是把數(shù)組的每個元素替換成:用它原來的值(作為參數(shù))調(diào)用第三個參數(shù)所指向的函數(shù)得到的值。3.什么是表達式?其作用是什么?4.低級語言與高級語言的不同之處是什么?5.簡述局部變量的作用。6.編寫一個程序,計算一個矩陣的鞍點。矩陣的鞍點是指矩陣中的一個位置,該位置上的元素在其所在的行上最大、列上最小。(一個矩陣也可能沒有鞍點。)7.CPU能執(zhí)行哪些指令?8.在C++中,三種繼承方式各有什么作用?9.下面的宏cube1和函數(shù)cube2相比,各有什么優(yōu)缺點? 10.寫出下面程序的執(zhí)行結(jié)果: 11.C++的單詞分成哪些種類?12.實現(xiàn)下面的數(shù)組元素交換位置函數(shù): 該函數(shù)能夠把數(shù)組a的前m個元素與后n個元素交換位置,即, 要求:除數(shù)組a外,不得引入其它數(shù)組。13.為什么一般把內(nèi)聯(lián)函數(shù)的定義放在個頭文件中?14.在排序算法中,有一種排序算法(插入排序)是:把待排序的數(shù)分成兩個部分: 其中,A為已排好序的數(shù),B為未排好序的數(shù),初始狀態(tài)下,A中只有一個元素。該算法依次從B中取數(shù)插入到A中的相應(yīng)位置,直到B中的數(shù)取完為止。請在鏈表表示上實現(xiàn)上述的插入排序算法。15.簡述編譯與解釋的區(qū)別。16.如何定義兩個類A和B(B是A的派生類),使得在程序中能夠創(chuàng)建一個與指針變量p(類型為A*)所指向的對象是同類的對象?17.編寫一個函數(shù)int_to_str(intn,charstr[]),把一個int型數(shù)(由參數(shù)n表示)轉(zhuǎn)換成一個字符串(放在str中)。18.編寫一個程序,求所有這樣的三位數(shù),它們等于它們的各位數(shù)字的立方和。例如:153=13+33+5319.實現(xiàn)strlen、strcpy、strncpy、strcat、strncat、strcmp以及strncmp函數(shù)。20.編寫一個程序,首先建立兩個集合(從鍵盤輸入集合的元素),然后計算這兩個集合的交集、并集以及差集,最后輸出計算結(jié)果。要求用鏈表實現(xiàn)集合的表示。21.編程解決下面的問題:若一頭小母牛,從出生起第四個年頭開始每年生一頭母牛,按此規(guī)律,第n年有多少頭母牛?22.不引進第三個變量,如何交換兩個整型變量的值?23.定義一個不受計算機字長限制的整數(shù)類INT,要求INT與INT以及INT與C++基本數(shù)據(jù)類型int之間能進行+、-、×、÷和=運算,并且能通過cout輸出INT類型的值。24.什么是虛擬機?25.編寫一個函數(shù)digit(n,k),它計算整數(shù)n的從右向左的第k個數(shù)字。例如: 26.如何理解變量?變量定義和聲明的作用是什么?27.編寫一個函數(shù)計算一元二次方程的根。要求:方程的系數(shù)和根均用參數(shù)傳遞機制來傳遞。28.編寫一個程序,輸入一個字符串(以字符#結(jié)束),對其中的“>=”進行計數(shù)。29.寫出下面程序的運行結(jié)果: 30.什么是符號常量?符號常量的優(yōu)點是什么?第2卷參考答案一.參考題庫1.參考答案: 2.參考答案: 3.參考答案:表達式是由操作符、操作數(shù)以及圓括號所組成的運算式。在程序設(shè)計語言中,對數(shù)據(jù)操作的具體實施是通過表達式來描述的。4.參考答案: 低級語言是指與特定計算機體系結(jié)構(gòu)密切相關(guān)的程序語言,它是特定計算機能夠直接理解的語言(或與之直接對應(yīng)的語言),包括機器語言和匯編語言。低級語言的優(yōu)點在于:寫出的程序效率比較高,包括執(zhí)行速度快和占用空間少。其缺點是:程序難以設(shè)計、理解與維護,難以保證程序的正確性。 高級語言是指人容易理解和有利于人對解題過程進行描述的程序語言。高級語言的優(yōu)點在于:程序容易設(shè)計、理解與維護,容易保證程序正確性。高級語言的缺點是:用其編寫的程序相對于用低級語言編寫的程序效率要低,翻譯成的目標代碼量較大。5.參考答案:1、實現(xiàn)信息隱藏,使得函數(shù)外無法訪問該函數(shù)內(nèi)部使用的數(shù)據(jù)。2、減少名沖突,一個函數(shù)可以為局部變量定義任何合法名字,而不用擔(dān)心與其他函數(shù)的局部變量同名。3、局部變量的內(nèi)存空間在棧中分配,函數(shù)調(diào)用完之后釋放,因此,使用局部變量能節(jié)省程序的內(nèi)存空間。6.參考答案: 7.參考答案: C.PU所能執(zhí)行的指令通常有: 算術(shù)指令:實現(xiàn)加、減、乘、除等運算。 比較指令:比較兩個操作數(shù)的大小。 數(shù)據(jù)傳輸指令:實現(xiàn)CPU的寄存器、內(nèi)存以及外設(shè)之間的數(shù)據(jù)傳輸。 執(zhí)行流程控制指令:用于確定下一條指令的內(nèi)存地址,包括轉(zhuǎn)移、循環(huán)以及子程序調(diào)用/返回等指令。8.參考答案:類的繼承方式?jīng)Q定了派生類的對象和派生類的派生類對基類成員的訪問限制。public繼承方式使得基類的public成員可以被派生類的對象訪問,它可以實現(xiàn)類之間的子類型關(guān)系;protected繼承使得基類的public成員不能被派生類的對象訪問,但可以被派生類的派生類訪問;private繼承使得基類的public成員既不能被派生類的對象訪問,也不能被派生類的派生類訪問。protected和private繼承主要用于實現(xiàn)上的繼承,即純粹為了代碼復(fù)用。9.參考答案: 小型函數(shù)的頻繁調(diào)用會帶來程序執(zhí)行效率的嚴重下降,宏的出現(xiàn)解決了函數(shù)調(diào)用效率不高的問題,但宏本身也存在很多問題:(1)宏會出現(xiàn)重復(fù)計算,(2)不進行參數(shù)類型檢查和轉(zhuǎn)換,(3)不利于一些工具對程序的處理。而函數(shù)可以很好的處理這些問題。 另外,對于:inta;當(dāng)a的值很大時,cube1(a)得不到正確結(jié)果?。ㄒ驗榻Y(jié)果類型為int,而如果a*a*a的結(jié)果超出了int型的范圍,則結(jié)果將會截斷!)10.參考答案: 21,4111.參考答案:構(gòu)成C++的單詞有:標識符、關(guān)鍵詞、字面常量、操作符以及標點符號等。12.參考答案: 13.參考答案:為了防止同一個內(nèi)聯(lián)函數(shù)的各個定義之間的不一致,往往把內(nèi)聯(lián)函數(shù)的定義放在某個頭文件中,在需要使用該內(nèi)聯(lián)函數(shù)的源文件中用文件包含命令#include把該頭文件包含進來。由于內(nèi)聯(lián)函數(shù)名具有文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論