



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
習(xí)題匯編第一章C語言概述1.1選擇題【題1.1]以下不是C語言的特點(diǎn)的是(B)A.C語言簡(jiǎn)潔、緊湊B.能夠編制出功能復(fù)雜的程序C語言可以直接對(duì)硬件進(jìn)行操作C語言移植性好【題1.2]以下不正確的C語言標(biāo)識(shí)符是(D).A.ABCB.abcC.a_bcD.ab.c【題1.3】以下正確的c語言標(biāo)識(shí)符是(C),A.%xB.a十bC.al23D.test!【題1.4】ー個(gè)c程序的執(zhí)行是從(A).A.main( )函數(shù)開始,直到main( )函數(shù)結(jié)束B,第一個(gè)函數(shù)開始,直到最后ー個(gè)函數(shù)結(jié)束C.第一個(gè)語句開始,直到最后ー個(gè)語句結(jié)束D.main( )函數(shù)開始,直到最后ー個(gè)函數(shù)結(jié)束【題1.5I一個(gè)C語言程序是由(B)。A)一個(gè)主程序和若干子程序組成B)函數(shù)組成C)若干過程組成D)若干子程序組成【題1.6】ー個(gè)c程序是由(B)?ー個(gè)主程序和若干子程序組成ー個(gè)或多個(gè)函數(shù)組成C,若干過程組成D,若干子程序組成【題L7】C語言派程序的基本單位是(B)〇A.過程 B.函數(shù)c子程序D.標(biāo)識(shí)符【題1.8]編輯程序的功能是(A).A.建立并修改程序 B.將c源程序編譯成目標(biāo)程序C.調(diào)試程序D.命令計(jì)算機(jī)執(zhí)行指定的操作1.2填空題【題1.9】c語言符號(hào)集包括【英文字母、數(shù)字和一些有待定含義的標(biāo)點(diǎn)符號(hào)】.【題1.10】一個(gè)c程序有且僅有一個(gè)【main?!亢瘮?shù)?!绢}1.11】C程序的基本單位是【函數(shù)】?!绢}1.12】ー個(gè)c派程序有【1】個(gè)main()函數(shù)和【若干】二個(gè)其他函數(shù)?!绢}1.13】在ー個(gè)C源程序中,注釋部分兩側(cè)的分界符分別是【/*】和【?/】?!绢}1.14]結(jié)構(gòu)化設(shè)計(jì)中的三種基本結(jié)構(gòu)是【順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)】。【題1.15】在C語言中,輸入操作是由庫(kù)函數(shù)【scanf】完成的,輸出函數(shù)是由庫(kù)函數(shù)【printf】完成的。3編程題【題1.16]編寫ー個(gè)程序,在屏幕上輸出你的姓名。試著上機(jī)編輯、編譯、運(yùn)行你的程序。#include<stdio.h>main()printfC*MyNameis:YourName!\n*);第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.1選擇題【題2.1】以下結(jié)果為整數(shù)的表達(dá)式(設(shè)有inti;charcjfloatf;)(B).A.i+fB.i*cC.c+fD.i十c十f[題2.2]以下不正確的語句(設(shè)有!ntp,q)是(D)〇A.P*=3;B.p/=q;C.p十=3;D.p&&=q;【題2.3】以下使i的運(yùn)算結(jié)果為4的表達(dá)式是(D)。inti=0,j=0;(i=3,(j十十)十i);inti=l,j=0;j=i=((i=3)*2);inti=0,j=l;(j==l)?(i=l);(i=3);inti=l,j=l;i+=j十=2;【題2.4】下列四組選項(xiàng)中,均不是C語言關(guān)鍵字的選項(xiàng)是(A).A)defineB)getcC)includeD)whileif char sanf gotype printf case pow【題2.5]下列四個(gè)選項(xiàng)中,均是C語言關(guān)鍵字的選項(xiàng)是(B)。AautoBswitchCsignedDifenum typedefunion structincludecontinue scanf type【題2.6]設(shè)charch!以下正確的賦值語句是(B).A.ch=T23';B.ch=\xff';C.ch="ヽ08,;D.ch="ヽ";【題2.7】C語言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符(〇〇【題2.8]下面四個(gè)選項(xiàng)中,均是合法整形常量的選項(xiàng)是(A).A)160 B)-0xcdfC)-01D)-0x48aTOC\o"1-5"\h\z-OxffffOla 986,012 2e5Oil Oxe 0668 Ox【題2.9]設(shè)n=10,i=4、則賦值運(yùn)算n%=i+l執(zhí)行后,n的值是(A).A.0 B.3 C.2 D.1【題2.10】下面四個(gè)選項(xiàng)中,均是不合法浮點(diǎn)數(shù)的選項(xiàng)是(B).A)160. B)123 0-18 D)-e30.12 2e4.2 123e4 0.234e3 .e5 0.0 le3【題2.11】下面四個(gè)選項(xiàng)中,均是合法浮點(diǎn)數(shù)的選項(xiàng)是(B).A)+le+l B)-.60C)123e D)-e35e-9.4 12e-4 12e-4 .8e-403e2 -8e5 +2e_l 5.e_0【題2.12】逗號(hào)表達(dá)式(a=3*5,a*4),a十15的值為(C),a的值為(C).①A.15 B.60 C.30 D.不確定②A.60 B.30 C.15 D.90【題2.13】下面四個(gè)選項(xiàng)中,均是不合法轉(zhuǎn)義字符的選項(xiàng)是(B).A)'ヽ"' B)'\1011,〇1\011' D)'\abc''\\' 'ヽ’ '\f' '\101''\xf *\a' *\!' 'xlf'【題2.14】如果a=l,b=2,c=3,d=4,則條件表達(dá)式a<b?a:c<d?c:d的值為(A).A.1B.2C.3D.4【題2.15】下面四個(gè)選項(xiàng)中,均是不正確的ハ進(jìn)制數(shù)或十六進(jìn)制數(shù)的選項(xiàng)是(D).A)016 B)oabcC)010D)0al20x8f 017 -0x11 7ff018 Oxa 0x16 -123【題2.16】下面四個(gè)選項(xiàng)中,均是正確的ハ進(jìn)制數(shù)或十六進(jìn)制數(shù)的選項(xiàng)是(0A)-10 B)0abc C)0010D)0al20x8f -017 -0x11 -0x123-011 Oxc Oxfl -Oxa【題2.17】下面四個(gè)選項(xiàng)中,均是正確的數(shù)值常量或字符常量的選項(xiàng)是(D).A)0.0 B)"a" C)'3'D)+0010x8f 3.9E-2.5 011 Oxabcd8.9e lei OxFFOO 2e2‘&, ヽ'' 0a 50.【題2.18】下面不正確的字符串常量是(A.)A)'abc' B)"12'12" C)"0" D)""【題2.19】在程序中可以用來作為變量名的合法的標(biāo)識(shí)符是:A.)static B)23_bl C)stu_ltD)#33【題2.20】若有代數(shù)式3ae/bc,則不正確的C語言表達(dá)式是(C)A)a/b/c*e*3 B)3*a*e/b/cC)3*a*e/b*c D)a*e/c/b*3【題2.21】已知各變量的類型說明如下:
Intk,a,b;Unsignedlongw=5;Doublew=l.42;則以下不符合C語言與法的表達(dá)式是(A).B)w+=-2D)a+=a-=(b=4)*(a=3)B)a=a*3=2D)y=float(i)B)w+=-2D)a+=a-=(b=4)*(a=3)B)a=a*3=2D)y=float(i)C)k=(a=2,b=3,a+b)【題2.22]已知各變量的類型說明如下:Inti=8,k,a,b;Unsignedlongw=5;Doublex=l.42,y=5.2;則以下符合C語言語法的表達(dá)式是(A)A)a+=A-=(b=4)*(a=3)Ox%(-3)【題2.23】以下不正確的敘述是(D)A)在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B)在C程序中,APH和aph是兩個(gè)不同的變量C)若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變D)當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整形變量只能輸入整形數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值【題2.24】以ド正確的敘述是(D).A)在C程序中,每行中只能寫一條語句B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型數(shù)C)在C程序中,無論是正數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無誤的表示D)在C程序中,%是只能用于正數(shù)運(yùn)算的運(yùn)算符【題2.25】以下符合C語言語法的賦值表達(dá)式是(B).A)d=9+e+f=d+9 B)d=9+e,f=d+9C)d=9+e,e++,d+9 D)d=9+e++=d+7【題2.26】已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句c2='A'+'6'-'3';后,c2的值為(A).A)D B)68 C)不確定的值D)C【題2.27】在C語言中,要求運(yùn)算數(shù)必須是整形的運(yùn)算符是(D).A)/ B)++〇!= D)%【題2.28】若以下變量均是整形,且num=sum=7;則計(jì)算表達(dá)式sUM=num++,sUM++,++num后sum的值為(A).A)7 B)8 C)9 D)10【題2.29】在C語言中,int、char和short三種類型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)(D)。A)由用戶自己定義 B)均為2個(gè)字節(jié)C)是任意的 D)有所用的機(jī)器的機(jī)器字長(zhǎng)決定
【題2.30]若有說明語句:charc='\72';則變量c(A)。A)包含1個(gè)字符 B)包含2個(gè)字符C)包含3個(gè)字符 D)說明不合法,c的值不確定【題2.31]若有定義:inta=7;floatx=205,y=4.7:則表達(dá)式x+a%3*(int)(x+y)%2/4的值是(A).A)2.500000 B)2.750000 C)3.500000 D)0.000000【題2.32】sizeof(float)是(B)。B)ー個(gè)整型表達(dá)式D)B)ー個(gè)整型表達(dá)式D)ー個(gè)不合法的表達(dá)式C)ー種函數(shù)調(diào)用【題2.33】設(shè)變量a是整型,【題2.33】設(shè)變量a是整型,f是實(shí)型,據(jù)類型為(0。D)不D)不確定【題2.34】下面四個(gè)選項(xiàng)中,均是非法常量的選項(xiàng)是(A)。A)'as' B)'\\' 0-0x18 D)0xabc-Offf '\01' 01177 '、〇’'\0xa' 12,456 Oxf "a"【題2.35】若有代數(shù)式ぶ+1°8|。ッ,則正確的C語言表達(dá)式是(A)。A)sqrt(fabs(pow(y,x)+log(y)))sqrt(abs(pow(y,x)+long(y)))sqrt(fabs(pow(x,y)+log(y)))sqrt(abs(pow(x,y)+long(y)))【題2.36】設(shè)^^門=3;則十十n的結(jié)果是(C),n的結(jié)果是(C)A)2 B)3 04D)5【題2.37】在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是(D)。A)補(bǔ)碼B)反碼 〇源碼 D)ASC11碼【題2.38】設(shè)變量n為float類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是(B)。A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0〇n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0【題2.39】設(shè)intn=3;則n十十的結(jié)果是(B),n的結(jié)果是(C)〇A)2B)3 C)4 D)5【題2.40】設(shè)C語言中,ー個(gè)int型數(shù)據(jù)類型在內(nèi)存中占2個(gè)字節(jié),則unsignedint型數(shù)據(jù)的取值范圍為(0。A)〇、255 B)〇?32767 C)〇?65535 D)〇?2147483647【題2.41】設(shè)有說明:charw;intx;floaty;doublez!則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為(D)。A)float B)char C)itn D)double.【題2.42]語句(1,2,3,4)的結(jié)果是(D兀A)1 B)2 C)3 D)4【題2.43】設(shè)inta=04,b:則執(zhí)行b=a>>l;語句后,b的結(jié)果是(D).A)04 B)4 C)10 D)22填空題【題2.44】表達(dá)式10/3的結(jié)果是13】【題2.45】表達(dá)式10%3的結(jié)果是11】【題2.46】設(shè)intx:當(dāng)x的值分別為1、2、3、4時(shí).表達(dá)式(x&l==l)?l:。的值分另リ是[1].【〇】,【1】,【〇】.【題2.47】執(zhí)行下列語句后,a的值是【ー264】inta=12;a+=a-=a*a;【題2.48】 定義intx,yl執(zhí)行y=(x=l,十十x,x十2)5語句后,y的值是【4】【題2.49】在C語言中(以16位PC機(jī)為例),ー個(gè)char型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)為【1】:ー個(gè)int型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)為[21【題2.50】在C語言中(以16位PC機(jī)為例),ー個(gè)float型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)為[4],一個(gè)double型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)為【8】。【題2.51】若有以下定義,則計(jì)算表達(dá)式y(tǒng)+=y-=m*=y后y值是【ー6】;【題2.52】在C語言中,ー個(gè)int型數(shù)據(jù)在內(nèi)存中占用2個(gè)字節(jié),則int型數(shù)據(jù)的取值范圍為【ー32768—"p32767】【題2.53】在C語言中的實(shí)型變量分為兩種類型,他們是【單精度型(或:float型)】和【雙精度型(或;double型]】?!绢}2.54】C語言所提供的基本數(shù)據(jù)類型包括:單精度型、雙精度型、【整型】、【字符型】和【枚舉型】?!绢}2.55】若s是int型變量,且s=6,則下面表達(dá)式的值為【1】.s%2+(s+l)%2【題2.56]若a、b和c均是int型變量,則計(jì)算表達(dá)式后,a值為【6】,b值為[4],c值為[2]〇a=(b=4)+(c=2)【題2.57]若a是int型變量,且a的初值為6,則計(jì)算表達(dá)式后a的值為【ー60】a+=a-=a*a【題2.58]若a是int型變量,則計(jì)算表達(dá)式后a的值為【2】a=25/3%3【題2.59】若x和n均是int型變量,且x和n的初值均為5,則計(jì)算表達(dá)式后x的值為【10】,n的值為【6】。x+=n++【題2.60】若有定義:intb=7;floata=2.5,c=4.7;則下面表達(dá)式的值為【5.500000]〇a+(int)(b/3*(int)(a+c)/2)%4【題2.61】若有定義:inta=2,b=3;floatx=3.5,y=2.5;則下面表達(dá)式的值為【3.500000]=(float)(a+b)/2+(int)x%(int)y【題2.62]若有定義:charc='\010';則變量c中包含的字符個(gè)數(shù)為【1個(gè)]?!绢}2.63]若有定義:intx=3,y=2;floata=2.5,b=3.5;則下面表達(dá)式的值為【1]?!绢}2.64]若x和n均是int型變量,且x的初值為12,n的初值為5,則計(jì)算表達(dá)式后x的只為【〇】。x%=(n%=2)【題2.65】假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,a++,b++,a+b)的值為【9】?!绢}2.66]C語言中的標(biāo)識(shí)符只能由三種字符組成,它們是【字母】,【數(shù)字】和【ド劃線】。【題2.67]已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch='a'+'8'-'3'的值為【f].【題2.68]把以下多項(xiàng)式寫成只含七次乘法運(yùn)算,其余皆為加、減運(yùn)算的表達(dá)式【x*(X*(x*(x*(x*(X*(5*x十3)—4)十2)十I)―6)十])十10]。5Xヽ7+3X-6-4X"5+2X'4+X*3-6X*2+X+10【題2.69]若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【8.000000]〇【題2.70]若有定義:inte=l,f=4,g=2;floatm=10.5,n=4.0,k;則計(jì)算賦值表達(dá)式k=(e+f)/g+sqrt((double)n)*l.2/g+m后k的值是【13.700000]?【題2.71]表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的數(shù)據(jù)類型為【整型(或:int型)】。【題2.72]表達(dá)式pow(2.8,sqrt(double(x)))值的數(shù)據(jù)類型為【雙精度型(或:double型)】。【題2.73】假設(shè)m是ー個(gè)三位數(shù),從左到右用a、b、c表示各位的數(shù)字,則從左到右各個(gè)數(shù)字是bac的三位數(shù)的表達(dá)式是[m/10%lo*100十m/100*10十m%10】。【題2.73】設(shè)intx=9,y=8;表達(dá)式x==y+l的結(jié)果是[1】。【題2.73】設(shè)intx=10,y,z;執(zhí)行y=2=x;x=y==z后,變量x的結(jié)果是11】?!绢}2.73】設(shè)inta=l,b=2,c,d,e;執(zhí)行c=(一a十十)十(十十b)d=(b 0+(十十a(chǎn))一a;e=(a/(十十b))—(b/(-a));后,變量a、b、c、d、e的結(jié)果分別是【2】【3】【2】【3】【〇】【題2.73】設(shè)inta=l,b=2.c=3,d;執(zhí)行d=!(a十b十c)后,d的結(jié)果是【〇】【題2.74】設(shè)inta=2,b=3,c,d,e,f;執(zhí)行c=(a十十>=- b);d=(a==Hhb);e=(aーー!=b);f=(++a>b );后,變量c、d、e、f的結(jié)果分別是【1】【1】【〇】【〇】第三章最簡(jiǎn)單的C程序設(shè)計(jì)1選擇題【題3.1]若要求的值分別為10、20、A、B?正確的數(shù)據(jù)輸入是(A)。A)10A20B<CR>B)10A20B<CR>C)10A20B<CR>D)10A20B<CR>【題3.2]有如下程序,若要求al、a2、cl、c2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是(D).main()(intal,a2;charcl,c2;scanf("刎%d”,&al,&a2);scanf("%c%c",&cl,&c2):}A)1020AB<CR>B)1020<CR>AB<CR>C)1020ABC<CR>D)1020AB<CR>【題3.3]有如下程序,輸入數(shù)據(jù):12345M678VcR>后,x的值是(B),y的值是(A)。#include<stdio.h>main(){intx;floaty;scanf("%3d%f",&x,&y);1,A.12345B.123C.45D.3452,A.15.000000B.45678.000000C.678.000000D.123.000【題3.4]有如下程序,輸入數(shù)據(jù):12M345VCR,后,x的值是(A),y的值是(B).#include<stdio.h>main()(intx;floaty;scanf("%3d%f”,&x,&y);)A.12B.123C.12345D.0A.12.000000B.345.000000C.12345.000000D.0.000000
【題3.5】以下C程序正確的運(yùn)行結(jié)果是(C).main(){longy二一43456;printf("y二%-81d\n",y);printf("y二%-081d\n",y);printf(wy=%081d\nw,y);printf(“y=%+81d\n",y);A)y=-43456y=-43456y=-0043456y=-43456C)y=-43456y=-43456y=-0043456y=-43456B)y=-43456y=-43456y=-0043456y二+43456D)y=-43456y二-〇043456y二00043456y=+43456【題3.6】以下C程序正確的運(yùn)行結(jié)果是(D).mainO{inty=2456;printf("y=%3o\n",y);printf(uy=%8o\nw,y);printf(“y二%#8on”,y);)A)y=2456 B)y=4630y=2456 y=4630y=########y=########2456C)y=2456y=2456y=02456y=########4630D)y=4630y=4630y=04630A)yA)y二5ba0y二JJJ5ba0ゝ=J^0x5ba0C)y二5ba0y=5ba0y二Ox5baO【題3.7】以下C程序正確的運(yùn)行結(jié)果是(A).mainO{longy=23456;printf("y或3x\n",y);printf("y二%8x\n",y);printf(“y二%#8x\n",y);B)y二—一5ba0丫二J一fbaO
y=JJ(0x5ba0D)y=5ba0y=j__15ba0y二####5ba0
【題3.8]若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是(D).scanf(,,%d%dlx,%leT,,&x,&y,&z);scanf("%2d*%d%lf",&x,&y,&z);scanf(“畑%*d囲〇”,&x,&Y);scanf(u%x%o%6.2fw,&x,&y,&z);【題3.9]已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)是,正確的數(shù)據(jù)輸入方式是(A)。(注:表示空格,<CR>表示回車)intal,a2;charcl,c2;scanf(<<%d%c%d%cw,&al,&cl,&a2,&c2);A)lOAf0B〈CR> B)lOffOf〈CR>10A20B<CR> D)10A20-lB<CR>【題3.10]已有定義intx;floaty!目.執(zhí)行scanf("%3d%3f",&x,&y);語句時(shí)從第一列開始輸入數(shù)據(jù)123451678V回車》,則x的位為(B),y的值為(B)。(注:表示空格)[1]A)12345 B)123 〇45 D)345【2】A)無定植 B)45.000000〇678.000000 D)123.000000【題3.11】已有如定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是(D)。(注:“R>表示回車)intal,a2;charcl,c2;scanf("%d%d",&al,&a2);scanf(w%c%cw,&cl,%c2);A)1020AB<CR>010——20-'fB〈CR>B)A)1020AB<CR>010——20-'fB〈CR>1O'-I2OAB<CR>【題3.12】已有程序和輸入數(shù)據(jù)的形式,程序中輸入語句的正確形式應(yīng)當(dāng)為(D)。(注:J表示空格,<CR>表示回車)main(){inta;floatf;printf("\nlnputnumber:");輸入語句printf("\nf=%f,a=%d\n",f,a);Inputnumber:4.5J*J*2<CR>scanf("%d,%f”,&a,&f);scanf(M%f,%dM,&f,&a);scanf("%d,%f”,&a,&f);scanf("%f,%d",&f,&a);【題3.13]根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為(B)。已有定義:floatfl,f2;數(shù)據(jù)的輸入方式:4.523.5scanf( ;scanf(“斌%f”,&fl,&f2);scanf(**%3.2f%2.lfw,&fl,&f2);scanf("%3.2f,%2.If",&fl,&f2);【題3.14]閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<CR>,正確的輸出結(jié)果為(D)。main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n”,x+y+z);)x+y+z=48x+y+z=35x+z=35D)不確定值【題3.15】根據(jù)題目中已給出的數(shù)據(jù)的輸入和輸出形式,程序中輸入輸出語句的正確內(nèi)容是⑻。main(){intx;floaty;pringf("enterx,y;")輸入語句輸出語句輸入形式enterx,y:23.4輸出形式x+y=5.40scanf( ,&x,&y);printf("\nx+y=%4.2f”,x+y);scanf( ,&x,&y);printf(“\nx+y=%4.2fff,x+y);scanf(a%d%ff,,&x.&y);printf("\nx+y=%6.If”,x+y);scanf(w%d%3.If",&x,&y);printf("\nx+y=%4.2f",x+y);【題3.16】以下說法正確的是(D).A)輸入項(xiàng)可以為一個(gè)實(shí)型常量,如5。aM(“斌”,3.5):B)只有格式控制,沒有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf("a=%d,b或d”);0當(dāng)輸入ー個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(“%4.2f”,&f);D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf("%f”,&f);【題3.17]根據(jù)ド面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該為(A).main(){charchi,ch2,ch3;輸入語句printf(a%c%c%cw,&chl,&ch2,&ch3);輸入形式:ABC輸出形式:ABscanf(<<%c%c%c,*,&chl,&ch2,&ch3);scanf("%c,%c,%c",&chl,&ch2,&ch3);scabf(“%c%c%cw,&chl,&ch2.&ch3);scanf("%c%cw,&chl,&ch2,&ch3);【題3.18】有輸入語句:scanf("a=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是(D)。(注:——表示空格)132《回車》1,〇3,D)2《回車》a=l——b=3——c=2《回車》a=l,G)b=3,H)c=2《回車》【題3.19】以下能正確的定義整形變量a,b,c并為其付初值5的語句是(A).inta=b=c=5;inta,b,c=5;a=5,b=5,c=5;a=b=c=5;【題3.20】已知ch是是字符形變量,下面不正確的賦值語句是(A).ch=a+b;ch=\〇:ch='7'+、9';ch=5+9;【題3.21】已知ch是是字符形變量,下面正確的賦值語句是(B).ch='123';ch二、、xff';ch=、、08';ch二“、”;【題3.22]若有以下定義,則正確的賦值語句是(B).inta,b;floatxa=l,b=2b++;a=b=5b=int(x);【題3.23】設(shè)X,Y均為FLOAT變量,則以下不合法的賦值語句是(B)++x;y=(x%2)/10;x*=y+8;x=y=10;【題3.24】設(shè)x,y,z均為int變量,則執(zhí)行語句x二(y二(z二(10)+5)-5;后,x,y,z的值是(A).x=10y=15z=10x=10y=10z=10x=10y=10z=15x=10y=5z=10【題3.25】設(shè)有說明:則能夠正確使用c語言庫(kù)函數(shù)的賦值語句是(D).z二exp(y)+fabs(x);y=loglO(y)+pow(y);z=sqrt(y-z);x=(int)(atan2((double)x,y)+exp(y-0.2));【題3.26】有如下程序,對(duì)應(yīng)正確的數(shù)據(jù)輸入是(A)〇#include<stdio.h>main(){floata,b;scanf(*%f%f*,&a,&b);printf(*a=%f,b=%f、n”,a,b);)2.04<CR>5.56<CR>2.01,5.67<CR>A=2.04,B=5.67<CR>2.045.67<CR>【題3.27】以下程序的執(zhí)行結(jié)果是(A)。#include<stdio.h>main()intsum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf(*%d\n*,pad);}A.7B.6C.5D.4【題3.28】以下程序的執(zhí)行結(jié)果是(B).#include<stdio.h>inti=010,j=10;printf("%d,%d\n”,++i,j—);}A.11,10B.9,10C.010,9D.10,9【題3.29]巳知字母A的ASCH碼是65,以下程序的執(zhí)行結(jié)果是(D)。#include<stdio.h>main(){charcl二'A',C2='Y';printf(*%d,%d\n”,cl,c2);A.A,YB.65,65C.65,90D.65,89.2填空題【題3.30]以下程序的執(zhí)行結(jié)果是[dec:-l,oct:177777,hex:ffff,unsigned:65535I〇#include<stdio.h>main(){shorti="l;ptintf〈dec:%d,oct:%o,hex:%x,unsigned:%u\n”,i,i,i,i);}【題3.31I以下程序的執(zhí)行結(jié)果是[dec:1,oct:1,hex:1,unsigned:1]〇#include<stdio.h>main(){shorti=l;printf〈dec:%d,oct:%o,hex:%x,unsigned:%u\n”,i,i,i,i);【題3.32]以下程序的執(zhí)行結(jié)果是【dec:65,oct:101,hex:41,ASCII:A】。#include<stdio.h>main()charc=,A';printf("dec:%d,oct:%0,hex:%x,ASCII:%c\n”,c,c,c,c);.以下程序的執(zhí)行結(jié)果是[3.141596,3.1416,3.142】。#include<stdio.h>main(){floatf=3.1415927;printff%f,%5.4f,%3.3f”,f,f,f);}【題3.33]以下程序的執(zhí)行結(jié)果是[3.500000,3.5]〇#includeくstdio.h>main()(floatf=3.5;printf("%f,%g”,f,f)}【題3.34]以下程序的輸出結(jié)果為【i:dec=14,oct=l77774,hex=fffc,unsigned=65532].main()(shortI;i=-4;printf("\ni:dec=%d,oct=%o,hex%x,unsigned二%u\n",i,i,i,i);)【題3.35]以下程序的輸出結(jié)果為[*3.140000,3.142*].main(){printf("*%f,%4.3f*\nw,3.14,3.1415);}【題3.36]以下程序的輸出結(jié)果為【c:dec=120,oct=170,hex=78,ASCH=x].main(){charc=x;printf(ac:dec=%d,oct=%o,hex%x,ASCII=%c\nw,c,c,c,c);}【題3.37]已有定義intd=-2;執(zhí)行以下語句后的輸出結(jié)果為[*d(l)=-2*d(2)=一2*d(3)=一2*,*d(4)=177776*d(5)=177776*d(6)=177776*].printf(u*d(l)=%d*d(2)=%3d*d(3)=%-3d*\n>,,d,d,d);printf("*d(4)=%〇?d(5)二%7〇?d(6)二%-7〇?'n",d,d,d);【題3.38]已有定義intd二?2;執(zhí)行以下語句后的輸出結(jié)果為1?d(l)=—2*d(2)=-2*d(3)=一2*,*d(4)=fffe*d(5)=fffe*d(6)=fffe*].printf("*d(l)二%d*d(2)二%3d*d(3)=%-3d*\n",d,d,d);printf("*d⑷二%x*d⑸二%6x*d6=%-6x*\n”,d,d,d);【題3.39]已有定義floatdl=305,d2=-305;執(zhí)行以下語句后的輸出結(jié)果為1?d(l)=3.50000e十00*d(2)=3.500e十00*d(3)=3.500e十00*,*d(4)=一3.50000e十00*d(5)=-3.50000e十00*d(6)=—3.5000e十〇〇?】.printf("*d(D=%e*d(2)=%.4e*d(3)=%10.4e*\n”,dl,dl,dl);printf("*d(4)=%e*d(5)=%.6e*d(6)=%12.5e*\n",d2,d2,d2);【題3.40】以下程序的輸出結(jié)果為[x=ly=2*sum?=3,lOSquaredis:100].main(){intx=l,y=2;printf(("x=%dy=%d*sum*=%d\nw,x,y,x+y);printf(4<10Squaredis:%d\n”,10*10);}【題3.41]以下程序的輸出結(jié)果為【10,JJJk-10,56.100000, —————3.141600,5.68100e+02,i ^3.14160e+00,3.1416,^1——— ^3.1416].-include<stdio.h>main(){intx=10;floatpi=3.1416;;printf("(l)%d\n"x);printf(a(2)%6d\n",x);printf("(3)%f\n”,56.1);printf(u(4)%14f\nw,pl);printf("(5)%e\n”,568.1);printf(u(6)%14e\nw,pi);printf("(7)%g\n",pi);printf(M(8)%12g\n,>,pi);【題3.42]以下程序的輸出結(jié)果為【!23.456000,———————123.457,123.4560,8765.456700, ————18765.457,8765.4567,8765.4567].#include<stdio.h>main(){floata=123.456;doubleb=8765.4567;printf("(l)%f\n"a);printf("(2)%14.3f\n",a);printf(“(3)%6.4f\n",b);printf(u(4)%lf\nw,b);printf(a(5)%14.3f\n",b);printf(a(6)%8.4f\n",b);printf(M(7)%.4f\n",b);【題3.43]以下printf語句中?的作用是【可以使同一輸出語句中的輸出寬度得以改變],輸出結(jié)果是[##1,#X2,##JJ3,##J^14,JJ^5].#include<stdio.h>main(){int=l;printf( ,i,i);i++;printf(“##%d\n",i,i)1++;Printf("m*d\n,>,I,i);)【題3.44])以下printf語句中的"-"的作用是【輸出數(shù)據(jù)左對(duì)齊】,該程序的輸出結(jié)果是【JJJ112##,121JJJ##,J-3.141592600##,3.141592600^ .#include<stdio.h>main(){intx=12;doublea=3.1415926;printf("%6d##\n>,,x);printf("%-6d##\nw,x);printf(“%14.101f##\n”,a);printf("%-14.101f##\nw,a);}【題3.45]以下程序的輸出結(jié)果是[a=十00325J( x=十3.14159e十〇〇(此處J代表空格)].#include<stdio.h>main(){inta=325;doublex=3.1415926;printf("a=%+06dx=%+e\n”,a,x);)【題3.46]以下程序的輸出結(jié)果是[a=374^^a=0374_,a=fc^^a=0xfc].#include<stdio.h>main(){inta=252;printf("a=%oa二%#o\n”,a,a);printf("a=%xa二%#x\n”,a,a);【題3.47]以下程序段的輸出結(jié)果是[(x=7281,x=7281,x=16161,x=lc71,x=7281),(x=7281,x=7281,x=67281,x=So07281,x=%06d),(x=十7281,x=十7281,x=十0007281),(x=l6161,x=016161),(x=lc71,x=oxlc71)].intx=7281;printf("(1)x二%3d,x二%6d,x二%6o,x二%6x,x二%6u\n”x,x,x,x,x);printf("(2)x二%-3d,x=%~6d,x二%$-06d,x二%$06d,x二%%06d\n”x,x,x,x,x);printf("(3)x=%+3d,x=%+6d,x=%+08d\n”x,x);printf("(4)x=%o,x二%#o\n”x,x);printf("(5)x=%x,x二%#x\n”x,x);【題3.48】假設(shè)變量a和b為整形,以下語句可以不借助任何變量把a(bǔ),b中的直進(jìn)行交換.請(qǐng)?zhí)羁誂+=【b];b=a-[b];a-=[b];【題3.49】假設(shè)變量a,b,c為整形,以下語句借助中間變量把a(bǔ),b和c中的直進(jìn)行交換,把b的直給a,把c的直給b,把a(bǔ)的直給c,例如,交換前,a=10,b=20,c=30,交換后,a=20,b=30,c=10請(qǐng)?zhí)羁眨踭=a];a=b;b=c;[c=t].【題3.50]假設(shè)變量x,y,z為整形變量,in為long變量,則在16位微型機(jī)上執(zhí)行下面的賦直語句后,y直為(32766),z直為(T),m直為[】[65535].y=(x=32767,x-1);z=m=oxFFFF;【題3.51]假設(shè)變量x,為整形變量,則執(zhí)行下面語句后x的直為[-14].x=7;x+=x-=x+x;【題3.52]假設(shè)變量a,b為整形變量,則以下語句的功能是【不借助任何中間變量把a(bǔ)、b中的值進(jìn)行交換].a+=b;b=a-b;a-=b;【題3.53]在scanf函數(shù)語句調(diào)用中,可以在格式字符和%之間加一個(gè)星號(hào),他的作用是【跳過對(duì)應(yīng)的輸入數(shù)據(jù)],當(dāng)輸入以下數(shù)據(jù):10_20一30—40〈回車》(此處ー代表空格),下面語句的執(zhí)行結(jié)果是【當(dāng)輸入以廠數(shù)據(jù)時(shí):10^^20^J30J140〈回奉〉將把10賦給al,跳過20,把30賦給a2,把40賦給a3].intal,a2,a3;scanf("%d%*d%d%d",&al,&a2,&a3);【題3.54]有一輸入函數(shù)scanf(“刎”,k);則不能使用float變量k得到正確數(shù)值的原因是【未指明變量k的地址】和【格式控制符與變量類型不匹配】.scanf語句的正確形式應(yīng)該是:scanf("%f",&k))【題3.55 】已有定義!nta;floatb,x;charcl,c2i為使a=3,b=6.5,x=12.6,cl=,a',c2二'A'正確的函數(shù)調(diào)用語句是[scanf("%d%f%F%c%c".&a,&b,&cl,&c2)】輸入數(shù)據(jù)的方式是[3^6.5^12.6aAV回車〉】.【題3.56】若有以下定義的語句,為使變量cl得到字符'A',變量c2得到字符'B',正確的格式輸入形式是[A-- 回車>】.charcl,c2;scanf("%4c%4c”,&cl,&c2);【題3.57】執(zhí)行以下程序時(shí),若從第一列開始輸數(shù)據(jù),為使變量a=3,b=7,x=8.5,y=71.82,cl='A',c2='a',正確的數(shù)據(jù)輸入形式是[a=3J*b=7x=8.5Jy=71.82cl=A1c2=aV回車>】.main(){inta,b;floatx,y;charcl,c2;scanf("a=%db=%d,,&a.,&b)1scanf(ax%fy=%d',&a.,&b)1scanf(wa=%db=%d9,&a.,&b)1printf(ua=%d,b=%d,x=%f,y=%f,cl二%c,c2=%cw,a,b,x,y,cl,c2);【題3.58]已有定義intLj;floatx;為將一10副給I,12副給j,410.34副給x,則對(duì)應(yīng)以下函數(shù)調(diào)用語句的數(shù)據(jù)輸入形式是【ー12-C-4.1034。十02〈回車〉】.Scanf(<<%o%x%e,,,&I,&j,&x)【題3.59]以下程序的執(zhí)行結(jié)果是[31.415920,3.14159e+01]o#include<stdio.h>main()(floatf=31.41592;printf(*%f,%e”,f,f)}【題3.60]以下程序的執(zhí)行結(jié)果是[c=k]o#include<stdio.h>main(){charc二'A'+10;printf(*c='%c\n”,c);}【題3.61]以下程序輸入123VcR>后的執(zhí)行結(jié)果是[a=l,bニ空格,c=2】.#include<stdio.h>main()(inta,c;charb;scanf("%d%c%d”,&a,&b,&c);printf("a二%d,b二%c,c二%d\n”,a,b,c);【題3.62]以下程序輸入123456VCR>后的執(zhí)行結(jié)果是【a二12,b二345】.#include<stdio.h>main()(inta,b;scanf("%2d%3d”,&a,&b);printf("a二%d,b二%d\n”,a,b);}【題3.63]以下程序輸入ABCVCR>后的執(zhí)行結(jié)果是[c=A].#include<stdio.h>main()charc;scanf("%3c",&c);printf("c=%c\n”,c);j3.3編程題【題3.64I編寫程序,從鍵盤上輸入兩個(gè)電阻的值,求它們并聯(lián)和串聯(lián)的電阻值,輸出結(jié)果保留兩位小數(shù)。解:本題的輸入輸出要求很明確,并聯(lián)和串聯(lián)的電阻位計(jì)算公式如下:R\+R2并聯(lián)電阻RP=町?R2 串聯(lián)電阻RS=R1+R2用順序結(jié)構(gòu)即可完成題冃要求的任務(wù),程序如下:#include<stdio.h>main(){floatrl,r2,rp,rs;printf("InputRIandR2:");scanf("%f%f",&rl,&r2);rs=(rl+r2);rp=rs/(rl*r2);printf("RP=%.2fRS=%.2f",rp,rs);}【題3.65]編寫攝氏溫度、華氏溫度轉(zhuǎn)換程序。要求:從鍵盤輸入ー個(gè)攝氏溫度,屏幕就顯示對(duì)應(yīng)的華氏溫度,輸出取兩位小數(shù)。轉(zhuǎn)換公式:F=(C+32)X9/5解:用順序結(jié)構(gòu)即可完成題目要求的任務(wù),程序如下:#include<stdio.h>main(){floatc,f;printf("InputC:");scanf("%f",&c);f=(c+32.0)*9.0/5.0;printf("F=%.2f\n",f);}【題3.66】編寫程序,從鍵盤輸入梯形的上下底邊長(zhǎng)度和髙,計(jì)算梯形的面積。丄解:用順序結(jié)構(gòu)即可完成題目要求的任務(wù),梯形的面積=2(a+b)*h,程序如下:#include<stdio.h>main(){floata,b,h,s;printf("Inputa,b,h:");scanf”,&a,&b,&h);s=(a+b)*h/2.0;printf("s=%.2f\n",s);【題3.67]編寫程序,從鍵盤上輸入一行字符,并依次顯示在屏幕上。解:用回車控制輸入結(jié)束,用循環(huán)結(jié)構(gòu)顯示輸入緩沖區(qū)的字符,程序如下:#include<stdio.h>main(){charch;while((ch=getchar())!=’\n')printf("%c",ch);【題3.68]編寫程序,從鍵盤輸入一個(gè)字符,求出與該字符前后相鄰的兩個(gè)字符,按從小到大的順序輸出這三個(gè)字符的ASCII碼。解:ASCII碼的大小關(guān)系與字符的大小關(guān)系一致,且相鄰字符的ASCII碼編碼連續(xù)。用順序結(jié)構(gòu)即可實(shí)現(xiàn),程序如下:#include<stdio.h>main(){charch;ch=getchar();printf("%cASCIIcodeis%d\n",ch-l,ch-l);printf("%cASCIIcodeis%d\n",ch,ch);printf("%cASCIIcodeis%d\n",ch+1,ch+1);【題3.69]編寫程序,從鍵盤輸入某學(xué)生的四科成績(jī),求出總分和平均分,找出最高分和最低分。解:尋找最高分和最低分的基本操作是比較當(dāng)前分?jǐn)?shù)和當(dāng)前最高分及最低分的大小,需要選擇結(jié)構(gòu)來實(shí)現(xiàn),程序如下:#include<stdio.h>main(){floatal,a2,a3,a4,aver,sum;floatmin,max;printf("Enter4scores:");scanf("%f%f%f%f",&al,&a2,&a3,&a4);min=al;max=al;sum=al+a2+a3+a4;aver=sum/4;if(a2<min)min=a2;elseif(a2>max)max=a2;if(a3<min)min=a3;elseif(a3>max)max=a3;if(a4<min)min=a4;elseif(a4>max)max=a4;printf("aver=%.2fsum=%.2f\n",aver,sum);printf("min=%.2fmax=%.2f\n",min,max);)【題3.70I編寫程序,輸入年份和月份,求該月的天數(shù)。解:需要判斷輸入的年份是否閏年,輸入月份與該月天數(shù)的關(guān)系最好使用switch結(jié)構(gòu),if結(jié)構(gòu)亦可完成。參考程序如下:#include<stdio.h>main()(intyear,month,day;printf("Enteryear&month:");scanf("%d%d",feyear,femonth);if((year%4=0)&&(year%l00!=0)I|(year%400==0)){if(month==2)
day=29;elseday=28;}else{switch(month)(case1:case3:case5:case10:case12:day=31;break;case2:day二28;break;case4:case6:case9:case11:day二30;break;}}printf("year二%dmonth二%dday二%d\n,year,month,day);【題3.71]考察目前銀行對(duì)整存整取存款不同期限的儲(chǔ)蓄利率,計(jì)算存入本金和一定期限的存款到期時(shí)的利息及利息與本金的和。當(dāng)前整存整取年息利率參考:(酚半年:2.16一年:2.25二年:2.43三年:2.70五年:2.88解:本題需要根據(jù)不同的存款期限決定計(jì)算利息使用的利率,需要選擇結(jié)構(gòu),參考程序如下:#include<stdio.h>main(){doublebenjin,rate,rest;doubletotal;intterm;printf("Enterbenjin:");scanf("%lf",&benjin);printf("\nEnterterm:“"\n0--halfyear”"\n 1 -- 1 year""\n 2 - 2 years"\n 3 -- 3 years"\n 5 - 5 years\n");scanf("%d",&term);switch(term){case0:rate=0.5*2.16*0.01;break;rate=2.25*0.01;break;rate=2.0*2.43*0.01;break;rate=3.0*2.7*0.01;break;case5:rate=5.0*2.88*0.01;break;default:printf("InputError\n");exit(0);)rest=benjin*rate;total=benjin+rest;printf("benjin:%10.21f\n",benjin);printf("rate:%10.51f\n",rate);printf("total:%10.21f\n",total);}【題3.72】“水仙花數(shù)”是指ー個(gè)三位數(shù),它的三個(gè)數(shù)位數(shù)字的立方和這個(gè)數(shù)的數(shù)值相等,編程打印所有的水仙花數(shù)。解:本題適于使用窮舉法求解,注意窮舉范圍為三位數(shù)100^999,窮舉條件為:三位數(shù)的三個(gè)數(shù)位數(shù)字的立方和等于這個(gè)數(shù)的數(shù)值。需要使用循環(huán)結(jié)構(gòu)。程序如下:^include<stdio.h>main()(intdO,dl,d2,n;printf("Thenumbersare;for(n=100;n<=999;n++){d0=n%10;dl=n%100/10;d2=n/100;if(n==dO*dO*dO+dl*dl*dl+d2*d2*d2)printf("%5d”,n);}printf('\n");}【題3.73]編寫程序,統(tǒng)計(jì)C源程序中標(biāo)識(shí)符的個(gè)數(shù)。解:程序的關(guān)鍵是如何判斷標(biāo)識(shí)符。由標(biāo)識(shí)符定義知它由字母、數(shù)字和下劃線組成且第一個(gè)字符不能是數(shù)字。inword變量記錄當(dāng)前字符的狀態(tài),inword=l表示當(dāng)前字符在標(biāo)識(shí)符內(nèi),inword=0表示當(dāng)前字符不在標(biāo)識(shí)符內(nèi),inquota變量記錄當(dāng)前字符是否在引號(hào)內(nèi)(設(shè)不考慮引號(hào)嵌套的情況),本題只能由鍵盤輸入若干行源程序。參考程序如下:^include<stdio.h>main(){intc,num,inquota=0,inword=0;num=0;while((c=getchar())!=EOF){if((c=V)||(?八つ){if(inquota==l)inquota=0;elseinquota=l;)elseif(!(((c>='a')&&(cくニ'z'))I((c>二'A')&&(cくニ'Z'))||((c>='0,)&&(c<='9'))|(cニニ'」))){if((inwordニニ1)&&(inquotaニニ〇)){inword二。;num++;))elseif((inword==0)&&(inquota==0)){if(!((c>二'〇')&&(cく二'9')))inword=l;)}/*whle*/printf("num二%d\n,num);【題3.74]編程計(jì)算1!+2!+3!+???+n!,驗(yàn)證對(duì)前10項(xiàng)求得的結(jié)果是否正確?當(dāng)n=20時(shí),結(jié)果是否正確?如果出錯(cuò),弄清原因,并修改程序。解:本題需要考慮數(shù)據(jù)計(jì)算可能溢出的問題,累計(jì)階乘計(jì)算結(jié)果的變量值增長(zhǎng)很快,應(yīng)該考慮使用表示范圍更大的數(shù)據(jù)類型(longヽfloat或double)。程序需要循環(huán)結(jié)構(gòu),注意當(dāng)前項(xiàng)的計(jì)算方法,參考程序如下:#include<stdio.h>main(){longs=0,t=l;inti,n;printf("Enterintegern:");scanf("%d",&n);for(i=l;i<=n;i++){t*=i;s+=t;}printf("s=%ld\n",s);【題3.75】用牛頓迭代法求下面方程在1.5附近的根。2x3-4x2+3x-6=0解:牛頓迭代法先任意設(shè)定一個(gè)與真實(shí)的根接近的值x0作為第一次近似根,由x0求出f(x0),過(x0,f(x0))點(diǎn)做f(x)的切線,交x軸于xl,把它作為第二次近似根,再由xl求出f(xl),過(xl,f(xl))點(diǎn)做f(x)的切線,交x軸于x2,把它作為第三次近似根…如此知道足夠接近真正的根xn為止。牛頓迭代公式為:xl=x0-f(x0)/f,(x0)由于第一次近似根不可能取到真實(shí)的根,循環(huán)體至少執(zhí)行一次,使用do_while循環(huán)結(jié)構(gòu)實(shí)現(xiàn)迭代較好。參考程序如下:#include<stdio.h>^include<math.h>main(){doublexl,xO,fd,fl;x0=l.5;do{xl=x0;fl=((2*xl-4)*xl+3)*x0-6;fd=(6*xl-8)*xl+3;xO=xl-fl/fd;}while(fabs(xl-xO)>=le-5);printf("Therootis%lf\n",xO);)【題3.76]編程計(jì)算下面函數(shù),注意檢查輸入變量的合法性,并做出適當(dāng)?shù)奶幚怼?X+2.5 0<=x<2y= 2-1.5X(x-3)22<=x<4x-1.5 4<=x<6解:本題的函數(shù)自變量是小于6的非負(fù)實(shí)數(shù),參考程序如下:ttinclude<stdio.h>main(){floatx,f;printf(*Enterfloatx:");scanf(*%f*,&x);if(x<0IIx>=6)printf("inputerror!\n");else{if(x>=0&&x<2)f=2.5-x;elseif(x>=2&&x<4)f=2.0-1.5*(x-3.0);elseif(x>=4&&x<6)f=x-1.5;printf("f二%.2f\n",f);【題3.77]輸入n,打印高和上底均為n的等腰空心梯形。***解:注意打印位置和行數(shù)、列數(shù)的關(guān)系,每行打印字符個(gè)數(shù)比上一行多2。內(nèi)容分為三部分,“*”串、空格串、“*”串。參考程序如下:#include<stdio.h>main()(intsi,s2,s3;/?三部分起始位置?/intnl,n2=0,n3=0;/?三部分的長(zhǎng)度?/inti,j;sl=10;nl=5;s2=sl+nl;n2=。;s3=s2+n2;for(i=l;i<=5;i++){for(j=l;j<sl;j++)putchar(*');for(j二si;jくsl+nl;j++)putcharC**);for(j=s2;jくs2+n2;j++)putcharC);for(j=s3;j<s3+n3;j++)putcharC*');putcharC\n);if(i<4){if(i==Dn2=nl;elsen2=n2+2;s2=sl;sl=sl-l;nl=l;s3=s3+l;n3=l;}else{sl=sl-l;nl=nl+n2+n3+2;s2=sl+nl;n2=0;s3=s2+n2;n3=0;【題3.78】用三種循環(huán)結(jié)構(gòu)分別編寫程序,計(jì)算口的近似值,公式如下:ji/41-1/3+1/5-1/7+到最后ー項(xiàng)的絕對(duì)值小于10-6為止。解:循環(huán)結(jié)構(gòu)是這類近似計(jì)算常用的結(jié)構(gòu),本題在循環(huán)時(shí)需要保持ー個(gè)累計(jì)結(jié)果的變量,每次計(jì)算當(dāng)前項(xiàng)時(shí),需要變號(hào)操作,類似本題的結(jié)束控制使用while和do_while結(jié)構(gòu)比較合適。注意當(dāng)前項(xiàng)計(jì)算值和循環(huán)控制變量的關(guān)系,參考程序如下:#include<stdio.h>#include<math.h>main(){floatpi,t,n;intsign=l;pi=0.0;n=l.0;t=l.0;while(fabs(t)>=le-6){t=sign/n;pi+=t;n+=2;sign二一sign;)pi=pi*4;printf("pi=%f\n”,pi);第四章選擇結(jié)構(gòu)4.1單選題[題4.1]為了避免嵌套的if-else語句的二義性,c語言規(guī)定else總是與(C )組成配對(duì)關(guān)系。A)縮排位置相同的!fB)在其之前末配對(duì)的if〇在其之前未配對(duì)的最近的ifD)同一行上的if【題4.2]選擇出合法的if語句(設(shè)intx,a,b,c;)(A).if(a=b)x十十:if(a=<b)xH;if(a<>b)xHh;if(a=>b)x十十:【題4.3]選擇出合法的if語句(設(shè)intx,y;)(A)〇if(x!=y)if(x>y)printf("x>y\n”);elseprinf(wxVy'n");elseprintf(wX==y\n");if(xi=y)if(x>y)printf(wx>y\n")elseprintf(wxVy\n");elseprintf(wx==y\n");if(x!=y)if(x>y)Printf(wx>y\nw);elseprintf(wxVy\n")elseprintf(wx==y'n");if(x!=y)lf(x>y)Printf(wx>y\nw);elseprintf("xVy\n")elsePrintf(wx==y\n");【題4.4】執(zhí)行下列程序,輸入為1的輸出結(jié)果是(D),輸入為3的輸出結(jié)果是(C)。#include<stdio.h>main()(intk;scanf("%d",&k);switch(k){case1:printf(*%d\n*?k++);printf(*%d\n*?k++);printf("%d\n”,k++);printf("%d\n”,k++);break;default:printf("FULL!\n");①A.1B.2C.2D.1TOC\o"1-5"\h\z3 234②A.3B.4C.3D.44 5【題4.5]邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型(D).A)能是〇或1B)只能是?;蚍签栒龜?shù)C)只能是整型或字符型數(shù)據(jù)D)可以是任何類型的數(shù)據(jù)【題4.6J以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是(C).A)關(guān)系運(yùn)算符e算術(shù)運(yùn)算符〈賦值運(yùn)算符(邏輯與運(yùn)算符B)邏輯與運(yùn)算符〈關(guān)系運(yùn)算符v算術(shù)運(yùn)算符〈賦值運(yùn)算符0以賦值運(yùn)算符〈邏輯與運(yùn)算符〈關(guān)系運(yùn)算符〈算術(shù)運(yùn)算符D)算術(shù)運(yùn)算符〈關(guān)系運(yùn)算符〈賦值運(yùn)算符〈邏輯與運(yùn)算符【題4.7]下列運(yùn)算符中優(yōu)先級(jí)最高的是(B).A)<B十0%D)!=【題4.8]能正確表示“當(dāng)x的取值在L1,10]稈L200,210]范圍內(nèi)為真,否則為假’達(dá)式是C.(x>=l)&&(x<=10)&&(x>=200)&&(x<=210)(x>=l)II(x<=10)|I(x>=200)|I(x<=210)0(x>=l)&&(x<=lo)II(x>=20Q)&&(x<=210)D)(x>=1)II(x<=10)&&(x>=200)II(x<;210)【題4.9J表示圖中坐標(biāo)軸上陰影部分的正確表達(dá)式是(C).1111I IHUI////I I1111IA bcA)(x<=a)&&(x>=b)&&(x<=c)B)(x<=a)II(b<=x<=c)(x<=a)II(x>=b)&&(x<=c)(x<=a)&&(b<=x<=c)【題4.10]判斷char型變量ch是否為大寫字母的正確表達(dá)式是(C).A)'A'<=ch<='Z' B)(cb>='A')&(ch<='Z')C)(ch>='A')&&(ch<='Z') D)('A'<=ch)AND(4Z'>=ch)【題4.11]]設(shè)x、y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0的是(D).A),X'&&'y'B)x<=yC)xIIy+z&&y-zD)!((x<y)&&!zII1)【題4.12I已知x=43,ch='A',y=0;則表達(dá)式(x>=y6&&ch(,B'&&!Y)的在值是(C)A)0B)語法錯(cuò)C)1D)“假”【題4.13]若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是(C).A)A%2==1 B)!(入%2==0)〇!(A%2) D)A%2【題4.14]沒有,inta=l,b=2,c=3,d=4,m=2,n=2執(zhí)行(m=a〉b&&(n=c〉d)后n的值為(B).A)1 B)2 03 D)4【題4.15]判斷char型變量cl是否為小寫字母的正確表達(dá)式為(D).A)'a'<=cl<=f*z' B)(cl>=a)&&(cl<=z)0(匕’>=cl)(<z'<=cl) D)(cl>=,a')&&(cl<='z')【題4.16】以下程序的運(yùn)行結(jié)果是(B).#include“stdio.h”MainO{inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b)【題4.17】執(zhí)行以下語句后2的值為(0,b的值為(A).inta,b,c;a=b=c=15++aII++b&&++門A)錯(cuò)誤 B)0 02 D)1A)1 B)2 〇錯(cuò)誤D)0【題4.18】執(zhí)行以下語句后a的值為(B),b的值為(A)。iua=5,b=6,w=l,x=2,y=3,z=4;(a=w>x)&&(b=y>z);[1]A)5 B)0 02 DI[1]A)6 B)0 01 D4【題4.19】以下不正確的if語句形式是(〇.A)if(x>y&&x!=y);B)if(x==y)x+=y;Cif(x!=y)scanf("%d",&x)elsescanf(w%d,&y);D)if(x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)服務(wù)保密合同
- 合同范本之購(gòu)房合同填寫范本模板
- 2025年度中國(guó)平煤神馬控股集團(tuán)高校畢業(yè)生招聘808人筆試參考題庫(kù)附帶答案詳解
- 2025山西紅杰人才集團(tuán)有限公司招聘10人筆試參考題庫(kù)附帶答案詳解
- 2024-2025學(xué)年北京通州區(qū)高三(上)期末歷史試卷(含答案)
- 2025年上半年宜春市廣播電視臺(tái)招考電視新聞主播易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蕪湖市數(shù)據(jù)資源管理局(政務(wù)服務(wù)管理局)招聘6人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省淮南市政府購(gòu)買崗招聘92人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省寧國(guó)市林業(yè)事業(yè)發(fā)展中心公開招聘工作人員1人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省農(nóng)科院引進(jìn)博士研究生擬聘用人員(第二批)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 電梯采購(gòu)合同范本
- 2025年官方二手房交易協(xié)議
- 2025年山東泰山財(cái)產(chǎn)保險(xiǎn)股份有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年度珠寶店珠寶首飾設(shè)計(jì)研發(fā)合作協(xié)議
- 非遺數(shù)字化保護(hù)的可行性研究
- 農(nóng)村自建房施工合同范本(包工包料)
- 2025年復(fù)工復(fù)產(chǎn)安全開工第一課專題培訓(xùn)
- 【道法】做自信的人課件 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 軍兵種基礎(chǔ)知識(shí)
- 公交車預(yù)防春困
- 法務(wù)助理實(shí)習(xí)報(bào)告
評(píng)論
0/150
提交評(píng)論