C語(yǔ)言程序設(shè)計(jì)-課后習(xí)題答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)-課后習(xí)題答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)-課后習(xí)題答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)-課后習(xí)題答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)-課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí)題1和參考解答.什么是程序?【答案】在計(jì)算機(jī)中,程序是指導(dǎo)計(jì)算機(jī)執(zhí)行某個(gè)功能或功能組合的一組指令。每一條 指令都讓計(jì)算機(jī)執(zhí)行完成一個(gè)具體的操作,一個(gè)程序所規(guī)定的操作全部執(zhí)行完畢后,就能產(chǎn) 生計(jì)算結(jié)果。.計(jì)算機(jī)語(yǔ)言經(jīng)歷了哪幾個(gè)階段?【答案】計(jì)算機(jī)語(yǔ)言按其開(kāi)展的先后順序,經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言三個(gè) 階段。.程序的翻譯方式有哪幾種?【答案】按翻譯方式的不同,程序的翻譯方式有解釋和編譯兩種,其中C語(yǔ)言采用的是 編譯的方式。.編寫(xiě)一個(gè)簡(jiǎn)單的C程序,使得在屏幕上顯示以下信息:C is very fun.【參考源程序】#includeini main()printR“* prints”prin

2、tR“* prints”* *n)printR* * *n) return 0;.編寫(xiě)一個(gè)簡(jiǎn)單的C程序,使得在屏幕上顯示以下信息:木*【參考源程序】#includc ini main()printf( *);prim/ *”); printfC *”); printfT*); return 0;char s50;int i,n;gets(s);i=0;n=0;whilc(si+l!=O)if(si+l=si+l)n+;i+;)printfr%dn”,n);return 0;I.編寫(xiě)程序,找出一個(gè)二維數(shù)組中的鞍點(diǎn),即該位置上的元素在該行上最大、在該列 上最小。也可能沒(méi)有鞍點(diǎn)。【參考源程序】#in

3、cludeint main()|ini ij,k,flag 1 ,flag2,a3 4,max,maxj;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d.&aij);flag2=0;for(i=0;i3;i+)max=a|i();for(j=0;jmax)max=ai|jj;maxj=j;for(k=0,flag 1 = l;kakmaxjl)flag 1=0;if(flagl)prinif(”n 第11 行,第d 列的d 是鞍點(diǎn)n”,i,maxj,max); flag2= 1;if(!flag2)printf(n矩陣中無(wú)鞍點(diǎn)!n);return 0;).有十個(gè)字符串

4、,編程序在每個(gè)字符串中,找出最大字符按一一對(duì)應(yīng)的順序存入一維 數(shù)組a中,即第i個(gè)字符串中的最大字符放入a川中,輸出每個(gè)字符串中的最大字符?!緟⒖荚闯绦颉?includeint main()char s1020, a10;int i,j;for(i=0; i10; i+)gets(si);for(i=0; iIO; i+)ai=siO;for(j=l;siU!=,0;j+)if(aisi|j)ai=srilfj;)fbr(i=0;i10;i+)printf(%d %c,i, ai);return 0;).編寫(xiě)程序?qū)⒍S數(shù)組a中每個(gè)元素右移一列,最右一列換到最左一列,移后的數(shù)組 存到另一數(shù)組b中

5、,并按矩陣形式輸出b。【參考源程序】#includeint main()int a23=L2,3A5,6),b23;int i,j;for(i=0:i=l;i+)for(j=l;j3;j+)bij=ailj-l;for(i=0; i2; i+)bi0=ail2;printf(array b:n);fbr(i=0;i2;i+)(for(j=0;j3;j+)printf(%5d,bij);printf(n)return 0;J.編寫(xiě)程序?yàn)橐粋€(gè)5x5的二維數(shù)組a賦1到25的自然數(shù),然后輸出該數(shù)組的左下半三角元 素?!緟⒖荚闯绦颉?includeint main()int a55,ij,k=l;fbr

6、(i=0;i5;i+)for(j=0;j5;j+)aij=k+;for(i=0;i5;i+)for(j=0;j=i;j+)printf(%3d,aiU);printf(n);return 0;I.從鍵盤(pán)上接收十個(gè)三位的正整數(shù)(各個(gè)數(shù)位都不包括0)存入一個(gè)數(shù)組當(dāng)中,試將數(shù) 組中的每個(gè)數(shù)的百位與個(gè)位進(jìn)行交換(例123交換后成為321),將組合成的新數(shù)仍存入原數(shù) 組中。【參考源程序】#includeint main()int a10,i;for(i=0;il();i+)(scanf(ll%d,&afi);ai=ai% 10*100+ai/10%10*l O+ai/l 00;for(i=0;il();

7、i+)prin 氓%d M,ai);return 0;)習(xí)題5和參考解答.編寫(xiě)程序,調(diào)用函數(shù)求一個(gè)圓柱體的外表積和體積?!緟⒖荚闯绦颉?includevoid fun(int r,int h)|float area;arca=2*3.14*r*h;vol=3.14*r*r*h;printf(area=%.2f,vol=%.2f,area,vol);)int main()|int r,h;scanf(%d%d,&r,&h);fun(r,h);return 0;).編寫(xiě)一個(gè)函數(shù),輸出一個(gè)整數(shù)的全部素?cái)?shù)因子。例如:m=120時(shí),因子為2,3,5?!緟⒖荚闯绦颉?inckideint fun(int

8、n)(int flag=l J;for(i=2;in;i+)if(n%i=0)flag=0;return flag;)int main()int m,i;scanf(%d,&m);fbr(i=2;im;i+)if(m%i=0)if(fun(i)printf(%d ,i);return 0;).編寫(xiě)程序,調(diào)用函數(shù)使輸入的一個(gè)字符串反序存放并輸出?!緟⒖荚闯绦颉?include#includevoid fun(char sl)int i=0,n;char t;n=strlen(s)-l; while(i=n)t=si;si=sn;sn=t;i+; n-;)int main()char s20;ge

9、ts(s);fun(s);puts(s);return 0;.編寫(xiě)一個(gè)函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。【參考源程序】#inckideint fun(char s1)(int i=0,n,m=0;if(si=a)n=si-a+10;elsen=si-O;while(s+i!=,0,)(if(si=a)m=si-,a,+10;elsem=si-O;n=n*16+m;)return n;)void main()char s6;int n;gets(s);n=fun(s);printf(%dnn, n);.編寫(xiě)程序完成以下功能:在主函數(shù)中通過(guò)鍵盤(pán)輸入10個(gè)互不相同的整數(shù)并存入在一 維數(shù)組

10、中,調(diào)用函數(shù)找出數(shù)組中的最大值,并從數(shù)組中刪除該值,在主函數(shù)中輸出 刪除后的數(shù)組?!緟⒖荚闯绦颉?includevoid fun(int a 10)int i,j=0,max=a0;for(i=l;i10;i+)(if(maxai)|max=ai; j=i;)for(i=j;i9;i+) ai=ai+l;)int main()(int i,a10;for(i=0;i10;i+)scanf(%d,&ai);fun(a);for(i=0;i9;i+)printf(%dreturn 0;).編寫(xiě)程序,調(diào)用函數(shù)輸出如下楊輝三角形:11 11 2 113 3114 6 4 11 5 10 10 5【參考

11、源程序】 #includc void yhui(int a77) int i.j;for(i=l;i7:i+)for(i=3;i7;i+)for(j=2;ji;j+)ailU=ai-lj-l+ai-lU;for(i=l;i7;i+)(for(j=l;j=i:j+)printf(%3d;aij);printf(n);int main()int a77;yhui(a);return 0;.用遞歸法計(jì)算的/+22+3?+ 值,n的值由鍵盤(pán)輸入?!緟⒖荚闯绦颉?include int sum(int n) (int r;if(n=0)printf(data crrorn);if(n=l) r=l; e

12、lser=sum(n-l)+n*n;return r;int main()int n;scanf(”d”,&n);printf(,result=%dn,sum(n);return 0;.用遞歸法計(jì)算1 + 2 + 3 + 的值,n的值由鍵盤(pán)輸入?!緟⒖荚闯绦颉?includeint sum(int n)int r;if(n=0)printf(data errorn);if(n=l)r=l;elser=sum(n-l)+n;return r;int main()in( n;scanf(%d,&n);printf(sum(%d)=%dn,n,sum(n);return 0;.2可以用下面的公式表示

13、:e =1 + + + 1! 2! 3! 4!編寫(xiě)函數(shù)求e,要求最后一項(xiàng)近似到1 o利用該函數(shù)求J夕,e【參考源程序】#includefloat fun 1 (int n)int i;float r= 1;for(i=l ;i=n;i+)r=r*i;return r;)float fun2(float xjnt n)(int i;float r= 1;for(i=l;ile-4)(s+=p;n+;p= fun2(x,n)/funl(n);return s;)int main()(printf(%f,fun(l);prinif(%f,fun(2);printf(%f,fun(-0.5);retu

14、rn 0;習(xí)題6和參考解答.編寫(xiě)程序,將一無(wú)符號(hào)八進(jìn)制數(shù)字字符串轉(zhuǎn)換為十進(jìn)制整數(shù)。例如,輸入的字符串 為“556”,那么輸出十進(jìn)制整數(shù)366?!緟⒖荚闯绦颉?includeint main()(char *p, s6;int n;p=s;gcts(p);n=*p-O;while( *(+p) !=0)n=n*8+*p-0;printf(%dn, n);return 0;).編寫(xiě)程序,從鍵盤(pán)上接收一個(gè)字符串,判斷其是否是回文(順讀和倒讀都一樣的字 符串稱(chēng)為回文,如“l(fā)evel)。【參考源程序】#include#includeint main()char s81 J,*pl,*p2;int n;g

15、ets(s);n=strlen(s);pl=s;p2= s+n-1 ;while( plp2 )(if(*pl!=*p2)break;else|pl+;p2-;)if(plp2)printf(NOn);elseprin(f(YESn);return 0;I.編寫(xiě)程序,將一字符串中的內(nèi)容按逆序輸出,但不改變字符串中的內(nèi)容。 【參考源程序】#includeint invcrp(char *a)if(!*a)return 0;inverp(a+l);printf(%c,*a);1void main()char s10;gets(s);inverp(s);).編寫(xiě)程序,找出二維數(shù)組中的最大元素并輸出。

16、【參考源程序】#includeint main()習(xí)題2和參考解答.求以下表達(dá)式的值。3.5+1/2(2)設(shè) intx=18,k=14;,表達(dá)式為 x%=k-k%5(int)(double)(5/2)+2.5)(4)設(shè) x=2.5,a=7,y=4.7,表達(dá)式為 x+a%3*(int)(x+y)%2/4(5)設(shè) a=2,b=3,x=3.5,y=2.5,表達(dá)式為(float)(a+b)/2+(ini)x%(int)y(6 )設(shè) a=2,b=5,表達(dá)式為 a+,b+,a+b(7)2為血類(lèi)型,且其值為3,表達(dá)式為a+=a-=a*ax=y=6,x+y,x+1x=(y=6,y*2,y+l)【答案】3.58

17、42.53.59-1277.編寫(xiě)程序:輸入一個(gè)矩形的長(zhǎng)和寬,計(jì)算該矩形的面積?!緟⒖荚闯绦颉?inchideint main()float length,width,arca;scanf(M%f%r,&length,&width);area=length*width;printf(44area=%fn,area);return 0;).編寫(xiě)程序:輸入半徑的值,計(jì)算并輸出球的體積?!緟⒖荚闯绦颉?includeint main()float r,v;scanf(44%f;&r);v=4*3.1415*r*r*r/3;printf(44v=%fn,v);return 0;for(i=0;i3;i+

18、)for(j=0;j4;j+)scanf(%d,&aijj);max=a001;for(p=a;pa+3;p+)for(j=0;jmax)max=*(*p+j);printf(max=%d,max);return 0;).編寫(xiě)程序,輸入10個(gè)整數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,將最大的數(shù)與最后一 個(gè)數(shù)對(duì)換。【參考源程序】#includeint main()|int a10,*niin,*max,i,t;for(i=0;i10;i+)scanf(%d,&ai);min=a; max=a;for(i=l;iaij)min=&ai;if(*maxai)max=&ai;l=*min; *min=aOJ

19、; aO=t;t=*max; *max=a9; a9=t;for(i=0;i10;i+)printf(H%d ,ai);return 0;.有n個(gè)整數(shù),編寫(xiě)程序使前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面m 個(gè)數(shù)?!緟⒖荚闯绦颉?includevoid exchange(int aJnt njnt m)|intfor(i=0,e=n-m:e=i;j-)*(a+j)=*(a+j-l);*(a+i)=t;)1ini main()|int a100,i,n,m;printf(please input n,m:);scanf(,%d%d,&n,&m);for(i=0;in;i+)scanR,%d

20、,&ai);exchange(a,n,m);for(i=0;in;i+)printf(%d ,ai);return 0;).編寫(xiě)程序,輸入月份,輸出該月的英文月名。例如,輸入3,那么輸出March,要求 用指針數(shù)組處理?!緟⒖荚闯绦颉?includeint main()(char *monihsJ= January,February,March,April,May,June,July,August, September,October,November*,December;int n;scanf(%d,&n);if(n=l)printf(%d 月的英文名稱(chēng)是:%sn,n,monihsn-l);

21、elseprintf(輸入的月份無(wú)效廣);return 0;).編寫(xiě)程序,將一字符串正序反序連接,連接后仍存入原數(shù)組中。例如,字符數(shù)組s 中存有字符串“abede,連接后s中的內(nèi)容為“abedeedeba【參考源程序】#includeint main()char s100,*p,*q;p=s; q=s;gets(s);while(*q)q+;p=q-i; while(p=s)*q=*p; p-; q+;)*q=0;puts(s);return 0;).編寫(xiě)函數(shù),實(shí)現(xiàn)去掉一個(gè)字符串前后空格字符的功能,并在主函數(shù)中調(diào)用該函數(shù)。【參考源程序】#includcvoid delnum(char *s)i

22、nt i, j;for(i=0,j=0; si=0; i+)if(si!=)(slj=si;j+;)void main()(char *item,s80;item二s;printf(ninput a string:n);gets(item);delnum(item);printf(n%s, item );).編寫(xiě)一個(gè)函數(shù)insert(sl,s2,n),其功能是在字符串si中的指定位置n處插入字符串s2?!緟⒖荚闯绦颉?include#includevoid insert(char *sl,char *s2,int n)int i,j;chart=sl;i=strlen(sl);j=strlen

23、(s2);while(tt;p-)*p=*(p-j);for(;*s2;t+,s2+)*t=*s2;1ini main()|char strl50,str220;int n;gets(strl);gets(str2);scanf(%d,&n);insert(strl,str2,n);puts(strl);return 0;習(xí)題7和參考解答.定義一個(gè)結(jié)構(gòu)體變量,其成員包括年、月、日。計(jì)算該日在本年中是第幾天?!緟⒖荚闯绦颉?includestruct(int year;int month;int day; date;int rnain()(int days;int day_tabl 3=O,31

24、,28,31,30,31,30,31,31,30,31,30,31);scanf(44%d%d%d,&date.ycar,&datc.month,&date.day);days=O;fbr(i=l ;i=3) days+=l;printff%d/%d is the %dth day in %ddatc.month,datc.month.day,days,datc.ycar);retum 0;).定義一個(gè)結(jié)構(gòu)體變量,其成員包括職工姓名、職工號(hào)、性別、工資、婚姻狀況和家 庭地址?!緟⒖荚闯绦颉縮truct employee|char name20;char number 10;char sex;f

25、loat wage;char marry;char address50;zhang;.建立一個(gè)職工情況統(tǒng)計(jì)表,包括職工的工作證號(hào)、姓名、年齡、工資等內(nèi)容。輸出 該單位職工的平均年齡、平均工資和各年齡段職工人數(shù)的分布情況?!緟⒖荚闯绦颉?inckidcstruct employee|char number! 10;char name20;int age;float wage;e100;int main()float s 1 =0,s2=0;int a 1 =0,a2=0,a3=0,a4=0,i;for(i=0;i100:i+)scanfiCt%s%s%d%fei.number,.&

26、ei.age,&ei.wage);for(i=0;i100;i+)(if(eil,age30) al+; TOC o 1-5 h z else if(eiJ.age40)a2+;else if(e(i.age50)a3+;else if(ei.age60)a4+;sl+=ei.age;s2+=ei.wage;)printf(“平均年齡:.2f,平均工資:%.2f, 20 歲:%d, 30 歲:d, 40 歲:%d, 50 歲:%d”, sl/100,s2/100,al,a2,a3,a4);return 0;.建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括職工號(hào)、姓名、性別和年齡,輸入一個(gè)退休年齡,如 果鏈表中的結(jié)

27、點(diǎn)所包含的年齡等于此年齡,就刪除該結(jié)點(diǎn)。【參考源程序】#inckide#include struct employeechar nuinberflO;char namcl20j;char sex2;int age;struct employee *next;emp10;void main()struct employee *p,*pt,*hcad;int idength,iagejlag=l;int find=O;while(flag=1)(printfVinpul length ofscanf(d”,&length);if(lcngth10)nag=0;)for(i=0;inext=p;P(

28、=P;scanf(u%s%s%s%d,p-number,p-name,p-sex.&p-age); )p-next=NULL;p=hcad;P1二P;printffinpiit age:);scan1d,&iage);if(pt-age=iage) (p=pt-next;head=pt=p; find=l;) elsept=pt-next; while(pt!=NULL) if(pt-age=iage) ( p-next=pt-ncxt; find=l; elseP 二 P pt=p(-next;) if(!find)printfCnot find%d.,iage);p = head;prin

29、tf44nNo. Name sex agen); while(p!=NULL) (printf(u%6s%8s,p-number,p-name);printf(44%6s%6dn,p-scx,p-agc); p=p-next;習(xí)題8和參考解答.編寫(xiě)程序,從鍵盤(pán)輸入100個(gè)字符,存入名為file.txt的文件中。 【參考源程序】#includeint rnain()FILE *fp;char ch;int i;if(m=fbpen(file.lxr,W)=NULL)(printft4can not open exit(O);)for(i=0;i100;i+)(ch=getchar();fputc

30、(ch,fp);fclose(fp);return 0;).編寫(xiě)程序,從鍵盤(pán)輸入一個(gè)字符串,將其中的小寫(xiě)字母全部轉(zhuǎn)換成大寫(xiě)字母,然后 輸出到文件file.txt中保存,輸入的字符串以#結(jié)束?!緟⒖荚闯绦颉?include#inckideini main()(FILE *fp;char ch;in(fp=fbpcnCfilc.txt,W,)=NULL)(printffcan not open exil(O);)while(ch=getchar()!=#)iRch=a & chv=Z)ch=ch-32;fputc(ch,fp);Ifclose(fp):return 0;).現(xiàn)有5個(gè)學(xué)生,從鍵盤(pán)輸入

31、如下數(shù)據(jù):學(xué)號(hào)、姓名、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)和英語(yǔ)成 績(jī),計(jì)算出每個(gè)學(xué)生3門(mén)課的平均成績(jī),將原有數(shù)據(jù)和計(jì)算出的平均分都存放在文 件 score.txt 中?!緟⒖荚闯绦颉?include#includcstruct studentchar num10;char name20;float s4;stu5;int main()FILE *fp;char ch;int i;im=Cpen(score.txl,W)=NULL)printf14tcan not open flen); exit(O);for(i=0;i5;i+)(scanf(s”,slui.num);scanfC*%sM,stui .nam

32、e);scanf(M%f%f%f,&stui.sO, &stui.sl, &slui.s2);stui.s3=( stui.s0+stui.sl+stui.s2)/3;fwri(e(&stui,sizeof(struct student),l,fp);)fclosc(fp);return 0;).編寫(xiě)程序,將文件filename.dat中的內(nèi)容復(fù)制到文件newfiie.dat中?!緟⒖荚闯绦颉?include#includeint main()(int c;HLE*fpl,*fp2;fpfopcnCfilcnanic.datVrb);fp2=fopen(newfile.dat”, “wb”);

33、c=fgetc(fp1);while(c!=E()F)fputc(c,fp2); c=fgetc(fpl);)fclose(fpl);fclose(fp2);return 0;).編寫(xiě)程序,統(tǒng)計(jì)用戶(hù)指定文件的長(zhǎng)度。【參考源程序】#include#includeint main()(FILE *fp;long fl;fp=fbpcnCttest.dat,7,rb);fseek (fp, 0, SEEK_END)_;fl=ftell(fp);fclose(fp);printf(%dn;fl);return 0;習(xí)題9和參考解答.編寫(xiě)一個(gè)宏定義AREA(a,b,c),用于求一個(gè)邊長(zhǎng)為a、b和c的三角

34、形的面積,其公 式如下:s=(a+b+c)/2 area=Js(s - a)(s 匕)(s c) 【參考源程序】#define S(a,b,c) (a+b+c)/2)#define AREA(abc) (sqrt(S(a,b,c)*(S(a,b.c)-a) *(S(a.b,c)-b) *(S(a,b,c)-c).編寫(xiě)一個(gè)程序,求3個(gè)數(shù)中的最大值,要求用帶參數(shù)的宏來(lái)實(shí)現(xiàn)?!緟⒖荚闯绦颉?include#define MAX(a,b,c) (ab?a:b)c?(ab?a:c):c) int main()int a.b,c,max;scanf(M%d%d%d;&a,&b,&c);max=MAX(a,

35、b,c);printf(max=%d,max);return 0;.用條件編譯的方法實(shí)現(xiàn)以下功能:輸入一行電報(bào)文字,可以任選兩種輸出:原文輸出或者密碼輸出,密碼輸出要求將相應(yīng) 字母變成其下一字母,如a變成b,z變成其他字符不變。用#16自起 命令來(lái)控制是否需要譯成密碼。例如,假設(shè)有“#define KEY 1,那么輸出密碼,假設(shè)有“#definc KEY 0”,那么不譯成密碼,按原文輸出?!緟⒖荚闯绦颉?inckide#define KEY 0int main()char str60,*p=str;gcts(str);#ifKEYwhile(*p)(if(*p-a & *p=y)printf(

36、%c;*p+l);else if(*p=z).編寫(xiě)程序:輸入一個(gè)三位整數(shù),求其百位、十位、個(gè)位上的數(shù)字,并求出各位數(shù)字之和 以及各位數(shù)字之積?!緟⒖荚闯绦颉?includeint niain()int n,g,s,b;scanf(d”,&n);b=n/IOO;s=n/10%10;g=n%10;printf(usuni=%d, product=%dn,b+s+g,b*s*g);return 0;)習(xí)題3和參考解答.從鍵盤(pán)輸入任意一個(gè)整數(shù),判斷其是否為偶數(shù)?!緟⒖荚闯绦颉?includeint main()|int n;printfVplcasc input a numberin);scanfr%

37、d”,&n);if(n%2=0)printRYes!);elseprintfCNo!”);retum 0;I2.有如下函數(shù):r x(x i)y= 2x-l(1 Wx 10)I 3x-l(x210)編寫(xiě)程序,使輸入x時(shí),輸出相應(yīng)的y值?!緟⒖荚闯绦颉?inckidcint main()ini x,y;printffplease input the x:n);scanfC%d”,&x);if(xl)printf(a);p+;#elsewhilc(*p)printf(%c,*p);P+;#cndifreturn 0;習(xí)題10和參考解答.設(shè)計(jì)一個(gè)函數(shù),當(dāng)給出一個(gè)數(shù)的原碼時(shí),能得到該數(shù)的補(bǔ)碼。 【參考源

38、程序】#includeint main()(unsigned int a;unsigned int gctbits(unsigncd);printfVninput an octal number:);scanRd”,&a);printf(result:%on”,getbits(a);return 0;)Unsigned int getbits(unsigned value)unsigned int z;z=valuc&010(X)00;if(z=0100000)z=-value+l;elsez=value:return z;.編寫(xiě)一個(gè)函數(shù),用它測(cè)定一個(gè)整數(shù)的最高位是0還是1,假設(shè)是0,那么輸出

39、“正數(shù)”, 否那么輸出“負(fù)數(shù)”。【參考源程序】#include int test(char);int main()char a;printffplease input a number:);scanf(d”,&a);if(test(a)printfVXnpositivc number);esleprintfVnnegative);return 0;int test(char n)(if(n&l()(X)(X)(X)return 0;elsereturn I;.編寫(xiě)一個(gè)函數(shù)getbits (),從一個(gè)16位單元中取出某幾位,即該幾位保存原值,其 余位為0,位數(shù)由輸入者設(shè)定。【參考源程序】#inc

40、ludeint main()(unsigned int a;int nl,n2;printf(inpt an octal number;);scann%o”,&a);printfVinput nl,n2:”);scanf(d%d”,&n 1 ,&n2);printf(t4result:%()n?,getbits(a,n-1 ,n2);return 0;)int getbits(unsigned value,int nl,int n2)(unsigned int z;z=0;z=(zn 1 )&(z( 16-n2);z=vakie&z;z=z(16-n2);return z;y=x;else i

41、f(x=l & x=10)y=3*x-1;printf(y is %d”,y);return 0;).輸入一個(gè)整數(shù),假設(shè)該數(shù)能夠被3和7整除,那么輸出2;假設(shè)只能被3和7中的任意一個(gè) 整除,那么輸出1;假設(shè)不能被3和7中的任意一個(gè)整除,那么輸出0?!緟⒖荚闯绦颉?includcini main()in( n,m;printffplease input n:n);scanf(d”,&n);if(n%3=0 & n%7=0)m=2;else if(n%3=0 | n%7=0)m=l;elsem=0;printffthc result is %d,m);return 0;I.愛(ài)因斯坦的階梯問(wèn)題。愛(ài)因

42、斯坦曾提出過(guò)這樣一道有趣的數(shù)學(xué)題:有一個(gè)長(zhǎng)階梯, 假設(shè)每步上2階,最后剩1階:假設(shè)每步上3階,最后剩2階;假設(shè)每步上5階,最后剩4階:假設(shè) 每步上6階,最后剩5階;只有每步上7階,最后剛好一階不剩。問(wèn)該階梯至少有多少階? 編寫(xiě)程序解決這個(gè)問(wèn)題。【參考源程序】#includeint main()(int i,n=l,m=l;while(m)if(n%2=l)if(n%3=2)if(n%5=4)if(n%6=5)if(n%7=0)printfC*%d,n);m=0;n+;return 0;).輸出所有的水仙花數(shù)。所謂水仙花數(shù)是一個(gè)3位整數(shù),它的各位數(shù)字的立方和等于 該數(shù)本身。【參考源程序】#inc

43、ludeint main()int i,a.b,c;for(i=100;i1000;i+)a=i%10;b=i/10%10;c=i/100;if(a*a*a+b*b*b+c*c*c=i)printf(d ”,i);)return 0;.編寫(xiě)程序,打印九九乘法表?!緟⒖荚闯绦颉?includcint main()int i,j;for(i=l;i10;i+)(for(j=l;j=i;j+)printf(“3d”,i*j);printf(n”);)return 0;).編寫(xiě)程序,打印如以下圖形。*【參考源程序】#include int main()int i,j;for(i=l;i=4;i+)for(j=l;j=4-i;j+)printfV );for(j=l;j=2*i-l;j+)print/*);printf(n”);)for(i=l;i=3;i+)for(j=l;j=i;j+)printfC u);for(j=l ;j=7-2*i;j+)prinlR*”);printfCVn);)return 0;1.用兀/4=l-l/3+l/5-l/7+求兀的近似值,直到最后一項(xiàng)的絕對(duì)值小于IO為止?!緟⒖荚闯绦颉?includeint main()(float sum=

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論