計算機二級C語言上機編程題詳細分析_第1頁
計算機二級C語言上機編程題詳細分析_第2頁
計算機二級C語言上機編程題詳細分析_第3頁
計算機二級C語言上機編程題詳細分析_第4頁
計算機二級C語言上機編程題詳細分析_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——計算機二級C語言上機編程題詳細分析計算機二級C語言上機編程題細致分析

相信不少同學都認為計算機二級C語言上機編程題很難,所以今天我為大家?guī)碛嬎銠C二級C語言上機編程題細致分析,夢想各位考生考出夢想勞績。

1、請編一個函數(shù)fun,它的功能是:根據(jù)以下公式求的值要求得志精度0.0005,即,某項小于0.0005時中斷迭代:

程序運行后,假設輸入精度0.0005,那么程序輸出多少。

留神:片面源程序存在PROG1.C中,請勿改動主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

試題源程序如下:

#include

#include

doublefundoubleeps

main

doublex;

printfInputeps:;

scanf%lf,x;printf\neps=%lf,PI=%lf\n,x,funx;

分析:

1此題所用根本算法應為累加。假設累加值放在變量s中,累加項放在變量t中,累加操作由語句s=s+t;來實現(xiàn)。

2若稱為第1累加項,那么其前的1為第0累加項,其后的一項為第2累加項,按給定的公式可知,從第1累加項開頭,后一項的累加項是前一項的值乘以。所以當前的累加項應當是:t=t*n/2.0*n+1.0。表達式右邊的t中是前一項的值,表達式左邊的t為當前的每累加累加項。請留神,不要寫成:t*n/2*n+1而舉行整除。

3若第0累加項的1作為s的初值,語句:s=s+t;執(zhí)行n次,就把第1到第n項累加到了s中。每舉行一次累加,n值增1。

4把以上操作放在循環(huán)中。按此題規(guī)定,當某項小于eps0.0005時中斷迭代,因此若用while循環(huán),可用t=eps作為操縱循環(huán)舉行的條件:

whilet=epss+=t;n++;t=t*n/2.0*n+1;

5留神應給所用變量賦適當?shù)某踔怠?/p>

6退出循環(huán)后,函數(shù)的返回值應是:2*s。2、請編一個函數(shù)fun,其中n所指存儲單元中存放了數(shù)組中元素的個數(shù)。函數(shù)的功能是:刪除全體值為y的元素。已在主函數(shù)中給數(shù)組元素賦值,y的值由主函數(shù)通過鍵盤讀入。

留神:片面源程序存在PROG1.C中,請勿改動主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

試題源程序如下:

#include

#defineM20

voidfunintbb[],int*n,inty

main

intaa[M]=1,2,3,3,2,1,1,2,3,4,5,4,3,2,1,n=15,y,k;

printfTheoriginaldatais:\n;

fork=0;k

funaa,n,y;

printfThedataafterdeleted%d:\n,y;

fork=0;k

分析:

1此題的根本算法是查找和刪除。

2若循環(huán)操縱變量是i,通過for循環(huán)逐個檢查元素中的值,把數(shù)組元素中不等于y的值從頭開頭重新放入bb所指的數(shù)組中。用i作為下標,逐個引用數(shù)組元素;用i作為下標,把不等于y的元素中的.值逐一重新放入bb所指的數(shù)組中。這一操作可用以下語句來實現(xiàn):

ifbb[i]!=ybb[j++]=bb[i];

3由于已刪除了與y值相等的元素,因此,數(shù)組中數(shù)據(jù)的個數(shù)已經(jīng)變更;所以循環(huán)終止后,需要重新給n所指變量賦值。退出循環(huán)后,變量j中存放的是刪除后數(shù)組中數(shù)據(jù)的個數(shù),通過語句*n=j;把它賦給n所指變量即可。

4主函數(shù)中輸出aa數(shù)組中原有的數(shù)據(jù),和刪除后的數(shù)據(jù)。考生可以對照所編函數(shù)是否正確。3.請編寫一個函數(shù)voidfuncharm,intk,intxx[],該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入xx所指的數(shù)組中。例如,若輸入17和5,那么應輸出:19,23,29,31,37。

留神:片面源程序存在PROG1.C中,請勿改動主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

試題源程序如下:

#include

voidfunintm,intk,intxx[]

main

intm,n,zz[100];

printf\nPleaseentertwointegersmn:;

scanf%d%d,m,n;

funm,n,zz;

form=0;m

printf\n\n;

分析:

1此題的根本算法是求素數(shù)。假設有整數(shù)i,若i不能被2到i之間的任意一個數(shù)除盡,那么i就是素數(shù);若一旦能被某個數(shù)除盡就不是素數(shù)。

2以下是求i是否為素數(shù)的根本算法:變量ok用作i是素數(shù)的標志,ok為1,那么i是素數(shù)。

ok=1;

forp=2;p

ifi%p==0ok=0;break;

ifok

3此題要求把大于m的k個素數(shù)存入xx所指的數(shù)組中。所以,i的值應大于m;取大于m的值逐一舉行判斷,若是素數(shù)就放入xx所指數(shù)組中。把以上語句放入一個循環(huán)中:

fori=m+1,j=0;?;i++

ok=1;

forp=2;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論