2023年中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)_第1頁
2023年中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)_第2頁
2023年中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)_第3頁
2023年中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)_第4頁
2023年中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中央廣播電視大學(xué)計算機科學(xué)與技術(shù)專業(yè)面向?qū)ο蟪绦蛟O(shè)計課程考核說明(2023年版)一、考核說明《面向?qū)ο蟪绦蛟O(shè)計》課程是電大系記錄算機科學(xué)與技術(shù)專業(yè)本科生(??破瘘c)的一門必修課程。本課程是數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計算機網(wǎng)絡(luò)、軟件工程等的先修課程,在整個專業(yè)教學(xué)體系中占據(jù)非常重要的基礎(chǔ)地位。本課程重要介紹C++語言的基本語法規(guī)則,各種數(shù)據(jù)類型的定義、表達和使用,各種流程控制語句的定義與作用,類和對象的定義與應(yīng)用,面向過程和面向?qū)ο蟮某绦蛟O(shè)計方法等內(nèi)容。面向?qū)ο蟮乃枷胧切枰趯嵺`中不斷摸索和體會的,學(xué)生們在后續(xù)課的學(xué)習(xí)和以后的工作中要積極去運用和實踐。教學(xué)的重要目的是讓學(xué)生可以建立起思考問題的方法,指導(dǎo)以后的軟件開發(fā)實踐?,F(xiàn)將該課程考核的有關(guān)問題說明如下:1.考核對象全國電大系統(tǒng)開放教育試點計算機科學(xué)與技術(shù)專業(yè)(專科起點本科)學(xué)生。2.教學(xué)媒體文字主教材《C++面向?qū)ο蟪绦蛟O(shè)計》王萍編著清華大學(xué)出版社出版實驗教材《面向?qū)ο蟪绦蛟O(shè)計實驗》徐孝凱等編中央廣播電視大學(xué)出版社出版錄象教材16講王萍主講中央廣播電視大學(xué)音像出版社出版復(fù)習(xí)資料《面向?qū)ο蟪绦蛟O(shè)計期末復(fù)習(xí)指導(dǎo)》中央電大教育雜志社出版發(fā)行作業(yè)練習(xí)《面向?qū)ο蟪绦蛟O(shè)計形成性考核作業(yè)冊》中央電大教育雜志社出版發(fā)行網(wǎng)上輔導(dǎo)在電大在線計算機科學(xué)與技術(shù)《面向?qū)ο蟪绦蛟O(shè)計》課程網(wǎng)頁上發(fā)表3.命題依據(jù)本考核說明以電大計算機科學(xué)與技術(shù)專業(yè)《面向?qū)ο蟪绦蛟O(shè)計教學(xué)大綱》為依據(jù)編制。本考核說明是考試命題的依據(jù)。4.考核規(guī)定本課程是以實用為最終目的,重要考核學(xué)生對C++語言的掌握限度和對解決一般問題的程序設(shè)計能力。不要死記硬背,注重理解和運用??己朔譃橐韵聨讉€層次:理解:規(guī)定學(xué)生理解面向過程和面向?qū)ο蟪绦蛟O(shè)計的基本思想和方法,理解C++語言程序的基本結(jié)構(gòu),理解各種C++語法成分定義、表達和作用。應(yīng)用:規(guī)定學(xué)生可以根據(jù)所學(xué)的C++語言知識和程序設(shè)計知識,分析和理解一般的程序或函數(shù)模塊或類模塊,可以根據(jù)解決簡樸問題的規(guī)定編寫出較規(guī)范的并且可讀性好的面向過程或面向?qū)ο蟮暮瘮?shù)模塊或程序。綜合應(yīng)用:規(guī)定學(xué)生可以綜合運用多個知識點進行比較復(fù)雜的程序(函數(shù)模塊)分析和設(shè)計,考察學(xué)生綜合運用知識的能力和實際解決問題的能力。5.命題原則(1)在教學(xué)大綱和考核說明所規(guī)定的知識范圍內(nèi)命題。在教學(xué)知識范圍之內(nèi),需要靈活運用才可以解決問題的試題不屬于超綱。(2)試題的考察規(guī)定覆蓋面廣、區(qū)分度高。(3)試題兼顧各個能力層次,理解約占40%,應(yīng)用約占40%,綜合應(yīng)用約占20%。(4)試題的難易限度和題量適當(dāng),按難易限度分為四個層次:容易占20%,較易占30%,較難占30%,難占20%。題量安排以平時可以獨立完畢作業(yè)者,能在規(guī)定的考試時間內(nèi)做完并有一定期間檢查為原則。6.試題題型單項選擇題:根據(jù)題意,從四種可選擇的答案中選擇合適的一種答案。填空題:根據(jù)題意,在畫有橫線或空白處填寫合適內(nèi)容。程序填充題:根據(jù)C++程序或函數(shù)(類)模塊,及相應(yīng)的功能描述,在畫有橫線或空白處填寫合適內(nèi)容。理解問答題:根據(jù)C++程序或函數(shù)(類)模塊,回答一些問題。如寫出程序運營結(jié)果或函數(shù)調(diào)用結(jié)果,寫出程序或函數(shù)所能實現(xiàn)的功能,按題意規(guī)定指犯錯誤位置并改正。編程題:給出編程規(guī)定和函數(shù)原型,編寫出相應(yīng)的程序或函數(shù)模塊。7.考核形式:采用期末考核與形成性考核相結(jié)合的方式。形成性考核分為兩種,一種視作業(yè)完畢情況和實驗完畢情況而定,占總成績的15%;另一種為期末上機考核,占總成績的15%,完畢一個指定題目的程序開發(fā)和調(diào)試,由各省級電大在省內(nèi)統(tǒng)一命題,時間為60分鐘。期末考核占總成績的70%,為閉卷考試,由中央電大統(tǒng)一命題,時間為150分鐘??偝煽儩M分為100分,合成成績達60分及以上者可獲得該課程規(guī)定的4學(xué)分,否則不獲得該課程學(xué)分。 二、考核內(nèi)容和規(guī)定第一部分程序設(shè)計基礎(chǔ)考核目的:考核學(xué)生對C++程序結(jié)構(gòu)、程序運營過程、各種數(shù)據(jù)類型的作用、數(shù)據(jù)常量表達、表達式構(gòu)成、運算符含義、簡樸語句和復(fù)合語句格式等的掌握限度??己说闹R點:C++語言特點和程序的基本結(jié)構(gòu)。上機輸入、編輯、連接、運營一個C++程序的過程。整數(shù)、字符、實數(shù)、邏輯等標(biāo)準(zhǔn)數(shù)據(jù)類型的含義。各種常量的字面表達和符號表達,變量的定義與使用。常用運算符的表達、優(yōu)先級與結(jié)合性。表達式的分類和使用??己艘?guī)定:理解:C++語言的有關(guān)基本概念、程序結(jié)構(gòu)、數(shù)據(jù)類型的分類與作用、常量和變量的表達、運算符含義、表達式構(gòu)成與運算等內(nèi)容。應(yīng)用:可以編寫簡樸的程序,能完畢簡樸數(shù)據(jù)和表達式的輸入和輸出,能運用變量存放輸入數(shù)據(jù)、臨時數(shù)據(jù)和計算結(jié)果,能運用符號常量存放固定數(shù)據(jù),能根據(jù)數(shù)值計算和數(shù)據(jù)解決的規(guī)定選擇合適的常量或變量表達,能運用運算符進行算術(shù)、比較(即關(guān)系)和邏輯運算,能把一般數(shù)學(xué)算式、不等式或條件表達成相應(yīng)的C++表達式。第二部分流程控制語句與程序模塊的基本結(jié)構(gòu)考核目的:考核學(xué)生對各種分支語句、循環(huán)語句和跳轉(zhuǎn)類語句的理解和掌握限度,對程序模塊的順序、分支和循環(huán)這三種基本結(jié)構(gòu)的理解限度,對運用流程控制語句編寫程序解決實際問題的能力。考核的知識點:下列各種控制語句的定義格式、執(zhí)行過程與作用:if語句、switch語句、for語句、while語句、do語句、break語句、continue語句、return語句等。各種分支和循環(huán)語句互相嵌套的作用和執(zhí)行過程??己艘?guī)定:理解:各種語句的格式、執(zhí)行過程與作用,語句之間互相嵌套的概念。應(yīng)用:(1)可以分析具有if和switch分支類語句的程序模塊并給出功能或執(zhí)行結(jié)果,可以按照分支解決的規(guī)定編寫出相應(yīng)的分支程序。(2)可以分析具有for、while和do循環(huán)類語句的程序模塊并給出功能或執(zhí)行結(jié)果,可以按照循環(huán)解決的規(guī)定編寫出相應(yīng)的循環(huán)程序,如累加計算、數(shù)據(jù)記錄、求最大值、求平均值等程序。(3)可以實現(xiàn)if和switch語句之間的轉(zhuǎn)換,可以實現(xiàn)for、while和do循環(huán)語句之間的轉(zhuǎn)換。綜合應(yīng)用:運用各種流程控制語句和其他語句等已有知識進行比較復(fù)雜的程序分析與設(shè)計,如雙重或三重循環(huán)的程序分析與設(shè)計。第三部分函數(shù)考核目的:考核學(xué)生對變量作用域的理解限度,對函數(shù)定義與調(diào)用格式的掌握限度,對形式參數(shù)和實在參數(shù)的使用與結(jié)合的理解限度,對模塊化程序設(shè)計方法的掌握限度??己说闹R點:模塊化程序設(shè)計的概念,多文獻結(jié)構(gòu)的程序。函數(shù)的定義、聲明與調(diào)用格式,靜態(tài)函數(shù)的含義。函數(shù)定義中值參數(shù)、指針參數(shù)、數(shù)組參數(shù)、引用參數(shù)、常量參數(shù)的聲明格式及作用;函數(shù)中帶默認(rèn)值參數(shù)的說明與作用。函數(shù)調(diào)用中的實參與函數(shù)定義中的形參之間的結(jié)合過程。函數(shù)返回值的一般類型、指針類型和引用類型的作用。變量的作用域和生存期,靜態(tài)變量的特點。內(nèi)聯(lián)函數(shù)的定義格式及作用。遞歸函數(shù)的設(shè)計方法和調(diào)用過程。函數(shù)重載的含義和作用。函數(shù)模板的定義格式及作用??己艘?guī)定:理解:(1)模塊化程序設(shè)計與函數(shù)的關(guān)系,函數(shù)的定義格式與聲明格式,函數(shù)調(diào)用表達式的格式及執(zhí)行過程,帶默認(rèn)值參數(shù)的含義與用法。(2)全局變量、局部變量、靜態(tài)變量的含義。(3)內(nèi)聯(lián)函數(shù)和函數(shù)模板的定義與聲明格式,函數(shù)模板的實例化,重載函數(shù)的作用。應(yīng)用:(1)可以分析已知函數(shù),給出所能實現(xiàn)的功能或運營結(jié)果。(2)可以根據(jù)解決問題的需要合理地設(shè)立函數(shù)參數(shù)、函數(shù)的返回值類型以及編寫出函數(shù)體。(3)運用遞歸函數(shù)來簡化程序設(shè)計。(4)運用函數(shù)重載來優(yōu)化程序設(shè)計。(5)運用函數(shù)模板來設(shè)計可以解決任何數(shù)據(jù)類型的程序。第四部分?jǐn)?shù)組、結(jié)構(gòu)、指針和引用考核目的:考核學(xué)生對數(shù)組、字符串、結(jié)構(gòu)、指針、引用等數(shù)據(jù)類型的理解和掌握限度??己说闹R點:一維數(shù)組的概念、定義和初始化。二維及多維數(shù)組的概念、定義和初始化。一維和二維數(shù)組元素的下標(biāo)訪問方式。字符串與字符數(shù)組的區(qū)別與聯(lián)系,字符串的輸入與輸出。常用字符串函數(shù)(如strlen,strcpy,strcmp,strcat等)的調(diào)用格式與作用。結(jié)構(gòu)類型的定義格式和作用,結(jié)構(gòu)變量的定義格式和初始化。結(jié)構(gòu)成員的表達和使用。指針的概念、定義及初始化。針對指針的各種運算操作。數(shù)組名的指針含義,數(shù)組元素的下標(biāo)與指針方式的表達及轉(zhuǎn)換。數(shù)組形參與指針形參之間的等價表達與轉(zhuǎn)換。引用的定義和初始化,引用參數(shù)與值參數(shù)的區(qū)別。一般變量與數(shù)組的存儲空間的動態(tài)分派與釋放??己艘?guī)定:理解:(1)數(shù)組、字符串、結(jié)構(gòu)、指針、引用等的概念、表達和作用。(2)數(shù)組的存儲空間分派,數(shù)組元素的地址計算,數(shù)組元素的下標(biāo)訪問方式和指針訪問方式。(3)字符串的存儲格式,字符串的輸入輸出方式,字符串函數(shù)的調(diào)用。(4)數(shù)據(jù)空間的動態(tài)分派與釋放,鏈表的結(jié)構(gòu)與訪問結(jié)點的過程。應(yīng)用:(1)可以分析和設(shè)計在一維數(shù)組上的順序查找、選擇排序、插入排序等算法。(2)可以分析和設(shè)計在二維數(shù)組上的矩陣加、減、轉(zhuǎn)置、乘等運算的算法。(3)可以分析和設(shè)計運用字符串函數(shù)進行字符串解決的算法。(4)可以分析和設(shè)計動態(tài)生成的鏈表,在鏈表頭或尾插入或刪除結(jié)點的算法,以及遍歷鏈表的算法。(5)可以分析和設(shè)計對順序或鏈接表達的棧或隊列進行插入或刪除元素(結(jié)點)的算法。(6)可以使用引用類型作為函數(shù)的參數(shù)類型和返回值類型。綜合應(yīng)用:運用數(shù)組、字符串、結(jié)構(gòu)、指針、引用等數(shù)據(jù)類型進行程序設(shè)計。第五部分類與對象考核目的:考核學(xué)生對類這種復(fù)雜數(shù)據(jù)類型的理解和運用限度,對面向?qū)ο蟪绦蛟O(shè)計方法的掌握限度??己说闹R點:面向?qū)ο蟪绦蛟O(shè)計的概念。類的定義,類與結(jié)構(gòu)的區(qū)別和聯(lián)系。類成員的訪問控制與訪問方式。內(nèi)聯(lián)與非內(nèi)聯(lián)成員函數(shù)的聲明與定義。對象的生成和初始化。類的作用域。類的構(gòu)造函數(shù)與析構(gòu)函數(shù)。類的拷貝構(gòu)造函數(shù)和賦值重載函數(shù)。靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。對象成員和一般成員的初始化方式。友元函數(shù)與友元類。this指針。用數(shù)組和鏈表實現(xiàn)隊列類和棧類??己艘?guī)定:理解:(1)面向?qū)ο蟪绦蛟O(shè)計的有關(guān)概念。(2)類的定義,類成員的訪問權(quán)限,構(gòu)造函數(shù)與析構(gòu)函數(shù)的定義格式及作用。(3)靜態(tài)數(shù)據(jù)成員定義、初始化與作用,靜態(tài)函數(shù)成員的定義格式與特性。(4)友元函數(shù)和友元類的聲明與作用。應(yīng)用:(1)可以分析和設(shè)計具有簡樸類定義的程序。(2)可以使用數(shù)組或鏈表建立隊列類和棧類。綜合應(yīng)用:(1)可以根據(jù)程序規(guī)定構(gòu)造滿足規(guī)定的類。在構(gòu)造過程中充足考慮構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用、成員訪問控制的運用、內(nèi)聯(lián)函數(shù)的運用、靜態(tài)成員的選用。(2)可以根據(jù)規(guī)定構(gòu)造多個類完畢所規(guī)定的程序設(shè)計任務(wù),多個類之間可以發(fā)生一定的關(guān)系,如一個類作為另一個類的成員或友元、一個類使用另一個類的服務(wù)等。第六部分繼承與多態(tài)性考核目的:考核學(xué)生對面向?qū)ο髾C制(封裝、繼承和多態(tài))的理解和掌握限度??己说闹R點:結(jié)構(gòu)化程序設(shè)計和面向?qū)ο蟪绦蛟O(shè)計思想的不同。繼承(單繼承與多繼承)的含義,派生類的定義和使用。派生類中構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程。對派生類和基類中同名成員的訪問方式。靜態(tài)聯(lián)編與動態(tài)聯(lián)編的各自的含義和區(qū)別。靜態(tài)聯(lián)編與函數(shù)重載,動態(tài)聯(lián)編與虛函數(shù),多態(tài)性。虛基類,抽象類,純虛函數(shù)。考核規(guī)定:理解:(1)類繼承的概念和作用,派生類的定義格式。(2)派生類對基類的繼承方式,派生類對基類成員的訪問權(quán)限。(3)靜態(tài)聯(lián)編和動態(tài)聯(lián)編的含義,函數(shù)重載和虛函數(shù)的作用。應(yīng)用:(1)能分析具有派生類的程序。(2)可以根據(jù)規(guī)定構(gòu)造類的繼承層次,并完畢一定的程序設(shè)計。綜合應(yīng)用:可以運用繼承、虛函數(shù)、動態(tài)聯(lián)編(即多態(tài)性)等機制完畢面向?qū)ο蟮某绦蛟O(shè)計。第七部分運算符重載考核目的:考核學(xué)生對運算符重載的理解和掌握限度??己说闹R點:運算符重載的概念與函數(shù)定義格式。一般函數(shù)的運算符重載和成員函數(shù)的運算符重載。引用在運算符重載中的作用。作為友元函數(shù)的運算符重載。單目和雙目算術(shù)運算符的重載。增1和減1運算符的重載。插入運算符和抽取運算符的重載。圓括號運算符和中括號運算符作為成員函數(shù)的重載??己艘?guī)定:理解:(1)運算符重載的概念及作用。(2)引用在運算符重載中的作用。(3)運算符重載作為一般函數(shù)和成員函數(shù)在參數(shù)上的區(qū)別。應(yīng)用:可以分析和設(shè)計帶有運算符重載的函數(shù)或類。三、期末考核試題樣例及解答一、單項選擇(每小題1分,12小題,共12分)1.C++源程序文獻的缺省擴展名為()。A.cppB.exeC.objD.lik2.x>0||y==5的相反表達式為()。A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==53.在下面的字符數(shù)組定義中,有語法錯誤的是()。A.chara[20]=“abcdefg”;B.chara[]=“x+y=55.”;C.chara[15];D.chara[10]=’5’;4.以下對的的函數(shù)原型語句是()。A.doublefun(intx,inty)B.doublefun(intx;inty)C.doublefun(int,int);D.doublefun(intx,y);5.在下面存儲類中,()的對象不是局部變量。A.外部靜態(tài)類B.自動類C.函數(shù)形參D.寄存器類6.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book=newBOOK;”,則對的的語句是()。A.strcpy(book->title,”WangTao”);B.strcpy(book.title,”WangTao”);C.strcpy(*book.title,”WangTao”);D.strcpy((*book)->title,”WangTao”);7.軟件產(chǎn)品所具有的所有或部分地再用于新的應(yīng)用的能力稱為該軟件的()。A.可維護性B.可復(fù)用性C.兼容性D.對的性8.在多文獻結(jié)構(gòu)的程序中,通常把具有main()函數(shù)的文獻稱為()。A.主文獻B.實現(xiàn)文獻C.程序文獻D.頭文獻9.在一個用鏈表實現(xiàn)的隊列類中,假定每個結(jié)點包含的值域用elem表達,包含的指針域用next表達,鏈隊的隊首指針用elemHead表達,隊尾指針用elemTail表達,若鏈隊為空,則進行插入時必須把新結(jié)點的地址賦給()。A.elemHeadB.elemTailC.elemHead和elemTailD.elemHead或elemTail10.假定AB為一個類,則執(zhí)行“ABa,b(2),c[3],*p=&a;”語句時共調(diào)用該類無參構(gòu)造函數(shù)的次數(shù)為()。A.5B.6C.3D.411.引入友元的重要目的是為了()。A.增強數(shù)據(jù)安全性B.提高程序的可靠性C.提高程序的效率和靈活性D.保證類的封裝性12.假如是類B在類A的基礎(chǔ)上構(gòu)造,那么,就稱()。A.類A為基類或父類,類B為超類或子類B.類A為基類、父類或超類,類B為派生類或子類C.類A為派生類,類B為基類D.類A為派生類或子類,類B為基類、父類或超類二、填空(每空1分,15小題,共18分)1.C++語言是在_________語言的基礎(chǔ)上發(fā)展起來的。2.假定x=5,y=6,則執(zhí)行表達式y(tǒng)*=x++計算后,x和y的值分別為__________和__________。3.假定x是一個邏輯量,則x&&false的值為__________。4.在if語句中,每個else關(guān)鍵字與它前面同層次并且最接近的________關(guān)鍵字相配套。5.一個二維字符數(shù)組a[10][20]可以存儲________個字符串,每個字符串的長度至多為________。6.局部變量具有局部生存期,存放在內(nèi)存的____________區(qū)中。7.假定p所指對象的值為25,p+1所指對象的值為42,則執(zhí)行*(p++)或*p++運算后,p所指對象的值為________。8.已知語句“cout<<s;”的輸出是“apple”,則執(zhí)行語句“cout<<s+2;”的輸出結(jié)果為__________。9.面向?qū)ο筌浖_發(fā)的生命周期分為三個階段,即分析、__________和__________。10.若采用p->abc(y)表達式調(diào)用一個成員函數(shù),在成員函數(shù)中使用的________就代表了類外的p指針。11.當(dāng)用戶為一個類定義有____________時,則系統(tǒng)不會為該類再自動生成一個默認(rèn)構(gòu)造函數(shù)。12.假定用戶為類AB定義了一個構(gòu)造函數(shù)"AB(intaa,intbb):a(aa),b(bb){}",則定義該類的對象時,有________種定義格式。13.假定用戶只為類AB定義了一個構(gòu)造函數(shù)"AB(intaa,intbb=0){a=aa;b=bb;}",則定義該類的對象時,其實參表中至少帶有_________個實參。14.在重載一個單目運算符時,參數(shù)表中沒有參數(shù),說明該運算符函數(shù)只能是類的_____________。15.若要保證一個公共的基類在派生類中只產(chǎn)生一個基類子對象,則必須都以____________的方式繼承它。三、程序填充。對程序、函數(shù)或類中劃有橫線的位置,根據(jù)題意按標(biāo)號把合適的內(nèi)容填寫到程序下面相應(yīng)標(biāo)號的后面(每小題6分,3小題,共18分)1.把從鍵盤上輸入的一個大于等于3的整數(shù)分解為質(zhì)因子的乘積。如輸入24時得到的輸出結(jié)果為“2223”,輸入50時得到的輸出結(jié)果為“255”,輸入37時得到的輸出結(jié)果為“37”。#include<iostream.h>voidmain(){ intx; cout<<"請輸入一個整數(shù),若小于3則重輸:"; docin>>x;while(___(1)___); inti=2; do{ while(___(2)___){ cout<<i<<''; x/=i; } ___(3)___; }while(i<x); if(x!=1)cout<<x; cout<<endl;}(1)(2)(3)2.假定有定義為“structNODE{intdata;NODE*next;};”,下面算法根據(jù)table數(shù)組中的n個元素建立一個表頭指針為L的鏈表,鏈表中結(jié)點值的順序與數(shù)組元素值的順序正好相反。voidf6(NODE*&L,inttable[],intn){ L=NULL; if(n<=0)return; inti=0; NODE*p; while(___(1)___){ p=newNODE; p->data=___(2)___; p->next=L; ___(3)___; i++; }}(1)(2)(3)3.已知一個運用數(shù)組實現(xiàn)棧的類定義如下:constintARRAY_SIZE=10;classStack{public: voidInit(){top=-1;}//初始化棧為空voidPush(intnewElem);//向棧中壓入一個元素 intPop();//從棧頂彈出一個元素 boolEmpty(){//判??誶eturntop==-1;} intDepth(){returntop+1;}//返回棧的深度 voidPrint();//按照后進先出原則依次輸出棧中每個元素,//直到??諡橹筽rivate: intelem[ARRAY_SIZE];//用于保存棧元素的數(shù)組 inttop;//指明棧頂元素位置的指針};voidStack::Push(intnewElem){ if(___(1)___){ cout<<"棧滿!"<<endl; exit(1);//中止運營 } ___(2)___; elem[top]=___(3)___;}(1)(2)(3)四、寫出程序或程序段的運營結(jié)果(每小題6分,3小題,共18分)1.#include<iostream.h>voidmain(){intx=5; switch(2*x-3){ case4:cout<<x<<’’; case7:cout<<2*x+1<<’’; case10:cout<<3*x-1<<’’;break; default:cout<<"default"<<endl; } cout<<"switchend."<<endl;}2.#include<iostream.h>voidmain(){ inti,j,len[3]; chara[3][8]={"year","month","day"}; for(i=0;i<3;i++){ for(j=0;j<8;j++) if(a[i][j]=='\0'){ len[i]=j;break; } cout<<a[i]<<":"<<len[i]<<endl; }}3.#include<iostream.h>#include<string.h>classPoint{ intx,y;public: Point(intx1=0,inty1=0):x(x1),y(y1){ cout<<"Point:"<<x<<''<<y<<'\n'; } ~Point(){ cout<<"Pointdes!\n"; }};classText{chartext[100]; //文字內(nèi)容public: Text(char*str){strcpy(text,str);cout<<"Textcon!\n"; } ~Text() {cout<<"Textdes!\n";}};classCircleWithText:publicPoint,publicText{public: CircleWithText(intcx,intcy,char*msg): Point(cx,cy),Text(msg){ cout<<"PointwithTextcon!\n"; } ~CircleWithText(){cout<<"PointwithTextdes\n";}};voidmain(){ CircleWithTextcm(3,4,"hello"); }五、指出程序或函數(shù)的功能(每小題6分,2小題,共12分)1.doublef1(doublea,doubleb,charop){ switch(op){ case’+’:returna+b; case’-’:returna-b; case’*’:returna*b; case’/’:if(b==0){ cout<<"dividedby0!"<<endl; exit(1); } elsereturna/b; default:cout<<"operatorerror!"<<endl; exit(1); }}功能:2.IntNode*FindMax(IntNode*f){ if(!f)returnNULL; IntNode*p=f; f=f->next; while(f){ if(f->data>p->data)p=f; f=f->next; } returnp;}假定IntNode的類型定義為:structIntNode{ intdata;//結(jié)點值域 IntNode*next;//結(jié)點指針域};功能:六、程序改錯。請根據(jù)程序或函數(shù)模塊的功能改寫個別地方的錯誤(每小題6分,共6分)。在下面的定義中,NODE是鏈表結(jié)點的結(jié)構(gòu),appendToList則是一函數(shù),其功能是:在list所指向的鏈表的末尾添加一個新的值為x的結(jié)點,并返回表頭指針。函數(shù)中有兩處錯誤,指犯錯誤所在行的行號并提出改正意見。structNODE{intdata;NODE*next;};NODE*appendToList(NODE*list,intx){//1行NODE*p=newint;//2行p->data=x;//3行p->next=NULL;//4行if(list==NULL)returnp;//5行NODE*p1=list;//6行while(p1->next!=NULL)p1=p1->next;//7行p1=p;//8行returnlist;}錯誤行的行號為______和________。分別改正為______________和______________。七、編程(每小題8分,2小題,共16分)1.編一程序求出滿足不等式的最小n值并輸出。2.根據(jù)下面類中MaxMin函數(shù)成員的原型和注釋寫出它的類外定義。classAA{ int*a; intn; intMS;public: voidInitAA(intaa[],intnn,intms){ if(nn>ms){cout<<"Error!"<<endl;exit(1);} MS=ms; n=nn; a=newint[MS]; for(inti=0;i<MS;i++)a[i]=aa[i]; }intMaxMin(int&x,int&y);//從數(shù)組a的前n個元素中求出//最大值和最小值,并分別由引用參數(shù)x和y帶回,//同時若n大于0則返回1,否則返回0。};試題參考解答:一、單項選擇1.A2.B3.D4.C5.A6.A7.B8.A9.C10.D11.C12.B二、填空1.C2.630

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論