2026年程序設(shè)計挑戰(zhàn)題庫C與Python語言實踐_第1頁
2026年程序設(shè)計挑戰(zhàn)題庫C與Python語言實踐_第2頁
2026年程序設(shè)計挑戰(zhàn)題庫C與Python語言實踐_第3頁
2026年程序設(shè)計挑戰(zhàn)題庫C與Python語言實踐_第4頁
2026年程序設(shè)計挑戰(zhàn)題庫C與Python語言實踐_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

2026年程序設(shè)計挑戰(zhàn)題庫:C++與Python語言實踐C++語言實踐題(共5題,總分25分)第1題(基礎(chǔ)編程題,5分)題目:編寫一個C++函數(shù),實現(xiàn)將一個字符串中的所有小寫字母轉(zhuǎn)換為大寫字母。函數(shù)原型如下:cppvoidtoUpperCase(std::string&str);要求:1.不能使用標(biāo)準(zhǔn)庫中的`toupper()`函數(shù)。2.示例輸入輸出:-輸入:`"HelloWorld!"`-輸出:`"HELLOWORLD!"`第2題(算法設(shè)計題,6分)題目:給定一個無重復(fù)元素的整數(shù)數(shù)組`nums`和一個目標(biāo)值`target`,請設(shè)計一個C++函數(shù),找出數(shù)組中和為目標(biāo)值的所有整數(shù)對,并以二維向量形式返回結(jié)果。函數(shù)原型如下:cppstd::vector<std::vector<int>>findPairs(conststd::vector<int>&nums,inttarget);要求:1.時間復(fù)雜度不超過O(n)。2.示例輸入輸出:-輸入:`nums={1,2,3,4,5}`,`target=7`-輸出:`{{2,5},{3,4}}`第3題(面向?qū)ο缶幊填},6分)題目:設(shè)計一個`Employee`類,包含以下屬性和方法:1.屬性:`name`(字符串)、`salary`(浮點數(shù))、`department`(字符串)。2.方法:-構(gòu)造函數(shù):初始化所有屬性。-`displayInfo()`:打印員工信息(格式:`"Name:[name],Salary:[salary],Department:[department]"`)。3.額外要求:-為`salary`屬性添加私有化保護,并提供`setSalary(doublenewSalary)`方法修改其值。測試要求:cppintmain(){Employeeemp("Alice",5000.0,"HR");emp.displayInfo();//輸出:Name:Alice,Salary:5000,Department:HRemp.setSalary(5500.0);emp.displayInfo();//輸出:Name:Alice,Salary:5500,Department:HRreturn0;}第4題(異常處理題,4分)題目:編寫一個C++函數(shù),用于計算兩個整數(shù)的商。如果除數(shù)為0,則拋出`std::invalid_argument`異常,異常信息為`"Divisionbyzero"`。函數(shù)原型如下:cppintdivide(inta,intb);要求:1.在`main`函數(shù)中調(diào)用該函數(shù),并捕獲異常,打印異常信息。2.示例代碼:cppinclude<stdexcept>intmain(){try{divide(10,0);}catch(conststd::invalid_argument&e){std::cout<<e.what()<<std::endl;//輸出:Divisionbyzero}return0;}第5題(文件操作題,4分)題目:編寫一個C++程序,讀取當(dāng)前目錄下名為`input.txt`的文件,并將文件內(nèi)容中的所有數(shù)字提取出來,存儲到另一個文件`output.txt`中。文件操作需使用`std::fstream`。要求:1.輸入文件示例:`"Hello123,World456!"`2.輸出文件內(nèi)容:`"123456"`Python語言實踐題(共5題,總分25分)第1題(基礎(chǔ)編程題,4分)題目:編寫一個Python函數(shù),接收一個字符串列表,返回一個新列表,其中包含所有字符串的長度。函數(shù)原型如下:pythondefstring_lengths(strings):pass要求:1.示例輸入輸出:-輸入:`["hello","world","python"]`-輸出:`[5,5,6]`第2題(數(shù)據(jù)結(jié)構(gòu)題,6分)題目:給定一個嵌套列表(例如`[[1,2],[3,4],[5,6]]`),請編寫一個Python函數(shù),將所有子列表的元素合并到一個扁平列表中。函數(shù)原型如下:pythondefflatten_list(nested_list):pass要求:1.示例輸入輸出:-輸入:`[[1,2],[3,4],[5,6]]`-輸出:`[1,2,3,4,5,6]`第3題(面向?qū)ο缶幊填},6分)題目:設(shè)計一個`Car`類,包含以下屬性和方法:1.屬性:`make`(字符串)、`model`(字符串)、`year`(整數(shù))、`odometer`(浮點數(shù),初始為0)。2.方法:-構(gòu)造函數(shù):初始化所有屬性。-`drive(distance)`:增加`odometer`的值,并返回新的里程數(shù)。-`get_info()`:返回車輛信息(格式:`"Make:[make],Model:[model],Year:[year],Odometer:[odometer]"`)。測試要求:pythoncar=Car("Toyota","Corolla",2020,10000.0)car.drive(150.0)print(car.get_info())#輸出:Make:Toyota,Model:Corolla,Year:2020,Odometer:10150.0第4題(函數(shù)式編程題,4分)題目:編寫一個Python函數(shù),接收一個整數(shù)列表,返回一個新列表,其中包含所有偶數(shù)的平方。函數(shù)原型如下:pythondefeven_square(numbers):pass要求:1.使用列表推導(dǎo)式實現(xiàn)。2.示例輸入輸出:-輸入:`[1,2,3,4,5,6]`-輸出:`[4,16,36]`第5題(文件操作題,5分)題目:編寫一個Python程序,讀取當(dāng)前目錄下名為`data.txt`的文件,并將每行文本中的所有單詞首字母大寫。輸出結(jié)果保存到`output.txt`中。要求:1.輸入文件示例:helloworldpythonisgreat2.輸出文件內(nèi)容:HelloWorldPythonIsGreat答案與解析C++語言實踐題答案與解析第1題答案與解析代碼:cppvoidtoUpperCase(std::string&str){for(char&c:str){if(c>='a'&&c<='z'){c-=32;//小寫轉(zhuǎn)大寫:'a'-'A'=32}}}解析:-遍歷字符串的每個字符,判斷是否為小寫字母(ASCII碼在`'a'`到`'z'`之間)。-若是小寫字母,則減去32轉(zhuǎn)換為對應(yīng)的大寫字母。-使用`&`引用傳遞,直接修改原字符串。第2題答案與解析代碼:cppinclude<unordered_map>std::vector<std::vector<int>>findPairs(conststd::vector<int>&nums,inttarget){std::vector<std::vector<int>>result;std::unordered_map<int,int>complements;//存儲數(shù)字及其索引for(inti=0;i<nums.size();++i){intcomplement=target-nums[i];if(complements.find(complement)!=complements.end()){result.push_back({complement,nums[i]});}complements[nums[i]]=i;}returnresult;}解析:-使用哈希表存儲遍歷過程中的數(shù)字及其索引,以O(shè)(1)時間復(fù)雜度查找補數(shù)。-遍歷數(shù)組時,計算`target-nums[i]`,若該補數(shù)已存在于哈希表中,則返回一對數(shù)字。-時間復(fù)雜度:O(n),空間復(fù)雜度:O(n)。第3題答案與解析代碼:cppclassEmployee{private:std::stringname;doublesalary;std::stringdepartment;public:Employee(conststd::string&n,doubles,conststd::string&dept):name(n),salary(s),department(dept){}voidsetSalary(doublenewSalary){salary=newSalary;}voiddisplayInfo()const{std::cout<<"Name:"<<name<<",Salary:"<<salary<<",Department:"<<department<<std::endl;}};解析:-`salary`屬性設(shè)為私有,防止外部直接修改。-提供公共的`setSalary`方法以安全地更新`salary`。-`displayInfo`方法使用`const`防止修改對象狀態(tài)。第4題答案與解析代碼:cppinclude<stdexcept>intdivide(inta,intb){if(b==0){throwstd::invalid_argument("Divisionbyzero");}returna/b;}解析:-判斷除數(shù)是否為0,若為0則拋出`std::invalid_argument`異常。-異常信息自定義為`"Divisionbyzero"`,便于調(diào)試。-在`main`函數(shù)中捕獲異常并打印信息。第5題答案與解析代碼:cppinclude<fstream>include<cctype>intmain(){std::fstreamfin("input.txt",std::ios::in);std::fstreamfout("output.txt",std::ios::out);if(!fin||!fout){std::cerr<<"Fileerror"<<std::endl;return1;}charch;while(fin>>ch){if(std::isdigit(ch)){fout<<ch;}}fin.close();fout.close();return0;}解析:-使用`std::fstream`同時打開輸入和輸出文件。-遍歷輸入文件每個字符,若為數(shù)字則寫入輸出文件。-關(guān)閉文件流以確保數(shù)據(jù)完整。Python語言實踐題答案與解析第1題答案與解析代碼:pythondefstring_lengths(strings):return[len(s)forsinstrings]解析:-使用列表推導(dǎo)式遍歷每個字符串并返回其長度。-示例輸入輸出:`string_lengths(["hello","world","python"])`→`[5,5,6]`。第2題答案與解析代碼:pythondefflatten_list(nested_list):result=[]foriteminnested_list:ifisinstance(item,list):result.extend(flatten_list(item))#遞歸處理子列表else:result.append(item)returnresult解析:-使用遞歸處理嵌套列表,若當(dāng)前項是列表則繼續(xù)遞歸,否則添加到結(jié)果中。-示例輸入輸出:`flatten_list([[1,2],[3,4],[5,6]])`→`[1,2,3,4,5,6]`。第3題答案與解析代碼:pythonclassCar:def__init__(self,make,model,year,odometer=0.0):self.make=makeself.model=modelself.year=yearself.odometer=odometerdefdrive(self,distance):self.odometer+=distancereturnself.odometerdefget_info(self):returnf"Make:{self.make},Model:{self.model},Year:{self.year},Odometer:{self.odometer}"解析:-構(gòu)造函數(shù)初始化所有屬性,`odometer`默認(rèn)為0.0。-`drive`方法增加里程數(shù)并返回新值。-`get_info`方法返回格式化的車輛信息。第4題答案與解析代碼:pythondefeven_square(numbers):return[x2forxinnumbersifx%2==0]解析:-列表推導(dǎo)式中包含兩個條件:篩選偶數(shù)(`x%2==0`)和計算平方(`x2`)。-示例輸入輸出:`even_square([1,2,3,4,5,6])`→`[4,16,36]`。第5題答案與解析代碼:pythonwithopen("data.txt",

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論