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

軟考軟件設計師課后練習題:第六章習題及解答

來源:考試吧Exam8.com) 2006-12-11 8:03:22 考試吧:中國教育培訓第一門戶 模擬考場


    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)跳過字符串的前導空白符,接著分析第一個非空白符是否是負號,若是置變量sign為-1;否則,置變量sign為1。接著的if語句在第一個非空白字符是負號或正號時,跳過該字符。以后的for循環(huán)將后面的數(shù)字符當作十進制數(shù)的各位數(shù)字譯出一個長整數(shù)n。遇字符a時,結束譯數(shù)循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調用函數(shù)時提供的實參是"ㄩㄩ6354abc",函數(shù)返回值是整數(shù)6354。

    6.下面函數(shù)要求計算兩個整數(shù)X、y之和,并通過形參Z傳回該和值,請?zhí)羁铡?
      void add(int x,int y,________z)
  {_________=x+ y; return;} 
      【解】函數(shù)希望通過形參z傳送結果,形參z必須是指針類型的,由于返回整型結果,所以z的說明是int *z。函數(shù)返回前必須先把結果通過形參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)的有序序列中插入內容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數(shù)。函數(shù)為了簡化尋找插入位置循環(huán)的循環(huán)條件,預先在序列的最后置人插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應填入w[i-l] 。

    8.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當S等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s      my_cmp( char *s, char * t) 
     {while(*s==* t) 
     { if(*s==’\0’) return 0 ;
      ++s;++t;
     }
      return____________;
      }
      【解】兩字符串大小比較必須從它們的首字符開始,在對應字將相等情況下循環(huán),直至不相等結束。相等時,老字符率已到了字符串的結束標記符,則兩字符率相同,函數(shù)退回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結束。循環(huán)結束時,就以兩個當前字符的差返回。所以在空框處應填入*s-*t,保證在s>t時返回正值,當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間接引用它們所指變量。當pl所指變量的位大于p2所指變量的值時,交換兩形參所指變量的值。所以函數(shù)的功能當形參1所指變量比形參2所指變量的值大時,交換這兩個變量的值。調用該函數(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.閱讀下面程序,寫出運算結果。
   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)中,表達式num是取num的個位,將num的個位值累乘于k中,然后num除以10。循環(huán)直至num為0結束,這是逐一求出num十進制表示的各位數(shù)字,并累乘于變量k的循環(huán)。函數(shù)最后返回k。函數(shù)fun6的功能是求整數(shù)的各位十進數(shù)字積。所以程序輸出12。
  
6.4 程序設計題 
  
1.編一個名為root的函數(shù),求方程ax*x + bx + c=0的b*b-4ac,并作為函數(shù)的返回值。其中的a、b、c作為函數(shù)的形式參數(shù)。
    【解】該函數(shù)應設3個形參,分別表示一元二次方程的三個系數(shù)。函數(shù)按公式求出結果返回即可:
    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整除)
用邏輯表達式可描述如下:
     (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的兩個實根(設b*b-4ac> 0)存入數(shù)組root[2]中。
      【解】函數(shù)根據(jù)形參。a,b,c的值,首先計算d=b*b-4*a*c?紤]到實數(shù)運算時的計算誤差,兩個幾乎相等的數(shù)相減有效位數(shù)也幾乎全部丟失的情況,應先求出絕對值大的根,然后利用報與系數(shù)之間的關系,再求絕對值小的根。函數(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 下一頁
文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網(wǎng)所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網(wǎng)內容,請注明出處。