2025年C語(yǔ)言程序設(shè)計(jì)期末考試試題含答案_第1頁(yè)
2025年C語(yǔ)言程序設(shè)計(jì)期末考試試題含答案_第2頁(yè)
2025年C語(yǔ)言程序設(shè)計(jì)期末考試試題含答案_第3頁(yè)
2025年C語(yǔ)言程序設(shè)計(jì)期末考試試題含答案_第4頁(yè)
2025年C語(yǔ)言程序設(shè)計(jì)期末考試試題含答案_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2025年C語(yǔ)言程序設(shè)計(jì)期末考試試題含答案一、單項(xiàng)選擇題(每小題2分,共20分)1.以下選項(xiàng)中,合法的C語(yǔ)言字符常量是()。A.'\x41'B.'\108'C.'ab'D.'\0x20'2.若inta=5,b=3;則表達(dá)式(a=3,b=a+2,a+b)的結(jié)果是()。A.3B.5C.8D.103.若有定義intarr[]={10,20,30,40},p=arr;則執(zhí)行p+=2;后,p的值為()。A.10B.20C.30D.404.以下關(guān)于函數(shù)參數(shù)傳遞的描述中,正確的是()。A.實(shí)參和形參占用不同的內(nèi)存單元B.實(shí)參和形參必須類型相同C.傳遞數(shù)組時(shí),形參會(huì)復(fù)制整個(gè)數(shù)組D.指針作為參數(shù)時(shí),無(wú)法修改實(shí)參的值5.若有定義charstr[]="hello",p=str;則以下操作合法的是()。A.str++B.p++C.str=pD.str=p6.若有結(jié)構(gòu)體定義:structTest{charc;intnum;doubled;};則sizeof(structTest)的結(jié)果是()(假設(shè)int占4字節(jié),double占8字節(jié),內(nèi)存對(duì)齊按8字節(jié))。A.13B.16C.24D.87.以下預(yù)處理指令中,正確的是()。A.defineMAX(a,b)(a)>(b)?(a):(b)B.defineMAX100;C.include"stdio.h"D.if3>2printf("ok");endif8.若要?jiǎng)討B(tài)分配10個(gè)int類型的內(nèi)存空間,正確的語(yǔ)句是()。A.intp=(int)malloc(10)B.intp=(int)calloc(10,sizeof(int))C.intp=(int)malloc(10int)D.intp=(int)calloc(sizeof(int),10)9.執(zhí)行以下代碼段,循環(huán)執(zhí)行的次數(shù)是()。inti=5;do{i--;}while(i>2);A.1次B.2次C.3次D.4次10.若要以讀寫方式打開一個(gè)二進(jìn)制文件,且文件不存在時(shí)創(chuàng)建,正確的打開方式是()。A."r+b"B."w+b"C."a+b"D."rb+"二、填空題(每小題3分,共15分)1.若inti=2,j=3;則表達(dá)式(i++)+(++j)的值為______,執(zhí)行后i=______,j=______。2.若有定義intarr[]={10,20,30,40},p=arr;則執(zhí)行p++后,p的值為______;執(zhí)行(p+2)后,結(jié)果為______。3.已知遞歸函數(shù)定義:intf(intn){if(n==0)return1;elsereturnnf(n-1);}則f(5)的返回值是______。4.若有定義charstr[]="C\0Language";則sizeof(str)的值為______,strlen(str)的值為______。5.若有結(jié)構(gòu)體定義:structStudent{intid;charname[20];floatscore;};structStudents={101,"LiMing",85.5},p=&s;則訪問(wèn)s的score成員的兩種方式是______和______。三、程序分析題(每小題8分,共24分)1.寫出以下程序的運(yùn)行結(jié)果。include<stdio.h>intmain(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=2i-1;j++)printf("");printf("\n");}return0;}2.寫出以下程序的運(yùn)行結(jié)果。include<stdio.h>voidswap(inta,intb){inttemp=a;a=b;b=temp;}intmain(){intx=5,y=10;swap(&x,&y);printf("x=%d,y=%d\n",x,y);return0;}3.寫出以下程序的運(yùn)行結(jié)果。include<stdio.h>include<string.h>intmain(){charstr[]="abacdefa";intcount=0,i;for(i=0;str[i]!='\0';i++){if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')count++;}printf("Vowelcount:%d\n",count);return0;}四、編程題(每小題15分,共45分)1.編寫一個(gè)函數(shù),計(jì)算組合數(shù)C(n,k),其中n≥k≥0。要求分別用遞歸和迭代兩種方法實(shí)現(xiàn),若輸入k>n則返回0。2.編寫程序,實(shí)現(xiàn)字符串去重功能:輸入一個(gè)字符串(長(zhǎng)度不超過(guò)100),去除其中重復(fù)的字符,僅保留第一次出現(xiàn)的字符。例如,輸入"aabbcdeef",輸出"abcdef"。3.編寫程序,實(shí)現(xiàn)學(xué)提供績(jī)管理功能:定義結(jié)構(gòu)體Student(包含學(xué)號(hào)id、姓名name、成績(jī)score),從文件"input.txt"中讀取5名學(xué)生的信息(每行一個(gè)學(xué)生,格式為:idnamescore),按成績(jī)從高到低排序后,將結(jié)果寫入文件"output.txt"。答案一、單項(xiàng)選擇題1.A2.B3.C4.A5.B6.B7.A8.B9.B10.B二、填空題1.6;3;42.20;403.1204.10;1(注:'\0'是字符串結(jié)束符,strlen計(jì)算到'\0'前,故為1)5.s.score;p->score三、程序分析題1.運(yùn)行結(jié)果:(解析:外層循環(huán)4次,內(nèi)層第一個(gè)循環(huán)打印空格數(shù)為4-i,第二個(gè)循環(huán)打印星號(hào)數(shù)為2i-1,形成金字塔形。)2.運(yùn)行結(jié)果:x=10,y=5(解析:swap函數(shù)通過(guò)指針交換x和y的地址內(nèi)容,主函數(shù)中x和y的值被交換。)3.運(yùn)行結(jié)果:Vowelcount:3(解析:字符串"abacdefa"中的元音字母為a(第0位)、a(第2位)、e(第5位),共3個(gè)。)四、編程題1.參考代碼:```c//遞歸法intcomb_recursive(intn,intk){if(k<0||k>n)return0;if(k==0||k==n)return1;returncomb_recursive(n-1,k-1)+comb_recursive(n-1,k);}//迭代法(利用組合數(shù)公式C(n,k)=n!/(k!(n-k)!))intcomb_iterative(intn,intk){if(k<0||k>n)return0;if(k>n-k)k=n-k;//減少計(jì)算次數(shù)intres=1;for(inti=1;i<=k;i++){res=res(n-k+i)/i;}returnres;}```2.參考代碼:```cinclude<stdio.h>include<string.h>voidremove_duplicate(charstr){intlen=strlen(str);if(len==0)return;intindex=0;//記錄新字符串的長(zhǎng)度intvisited[256]={0};//標(biāo)記字符是否已出現(xiàn)(ASCII范圍0-255)for(inti=0;i<len;i++){if(!visited[(unsignedchar)str[i]]){str[index++]=str[i];visited[(unsignedchar)str[i]]=1;}}str[index]='\0';//結(jié)束字符串}intmain(){charstr[101];printf("請(qǐng)輸入字符串:");fgets(str,sizeof(str),stdin);str[strcspn(str,"\n")]='\0';//去除換行符remove_duplicate(str);printf("去重后的字符串:%s\n",str);return0;}```3.參考代碼:```cinclude<stdio.h>include<stdlib.h>include<string.h>structStudent{intid;charname[20];floatscore;};//比較函數(shù)(用于qsort,降序排序)intcompare(constvoida,constvoidb){structStudents1=(structStudent)a;structStudents2=(structStudent)b;if(s1->score<s2->score)return1;//降序elseif(s1->score>s2->score)return-1;elsereturn0;}intmain(){structStudentstudents[5];FILEin=fopen("input.txt","r");if(in==NULL){printf("無(wú)法打開輸入文件!\n");return1;}//讀取學(xué)生信息for(inti=0;i<5;i++){if(fscanf(in,"%d%s%f",&students[i].id,students[i].name,&students[i].score)!=3){printf("讀取數(shù)據(jù)失??!\n");fclose(in);return1;}}fclose(in);//按成績(jī)排序qsort(students,5,sizeof(structStudent),compare);//寫入輸出文件FILEout=fopen("output.txt","w");if(out=

溫馨提示

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

評(píng)論

0/150

提交評(píng)論