欧美色欧美亚洲高清在线观看,国产特黄特色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ì)練習(xí)題 2

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

      第一篇:語(yǔ)言程序設(shè)計(jì)練習(xí)題 2

      匯編語(yǔ)言程序設(shè)計(jì)練習(xí)題

      一、單項(xiàng)選擇題:在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。

      1.CPU要訪問(wèn)的某一存儲(chǔ)單元的實(shí)際地址稱()C

      A.段地址

      B.偏移地址

      C.物理地址

      D.邏輯地址

      2.某存儲(chǔ)單元的物理地址是12345H,可以作為它的段地址有()D

      A.2345H

      B.12345H

      C.12340H

      D.1234H 3.執(zhí)行后使BX=0的同時(shí)也使CF=0,OF=0的指令是()A

      A.XOR BX,BX

      B.OR BX,BX

      C.AND BX,BX

      D.CMP BX,BX 4.循環(huán)控制指令LoopNZ/LoopNE控制循環(huán)繼續(xù)執(zhí)行的條件是()B

      A.CX≠0且ZF=1

      B.CX≠0且ZF=0

      C.CX≠0或ZF=1

      D.CX≠0或ZF=0 5.在執(zhí)行DAA指令,當(dāng)高四位BCD碼校正時(shí)產(chǎn)生進(jìn)位,如要把此進(jìn)位值送入AH中,對(duì)這進(jìn)位值的操作應(yīng)是()C

      A.DAA校正指令的功能已自動(dòng)加在AH中

      B.進(jìn)位值在AF中,校正后根據(jù)AF內(nèi)容再加在AH中

      C.進(jìn)位值在CF中,校正后根據(jù)CF內(nèi)容再加在AH中

      D.進(jìn)位值在AL最高位上,校正后根據(jù)AL最高位內(nèi)容再加在AH中

      6.AND,OR,XOR,NOT為四條邏輯運(yùn)算指令,下面的解釋正確的是()C

      A.指令XOR AX,AX執(zhí)行后,AX內(nèi)容不變,但設(shè)置了標(biāo)志位

      B.指令OR DX,1000H執(zhí)行后,將DX最高位置1,其余各位置0

      C.指令A(yù)ND AL,OFH執(zhí)行后,分離出AL低四位

      D.NOT AX,執(zhí)行后,將AX清0 7.在執(zhí)行下列指令時(shí),需要使用段寄存器DS的指令是()D

      A.STOSW

      B.ADD AL,CL

      C.NEG BX

      D.INC DA[BX] 8.無(wú)論BH中原有的數(shù)是奇數(shù)或偶數(shù),若要使BH中的數(shù)一定為奇數(shù),應(yīng)執(zhí)行的指令是()B

      A.ADD BH,01H

      B.OR BH,01H

      C.XOR BH,01H

      D.TEST BH,01H 9.完成對(duì)CL寄存器的內(nèi)容乘以4的正確操作是()C

      A.ROL CL,1

      B.MUL 4

      ROL CL,1

      C.SHL CL,1

      D.MOV CL,2

      SHL CL,1

      SHL CL,CL 10.下面各傳送指令中,正確的是()C

      A.MOV [DI],[SI]

      B.MOV[DX+DI],AL

      C.MOV WORD PTR [BX],0100H

      D.MOV AL,BX 11.匯編語(yǔ)言語(yǔ)句格式中對(duì)名字項(xiàng)的規(guī)定如下,請(qǐng)找出其中錯(cuò)誤的說(shuō)法()BD

      A.名字的第一個(gè)字符可以是大寫英文字母及小寫英文字母

      B.名字的第一個(gè)字符可以是字母、數(shù)字及、@、_

      C.名字的有效長(zhǎng)度≤31個(gè)字符

      D.在名字中不允許出現(xiàn)$ 12.要實(shí)現(xiàn)使BETA的值為56,應(yīng)采用語(yǔ)句為()C

      A.BETA DB 56

      B.BETA DB 56H

      C.BETA EQU 56

      D.BETA EQU 56H 13.REPZ CMPSW指令,重復(fù)執(zhí)行的終止條件是()A

      A.CX=0或ZF=0

      B.CX=0且ZF=0

      C.CX=0或ZF=1

      D.CX=0且ZF=1 14.下面程序段執(zhí)行后,AL中的內(nèi)容是()B

      MOV AX,8833H

      ADD AL,AH

      DAA

      A.21

      B.21H

      C.0C1H

      D.0DDH 15.比較兩個(gè)帶符號(hào)的數(shù)A、B,當(dāng)A=B時(shí)程序轉(zhuǎn)移,測(cè)試的條件為()A

      A.ZF=1

      B.ZF=0

      C.SF=1

      D.SF=0 16.檢查二個(gè)無(wú)符號(hào)數(shù)的關(guān)系,若要實(shí)現(xiàn)AL≥BL時(shí)分支去LOP1處,那么在“CMP AL,BL”指令后應(yīng)跟的分支指令是()A

      A.JNC LOP1

      B.JA LOP1

      C.JC LOP1

      D.JGE LOP1 17.在下列串操作指令中,同時(shí)使用源串和目的串地址指針的指令是()D

      A.STOSW

      B.LODSW

      C.SCASW

      D.CMPSW 18.設(shè)AL=0AH,下列指令執(zhí)行后能使AL=05H的是()C

      A.NOT AL

      B.AND AL,0FH

      C.XOR AL,0FH

      D.OR AL,0FH 19.DA1 DW‘AB’,‘CD’,‘EF’,‘GH’()D ┇

      MOV AX,DA1+3 指令執(zhí)行后AX中的內(nèi)容是

      A.‘EF’

      B.‘CD’

      C.‘BC’

      D.‘FC’

      20.使用DOS系統(tǒng)功能調(diào)用時(shí),使用的軟中斷指令是()

      A.INT 21

      B.INT 10H

      C.INT 16H

      D.INT 21H

      二、填空題請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

      1.十六進(jìn)制數(shù)0FFF8H表示的十進(jìn)制正數(shù)為_(kāi)_______,表示的十進(jìn)制負(fù)數(shù)為_(kāi)_______。

      2.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,[SI+COUNT]中,源操作數(shù)的有效地址EA為_(kāi)_______,其物理地址為_(kāi)_______。

      3.CPU的標(biāo)志寄存器中標(biāo)志位,可以分為兩大類,其中一類稱為_(kāi)_______標(biāo)志位,另一類稱為_(kāi)_______標(biāo)志位。

      4.當(dāng)標(biāo)志位________=1時(shí)表示無(wú)符號(hào)數(shù)運(yùn)算產(chǎn)生溢出,而當(dāng)標(biāo)志位________=1是表示帶符號(hào)數(shù)運(yùn)算產(chǎn)生溢出。

      5.如JMP指令采用段間間接尋址,那么由4個(gè)相鄰字節(jié)單元中存放有轉(zhuǎn)移地址,其中前兩個(gè)字節(jié)存放的是________,而后兩個(gè)字節(jié)存放的是________。

      6.在串操作程序中,通常在重復(fù)前綴指令REPZ或REPNZ后,選用的串操作指令是________或________才有實(shí)際意義。

      三、簡(jiǎn)答題

      1.已知:BX=1357H,DI=2000H,DS=2000H,CS=4000H,分別指出下面各指令中存儲(chǔ)器操作數(shù)的物理地址。(1)MOV AL,[BX](2)MOV CS:[BX+DI],AH

      2.0P1 DB 1,2 0P2 DW 3412H,5678H ┇

      MOV AX,OP1+1;字單元(OP1+1)AX MOV BL,OP2+1;字節(jié)單元(OP2+1)BL 上述二條傳送語(yǔ)句有語(yǔ)法錯(cuò)誤,請(qǐng)根據(jù)注釋字段的說(shuō)明,將其改正。

      3.下列語(yǔ)句在存儲(chǔ)器中分別為變量分配多少字節(jié)?

      (1)AD2 DW 10 DUP(?),10(2)AD3 DD 100 DUP(?)

      4.簡(jiǎn)述下面兩條指令分別是什么語(yǔ)法錯(cuò)誤? MOV [BX],[SI] MOV AX,DL

      四、程序分析題 1. MOV DL,AL NOT DL TEST DL,04H JE NEXT ┇ NEXT:?

      若上述程序段執(zhí)行時(shí)產(chǎn)生分支,說(shuō)明AL中的數(shù)第幾位一定為1?程序段執(zhí)行后CF是多少?

      2.DA1 DB‘ABCDEFGHI’ DA2 DB 9 DUP(0)

      LEA SI,DA1 LEA DI,DA2 MOV CX,9 CLD LOP: LODSB SUB AL,10H STOSB LOOP LOP...試問(wèn):①寫出程序執(zhí)行后DA2各字節(jié)中的數(shù)據(jù)。

      ②保持程序功能情況下,程序中 可否改寫為

      3.已知:BX=4567H NEG BX INC BX NEG BX DEC BX 程序段執(zhí)行后,BX=________,CF=________。

      4. MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD AL,BL ADC AH,0 DEC CL JNZ AGAIN 問(wèn):(1)該程序段完成的功能是:

      (2)AX=________。

      5.已知數(shù)據(jù)段中定義

      DAT1 DB 12H,34H,56H,78H MOV CX,0 MOV AX,WORD PTR DAT1 MOV CL,DAT1+3 當(dāng)程序段執(zhí)行完后AX=________,CX=________。

      6.DA1 DB 83H,72H,61H,94H,5AH ┇

      MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3 SHL AL,CL 上述指令序列執(zhí)行后,AL=_______,CL=_______。

      五、程序填空題(本大題共2小題,每小題6分,共12分)

      1.在NUMW單元存放有一個(gè)0-65535范圍內(nèi)的整數(shù),將該數(shù)除以500,商和余數(shù)分別存入QU1和REM單元,請(qǐng)?jiān)诳招刑幐魈钌弦粭l指令完善該程序。

      MOV AX,NUMW _____________ XOR DX,DX DIV BX MOV QUI,AX _____________ 2.某程序欲用單個(gè)字符顯示的2號(hào)功能調(diào)用去顯示STRING中的字符串‘COMPUTER’(不顯示字符‘$’?。?試在空白處填上適當(dāng)?shù)囊粭l指令。STRING DB‘COMPUTER’,‘$’

      MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H ____________________ ____________________ JNE LOP

      六、編程序題

      1.試編制一程序段,用串操作指令實(shí)現(xiàn)以DA_BY為首址的20H個(gè)字節(jié)單元中存放相同字符‘Y’(設(shè)DA_BY存儲(chǔ)區(qū)已有ES指向)。

      2.試編制一源程序,統(tǒng)計(jì)DA1字單元中含0的個(gè)數(shù),如統(tǒng)計(jì)的個(gè)數(shù)為奇數(shù),則將進(jìn)位位置1,否則進(jìn)位位清0。DATA SEGMENT DA1 DW XXXX DATA ENDS

      匯編語(yǔ)言程序設(shè)計(jì)練習(xí)題答案

      一、1、C;

      2、D;

      3、A;

      4、B;

      5、C;

      6、C;

      7、D;

      8、B;

      9、C;

      10、C;

      11、B;

      12、C;

      13、A;

      14、B;

      15、A

      16、C;

      17、D;

      18、C;

      19、D;20、B

      二、1、+65528;-32760 2、20A8H;11488H

      3、狀態(tài);控制

      4、CF;OF

      5、IP;CS

      6、STOS;CMP

      三、1、(1)21357H;(2)43357H

      2、MOV AX,WORD PTR(OP1+1)MOV BL,BYTE PTR(OP2+1)

      3、(1)22;(2)400

      4、MOV指令不能在兩個(gè)存儲(chǔ)器操作數(shù)之間進(jìn)行;

      操作數(shù)類型不匹配

      四、1、第2位;CF=0 2、123456789;不能更改

      3、BX=4565H;CF=1

      4、AX=012CH,將AX內(nèi)容乘3送BX中

      5、AX=3412H,CX=0078H

      6、AL=0A0H,CL=03H

      五、1、MOV BX,500 MOV REM,DX

      2、INC BX CMP byte ptr [BX],24H

      六、1、LEA DI,DA_BY MOV CX,32 MOV AL,‘Y’ CLD REP STOSB

      2、CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H JNE L1 CLC JMP DONE L1: STC DONE: MOV AH,4CH INT 21H CODE ENDS END START

      第二篇:C語(yǔ)言程序設(shè)計(jì)

      1.Problem A: Hello world!Description Xiao_ming有兩個(gè)哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放學(xué)回家,父母分別跟他們打招呼。

      Input 無(wú)

      Output 請(qǐng)輸出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

      Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!

      HINT 請(qǐng)注意換行符

      Append Code #include int main(){

      printf(“Hello Da_min,n”);

      printf(“Hello Er_min,n”);

      printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圓的面積和周長(zhǎng) Description 從鍵盤輸入圓的半徑,求圓的面積和周長(zhǎng),圓周率取3.14。

      Input 輸入一個(gè)浮點(diǎn)型數(shù)據(jù),有效數(shù)字不會(huì)超過(guò)十進(jìn)制的6位。

      Output 輸出為兩行。

      第一行為圓的面積,第二行為圓的周長(zhǎng),格式見(jiàn)sample。

      Sample Input 3

      Sample Output Area: 28.260000 Perimeter: 18.840000

      HINT 了解浮點(diǎn)類型的輸入、輸出和算術(shù)運(yùn)算符

      Append Code 法一

      #include int main(){ double r,p,s;scanf(“%lf”,&r);p=2*3.14*r;s=3.14*r*r;printf(“Area: %lfn”,s);printf(“Perimeter: %lfn”,p);} 法二

      #include #define pi 3.14 int main(){

      double r;

      scanf(“%d”,&r);

      printf(“Area: %lfn”,pi*r*r);

      printf(“Perimeter: %lfn”,2*pi*r);

      }

      3.Problem C:平均值 Description 求3個(gè)數(shù)的平均值。

      Input 輸入只有一行,為3個(gè)較小的整數(shù)。

      Output 輸出為這3個(gè)整數(shù)的平均值,保留3位小數(shù)。

      Sample Input 1 2 3 Sample Output 2.000

      HINT 注意除法運(yùn)算對(duì)整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)是不一樣的。

      Append Code #include int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%.3lf”,(a+b+c)/3.0);}

      4.Problem D: 求字符的值 Description 從鍵盤輸入3個(gè)字符(不含雙字節(jié)字符),分別輸出每個(gè)字符的十進(jìn)制值(ASCII碼)、八進(jìn)制值和十六進(jìn)制值。

      Input 輸入為3個(gè)字符。

      Output 輸出為3行。

      每一行為每個(gè)字符(對(duì)應(yīng)輸入順序)的十進(jìn)制、八進(jìn)制和十六進(jìn)制值,用空格分隔開(kāi)。每個(gè)輸出的值占3個(gè)字符,不足3個(gè)字符前面補(bǔ)0。

      Sample Input 0 A

      Sample Output 048 060 030 032 040 020 065 101 041

      HINT 了解字符值的存儲(chǔ)和整型的關(guān)系。

      Append Code #include int main(){ char a,b,c;scanf(“%c%c%c”,&a,&b,&c);printf(“%.3d %.3o %.3xn”,a,a,a);printf(“%.3d %.3o %.3xn”,b,b,b);printf(“%.3d %.3o %.3xn”,c,c,c);}

      5.Problem A: 最簡(jiǎn)單的程序 Description 輸出一行“Hello world!”。

      Input 無(wú)

      Output Hello world!

      Sample Input Sample Output Hello world!

      HINT Append Code #include int main(){

      printf(“Hello world!”);}

      6.Problem B: 算術(shù)基本運(yùn)算 Description 計(jì)算兩整數(shù)x和y(0

      Input 輸入只有一行,格式見(jiàn)sample。

      Output 輸出為多行,按順序每行輸出x,y的和、差、積、商、余數(shù)、x的平方和y的三次方,格式見(jiàn)sample

      Sample Input x = 11, y = 3

      Sample Output x + y : 14 xy : %dn“,x-y);

      printf(”x * y : %dn“,x*y);

      printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y);

      printf(”x ^ 2 : %dn“,x*x);

      printf(”y ^ 3 : %dn“,y*y*y);} 7.Problem C: 自增自減運(yùn)算 Description C語(yǔ)言中有自增運(yùn)算++、自減運(yùn)算--,并且可以前置和后置。

      編寫一個(gè)程序:對(duì)輸入的一個(gè)整數(shù)a,輸出a++、a--、++a、--a的值。

      Input 一個(gè)整數(shù)a,a是很小的整數(shù)。

      Output 輸出為5行,第一行為a的值,后面依次為--a、a--、a++、++a的值。

      5行輸出縱向a要對(duì)齊,“:”對(duì)齊,“:”前后各一個(gè)空格,后面的數(shù)值不用對(duì)齊。每行行尾都有回車。

      Sample Input 0

      Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1

      HINT Append Code #include int main(){ int a,x;scanf(”%dn“,&x);a=x;printf(” a

      : %dn“,a);printf(”--a

      : %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a

      : %dn“,++a);}

      8.Problem F: 絕對(duì)值 Description 求整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)的絕對(duì)值。

      Input 輸入兩個(gè)數(shù),第一個(gè)是整數(shù),第二個(gè)是浮點(diǎn)數(shù)。

      Output 輸出為兩行,第一行為整數(shù)的絕對(duì)值,第二行為浮點(diǎn)數(shù)的絕對(duì)值,注意浮點(diǎn)數(shù)的絕對(duì)值不輸出無(wú)意義的0。

      Sample Input-1 1

      Sample Output 1 1

      HINT 求絕對(duì)值可以用標(biāo)準(zhǔn)庫(kù)函數(shù)來(lái)完成,也可以自己判斷。注意浮點(diǎn)數(shù)的輸出格式。求絕對(duì)值的函數(shù)在哪個(gè)頭文件?貌似很多人會(huì)搞錯(cuò),包括很多編書的人!

      Append Code #include //#include int main(){

      int n;

      float m;

      scanf(”%d%f“,&n,&m);

      //n=abs(n);

      //m=fabs(m);

      if(n<0)

      {

      n=-n;

      }

      if(m<0)

      {

      m=-m;

      }

      printf(”%dn“,n);

      printf(”%g“,m);

      return 0;}

      9.Problem A: 奇數(shù)還是偶數(shù)? Description 輸入一個(gè)整數(shù),判讀它是奇數(shù)還是偶數(shù)。

      Input 輸入只有一行,為一個(gè)100以內(nèi)的正整數(shù)。

      Output 輸出為一行。

      若輸入為偶數(shù)則輸出“even”,奇數(shù)輸出“odd”。Sample Input 30

      Sample Output even

      HINT 用整數(shù)運(yùn)算可以解決,練習(xí)“?:”表達(dá)式。

      Append Code #include int main(){

      int n;

      scanf(”%d“,&n);

      if(n>=0&&n<=100){

      if(n%2==0)printf(”evenn“);

      else printf(”oddn“);

      }

      return 0;}

      10.Problem B: 簡(jiǎn)單的打折計(jì)算 Description 商店規(guī)定:消費(fèi)滿n元,可以打八八折。設(shè)某件商品標(biāo)價(jià)m元,輸入購(gòu)買的件數(shù)x,計(jì)算出需要支付的金額(單位:元),精確到分。

      Input 輸入只有一行,三個(gè)整數(shù)m、n和x,且0

      Sample Input 95 300 4

      Sample Output 334.40

      HINT 了解浮點(diǎn)型的輸出控制,注意整型和浮點(diǎn)型混合運(yùn)算過(guò)程中的數(shù)據(jù)類型轉(zhuǎn)換。

      Append Code #include int main(){

      int m,x,n,a;

      float b;

      scanf(”%d%d%d“,&m,&n,&x);

      0

      x

      m

      a=m*x;

      if(a>n)

      b=0.88*a;

      else

      b=a;

      printf(”%.2fn“,b);

      }

      11.Problem C: 判斷閏年 Description 輸入一個(gè)正整數(shù)的年份,判斷是否為閏年。

      Input 輸入只有一行,為一個(gè)10000以內(nèi)的正整數(shù)。

      Output 輸出為一行。

      若輸入為閏年偶數(shù)則輸出“Yes”,否則輸出“No”。

      Sample Input 2010

      Sample Output No

      HINT 了解邏輯運(yùn)算符和關(guān)系運(yùn)算符。

      Append Code #include int main(){

      int x;

      scanf(”%d“,&x);

      if(x>0&&x<10000)

      {

      if(x%4==0&&x%100!=0)

      printf(”Yesn“);

      else if(x%400==0)

      printf(”Yesn“);

      else

      printf(”Non“);

      }

      else

      printf(”error“);}

      12.Problem D: 水仙花數(shù) Description 如果一個(gè)三位十進(jìn)制數(shù)等于其各位數(shù)字的立方和,則稱這個(gè)數(shù)為水仙花數(shù)。如:13+53+33=153。

      Input 一個(gè)整數(shù)x,100<=x<=999。

      Output x是水仙花數(shù),則輸出“YES”,否則為“NO”。

      Sample Input 153

      Sample Output YES

      HINT Append Code #include int main(){

      int a,b,c,x;

      scanf(”%d“,&x);

      a=x/100;

      b=x/10%10;

      c=x%10;

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

      printf(”Yes“);

      else

      printf(”No“);}

      13.Problem E: 三個(gè)數(shù)比較大小 Description 從鍵盤上輸入0~100之間的三個(gè)數(shù),按從小到大的順序輸出。

      Input 輸入只有一行,為三個(gè)整數(shù)。

      Output 按從小到大輸出這三個(gè)數(shù)。

      Sample Input 15 10 20

      Sample Output 10 15 20

      HINT 用if語(yǔ)句判斷各種情況可以解決這個(gè)問(wèn)題。

      Append Code #include int main(){

      int a,b,c;

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

      if(a>=b)

      {

      if(b>=c)

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

      else if(c>=a)

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

      else

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

      }

      else

      {

      if(a>=c)

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

      else if(b>=c)

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

      else

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

      } }

      14.Problem F: 奇怪的求和之一 Description 給定3個(gè)正整數(shù)a、b和c,按照如下規(guī)則求和: 如果這個(gè)數(shù)字是偶數(shù),則累加到和中;

      如果這個(gè)數(shù)字是奇數(shù),則將大于該數(shù)的最小偶數(shù)累加到和中。

      Input 三個(gè)正整數(shù),均在100以內(nèi)。

      Output 一個(gè)和。

      Sample Input 2 3 5

      Sample Output 12

      HINT 如果不會(huì)使用分支語(yǔ)句,可使用條件運(yùn)算符判斷到底將哪個(gè)數(shù)累積到和中。

      Append Code #include int main(){

      int a,b,c;

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

      if(a%2!=0)a++;

      if(b%2!=0)b++;

      if(c%2!=0)c++;

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

      }

      15.Problem G: 你過(guò)線了嗎? Description 經(jīng)過(guò)四年的學(xué)習(xí),你決定報(bào)考我國(guó)著名的“285”高校之一的北青大學(xué),經(jīng)過(guò)認(rèn)真的復(fù)習(xí),殘酷的考試,終于知曉了自己的考試成績(jī),也知道了北青大學(xué)的錄取分?jǐn)?shù)線,請(qǐng)你編程判斷,自己過(guò)線了嗎? Input 輸入有2行,第一行有4個(gè)正整數(shù),分別表示三門課程的分?jǐn)?shù)線以及總分分?jǐn)?shù)線。第二行有3個(gè)非負(fù)整數(shù),分別表示你考的三門課程的成績(jī)。

      Output 如果你的三門課程成績(jī)都不低于相應(yīng)課程的分?jǐn)?shù)線,且你的考試總分也不低于北青大學(xué)的總分分?jǐn)?shù)線要求,則輸出“congratulations”,否則輸出“sorry”。

      Sample Input 70 80 70 240 80 80 82

      Sample Output congratulations

      HINT 如果你不會(huì)使用分支語(yǔ)句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。

      Append Code #include int main(){

      int a,b,c,d,e,f,g,h;

      scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,&g);

      h=e+f+g;

      if(e>=a&&f>=b&&g>=c&&h>=d)

      printf(”congratulations“);

      else

      printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output

      Practice Description 計(jì)算a+b,0<=a,b<1000。

      Input 輸入的第一行是一個(gè)整數(shù)N,后面有N對(duì)整數(shù)a和b,每對(duì)a和b占一行,a,b用空格分開(kāi)。

      Output 每行輸出一個(gè)a+b的和,順序與輸入對(duì)應(yīng)。

      Sample Input 2 1 2 10 20

      Sample Output 3 30

      HINT N給出了測(cè)試樣例數(shù),用for循環(huán)處理方便。

      Append Code #include int main(){

      int n,a,b,i;Scanf(“%d”,&n);For(i=0;i

      17.Problem H: A+B Problem Description 計(jì)算a+b,0<=a,b<1000。

      Input 輸入有多對(duì)整數(shù)a和b組成,每對(duì)a和b占一行,a,b用空格分開(kāi)。

      Output 每行輸出一個(gè)a+b的值,順序與輸入對(duì)應(yīng)。

      Sample Input 1 2 10 20

      Sample Output 3 30

      HINT OJ系統(tǒng)上測(cè)試輸入結(jié)束符為EOF(End Of File),其值為-1。用scanf()把文件所有內(nèi)容讀完后,會(huì)讀到EOF,所以可以用來(lái)判斷輸入是否完成,測(cè)試時(shí)可以用Ctrl+Z產(chǎn)生EOF。本題解法參看FAQ。Append Code #include int main(){

      int a,b;

      while(scanf(”%d%d“,&a,&b)!=EOF){

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

      }

      return 0;}

      18.Problem A: 判斷是否是元音字母 Description 輸入一個(gè)英文字母,判斷是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

      Input 輸入一個(gè)英文字母

      Output 是元音字母,輸出“yes”,否則輸出“no”,行尾沒(méi)有回車。

      Sample Input A

      Sample Output yes

      HINT Append Code #include void main(){

      char ch;

      scanf(”%c“,&ch);

      if(ch>='A'&&ch<='Z')

      ch=ch+32;

      if(ch=='a')

      printf(”yes“);

      else if(ch=='e')

      printf(”yes“);

      else if(ch=='i')

      printf(”yes“);

      else if(ch=='o')

      printf(”yes“);

      else if(ch=='u')

      printf(”yes“);

      else

      printf(”no“);

      }

      19.Problem B: 按順序輸出三個(gè)數(shù) Description 對(duì)于輸入的3個(gè)整數(shù),按照從小到大的順序輸出。

      Input 輸入3個(gè)int類型內(nèi)的整數(shù),兩兩之間用一個(gè)空格隔開(kāi)。

      Output 按照從小到大的順序輸出上述三個(gè)數(shù),兩兩之間用一個(gè)空格隔開(kāi)。

      Sample Input 2 1 3 Sample Output 1 2 3

      HINT Append Code #include void main(){

      int a,b,c,temp;

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

      if(a

      {

      temp=a;

      a=b;

      b=temp;

      }

      if(a

      {

      temp=a;

      a=c;

      c=temp;

      }

      if(b

      {

      temp=b;

      b=c;

      c=temp;

      }

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

      20.Problem E: Description 判斷輸入整數(shù)的奇偶性。

      判斷奇偶數(shù) Input 輸入為一個(gè)整數(shù)。

      Output 輸出只有一行,代表判斷結(jié)果。如果輸入的整數(shù)n是一個(gè)偶數(shù),輸出: n is an even number.否則輸出:

      n is an odd number.見(jiàn)樣例。

      Sample Input 12

      Sample Output 12 is an even number.HINT Append Code #include int main(){

      int a;

      scanf(”%d“,&a);

      if(a%2==0)

      printf(”%d is an even number.“,a);

      else

      printf(”%d is an odd number.“,a);}

      21.Problem A: 判斷兩個(gè)整數(shù)的大小關(guān)系 Description 輸入2個(gè)整數(shù)a和b,如果a>b,則輸出1,否則輸出0。

      Input 兩個(gè)整數(shù)a和b,均不超過(guò)int類型的表示范圍。

      Output 表示a>b的結(jié)果:如果a>b,則輸出1,否則輸出0。

      Sample Input 3 4

      Sample Output 0

      HINT

      Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)

      printf(”1“);

      else

      printf(”0“);return 0;} 22.Problem D: 成績(jī)的等級(jí) Description 把百分制的考試成績(jī)轉(zhuǎn)換成五級(jí)制的成績(jī): 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing

      不在0~100之間的輸入是非法數(shù)據(jù),輸出“Error”。

      Input 輸入多行,每行一個(gè)整數(shù)。

      Output 輸入所對(duì)應(yīng)的成績(jī)等級(jí)。

      Sample Input-1 81 92 35 68 72 100

      Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch語(yǔ)句解決這個(gè)問(wèn)題比較方便。

      Append Code #include int main(){

      int score;

      while(scanf(”%d“,&score)!=EOF)

      {

      if(score<0||score>100)

      printf(”Errorn“);

      else

      {

      switch(score/10)

      {

      case 0:

      case 1:

      case 2:

      case 3:

      case 4:

      case 5:printf(”Failingn“);break;

      case 6:printf(”Passn“);break;

      case 7:printf(”Averagen“);break;

      case 8:printf(”Goodn“);break;

      case 9:

      case 10:printf(”Excellentn“);break;

      }

      }

      }

      return 0;}

      23.Problem E: 輸出是m的倍數(shù)或n的倍數(shù)、但不是

      m和n的公倍數(shù)的數(shù) Description 輸出1~k之間是m的倍數(shù)或n的倍數(shù)、但不是m和n的公倍數(shù)的數(shù),其中1<=m,n

      Input 輸入三個(gè)整數(shù),依次為k、m、n。

      Output 從小到大輸出符合題意的所有整數(shù),兩數(shù)之間用一個(gè)空格分開(kāi)。

      Sample Input 15 2 3

      Sample Output 2 3 4 8 9 10 14 15

      HINT 難點(diǎn)在于輸出格式的控制:空格在數(shù)的中間,學(xué)會(huì)用循環(huán)時(shí)邊界情況的特殊處理。

      Append Code #include int main(){ int k,m,n,a,i=1;scanf(”%d %d %d“,&k,&m,&n);if(m

      a=m;else

      a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){

      }

      if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0))

      printf(” %d“,i);} return 0;

      24.Problem B: 兩整數(shù)相加減 Description 計(jì)算a+b和a-b。

      Input 輸入為一對(duì)整數(shù)a和b。a,b用空格分開(kāi)。

      Output 輸出a+b和a-b的計(jì)算結(jié)果,各占一行。

      Sample Input 1 2

      Sample Output 3-1

      HINT Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);

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

      printf(”%dn“,a-b);} 25 Problem C: 它滿足條件嗎? Description 需要判斷給定的一個(gè)整數(shù)是否同時(shí)滿足如下三個(gè)條件: 1.它是一個(gè)完全平方數(shù)。2.它是一個(gè)偶數(shù)。3.它是一個(gè)正數(shù)。

      注:若一個(gè)數(shù)能表示成某個(gè)自然數(shù)的平方的形式,則稱這個(gè)數(shù)為完全平方數(shù)。例如:

      0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一個(gè)int范圍內(nèi)的整數(shù)。

      Output 如果輸入的數(shù)字滿足條件,則輸出yes,否則輸出no。

      Sample Input 100

      Sample Output yes

      HINT 注意邏輯表達(dá)式判斷三個(gè)條件的順序。如果你不會(huì)使用分支語(yǔ)句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。

      庫(kù)函數(shù)sqrt()可以用于求一個(gè)數(shù)的平方根。

      Append Code #include #include int main(){ int a;scanf(”%d“,&a);

      if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)

      printf(”yes“);

      else

      printf(”no“);}

      26.Problem F: 多路分支 Description 編寫一個(gè)完整的程序,運(yùn)行時(shí)向用戶提問(wèn)”你考試考了多少分?(0-100)“接受輸入后判斷其等級(jí)并顯示出來(lái)等級(jí): 優(yōu):90<=分?jǐn)?shù)<=100 良:80<=分?jǐn)?shù)<90 中:60<=分?jǐn)?shù)<80 差:0<=分?jǐn)?shù)<60

      Input 輸入任意一個(gè)整數(shù)分?jǐn)?shù)值,顯示等級(jí);再輸入任意一個(gè)整數(shù)分?jǐn)?shù)值,顯示等級(jí);....直到測(cè)試數(shù)據(jù)較充分,可輸入-1止。

      Output 對(duì)任意輸入的分?jǐn)?shù)值,輸出對(duì)應(yīng)的等級(jí),直到輸入的數(shù)為-1時(shí)才退出運(yùn)行.Sample Input 102 100 90 80 70 60 50 0-80-1

      Sample Output grad must between 0 and 100 優(yōu)

      優(yōu)

      grad must between 0 and 100 grad must between 0 and 100

      HINT Append Code #include int main(){

      int x;

      while(scanf(”%d“,&x)!=EOF)

      {

      if(x<0||x>100)

      printf(”grad must between 0 and 100n“);

      else if(x>=90)

      printf(”優(yōu)n“);

      else if(x>=80)

      printf(”良n“);

      else if(x>=60)

      printf(”中n“);

      else if(x>=0)

      printf(”差n“);

      }

      return 0;} Problem D: 有多少人? Description 學(xué)校舉行運(yùn)動(dòng)會(huì),如果全體學(xué)生按照3人一隊(duì)列隊(duì),則多了1個(gè)人;如果按照4人一隊(duì)列隊(duì),則多了2個(gè)人;如果按照5人一隊(duì)排隊(duì),則多了3個(gè)人。請(qǐng)問(wèn)這個(gè)學(xué)校有多少學(xué)生?

      Input 一個(gè)int類型的正整數(shù)N,是學(xué)生人數(shù)的上界,即:該校學(xué)生數(shù)不超過(guò)N。

      Output 所有可能的學(xué)生數(shù),每個(gè)數(shù)占一行。

      Sample Input 200

      Sample Output 58 118 178

      HINT Append Code #include #include int main(){

      int n,i;

      scanf(”%d“,&n);

      for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3)

      printf(”%dn“,i);}

      return 0;} Problem C: 正負(fù)數(shù)各有幾個(gè)? Description 輸入若干個(gè)整數(shù),求其中正數(shù)、負(fù)數(shù)的個(gè)數(shù)。

      Input 輸入分為2行:第一行是一個(gè)數(shù)字N>0,表示下面有N個(gè)整數(shù)。第2行是N個(gè)整數(shù),都是int類型的。

      Output 輸出所輸入的N個(gè)整數(shù)的正數(shù)個(gè)數(shù)和負(fù)數(shù)個(gè)數(shù),并用空格分開(kāi)2個(gè)輸出。Sample Input 10 2 3 4 5-1-2-3-4-5

      Sample Output 5 5

      HINT 貌似還有一種叫做0的數(shù)。

      Append Code #include int main(){

      int n,a,i,num1=0,num2=0;

      scanf(”%d“,&n);for(i=0;i

      {

      scanf(”%d“,&a);

      if(a>0)

      num1++;

      else if(a<0)

      num2++;

      }

      printf(”%d %dn“,num1,num2);

      return 0;} Problem A: A+B Problem(III): Input/Output

      Practice Description 計(jì)算a+b,0<=a,b<1000。

      Input 輸入有多對(duì)整數(shù)a和b組成,每對(duì)a和b占一行,a,b用空格分開(kāi)。當(dāng)測(cè)試樣為0 0時(shí)表示輸入結(jié)束,0 0不參與運(yùn)算。

      Output 每行輸出一個(gè)a+b的值,順序與輸入對(duì)應(yīng)。

      Sample Input 1 2 10 20 0 0

      Sample Output 3 30

      HINT 練習(xí)break的使用。

      Append Code #include int main(){ int a,b;while(scanf(”%d %d“,&a,&b)!=EOF)

      {

      if(a!=0||b!=0)

      }

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

      else

      break;

      return 0;} 30 Problem B: A+B Problem(IV): Input/Output

      Practice Description 計(jì)算a+b,0<=a,b<1000。

      Input 輸入有多對(duì)整數(shù)a和b組成,每對(duì)a和b占一行,a,b用空格分開(kāi)。

      Output 每行輸出一個(gè)a+b的值,順序與輸入對(duì)應(yīng)。每個(gè)格式樣例之間用一個(gè)空行分隔開(kāi)。

      Sample Input 1 2 10 20 15 35

      Sample Output 3 30 50

      HINT 由于輸出的和比空行多一個(gè),所以全部計(jì)算放在一個(gè)循環(huán)里是不行的,必須要特殊處理開(kāi)頭或者結(jié)尾。

      Append Code #include int main(){ int a,b,n=0;while(scanf(”%d %d“,&a,&b)!=EOF){

      n++;

      if(n==1)

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

      else

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

      }

      return 0;}

      Problem C: n個(gè)數(shù)的最大值和最小值 Description 找出n個(gè)數(shù)中最大的數(shù)和最小的數(shù),并將它們的值輸出出來(lái)。

      Input 輸入為n+1個(gè)整數(shù),都在int類型范圍內(nèi)。這些數(shù)可能用若干空格或者換行符分隔開(kāi)。輸入的第1個(gè)數(shù)為n,表示后續(xù)有n個(gè)數(shù)輸入。從輸入的第2個(gè)數(shù)開(kāi)始,求出直到第n+1個(gè)數(shù)中最大的數(shù)和最小的數(shù)。

      Output 輸出為兩行,格式見(jiàn)sample。

      Sample Input 3 0 1-1

      Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格還是回車都是空白符,對(duì)scanf(”%d“)來(lái)說(shuō)沒(méi)有區(qū)別;先讀入n,然后用for循環(huán)就很容易控制讀入n個(gè)數(shù)的過(guò)程。

      Append Code #include int main(){

      int n,i,max,min;

      scanf(”%d“,&n);

      int a[n];

      for(i=0;i

      scanf(”%d“,&a[i]);

      max=a[0];

      min=a[0];

      for(i=0;i

      {

      if(max

      max=a[i];

      if(min>a[i])

      min=a[i];

      }

      printf(”The maximum number is %d.n“,max);

      printf(”The minimum number is %d.“,min);

      return 0;} 32.Problem D: 求100以內(nèi)的素?cái)?shù) Description 素?cái)?shù)是只能被1和自身整除的正整數(shù),根據(jù)數(shù)學(xué)定義1不是素?cái)?shù)。素?cái)?shù)也叫質(zhì)數(shù)。

      Input 輸入為兩個(gè)整數(shù)m和n,滿足0<=m<=n<=100。

      Output 從大到小輸出m~n之間的所有素?cái)?shù),一個(gè)素?cái)?shù)一行。如果m~n之間沒(méi)有素?cái)?shù),則不輸出任何數(shù)。

      輸出的所有數(shù)在兩行“=====”之間。

      Sample Input 2 12

      Sample Output ===== 11 7 5 3 2 =====

      HINT 利用素?cái)?shù)的數(shù)學(xué)規(guī)律可以很容易的解出此題,題目給出的數(shù)據(jù)范圍是關(guān)鍵。

      Append Code #include #include int main(){ int m,n,i,j,k,t;scanf(”%d %d“,&m,&n);printf(”=====n“);for(i=n;i>=m;i--){

      t=0;

      for(j=2;j<=sqrt(i);j++)

      if(i%j==0)

      t=1;

      if(t==0&&i>1)

      printf(”%dn“,i);} printf(”=====“);return 0;} 33.Problem E: 是否構(gòu)成三角形? Description 給出三個(gè)整數(shù),代表三條邊的長(zhǎng)度,判斷這三條邊的長(zhǎng)度是否能構(gòu)成一個(gè)三角形?

      Input 第一行是n(1<=n<=100),表示有n組測(cè)試數(shù)據(jù)

      接下來(lái)有n行,每一行包含三個(gè)整數(shù),表示三個(gè)邊長(zhǎng)(1<=邊長(zhǎng)<=100)

      Output 如果三條邊能構(gòu)成三角形,輸出YES,否則輸出NO

      Sample Input 3 1 2 3 2 8 7 20 20 1

      Sample Output NO YES YES

      HINT Append Code #include int main(){ int a,b,c,n,i;scanf(”%d“,&n);for(i=0;i

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

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

      printf(”YESn“);else printf(”NOn“);}

      return 0;} 34.Problem C: 簡(jiǎn)單的整數(shù)排序 Description 對(duì)給出的若干整數(shù)按從小到大排序。

      Input 輸入的第一個(gè)數(shù)為n(n<=1000),后接n個(gè)整數(shù)。

      Output 按從小到大的順序輸出這些整數(shù),每?jī)蓚€(gè)整數(shù)之間用一個(gè)空格分隔開(kāi),最后一個(gè)整數(shù)后面沒(méi)有空格。

      Sample Input 10 3 9 1 5 2 8 5 6 7 3

      Sample Output 1 2 3 3 5 5 6 7 8 9

      HINT 排序前必須把所有的整數(shù)都存儲(chǔ)下來(lái)。因?yàn)橹挥凶疃?000個(gè)數(shù),1秒的時(shí)間足夠任何排序算法運(yùn)行處結(jié)果來(lái)。

      Append Code #include int main(){

      int c,i,n,j;

      int a[1000];

      scanf(”%d“,&n);

      for(i=0;i

      scanf(”%d“,&a[i]);

      for(i=1;i<=n-1;i++)

      {

      for(j=0;j

      {

      if(a[j]>a[j+1])

      {

      c=a[j];

      a[j]=a[j+1];

      a[j+1]=c;

      }

      }

      }

      printf(”%d“,a[0]);

      for(i=1;i

      printf(” %d“,a[i]);

      return 0;}

      35.Problem A: Description

      購(gòu)物的路程 Saya和Kudo一起去購(gòu)物。假定她們逛的街是一條直線,而商鋪是這條直線上的一些點(diǎn)。她們將車停在該直線最左端的店鋪處,然后從左向右開(kāi)始逛每一個(gè)店鋪,然后從最右邊的店鋪再返回到停車處。你的任務(wù)是計(jì)算她們走了多少路。

      Input 輸入有多組。每一組的第一行是N(0

      Output 對(duì)每組輸入,輸出她們走的路長(zhǎng)。

      Sample Input 4 13 89 37 6 7 30 41 14 39 42 0

      Sample Output 152 70

      HINT Append Code #include int main(){

      int n,i,max,min,a[100001];

      while(scanf(”%d“,&n)&&n!=0)

      {

      scanf(”%d“,&a[0]);

      min=max=a[0];

      for(i=1;i

      {

      scanf(”%d“,&a[i]);

      if(a[i]>max)

      max=a[i];

      if(a[i]

      min=a[i];

      }

      printf(”%dn“,(max-min)*2);

      }

      return 0;} 36.Problem B: 求累加和 Description 編程求min~max的累加和(含min和max),其中max>=min>0。部分程序已經(jīng)給出,請(qǐng)?zhí)畛淦渲械目瞻渍Z(yǔ)句,并提交填充后的完整程序。

      Input 輸入為多行。第一行是一個(gè)整數(shù)N>0,表示后面有N個(gè)測(cè)試用例。后面有N行,每行包含2個(gè)整數(shù),分別是min和max。

      Output 輸出為N行,每個(gè)測(cè)試用例的計(jì)算結(jié)果占據(jù)一行。每行的格式為: case i:sum=s.其中i表示測(cè)試用例的編號(hào)(從1開(kāi)始),s是該測(cè)試用例對(duì)應(yīng)的累加和(設(shè)不超過(guò)int的表示范圍)。

      Sample Input 3 1 10 1 100 1 1

      Sample Output case 1:sum=55.case 2:sum=5050.case 3:sum=1.HINT Append Code #include int main(){

      int n,i,j,max,min,sum;

      scanf(”%d“,&n);

      for(i=0;i

      { sum=0;

      scanf(”%d%d“,&min,&max);

      if(max==min)

      printf(”case %d:sum=%d.n“,i+1,min);

      else

      {

      for(j=min;j<=max;j++)

      sum=sum+j;

      printf(”case %d:sum=%d.n“,i+1,sum);

      }

      } return 0;} 37.Problem G: 順序輸出字母 Description 按字母順序輸出兩個(gè)字母st和ed之間的所有字母,但不包括st和ed。不輸出逆序。

      Input 兩個(gè)字母st和ed,都是大寫字母,用一個(gè)空格分開(kāi)。

      Output 在一行內(nèi)按順序輸出st和ed之間的所有字母,但不包括st和ed。例如:

      輸入為A和E,則輸出為BCD;

      輸入為A和B,則什么字母也不輸出,只有一個(gè)空行; 輸入為E和A,也是什么字母也不輸出,只有一個(gè)空行。最后要輸出一行(行尾不回車): ***END***

      Sample Input A C

      Sample Output B

      ***END***

      HINT Append Code #include int main(){

      char st,ed,a;

      int i;

      scanf(”%c%c%c“,&st,&a,&ed);

      {

      for(i=st+1;i

      printf(”%c“,i);

      printf(”n***END***“);

      }

      return 0;} 38.Problem F: 單字母變換 Description Tom和Jack是密碼學(xué)愛(ài)好者,他們?cè)诹奶鞎r(shí)經(jīng)常使用一些暗語(yǔ)。他們使用的一種最簡(jiǎn)單的暗語(yǔ)是:將要說(shuō)的每句話里面的英文字母變成這個(gè)字母之后的某個(gè)字母。現(xiàn)在要求你寫一個(gè)程序,將一個(gè)字母變成它之后的某個(gè)字母。

      Input 輸入有2個(gè):一個(gè)大寫字母c和一個(gè)正整數(shù)d(0

      Output 輸出字母c之后的第d個(gè)字母。大小寫與c一致。如果c之后的某個(gè)字母已經(jīng)超出'Z',則再?gòu)淖帜?A'開(kāi)始計(jì)數(shù)。

      如:c='A',d=3,則輸出應(yīng)為:D。若:c='Y',d=3,則輸出應(yīng)為:B。

      Sample Input A 3

      Sample Output D

      HINT Append Code #include int main(){

      char c;

      int d;

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

      if(c+d<='Z')

      printf(”%c“,c+d);

      else

      printf(”%c“,c+d-26);

      return 0;}

      39.Problem B: 登錄密碼驗(yàn)證 Description 編寫一個(gè)程序,模擬用戶登錄系統(tǒng)的密碼驗(yàn)證過(guò)程。系統(tǒng)提供給用戶的密碼長(zhǎng)度最長(zhǎng)為20個(gè)字符,若密碼輸入錯(cuò)誤可以再次輸入。但為了保證用戶密碼安全,若連續(xù)輸入密碼錯(cuò)誤超過(guò)5次就會(huì)鎖定賬號(hào)一段時(shí)間。

      Input 輸入為若干個(gè)串,至EOF結(jié)束。輸入的第一個(gè)串是用戶的正確密碼,后面的串為模擬用戶登錄時(shí)的輸入的密碼。

      Output 每次輸入錯(cuò)誤的密碼,輸出一個(gè)“Wrong!”,若輸入的密碼為正確的,輸出一個(gè)“Welcome!”,并結(jié)束密碼測(cè)試。若前5次輸入的密碼都是錯(cuò)誤的,則后面的輸入中不管是否有正確的密碼都輸出“Out of limited!”。

      Sample Input abcdefg

      123456 kkkkkkkk abcdefg

      Sample Output Wrong!Wrong!Welcome!

      HINT 輸入可以用scanf(”%s“)處理,密碼比較用字符串的比較可以完成。

      Append Code #include #include int main(){

      char a[20],b[20];

      int i,j=1;

      scanf(”%s“,a);

      while(scanf(”%s“,b)!=EOF)

      {

      if(j<=5)

      {

      if((strcmp(a,b)==0))

      {

      printf(”Welcome!n“);

      break;

      }

      else

      printf(”Wrong!n“);

      j++;

      }

      else printf(”O(jiān)ut of limited!n");

      } } 40.Problem C: 兔子的繁殖問(wèn)題 Description 假設(shè)一對(duì)兔子每月能生一對(duì)小兔(一雌一雄),每對(duì)小兔出生后的下一個(gè)月是沒(méi)有繁殖能力的,至出生后的第三個(gè)月開(kāi)始又可以每月生一隊(duì)小兔,問(wèn)從一對(duì)剛出生的小兔開(kāi)始,經(jīng)過(guò)若干個(gè)月后一共有多少兔子(假設(shè)在此過(guò)程中兔子沒(méi)有死亡)?

      這個(gè)問(wèn)題是意大利數(shù)學(xué)家菲波那契(Fibonacci)在他1202年出版的《算盤全書》中提出來(lái)的,從第一對(duì)剛出生的小兔開(kāi)始每月的兔子數(shù)被乘坐菲波那契序列。

      Input 輸入的第一個(gè)數(shù)為n,接下來(lái)有n個(gè)數(shù)字。每個(gè)數(shù)字為一個(gè)月份m(m<=45)。

      Output 輸出為n行,每行為第m個(gè)月后的兔子總數(shù)。

      第三篇:C 語(yǔ)言程序設(shè)計(jì)

      《C 語(yǔ)言程序設(shè)計(jì)》主要在計(jì)算機(jī)軟件、計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)應(yīng)用、通信技術(shù)、智能電子、電子信息工程、多媒體以及核工程與核技術(shù)等專業(yè)中開(kāi)設(shè),是電子信息類、機(jī)械類等工科專業(yè)的重要專業(yè)基礎(chǔ)課。

      本校從2001至今,每年都開(kāi)設(shè)《C語(yǔ)言程序設(shè)計(jì)》課程,由于,我校最開(kāi)始時(shí)的特殊情況,主要把重點(diǎn)放在C語(yǔ)言中的各類重點(diǎn)、難點(diǎn)的語(yǔ)法、語(yǔ)義上,使得學(xué)生經(jīng)過(guò)比較復(fù)雜和痛苦的過(guò)程后,對(duì)C語(yǔ)言在使用上很難做到自己編寫程序。而且很多學(xué)生產(chǎn)生了畏懼心理。

      2004年,學(xué)院成立計(jì)算機(jī)科學(xué)與技術(shù)系,為了更好學(xué)習(xí)和掌握C語(yǔ)言,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)和計(jì)算機(jī)維護(hù)專業(yè)(計(jì)算機(jī)應(yīng)用技術(shù)前身)除了開(kāi)設(shè)《C語(yǔ)言程序設(shè)計(jì)》課程外,在后續(xù)一學(xué)期還開(kāi)設(shè)了《C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)》,使得計(jì)算機(jī)專業(yè)學(xué)生編程思想和能力得到了極大提高。

      2005年,為了讓我院工科學(xué)生更好的掌握C語(yǔ)言編程以及通過(guò)四川省計(jì)算機(jī)二級(jí)考試,在《C語(yǔ)言程序設(shè)計(jì)》課程后設(shè)置《C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)》,極大地提高了學(xué)生的動(dòng)手機(jī)會(huì)和能力,過(guò)級(jí)率顯著提高!

      2007年,依托我校建設(shè)精品課程的契機(jī),我們將C語(yǔ)言中的各個(gè)知識(shí)點(diǎn)進(jìn)行重新規(guī)整,提出適用于三本院校學(xué)生的語(yǔ)言設(shè)計(jì)學(xué)習(xí)的方法。我們提出,先了解C語(yǔ)言,再學(xué)習(xí)C語(yǔ)言,再用C語(yǔ)言的思想。即在開(kāi)始時(shí)讓學(xué)生初步知道C語(yǔ)言,然后引入比較簡(jiǎn)單的運(yùn)算符以及基本輸入、輸出和簡(jiǎn)單的順序結(jié)構(gòu)程序設(shè)計(jì)。通過(guò)這樣的方式,我們發(fā)現(xiàn),學(xué)生在C語(yǔ)言的學(xué)習(xí)就不會(huì)從開(kāi)始的時(shí)候陷入大量難懂的語(yǔ)法、語(yǔ)義和數(shù)據(jù)結(jié)構(gòu)中。有了以上鋪墊再層層進(jìn)入,最終進(jìn)入復(fù)雜的各類數(shù)據(jù)結(jié)構(gòu)以及指針等學(xué)習(xí)。通過(guò)以上的內(nèi)容規(guī)整后,教學(xué)效果有明顯提高。

      第四篇:C語(yǔ)言程序設(shè)計(jì)教程第五章練習(xí)題題目

      單選題

      1、關(guān)于數(shù)組的定義與初始化,下列哪一項(xiàng)是錯(cuò)誤的()A.int arr[5] = {1,2,3,4,5};B.int arr[] = {1,2,3,4,5};C.int arr[5] = {1,2,3};D.int arr[5] = {1,2,3,4,5,6};

      2、在定義數(shù)組intarr[10]后,下列選項(xiàng)中對(duì)arr的引用正確的是()A.arr[10] B.arr[6.3] C.arr(6)D.arr[0]

      3、在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()A.整型常量 B.整型表達(dá)式

      C.整型常量或整型表達(dá)式 D.任何類型的表達(dá)式

      4、若intarr[5] = {1,2,3};則arr[2]的值為()A.1 B.2 C.3 D.null

      5、在執(zhí)行intarr[][3] = {1,2,3,4,5,6}:語(yǔ)句后,arr[1][0]的值為()A.4 B.1 C.2 D.5

      6、關(guān)于二維數(shù)組,下列選項(xiàng)能正確定義并賦初值的是()A.int n = 5,b[n][n];B.int a[1][2] = {{1},{3}};C.int c[2][] = {{1,2},{3,4}};D.int a[3][2] = {{1,2},{3,4}};

      7、閱讀下列程序段: char s[18] = “a book!”;printf(“%.4sn”, s);其輸出結(jié)果為()A.a book!B.a book C.abo D.a

      8、閱讀下列程序:

      int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } };

      printf(“%d%d%d%dn”, a[0][0], a[1][1], a[2][2], a[3][3]);正確的輸出結(jié)果為()A.0650 B.1470 C.5430 D.輸出值不定

      9、閱讀下面程序: int i;

      int x[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };for(i = 0;i<4;i++)

      printf(“%3d”, x[i][3-i]);下列選項(xiàng)中哪一項(xiàng)是正確的輸出結(jié)果()A.1 5 9 13 B.1 6 11 16 C.4 7 10 13 D.4 8 12 16

      10、下列描述中不正確的是()。A.字符型數(shù)組中可以存放字符串

      B.可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出 C.可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出

      D.不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“=”對(duì)字符型數(shù)組進(jìn)行整體賦值

      11、以下定義語(yǔ)句中,錯(cuò)誤的是()。A.int a[]={1,2};B.char *a[3];C.chars[10]=“test”;D.int n=5,a[n];

      12、下列選項(xiàng)中,合法的數(shù)組定義是()。A.int a[]=“string”;B.int a[5]={0,1,2,3,4,5};C.char s=“string”;D.chara[]={0,1,2,3,4,5};

      13、int類型變量在內(nèi)存中占用四個(gè)字節(jié),其有定義:int x[10]={0,2,4};那么數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是()。A.3 B.10 C.12 D.40

      14、C語(yǔ)言中數(shù)組下標(biāo)的下限是()。A.1 B.0 C.視具體情況 D.無(wú)固定下限

      15、以下程序的輸出結(jié)果是()。void main(){

      } int i, a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);A.258 B.741 C.852 D.369

      16、若有以下說(shuō)明:

      int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;那么數(shù)值為4的表達(dá)式是()。A.a[g-c] B.a[4] C.a['d'-'c'] D.a['d'-c]

      17、C語(yǔ)言中數(shù)組名作為參數(shù)傳遞給函數(shù),作為實(shí)在參數(shù)的數(shù)組名被處理為()。A.該數(shù)組的長(zhǎng)度 B.該數(shù)組的元素個(gè)數(shù) C.該數(shù)組中各元素的值 D.該數(shù)組的首地址

      18、當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是()。A.數(shù)組的長(zhǎng)度 B.數(shù)組的首地址

      C.數(shù)組每一個(gè)元素的地址 D.數(shù)組每個(gè)元素中的值

      19、以下程序的輸出結(jié)果是()。void main(){ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(“%d%d%d%dn”,a[0][3],a[1][2],a[2][1],a[3][0];} A.0650 B.1470 C.5430 D.輸出值不定

      多選題

      1、關(guān)于數(shù)組類型的定義,下列描述中正確的是()A.數(shù)組的大小一旦定義就是固定的 B.一個(gè)數(shù)組中的各元素類型可以不一樣 C.數(shù)組的下標(biāo)類型為整型 D.數(shù)組元素的下標(biāo)從1開(kāi)始

      2、下面對(duì)數(shù)組描述正確的是()A.數(shù)組的長(zhǎng)度是不可變的

      B.數(shù)組不能先聲明長(zhǎng)度再不賦值 C.數(shù)組只能存儲(chǔ)相同數(shù)據(jù)類型的元素 D.數(shù)組沒(méi)有初始值

      判斷題

      1、在C語(yǔ)言中,只有一維數(shù)組和二維數(shù)組()。

      2、數(shù)組的索引是從1開(kāi)始的()。

      3、數(shù)組屬于構(gòu)造類型的數(shù)據(jù)()。

      4、數(shù)組名的命名較為特別,它不符合標(biāo)識(shí)符的命名規(guī)范()。

      5、數(shù)組在初始化時(shí)不可以只賦值一部分,必須全部賦值初始化()。

      6、對(duì)于一維數(shù)組,例如intarr[3];則arr[2]表示數(shù)組的第2個(gè)元素()。

      7、數(shù)組的下標(biāo)范圍是0-[數(shù)組長(zhǎng)度-1]()。

      8、二維數(shù)組進(jìn)行定義與初始化時(shí),行下標(biāo)與列下標(biāo)均不能省略()。

      9、在程序設(shè)計(jì)中,一組具有相同數(shù)據(jù)類型的變量集合稱為數(shù)組()。

      10、數(shù)組元素的下標(biāo)用于表示元素在數(shù)組中的位置序號(hào),該下標(biāo)是從1開(kāi)始的()。

      11、數(shù)組元素下標(biāo)的個(gè)數(shù)也稱為維數(shù),根據(jù)維數(shù)的不同,可將數(shù)組分為一維數(shù)組、二維數(shù)組、三維數(shù)組、四維數(shù)組等()。

      12、一維數(shù)組指的是只有一個(gè)下標(biāo)的數(shù)組,用來(lái)表示一組具有相同類型的數(shù)據(jù)()。

      13、數(shù)組初始化的常見(jiàn)方式有三種:直接對(duì)數(shù)組中的所有元素賦值、只對(duì)數(shù)組中的一部分元素賦值、對(duì)數(shù)組全部元素賦值但不指定長(zhǎng)度()。

      14、數(shù)組中的元素可以通過(guò)數(shù)組名和下標(biāo)來(lái)引用()。

      15、數(shù)組的下標(biāo)都有一個(gè)范圍,即“0 ~ 數(shù)組長(zhǎng)度”()。

      16、初始化二維數(shù)組時(shí),如果對(duì)全部數(shù)組元素置初值,則二維數(shù)組的第一個(gè)下標(biāo)可省略,但第二個(gè)下標(biāo)不能省略()。

      填空題

      1、C語(yǔ)言中數(shù)組名代表數(shù)組的()地址。

      2、數(shù)組是一組具有()類型的數(shù)據(jù)的集合。

      3、對(duì)于二維數(shù)組intarr[3][4],其中3為()下標(biāo),4為()下標(biāo)。

      4、若定義二維數(shù)組intarr[5][6];則數(shù)組的列下標(biāo)的取值范圍為()。

      5、二維數(shù)組是通過(guò)數(shù)組名和()來(lái)引用其元素的。

      6、C語(yǔ)言中數(shù)組必須先()再使用。

      7、二維數(shù)組的定義格式為()。

      8、一維數(shù)組指的是只有一個(gè)()的數(shù)組,用來(lái)表示一組具有相同類型的數(shù)據(jù)。

      9、數(shù)組的下標(biāo)是用()括起來(lái)的,而不是圓括號(hào)。

      10、假設(shè)定義一個(gè)3行4列的二維數(shù)組,那么共包含()個(gè)元素。

      11、二維數(shù)組同一維數(shù)組一樣,也是通過(guò)()和下標(biāo)的方式來(lái)引用數(shù)組元素。

      12、假設(shè)定義數(shù)組int a[3][4],數(shù)組a可用的行下標(biāo)范圍是(),列下標(biāo)范圍是()。簡(jiǎn)答題

      1、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過(guò)并正確運(yùn)行,如果不能,說(shuō)明原因;如果能,請(qǐng)寫出運(yùn)行結(jié)果。void main(){ int i;chararr[5] = { 'h', 'e', 'l', 'l', 'o' };for(i = 0;i < 5;i++)

      printf(“%c”, arr[i]);}

      2、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,只打印出數(shù)組偶數(shù)位上的元素。int main(){ int i;intarr[8] = { 1, 0, 1, 0, 1, 0, 1, 0 };for(i = 0;i < 8;i++){

      ;

      printf(“%dn”, arr[i]);} return 0;}

      3、請(qǐng)閱讀下面的程序,分析程序是否能編繹通過(guò)并正確運(yùn)行,如果不能,說(shuō)明原因;如果能,請(qǐng)寫出運(yùn)行結(jié)果。void main(){ floatarr[6] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 };inti,t;t = arr[0];for(i = 0;i < 5;i++)

      arr[i] = arr[i + 1];

      arr[5] = t;for(i = 0;i < 6;i++)

      printf(“%-6.2f”, arr[i]);}

      4、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,輸出數(shù)組中最大元素的下標(biāo)。int main(){ int i, p;intarr[] = { 1,-3, 0,-9, 8, 5, 20, 3 };for(i = 0, p = 0;i < 8;i++){

      if()

      ;} printf(“p = %dn”, p);return 0;}

      5、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:刪除字符串s中的所有數(shù)字字符。void dele(char *s){ int n=0,i;for(i=0;s[i];i++)

      if(_______)

      s[n++]=s[i];s[n]=_______ }

      6、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:在一個(gè)初始化數(shù)組中查找與x相同的元素,如果找到就將該元素置為-x。void main(){ int a[]={8,4,2,7,3,9},i,x;scanf(“%d”,&x);for(i=0;_______;i++)

      if(a[i]==x)

      _______ for(i=0;i<6;i++)

      printf(“%d ”,a[i]);}

      7、請(qǐng)閱讀下面的程序,在空白處填寫正確的代碼,該程序的功能是:計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。intmystrlen(char *str){ int i;for(i=0;_______!='