華中科技大學計算機考研復試機試題_第1頁
華中科技大學計算機考研復試機試題_第2頁
華中科技大學計算機考研復試機試題_第3頁
華中科技大學計算機考研復試機試題_第4頁
華中科技大學計算機考研復試機試題_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

華科歷年復試機試題匯總上機考試。一般網站上公布上機環境要求是,但實際上是可以使用VC的。這里有一點特別要大家注意:只支持純C代碼,不支持C++風格代碼。華科的計算機學生稱,不管你是用VC還是TC,老師都要在上進行驗收程序,以確認你的代碼是純C。比如:p=newNode;的代碼寫法在下是通不過的,只能寫p=(Node*)malloc(sizeof(Node));。另外不支持引用,如:Pop(Stack&s,ElemType&e)中含有"&"的引用,在下無法通過。華科的上機題目每年都差不多,經??嫉木褪桥判颉㈡湵砗蜆涞牟僮鞯取=ㄗh在去復試前一定要進行專門練習上機。Note*上機時間為1個半小時,題目一般為三道題,前兩道一般代碼不會超過70行,最后一道會達到150~200行。上機時做題速度一定要快,不要總抓著一個不放,時間在不知不覺中過的是很快的。2010年的機試題:a、輸入一個字符串,然后對每個字符進行奇校驗,最后輸出校驗后的二進制數!(如‘3',輸出:);#include<>#include<>#definemax1000intpd(charc){inti=0;intnum=0;for(i=0;i<7;i++){if(c&(1<<i))num++;}if(num%2==0)return1;elsereturn0;}voidmain(){chara[max];scanf("%s",a);inti,j;intlen=strlen(a);for(i=0;i<len;i++){if(pd(a[i])){a[i]=a[i]|(1<<7);}for(j=7;j>=0;j--)if(a[i]&(1<<j))printf("1");elseprintf("0");printf("\n");}b、設計8個任務函數taskO()-task7()只輸出一句話:如taskO()輸出“taskOiscalled!”;設計—調度函數schedule()輸入一個字符串如"012345"然后返回一個函數指針數組和字符串的長度作為執行函數execute()的參數進行調度任務函數。主函數只有調度函數。(這個題難道很多同學因為很多同學不知道函數指針數組怎么用啊!)#include<>#include<>#include<>typedefvoid(*ptask)();2O11/O3/18v=tempB->av;s[k].chengji[O]=tempB->chengji[O];s[k].chengji[1]=tempB->chengji[1];s[k].chengji[2]=tempB->chengji[2];strcpy(s[k].xuehao,tempB->xuehao);tempB=tempB->next;k++;}intl,m;studtemps;for(l=O;l<cnt-1;l++){for(m=l+1;m<cnt;m++){if(s[l].av<s[m].av){[O]=s[l].chengji[O];=s[l].chengji[1];=s[l].chengji[2];strcpy,s[l].xuehao);s[l].chengji[O]=s[m].chengji[O];s[l].chengji[1]=s[m].chengji[1];s[l].chengji[2]=s[m].chengji[2];strcpy(s[l].xuehao,s[m].xuehao);s[m].chengji[O]=[O];s[m].chengji[1]=[1];s[m].chengji[2]=[2];strcpy(s[m].xuehao,;}}}for(inti=O;i<cnt;i++){printf("學號:%s\n",s[i].xuehao);printf("成績:%f\n",s[i].chengji[O]);printf("成績:%f\n",s[i].chengji[1]);printf("成績:%f\n",s[i].chengji[2]);}returnO;}==》07年的華科招收研究生上機試題一、編寫一個程序輸入一個5X6的矩陣存儲并輸出,并且求出每行的最大值和每行的總和要求把每行總和放入每行最大值的位置,最后把結果矩陣,每行最大值及其原下標及其總和輸出。我的代碼:#include<>#include<>intgetMat(inta[5][6],intn,intm){inti,j;for(i=O;i<n;i++)for(j=O;j<m;j++)scanf("%d",&a[i][j]);}intgetMax(inta[5][6],intn,intm,intb[5],intc[5],intd[5],intsum[5]){inti,j;for(i=O;i<n;i++){b[i]=0;c[i]=0;d[0]=0;sum[i]=0;}for(i=0;i<n;i++){intr,col;intmax=a[i][0];sum[i]=a[i][0];for(j=1;j<m;j++){if(max<a[i][j])max=a[i][j];r=i;col=j;sum[i]+=a[i][j];}b[i]=max;c[i]=r;d[i]=col;}for(i=0;i<n;i++){a[c[i]][d[i]]=sum[i];}}voiddisplay(inta[5][6]){inti,j;for(i=0;i<5;i++){printf("\n");for(j=0;j<6;j++){printf("%d",a[i][j]);}}printf("\n");}intmain(){inta[5][6];getMat(a,5,6);intb[5],c[5],d[5],sum[5];getMax(a,5,6,b,c,d,sum);display(a);printf(”每一行最大值為:\n");inti;for(i=0;i<5;i++){printf("第%d行:%d,其下標:(%d,%d)\n",i,b[i],c[i],d[i]);}printf(”每一行的總和為:\n");for(i=0;i<5;i++){printf("第%d行:%d\n",i,sum[i]);}system("pause");}二、編寫程序判斷輸入的任意字符,任意長度的字符串是否回文(順讀,逆讀均相同),最后輸出原字符串和判斷結果#include<>#include<>#include<>voidmain(){inti;1'C:\Ue?rt\xiajuii\Desktopl就地逆宣篦陣.exe1&21222324鮎2G3132彩3435眺4142434445465152砕舁常入的矩陣:111U13141屈備的矩陣’1Z3431323334353414243444545152535455511IE131415It212223242526313233343536414243444546rrrintbisSame=1;功能:復制…的內容到中#include<>#include<>#include<>#defineBUFFERSiZE1000intmain(intargc,char*argv[]){if(argc<3){printf(”參數不足\n");return0;}入n個職工的信息,找出3個年齡最小的職工打印出來,n可以取6。#include<>#include<>structnode{ge-(*(structnode*)b).age;}}intmain(){intn,i;printf("請輸入職工數及其各職工的職工號、姓名、年齡:\n");scanf("%d",&n);for(i=0;i<n;i++){scanf("%d%s%d",&emp[i].id,emp[i].name,&emp[i].age);}qsort(emp,n,sizeof(node),cmp);printf("年齡最小的三位職工是:\n");for(i=0;i<3;i++){printf("%d%s%d\n",emp[i].id,emp[i].name,emp[i].age);}system("pause");}n個人排一圈123報數,報到3的人退到圈外,直到剩最后一個人為止。#include<>#include<>structnode{intdata;structnode*link;}*list,*p,*r;voidJOSEPHUS(intn,intm,intk);intmain(){intn,k;printf("請輸入人數:");scanf("%d",&n);printf("\n請輸入從哪里開始:");scanf("%d",&k);/*printf("\n請輸入數到:");scanf("%d",&m);*/if(n!=0)JOSEPHUS(n,3,k);system("PAUSE");return0;}voidJOSEPHUS(intn,intm,intk){inti;for(i=1;i<=n;i++){p=(structnode*)malloc(sizeof(structnode));p->data=i;if(list==NULL)list=p;elser->link=p;r=p;}p->link=list;p=list;for(i=1;i<k;i++){r=p;p=p->link;}while(p->link!=p){for(i=1;i<m;i++){r=p;p=p->link;}}r->link=p->link;printf("%d\n",p->data);free(p);p=r->link;}printf("\n最后被刪除結點是%d\n",p->data);}冒泡排序。#defineN10#include<>intbublesort(inta[N]){inti,j,change,temp;for(i=N-1,change=1;i>=1&&change;--i){change=0;for(j=0;j<i;++j){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;change=1;}}}return0;}intmain(){inta[N];for(inti=0;i<N;i++){scanf("%d",&a[i]);}for(inti=0;i<N;i++){printf("%d",a[i]);}printf("\n");bublesort(a);for(inti=0;i<N;i++){printf("%d",a[i]);}printf("\n");return0;}建立二叉樹,并中序遍歷。#include<>#include<>typedefstructtnode{intvalue;structtnode*lchild;structtnode*rchild;}BTreeNode,*BTree;BTreecreateBTree(){intvalue;BTreet;scanf("%d",&value);if(value==0)/*判斷當前子樹是否創建完成*/returnNULL;else{t=(BTree)malloc(sizeof(BTreeNode));t->value=value;t->lchild=createBTree();t->rchild=createBTree();returnt;}}voidInorderBTree(BTreeB){if(B){InorderBTree(B->lchild);printf("%d\n",B->value);InorderBTree(B->rchild);}}intmain(){printf("輸入整數,以結尾\n");BTreeB=createBTree();printf("中序遍歷如下:\n");InorderBTree(B);return0;}生成一個長度為21的數組,依次存入1到21;建立一個長度為21的單向鏈表,將上述數組中的數字依次存入鏈表每個結點中將上述鏈表變為單向封閉(循環)鏈表;從頭結點開始數,將第17個結點刪除,將它的下一個結點作為新的頭結點;重復上述過程直到該鏈表中只剩一個結點,顯示該結點中存入的數字。分三個文件,一^main;—個?h;—個?c文件,寫函數(1).main#include<>#include<>#include"Count"intmain(){structnode*head,*current;inti;head=CreatNode();printf("##%d##\n",head->a);while(head->Next!=NULL){current=head;for(i=1;i<17;i++){current=current->Next;}filehead=current->Next;if(head->Next!=current)file#ifndefCOUNT_21_H_INCLUDED#defineCOUNT_21_H_INCLUDED#defineNUM21typedefstructnode{file#include<>#include<>#include"Count/r

溫馨提示

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

評論

0/150

提交評論