中國海洋大學(xué)C程考試題庫20題.doc

上傳人:good****022 文檔編號:116425023 上傳時間:2022-07-05 格式:DOC 頁數(shù):14 大?。?1.50KB
收藏 版權(quán)申訴 舉報 下載
中國海洋大學(xué)C程考試題庫20題.doc_第1頁
第1頁 / 共14頁
中國海洋大學(xué)C程考試題庫20題.doc_第2頁
第2頁 / 共14頁
中國海洋大學(xué)C程考試題庫20題.doc_第3頁
第3頁 / 共14頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《中國海洋大學(xué)C程考試題庫20題.doc》由會員分享,可在線閱讀,更多相關(guān)《中國海洋大學(xué)C程考試題庫20題.doc(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、C程序設(shè)計課程期末上機(jī)考試考試時間:40分鐘考試方式:從下面的20題中隨機(jī)抽取一題,再附加一題,共需完成2道題。分值分配:第一題60分,第二題40分,共100分考試時間:第十八周1 請編寫函數(shù)long fun(long int x),功能是:將長整型數(shù)x中每一位上為奇數(shù)的數(shù)依次取出,并逆序構(gòu)成一個新數(shù)返回。例如:程序運(yùn)行時輸入123456789,輸出:b=97531。#includelong fun(long int x) long a,b=0;a=x;for(;a!=0;) if(a%10)%2!=0) b=b*10+a%10; a/=10; return b;void main()long

2、 a,b; printf(Please input a long int num:); scanf(%ld,&a); b=fun(a); printf(b=%ldn,b);2 編寫函數(shù)void fun(char *s,char *t,char *p)將未在字符串s中出現(xiàn)、而在字符串t中出現(xiàn)的字符, 形成一個新的字符串放在p中,p中字符按原字符串中字符順序排列,但去掉重復(fù)字符。例如: 當(dāng)s為12345, t為8624677時, p中的字符為: 867;當(dāng)s為”good luck”,t為”thank you very much”時,輸出:”thanyverm”#includeint test(ch

3、ar *s,int n,char ch) int i; for(i=0;in;i+)if(si=ch) return 1; return 0;void fun(char *s,char *t,char *p) int i,j; for(i=j=0;ti!=0;i+)if(test(s,strlen(s),ti)=0&test(t,i,ti)=0)pj=ti; j+; pj=0;void main()char s150,s250,s350; gets(s1);gets(s2); fun(s1,s2,s3); puts(s3);3 編寫函數(shù)int fun(int m),計算并返回滿足表達(dá)式:1+(

4、1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+n)=m最大的n。例如,當(dāng)m=10000時,程序輸出:n=38。int fun(int m)int a,i,s; for(a=1,s=0;s=m;a+) for(i=1;i=a;i+) s+=i; return(a-2);void main()int x; scanf(%d,&x); printf(n=%dn,fun(x);4 編寫函數(shù)void fun(int *x,int n),它的功能是:求出數(shù)組x中的最小數(shù)和次最小數(shù),并把最小數(shù)和a0中的數(shù)對調(diào)、次最小數(shù)和a1中的數(shù)對調(diào),其余的數(shù)保持不變。如程序運(yùn)行時若輸入:2 4 6 11 3

5、 9 7 0 5 8,則輸出:0 2 6 11 3 9 7 4 5 8。#define N 10 void fun(int *x,int n) int i,j,k,t; for(i=0;i2;i+) k=i; for(j=i+1;j*(x+j) k=j; if(k!=i) t=*(x+i);*(x+i)=*(x+k);*(x+k)=t; main() int aN,i;for(i=0;iN;i+)scanf(%d,a+i);fun(a,N);for(i=0;iN;i+)printf(%d ,ai);printf(n);5 編寫函數(shù)long fun(int high,int n),功能是:計算并

6、返回high以內(nèi)(不包含high)最大的n個素數(shù)之和。若不足n個,則到最小素數(shù)2為止。例如:若high=100,n=10,則函數(shù)的返回值為:732;若high=11,n=10,則函數(shù)返回:17。long sushu(m)int i; for(i=2;i=m) return 1; else return 0;long fun(int high,int n)int i,j=0; long s=0; if(high1;i-) if(sushu(i) s+=i; j+; if(j=n) return s; return s;void main()int k,n; scanf(%d%d,&k,&n);

7、printf(sum=%ldn,fun(k,n);6 請編寫函數(shù)int fun(int *a,int n),它的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a0、a1、a2、中,把奇數(shù)從數(shù)組中刪除,偶數(shù)個數(shù)通過函數(shù)值返回,以-1作為有效數(shù)據(jù)的結(jié)束標(biāo)志。例:若輸入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,輸出:2 4 6 8 10 12 14 n=7int fun(int *a,int n)int i,j,k=0; *(a+n)=-1; for(i=0;*(a+i)!=-1;i+) if(*(a+i)%2!=0) for(j=i;*(a+j+1)!=-1;j

8、+) *(a+j)=*(a+j+1); *(a+j)=-1; i-; k+; return(n-k);void main()int x15,i,n; for(i=0;i15;i+)scanf(%d,x+i); n=fun(x,15); for(i=0;xi!=-1;i+)printf(%d ,xi); printf(n=%dn,n);7給定程序中,函數(shù)fun的功能是:有NN矩陣,以主對角線為對稱線,對稱元素相加并將結(jié)果存放在左下三角元素中,右上三角元素置為0。例如,若N=5,有下列矩陣:1 2 3 4 5 計算結(jié)果為:1 0 0 0 02 3 4 5 6 4 3 0 0 03 4 5 6 7

9、6 8 5 0 04 5 6 7 8 8 10 12 7 05 6 7 8 9 10 12 14 16 9#define N 5void fun(int aNN)int i,j; for(i=0;iN;i+) for(j=0;ji)aji+=aij; aij=0;void main()int xNN=1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,5,6,7,8,9,i,j;fun(x);for(i=0;iN;i+)for(j=0;jN;j+)printf(%3d,xij); printf(n);8. 函數(shù)void fun(int x,char * p)實(shí)現(xiàn)十進(jìn)

10、制整數(shù)x到二進(jìn)制的轉(zhuǎn)換。轉(zhuǎn)換后的二進(jìn)制數(shù)以字符串的方式放置于p所指向的數(shù)組中。如輸入13,輸出1101,輸入-13,輸出-1101。#include stdio.hvoid fun(int x,char *p)char *q,t; if(x0) *p+=-;x=-x; if(x=0)*p+=0;*p=0;return; q=p; for(;x!=0;x/=2)*p+=x%2+0; *p=0;for(p-;qp;q+,p-) t=*q;*q=*p;*p=t; main()int a; char c18; scanf(%d,&a); fun(a,c); printf(%dS BINARY IS:

11、%sn,a,c);9. 編寫函數(shù)int fun(char (*ss)N,int m,char *s),功能是:形參ss指向一個m行N列的二維字符數(shù)組,每行存放一個字符串。求出最大的字符串,復(fù)制到s所指的字符數(shù)組中,然后返回此最大字符串的長度。 #define N 30 int fun(char (*ss)N,int m,char *s) int i,max; max=0; for(i=1;i0)max=i; strcpy(s,ssmax); return strlen(ssmax); main() char a8N,bN;int i,len;for(i=0;i8;i+)gets(ai);len

12、=fun(a,8,b);printf(len=%d,str=%sn,len,b);10 給定程序中,函數(shù)void fun(char *s)的功能是:在形參s所指字符串中的每個數(shù)字字符之后插入一個*號。例如,形參s所指的字符串為:def35adh3kjsdf7。執(zhí)行結(jié)果為:def3*5*adh3*kjsdf7*。#include#includevoid fun(char *s)int i,j; char a100; for(i=0,j=0;*(s+i)!=0;i+,j+) aj=*(s+i); if(*(s+i)=0&*(s+i)0;i-=2) si=si-2; s0=t; else t=sl-

13、2; for(i=l-2;i0;i-=2) si=si-2; s0=t; void main()char str80; gets(str); fun(str); puts(str);12編寫函數(shù)void fun(char *s1,char *s2),功能是:對形參s1所指字符串升序排序,并將排序后下標(biāo)為偶數(shù)的字符取出,寫入形參s2所指字符數(shù)組中,形成一個新串。例如,下面程序若輸入:The C Programming Language,輸出:LTaegghmnor。(表空格)void fun(char *s1,char *s2)int i,j,n; char t; for(i=0;*(s1+i)

14、!=0;i+) n=i; for(j=i;*(s1+j)!=0;j+) if(*(s1+n)*(s1+j) n=j; t=*(s1+n);*(s+n)=*(s+i);*(s+i)=t; for(i=0;*(s1+)!=0;i+) if(i%2=0) *s2=*(s1+i); s2+; *s2=0;void main()char a80,b80; gets(a); fun(a,b); puts(b);13函數(shù)void fun(char s)的功能是:將s所指字符串中ASCII值為奇數(shù)的字符刪除。例如,若s所指字符串中的內(nèi)容為:“ABCDEFG12345”,其中字符A的ASCII碼值為奇數(shù)、字符1

15、的ASCII碼值也為奇數(shù)、都應(yīng)當(dāng)刪除,其它依此類推。最后s中內(nèi)容是:“BDF24”。void fun(char s)int i,j; for(i=0;si!=0;i+) if(si%2=1) for(j=i;sj!=0;j+) sj=sj+1; i-; void main()char a80; gets(a); fun(a); puts(a);14請編寫一個函數(shù)int fun(long int x),它的功能是:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1;否則返回0。所謂“同構(gòu)數(shù)”是指這樣的數(shù),它出現(xiàn)在它的平方數(shù)的右邊。例如:輸入整數(shù)5,5的平方數(shù)是25,5是25中右側(cè)的數(shù),所以5是同構(gòu)數(shù)

16、,輸出Yes。要求x的值不大于10000。int fun(long int x)long s; s=x*x; while(x!=0) if(s%10!=x%10) return 0; x/=10; s/=10; return 1;void main()int x; scanf(%d,&x); if(fun(x)=1)puts(Yse); else puts(No);15編寫取子字符串函數(shù)void fun(char s1,char s2,int m,int n),其作用是將字符數(shù)組s2中從第m個字符開始的共n個字符拷貝到數(shù)組s1中;若s2中剩余字符不足n個,則取到尾部。程序運(yùn)行時,當(dāng)輸入abcd

17、123、4,3時應(yīng)輸出d12;當(dāng)我們輸入abcd123、4,6時應(yīng)輸出d123。注意,這里是將1作為起始計數(shù)。#includevoid fun(char s1,char s2,int m,int n)int i,a,b; a=strlen(s2); b=(am+n-1?a:m+n-1); for(i=m-1;ib;i+) *s1=*(s2+i);s1+; *s1=0;main()static char a100,b100; int s,len; void fun(char s1,char s2,int m,int n); puts(ENTER A STRING:); gets(a); puts

18、(ENTER STARTING POSITION AND LENGTH:); scanf(%d,%d,&s,&len); fun(b,a,s,len); printf(THE SRBSTING IS:%sn,b);16. 編寫函數(shù)void fun(char *str),將參數(shù)字符串中各單詞首字母變大寫,其余字母變小寫。輸入輸出在main中實(shí)現(xiàn)。如輸入you HAVE 10 books,dont you? 輸出You Have 10 Books,Dont You?。單詞以空格、逗號、句號分隔。#includevoid fun(char *str)int i,j; for(i=0;stri;i+)

19、 if(stri=A&stri=a&str0=a&stri+1=z) stri+1-=32; main()char a100; gets(a);fun(a);puts(a);17. n個整數(shù),前面各數(shù)循環(huán)順序后移m個位置,最后m個數(shù)變成最前面m個數(shù)。寫函數(shù)void fun(int *p,int n,int m),實(shí)現(xiàn)上述功能。在main()中輸入與輸出。如下面程序輸出 7 8 9 10 1 2 3 4 5 6 。注意,m可能大于n。#include stdio.hvoid fun(int *p,int n,int m) int i,j,k,t; k=m%n; for(i=0;i=0;j-) p

20、j+1=pj; p0=t; main()void fun(int *,int ,int ); int x10=1,2,3,4,5,6,7,8,9,10,i; fun(x,10,14); for(i=0;i10;i+) printf(%d ,xi); printf(n); 18. 編寫函數(shù)void fun(char *s1,char *s2),實(shí)現(xiàn)字符串s1與s2的交叉連接,連接后得到的新字符串放在s1中。如輸入abc12345,輸出a1b2c345,若輸入abcde123,則輸出a1b2c3de。 #include#includevoid fun(char *s1,char *s2)int i

21、,j,k; for(j=0,i=1;s2j!=0;) for(k=strlen(s1);k=i;k-) s1k+1=s1k; s1i=s2j; j+;i+; if(s1i) i+; main()char a100,b100; void fun(char *,char *); gets(a); gets(b); fun(a,b); puts(a);19. 傳說可以根據(jù)兩個人的生日來計算其緣分.方法:將兩個人的生日各位相加,將得到的數(shù)再一次各位相加,直到其值為一個一位數(shù),此數(shù)即代表兩個人的緣分.例如,兩個生日為:19820523,19841111,則各位相加:1+9+8+2+5+2+3+1+9+8

22、+4+1+1+1+1得:56;再5+6得11;再 1+1得2,即為兩人的緣分.編寫計算緣分程序,兩個生日由鍵盤輸入.#include stdio.hint fun(long x,long y) int i,s,t; for(i=0,s=0;i=10) for(i=0,t=0;s;i+) t+=s%10; s=s/10; s=t; return s; main()long x,y;int k;scanf(%ld%ld,&x,&y);k=fun(x,y);printf(yuan fen is %d,k);20. m個人圍成一圈,1,2,3循環(huán)報數(shù),報到3的人退出,并將退出的序號依次存到數(shù)組p中,包

23、括最后一個人的序號。到最后只余1人,輸出最后留下的是第幾號(最初的序號,以1起始)及。若m=6,則輸出n=1 3 6 4 2 5 1;若m=10,則輸出n=4 3 6 9 2 7 8 5 10 4;若m=100,則輸出n=91。函數(shù)int fun(int n ,int *p)實(shí)現(xiàn)上述功能,返回n個人中最后余的1人的起始序號,并將退出的序號順序?qū)懭雙指向的數(shù)組中。#include#include#includeint fun(int n ,int *p)int i,*s,j,k,t; s=(int *)malloc(sizeof(int)*n); for(i=0;in;i+)si=i+1; t=0; for(k=0,i=0,j=0;kn-1;i+)if(si!=0)j+; if(j=3)pt=si; t+; si=0; j=0;k+; if(i=n-1) i=-1; for(i=0;in;i+)if(si!=0) break; pt=si; return si;void main()int m,a10000,i,num; scanf(%d,&m); num= fun(m,a); printf(n=%dn,num); for(i=0;im;i+) printf(%8d ,ai); printf(n);14

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!