二級C語言上機真題100套.doc_第1頁
二級C語言上機真題100套.doc_第2頁
二級C語言上機真題100套.doc_第3頁
二級C語言上機真題100套.doc_第4頁
二級C語言上機真題100套.doc_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1套1.程序填空 給定程序中,函數fun的功能是:將形參n所指變量中,各位上為偶數的數去除,剩余的數按原來從高位到低位的順序組成一個新的數,并通過形參指針n傳回所指變量。如輸入一個數:27638496,新的數為729第1處: t=*n%10;第2處:if(t%2!=0)第3處:*n=x;2.程序修改給定程序modi1.c中函數fun的功能是:計算n!。例如,給n輸入5,則輸出120.000000。double fun(int n ) double result=1.0;/*found*/if(n=0)return 1.0;while(n1&n=0&si=9)/*found*/sj+=si;/*found*/sj=0;3.程序設計請編寫函數fun,函數的功能是:將M行N列的二維數組中的字符數據,按列的順序依次放到一個字符串中。void fun(char sN,char *b)int i,j,n=0;for(i=0;iN;i+)/*請?zhí)顚懫湎鄳Z句完成其功能*/ for(j=0;jnext=null;for(i=1;idata=rand()%m;s-next=p-next;p-next=s;p=p-next;/*found*/return h;3.程序設計 請編寫函數fun,函數的功能是:統(tǒng)計一行字符串中單詞的個數,作為函數值返回。一行字符串在主函數中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格格開,一行的開始沒有空格。int fun(char *s)int k=1;while(*s) if(*s=)k+;s+; return k;第4套1.程序填空 程序通過定義學生結構體變量,存儲了學生的學號、姓名和3門課的成績。所有學生數據均以二進制方式輸出到文件中。函數fun的功能是從形參filename所指的文件中讀入學生數據,并按照學號從小到大排序后,再用二進制方式把排序后的學生數據輸出到filename所指的文件中,覆蓋原來的文件內容。第1處fp = fopen(filename, rb);第2處 if(si.snosj.sno)第3處 fwrite(s,sizeof(STU),N,fp);2.程序修改 給定程序MODI1.C中函數fun的功能是:在字符串的最前端加入n個*號,形成新串,差且覆蓋原串。注意:字符串的長度最長允許為79.void fun(char s ,int n)char a80,*p;int i;/*found*/p=s;for(i=0;in;i+)ai=*;doai=*p;i+;/*found*/while(*p+)ai=0;strcpy(s,a);3.程序設計 請編寫函數fun,函數的功能是:統(tǒng)計各年齡段的人數,N個年齡能過調用隨機函數獲得,并放在主函數的age 數組中:要求函數把0至9歲的年齡段的人數放在d0中,把10至19歲的年齡段的人數放在d1中,把20至29歲的年齡段的人數放在d2中,其余依次類推,把100歲(含100歲)以上年齡的人數都放在d10中。結果在主函數中輸出。void fun(int *a, int *b)int i,j;for(i=0;iM;i+)bi=0;for(i=0;i10)bM-1+;else bj+;第5套1.程序填空 給定程序中,函數fun的功能是將參數給定的字符串、整數、浮點數寫到文件文件中,再用字符串方式從此文本文件中逐個讀入,并調用庫函數atoi和atof將字符串換成相應的整數和浮點數,然后將其顯示在屏幕上。第1處: FILE *fp;第2處:fclose(fp);第3處fscanf(fp,”%s%s%s”,str,str1,str2);2.程序修改給定程序MODI1.C中函數fun的功能是:對N名學生的學生成績,按從高到低的順序找出前m(m10) 名學生來,將這些學生數據存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數值返回。STU *fun(STU a ,int m) STU bN,*t;int i,j,k; /*found*/t=(STU *)calloc(sizeof(STU),m);for(i=0;iN;i+)bi=ai;for(k=0;km;k+) for(i=j=0;ibj.s)j=i;/*found*/tk=bj;bj.s=0;return t; 3. 程序設計請編寫函數fun,函數的功能是,刪去一維數組中所有相同的數,使之只剩一個。數組中的數已按從小到大的順序排序,函數返回刪除后數組中數據的個數。int fun(int a ,int n)int i,j=1,k=a0;for(i=1;in;i+) if(k!=ai)aj+=ai;k=ai;aj=0;return j;第6套1.程序填空 給定程序中,函數fun的功能是根據形參i的值返回某個函數年值。當調用正確時,程序輸出:x1=5.000000x2=3.000000.x1*x1+x1*x2=40.000000第1處:double fun(int i,double x,double y)第2處:return f1(x);第3處:return f2(x,y);2.程序修改給定程序MODI1.C中函數fun的功能是:比較兩個字符串,將長的那個字符串的首地址作為函數值返回。#include /*found*/char *fun(char *s,char *t)int sl=0,tl=0;char *ss,*tt;ss=s; tt=t;while(*ss) sl+;/*found*/ss+;while(*tt) tl+;/*found*/tt+;if(tlsl) return t;else return s;3. 程序設計請編寫函數fun,函數的功能是:移動字符串中的內容,移動的規(guī)則如下:把第1到第m個字符,平均移到字符串的最后,把第m+1個到最后的;字符移到字符串的前部。Void fun(char *w, int m )int I;for(i=0;im;i+)fun1(w);第7套1.程序填空 程序通過定義并賦初值的方式,利用結構體變量存儲了一名學生的信息,函數fun的功能是輸出這位學生的信息。第1處 void show( STU tt)第2處 printf(“%5.1f”,tt.scorei);第3處 show(std)2.程序修改給定程序MODI1中函數fun的功能是:求出數組中最大數和次最大數,并把最大數和a0中的數對調、次最大數和a1中的數對調。int fun(int *a,int n) int i,m,t,k;for(i=0;i2;i+)/*found*/m=i;for(k=i+1;kam)m=k;t=ai;ai=am;am=t;3.程序設計請編寫一個unsigned fun(unsigned w),w是一個大于10的無符號整數,若w是n(n=2)位的整數,函數求出w的后n-1位的數作為函數值返回。例如:w值為5923,則函數返回923;w值為923則函數返回23。unsigned fun( unsigned w ) if(w=10000) return w%10000;if(w=1000) return w%1000;if(w=100) return w%100;return w%10;第8套1.程序填空 給定程序通過定義并賦值的方式,利用結構體變量存儲了一名學生學號、姓名和3門課的成績。函數fun的功能是將該學生的各科成績都乘以一個系統(tǒng)a。第1處 void modify(STU *ss,float a )第2處 ss-scorei*=a;第3處 modify(&std,a);2.程序修改給定程序MODI1.C中函數fun的功能是:求k!,所求階乘的值作為函數值返回。例如:若k=10,則應輸出:3628800。long fun(int k)/*found*/if(k0)return (k*fun(k-1);/*found*/else if(k=0)return 1L;3.程序設計程序定義了N*N的二維數組,并在主函數中自動賦值。請編寫函數fun(int a N,int n),函數的功能是:使數組左下三角元素中的值乘以 fun(int a N,int n) int i,j;for(i=0;iN;i+)for(j=0;jnext;第2處 while(q)第3處 p=p-next;2.程序修改給定程序MODI1.C中函數fun的功能是:將s所指字符串中的字母轉換為按字母序列的后續(xù)字母(但Z轉換為A,z轉換成a ),其它字符不變。void fun(char *s)/*found*/while(*s) if(*sA&*s=a&*s=z) if(*s=Z)*s=A;else if(*s=z)*s=a;else *s=*s+1;/*found*/s+;3.程序設計void fun(int *w,int p, int n)int i,j=0,bN;for(i=p+1;in;i+)bj+=wi;for(i=0;i=p;i+)bj+=wi;for(i=0;in;i+)wi=bi;第10套1程序填空給定程序中,函數fun的功能是:判定形參a所指的NN(規(guī)定N為奇數)的矩陣是否是“幻方”,若是,函數返回值為1;不是,函數返回值為0。“幻方”的判定條件是:矩陣每行、每列、主對角線及反對角線上元素之和都相等。第1處 row=colum=0;第2處 if(row!=colum)|(row!=m1)return 0;第3處 return 1;2程序修改給定MODI1.Cfun函數的功能是:根據整型形參m,計算如下公式的值。t=1-1/2-1/3-1/m.#include double fun( int m )double t = 1.0;int i;for(i=2;inext;第2處 if (p=0) return;第3處 p=q; q=r;2.程序修改給定MODI1.Cfun函數的功能是:計算s所指字符串中含有t所指字符串的數目,并作為函數值返回。請改正函數fun中指定部位的錯誤,使它能得出正確的結果。# include # include #define N 80int fun(char *s, char *t)int n;char *p,*r;n=0;while (*s) p=s; /*found*/r=t;while (*r)if(*r=*p)r+;p+;else break;/*found*/if(*r=0)n+;s+;return n;3程序設計請編寫函數fun,函數的功能是:將放在字符串數組中的M個字符串(每串的長度不超過N),按順序合并組成一個新的字符串,函數fun中給出的語句供供參考。void fun (char aMN),char *b)int i;*b=0;for(i=0;inext;第3處 q=r;2程序修改給定程序MODI1.C中函數fun的功能是:將s所指字符串中位于奇數位置的字符或ASCII碼為偶數的字符放入t所指數組中(規(guī)定第一個字符放在第0位中)。#include#include#define N 80void fun(char *s,char t)int i,j=0;for(i=0;istrlen(s);i+)/*found*/if(i%2| si%2=0)tj+=si;/*found*/tj=0;3程序設計請編寫函數fun,函數的功能是:將M行N列的二維數組中的數據,按列的順序依次放到一維數組中。函數fun中給出的語句僅供參考。#include void fun (int (*s)10,int *b, int *n, int mm, int nn)int i,j,np=0;for(i=0;inn;i+)for(j=0;jnext;第2處 q=p-next;第3處 if(p-data=q-data)2程序修改給定程序MODI1.C是建立一個帶頭結點的單向鏈表,并用隨機函數為各結點數據域賦值。函數fun的作用是求出單向鏈表結點(不包括頭結點)數據域中的最大值,并且作為函數值返回。請改正函數fun中指定部位的錯誤,使它能得出正確的結果。fun ( NODE *h) int max=-1;NODE *p;/*found*/p=h-next;while(p) if (p-datamax)max=p-data;/*found*/p=p-next;return max;3程序設計請編寫函數fun,函數的功能是:將M行N列的二維數組中的數據,按行的順序依次放到一維數組中。一維數組中數據的個數存放在形參n所指的存儲單元中。void fun( int (*s)10,int *b, int *n, int mm, int nn)int i,j,k;for(i=0;imm;i+)for(j=0;jnext;while (p)if(p-data%2=0)sum +=p-data;/*found*/p=p-next;return sum;3程序設計 請編寫函數fun,函數的功能是:判斷字符串是否為回文?叵是,函數返回1,主函數中輸出:YEX,否則返回0,主函數中輸出NO?;匚氖侵疙樧xt和倒讀都一樣的字符串。int fun(char *str)int i,j=strlen(str);for(i=0;ij/2;i+)if (stri!=strj-i-1) return 0;return 1;第15套1程序填空程序通過定義學生結構體變量,存儲了學生的學號,姓名和3門課的成績。所有學生數據均以二進制方式輸出到student.dat文件中。函數fun的功能是從指定文件中找出指定學號的學生數據,讀入此學生數據,對該生的分數進行修改,使每門課的分數加3分,修改后重寫文件中該學生的數據,即用該學生的背后數據覆蓋原數據,其它學生數據不變;若找不到,則什么都不做。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。第1處 while(!feof(fp)第2處 if(n.sno=sno) break;第3處 fseek(fp,-1L*sizeof(STU),SEEK CUR);2程序修改給定程序MODI1.C中函數fun的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序,插入法的基本算法是:先對字符串中的頭兩個元素進行排序,然后把第三個字符插入到前兩個字符中,插入后前三個字符依然有序;再把第四個字符插入到前三個字符中,。待排序的字符串已在主函數中賦予。請改正函數fun中指定部位的錯誤,使它能得出正確的結果。void insert(char *aa)int i,j,n; char ch;/*found*/n=strlen(aa);for(i=1;i=0)&(chs;STREC *p;p=h-next;while(p) if(p-smax)max=p-s;p=p-next;return max;第16套1程序填空給定程序中,函數fun的功能是:求出形參ss所指字符串數組中最長字符串的長度,將其余字符串右邊用字符*補齊,使其與最長的字符串等長。Ss所指字符串數組中共有M個字符串,且串長N。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。第1處 n=strlen(ssi) ;第2處 ssin+j=*;第3處 ssin+j+1=0;2程序修改給定程序MODI1.C中fun函數的功能是:將p所指字符串中每個單詞的最后一個字母改成大寫。(這里的“單詞”是指由空格隔開的字符串)。請改正程序中的錯誤之處,使它能得出正確的結果。#includevoid fun(char *p)int k = 0;for( ; *p; p+ )if( k )/*found*/if( *p =)k = 0;/*found*/* (p-1)=toupper(*(p-1);elsek=1;3程序設計請編寫函數fun,對長度為7個字符的字符串,除首、尾字符外,將其余5個字符ASCII碼降序排列。int fun(char *s, int num)char ch;int i,j;for(i=1;i6;i+)for(j=i+1;j6;j+)if(*(s+i)(s+j)ch = *(s+j);*(s+j)=*(s+i);*(s+i)=ch ;第17套1程序填空程序通過定義學生結構體數組,存儲了若干名學生的學號、姓名和3門課的成績。函數fun的功能是將存放學生數據的結構體數組,按照姓名的字典序(從小到大)排序。請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。第1處 struct student t;第2處 for(i=0;i0)2程序修改給定程序MODI1.C中函數fun的功能是:在p所指字符串中找出ASCII碼值最大的字符,將其放在第一個位置上;并將該字符前的原字符向后順序移動。fun (char *p) char max, *q; int i=0;max=pi;while( pi!=0) if(maxp)*q=*(q-1);q-;p0=max;3程序設計學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫了函數fun,它的功能是:把指定分數范圍內的學生數據放在b所指的數組中,分數范圍內的學生人數由函數值返回。int fun (STREC *a, STREC *b,int l, int h)int i,j = 0;for(i=0;i=l&ai.s=h)bj+=ai;return j;/*程序中l(wèi)是用L的小寫*/第18套1程序填空給定程序中,函數fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后新字符串的首地址作為函數值返回。第1處 tj=si;j+;第2處 for(i=0;ik;i+) tj+i=pi;第3處 tj+k=0;2程序修改給定程序MODI1.C中函數fun的功能是:將s所指字符串中最后一次出現的與t1所指字符串相同的子串替換成t2所指字符串,所形成的新串放在w所指的數組中。在此處,要求t1和t2所指字符串的長度相同。int fun (char *s, char *t1, char *t2, char *w)int i; char *p,*r,*a;strcpy( w,s );/*found*/while (*w) p=w;r=t1;while (*r)/*found*/if ( *r=*p )r+;p+;else break;if (*r=0)a=w;w+;r=t2;while (*r)*a=*r;a+;r+;3程序設計函數fun的功能是:將s所指字符串中ASCII值為奇數的字符刪除,串中剩余字符形成一個新串放在t所指的數組中。void fun (char *s, char t) int i,j=0;for(i=0;istrlen(s);i+)if(si%2=0)tj+=si;tj=0;第19套1程序填空程序通過定義學生結構體變量,存儲了學生的學號、姓名和3門課的成績。函數fun的功能是將形參a所指結構體變量s中的數據進行修改,并把a中地址作為函數值返回主函數,在主函數中輸出修改后的數據。第1處 struct student *fun(struct student *a)第2處 for(i=0;iscorei+=1;第3處 return a;2程序修改給定程序MODI1.C中函數fun的功能是:從N個字符串中找出最長的那個串,并將其地址作為函數值返回。各字符串在主函數中輸入,并放入一個字符串數組中。/*found*/char *fun(char (*sq)M) int i; char *sp;sp=sq0;for(i=0;iN;i+)if (strlen(sp)strlen(sqi)sp=sqi;/*found*/return sp;3程序設計函數fun的功能是:將a、b中的兩個兩位正整數合并形成一個新的整數放在c中。合并的方式是:將a中的十位和個位數依次放在變量c的百位和個位上,b中的十位和個位數依次放在變量c的十位和千位上。#include void fun (int a, int b, long *c) *c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;第20套1程序填空給定程序中,函數fun的功能是:計算形參x所指數組中N個數的平均值,(規(guī)定所有數均為正數),將所指桑罵槐數組中小于平均值的數據移至數據的前部,大于等于平均值的數據移至x決指數組的后部,平均值作為函數值返回,在主函數中輸出平均值和移動后的數據。第1處for(i=0; iN; i+) av+=xi/N第2處yj=xi; xi=-1; j+;第3處i+; 2程序修改給定程序MODI1.C函數fun的功能是:統(tǒng)計字符串各元音字母(即:A、E、I、O、U)的個數。注意字母不分大、小寫。fun (char *s, int num5) int k, i=5;for(k=0;k=0)numi+;3程序設計請編寫函數fun,函數的功能是求出二級數組周邊元素之和,作為函數值返回。二維數組中的值在主函數中賦予。int fun(int a MN)int tot = 0, i,j;for(i=0;iN;i+)tot +=a0i;tot +=aM-1i;for (i=1;iM-1;i+)tot +=ai0;tot +=aiN-1;return tot;第21套1程序填空給定程序中,函數fun的功能是:計算形參x所指數組中N個數的平均值(規(guī)定所有數均為正數),將所指數組中大于平均值的數據移至數組的前部,小于等于平均值的數據移至x所指數組的后部,平均值作為函數值返回,在主函數中輸出平均值和移動后的數據。第1處 av=s/N;第2處 yj+=xi;xi=-1;第3處 if(xi!=-1) yj+=xi;2程序修改給定程序MODI1.C的功能是:讀入一英文文本行,將其中每個單詞的第一個字母改成大寫,然后輸出此文本行(這里的“單詞”是指由空格隔開的字符串) /*found*/#include /*found*/upfst (char *p)int k=0;for ( ; *p; p+)if (k) if (*p=)k=0;else if (*p!=)k=1; *p=toupper(*p);3程序設計程序定義了NN的二級數組,并在主函數中賦值,請編寫函數fun,函數的功能是:求出數組周邊元素的平均值并作出函數值返給主函數中的s。double fun (int wN) int i, j, n=0;double sum=0;for(i=0; iN;i+) sum+=w0i+wN-1i;n+=2;for (i=1;iN-1;i+) sum+=wi0+wiN-1;n+=2;return sum/n;第22套1程序填空給定程序中,函數fun的功能是:將自然數110以及它們的平方根寫到名為myfile3.txt的文本文件中,然后再順序讀出顯示在屏幕上。第1處 fprintf(fp,%d%fn,i,sqrt(double)i);第2處 fclose(fp);第3處 if (fp=fopen(fname,r)=NULL)2程序修改給定程序MODI1.C中fun函數的功能是:將n個無序整數從小到大排序。 fun (int n,int *a ) int i,j,p,t;for(j=0; jn-1;j+) p=j;/*found*/for (i=j+1; iai)/*found*/p=i;if (p!=j) t=aj;aj=ap;ap=t; 3程序設計函數fun的功能是:將兩個兩位數的正整數a、b合并形成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數的個位和百位上,b數的十位和個位數依次放在c數的十位和千位上。#include void fun (int a, int b, long *c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);第23套1程序填空給定程序中,函數fun的功能是:找出N*N矩陣中每列元素中的最大值,并按順序依次存放于形參b所指的一維數組中。第1處 bi=a0i;第2處 if (biaji) bi=aji;第3處 fun(x,y);2程序修改給定程序MODI1.C中fun函數的功能是:交換主函數中兩個變量的值。 /*found*/int fun(int *x,int *y) int t;/*found*/t=*x;*x=*y;*y=t;3程序設計編寫函數fun,函數的功能是求出小于或等于lim的所有素數并放在aa數組中,函數返回所求出的素數的個數。函數fun中給出的語句僅供參考。#include #define MAX 100int fun(int lim, int aa MAX)int i, j, k=0;for(i=2;i=lim;i+) for(j=2;j(i/2) aak+=i; return k;第24套1程序填空程序通過定義學生結構體變量,存儲了學生的學號、姓名和3門課的成績。函數fun的功能是將形參a中的數據進行修改,把修改后的數據作為函數值返回主函數進行輸出。第1處 struct student fun(struct student a)第2處 strcpy(,LiSi);第3處 a.scorei+=1;2程序修改假定整數數列中的數不重復,并存放在數組中。給定程序MODI1.C中函數fun的功能是:刪除數列中值為x的元素。N中存放的是數列中元素的個數。 fun(int *a, int n,int x) int p=0,i;an=x;while(x!=ap)p=p+1;/*found*/if(p=n) return -1else for (i=p;in;i+)/*found*/ai=ai+1;return n-1; 3程序設計學生的記錄由學號和成績組成。N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun,它的功能是:把分數最低的學生數據放在b所指的數組中,注意:分階段數最低的學生可能不止一個,函數返回分數最低的學生的人數。int fun(STREC *a, STREC *b)int i,j=0,min=a0.s;for( i=0;iai.s)j=0;bj+=ai;min=ai.s;else if (min =ai.s)bj+=ai;return j;第25套1程序填空人員的記錄由編號和出生年、月、日組成,N名人員的數據已在主函數中存入結構體數組std中,且編號唯一。函數fun的功能是:找出指定編號人員的數據,作為函數值返回,由主函數輸出,若指定編號不存在,返回數據中編號為空串。第1處 STU fun(STU *std, char *num)第2處 if(strcmp(stdi.num,num)=0)第3處 return (stdi);2程序修改給定程序MODI1.C中函數fun的功能是:從s所指字符串中,找出與t所指字符串相同的子串的個數作為函數值返回。int fun(char *s,char *t) int n; char *p,*r;n=0;while (*s)p=s;r=t;while (*r)if (*r=*p)/*found*/r+; p+;else break;/*found*/if (*r=0)n+;s+; return n; 3程序設計函數fun的功能是:將s所指字符串中ASCII值為偶數的字符刪除,串中剩余字符形成一個新串放在t所指的數組中。#include #i

溫馨提示

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

最新文檔

評論

0/150

提交評論