




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
云南大學軟件學院904計算機程序設計[專業碩士]歷年考研真題匯編邵THROUGHTRR/N邵THROUGHTRR/N最新資料,WORD格式,可編輯修改!TOC\o"1-5"\h\z第一部分歷年考研真題匯編 32010年云南大學軟件學院842計算機程序設計[專業碩士]考研真題 32007年云南大學軟件學院840計算機程序設計[專業碩士]考研真題 10第二部分兄弟院校真題匯編 192014年中央財經大學信息學院805c語言程序設計考研真題 192013年中央財經大學信息學院805c語言程序設計考研真題 332012年中央財經大學信息學院817c語言程序設計考研真題 452011年中央財經大學信息學院807c語言程序設計考研真題 60說明:2007年云南大學計算機程序設計[專業碩士]科目代碼是840,2010年科目代碼是842。2016年科目代碼是904,本書已此為準。此外,本書還收錄了4套兄弟院校C語言程序設計考研真題。第一部分歷年考研真題匯編2010年云南大學軟件學院842計算機程序設計[專業碩士]考研真題云南大學2010年招收攻讀碩士學位研究生入學考試自命題科目試題(考生特別注意:全部答案必須寫在答題紙上,否則后果自負1)考試科目名稱:計算機程序設計 考試科目代碼,842ー、填空題(共10也,每題4分,共40分).在程序運行過程中不能擴充的數組是 ,分配的數組.這種數組在聲明它時必須指定它的大小.在程序運行過程中可以擴充的數組是分配的數組?這種數組在聲明它時必須使用數組指針..若設率S二?docunentHash.doc\0".則該字符串S的長度為.INDEX(4DATASTRVCTURE,,,STR,)=.3,假定一株三叉樹(即度為3的樹)的結點個敗為5〇.則它的最小髙度為.假定根結點的髙度為〇.在ー棵髙度為3的四叉樹中,最多含有結點..在ー個無向圖中,所有頂點的度數之和等于所有邊數一倍,在ー個有向圖中,所有頂點的入度之和等于所有頂點出度之和的 倍..對于ー個具有n個頂點e條邊的無向圖的鄰接表的表示,則表頭向量大小為,鄰接表的邊結點個數為,.設有一個二緡數組A[10][20],A[〇][〇]的存儲地址是200,毎個數姐元素占1個存儲字,若按行存放了一個連續的存儲空間中,則AI6M2]的地址為;若按列存放于一個連續的存儲空向中,則A[6][2]的地址為.7?在ー揀髙度為h的具有n個元素的ニ叉捜索樹中,捜索所有元素的搜索長度中?大的為,最小的為..若一個棧以向量V[l..n]存儲,初始棧頂指針top為n+1,則下面x進棧的正確操作JL,?.在雙向循環鏈表中,向p所指的結點之后插入指針f所指的結點,其操作是fつnext=p->next、 、 ハp->next=f..根據餞性表的鏈式存儲結構中毎ー個結點包含的指針個數,將線性鏈表分成 和?二、選界適《共5題,每題4分,共20分).對于兩個函數,若函數名相同,但只是(①)不同則不是重載函數?若需要利用形參直接訪向實參,則應把形參變量說明為(②)參數.①A.參數類型 B.參數個數 C.函數類型②A,指針 B.引用 C.傳值 D.常值.字符串可定義為nS20)個字符的有限(①),其中,n是字符串的長度,表明字符串中字符的個數.設有兩個串t和P,求p在t中首次出現的位置的運算叫做(②).①&集合 B,數列 C,序列 D,聚合②A.求子串 B,模式匹配 C.申替換 D.串連接.不帶頭結點的單鏈表firsi為空的判定條件是《①,帶頭站點的單懐衰first為空的判定條件是(②)?①A. first?=NULL; B. first->link== NULL;C. first->link= first; D. first!=NULL;②A. firs!エNULL; B. first->link= NULL;C. first->link- first; D. first!=NULL:.遞歸是將一個較復雜的(規模較大的)問題轉化為ー個稍為彷単的(規模較小的)與原問題(①)的問題來解決,使之比原問題更靠近可直接求解的條件.遞歸調用時系統需要利用ー個(②)來實現數據的傳遞和控制的轉移.①A,相關 B.子類型相關 C.同類型 D.不相關②M隊列 B.優先級隊列 C,雙戰隊列 D.極.已知一櫟樹的邊集表示為{<A,B>,くんC>.<B,D>,<C,E>,<C,F>,<C,G>,<F,H>,<F,I>|,則該樹的髙度為(①)?假定根結點的髙度為0.在ー棵ニ叉樹的ニ叉鏈表中,空指針域數等于非空指針城數加(②)?A.2 B. 1 C.0 D.-1A.2 B. 3 C.4 D.5三、閣答遺(共4翹,毎國10分,共40分).針對如下算法,回答問題:(1)若數組A[]?{12,24,0.38,0,0,0,0,29,0,45,0),n匸12,給出算法執行后敷組A[]的狀態,(2)說明算法的功能是什么.templateくclassT>voidunknown(TA[],intn)(intfree=0;for(intis0:iくn;iz)if(A[i]0)(if(i!sfree){A(free]■A[i];A[i]?0:}free++:.設S為ー個長度為8的字符率,其中的字符各不相同,則給出S中的互異的非平凡子串(非空H不同于S本身)的個數?其中空串是任意串的子申?.若設単鏈式結點的結構為しistNode三(data,link),閱讀以下函數:intunknown(ListXode*Ha){〃旭為指向帶表頭結點的単鏈表的表頭指針.intn=0:List、。de*p=Ha->link;while(p!=NULL)InFp?p->1ink;}.returnn:)若用単鏈表表示的找性表為L=(%b,c,d,e,f,g),其表頭指針為L,則執行語句unknown(L)之后輪出的結果是什么..設持排序的記錄共7個,持序碼分別為8,3,2,5,9,1,6.采用直接插入排序,試以排序碼序列的變化描述形式說明排序全過程(動態過程)?要求按遞減順序排序.四、程序設計題(共2題,每題25分,共50分).編寫ー個算法frequency,統計在ー個輸入字符東中各個不同字符出現的頻度?算法返回兩個數組:A[]記錄字符串中有多少種不同的字符,C[]記錄毎ー種字符的出現次數.此外,還要返回不同字符敷?.編寫ー算法,實現逆轉以firsi為表頭指針的単鏈表,2007年云南大學軟件學院840計算機程序設計[專業碩士]考研真題云南大學2007年招收攻讀碩士學位研究生
入學考試自命題科目試題(考生注意:全部答案必須寫在答題紙上,否則后果自負!)考試科目名稱:計算機程序設計(A) 考試科目代碼:840ー、填空題(共n題,每空2分,共40分)1.若不考慮基數排序,則在排序過程中,主要進行的兩種基本操作是關鍵字的和記錄的02..INDEX('DATASTRUCTURE','STR')=ゝ3.由3個結點可以構造出多少種不同的ニ叉樹??4,在ー個無向圖中,所有頂點的度數之和等于所有邊數倍,在ー個有向圖中,所有頂點的入度之和等于所有頂點出度之和的 倍。.對于ー個具有n個頂點e條邊的無向圖的鄰接表的表示,則表頭向量大小為,鄰接表的邊結點個數為〇.假設以行序為主序存儲二維數組ん強門^丫[1..100,1..100J,設每個數據元素占2個存儲單元,基地址為10,則A[5,5]的存儲地址為 〇.在有n個選手參加的單循環賽中,總共將進行場比賽。.若一個枝以向量V[L.n]存儲,初始棧頂指針top為n+1,則下面x進棧的正確操作是,0.循環隊列存儲在數組A[0..m]中,則入隊時的操作為〇.根據線性表的鏈式存儲結構中每一個結點包含的指針個數,將線性鏈表分成和,而又根據指針的連接方式,鏈表又可分成和〇.在雙向循環鏈表中,向P所指的結點之后插入指針f所指的結點,其操作是ヽヽヽp->next=fo二、選擇題(共10題,每空2分,共20分).設ー個鏈表最常用的操作是在末尾插入結點和刪除尾結點,則選用( )最節省時間。A.單鏈表B.單循環鏈表 C.帶尾指針的單循環鏈表 D.帶頭結點的雙循環鏈表.無向圖G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d))?對該圖進行深度優先遍歷,得到的頂點序列正確的是()〇A.a,b,e,c,d,fB.a,c,f,e,b,d C.a,e,b,c,f,dD.a,e,d,f,c,b.設有三個元素X,Y,Z順序進棧(進的過程中允許出棧),下列得不到的出棧排列是()〇A.XYZ B.YZX C.ZXY D.ZYX.對ニ叉樹的結點從1開始進行連續編號,要求每個結點的編號大于其左、右孩子的編號,同一結點的左右孩子中,其左孩子的編號小于其右孩子的編號,可采用( )次序的遍歷實現編號。A.先序 B.中序 C.后序 D.從根開始按層次遍歷.ー組記錄的關鍵碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個記錄為基準得到的一次劃分結果為()〇A.(38,40,46,56,79,84) B.(40,38,46,79,56,84)C.(40,38,46,56,79,84) D.(40,38,46,84,56,79).執行下面程序段時,執行S語句的次數為( )。for(inti=1;i<=n;i++)サジfor(intj=1;j<=i;j++)S;A.n2 B.n2/2 C.n(n+l) D.n(n+l)/2.如果將所有中國人按照生日(不考慮年份,只考慮月、日)來排序,那么使用下列排序算法中( )算法最快。A.歸并排序 B,希爾排序C.快速排序 D.基數排序.下面關于線性表的敘述中,錯誤的是哪ー個?( )A.線性表采用順序存儲,必須占用一片連續的存儲單元。B.線性表采用順序存儲,便于進行插入和刪除操作。C.線性表采用鏈接存儲,不必占用一片連續的存儲單元。D.線性表采用鏈接存儲,便于插入和刪除操作。.設有一個nxn的對稱矩陣A,將其下三角部分按行存放在ー個ー維數組B中,A[0]⑼存放于B[0]中,那么第i行的對角元素存放于B中( )處。A.(i+3)*i/2 B.(i+l)*i/2C.(2n-i+l)*i/2D.(2n-i-l)*i/2.下列算法中( )算法不具有這樣的特性:對某些輸入序列,可能不需要移動數據對象即可完成排序。A.起泡排序 B,希爾排序C.快速排序 D,直接選擇排序三、簡答題(共4題,每題15分,共60分).對有14個元素的有序表A[1…14]作折半査找,當比較到A[4]時算法結束。被比較元素除A[4]外,還有哪幾個?(15分).已知一棵ニ叉樹的前序遍歷結果為ABCDEF,中序遍歷結果為CBAEDF,請寫出后序遍歷的結果。(15分).設nn均為自然數,m可表示為ー些不超過n的自然數之和,f(m,n)為這種表示方式的數目。例f(5,3)=5,有5種表示方式:3+2,3+1+1,2+2+1,2+1+1+1,l+1+l+l+lo(15分)①以下是該函數的程序段,請將未完成的部分填入,使之完整intf(m,n)intm,n;{if(m=l)TOC\o"1-5"\h\zreturn(1) ;if(n=l){return(2) ;}if(m<n){returnf(m,m);}if(nF=n){return1+(3) ;1returnf(m.n-l)+f(m-n,(4) );}②執行程序,f(6,4)=〇.設待排序的記錄共7個,排序碼分別為8,3,2,5,9,1,6。(1)用直接插入排序。試以排序碼序列的變化描述形式說明排序全過程(動態過程)要求按遞減順序排序。(6分)(2)用直接選擇排序。試以排序碼序列的變化描述形式說明排序全過程(動態過程)要求按遞減順序排序。(6分)(3)直接插入排序算法和直接選擇排序算法的穩定性如何?(3分)四、程序設計題(共2題,每題15分,共30分).設民航公司有一個自動預訂飛機票的系統,該系統中有一張用雙重鏈表示的乘客表,表中結點按乘客姓氏的字母序相鏈。例如,下面是張某個時刻的乘客表。試為該系統寫出ー個當任一乘客要訂票時修改乘客表的算法。序號dataLIinkRlink1Liu652Chan493Wang574Bao025Mai136Dong817Xi308Deng969Cuang28.所謂回文,是指從前向后順讀和從后向前倒讀都一樣的不含空白字符的串。例如did,madamimadam,pop即是回文。試編寫ー個程序,它先將串中的字符逐個進棧,再將棧中存放的字符逐個出棧,與串中的字符從頭逬行比較,若發現不等,則停止比較,返回。,表示該學符串不是回文。若所有棧中字符與串中字符都相等,則函數返回1,表示該字符串是回文。以判斷ー個串是否是回文。算法的聲明為intunknown(charA[],intn)ounknown判斷從A中的字符串是否回文,通過函數返回是(1)或不是(〇)〇第二部分兄弟院校真題匯編2014年中央財經大學信息學院805C語言程序設計考研真題中央財經大學二零一四年碩士研究生入學考試試題考試科目:C語言程序設計(805)注意:本試題所有答案,應按試題順序寫在答題紙上,不必抄題,寫清題號。寫在試卷上不得分。--單項選擇題(每題1分,共30分)LC語言規定,在ー個源程序中,main函數的位置()A.必須在最開始B,必須在系統調用的庫函數的后面C.可以任意D.必須在最后2.假設所有變量均為整型,則表達式(a=2,b=5,b++,a+b)的值是()A.7 B.8 C.6 D,23若以下變量均是整型,且num=sum=7;則計算表達式sum=num++,sum++,++num后sum的值為()A.7 B.8 C.9 D.104.已知如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當第一列開始輸入數據時,正確的數據輸入方式是()(注:口表示空格,<CR>表示回車)intal,a2;charc1,c2;scanf("%d%c%d%c”,&al,&cl,&a2,&c2);A.10AD20B<CR> B.10DAa20nB<CR>C.10A20B<CR> D.10A20DB<CR>5,若有條件表達式(exp)?a++:b++,則以下表達式中能完全等價于表達式(exp)的是()A.(exp=0) B.(exp!=0)C.(exp=l) D.(exp!=1)6.以下不正確的語句是()if(x>y);if(x=y)&&(x!=0)x+=y;C.if(x!=y)scanf(**%d,,,&x);elsescanR"%d",&y);D.if(x<y){x++;y++;}7.設有程序段,下述正確的是()D;while(printfC'*")){t++;if(t<3)break;)A.其中循環控制表達式與。等價B.其中循環控制表達式與‘〇’等價C.其中循環控制表達式是不合法的D.以上說法均不對8.以下程序段()x=-l;do{x=x*x;}while(!x);A.是死循環.循環執行二次C,循環執行ー次D.有語法錯誤.若有inta[][4]={0,0};則下述不正確的是()A,數組a的每個元素都可得到初值〇B,二維數組a的第一維大小為1C,因為二維數組a中第二維大小的值除以初值個數的商為1,故數組a的行數為1D,只有元素a[〇][〇]和a⑼口]可得到初值0,其余元素均無法得到初值0.下列描述中錯誤的是()A,字符數組可以存放字符串B.字符數組的字符串可以整體輸入輸出C.可以在賦值語句中通過賦值運算符“="對字符數組整體賦值D.不可以用關系運算符對字符數組的字符串進行比較.對于函數的目的,以下正確的說法是()A,提高程序的執行效率B,提高程序的可讀性C,減少程序的篇幅n同小用岸守住而上內在.下面函數調用語句含有實參的個數為()fun((a,b),(c,d,e));A.1 B.2 C.4 D.5.以下正確的描述是()A,函數的定義可以嵌套,但函數的調用不可以嵌套B.函數的定義不可以嵌套,但函數的調用可以嵌套C.函數的定義和調用均可嵌套D.函數的定義和調用均不可嵌套.已有定義intk=2;int*ptrl,*ptr2i且ptrl和ptr2均已指向變量k,下面不能正確執行的賦值語句是()A.k=*ptrl+*ptr2; B.ptr2=k;C.ptrl=ptr2; D.k=*ptrl*(*ptr2);151在32位編譯系統中,字符型變量占1個字節,則sizeof("、〇")、strlen("、0”)分別為()A.12 B.21 C.20 D.22.下面程序的運行結果是()charstr[]=,,ABC",*p=str;printn"%d\n”,*(p+3));A.67 B.O C,字符'C‘的地址D.字符'C'.下面程序的運行結果是()main(){staticchara[]="language",b[]="programe";char*pl,*p2;intk;pl=a;p2=b;fbr(k=O;k<=7;k++)if(*(p1+k)=*(p2+k))printfC,%cM*(p1+k));}A.gae B.ga C.Language D,有語法錯誤.下面程序的運行結果是()main()(char*pl="abc",*p2="abc",str[5O]="abc";C語言程序設計(805) 第23頁共125頁strcpy(str+1,strcat(p1,p2));printf(M%s\nH,str);)C.bcabcabc D,運行出錯C.bcabcabc D,運行出錯.若有定義inta[5],*p=a;則對a數組元素地址的正確引用是()A.p+5 B.*a+l C.&a+l D.&a[0]20,若有定義inta⑵[3],(*p)[3];p=a;則對a數組元素地址的正確引用是()A.*(p+2) B.p[2] C.p[l]+l D.(p+1)+221.若有函數max(a,b),并且已使用函數指針變量p指向函數max,當調用該函數時,正確的方法是()A.(*p)max(a,b) B.*pmax(a,b)C.(*p)(a,b) D.*p(a,b).在32位編譯系統中,每個整型變量占4個字節,長整型變量占4個字節,字符型變量占1個字節,以下程序的運行結果是()typedefunion{longa[2];intb[4];charc[8];}TY;TYour;main(){printf("%d\n",sizeof(our));)A.32 B.16 C.8 D.24.已知文件讀取函數的調用形式fread(buffer,size,count,fp),其中buffer代表的是()ー個整型變量,代表要讀入的數據項總數一個文件指針,指向要讀的文件ー個指針,指向要讀入數據的存放地址ー個存儲區,存放要讀的數據項.在執行fbpen函數時,fbrror函數的初始值為()A.TRUE B.-l C.1 D,0.#define的缺陷是()A.無法進行類型檢查B.無法進行單步調試C.會導致代碼膨脹D,以上說法都正確26.效率最高的計算2*8的方法是()A.2*2*2*2B.2*2*4C.2?3D.2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+227.在32為編譯系統中,運行以下程序的結果是()main()|unsignedinti=3;printf(M%u\nM,i*-l);return0;}A.3B.-3C.4294967293D.運行出錯a=l,b=2,則表達式a|b和a||b的值分別為()A.13 B.31 C.12 D.21sizeof(float)是()A.ー種函數調用B,ー個不合法的表C.ー個整型表達式 D.ー個浮點表達式示形式當有如下定義char*p=(char*)malloc(100);則p被分配到()中A.棧 B.堆 C.全局初始化區D.以上說法均不對二.程序填空題(每空2分,共20分).下面程序的功能是統計ー個正整數中各位數字中零的個數,并求各位數字中的最大者,請填空。voidmain(){intn,count,max,t;count=max=0;scanf{"%d",&n);「四言程岸港卄racい笛,く帀!t1”帀dot=[1];if(t=0)-H-count;elseif(max<t)[2];n/=10;}while(n);printf{ncount=%d,max=%d,',count,max);).以下程序可求出所有水仙花數。其中水仙花數是指ー個三位正整數,各位數字的立方之和等于該正整數,如407=4*4*4+0*0*0+7*7*7,請填空。voidmain()(intx,y,z,a[8],m,i=0;fbr(m=100J【3];m++){x=m/100;[4];z=m%10;if(x*l00+y*10+z==x*x*x+y*y*y+z*z*z)([5];i++;fbr(x=0;x<i;x-H-){printf("%6d",[6]);}.以下程序可以打印楊輝三角,請填空。1TOC\o"1-5"\h\z1 11 2 113 3 11 4 6 4 11 5 10 10 5 1#include"stdio.h"#defineN11voidyanghui(int(*a)[N])intij;fbr(i=l;i<N;i-H-){*(*(a+i)+l)=l;*(*(a+i)+i)=l;}fbr([7];i<N;i++)for(j=2j<iJ-H-)*(*(a+i)+j尸[8]+[9];}main()(intij,p[N][N]={0};yanghui(p);fbr(i=l;i<N;i-t-+)(for(j=lj<ij++)printf{"%d\t",*(*(p+i)+j));[10];)return0;)三.閱讀程序題(每題5分,共25分).寫出以下程序的運行結果。increment()(staticintx=0;x+=l;printf("%d",x);}main(){increment();increment();increment();).當輸入叩ple<CR>cat〈CR>(<CR>表示回車)寫出以下程序的運行結果。main(){char*s,c[80];s=c;gets(s);while((*(-H-s)!=,\O,))break;else(s++;gets(s);)puts(s);}.寫出以下程序的運行結果。main(){inti=O,n=O;chars[80],*p;p=s;strcpy(p,HItisabook」);fbr(;*p!=へ。’;p++)i鶴?p=='')i=0;elseif(i=0){n++;>=1;)printff'n=%d\n",n);).寫出以下程序的運行結果。structwcharhigh;};unionu{structwbyte;intword;}uu;main()(uu.word=0x1234;printf(HWordvalue:%04x\nn,uu.word);printf(MHighvalue:%02x\nM,uu.byte.high);printff'Lowvalue:%02x\nH,uu.byte.low);uu.byte.low=Oxff;printf("Wordvalue:%04x\nH,uu.word);).寫出以下程序的運行結果。main()(inti=5;charc[6]=MabcdH;do(c[i]=c[i-l];}while(-i>0);puts(c);)四.改錯題(共20分)注意:不得增行或刪行,也不得更改程序的結構1.以下程序輸入正整數n的值,計算n的階乘(表示為n!),然后輸出結果。本程序有三處錯誤(6分)main()(unsignedintn;unsignedinti,m=1;for(i=n;i>=O;i—)TOC\o"1-5"\h\zm*=i;printfC%u!=%u",m,n);)2.以下程序將字符串的內容進行翻轉,如“abc”轉為“cba”。本程序有三處錯誤(6分)main(){char*s="abc";intij;charc;fbr(i=OJ=strlen(s);i<j;++i,-j){c=s[i];s[i]=s[j];s[j]=c;}printf("%c\n",s);}3.以下程序將用戶輸入的由數字字符和非數字字符組成的字符串中的數字提取出來,例如輸入“asdl23rt456,fg789”,則產生的數字分別是123、456和789。本程序有四處錯誤(8分)#defineLEN256intgetline(char*s,intlen){intc;char*p=s;while(—len>0&&(c=getchar())!=,\n')*s=c;*s=MT;return(s-p);IO}main()(charline[LEN],b[20],*ptrl,*ptrb;「毎言程庠講t+(805) 第30頁共125頁intn=0j,a[50];getline(line,LEN);ptrl=line+LEN;while(*ptrl!=へ。'){*ptrb=b;20 ft>r(j=0;*ptrl>=’〇' &&*ptrl<='9';ptrl++,ptrb++j++)21 *ptrb=*ptrl;22 if(j)TOC\o"1-5"\h\z23 {24 *ptrb=ヘ0';25 *(a+n)=atoi(b);/*atoi()函數將數字串b轉換為證書?/26 n++;27 }28 if(*ptrl!='\0')ptrl++;29 }30 printff'resultis:\n");31 fbr(j=Oj<nj-H-)32 printf("%10d\n",*(a+n));33}五.編程題(共55分).編寫ー個函數,函數首部為intindex(char*str,chart),用來計算字符t在str中第一次出現的位置。如str為“abcc”,t為で,則返回3。如果沒有找到該字符,則返回-1=(6分).編寫ー個函數,函數首部為intsplit(intn,int*a,int*b),對于正整數n,將其分解為任意兩個素數之和a和b,若無法分解,則返回〇,若可以分解,則返回1.(8分)其中主函數如下:voidmain()(intn,a,b;scanf("%d",&n);if(split(n,&a,&b)=1)(printf{"%d,%d",a,b);}else(printff'noresults!0);.編寫ー個函數,函數首部為voidmaxword(char*s,char*t)?求出兩個字符串包含的相同單詞(同一字母的大小寫視為不同的字符)。規定單詞全部由英文字母構成,單詞之間由一個或多個空格分隔。(15分)其中主函數如下:#include<string.h>voidmain()(chars[]-'ThisisCprogrammingtext'1;chart[]=nThisisatextforCprogramming";maxword(s,t);}.設有一個數組a包含count個數,己經按照升序排好。現要求編ー函數,函數首部為intarrage(int*a,intcount,intn,intm)能夠把從指定位置n開始的m個數按照逆序重新排列并輸出新的完整數列。若排序完成則返回1,出現錯誤返回〇。(8分)voidmain(){inti,a[10]={03,2,3,4,5,6,7,8,9);arrage(a,10,3,5);fbr(i=0;i<10;i-H-)printf(M%dH,a[i]);}.設文件student.dat中存放著一年級1000名學生的基本情況,這些情況由以下結構體來描述:structstudent(longintnum;charname[10];intage;charsex;charaddr[40];};請編寫程序,a)在main函數中打開studentdat文件,并將所有數據按照學號排序后保存在ー個student類型的數組中。b)編寫函數,函數首部為voidprint(structstudent*s,intm,intn),打印該數組中從學號為m到學號為n的數據。c)編寫函數,函數首部為structstudentsearch(structstudent*s,intnum),利用折半查找算法查找學號num的學生,并將該學生的信息打印輸出。d)編寫函數,函數首部為voidwrite(structstudent*s)?將數組寫入到backup.dat文件中。(18分)2013年中央財經大學信息學院805C語言程序設計考研真題中央財經大學二零一三年碩士研究生入學考試試題考試科目:C語言程序設計(805)注意:本試題所有答案,應按試題順序寫在答題紙上,不必抄題,寫清題號。寫在試卷上不得分。ー、單項選擇題(每題1分,共30分).在C語言編譯器中,將源代碼轉換為目標文件的過程稱為。A)編輯 B)編譯 C)連接 D)執行.請選出可用作C語言用戶標識符的是〇A)void B)a3_b3 C)for D)2a.設inta=12,則執行完語句a+=a-=a*a后,a的值是〇A)552 B)264 C)144 D)-264.請選出合法的C語言賦值語句〇A)a=b=58 B)i++; C)a=58,b=58D)k=int(a+b).當調用函數時,實參是一個數組名,則向函數傳送的是。A)數組的長度B)數組的首地址C)數組每ー個元素的地址D)數組每個元素中的值.請選出以下語句的輸岀結果〇printf("%d\nM,strlenC'\t\',\O85\xff\n,'));514C)2D)輸出項不合法,無正常輸出.設有如下一段程序:int*var,ab;ab=100;var=&ab;ab=*var+10;執行上面的程序后,ab的值為〇A)120 B)110 C)100 D)90.以下程序段給數組所有的元素輸入數據,請選擇正確答案填入//includemain()C語言程序設計(805)第17頁共105頁{inta[10],i=0;while(i<10)scanf("%dM,);aA)a+(i++) B)&a[i+l] C)a+i D)&a[++i]9,在宏定義#definePI3.14159中,用宏名PI代替ー個〇A)單精度數B)雙精度數〇常量D)字符串.閱讀程序(int占兩個字節):#includemain(){inta[10]={l,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%x\n",p);printf(,,%x\n",p+9);}法程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是〇A)203 B)204 C)la4 D)la6.以下程序段的輸出結果是〇intx=3;do{printf("-*,x-=2);}while(!(--x));A)1 B)30 C)=D)死循環.兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結果是〇main(){intx;scanf("%d",&x);if(x++>5)printf("%d",x);elseprintf("%d\n",x--);}A)フ和5B)6和3C)7和4D)6和4.執行以下程序后,y的值是〇main(){inta[]={2,4,6,8,10);inty=l,x,*p;p=&a[l];fbr(x=0;x<3;x++)y+=*(p+x);printfC%d\n",y);}A)17 B)18 C)19 D)20.以下程序的輸出結果是〇fut(int**s,intp[2][3]){**s=p[l][l];}main(){inta[2][3]={1,3,5,7,931},*P;p=(int*)malloc(sizeof(int));fut(&p,a);printf(,,%d\n,,,*p);}1 B)7 C)9 D)11は設有如下定義:char*aa[2]={,'abcd","ABCD");則以下就法中正確的是〇A)aa數組中元素的值分別是"abed"和"ABCD"aa是指針變量,它指向含有兩個數組元素的字符型ー維數組aa數組的兩個元素分別存放的是含有4個字符的ー維字符數組的首地址aa數組的兩個元素中各自存放了字符‘絃和,A'.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為6的表達式是〇A)*p+6 B)*(p+6)C)*p+=5 D)p+5.若程序中有下面的說明和定義structabc{intx;chary;}structabcsi,s2;則會發生的情況是0A)編譯出錯B)程序將順利編譯、連接、執行C)能順利通過編譯、連接,但不能執行D)能順利通過編譯,但連接出錯.下面程序的輸出是〇main(){intk=l1;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=ll,k=12,k=l1B)k=ll,k=13,k=13k=ll,k=013,k=0xbk=ll,k=13,k=b19.若有以下函數調用語句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在fun函數調用語句中實參的個數是0A)3 B)4C)5D)6C語言中,函數的隱含存儲類別是A)auto B)staticC)externD)無存儲類別21.下列表達式12/012的運算結果是_〇A)1 B)0C)14D)12.給出以下定義:charx[]=*'abcdefg";chary[]={'a','b','c','d','e','f,'g'};則正確的敘述為〇A)數組X和數組丫等價B)數組x和數組丫的長度相同C)數組X的長度大于數組丫的長度D)數組X的長度小于數組丫的長度.以下敘述中不正確的是〇A)在不同的函數中可以使用相同名字的變量B)函數中的形式參數是局部變量C)在ー個函數內定義的變量只在本函數范圍內有效D)在一個函數內的復合語句中定義的變量在本函數范圍內有效24.設有如下定義:int(*ptr)();則以下敘述中正確的是〇ptr是指向ー維組數的指針變量ptr是指向int型數據的指針變量ptr是指向函數的指針,該函數返回一個int型數據ptr是ー個函數名,該函數的返回值是指向int型數據的指針.設有如下定義:intx=l,y=-l;?則語句:printf("%d\n",(x--&++y)):的輸出結果是〇A)1 B)0 C)-l D)2.以下說法中正確的是。#define和printf都是C語句//define是C語句,而printf不是printf是C語句,但#define不是#define和printf都不是C語句.能正確表示a和b同時為正或同時為負的邏輯表達式是〇(a>=0IIb>=0)&&(a<0IIb<0)(a>=0&&b>=0)&&(a<0&&b<0)(a+b>0)&&(a+b<=0)D)a*b>0.以下選項中,能定義s為合法的結構體變量的是 。c:冇士?□冷:71?,丄t\typedefstructabcs;typedefstruct{doublea;charb[10];}s;structABC{doublea;charb[10];}s;typedefABC{doublea;charb[10];}ABCs;.有以下程序段intk=0;while(k=l)k++;while循環執行的次數是〇A)無限次B)有語法錯,不能執行C)一次也不執行D)執行1次.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數feof(fp)的返回值是〇A)EOF B)-1 C)非零值D)NULL二、程序填空題(每空2分,共20分).下面程序的功能為求1至20的階乘。請填空:floatsub(intn){I1]x=l;x=x*n;returnx;voidmain(){inti;fbr(i=l;i<=20;i-H-)printn"\n%f",I2!);).假設鏈表p和鏈表q中的結點值都是整數,且按結點值遞增次序鏈接起來的帶表頭結點的單鏈表。在每個鏈表中,每個結點的值各不相同,但鏈表p和鏈表q可能有值相同的結點。下面函數將鏈表q合并到鏈表p中,使得合并后的鏈表仍為按結點值遞增有序的單鏈表,且鏈表中各個結點的值各不相同。請填空:structnode(intdata;structnode*next;};voidmerge(structnode*p,structnode*q){structnode*s,*r;r=P;while([3I)(if(r->next->data<q->next->data)I41;elseif(r->next->data>q->next->data){s=q->next;[5]=s->next;s->next=[6];[7]=s;[8];}else{r=r->next;s=q->next;I9];free(s);))if(l101){r->next=q->next;free(q);})三、閱讀程序題(共25分).寫出下面程序的輸岀結果。(5分)#include"stdio.h*'main(){intk=2,i=2,m;m=(k+=i*=k);prin氓"%d,%d\n”,m,i);).寫出下面程序的輸出結果。(5分)/include"stdio.h"voidabc(inta[],intn){inti,t;fbr(i=0;i<n;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;})main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;abc(b,8);fbr(i=6;i<10;i++)s+=b[i];;小ー,,.寫出下面程序的輸出結果。(5分)#include"stdio.h"main(){FILE*fp;inti=20J=30,k,n;fp=fbpen("d1.dat'"'w”);幣rintf(中,"%d\n”,i);fprintf{fp“%d\n,,j);fclose(fp);m=fopen("dl.dar',"r”);fscan曬,“%d%d“,&k,&n);printf(“%d%d\n”,k,n);fclose(fp);}.寫出下面程序的輸岀結果。(5分)#include"stdio.h"structNODEintnum;structNODE*next;};main()structNODE*p,*Q,*R;=(structNODE*)malloc(sizeof(structNODE));=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=10;q->num=20;r->num=30;p->next=q;q->next=r;printf(“%d\n”,p->num+q->next->num);).寫出下面程序的輸出結果。(5分)#include"stdio.h"main(){inta[][3]={{l,2,3},{4,5,0}},(*pa)[3],i;pa=a;fbr(i=O;i<3;i++)if(i<2)pa[l][i]=pa[l][i]-l;elsepa[l][i]=l;printf("%d\n",a[O][l]+a[l][l]+a[l][2]);叩ー前錯顧令)1.從鍵盤上輸入ー個3行3列矩陣的各個元素的值,然后輸出主對角線元素之積。(6分)#include"stdio.h"#defineM10inta[M][M]={0};fun(int**a,intm){intj,k;fbr(j=0J<m;j++)for(k=0;k<m;k++)aU][k]=j*k;}main()(intij,n;printf("Entern:");scanff%d”,&n);fiin(a,n);fbr(i=0;i<n;i++)(for(j=0;j<nj++)20 printfC%4d”,a[i][j]);printfC\nH);}}2.用冒泡法對6個字符串按由小到大的順序進行排序。(フ分)/include"stdio.h"#defineMAXLINE20fun(char*pstr[6])(intij;char*p;fbr(i=0;i<5;i-H-){for(j=0;j<5-ij++)if(strcmp(*(pstr+i),*(pstr+i))>0)p=*(pstr+j);*(pstr+j)=*(pstr+i);*(pstr+i)=p;)})main(){20 inti;21 char*pstr[6],str[6][MAXLINE];22 fbr(i=0;i<6;i++)23 pstr[i]=str[i];24 printf("Enter6strings(1stringateachline):\n");25 for(i=0;i<6;i++)26 scanf("%s",pstr[i]);27 fun(pstr);28 printf("Thestringsaftersorting:\n");29 fbr(i=0;i<6;i++)30 printf("%s\n",pstr[i]);31}3.從鍵盤輸入ー個整數,輸出對應的數字字符,如輸入1990,輸出“1990”。(7分)#include"stdio.h"voidfun(intk)intmain(void)(intn;scanf("%d”,n);ftin(n);return0;)voidfun(intk)H(intn;n=k%10;if(n!=0)fun(n);putchar(k/10+,0,);}五、編程序(共55分)說明:請按要求編程,否則不給分。以下所有題目程序應是非遞歸的。.編寫ー個函數,輸出整數m的全部素數因子。例如,m=120時,素數因子為:2,2,2,3,5。(7分).請編寫程序判斷ー個字符串是否是回文。若是回文,函數返回值為!,否則返回值為0。(回文是順讀和倒讀都一樣的字符串)。要求:(1)編寫函數sub()判斷一字符串是否為回文。(2)在主函數中完成數據的輸入與結果的輸出。(8分).起泡排序是把大的元素向下移,也可以將小的元素向上移,請給出下移和上移過程交替的起泡排序程序,即雙向起泡排序程序(ー趟冒泡排序排好ー個大數和一個小數)。假設元素采用順序存儲。要求:(1)編寫函數sort。實現排序。(2)在主函數中完成數據的輸入與結果的輸出。(10分).N個學生M門課,所有學生的各門課程成績已存入文件fl.dat,請計算每個學生的總分,并按總分降序的次序將每個學生名次、各門課程得分及總分輸出到文件f2.dat。要求:在按總分求學生名次時,不得對學生原始數據排序。(15分).編程實現將給定的ー組整數采用選擇排序法按由小到大的順序排序。要求:(1)編寫函數create。根據已知整數數組構造ー個單鏈表,假設結點只有ー個整數數據域。(2)編寫函數sort。采用選擇排序方法對已知鏈表進行排序。(3)在主函數中完成數據的輸入與結果的輸出。(15分)2012年中央財經大學信息學院817C語言程序設計考研真題中央財經大學二零一二年碩士研究生入學考試試題招生專業:產業經濟學(信息學院)考試科目:C語言程序設計(817)注意:本試題所有答案,應按試題順序寫在答題紙上,不必抄題,寫清題號。寫在試卷上不得分。ー、單項選擇題(每題1分,共30分)i,下列關于C語言用戶標識符的敘述中正確的是0A)用戶標識符中可以出現在ド劃線和中劃線(減號)B)用戶標識符中不可以出現中劃線,但可以出現下劃線〇用戶標識符中可以出現下劃線,但不可以放在用戶標識符的開頭D)用戶標識符中可以出現在ド劃線和數字,它們都可以放在用戶標識符的開頭2,若有以ド程序段(n所賦的是ハ進制數)intm=32767,n=032767;printtr'%d,%o\n",m,n);執行后輸出結果是〇A)32767,32767 B) 32767,032767C)32767,77777 D) 32767,0777773.有以下程序段intm=0,n=0;charc='a';scanグ%d%c%d",&m,&c,&n);prints"%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10V回車〉,則輸出結果是〇A)10,A,10 B)10,a,10C)10,a,0 D)10,A,04,合法的數組定義是〇A)inta[尸'string";B)inta[5]={0,l,2,3,4,5};chars="string";chara[]={0,l,2,3,4,5};.下列敘述中正確的是〇C語言編譯時不檢查語法C語言的子程序有過程和函數兩種C語言程序設計(817) 第48頁共115頁c語言的函數可以嵌套定義C語言所有函數都是外部函數.以下所列的C語言常量中,錯誤的是。A)OxFF B)1.2e0.5C)2L D)ヽ72'.若a為int類型,IL其值為3,則執行完表達式a+=a-=a*a后,a的值是〇-3 B) 9C)-12D) 6.設x、y、I均為im型變量,則執行語句:x=y=3;『什x||++y;后,y的值為〇A)不定值 B)4 〇3 D)1.若變量已正確說明為floal類型,要通過語句scantr%f%f%じ&a,&b,&c);給2賦于10.0,b賦戸22.0,c賦『33.0,不正確的輸入形式是。A)10〈回車〉22〈回車〉33〈回車〉10.0,22.0,33.0〈回乍〉10.0〈回車,22.033.0v回車〉1022〈回車〉33c回車〉.當調用函數時,實參是一個數組名,則向函數傳送的是〇A)數組的長度 B)數組的首地址〇數組每ー個元素的地址 D)數組每個元素中的值.設有以下說明語句structex{intx;floaty;charz;}example;則下面的敘述中不正確的是〇struct是結構體類型的關健字example是結構體類型名x,y,z都是結構體成員名structex是結構體類型.以下只有在使用時オ為該類型變量分配內存的存儲類說明是。auto和staticauto和registerregister和staticextern和register.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數feof(fp)的返回
「溟言程序冷i+(817) 第49頁共H5頁值是。A)EOF B)-1C)非零值 D)NULL.已知i、j、k為im型變量,若從鍵盤輸入:1,2,3〈回車〉,使i的值為I、j的值為2、k的值為3,以下選項中正確的輸入語句是 .。scantr*%2d%2d%2d,\&i,&j,&k);scanned%d%d,,,&i,&j,&k);scanfl^d,%d,%d",&i,&j,&k);scana“i=%dj=%d,k=%d",&i,&j&k);.設有定義:longx=-123456L:,則以ド能夠正確輸出變量x值的語句是〇prin或"x=%d\n”,x);printtrtx=%ld\n,,,x);prin壊"x=%8dL\n”,x);printtr*x=%LD\n,,,x);.C語言中,函數值類型的定義可以缺省,此時函數值的隱含類型是〇A) void B) int C) float D) double.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是〇A) p=q; B) *p=*q; C) n=*q; D) p=n;.若已定義的函數有返回值,則以下關于該函數調用的敘述中錯誤的是〇A)函數調用可以作為獨立的語句存在B)函數調用可以作為ー個函數的實參C)函數調用可以出現在表達式中D)函數調用可以作為ー個函數的形參.有以下函數定義:voidfun(intn,doublex){ }若以下選項中的變量都已正確定義并賦值,則對函數fun的正確調用語句fun(inty,doublem);k=ftin(10,12.5);fiin(x,n);voidfiin(n,x);.以下不能正確定義二維數組的選項是0A)inta[2][2]={{l},{2});B)inta[][2]={l,2,3,4};inta[2][2]={{1},2,3};inta[2][]={{l,2},{3,4}};21,已定義以下函數fiin(int*p){return*p;}該函數的返回值是。A)不確定的值 B)形參p中存放的值〇形參p所指存儲單元中的值 D)形參p的地址值.在函數調用過程中,如果函數funA調用了函數ftinB,函數funB乂調用\函數伯nA,則〇A)稱為函數的直接遞歸調用B)稱為函數的間接遞歸調用〇稱為函數的循環調用D)C語言中不允許這樣的遞歸調用.己有定義:inla[10].*p;,則合法的賦值語句是。A)片100; B)p=a[5];C)p=a[2]+2; D)p=a+2;24,以下敘述中正確的是〇A)局部變量說明為static存儲類,其生存期將得到延長B)全局變量說明為sialic存儲類,其作用域將被ガ大〇任何存儲類的變に在未賦初值時,其值都是不確定的D)形參可以使用的存儲類說明符,局部變埴完全相同25.設有定義語句:charcl=92,c2=92;,則以卜一表達式中值為號的是〇A)clAc2 B)cl&c2y2 D)cl|c2.程序中対fun函數有如ド說明void*fun();此說明的含義是:〇fbn函數無返回值fun函數的返回值可以是任意的數據類型fun函數的返回值是無值型的指針類型D)指針fun指向ー個函數,該函數無返回值.以下敘述中錯誤的是〇A)對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出B)數組名代表的是數組所占存儲區的首地址,其值不可改變〇當程序執行中,數組元素的ド標超出所定義的ド標范圍時,系統將給出“下標越界”的出錯信息Cig言程序設計,(817)D)可以通過賦初值的方式確定數組兀素的個數.關于指針數組,以下敘述中正確的是0A)是數組,包含數據的類型為指針類型B)是指針,指向數組C)沒有此種類型的數據D)以上說法均不正確29,若有以ド說明和定義uniondt(inta;charb;doublec;}data;以下敘述中錯誤的是。A)data的毎個成員起始地址都相同B)變扈dala所占內存字節數與成員c所占字節數相等C)程序段:data.a=5;prin氓"%f\data.c);輸出結果為5.000000data可以作為函數的實參30.以下語句或語句組中,能正確進行字符串賦值的是char*sp;?sp=Mright!";chars|IO];s="right!";chars|10];*s="right!";char*sp="right!";二、填空題(每空2分,共20分)I,下面程序的功能為:從鍵盤輸入一個卜六進制數,將其轉換為十進制數。函數change。實現轉換,主函數通過函數指針調用轉換函數。請填空:intchange(char*s){intsum=0;while(*s){ifl*s>=1a,&&*s<=tz')sum=[I];elseiR*s>='A,&&*s<=1Z')sum=[2];elsein*s>=t0,&&*s<=t9,)sum=[3];[41:returnsum;voidmain(){chara|8lJ;intc,(*p)();gets(a);p=(5];c=(*p)(a);printfV4%d*\c);}.從鍵盤上輸入10個整數,程序按降序完成從大到小排序。#include"stdio.h"voidsort(int*p,int*q){int*max,*s;if|p>q)return;max=p;fbr(s=p+];s<=q;s++)iK[6])max=s;swap([7]);sort([8],q);}voidswap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}voidmain()(inti,array[10];fbr(i=0;i<10;i++)scanf(["%d",(9]);sort([10],array+9);fbr(i=0;i<10;i++)printf1"%d",*(array+i));三、閱讀程序題(每題5分,共30分)1.寫出ド面程序的輸出結果。#include<stdio.h>voidswap(int*,int*);intmain()Iinta=5,b^7,*plrl,*ptr2;ptrl=&a,ptr2=&b;swap(ptrl,ptr2);print。"*ptrl=%d,*ptr2=%d\n",*ptrl,*ptr2);printf("a=%d,b=%d\n",a,b);return0;fvoidswap(int*pl,int*p2)(intp;p=*pl;*pl=*p2;*P2=P;}.寫出ド面程序的輸出結果。#include<stdio.h>#include<string.h>voidsort(char*nanie[],intn);voidprint(char*name[],intn);intmain(){char*name[]={"Cprogramming","BASIC","Java","FORTRAN","Computerintn=5;sort(name,n);print(name,n);return0;}voidsort(char*name[],intn){char*temp;intij,k;for(i=0;i<n-l;i++)k=i;fbr(j=i+l;j<nJ-H-)iftstrcmp(name[k],name[j])<0)k=j;ink!=i){lemp=name[i];name|i|=name[k];namefk]=temp;voidprint(char*name[],intn){inti;fbr(i=0;i<n;i++)puts(name[i]);}.寫出下面程序的輸出結果。/include<stdio.h>intmain(){FILE*fp;inti,k=0,n=0;fp=fbpen("temp.dat","w");fbr(i=3;i<5;i++)fprintRfp,"%d",i);fclose(fp);fp=fbpen("temp.dat","r");fscanf(fp,"%d%d",&k,&n);printf|"%d,%d\n",k,n);fclose(fp);return0;}voidtjinta[],intn,intx,int*c);intmain()inta[14]={1,2,3,4,5,67,8,9,10,9,8,7,6},t=0;Ra,14,4,&t);prinE"%d】);return0;}voidHinta[|,intn,inlx,int*c)(it(n==O)return;if(a[0]>=x)(*c)-H-;f(a+l,n-l,x,c);)5.寫出下面程序的輸出結果。#include"stdio.h"structstrlcharc[5J;char*s;};structstr2(structstrlsr;intd;}s2={,,OPS,,,"RST",12345};intmain(){structstrlsl[2]={{"THIS","ISA"},{"OLD","LYE"}};structstrl*p[2];p[0]=&sl[0];p[l]=&sl[l];printff'%s\n",++p[1]->s);prints"%c",s2.sr.c[2]);return0;#include<math.h>voidtun(int);intmain(){intn;scanfl"%d",&n);ifi(n<0)printfV'-");n=fabs(n);fun(n);return0;}voidfun(intx)(intk,r;for(k=2;k<sqrt(x);k++){r=x%k;while(r==0)(printff%d”,k);x=x/k;inx>Dprintf("*");r=x%k;inx!=l)printfr'%d\n",x);四、改錯題(每題5分,共20分)注意:不得增行或刪行,也不得更改程序的結構。1.用以下遞歸函數完成n!的計算。longfac(intn)(long作if(n<0)printf("n<0,dataerror");
f=1;elsef=fac(n)*n;returnf;}2.以下程序實現了功能:有一個磁盤文件fllel.dal,第一次將它的內容顯示在屏幕上,第二次把它復制到另ー個文件file2.dat上。voidmain()2{3 FILE*fpl,*tp2;4 fpl=tbpen("file1.dat", "w");5 fp2=tbpen("file2.dat”, "r");6 while(!feonfpl))7 putchar(getc(tp1));8 rewind(tpl);9 while(!feofl;fpl))10 putchar(getc(fp1),fp2);fclose(fpl);fclose(fp2);}3.有I、2、3、4個數字,能組成多少個互不相同旦無重復數字的三位數?都是多少?I#include<stdio.h>2#include<math.h>3intmain()4(5 intij,k;6 printff'n");7 fbr(i=l;i<5;i++)8 fbr(j=lj<5j++)9 for(k=l;k<5;k-H-)10 (II if(i!=k||i!=j||j!=k)12 print代"%d,%d,%d\n",ij,k);}return0;}C語言程序C語言程序設計(817)第58頁共“5仮2345678910II12131415161718192021222324252627282930313233343536程序采用二分插入法對10個數據進行由大到小的排序。1#include<stdio.h>//include<math.h>/+二分插入法?/voidHalflnsertSort(inta||,intlen)(inti,j,temp;intlow,high,mid;fbr(i=l;i<len;i++)(temp=a[i];low=0;high=i-1;while(low<=high)(mid=(low+high)/2;if(afmid)>temp){.high=mid-1;}else(low=mid+1;})fbr(j=i-l;j>high;j-){aU+n=alil;)a[high+l]=temp;})intmain(){inti,a[10]={l2,32,33,41,35,36,73,88,19,100);HalflnsertSort(a[l0],l0);for(i=0:i<10:i++)
38printf("%d\n",a);}return0;}五、編程題(共SO分)說明:請按要求編程,否則不給分。以下所有題目程序應是非遞歸的。.程序實現任意兩個字符串si、s2的比較。(7分)要求:(1)字符串的比較寫ー困數(sub)實現,不得調用標準庫函數sircmp:(2)在主函數中完成數據的輸入與結果的輸出。.如果整數A的全部因子(包括1,不包括A本身)之和等于B:且整數B的全部因子(包括I,不包括B本身)和等于A,則將整數A和B稱為親密數対。編程求5000以內的全部親密數對。(8分).程序實現將無序整數數組壓縮成有序數組,即去掉數組中質復出現的元素,并將不重復的元素按從小到大的順序存放于數組前k個元素中,其中k是原數組中互不相等的元素個數。(10分)例:原數組:4271047162壓縮后:124 6710 (k=6)要求:本題在原數組上進行壓縮和排序,不得引進另ー個數組。.已知C:\book\bk_list.dat文件中存有多種圖書信息,每種圖書信息包含二個內容:書名和庫存量。請編程通過檢査全部庫存量,在C盤book目錄下建立一個新的文件:bk_re.dat,它包括所有庫存量小于30的圖書名稱和庫存量,并在屏幕上顯示所有庫存最小于30的圖書名稱及庫存量。(10分)要求:(1)編一個函數實現檢査庫存地,建立新文件bkje.dal:(2)在主函數中輸出結果。.編程實現將一個帶頭結點的整數鏈表分成一個奇數鏈表和一個偶數鏈表。(15分)要求:(1)利用原鏈表中的結點空間作為這二個鏈表的結點空間,表頭節點可以開辟新的空間;(2)結點的數據域只有一個整數域:(3)單鏈表的建立寫ー函數(creaい實現;(4)構造奇數和偶數鏈表的過程寫ー函數(sub)實現:(5)輸出結果寫ー函數(output)實現:(6)主函數調用這三個函數完成程序功能。C語審程序設計(817)第60頁共Iド頁201I年中央財經大學信息學院807C語言程序設計考研真題中央財經大學二零ーー年碩士研究生入學考試試題招生專業:產業經濟學(信息學院)電子商務考試科目:C語言程序設計(807)注意:本試題所有答案,應按試題順序寫在答題紙上,不必抄題,寫清題號。寫在試卷上不得分。ー、單項選擇題(每題1分,共30分).ー個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道具存款測試題及答案
- 綠色發展面試題及答案
- 理想教育創新路徑
- 教育機構教管主任競聘演講
- 兒童創意繪畫蓮蓬課件
- 刺豚創意繪畫課件
- 原料庫年終工作總結
- 中國移動公司員工培訓大綱
- 組織實施培訓的
- 折紙小兔子課件
- 第八屆全國職工職業技能大賽(網約配送員賽項)必背考試題庫500題(含答案)
- 中藥材良種培育與品質提升
- 湖南省邵陽2024-2025高一物理下學期第一次聯考試題
- 心理咨詢室整改報告
- 湖北省武漢市東西湖區2023-2024學年八年級下學期期末考試語文試題
- QBT 2155-2004 旅行箱包行業標準
- 內蒙古錦山蒙古族中學2024年數學高一下期末綜合測試模擬試題含解析
- 醫院檢驗科實驗室生物安全程序文件SOP
- 醫療設備儀器的清潔消毒
- 基于Matlab的巴特沃斯濾波器設計
- 兒童發展心理學全套課件
評論
0/150
提交評論