C語言習題題庫作答_第1頁
C語言習題題庫作答_第2頁
C語言習題題庫作答_第3頁
C語言習題題庫作答_第4頁
C語言習題題庫作答_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、程序填空共2題第1題/*【程序填空】功能:編程求某年第n天的日期。用數組表示月天數。*/#i nclude #in elude mai n()int y,m,f, n;int a12=31,28,31,30,31,30,31,31,30,31,30,31; prin tf(y, n=);sca nf(%d,%d, &y,&n);* *SPACE *f=y%4=0&y%100!=0【| 】y%400=0;* *SPACE *a1【+=】f;if(n 365+f)pri ntf(error!n);exit(0);* *SPACE *for(m=1;m 【】am-1;n-=am_1,m+);prin

2、 tf(y=%d,m=%d,d=%dn,y,m, n);第2題/*【程序填空】z的值并輸岀,要求輸岀結果保留2位小數。題目:下列程序從鍵盤輸入所需數據,求岀*/#in clude * *SPACE *【#i nclude】mai n() int x; double y,z;* *SPACE *scanf(“【d%lf】,&x,&y);z=2*x*sqrt(y);* *SPACE *prin tf(z=【lf 1 ,z);程序改錯共1題第1題/*【程序改錯】功能:將s所指字符串中的字母轉換為按字母序列的后續(xù)字母(但 Z 轉換為A, z轉換為a),其它字符不變。*/#in elude /函數定義#

3、in elude #in elude vconi o.h void fun (char *s)* *FOUND *while(*s!= 0 )/字符串結尾標志為0if(*s=A & *s = a & *s=z)if(*s=Z)*s=A;else if(*s=z)else* *FOUND *s += 1;/s為字符指針,而*s為指針所指的字符*FOUND*s+mai n()char s80;prin tf(n En ter a stri ng with len gth 80. :nn ); gets(s);prin tf(n The stri ng : nn );puts(s);fun ( s

4、);/函數調用printf (nn The Cords :nn );puts(s);程序填空 共2題第1題/*【程序填空】功能:計算圓周率的近似值。*/#in elude #in elude mai n()int s,n;/*SpCE*/double【pi】,t;t=1;pi=0;n=1;s=1;/*SpCE*/while( 【fabs(t)】=2e-6)fabs()為求絕對值函數pi+=t; n+=2;s=_s;t=s/n;/*SpCE*/pi*= 【4】;prin tf(pi=%.6fn,pi);第2題/*【程序填空】功能:輸入一奇數n,打印由1-n*n構成的魔方矩陣。魔方矩陣的行列及對角

5、線的和都相等。魔方矩陣:8 1 63 5 74 9 2*/#i nclude #i nclude #defi ne MAXSiZE 20void main (void)int matrixMAXSiZEMAXSiZE;int cou nt;int row;int eolu mn;int n;char lin e100;prin tf(nOdd n Magic Square Gen erator);prin tf(n=);prin tf(nn n Please - );gets(l in e);n = atoi(li ne);if (n MAXSiZE)prin tf(n* ERROR * n

6、should be = %d, MAXSiZE); else if (n % 2 = 0)pri ntf(n* ERROR * n must be an odd in teger);elserow = 0;colum n = n/2;for (cou nt = 1; cou nt = n*n; cou nt+) matrixrowcolum n = cou nt;* *SPACE *if (【count/n 】=0)row+;else* *SPACE *row= (row =【0】)? n - 1 : row - 1;*SPACE*colum n = (colum n =【n-1 】)? 0

7、: column + 1;pri ntf(nnMagic Square of n %d :nn, n);for (row = 0; row n; row+)for (colu mn = 0; colu mn n; colum n+) prin tf(%4d, matrixrowcolum n);prin tf(n);程序改錯共1題/*【程序改錯】 功能:求1到10的階乘的和。*/ #in clude float fac(int n);/ 函數聲明mai n() int i;float s=0;/函數聲明應放在主函數之前,這句放錯位置了, 刪了吧,也可以不改,可以運行,float fac(i n

8、t n);但良好的習慣就是改*FOUND*for(i=1;i10;i+)* *FOUND *s +=fac(i);/函數調用prin tf(%fn,s);float fac(i nt n)/函數定義* *FOUND *float y=1;int i;/int改為 float,否則會造成數據丟失,當然也可以不改,畢竟你們沒學到for(i=1 ;i=n ;i+)y=y*i;/*found*/return y;程序填空共2題第1題/*【程序填空】功能:刪除字符串中的指定字符,字符串和要刪除的字符均由鍵盤 輸入。*/ #in elude mai n()char str80,ch;int i,k=0;*

9、 *SPACE *gets(【str 】);ch=getchar();* *SPACE *for(i=0; 【stri】;i+) if(stri!=ch)/輸入字符串放入str/循環(huán)到字符串結束為止假如沒找到就將原字符賦值過去找到要刪除的就跳過繼續(xù)找* *SPACE *【strk=stri 】 k+;/在同一個數組中操作,后面的字符覆蓋了前面要刪除的位置* *SPACE *【strk= 0 】;puts(str);/ 輸岀/在新字符串結尾處加結束符/*【程序填空】功能:輸入一個整數,計算它可能是哪兩個整數的平方和,并打印 結果數據。女口: 34是5和3或3和5的平方和。*/#in elude

10、/* for i/O fun ctio ns*/#i nclude /* for atoi()#in clude /* for sqrt() void main (void)int give n;/* the give n n umber*/*/*/int row, colum n;/* row and colum n in dicators*/int cou nt;/* n umber of soluti ons */char lin e100;prin tf(nReprese nting a Give n Number as the Sum of Two Squares);prin tf(

11、n=n); prin tf(nAn in teger Please - );gets(l in e);give n = atoi(li ne);prin tf(nCou nt X Y);printf(n);row = 1;/* starts from far en ough */colu mn = (int) (sqrt(double) give n) + 0.5);cou nt = 0;/* so soluti on yet */while (row 0) /* sca n dow n. */if (row*row + colum n*colu mn = give n) * *SPACE *

12、【cou nt+ 】;prin tf(n%5d%7d%7d, cou nt, row, colum n);row+; colu mn-;else if (row*row + colu mn *colum n give n)* *SPACE *【column-】else* *SPACE *【row+】;if (cou nt = 0)pri ntf(nnSorry, NO ANSWER fou nd.);elsepr in tf(nn There are %d possible an swers.,cou nt); 程序改錯共1題第1題/*【程序改錯】功能:計算并輸岀 k以內最大的10個能被13或

13、17整除的自然數之和 k的值由主函數傳入。例如:若k的值為500,則函數值為 4622。 */#in elude int fun (i nt k)int m=O,mc=O;* *FOUND *while (k=2)& &(mc10)* *FOUND *if(k%13=0)|(k%17= =0)m=m+k;mc+;* *FOUND *k -;* *FOUND *return m;void main()prin tf(%dn,fu n(500);程序填空共2題第1題/*【程序填空】 功能:當輸入“ 2,5”的時候輸岀為“ 2 5 5*/#in clude #defi ne max 100 mai

14、n() int fmax,i,j,k,m;sca nf(%d,%d,&k,&m);* *SPACE *for(i=0;i=【2】;i+)fi=0;功能:用選擇法對數組中的n個元素按從小到大的順序進行排序/*SpCE*/f【k-1 】=1;for(i=k;i=m;i+)/*SpCE*/for(j=i_k;jv=i_1;j+)fi【=1+】fj;prin tf(%d%10d%10dn,k,m,fm);第2題/*【程序填空】 功能:識別輸入的字符串,每個單詞輸岀一行*/#in elude #in clude void mai n()int c;int in space;/*SpCE*/【inspac

15、e=0 】; while(c = getchar() != n)if(c = | c = t | c = n)/*SpCE*/if(【inspace=O 】)in space = 1;putchar(n);elsein space = 0;/*SpCE*/【putchar(c)】;程序改錯共1題第1題/*.【程序改錯】*/#in elude #defi ne N 20 void fun (i nt a, int n)int i, j, t, p;for (j = 0 ;j n-1 ;j+)* *FOUND *for (i = j;i ap)* *FOUND *p= i ;t = ap;ap =

16、 aj;aj = t;mai n()int aN=9,6,8,3,-1,i, m = 5;printf(”排序前的數據:);for(i = 0;i m;i+)pri ntf(%d ,ai);prin tf(n);fun (a,m);printf(排序后的數據:);for(i = 0;i m;i+)pri ntf(%d ,ai);prin tf(n);程序填空共2題第1題/*【程序填空】功能:產生10個30,90區(qū)間上的隨機整數,然后對其用選擇法 進行由小到大的排序。*/#i nclude #in cludemai n()* *SPACE *int t;int i,j,k;int a10; fo

17、r(i=0;i10;i+)ai= ran d()%61 +30;for(i=0;i9;i+)* *SPACE *k=i;for(j=i+1;jaj) k=j;if(k!=i)t=ak; ak=ai; ai=t;* *SPACE *for( i=0;i10;i+)prin tf(%5d,ai);pri ntf(n);第2題/*【程序填空】功能:輸入一正整數 n、打印1-n能夠組成的所有自然數集合 (包含空集)。*/#i nclude #i nclude #defi ne MAXSiZE 20#defi ne LOOP 1void main (void)int setMAXSiZE;int n,

18、i;int positi on;char lin e100;prin tf(nAll Possible Subsets Gen erati on by Lexical Order);prin tf(n=); prin tf(nnN umber of Eleme nts in the Set - );gets(l in e);n = atoi(li ne); prin tf(n); positi on = 0;setpositi on = 1;while (LOOP)* *SPACE *printf(n%d,【?】);for (i = 1; i = positi on; i+)prin tf(,

19、%d, seti);prin tf();if (setpositi on #in clude * *FOUND *fun ( int n )int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k = n; k+ ) * *FOUND *s = (double)a / b;c = a;a = a + b;b = c;* *FOUND *return c;mai n()int n = 5;prin tf( nThe value of fun cti on is: %lfn, fun ( n ); 程序填空共2題第1題/*【程序填空

20、】 功能:輸岀結果為:*/#in clude mai n()* *SPACE *static charint i,j,k;?】 =* * * * *;char space=: for(i=0;i5;i+)pri ntf(n);for(j=1;j=3*i;j+)* *SPACE *printf(%1c,【?】);* *SPACE *for(k=0;k5, 4-6, 7-8*/#i nclude #i nclude void main (void)long left, right;long sum;long GiVEN;int cou nt = 0;char lin e100;prin tf(nC

21、on secutive sum to a fixed give n n umber);prin tf(n=n);prin tf(nY our n umber ( 0) please - );gets(l in e);GiVEN = atol(li ne);for (sum = 0, right = 1; sum GiVEN; sum += right, right+)for (left = 1, right-; left GiVEN)sum -= left;* *SPACE *【?】elseif (sum = GiVEN)prin tf(n%ld = sum from %ld to %ld,G

22、iVEN, left, right);/*SpCe*/【?】;/*SpCe*/【?】;sum += right;if (cou nt 0)pri ntf(nn There are %d soluti ons in total., cou nt);elsepri ntf(nnSorry, there is NO solution at all.);程序改錯第1題/*【程序改錯】 功能:編寫函數fun計算下列分段函數的值:x*20x0且 xk -3f(x)= sin(x)0x10 且 x2 及 x3x*x+x-1其它*/#in elude #in elude double fun( double

23、x)* *FOUND *double y* *FOUND *if (x=0 & x10.0 & x!=2.0 & x!=3.0) y=sin (x);elsey=x*x+x-1;* *FOUND *return x;mai n()double x,f;prin tf(i nput x=);sea nf(%f, &x);f=fun (x);prin tf(x=%f,f(x)=%fn,x,f);程序填空 共2題第1題/*【程序填空】m個數功能:有n個整數,使其前面各數順序向后移m個位置,最后變成最前面的m個數*/#in elude * *SPACE *move(【?】)int n, m,array

24、20;int *p,array_e nd;* *SPACE *array_end=*(【?】);for(p=array+n_1;parray;p_)* *SPACE *p=*(【?】);*array=array_e nd;m-;if(m0) move(arra y,n, m);mai n()int n umber20, n, m,i;prin tf(the total n umbers is:);sca nf(%d,&n);prin tf(back m:); sca nf(%d,&m); for(i=0;i n-1;i+)sca nf(%d,&n umberi);sca nf(%d,&n um

25、ber n-1);* *SPACE *move(【?】);for(i=0;i n-1;i+)pri ntf(%d, numberi); prin tf(%d ,n umber n-1);/*【程序填空】 功能:打印岀如下圖案(菱形)*/#in clude mai n()int i,j,k;/*SpCE*/for(i=0;【?】;i+)for(j=0;j=4_i;j+)printf(“ );/*SpCE*/for(k=1;k=【?】;k+)prin tf(*);prin tf(n);/*SpCE*/for(【?】;j3;j+)for(k=0;kj+3;k+)printf(“ );for(k=0;

26、k5-2*j;k+)prin tf(*);prin tf(n);程序改錯/*.【程序改錯】 功能:求1到20的階乘的和。*/#in elude fun()int n,j;float s=0.0,t=1.0;for( n=1; n=20; n+)/*found*/s=1;for(j=1;j=n ;j+)/*found*/t=t* n;/*found*/s+t=s;/*found*/prin tf(jieche ng=%dn,s);mai n()fun ();程序填空 共2題第1題/*【程序填空】 功能:利用全局變量計算長方體的體積及三個面的面積。*/#in elude int s1,s2,s3;

27、int vs(i nt a,i nt b,i nt c)int v;* *SPACE *v=【?】s1=a*b;* *SPACE * *SPACE *s2=【?】s3=a*c;return v;mai n()int v,l,w,h;);prin tf(nin put len gth,width and heightscanf(%d%d%d,【?】,&w,&h);* *SPACE *v=【?】prin tf(v=%d s%d s2=%ds3=%dn,v,s1,s2,s3);第2題/*【程序填空】 功能:建立一個如下的二維數組,并按以下格式輸岀1 0 0 0 10 1 0 1 00 0 1 0 0

28、0 1 0 1 01 0 0 0 1*/ #in clude void mai n()int a55=0,*p5,i,j;for(i=0;i5;i+)* *SPACE *pi=【?】for(i=0;i5;i+)* *SPACE *(【?】+i)=1;* *SPACE *(pi+5-(【?】)=1; for(i=0;i5;i+)for(j=0;j#in elude #in elude void fun (char *s, char *t) * *FOUND *int i;sl = strle n(s); for (i=0; isl; i+)* *FOUND *ti = ssl-i;for (i=

29、0; isl; i+)tsl+i = si;* *FOUND *t2*sl = 0;mai n()char s100, t100;prin tf(nPlease en ter stri ng s:); sca nf(%s, s); fun(s, t);prin tf(The result is: %sn, t);程序填空共2題第1題/*【程序填空】功能:從鍵盤輸入若干行字符,輸入后把他們存儲到一磁盤文件 中。在從該文件中讀岀這些數據,將其中的小寫字母轉換 成大寫字母后在屏幕上輸岀。*/#in clude #in clude #defi ne N 100 mai n() FILE *fp;cha

30、r c,*p,sN20;int i,n;printf(n=);sca nf(%d,&n);* *SPACE *if(nN) exit(0);prin tf(i nput%d stri ng: n, n);for(i=0;i n ;i+)sca nf(%s,si);* *SPACE *fp=fopen(text,【?】);for(i=0;i a&c=z)c=+32; putchar(c);prin tf(n);fclose(fp);第2題/*【程序填空】功能:輸岀100到1000之間的各位數字之和能被15整除的所有數,輸岀時每10個一行。*/ #in elude mai n()int m,n ,

31、k,i=0;for(m=100;m=1000;m+)* *SPACE *【?】n=m;do/*SpCe*/k=k+【?】;n=n/10;/*SpCe*/【?】;if (k%15=0)pri ntf(%5d,m);i+;/*SpCE*/if(i%10=0)【?】;程序改錯/*.【程序改錯】功能:在一個已按升序排列的數組中插入一個數,插入后,數 組元素仍按升序排列。*/ #in clude #defi ne N 11mai n()int i,n umber,aN=1,2,4,6,8,9,12,15,149,156;prin tf(please en ter an in teger to inser

32、t in the array: n);for(i=0; i2;【?】)* *FOUND *sca nf(%d,&n umber)prin tf(The orig inal array: n); for(i=0;i=0;i-)if(n umber=ai)* *FOUND *ai=ai-1;elseai+1=n umber;* *FOUND *exit;if(n umbera0) a0 =n umber; pri ntf(The result array: n);for(i=0;iN;i+)prin tf(%5d,ai);prin tf(n);程序填空共2題第1題/*【程序填空】 功能:輸入學生成績并顯示。*/ # in elude struct

溫馨提示

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

評論

0/150

提交評論