首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計算機(jī)等級考試 | 軟件水平考試 | 職稱計算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會計從業(yè)資格考試會計證) | 經(jīng)濟(jì)師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務(wù)師
注冊資產(chǎn)評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內(nèi)審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 復(fù)習(xí)資料 > 軟件設(shè)計師 > 正文

軟考軟件設(shè)計師課后練習(xí)題:第三章習(xí)題及解答

 

    3.2  填充題
  1.結(jié)構(gòu)化程序設(shè)計規(guī)定的三種基本結(jié)構(gòu)是________結(jié)構(gòu),選擇結(jié)構(gòu)和_______結(jié)構(gòu)。
    【解】結(jié)構(gòu)化程序設(shè)計的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
         2.若有定義“int a=25,b=14, c=19;”,以下語句的執(zhí)行結(jié)果是______。
         if a++<=25&&b--<=2&&c++)
        prinif("***a=%d,b=%d,c=%d\n", a,b,c);
        else printf(”###a=%d,b=%d,c=%d\n”, a, b,c);
    【解】問題所給的if語句中,條件a++<=25&&b--<=2&&c++是先求邏輯與的第一個運(yùn)算分量,它是一個關(guān)系式,關(guān)系成立。接著判定第二個邏輯與運(yùn)算分量,又是一個關(guān)系式,由于變量b的值是14,b不小于等于2,運(yùn)算分量的關(guān)系式不成立,導(dǎo)致if語句的條件為假,執(zhí)行else部分。在求且語句的條件時,計算了2個邏輯與分量,使變量a的值增了1,變量 b的值被減了1。所以輸出內(nèi)容是:###a=26,b=13,c=19。
     3.以下兩條if語句可合并成一條if語句為_____________。
     if(a<=b) x=1;
     else y=2;
    if(a>b)printf("****y=%d\n" ,y);
     else printf( "####x=%d\n" ,x);
    【解】在以上兩條if語句中,兩個條件剛巧相反。若將前一個if語句的第一個成分語句與第二個if語句的第二個成分語句合并;第一個if語句的第二個成分語句與第二個if語句的第一個成分語句合并,寫成一條if語句如下:
     if(a<=b){x=1;printf("####x=%d\d,x);}
    else{ y=2; printf("****y=%d\n",y);} 
        4.設(shè) i,j,k均為 int型變量,則執(zhí)行完下面的for語句后,k的值為_______。
    for(i=0,j=10;i<=j(luò);i++,j--)k=i+j;
    【解】該 for語句以i為0、j為10初始化,循環(huán)條件是 i<=j(luò),每次循環(huán)后 i增 1、j減 1,循環(huán)體是將 i與j的和賦給 k。這樣變量 k將保存的是最后一次賦給它的值。一次循環(huán)后 i為 l。j為 9,二次循環(huán)后 i為 2.j為 8,……,五次循環(huán)后 i為 5.j為 5,繼續(xù)第六次循環(huán),將 i與 j的和10存于 k后,i為 6、j為 4,結(jié)束循環(huán)。所以循環(huán)執(zhí)行后 k為10。
        5.下列程序的功能是輸入一個整數(shù),判斷是不是素數(shù),若為素數(shù)輸出1,否則輸出0,請為程序填空。
    main()
   {int i,X,y=1;
   scanf(”%d”,&x);
   for(i=2;i<=x/2;i++)
    if________________ { y=0; break; }
    printf(”%d\n”,y);
    }
    【解】為判數(shù)x是否是素數(shù),預(yù)置變量y的值為1(x可能是素數(shù)),然后用循環(huán),用2至x/2的整數(shù)i測試對X的整除性,若能被其中的某個整數(shù)整除,則X是合數(shù),置y的值為0(不是素數(shù)),結(jié)束測試循環(huán)。若都不能整除,則X為素數(shù)。i能否整除X,可用求余運(yùn)算X%i等于0來判定。所以程序中的空框可填 X% i==0。測試 X為素數(shù)的代碼可寫成:
     y=l;
    for( i=2; i<=x/2; i++)
    if(x%i==0){ y=0; bleak; }
 
    3.3   程序分析題
 
   1.閱讀程序,寫出運(yùn)行結(jié)果。
     main()
    { int a=10, b=4,C=3; 
        if(a<b)a=b; 
        if(a<C) a=C; 
        printf("%d,%d,%d\n", a,b,c);
        }
    【解】程序中,第一個if語句if(a         2.閱讀下列程序,寫出程序的輸出結(jié)果。
     main()
     { int x=100, a=10, b=20, Ok1=5,Ok2=0;
     if(a<b)if(b!=15)if(!Ok1) x=1;
      else if(ok2) x=10;
     else x=-l;
      printf("%d\n",x);
      } 
      【解】程序預(yù)置變量x的值為100,a的值為10,b的值為20,ok1為5,Ok2為0。程序中給出的if語句可以寫成更結(jié)構(gòu)化的形式如下:
     if(a<b) {
     if(b!=15){
     if(!Ok1) x=1;
     else{
     if(Ok2) x=10;
     else x=-l;
   }
      }
      }
由于條件a<b成立,并且條件b!=15也成立,而ok1不等于0,執(zhí)行else后的語句。又因ok2等于0,執(zhí)行else后的語句賦-1給x。所以程序輸出一l。
        3.閱讀下列程序,寫出程序的輸出結(jié)果。
    main() 
        {  int y=9;
         for(; y>0; y--) 
         if(y%3==0){ printf(”%d”,--y);continue;}
      }
    【解】循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減至變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。
 
   3.4   程序設(shè)計題
 
  1.編一個程序,輸入華氏溫度(F),按下列公式計算并輸出對應(yīng)的攝氏溫度(C):C= 5( F-32)/9
     【解】利用公式:C=5(F-32)/9,輸入F氏溫度,計算并輸出對應(yīng)的C氏溫度,程序要引入兩個變量,分別用于存儲F氏溫度和C氏溫度,計算時應(yīng)采用浮點(diǎn)型,包括公式中的常數(shù)也應(yīng)寫成浮點(diǎn)數(shù),不能采用整型和把常數(shù)寫成整數(shù)。因采用整型編寫,公式中的除運(yùn)算變成整除,會得出與實際要求不一致的結(jié)果。程序如下:
   #include 
      main()
      {  float f,c;/*變量定義*/
         printf(”輸入F氏溫度”);
        scanf(”%f,&f);
        c= 5.0*(f-32.0)/9.0;
        printf(”對應(yīng)的C氏溫度%6.2f\n”,c);
       }
        2.編一個程序,輸入一個整數(shù),輸出其符號(若≥0,輸出1;若<0輸出-1)。
    【解】程序可用if語句判斷輸入數(shù)的符號,并控制輸出1或-l。程序如下:
    # include 
         main()
        { int c;/*變量定義*/
          printf("輸入一個整數(shù)");
          scanf(” %d”, &c);
         if(C>=0) printf("1\n");
         else printf("-l\n");
         }
       3.編一個程序,輸入X的值,按下列公式計算并輸出y的值。
       X(X≤l)
        y= {2x-l(l<x<10)
       3X-11(10≤X)
    【解】輸入x,按公式計算y。這可用一個嵌套的if語句分段判斷并計算出y的值。然后輸出y值。程序如下:
     # include<stdio.h>
          main()
        { int x,y;/*變量定義*/
          printf(”輸入一個整數(shù)”);
          scanf(”%d”,&x);
          if( x<=l) y=X;
          else if(x<10)y=2*x-l;
          else y=3*X-11; 
        printf(”y=%d\ n”, y);
        }
         4.編一個程序,輸入三個單精度數(shù),輸出其中最小數(shù)。
    【解】設(shè)最小數(shù)存于變量min中,為求三個數(shù)中的最小數(shù),可分以下多步完成,先預(yù)置min為x,然后分別將其余兩個數(shù)逐一與min比較,當(dāng)它們中的某個值比存于min中的值更小時,就用它們更新min。寫出程序如下:
    # include
       main()
      { float X,y,Z,min;/*變量定義*/ 
        printf("輸入三個單精度浮點(diǎn)數(shù)");
       scanf("%f%f%f", &x,&y,&Z);
       min =x;
       if(min>y) min= y;
       if(min>Z) min=Z;
       printf("浮點(diǎn)數(shù)%f,%f,%f中的最小值是%f\n",X,y,Z,min);
     }
       5.編一個程序,求出所有各位數(shù)字的立方和等于1099的3位數(shù)。
    【解】找出所有各位數(shù)字的立方和等于1l99的3位整數(shù)。 3位整數(shù)是100至999范圍內(nèi)的整數(shù),設(shè)分別用a,b,c存儲3位數(shù)的百位、十位和個位的數(shù)字,程序用三重循環(huán)求出a,b,c的立方和為1099的3位數(shù)a*100+b*10+c。程序如下:
    # include 
       main()
      { int a,b, c;/*變量定義*/ 
       for(a=1; a<=9;a++)
       for(b=0; b<=9; b++) 
       for(c=0;c<=9;c++) 
       if(a*a*a+b*b*b+c*c*c==1099)
        printf("%d\n",(10*a+b)*10+c);
      }
若用一個變量i表示3位數(shù),循環(huán)體將3位數(shù)變量i分拆出它的百位、十位和個位共3個數(shù)字,然后判這三個數(shù)字的立方和是否是1099,若是就輸出該變量的值。程序如下:
     # include 
          main()
         { int i,a,b, c;/*變量定義*/
            for (i=100;i<=999;i++) { 
           a=i/100;
           b=(i0)/10; /*或b=(i/10)%l0*/ 
           c=i;
           if(a*a*a+b*b*b+c*c*c==1099)
           printf("%d\n", i);
         }
         }

上一頁  1 2 3 4 5 下一頁
文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。