首頁 考試吧論壇 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í)題及解答



    5.若給fun函數(shù)的形參s傳送字符串:"ㄩㄩ 6354abcc"(其中ㄩ表示空格字符),則函數(shù)的返回值是__________。
      # include 
       long fun(char s[])
      { long n;int sign;
       for(; isspace(*s); s++);
       sign=(*s==’-’ )?-1:l;
      if(*s==’+’ ||*s==’-’) s++;
      for(n=0; isdigit(*s); s++) n=10*n+(*s-’0’);
      return sign *n;
     }
       【解】函數(shù)fun的第一個for循環(huán)跳過字符串的前導(dǎo)空白符,接著分析第一個非空白符是否是負(fù)號,若是置變量sign為-1;否則,置變量sign為1。接著的if語句在第一個非空白字符是負(fù)號或正號時,跳過該字符。以后的for循環(huán)將后面的數(shù)字符當(dāng)作十進(jìn)制數(shù)的各位數(shù)字譯出一個長整數(shù)n。遇字符a時,結(jié)束譯數(shù)循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調(diào)用函數(shù)時提供的實參是"ㄩㄩ6354abc",函數(shù)返回值是整數(shù)6354。

    6.下面函數(shù)要求計算兩個整數(shù)X、y之和,并通過形參Z傳回該和值,請?zhí)羁铡?
      void add(int x,int y,________z)
  {_________=x+ y; return;} 
      【解】函數(shù)希望通過形參z傳送結(jié)果,形參z必須是指針類型的,由于返回整型結(jié)果,所以z的說明是int *z。函數(shù)返回前必須先把結(jié)果通過形參z間接引用(寫成* z)傳回。7.以下函數(shù)用來在w數(shù)組中插入x。在n所指向的存儲單元中存放著w數(shù)組中的字符個數(shù)。數(shù)組W中的字符已按從小到大的順序排列,插入后數(shù)組W中的字符仍有序。請?zhí)羁铡?
     void fun(char *w,char x, int *n) 
     { int i, p;
      p=0;
      w[*n]=x;
     whlie( x>w[p] ) p++;
     for(i=* n; i>p;i--) w[i]=_____________;
     w[p] = x;
      ++ *n;
      }
      【解】在用數(shù)組實現(xiàn)的有序序列中插入內(nèi)容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數(shù)。函數(shù)為了簡化尋找插入位置循環(huán)的循環(huán)條件,預(yù)先在序列的最后置人插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應(yīng)填入w[i-l] 。

    8.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)S等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當(dāng)s      my_cmp( char *s, char * t) 
     {while(*s==* t) 
     { if(*s==’\0’) return 0 ;
      ++s;++t;
     }
      return____________;
      }
      【解】兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字將相等情況下循環(huán),直至不相等結(jié)束。相等時,老字符率已到了字符串的結(jié)束標(biāo)記符,則兩字符率相同,函數(shù)退回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在s>t時返回正值,當(dāng)s  
    6.3  程序分析題 
  
    1.閱讀函數(shù),寫出函數(shù)的主要功能:
      ch(int *p1,int *p2) 
     { int p;
       if(*pl>*p2) { p=* pl;*pl=*p2;* p2=p; }
     } 
       【解】函數(shù)辦有兩個指針形參p1和p2,函數(shù)體通過*pl和*p2間接引用它們所指變量。當(dāng)pl所指變量的位大于p2所指變量的值時,交換兩形參所指變量的值。所以函數(shù)的功能當(dāng)形參1所指變量比形參2所指變量的值大時,交換這兩個變量的值。調(diào)用該函數(shù)能保證形參1所指變量的值不大于形參2所指變量的值。

    2.閱讀函數(shù),寫出函數(shù)的主要功能:
    float av(a,n) 
    float a[];
    int n;
    { int i; float s;
     for(i=0,s= 0;i     return s/n; 
    }
      【解】函數(shù)有一個數(shù)組形參a和一個整型形參n。函數(shù)首先用循環(huán)求數(shù)組a的前n個元素和,然后將和除以n。即求數(shù)組元素的平均值。

    3.閱讀下面程序,寫出運算結(jié)果。
   unsigned fun6( unsigned num) 
   { unsigned k=l;
    do { k*= num;num/=10;}
    while(n) ;
    return k;
    }
    main()
    { unsigned n=26;
      printf("%d\n", fun6(n));
     }
    【解】函數(shù)有一個形參num,循環(huán)前變量 k置 1,循環(huán)中,表達(dá)式num是取num的個位,將num的個位值累乘于k中,然后num除以10。循環(huán)直至num為0結(jié)束,這是逐一求出num十進(jìn)制表示的各位數(shù)字,并累乘于變量k的循環(huán)。函數(shù)最后返回k。函數(shù)fun6的功能是求整數(shù)的各位十進(jìn)數(shù)字積。所以程序輸出12。
  
6.4 程序設(shè)計題 
  
1.編一個名為root的函數(shù),求方程ax*x + bx + c=0的b*b-4ac,并作為函數(shù)的返回值。其中的a、b、c作為函數(shù)的形式參數(shù)。
    【解】該函數(shù)應(yīng)設(shè)3個形參,分別表示一元二次方程的三個系數(shù)。函數(shù)按公式求出結(jié)果返回即可:
    double root(double a,double b,double c) 
    {  return b*b+4.0*a*c;
    }

    2.編一個函數(shù),若參數(shù)y為閏年,則返回1;否則返回0。
    【解】由每四年一個閏年,但每100年少一個閏年,每400年又增加一個閏年的約定。記年份為y,則y年是閏年的條件是:
   (y能被4整除,但不能被100整除)或(y能被400整除)
用邏輯表達(dá)式可描述如下:
     (y%4==0 && y0) ||y@0==0
寫成函數(shù)為:
    int isLeap(int y) 
   { return( y% 4==0 && y% 100) || y@0== 0;
   }

    3.編一個無返回值,名為root2的函數(shù),要求如下:
     形式參數(shù): a,b,c單精度實型,root單精度實型數(shù)組名。
     功能:計算ax*x +bx+c=0的兩個實根(設(shè)b*b-4ac> 0)存入數(shù)組root[2]中。
      【解】函數(shù)根據(jù)形參。a,b,c的值,首先計算d=b*b-4*a*c?紤]到實數(shù)運算時的計算誤差,兩個幾乎相等的數(shù)相減有效位數(shù)也幾乎全部丟失的情況,應(yīng)先求出絕對值大的根,然后利用報與系數(shù)之間的關(guān)系,再求絕對值小的根。函數(shù)定義如下:
    void root2( float a,float b,float c, float root[])
    { float re,im,d=b*b-4.0*a*c;/*求判別式*/
      re=-b/(2.0*);
      if(d>=0.0) { /*有兩個實根,先求絕對值大的根*/
      im=(float)sqrt((double)d)/(2.0*a) ;
      root[0] =re+(b<0.0? im:-im);
     root[1]=c/(a*root[0]);
      }
     }

更多軟考資料請訪問:考試吧軟件水平考試欄目

上一頁  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)容,請注明出處。