c程序設(shè)計(jì)語言第二版答案_第1頁
c程序設(shè)計(jì)語言第二版答案_第2頁
c程序設(shè)計(jì)語言第二版答案_第3頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c程序設(shè)計(jì)語言第二版答案2. 【篇一:c語言程序設(shè)計(jì)現(xiàn)代方法(第二版)習(xí)題答案】answerstoselectedexerciseswas#2(a)theprogramcontainsonedirective(#include)andfourstatements(threecallsofprintfandonereturn).(b)parkinsonslaw:workexpandssoastofillthetimeavailableforitscompletion.3. was#4#includestdio.hintmain(void)intheight=8,length=12,width=1

2、0,volume;volume=height*length*width;printf(dimensions:%dx%dx%dn,length,width,height);printf(volume(cubicinches):%dn,volume);printf(dimensionalweight(pounds):%dn,(volume+165)/166);return0;was#6heresonepossibleprogram:#includestdio.hintmain(void)(inti,j,k;floatx,y,z;printf(valueofi:%dn,i);printf(value

3、ofj:%dn,j);printf(valueofk:%dn,k);printf(valueofx:%gn,x);printf(valueofy:%gn,y);printf(valueofz:%gn,z);return0;whencompiledusinggccandthenexecuted,thisprogramproducedthefollowingoutput:valueofi:5618848valueofj:0valueofk:6844404valueofx:3.98979e-34valueofy:9.59105e-39valueofz:9.59105e-39thevaluesprin

4、teddependonmanyfactors,sothechancethatyoullgetexactlythesenumbersissmall.4. was#10(a)isnotlegalbecause100_bottlesbeginswithadigit.8. was#12thereare14tokens:a,=,(,3,*,q,-,p,*,p,),/,3,and;.answerstoselectedprogrammingprojectswas#8;modified#includestdio.hintmain(void)floatoriginal_amount,amount_with_ta

5、x;printf(enteranamount:);scanf(%f,original_amount);amount_with_tax=original_amount*1.05f;printf(withtaxadded:$%.2fn,amount_with_tax);return0;theamount_with_taxvariableisunnecessary.ifweremoveit,theprogramisslightlyshorter:#includestdio.hintmain(void)floatoriginal_amount;(a) printf(enteranamount:);sc

6、anf(%f,original_amount);printf(withtaxadded:$%.2fn,original_amount*1.05f);return0;chapter3answerstoselectedexerciseswas#2printf(%-8.1e,x);printf(%10.6e,x);printf(%-8.3f,x);printf(%6.0f,x);2. was#8thevaluesofx,i,andywillbe12.3,45,and.6,respectively.answerstoselectedprogrammingprojectswas#4;modified#i

7、ncludestdio.hintmain(void)(intmonth,day,year;printf(enteradate(mm/dd/yyyy):);scanf(%d/%d/%d,month,day,year);printf(youenteredthedate%d%.2d%.2dn,year,month,day);return0;was#6;modified#includestdio.hintmain(void)(intprefix,group,publisher,item,check_digit;printf(enterisbn:);scanf(%d-%d-%d-%d-%d,prefix

8、,group,publisher,item,check_digit);printf(gs1prefix:%dn,prefix);printf(groupidentifier:%dn,group);printf(publishercode:%dn,publisher);printf(itemnumber:%dn,item);printf(checkdigit:%dn,check_digit);/*thefiveprintfcallscanbecombinedasfollows:printf(gs1prefix:%dngroupidentifier:%dnpublishercode:%dnitem

9、number:%dncheckdigit:%dn,prefix,group,publisher,item,check_digit);*/return0;chapter4answerstoselectedexercises1. was#2notinc89.supposethatiis9andjis7.thevalueof(-i)/jcouldbeeitherTor尹,dependingontheimplementation.ontheotherhand,thevalueof-(i/j)isalwaysT,regardlessoftheimplementation.inc99,ontheother

10、hand,thevalueof(-i)/jmustbeequaltothevalueof-(i/j).(a) was#66383212-130004. 13.was#8theexpression+iisequivalentto(i+=1).thevalueofbothexpressionsisiaftertheincrementhasbeenperformed.answerstoselectedprogrammingprojects2.was#4#includestdio.hintmain(void)intn;printf(enterathree-digitnumber:);scanf(%d,

11、n);printf(thereversalis:%d%d%dn,n%10,(n/10)%10,n/100);return0;chapter5answerstoselectedexercises2.was#21111was#4(ij)-(ij)was#12yes,thestatementislegal.whennisequalto5,itdoesnothing,since5isnotequalto-9.was#16theoutputisonetwosincetherearenobreakstatementsafterthecases.answerstoselectedprogrammingpro

12、jects2.was#6【篇二:c語言與程序設(shè)計(jì)-第2章課后習(xí)題參考答案】txt關(guān)鍵字是注釋空白符八進(jìn)制常量是三字符序列字符串常量是括號是2.2c編譯器可將以下每一個(gè)源字符串分解為哪些記號?不必考慮記號組合是否合法x+yx,+,+,y-0xabl-,0xabl(8) (5)x*2x,*,*,2x?/x?/a?ba,?,bx-+=yx,-,+=,yintx=+10intx,=,+,10stringfoostring,foo這道題當(dāng)時(shí)改的時(shí)候有幾個(gè)小題改得有錯(cuò)誤,注意!2.3以下哪些不是標(biāo)識符,為什么?標(biāo)識符由字母、數(shù)字和下劃線組成,但首字符必須是字母或下劃線。4th不是,以數(shù)字開頭;sizeof

13、不是(標(biāo)準(zhǔn)c的關(guān)鍵字)_limit是_is2是xyshould是x*y不是,*非法o_no_o_no是temp-2不是,-非法isnt不是,非法enum不是(標(biāo)準(zhǔn)c的關(guān)鍵字。注:關(guān)鍵字也稱為保留字,是被系統(tǒng)賦予特定含義并有專門用途的標(biāo)識符。關(guān)鍵字不能作為普通標(biāo)識符,但可以作為宏名。所有預(yù)處理均發(fā)生在識別這些關(guān)鍵字之前。)2.4在以下表示中,哪些是合法常數(shù),哪些是非法常數(shù)?對于合法常數(shù),指出其類型;對于非法常數(shù),說明其錯(cuò)誤原因。21合法,long長整型不合法,單引號組中的單引號前需要轉(zhuǎn)義字符.12合法,double雙精度浮點(diǎn)型0x1ag不合法,g不是16進(jìn)制數(shù)中的符號,也不表示任何類型33333

14、合法,int整形a合法,字符串常量合法,字符串常量0.1合法,longdouble長雙精度浮點(diǎn)型e20不合法,缺少尾數(shù)部分0377ul合法,unsignedlong無符號長整型18不合法,存在非8進(jìn)制位0xa不合法,不符合十六進(jìn)制字符碼表示規(guī)則xhh0x9cfu合法,unsignedint無符號整形45合法,char字符型1.e-5合法,double雙精度浮點(diǎn)型0合法,char字符型f合法,float浮點(diǎn)型34不合法,缺少轉(zhuǎn)義符合法,char字符型p35,雙引號作為字符常量時(shí)既可用圖形符號也可用轉(zhuǎn)義序列表示a合法,char字符型2.6以下的變量聲明語句中有什么錯(cuò)誤?(1) inta;b=5;第

15、一個(gè)分號改為逗號inta,b=5;(2) doubelh;關(guān)鍵字錯(cuò)誤doubleh;(3) intx=2.3;類型錯(cuò)誤floatx=2.3;(4) constlongy;需要賦初值constlongy=0;(5) floata=2.5*g;g未定義變量intg=1;floata=2.5*g;(6) inta=b=2;b未定義變量inta=2,b=2;2.7設(shè)變量說明為:inta=1,b=2,c=3,d;doublex=2.0;y=7.7;請給出以下表達(dá)式的值。(1) +a*b-4(2) !a+b/c0(3) a=-b+ctrued=a+,a*=b+1d為1,a為6(5) d=y+=1/xy為8

16、.2,d為8(6) abx=yfalsex=(int)y/b+x為3.0(8) a-?+a:+aa為1(9) a+xa+a108(10) a=0,-a,a+=(a+)-a表達(dá)式結(jié)果為-1,a的值為02.8設(shè)i和j是int類型,a和b是double類型,以下表達(dá)式哪些是錯(cuò)誤的,為什么?a=b=c錯(cuò)誤,c未定義且邏輯錯(cuò)誤a八045正確7+i*-j/3正確39/-+i-+29%j正確(5)a*+-b錯(cuò)誤,+需要左值a|bAi錯(cuò)誤,八號左側(cè)類型為doublei*j%a錯(cuò)誤,右側(cè)類型為doublei/j2正確a+=i+=1+2正確int(a+b)正確,vc+下可運(yùn)行2.9下面代碼的執(zhí)行結(jié)果是什么?cha

17、ra=1,b=2,c=3;printf(%d,%d,%d,%dn,sizeof(c),sizeof(a),sizeof(c=a),sizeof(a+b+7.7);結(jié)果:1,4,1,82.10設(shè)變量說明為:unsignedshortx=1,y=2,z=4,mask=0xc3,w;shortv;請給出以下表達(dá)式的值。xx0v=x-2(3)w=xAx65535x|yx|z5w=y|z,(w3)+(w1)60w=x|yx|zyAmaskx113v=-1,v=1-2v=x|x-1w=xAy65532x|y|z232.11寫一個(gè)表達(dá)式,將整數(shù)k的高字節(jié)作為結(jié)果的低字節(jié),整數(shù)p的低字節(jié)作為結(jié)果的高字節(jié),拼成

18、一個(gè)新的整數(shù)。表達(dá)式為:32位k24|(k2558)8|(p25516)8|p2416位(k8)|(p8)2.12寫一個(gè)表達(dá)式,將整數(shù)x向右循環(huán)移位n位。表達(dá)式為:32位x(32-(n%32)|x(n%32)16位x(16-(n%16)|x(n%16)2.13寫一個(gè)表達(dá)式,將整數(shù)x從第p位開始的向右n位p從右至左編號為015翻轉(zhuǎn)即1變0,0變1,其余各位保持不變。表達(dá)式為:xA(0)(p+1-n)(unsignedshort)0)(16-p-1)或:xA(0(16-n)(p+1-n)2.15表達(dá)式v=(v-1)能實(shí)現(xiàn)將v最低位的1翻轉(zhuǎn)。比方v=108,其二進(jìn)制表示為01101100,則v=(v

19、-1)的結(jié)果是01101000。用這一方法,可以實(shí)現(xiàn)快速統(tǒng)計(jì)v的二進(jìn)制中1的位數(shù),只要不停地翻轉(zhuǎn)v的二進(jìn)制數(shù)的最低位的1,直到v等于0即可。請用該方法重寫例2-18。#includestdio.hintmain(void)(unsignedchardata,backup,t=0;intparity=0;data=getchar();backup=data;while(data)(t+;data=(data-1);data=backup|(parity7)A(t7);printf(thedatais%#xn,backup);printf(parity-checkcodeis%#xn,data);

20、return0;2.16寫一個(gè)表達(dá)式,其結(jié)果是a、b和c這3個(gè)數(shù)中最大的一個(gè)。表達(dá)式為:ab?ac?a:c:bc?b:c或(ab)?(ac?a:c):(bc?b:c)或(ab)?(ac)?a:c):(bc)?b:c)2.18寫一個(gè)表達(dá)式,如果整數(shù)a能被3整除且個(gè)位數(shù)字是5,則結(jié)果為非0,否則為0。表達(dá)式為:a%3?0:(a%10=5?1:0)2.19定義一個(gè)枚舉類型enummonth,用來描述一年12個(gè)月:一月jan、二月feb、十二月dec,并編寫一個(gè)程序,根據(jù)用戶輸入的年份,輸出該年各月的英文名及天數(shù)。#includestdio.henumyearjan,feb,mar,apr,may,j

21、un,jul,aug,sep,oct,nov,dec;intmain(void)2.20設(shè)變量說明為:floata;doubleb;charc;intx;試將以下表達(dá)式中隱含的類型轉(zhuǎn)換改為用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符轉(zhuǎn)換的表達(dá)式。x=(int)(a-(float)(int)c+a)b*(double)x+(double)(int)c-(int)0)(x0)?(double)a:benumyaermonth;intyear_num,year_days=365;char*month_name=january,february,march,april,may,june,july,august,septemb

22、er,october,november,december;intmonth_days=31,28,31,30,31,30,31,31,30,31,30,31;scanf(%d,year_num);if(!(year_num%4)year_num%100II!(year_num%400)month_days1=29,year_days=366;printf(n%dn,year_days);for(month=jan;month=dec;month+)printf(%s,%dn,month_namemonth,month_daysmonth);return0;【篇三:C語言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)第二版答

23、案】.C4.c5.d6.a7.b8.c9.a10.d11.b12.c13.a14.d15.b16.b第二章一、d2.a3.c4.d5.a6.b7.a8.b9.a10.d11.b12.c13.c14.d15.c16.b17.d18.a19.c20.b21.b22.d23.a24.bb26.b27.b25. 第三章一、d2.c3.a4.c5.a6.c7.c8.d9.a10.d11.ac14.c15.a16.b17.a18.a19.c20.a21.b22.d23.b24.bdd27.c28.c第四章一、b2.c3.d4.d5.d6.c7.b8.d9.c10.d11.b12.a13.cc15.b16.

24、ab17.ddoublefun(intm)(doubley=0;y=sin(m)*10;return(y);floatfun(floath)(return(long)(h*100+0.5)/100.0;doublefun(doublem)(floatn;n=(5.0/9.0)*(m-32);returnn;charfun(charc)(c=c+32;returnc;146f12.b一、1.d2.c3.c4.c5.a6.a7.c8.a9.b10.b11.a12.b13.c14.c15.d16.a17.d18.a19.a20.a21.b22.d23.c24.b25.d二、1.intfun(intn

25、)(intbw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;elsereturn0;1. floatfun(floatx)(floaty;if(x0x!=-3.0)y=x*x+x+6;elseif(x=0x10.0x!=2.0x!=3.0)y=x*x-5*x+6;elsey=x*x-x-1;returny;2. doubley(floatx)(doublez;if(x10)z=exp(x);elseif(x-3)z=log(x+3);elsez=sin(x)/(cos(x)+4)

26、;return(z);4.intfun(intx)(intk;k=x*x;if(k%10=x)|(k%100=x)return1;elsereturn0;第六章1.c2.c3.d4.b5.c6.a7.a8.a9.d10.a11.d12.c13.c14.c15.c16.a17.a18.b19.a20.d21.b22.c23.c24.d25.bbc28.a二、位置1:r!=0【或】0!=r【或】r位置2:r=m%n【或】r=m-m/n*n位置3:n位置4:gcd,lcm【或】n,lcm位置1:k=0位置2:n%10【或】n-n/10*10【或】n-10*(n/10)位置3:while(n0)【或】

27、while(0n)【或】while(n!=0)【或】while(0!=n)位置4:printf(n)位置1:x!=0【或】x位置2:else【或】elseif(x%2=1)【或】elseif(x%2!=0)【或】if(x%2)位置3:scanf(%d,x)位置4:av2=s2/j位置1:n=0位置2:i=300【或】i300【或】300=i【或】300i位置3:i%7=0|i%17=0【或】!(i%7)|!(i%17)【或】!(i%17)|!(i%7)【或】!(i%7i%17)位置4:n%5=0【或】!(n%5)【或】n/5*5=n位置1:s=0位置2:i+=2【或】i=i+2【或】i=2+i

28、【或】i+,i+位置3:j=i【或】i=j【或】ji+1【或】i+1j【或】j1+i【或】1+ij位置4:f=f*j【或】f=j*f三、1.位置1:#includemath.h【或】#includemath.h位置2:floats=0,t=1,p=1;【或】floats=0,p=1,t=1;【或】floatp=1,s=0,t=1;【或】floatp=1,t=1,s=0;【或】floatt=1,p=1,s=0;【或】floatt=1,s=0,p=1;位置3:while(fabs(t)1e-4)【或】while(0.0001fabs(t)【或】while(1e-4fabs(t)【或】while(f

29、abs(t)0.0001)位置4:printf(pi=%fn,s*4);【或】printf(pi=%fn,4*s);2. 位置1:printf(%8.0f,f1);printf(%8f,f1);【或】printf(%f,f1);【或】位置2:for(i=1;i20;i+)【或】for(i=1;20i;i+)【或】for(i=2;i=20;i+)【或】for(i=2;20=i;i+)【或】for(i=1;i=19;i+)【或】for(i=1;19=i;i+)位置3:f1=f2;位置4:f2=f3;3. 位置1:longk=1;位置2:scanf(%ld,n);位置3:n/=10;【或】n=n/1

30、0;位置1:scanf(%d,n);位置2:fo(i=1;i=n;i+)【或】for(i=1;n=i;i+)【或】for(i=1;in+1;i+)【或】for(i=1;n+1i;i+)位置3:s+=1.0/t;【或】s=s+1.0/(float)t;【或】s=1.0/(float)t+s;【或】s=s+1.O/t;【或】s=1.O/t+s;【或】s+=1.0/(float)t;【或】s+=1.0/(double)t;【或】s=s+1.0/(double)t;【或】s=1.0/(double)t+s;5.位置1:sum=1.0;【或:1sum=1;位置2:s2=1.0;【或】s2=1;位置3:for(k=4;k=n;k+)【或】for(k=4;n=k;k+)【或】for(k=4;kn+1;k+)【或】for(k=4;k1+n;k+)【或】for(k=4;n+1k;k+)【或】for(k=4;1+nk;k+)位置1:t=1;【或】t=1.0;位置2:t=t*j;【或】t=j*t;【或】t*=j;位置3:s=s+t;【或】s=t+s;【或】s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論