C語言程序的設(shè)計題目_第1頁
C語言程序的設(shè)計題目_第2頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、A C 語言程序設(shè)計教程(第三版)課后習(xí)題11.1定義一個結(jié)構(gòu)體變量(包括年、月、日)。計算該日在本年中是第幾天,注意閏年問題。structint mai n()int days(i nt year,i nt mon th,i nt day);int s;scan f(%d %d %d, &tia n.year, &tia n.mo nth, &tia n.day);s=days(tia n. year,tia n.mon th,tia n. day);prin tf(%dn,s);int days(i nt year,i nt mon th,i nt day)inti=month,s,a13

2、=0,31,28,31,30,31,30,31,31,30,31,30,31,sum=0,leap,j;if(year%4=0)if(year%100=0)if(year%400=0)Ieap=1;elseleap=0;elseleap=1;elseleap=0;if(leap&i 2)for(j=1;ji;j+)sum=sum+aj;s=sum+day+1;elsefor(j=1;ji;j+)sum=sum+aj;s=sum+day;return(s);BC 語言程序設(shè)計教程(第三版)課后習(xí)題 11.3現(xiàn)有有 N 個學(xué)生的數(shù)據(jù)記錄,每個記錄包括學(xué)號、 三科成績。 編寫一個函數(shù)in put,用

3、來輸入一個學(xué)生的數(shù)據(jù)記錄。編寫一個函數(shù)print,打印一個學(xué)生的數(shù)據(jù)記錄。在主函數(shù)調(diào)用這兩個函數(shù),讀取 N 條記錄輸入,再按要求輸出。N100 【考慮用什么做函數(shù)的參數(shù)?結(jié)構(gòu)體變量,還是指向結(jié)構(gòu)體的指針變量,還是用結(jié)構(gòu)體數(shù)組名?】非結(jié)構(gòu)體做法#in cludeint mai n()int i,n;int a100,b100,c100;char e10081,f10081;scan f(%d,&n);for(i=1;i=n ;i+)scan f(%s%s%d%d%d,ei,fi,&ai,&bi, &ci);for(i=1;i=n ;i+)prin tf(%s,%s,%d,%d,%dn,ei,fi

4、,ai,bi,ci); return 0;C 結(jié)構(gòu)體訓(xùn)練有 N 個學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、3 門課的成績,從鍵盤輸入 求打印出 3 門課的總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、注意:刻畫學(xué)生的數(shù)據(jù)類型必須用結(jié)構(gòu)體類型。不能用多個數(shù)組解決#in clude int mai n()struct stuint num;char n ame20;int scorel;int score2;int score3;boy1024;int N,i,s,s1=0,s2=0,s3=0,max=0,c;float ave1,ave2,ave3;scan f(%d,&N);for(i=0;imax)m

5、ax=s;c=i;ave1=(s1*1.0)/(N*1.0);ave2=(s2*1.0)/(N*1.0);ave3=(s3*1.0)/(N*1.0);prin tf(%.Of %.0f %.0fn,ave1,ave2,ave3);prin tf(%d %s %d %d %dn,boyc. nu m,,boyc.score1,boyc.score2,boyc.sco re3);D 矩陣轉(zhuǎn)置輸入 N*N(N100)的矩陣,輸出它的轉(zhuǎn)置矩陣。#in cludeint mai n()int N,a100100,i,j,b100100;scan f(%dn,&N);for(i=0;iN

6、;i+)for(j=0;jN;j+)scan f(%d,&aij);for(i=0;iN;i+)for(j=0;jN;j+)bji=aij;for(i=0;iN;i+)for(j=0;jN-1;j+)prin tf(%d ”,bij); prin tf(%dn,biN-1);E 求矩陣的外圍元素之和求矩陣的外圍元素之和#in cludeint mai n()int a1010,i,j,N,s=0;scan f(%dn,&N);for(i=0;iN;i+)for(j=0;j=n=10,*=m=100) n 和 m 由鍵盤輸入,并將這些素數(shù)存儲到數(shù)組 a 中并輸出(每個素數(shù)后面帶一個空格)要求:(

7、 1 )編寫如下接口的功能函數(shù): int fun (int n ),該函數(shù)的功能是判斷n 是不是素數(shù)。 若是,返回 1 ,若不是返回 0。( 2) main 函數(shù)去調(diào)用該功能函數(shù)#includeint fun(int n)int t;for(t=2;tn;t+)if(n%t=0)break;if(tn)return 0;else return 1;int main()int n,m,i,a90,j=0,b;scanf(%d,%d,&n,&m);for(i=n;i=m;i+)if(fun(i)=1)aj+=i;for(b=0;bj;b+)prin tf(%d ”,ab);G 編程題刪除字符串中的

8、特殊符號指定字符串中僅包含字母(含大小寫),空格和星號*,編寫自定義函數(shù)fun,刪除其中的*程序的主體框架已經(jīng)提供在下面,可以直接復(fù)制粘貼到答題框。注意僅能改動注釋之的容,注釋外容不得修改,否則將被判違規(guī)。void fun( char *p)/* 注釋 1 :答題請在本行與注釋2 之間編寫程序。本行注釋不得刪除*char *p1,*p2;for(p 仁 p2=p;*p1;p1+)if(*p1!=*)*p2+=*p1;*p2=0;return p;注釋 2: 答題請在本行與注釋 1 之間編寫程序。 本行注釋不得刪除 intmain()char b1024;while(gets(b)!=0)fun

9、(b);printf(%sn,b);return 1;H 冒泡排序下列給定程序中函數(shù) fun 的功能是:用冒泡法對 6 個字符串按由小到大的順序進(jìn)行排序。 請 改正程序中的錯誤, 使它能得出正確的結(jié)果。 注意:不要改動 main 函數(shù), 不得增行或刪行, 也不得更改程序的結(jié)構(gòu) . 改錯位置已經(jīng)標(biāo)注為 found ,所有改錯只能在 found 附近修改。#include #include #define MAXLINE 20fun(char* pstr6)int i,j;char *p;for(i=0;i5;i+)*(pstr+i)=*(pstr+j);*(pstr+j)=p;int mai n

10、()*found*for(j=i+1;j0)p=*(pstr+i);*found*int i;char *pstr6,str6MAXLINE;for(i=0;i6;i+)pstri=stri;for(i=0;i6;i+)scanf(%s,pstri);fun(pstr);printf(The String after sorting:n);for(i=0;i6;i+)printf(%sn,pstri);return 0;I 2015C 二級考試無紙化操作題( 2)下列給定程序中,函數(shù) fun 的功能是:把形參 a 所指數(shù)組中的最小值放在元素 aO 中,接著 把 a 所指數(shù)組中的最大值放在 a1

11、元素中;再把 a 所指數(shù)組元素中的次小值放在 a2中,把 a 所指數(shù)組元素中的次大值放在 a3,依此類推。 例如,若 a 所指數(shù)組中的數(shù)據(jù)最初排列 為:9, 1, 4, 2, 3,6, 5, 8, 7;則按規(guī)則移動后,數(shù)據(jù)排列為: 1, 9, 2, 8, 3, 7,4, 6,5。形參 n 中存放 a 所指數(shù)組中數(shù)據(jù)的個數(shù)。 規(guī)定 fun 函數(shù)中的max 存放當(dāng)前所找的最大值, px 存放當(dāng)前所找最大值的下標(biāo)。 請在程序的下畫線處填入正確的容并將下畫線刪除, 使程序得出正確的結(jié)果。 注意: 部分源程序給出如下。不得增行或刪行,也不得更改程序 的結(jié)構(gòu) !void fun(char *p)/* 注釋

12、 1 : 答題請在本行與注釋 2 之間編寫程序。本行注釋不得刪除*/char *p1,*p2;for(p1=p2=p;*p1;p1+)if(*p1!=*)*p2+=*p1;*p2=0;return p;/* 注釋 2:答題請在本行與注釋 1 之間編寫程序。 本行注釋不得刪除 */int main()char b1024;while(gets(b)!=0)fun(b);printf(%sn,b);return 1;J 編輯部的故事( 1 )文藝青年雜志社對作者按字符數(shù)付稿酬。編輯部的編輯遇到一個煩心事,最近作者群中流行 “咆哮體”文書,一句話里帶有很多個感嘆號,而且咆哮體中經(jīng)?;祀s著“有木有”和

13、“尼瑪”這樣無用的詞語,使得雜志的額外支 出大大增加。你需要幫助解決這一個問題,將文本中多個連續(xù)的感嘆號,無用的“有木有” 和“尼瑪”等無用的詞。K 改錯題39F 面程序中函數(shù) fun 的功能是: 統(tǒng)計 p2 子字符串在 pl 所指的主字符串中出現(xiàn)的次數(shù)。請改正程序中的錯誤,使得它能得出正確結(jié)果#in elude int fun( char *p1,char *p2)int i,j,k,num=0;/* found */for(i=0;p1i;i+)return num;int mai n()char str80,substr80;gets(str);gets(substr);prin tf(

14、%d,fu n(str,substr);return 0;L 編程題33編寫函數(shù) fun,其功能是找出 MXN 的二維浮點數(shù)組中最大元素的值,將這個數(shù)輸出。(M,N均小于 100)void fun( float *p,int M,i nt N)float mx=*(p+0);int i;for(i=0;i1024;i+)beginif(*(+P)mx)mx=*p;prin tf(%.4f,mx);int mai n()int a100100,M,N,i,j; sea nf(%d%d,&M,&N);for(i=0;iM;i+) for(j=0;jN;j+) scan f(%f,&aij);fun

15、(&aOO,M,N);return 0;M 第七章之找到第一名(1)某市進(jìn)行了一次英語競賽,一共有 N 個人報名參加(N1000000),按照報名順序分別是 1 號N 號。英語競賽的得分圍是 0100 分,可能會有 0.5 分存在?,F(xiàn)在給你 N 的值和按照 排列的得分,要求輸出第一名的。若是有并列第一名則需要同屬輸出多個第一名的。* end#in cludeint mai n()int a100,N,i,max=0,n;scan f(N=%d,&N);for(i=0;imax)max=ai;for(i=0;iN;i+)if(max=ai)n=i+1;printf(%dn,n);N 第七章之刪除

16、數(shù)組元素( 1 )輸入 N個大小圍在 0100 (含 0和 100)的整數(shù)(N100),并未排序且不重復(fù)。從中尋找一個指定的數(shù)的下標(biāo)號(從 1 開始),從數(shù)組中刪除, 并將剩余的數(shù)組容輸出。#include int main()int n,a99,i,b;scanf(N=%d,&n);for(i=0;i=n-2;i+)scanf(%d,&ai);scanf(%d,&an-1); scanf(%d,&b);if(b!=n)for(i=0;i=b-2;i+)Printf(%d,ai);for(i=b;i=n-2;i+)printf(%d,ai);printf(%d,an-1);elsefor(i=

17、0;i=n-3;i+)printf(%d,ai);printf(%d,an-2);O 第七章之冒泡排序法(1)使用冒泡排序法對數(shù)組元素進(jìn)行排序,要求輸出每一趟排序后的數(shù)組容。數(shù)組大小 組元素定為正整型。#in cludeint mai n()int a1O,i=O,j, n,t,m;while(sca nf(%d,&ai)!=EOF) i+;n=i;for(i=0;i n-1;i+)for(j=0;j aj+1) N10,數(shù)t=aj;aj=aj+1;aj+1=t; prin tf(%d,aO);for(m=1;mn;m+)printf(,%d,am);printf(n);P 所有串長超過 k

18、的字符串中后面的字符刪除函數(shù) fun 的功能是:在形參 ss 所指字符串?dāng)?shù)組中,將所有串長超過 面的字符刪除,只保留前面的 k 個字符。 ss所指字符串?dāng)?shù)組中共有串長小于 N(N=10) 。#include void fun(char ss11,int M,int k)/* your code start */int i=0;k(K=N)。的字符串中后M ( M=5)個字符串,且while(iM)ssik=0;i+;your code endint main()int M,k,i;char ss511;scanf(%d,&M);scanf(%d,&k);gets(ss0);for(i=0;iM

19、;i+)gets(ssi);fun(ss,M,k);for(i=0;iM;i+)puts(ssi);return 0;Q 字符串按長度由短到長進(jìn)行排序函數(shù) fun 的功能是:在形參 ss 所指字符串?dāng)?shù)組中,將所k(K=N)。的字符串中后M ( M=5)個字符串,且有串長超過 面的字符刪除,只保留前面的 k 個字符。ss 所指字符串?dāng)?shù)組中共有 串長小于 N(N=10) 。#include#includevoid fun(char ss11,int M)char *ps5,*tp;int i,j,k;for(i=0;iM;i+) psi=ssi;for(i=0;iM-1;i+)k=i;for(j=

20、i+1;jstrle n(psj)k=j;tp=psi;psi=psk;psk=tp;for(i=0;iM;i+)puts(psi);int mai n() int M,i;char ss 511;scan f(%d,&M);gets(ssO);for(i=0;iM;i+) gets(ssi);fun( ss,M);R 補齊字符串函數(shù) fun 的功能是:求出形參ss 所指字符串?dāng)?shù)組中最長字符串的長度,其余字符串左邊用字符*補齊,使其與最長的字符串等長。字符串?dāng)?shù)組中共有M( M=5)個字符串,且串長小于 N。(N=10)#i nclude#in eludevoid fun(char ss11,i

21、nt M)int i,j,k=O, n, m,le n;for(i=0;in)n=len;k=i;for(i=0; i=0; j-)ssim-=ssij;for(j=0; j n _le n; j+)ssij=*;int mai n() int M,i;char ss 511;scan f(%d,&M);gets(ssO);for(i=0;iM;i+) gets(ssi);fun( ss,M);for(i=0;iM;i+) puts(ssi);S 每個單詞的第一個字母改成大寫讀入一個英文文本行,將其中每個單詞的第一個字母改成大寫,然后輸出此文本行(這里單詞是指由空格隔開的字符串)。#in clude #in clude ctype.h#include string.h void upfst(char *p)*p=toupper(*p);P+;for(;*p;p+)if(*(p-1)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論