欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      語(yǔ)言程序設(shè)計(jì)(第四版)第2章【課后答案】[合集5篇]

      時(shí)間:2019-05-12 16:49:35下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《語(yǔ)言程序設(shè)計(jì)(第四版)第2章【課后答案】》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《語(yǔ)言程序設(shè)計(jì)(第四版)第2章【課后答案】》。

      第一篇:語(yǔ)言程序設(shè)計(jì)(第四版)第2章【課后答案】

      匯編語(yǔ)言程序設(shè)計(jì)

      第四版

      【課后習(xí)題答案】

      --囮裑為檤

      第2章 8086的指令系統(tǒng)

      〔習(xí)題2.1〕已知DS=2000H、BX=0100H、SI=0002H,存儲(chǔ)單元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,說(shuō)明下列每條指令執(zhí)行完后AX寄存器的內(nèi)容。

      (1)mov ax,1200h(2)mov ax,bx(3)mov ax,[1200h](4)mov ax,[bx](5)mov ax,[bx+1100h](6)mov ax,[bx+si](7)mov ax,[bx][si+1100h] 〔解答〕(1)AX=1200H(2)AX=0100H(3)AX=4C2AH;偏移地址=bx=0100h(4)AX=3412H;偏移地址=bx=0100h(5)AX=4C2AH;偏移地址=bx+1100h=1200h(6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h(7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h

      〔習(xí)題2.2〕指出下列指令的錯(cuò)誤

      (1)mov cx,dl(2)mov ip,ax(3)mov es,1234h(4)mov es,ds(5)mov al,300(6)mov [sp],ax(7)mov ax,bx+di

      (8)mov 20h,ah 〔解答〕

      (1)兩操作數(shù)類型不匹配(2)IP指令指針禁止用戶訪問(3)立即數(shù)不允許傳給段寄存器(4)段寄存器之間不允許傳送(5)兩操作數(shù)類型不匹配(6)目的操作數(shù)應(yīng)為[ SI ](7)源操作數(shù)應(yīng)為 [BX+DI](8)立即數(shù)不能作目的操作數(shù)

      〔習(xí)題2.3〕已知數(shù)字0 ~ 9對(duì)應(yīng)的格雷碼依次為:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table為首地址(設(shè)為200H)的連續(xù)區(qū)域中。請(qǐng)為如下程序段的每條指令加上注釋,說(shuō)明每條指令的功能和執(zhí)行結(jié)果。

      lea bx,table mov al,8 xlat 〔解答〕

      lea bx,table ;獲取table的首地址,BX=200H mov al,8 ;傳送欲轉(zhuǎn)換的數(shù)字,AL=8 xlat ;轉(zhuǎn)換為格雷碼,AL=12H P35

      〔習(xí)題2.4〕什么是堆棧,它的工作原則是什么,它的基本操作有哪兩個(gè),對(duì)應(yīng)哪兩種指令?

      〔解答〕

      堆棧是一種按“先進(jìn)后出”原則存取數(shù)據(jù)的存儲(chǔ)區(qū)域,位于堆棧段中,使用SS段寄存器記錄其段地址;它的工作原則是先進(jìn)后出;堆棧的兩種基本操作是壓棧和出棧,對(duì)應(yīng)的指令是PUSH和POP。

      〔習(xí)題2.5〕已知SS = 2200H、SP = 00B0H,畫圖說(shuō)明執(zhí)行下面指令序列時(shí),堆棧區(qū)和SP的內(nèi)容如何變化?

      mov ax,8057h push ax mov ax,0f79h

      push ax

      pop bx pop [bx] 〔解答〕

      mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop [bx];DS:[0f79h]=8057h

      〔習(xí)題2.6〕給出下列各條指令執(zhí)行后AL值,以及CF、ZF、SF、OF和PF的狀態(tài):

      mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al

      〔解答〕

      mov al,89h;AL=89h CF ZF SF OF PF add al,al;AL=12h 1 0 0 1 1;1000 1001 +1000 1001 10001 0010

      add al,9dh;0001 0010 + 1001 1101 1010 1111

      cmp al,0bch;1010 1111-1011 1100 * 0100 0011

      sub al,al

      dec al;0000 0000456

      xor ax,ax ;AX=0000H 0 1 0 0 1 not ax ;AX=FFFFH 0 1 0 0 1 test ax,0f0f0h ;AX=FFFFH 0 0 1 0 1 注意:MOV和NOT指令不影響標(biāo)志位;其他邏輯指令使CF=OF=0,根據(jù)結(jié)果影響其他標(biāo)志位。

      〔習(xí)題2.12〕假設(shè)例題2.34的程序段中,AX = 08H,BX = 10H,請(qǐng)說(shuō)明每條指令執(zhí)行后的結(jié)果和各個(gè)標(biāo)志位的狀態(tài)。

      〔解答〕

      指令;執(zhí)行結(jié)果

      CF OF SF ZF PF mov si,ax;SI=AX=0008H-

      ;考慮進(jìn)位

      xor ah,ah mov bx,ax mov cl,3 shl ax,cl add ax,bx;shl bx,1 add ax,bx(2)數(shù)字0~9的ASCII碼是:30h~39h 非壓縮BCD碼的0~9是:00h~09h 方法一:

      and al,0fh;實(shí)現(xiàn)ASCII到非壓縮BCD碼的轉(zhuǎn)換

      or al,30h;實(shí)現(xiàn)非壓縮BCD碼到ASCII的轉(zhuǎn)換 方法二:

      xor al,30h ;求反D5D4位,其他不變

      ;即高4位為3,則變?yōu)?;高4位為0,則變?yōu)?(3)mov cl,4 again: shr dx,1;實(shí)現(xiàn)邏輯右移

      ;采用“sar dx,1”,則實(shí)現(xiàn)算術(shù)右移 rcr ax,1 dec cl

      jnz again

      〔習(xí)題2.14〕已知AL = F7H(表示有符號(hào)數(shù)-9),分別編寫用SAR和IDIV指令實(shí)現(xiàn)的除以2的程序段,并說(shuō)明各自執(zhí)行后,所得的商是什么?

      〔解答〕(1)用sar編寫

      mov al,0f7h;-9送AL 1111 1001 sar al,1;結(jié)果:AL=1111 1100B=0FBH 即-5(2)用idiv編寫

      mov al,0f7h;-9送al cbw;字節(jié)符號(hào)擴(kuò)展位字

      mov bl,2;注意除數(shù)不可為立即數(shù)

      idiv bl;結(jié)果:商為al=fch(-4);余數(shù):ah=ffh(-1)結(jié)論:符號(hào)數(shù)的除法用idiv 準(zhǔn)確。

      〔習(xí)題2.15〕指令指針I(yè)P是通用寄存器還是專用寄存器?有指令能夠直接它賦值嗎?哪類指令的執(zhí)行會(huì)改變它的值?

      〔解答〕

      指令指針I(yè)P不是通用寄存器,不可直接賦值,屬于專用寄存器。有且僅有循環(huán)、轉(zhuǎn)移、子程序調(diào)用和返回、中斷類等指令可以改變它的值。

      〔習(xí)題2.16〕控制轉(zhuǎn)移類指令中有哪三種尋址方式?

      〔解答〕

      控制轉(zhuǎn)移類指令的尋址方式:相對(duì)尋址、直接尋址方式和間接尋址方式(又可以分成寄存器和存儲(chǔ)器間接尋址)。

      〔習(xí)題2.17〕什么是短轉(zhuǎn)移short jump、近轉(zhuǎn)移near jump和遠(yuǎn)轉(zhuǎn)移far jump?什么是段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移?8086有哪些指令可以實(shí)現(xiàn)段間轉(zhuǎn)移?

      〔解答〕

      短轉(zhuǎn)移:指段內(nèi)-128~127之間的轉(zhuǎn)移,位移量用一個(gè)字節(jié)表示近轉(zhuǎn)移:指段內(nèi)±32K之間的轉(zhuǎn)移,位移量用一個(gè)字表示 遠(yuǎn)轉(zhuǎn)移:指段間1MB范圍的轉(zhuǎn)移

      段內(nèi)轉(zhuǎn)移:指在同一個(gè)代碼段內(nèi)的轉(zhuǎn)移,可以是短轉(zhuǎn)移或者近轉(zhuǎn)移 段間轉(zhuǎn)移:指轉(zhuǎn)移到另外一個(gè)代碼段,就是遠(yuǎn)轉(zhuǎn)移

      8086/8088CPU的JMP、CALL和INT n指令可以實(shí)現(xiàn)段間轉(zhuǎn)移

      〔習(xí)題2.18〕8086的條件轉(zhuǎn)移指令的轉(zhuǎn)移范圍有多大?實(shí)際編程時(shí),你如何處理超出范圍的條件轉(zhuǎn)移?

      〔解答〕

      8086的條件轉(zhuǎn)移的轉(zhuǎn)移范圍:在當(dāng)前指令地址的 +127~-128之內(nèi)。

      如條件轉(zhuǎn)移的轉(zhuǎn)移范圍超出此范圍,可在此范圍內(nèi)安排一條無(wú)條件轉(zhuǎn)移,再轉(zhuǎn)移到范圍外的目標(biāo)地址。

      〔習(xí)題2.19〕假設(shè)DS=2000H,BX=1256H,SI=528FH,位移量TABLE=20A1H,[232F7H]=3280H,[264E5H]=2450H,試問執(zhí)行下列段內(nèi)間接尋址的轉(zhuǎn)移指令后,轉(zhuǎn)移的有效地址是什么?

      (1)JMP BX

      (2)JMP TABLE[BX](3)JMP [BX][SI] 〔解答〕

      (1)轉(zhuǎn)移的有效地址EA= BX=1256H(2)轉(zhuǎn)移的有效地址EA= [DS:20A1H+1256H]=[232F7]=3280H(3)轉(zhuǎn)移的有效地址EA= [DS:1256H+528FH]=264E5H=2450H

      〔習(xí)題2.20〕判斷下列程序段跳轉(zhuǎn)的條件

      (1)xor ax,1e1eh

      je equal(2)test al,10000001b

      jnz there(3)cmp cx,64h jb there 〔解答〕

      (1)AX=1e1eh(異或后為0)(2)AL的D0或D7至少有一位為1(3)CX(無(wú)符號(hào)數(shù))< 64h

      〔習(xí)題2.21〕設(shè)置CX = 0,則LOOP指令將循環(huán)多少次?例如:

      mov cx,0 delay: loop delay 〔解答〕 216次。

      〔習(xí)題2.22〕假設(shè)AX和SI存放的是有符號(hào)數(shù),DX和DI存放的是無(wú)符號(hào)數(shù),請(qǐng)用比較指令和條件轉(zhuǎn)移指令實(shí)現(xiàn)以下判斷:

      (1)若DX > DI,轉(zhuǎn)到above執(zhí)行;(2)若AX > SI,轉(zhuǎn)到greater執(zhí)行;(3)若CX = 0,轉(zhuǎn)到zero執(zhí)行;

      (4)若AX-SI產(chǎn)生溢出,轉(zhuǎn)到overflow執(zhí)行;(5)若SI≤AX,轉(zhuǎn)到less_eq執(zhí)行;

      (6)若DI≤DX,轉(zhuǎn)到below_eq執(zhí)行?!步獯稹?/p>

      (1)若DX > DI,轉(zhuǎn)到above執(zhí)行

      cmp dx,di ja above ;=j(luò)nbe above(2)若AX > SI,轉(zhuǎn)到greater執(zhí)行

      cmp ax,si jg greater ;=j(luò)nle greater(3)若CX = 0,轉(zhuǎn)到zero執(zhí)行

      cmp cx,0 jz zero;= jcxz zero

      (4)若AX-SI產(chǎn)生溢出,轉(zhuǎn)到overflow執(zhí)行;

      cmp ax,si jo overflow(5)若SI≤AX,轉(zhuǎn)到less_eq執(zhí)行;

      cmp si,ax;cmp ax,si jle less_eq;jge less_eq(6)若DI≤DX,轉(zhuǎn)到below_eq執(zhí)行。

      cmp di,dx;cmp dx,di jbe below_eq;jae below_eq

      〔習(xí)題2.23〕有一個(gè)首地址為array的20個(gè)字的數(shù)組,說(shuō)明下列程序段的功能。

      mov cx,20 mov ax,0 mov si,ax sum_loop: add ax,array[si] add si,2 loop sum_loop mov total,ax 〔解答〕

      將首地址為array得20個(gè)字的數(shù)組求和,并將結(jié)果存入 total 單元中。

      2131415

      xor ax,ax and ax,0 mov ax,0(3)解答:

      and ax,0 xor ax,ax sub ax,ax

      〔習(xí)題2.26〕參照本習(xí)題的示意圖,分析調(diào)用序列,畫出每次調(diào)用及返回時(shí)的堆棧狀態(tài)。其中CALL前是該指令所在的邏輯地址;另外,段內(nèi)直接調(diào)用指令的機(jī)器代碼的字節(jié)數(shù)為3,段間直接調(diào)用指令則為5個(gè)字節(jié)。

      〔解答〕

      主程序轉(zhuǎn)子suba時(shí)段內(nèi)調(diào)用:斷點(diǎn)1為2000h:0400h+3,轉(zhuǎn)子是只將IP壓棧。

      suba轉(zhuǎn)子subb時(shí)段間調(diào)用:斷點(diǎn)2為2000h:0840h+5, 轉(zhuǎn)子時(shí)須將cs段地址和IP壓棧 suba轉(zhuǎn)子subc時(shí)段內(nèi)調(diào)用:斷點(diǎn)3為2000h:0c021h+3,轉(zhuǎn)子是只將IP壓棧。注:壓棧時(shí)先修改sp再壓入斷點(diǎn),彈棧時(shí)先彈出斷點(diǎn)再修改sp。

      〔習(xí)題2.27〕已知AX、BX存放的是4位壓縮BCD表示的十進(jìn)制數(shù),請(qǐng)說(shuō)明如下子程序的功能和出口參數(shù)。

      add al,bl daa xchg al,ah adc al,bh daa xchg al,ah ret 〔解答〕

      壓縮BCD碼加法:AX←AX+BX 出口參數(shù):AX=BCD碼和

      〔習(xí)題2.28〕AAD指令是用于除法指令之前,進(jìn)行非壓縮BCD碼調(diào)整的。實(shí)際上,處理器的調(diào)整過程是:AL←AH×10+AL,AH←0。如果指令系統(tǒng)沒有AAD指令,請(qǐng)用一個(gè)子程序完成這個(gè)調(diào)整工作。

      〔解答〕

      shl ah,1;ah=2*a(設(shè)原ah=a)mov dl,ah;dl=2*a mov cl,2;設(shè)定移位次數(shù)

      shl ah,cl;ah=8*a add ah,dl;ah=10*a add al,ah;al=10*a+al xor ah,ah;清零ah int 3;返回DOS 注意: 入口:AX中存放有“和”(兩非壓縮BCD碼)出口:AL中 已為調(diào)整后的二進(jìn)制數(shù)

      〔習(xí)題2.29〕解釋如下有關(guān)中斷的概念:

      (1)內(nèi)部中斷和外部中斷(2)單步中斷和斷點(diǎn)中斷(3)除法錯(cuò)中斷和溢出中斷(4)中斷向量號(hào)和中斷向量表 〔解答〕

      (1)內(nèi)部中斷是由于8086CPU內(nèi)部執(zhí)行程序引起的程序中斷;外部中斷是來(lái)自8086CPU之外的原因引起的程序中斷;

      (2)單步中斷是若單步標(biāo)志TF為1,則在每條指令執(zhí)行結(jié)束后產(chǎn)生的中斷;斷點(diǎn)中斷是供調(diào)試程序使用的,它的中斷類型號(hào)為3通常調(diào)試程序時(shí),把程序按程序的任務(wù)分成幾段,然后,每段設(shè)一個(gè)段點(diǎn);

      (3)除法錯(cuò)中斷是在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了寄存器所能表達(dá)的范圍產(chǎn)生的中斷;溢出中斷是在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志OF為1時(shí)產(chǎn)生的中斷;

      (4)中斷向量號(hào)是 中斷類型號(hào);中斷向量表是中斷向量號(hào)與它所對(duì)應(yīng)的中斷服務(wù)程序起始地址的轉(zhuǎn)換表。

      〔習(xí)題2.30〕試比較INT n和段間CALL指令、IRET和段間RET指令的功能。

      〔解答〕

      INT n 響應(yīng)中斷時(shí),除象CALL保護(hù)斷點(diǎn)外,還應(yīng)保護(hù)FR;段間CALL指令用在主程序中實(shí)現(xiàn)子程序的調(diào)用。IRET 返回時(shí),除象RET恢復(fù)斷點(diǎn)外,還應(yīng)恢復(fù)FR;子程序執(zhí)行完成后,應(yīng)返回主程序中繼續(xù)執(zhí)行,這一功能由RET指令完成。

      第二篇:C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案

      C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案

      第一章 C語(yǔ)言程序設(shè)計(jì)概述 -習(xí)題答案 算法的描述有哪些基本方法?

      1、自然語(yǔ)言

      2、專用工具C語(yǔ)言程序的基本結(jié)構(gòu)是怎樣的?舉一個(gè)例子說(shuō)明。

      1、C語(yǔ)言程序由函數(shù)構(gòu)成;

      2、“/*”與“*/”之間的內(nèi)容構(gòu)成C語(yǔ)言程序的注釋部分;

      3、用預(yù)處理命令#include、#define可以包含有關(guān)文件或預(yù)定義信息;

      4、大小寫字母在C語(yǔ)言中是有區(qū)別的;

      5、除main()函數(shù)和標(biāo)準(zhǔn)庫(kù)函數(shù)外,用戶也可以自己編寫函數(shù),應(yīng)用程序一般由多個(gè)函數(shù)組成,這些函數(shù)指定實(shí)際所需要做的工作。C語(yǔ)言有什么特點(diǎn)?

      1、具有結(jié)構(gòu)語(yǔ)言的特點(diǎn),程序之間很容易實(shí)現(xiàn)段的共享;

      2、主要結(jié)構(gòu)成分為函數(shù),函數(shù)可以在程序中被定義完成獨(dú)立的任務(wù),獨(dú)立地編譯代碼,以實(shí)現(xiàn)程序的模塊化;

      3、運(yùn)算符豐富,包含的范圍很廣;

      4、數(shù)據(jù)類型豐富;

      5、允許直接訪問物理地址,即可直接對(duì)硬件進(jìn)行損傷,實(shí)現(xiàn)匯編語(yǔ)言的大部分功能;

      6、限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,這樣使C語(yǔ)言能夠減少對(duì)程序員的束縛;

      7、生成的目標(biāo)代碼質(zhì)量,程序執(zhí)行效率高,同時(shí)C語(yǔ)言編寫的程序的可移植性好?!镏赋龊戏ㄅc不合法的標(biāo)識(shí)符命名。

      AB12--√ leed_3--a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×說(shuō)明下列Turbo C熱鍵的功能。

      F2:源文件存盤 F10:調(diào)用主菜單 F4:程序運(yùn)行到光標(biāo)所在行(用于調(diào)試程序)Ctrl+F9:編譯并鏈接成可執(zhí)行文件 Alt+F5:將窗口切換到 DOS 下,查看程序運(yùn)行結(jié)果。說(shuō)明下列Turbo C方式下輸入并運(yùn)行下列程序,記錄下運(yùn)行結(jié)果。

      ①main()

      {printf(“********************n”);printf(“ welcome you n”);printf(“ very good n);printf(”********************n“);} ②main()

      { int a,b,c,t;printf(”please input three numbers;“);scanf(”%d,%d,%d“,&a,&b,&c);/*教材S是錯(cuò)誤的*/ t=max(max(a,b),c);printf(”max number is:%dn“,t);} int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);} 答

      運(yùn)行結(jié)果:

      ******************** welcome you very good ******************** 運(yùn)行結(jié)果:

      please input three numbers;3,1,4 /*左側(cè)下劃線內(nèi)容為鍵盤輸入*/ max number is:4 7 一個(gè)C程序是由若干個(gè)函數(shù)構(gòu)成的,其中有且只能有一個(gè)___函數(shù)。

      main()8 在Turbo C環(huán)境下進(jìn)行程序調(diào)試時(shí),可以使用Run下拉菜單的___命令或按___鍵轉(zhuǎn)到用戶屏幕查看程序運(yùn)行結(jié)果。

      1、User screen

      2、Alt+F5 9 ★C語(yǔ)言對(duì)標(biāo)識(shí)符與關(guān)鍵字有些什么規(guī)定?

      1、標(biāo)識(shí)符用來(lái)表示函數(shù)、類型及變量的名稱,它是由字母、下劃線和數(shù)字組成,但必須用字母或下劃線開頭。

      2、關(guān)鍵字是一種語(yǔ)言中規(guī)定具有特定含義的標(biāo)識(shí)符,其不能作為變量或函數(shù)名來(lái)使用,用戶只能根據(jù)系統(tǒng)的規(guī)定使用它們。C源程序輸入后是如何進(jìn)行保存的?

      是以C為擴(kuò)展名保存的純文本文件。

      第二章 C語(yǔ)言程序的基本數(shù)據(jù)類型與表達(dá)式 -習(xí)題答案 ★指出下列常數(shù)中哪些是符合C語(yǔ)法規(guī)定的。

      ''--× '101'--× ”“--× e3--× 019--√ 0x1e--√ ”abn“--√ 1.e5--×(2+3)e(4-2)--× 5.2e2.5--×請(qǐng)找出下列程序中的錯(cuò)誤,改正后寫出程序運(yùn)行結(jié)果。

      ①void main(){int x,y=z=5,aver;x=7 AVER=(x+y+z)/3 printf(”AVER=%dn“,aver);} ②void main()

      { char c1='a';c2='b';c3='c';int a=3.5,b='A' printf(”a=%db='“endn”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 答

      main(){int x,y=5,z=5,aver;x=7;aver=(x+y+z)/3;printf(“AVER=%dn”,aver);}

      運(yùn)行結(jié)果:AVER=5 ②main()

      { char c1='a', c2='b', c3='c';int a=3,b='A';printf(“a=%d,b='%c'”end“n”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);}

      運(yùn)行結(jié)果:a=3,b='A'“end”

      aabcc abc 3 寫出下列賦值的結(jié)果,表格中寫了數(shù)值的是要將它賦給其他類型的變量,將所有的空格填上賦值后的數(shù)據(jù)(實(shí)數(shù)保留到小數(shù)點(diǎn)后兩位)。int 99

      -1 char 'h'

      unsigned int

      float

      55.78

      long int

      答 int 99 104 66 55 68-1 char 'c' 'h' 'B' '7' 'D'

      unsigned int 99 104 66 55 68 65535

      float 99.00 104.00 66.00 55.78 68.00-1.00

      long int 99 104 66 55 68-1

      ★寫出程序運(yùn)行結(jié)果。

      ①void main(){int i,j;i=8,j=10;printf(“%d,%d,%d,%dn”,i,j,++i,j++);} ②main()

      { int a=1,b=2,c=30;;printf(“%d,%d,%d,%dn”,a=b=c,a=b==c,a==(b=c),a==(b==c));} 注意:a=b=c,a=b==c之間應(yīng)為逗號(hào),教材有誤 答

      運(yùn)行結(jié)果: 9,11,9,10 運(yùn)行結(jié)果: 30,1,0,0

      ③void main()

      {int a=10,b=20,c=30,d;d=++a<=10||b-->=20||c++;printf(“%d,%d,%d,%dn”,a,b,c,d);}

      運(yùn)行結(jié)果: 11,19,30,1

      ★寫出下面表達(dá)式的值(設(shè)a=10,b=4,c=5,d=1,x=2.5,y=3.5)。⑴a%=(b%=3)

      ⑵n++,a+=a-=a*=a ⑶(float)(a+c)/2+(int)x%(int)y ⑷a*=b+c ⑸++a-c+b++ ⑹++a-c+++b ⑺a

      ⑼a+b,18+(b=4)*3,(a/b,a%b)

      ⑽x+a%3*(int)(x+y)%2/4+sizeof(int)⑾a

      ⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0 下列每組表達(dá)式中,被執(zhí)行后結(jié)果完全等價(jià)的是哪些(設(shè)a、b、m是已被賦值的整型變量)?

      ①m=(a=4,4*5)與m=a=4,4*5 ②(float)(a/b)與(float)a/b ③(int)a+b與(int)(a+b)④m%=2+a*3與m=m%2+a*3 ⑤m=1+(a=2)+(b=3)與a=2,b=3,m=1+a+b 答

      ①前面是賦值表達(dá)式,而后面的是一個(gè)逗號(hào)表達(dá)式,所以一定不同;

      ②前面的表達(dá)式中a/b結(jié)果為一整數(shù),結(jié)果已經(jīng)取整,精度可能受到影響,之后強(qiáng)制float后才為浮點(diǎn)型,后面的是先將a轉(zhuǎn)換為float后再與b相除,其值保證了精度,所以不同。

      ③因?yàn)閍、b均為整數(shù),其前后兩個(gè)表達(dá)式的計(jì)算結(jié)果是一致的。

      ④前一表達(dá)式是一算術(shù)表達(dá)式,而后者為一賦值表達(dá)式,此為一點(diǎn)不同;另外,前一表達(dá)式的m只被賦過一次值,后一表達(dá)式中的m曾兩次被賦值,第一次賦值時(shí)與第一表達(dá)式中的值一致,第二次賦值后即不再相同。⑤前后表達(dá)式的計(jì)算結(jié)果應(yīng)該是一致的:a=2, b=3, m=6 7 條件表達(dá)式x>0?x:-x的功能是什么?

      如果x的值是一正數(shù),則表達(dá)式的值為x值;如果x的值是一非正數(shù),則表達(dá)式的值為-x。其實(shí)該表達(dá)式的值即為x的絕對(duì)值,C語(yǔ)言中提供了一個(gè)函數(shù)fabs(x)即可完成此功能,該函數(shù)包含在math.h頭文件中。用一個(gè)條件表達(dá)式描述從a、b、c中找出最大都賦給max.答

      max=a>(b>c?b:c)?a:(b>c?b:c);9 ★若x為int型變量,則執(zhí)行以下語(yǔ)句后x的值為()。x=6;x+=x-=x*x;A.36 B.-60 C.60 D.-24 答 B.10 ★若有以下類型說(shuō)明語(yǔ)句: char w;int x;float y;double z;則表達(dá)式w*x+z-y的結(jié)果為()類型。A.float B.char C.int D.double 答 D.第三章 順序結(jié)構(gòu)程序設(shè)計(jì) -習(xí)題答案 變量k為float類型,調(diào)用函數(shù)scanf(“%d”,&k),不能使變量k得到正確數(shù)值的原因是___。

      格式修飾符與變量類型不一致。因?yàn)?d輸入的數(shù)據(jù)類型應(yīng)該為十進(jìn)制整數(shù),而&k為占用4個(gè)字節(jié)的float類型變量的地址。★a=1234,b=12,c=34,則執(zhí)行“printf(“|%3d%3d%-3d|n”,a,b,c);”后的輸出是___。

      |1234 1234 |

      分析如下:

      ①%3d為右對(duì)齊輸出變量,且指定輸出變量的值寬度為3個(gè)字符位,如果變量實(shí)際位數(shù)小于3,則左端補(bǔ)空格,如果變量實(shí)際位數(shù)大于3,則按實(shí)際長(zhǎng)度輸出,不受限制。

      ②%-3d為左對(duì)齊輸出變量,在輸出變量時(shí),如是變量實(shí)際位數(shù)小于3,則在右端補(bǔ)空格,否則按實(shí)際輸出。★設(shè)有“int a=255,b=8;”,則“printf(“%x,%on”,a,b);”輸出是___。答 ff,10 ①如果“printf(“%X,%on”,a,b);”則輸出為FF,10。說(shuō)明在輸出十六進(jìn)制字母時(shí),其大小寫受格式修飾符的限制,如果是“%x”則輸出小寫,如果是“%X”則輸出大寫。

      ②如果希望在輸出十六進(jìn)制時(shí)輸出前導(dǎo)符0x或0X,則以上輸出語(yǔ)句應(yīng)改“printf(“%#x,%on”,a,b);”為或“printf(“%#X,%on”,a,b);”。本條解釋不必須掌握?!镆韵鲁绦蜉敵龅慕Y(jié)果是___。main(){ int a1=1,a2=0,a3=2;printf(“%d,%d,%dn”,a1,a1+a2+a3,a3-a1);} 答 1,3,1 5 printf函數(shù)中用到格式符%5s,其中5表示輸出字符占用5列。如果字符串長(zhǎng)度大于5,則按___輸出;如果字符串長(zhǎng)度小于5,則按___輸出。

      ①實(shí)際 ②左端補(bǔ)空格 6 ★已定義變量如下: int a1,a2;char c1,c2;若要求輸入a1、a2、c1和c2的值,正確的輸入函數(shù)調(diào)用語(yǔ)句是___。

      scanf(“%d,%d,%c,%c”,&a1,&a2,&c1,&c2);7 輸入兩個(gè)整型變量a、b的值,輸出下列算式以及運(yùn)算結(jié)果___。a+b、a-b、a*b、a/b、(float)a/b、a%b 每個(gè)算式占一行。如a=10,b=5,a+b輸出為:10+5=15 答

      設(shè)int a=10,b=5;以下為輸出語(yǔ)句及結(jié)果: ①printf(“%d+%d=%dn”,a,b,a+b);10+5=15 ②printf(“%d-%d=%dn”,a,b,a-b);10-5=5 ③printf(“%d*%d=%dn”,a,b,a*b);10*5=50 ④printf(“%d/%d=%dn”,a,b,a/b);10/5=2 ⑤printf(“%(float)d/%d=%fn”,a,b,(float)a/b);(float)10/5=2.000000 ⑥printf(“%d%%%d=%dn”,a,b,a%b);10%5=0 8 ★輸入一個(gè)非負(fù)數(shù),計(jì)算以這個(gè)數(shù)為半徑的圓周長(zhǎng)和面積。答

      #define PI 3.1415926 main(){ float r,l,area;printf(“Input a positive:”);scanf(“%f”,&r);l=2*PI*r;area=PI*r*r;printf(“l(fā)=%ftarea=%fn”,l,area);} 9 輸入任意一個(gè)3位數(shù),將其各位數(shù)字反序輸出(例如輸入123,輸出321)。

      main(){ int x,y;printf(“Input a number(100-999):”);scanf(“%d”,&x);y=100*(x%10)+10*(x/10%10)+x/100;/*注意分析此處算法*/

      第三篇:《C語(yǔ)言程序設(shè)計(jì)教程》課后題答案

      《C語(yǔ)言程序設(shè)計(jì)教程》課后題答案

      第一章

      一選擇題

      1.A 2.B 3.C 4.D 5.B 6.C 二.填空題 1.程序 2.算法

      3.main或主 4.編譯 5.編譯 6..obj 7.庫(kù)函數(shù)

      8.文本或ASCII碼

      三、編程題

      1.參考代碼如下: #include void main(){

      printf(“金n木n水n火n土n”);} 2.參考代碼如下: #include void main(){ int a,b;

      scanf(“%d%d”,&a,&b);

      printf(“%d+%d=%dn”,a,b,a+b);

      printf(“%d-%d=%dn”,a,b,a-b);

      printf(“%d*%d=%dn”,a,b,a*b);

      printf(“%d/%d=%dn”,a,b,a/b);} 3.參考代碼如下: #include void main(){

      float a,b,h,s;

      scanf(“%f%f%f”,&a,&b,&h);

      s=(a+b)*h/2;

      printf(“s=%fn”,s);}

      第二章

      一選擇題 答案及分析: 1.B,略

      2.A,-8在內(nèi)存中是以補(bǔ)碼(設(shè)兩個(gè)字節(jié))形式存儲(chǔ)的 3.A,C語(yǔ)言有32個(gè)關(guān)鍵字(參見課本第18頁(yè)),且C語(yǔ)言標(biāo)識(shí)符是區(qū)分大小寫字母的 4.A,略

      5.D,八進(jìn)制數(shù)據(jù)中不能出現(xiàn)數(shù)碼8 6.B,字符常量應(yīng)該用單引號(hào)括起來(lái),答案D超出了ASCII取值范圍(ASCII的取值范圍為[0,255])

      7.C,該字符串中轉(zhuǎn)義字符有三個(gè):、22和 n,普通字符有三個(gè):a、,和0,所以字符串長(zhǎng)度為6 8.C,略

      9.D,C語(yǔ)言沒有read函數(shù)和%D格式符號(hào),且scanf函數(shù)第二個(gè)形參為地址列表

      10.B,根據(jù)題意,scanf函數(shù)輸入數(shù)據(jù)時(shí)分隔符號(hào)不應(yīng)該是逗號(hào),應(yīng)該是空格或回車符,且輸入數(shù)據(jù)時(shí)分一行或幾行均可

      11.A,scanf函數(shù)中不允許出現(xiàn)%8.4,%6.2和%8這樣的格式符號(hào)

      12.C,既要保證5位小數(shù)位,還得保證整數(shù)位不變,這樣數(shù)據(jù)12345.67800用10列不能完全顯示出來(lái),按C語(yǔ)言規(guī)定,12345.67800原樣輸出

      13.B,printf函數(shù)中格式符號(hào)%d,%o,%x表示對(duì)應(yīng)的整型數(shù)據(jù)分別按十進(jìn)制,八進(jìn)制和十六進(jìn)制輸出

      14.C,按C語(yǔ)言規(guī)定,scanf函數(shù)形參雙引號(hào)中,如果包含非格式符號(hào),在輸入數(shù)據(jù)時(shí)要求原樣輸入 二.填空題 答案及分析:

      1.int

      float

      double(略)

      2.65,89,printf函數(shù)中如果格式符號(hào)是%d,則輸出相應(yīng)字符的ASCII十進(jìn)制數(shù)值

      3.a=98,b=765.000000,c=4321.000000,scanf函數(shù)中的格式符號(hào)%2d%3f%4f,表示將鍵盤輸入的數(shù)據(jù)9876543210按2,3,4位分割,然后再分別賦給變量a,b,c 4.scanf(“%lf%lf%lf”,&a,&b,&c);double類型的變量對(duì)應(yīng)的格式符號(hào)是%lf

      三、編程題

      1.參考代碼如下: #include void main(){

      int a=97;

      printf(“%cn”,a);

      printf(“%dn”,a);

      printf(“%on”,a);

      printf(“%xn”,a);} 程序分析:通過printf函數(shù)中不同的格式符號(hào),即%c(字符),%d(十進(jìn)制),%o(八進(jìn)制),%x(十六進(jìn)制)輸出相應(yīng)的值。2.參考代碼如下: #include void main(){

      int h,m,minute;

      scanf(“%d:%d”,&h,&m);

      minute=h*60+m;

      printf(“minute=%dn”,minute);} 程序分析:輸入形式為10:27,故scanf函數(shù)雙引號(hào)中兩個(gè)格式符號(hào)%d之間必須加入“:”。3.參考代碼如下: #include void main(){

      float r=6371000,s,v;

      s=4*3.1415926*r*r;

      v=3.1415926*4/3*r*r*r;

      printf(“s=%fnv=%f”,s,v);} 程序分析:C語(yǔ)言中的π不代表3.1415926,可以用各種常量的形式體現(xiàn)出來(lái)。4.參考代碼如下: #include void main(){

      int m100,m50,m20,m10,m5,m1,m;

      scanf(“%d”,&m);

      m100=m/100;

      m50=(m-m100*100)/50;

      m20=(m-m100*100-m50*50)/20;

      m10=(m-m100*100-m50*50-m20*20)/10;

      m5=(m-m100*100-m50*50-m20*20-m10*10)/5;

      m1=m-m100*100-m50*50-m20*20-m10*10-m5*5;

      printf(“%d元發(fā)工資,人名幣各票面的張數(shù)為:n”,m);

      printf(“100元的張數(shù):%dn”,m100);

      printf(“50元的張數(shù):%dn”,m50);

      printf(“20元的張數(shù):%dn”,m20);

      printf(“10元的張數(shù):%dn”,m10);

      printf(“5元的張數(shù):%dn”,m5);

      printf(“1元的張數(shù):%dn”,m1);} 程序分析:人民幣的面值分別為100元,50元,20元,10元,5元和1元,工資4367元除以100后得到的商就為100元張數(shù),余數(shù)再除以50,得到的商為50元的張數(shù),余數(shù)再除20,??,以此類推就會(huì)得出人民幣各面值相應(yīng)的張數(shù)。5.參考代碼如下: #include void main(){

      float r1,r2,r3,r;

      scanf(“%f%f%f”,&r1,&r2,&r3);

      r=r1*r2*r3/(r1*r2+r2*r3+r1*r3);

      printf(“三個(gè)電阻并聯(lián)后的總電阻為%fn”,r);} 程序分析:首先將計(jì)算并聯(lián)電阻值的公式變換一下;再就是考慮要保留小數(shù)位,故變量類型設(shè)置為實(shí)型,注意格式符號(hào)為%f。6.參考代碼如下: #include void main(){

      int x,a,b,c,d,y;

      scanf(“%d”,&x);

      a=x%10;

      b=x/10%10;

      c=x/100%10;

      d=x/1000;

      y=a*1000+b*100+c*10+d;

      printf(“%d逆置各位數(shù)后的值為%dn”,x,y);} 程序分析:1234除以10的余數(shù)就是4,商再除以10的余數(shù)就是3,1234除以100再除以10取余就是2,1234除以1000就是1。也可以用其他的表達(dá)式求出各位數(shù)值,例如輸入數(shù)據(jù)1234中的4,可以用公式a=x-d*1000-c*100-b*10來(lái)計(jì)算。7.參考代碼如下: #include void main(){

      float F,C;

      printf(“請(qǐng)輸入華氏溫度:”);

      scanf(“%f”,&F);

      C=5.0/9*(F-32);

      printf(“華氏溫度%f對(duì)應(yīng)的攝氏溫度為%fn”,F,C);} 程序分析:5/9的值為0,所以要寫成5.0/9,5/9.0或5.0/9.0,還要注意變量類型為實(shí)型,且對(duì)應(yīng)的格式符號(hào)為%f。8.參考代碼如下: #include void main(){

      char ch1,ch2,ch3;

      printf(“請(qǐng)輸入三個(gè)數(shù)字字符:”);

      scanf(“%c%c%c”,&ch1,&ch2,&ch3);

      printf(“將數(shù)字字符轉(zhuǎn)換為數(shù)字%d,%d,%dn”,ch1-'0',ch2-48,ch3-'0');} 程序分析:通過鍵盤輸入三個(gè)數(shù)字字符時(shí)要連續(xù)輸入,不要加任何分隔符號(hào),例如121等,另外,數(shù)字字符輸出時(shí)遇到格式符號(hào)%d將輸出相應(yīng)數(shù)字字符的ASCII值,但任何一個(gè)數(shù)字字符的ASCII值減去字符0的ASCII值,再對(duì)應(yīng)%d格式符號(hào)輸出時(shí),就是數(shù)字字符對(duì)應(yīng)的數(shù)字,例如'2'-'0'=2。

      9.不能得到指定的輸出結(jié)果,參考代碼如下: void main(){

      int a, b, c,x, y;

      scanf(“%d%d%d”,&a,&b,&c);

      x=a*b;

      y=x*c;

      printf(“a=%d,b=%d,c=%dn”,a,b,c);

      printf(“x=%d,y=%dn”,x,y);}

      程序分析:scanf(“%d,%d,%d”,a,b,c);scanf函數(shù)第二類形參是地址列表,所以語(yǔ)句改為scanf(“%d,%d,%d”,&a,&b,&c);而這個(gè)語(yǔ)句對(duì)應(yīng)的鍵盤輸入形式為2,3,4。為了滿足題目要求,scanf語(yǔ)句改為scanf(“%d%d%d”,&a,&b,&c)。另外,printf函數(shù)雙引號(hào)只能出現(xiàn)一對(duì),且雙引號(hào)中需要在相應(yīng)的位置上添加a=等這樣的字符串才能原樣輸出;還有整型變量對(duì)應(yīng)格式符號(hào)是%d等。

      第三章

      一選擇題

      1.A 2.C 3.C 4.D 5.C 6.B 7.C 8.B 9.A 10.A 11.A 12.B 13.D 14.A 15.B 16.C 17.C 18.C 19.C 20.C 21.C 22.B 23.C 24.C 25.A 26.B 27.A 28.A 29.C 30.A 31.C 32.C 二.填空題 1.非零

      零 2.passwarm 3.525252 4.fabs(x)>5 5.x%y==0 6.if((1<=x&&x<=10||200<=x&&x<=210)&&x%2==1)printf(“%d”,x);7.k=1 8.Right!1

      Right!1 9.$$$ a=0 10.a=2,b=1 11.0

      “%f%f”

      a=b;13.“%c”,&ch

      'A'<=ch&&ch<='Z'

      ch 14.死循環(huán) 15.345 16.7 3-1 17.x>=0

      x

      j%3!=0 24.b=i+1 25.8 5 2 26.d=1.0

      k++ k<=n

      三、編程題

      1.參考代碼如下: #include void main(void){ float x,y;printf(“Please input the value of x:”);scanf(“%f”,&x);if(x>-5&&x<0)

      y=x;else if(x==0)

      y=x-1;else if(x>0&&x<10)

      y=x+1;printf(“y=%f”,y);} 2.參考代碼如下: #include void main(void){

      float a,b,c;

      printf(“請(qǐng)輸入三角形三邊的長(zhǎng)度:n”);

      scanf(“%f%f%f”,&a,&b,&c);

      if(a+b>c&&b+c>a&&a+c>b)

      if(a==b&&a==c)

      printf(“該三角形是等邊三角形n”);

      else if(a==b&&a!=c)

      printf(“該三角形是等腰三角形n”);

      else

      printf(“該三角形是一般三角形n”);

      else

      printf(“不能構(gòu)成三角形n”);} 3.參考代碼如下: #include void main(void){

      float M,N,menoy;

      printf(“請(qǐng)輸入購(gòu)買金額:”);

      scanf(“%f”,&M);

      if(M<100)

      N=0;

      else if(M>=100&&M<200)

      N=1.5;

      else if(M>=200&&M<300)

      N=2.5;

      else if(M>=300&&M<400)

      N=3.5;

      else if(M>=400&&M<500)

      N=4.5;

      else if(M>=500&&M<600)

      N=5.5;

      else

      N=6;

      menoy=M*(1-N/100);

      printf(“實(shí)際支付金額:%f,返還的金額:%fn”,menoy,M-menoy);} 4.參考代碼如下: #include void main(void){

      float M,N,menoy;

      int in;

      printf(“請(qǐng)輸入購(gòu)買金額:”);

      scanf(“%f”,&M);

      in=M/100;

      switch(in)

      {

      case 0:N=0;break;

      case 1:N=1.5;break;

      case 2:N=2.5;break;

      case 3:N=3.5;break;

      case 4:N=4.5;break;

      case 5:N=5.5;break;

      default :N=6;break;

      }

      menoy=M*(1-N/100);

      printf(“實(shí)際支付金額:%f,返還的金額:%fn”,menoy,M-menoy);} 5.參考代碼如下: #include void main(void){

      float x,max;

      printf(“Enter a number:”);

      scanf(“%f”,&x);

      max=x;

      while(x>0)

      {

      printf(“Enter a number:”);

      scanf(“%f”,&x);

      if(x>max)

      max=x;

      }

      if(max>0)

      printf(“The largest number entered was %fn”,max);} 6.參考代碼如下: #include void main(void){

      float M,N,menoy;

      printf(“請(qǐng)輸入購(gòu)買金額:”);

      scanf(“%f”,&M);

      while(M>0)

      {

      if(M<100)

      N=0;

      else if(M>=100&&M<200)

      N=1.5;

      else if(M>=200&&M<300)

      N=2.5;

      else if(M>=300&&M<400)

      N=3.5;

      else if(M>=400&&M<500)

      N=4.5;

      else if(M>=500&&M<600)

      N=5.5;

      else

      N=6;

      menoy=M*(1-N/100);

      printf(“實(shí)際支付金額:%f,返還的金額:%fn”,menoy,M-menoy);

      printf(“請(qǐng)輸入購(gòu)買金額:”);

      scanf(“%f”,&M);

      } } 7.參考代碼如下: #include void main(void){

      float number,positivesum=0,negativesum=0,total=0;

      int i;

      for(i=1;i<=10;i++)

      {

      scanf(“%f”,&number);

      if(number>=0)positivesum+=number;

      else negativesum+=number;

      total+=number;

      }

      printf(“positive sum %f,negative sum %f,total %fn”,positivesum,negativesum,total);} 8.參考代碼如下: #include void main(void){

      int i,sum=0,k=1;

      for(i=1;i<=101;i+=2)

      {

      sum=sum+k*i;

      k=-k;

      }

      printf(“1-3+5-7+...-99+101=%dn”,sum);} 9.參考代碼如下: #include void main(void){

      float i,sum=0,k=1;

      for(i=1;k>=1e-4;i++)

      {

      sum=sum+k;

      k=k/i;

      }

      printf(“e=%fn”,sum);} 10.參考代碼如下: #include void main(void){

      float i,sum=0,n=2,d=1,temp;

      for(i=1;i<=20;i++)

      {

      sum=sum+n/d;

      temp=n;

      n=n+d;

      d=temp;

      }

      printf(“sum=%fn”,sum);} 11.參考代碼如下: #include #include void main(void){

      float apple,watermelon,pear;

      for(apple=1;apple<100;apple++)

      for(watermelon=1;watermelon<10;watermelon++)

      {

      pear=100-apple-watermelon;

      if(fabs(apple*0.4+watermelon*4+pear*0.2-40.0)<1e-6)

      printf(“apple:%.0f,watermelon:%.0f,pear:%.0fn”,apple,watermelon,pear);

      } }

      12.參考代碼如下: #include void main(void){

      int i,j,k;

      for(i=1;i<10;i++)

      for(j=0;j<10;j++)

      for(k=0;k<10;k++)

      if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

      printf(“%dn”,i*100+j*10+k);} 或:

      #include void main(void){

      int a,b,c,i;

      for(i=100;i<1000;i++)

      {

      a=i/100;

      b=i/10%10;

      c=i%10;

      if(i==(a*a*a+b*b*b+c*c*c))

      printf(“%dn”,i);

      } } 13.參考代碼如下: #include void main(void){

      int a,b,c,d;

      for(a=1;a<10;a++)

      for(b=0;b<10;b++)

      for(c=0;c<10;c++)

      for(d=0;d<10;d++)

      if(a*1000+b*100+c*10+d==(a*10+b+c*10+d)*(a*10+b+c*10+d))

      printf(“%dn”,a*1000+b*100+c*10+d);} 或:

      #include void main(void){

      int a,b,c,d,i;

      for(i=1000;i<10000;i++)

      {

      a=i/1000;

      b=i/100%10;

      c=i/10%10;

      d=i%10;

      if(i==(a*10+b+c*10+d)*(a*10+b+c*10+d))

      printf(“%dn”,i);

      } } 14.參考代碼如下: #include void main(void){

      int i,j;

      for(i=1;i<=4;i++)//先控制打印前4行

      {

      for(j=1;j<=4-i;j++)

      printf(“ ”);

      for(j=1;j<=2*i-1;j++)

      printf(“*”);

      printf(“n”);

      }

      for(i=1;i<=3;i++)//再控制打印后3行

      {

      for(j=1;j<=i;j++)

      printf(“ ”);

      for(j=1;j<=2*(4-i)-1;j++)

      printf(“*”);

      printf(“n”);

      } }

      第四章

      一選擇題

      1.A,如果沒有給s[1]賦值,按C語(yǔ)言規(guī)定,s[1]下標(biāo)變量中的數(shù)據(jù)是一個(gè)隨機(jī)數(shù)

      2.C,“China”字符串末尾還有一個(gè)