亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言 百分網(wǎng)手機(jī)站

計(jì)算機(jī)二級(jí)C語言上機(jī)編程題講解

時(shí)間:2020-10-03 11:46:16 C語言 我要投稿

計(jì)算機(jī)二級(jí)C語言上機(jī)編程題講解

  相信不少同學(xué)都認(rèn)為計(jì)算機(jī)二級(jí)C語言上機(jī)編程題很難,下面是小編為大家整理的計(jì)算機(jī)二級(jí)C語言上機(jī)編程題講解,歡迎參考~

  1、請(qǐng)編一個(gè)函數(shù)fun,它的功能是:根據(jù)以下公式求π的值(要求滿足精度0.0005,即,某項(xiàng)小于0.0005時(shí)停止迭代):

  程序運(yùn)行后,如果輸入精度0.0005,則程序輸出多少。

  注意:部分源程序存在PROG1.C中,請(qǐng)勿改動(dòng)主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

  試題源程序如下:

  #include

  #include

  double fun(double eps)

  {

  }

  main()

  { double x;

  printf("Input eps:");

  scanf("%lf",&x); printf(" eps=%lf, PI=%lf ",x,fun(x));

  }

  分析:

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

  (2)若稱 為第1累加項(xiàng),則其前的1為第0累加項(xiàng),其后的一項(xiàng)為第2累加項(xiàng),按給定的公式可知,從第1累加項(xiàng)開始,后一項(xiàng)的累加項(xiàng)是前一項(xiàng)的值乘以 。所以當(dāng)前的累加項(xiàng)應(yīng)當(dāng)是:t=t*n/(2.0*n+1.0)。表達(dá)式右邊的t中是前一項(xiàng)的值,表達(dá)式左邊的t為當(dāng)前的每累加累加項(xiàng)。請(qǐng)注意,不要寫成:t*n/(2*n+1)而進(jìn)行整除。

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

  (4)把以上操作放在循環(huán)中。按本題規(guī)定,當(dāng)某項(xiàng)小于eps(0.0005)時(shí)停止迭代,因此若用while循環(huán),可用t>=eps作為控制循環(huán)進(jìn)行的條件:

  while( t>=eps ){ s+=t; n++; t=t*n/(2.0*n+1); }

  (5)注意應(yīng)給所用變量賦適當(dāng)?shù)某踔怠?/p>

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

  注意:部分源程序存在PROG1.C中,請(qǐng)勿改動(dòng)主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

  試題源程序如下:

  #include

  #define M 20

  void fun(int bb[],int *n, int y)

  {

  }

  main()

  { int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;

  printf("The original data is: ");

  for(k=0; k

  fun(aa, &n, y);

  printf("The data after d %d: ",y);

  for(k=0; k

  }

  分析:

  (1)本題的基本算法是查找和刪除。

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

  if(bb[i]!=y)bb[j++]=bb[i];

  (3)因?yàn)橐褎h除了與y值相等的元素,因此,數(shù)組中數(shù)據(jù)的個(gè)數(shù)已經(jīng)改變;所以循環(huán)結(jié)束后,需要重新給n所指變量賦值。退出循環(huán)后,變量j中存放的是刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù),通過語句*n=j;把它賦給n所指變量即可。

  (4)主函數(shù)中輸出aa數(shù)組中原有的數(shù)據(jù),和刪除后的數(shù)據(jù)。考生可以對(duì)照所編函數(shù)是否正確。3.請(qǐng)編寫一個(gè)函數(shù)void fun(char m,int k,int xx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入xx所指的'數(shù)組中。例如,若輸入17和5,則應(yīng)輸出:19,23,29,31, 37。

  注意:部分源程序存在PROG1.C中,請(qǐng)勿改動(dòng)主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

  試題源程序如下:

  #include

  void fun(int m, int k, int xx[])

  {

  }

  main()

  { int m, n, zz[100];

  printf(" Please enter two integers(m & n): ");

  scanf("%d%d",&m,&n);

  fun(m, n, zz);

  for(m=0; m

  printf(" ");

 。

  分析:

  (1)本題的基本算法是求素?cái)?shù)。假設(shè)有整數(shù)i,若i不能被2到i之間的任意一個(gè)數(shù)除盡,則i就是素?cái)?shù);若一旦能被某個(gè)數(shù)除盡就不是素?cái)?shù)。

  (2)以下是求i是否為素?cái)?shù)的基本算法:變量ok用作i是素?cái)?shù)的標(biāo)志,ok為1,則i是素?cái)?shù)。

  ok=1;

  for(p=2; p

  if( i%p==0){ ok=0; break; }

  if(ok)……

  (3)本題要求把大于m的k個(gè)素?cái)?shù)存入xx所指的數(shù)組中。所以,i的值應(yīng)大于m;取大于m的值逐一進(jìn)行判斷,若是素?cái)?shù)就放入xx所指數(shù)組中。把以上語句放入一個(gè)循環(huán)中:

  for( i=m+1,j=0; ? ; i++ )

  { ok=1;

  for(p=2; p<=i/2; p++)

  if( i%p==0 ){ ok=0; break; }

  if (ok) { xx[j]=i;j++; }

  }

  此處,變量i統(tǒng)計(jì)存入數(shù)組中元素的個(gè)數(shù),同時(shí)作為下標(biāo)。

  (4)按本題的要求,外循環(huán)結(jié)束的條件應(yīng)當(dāng)是:j

【計(jì)算機(jī)二級(jí)C語言上機(jī)編程題講解】相關(guān)文章:

計(jì)算機(jī)二級(jí)C語言上機(jī)模擬題10-05

講解C語言編程中的結(jié)構(gòu)體對(duì)齊11-19

計(jì)算機(jī)二級(jí)C++上機(jī)綜合應(yīng)用題11-11

計(jì)算機(jī)二級(jí)考試C++上機(jī)試題選擇題11-16

計(jì)算機(jī)二級(jí)C上機(jī)考試簡單應(yīng)用題11-04

計(jì)算機(jī)二級(jí)C上機(jī)考試綜合應(yīng)用題11-02

計(jì)算機(jī)二級(jí)C語言上機(jī)精選模擬題及答案10-05

2016年計(jì)算機(jī)二級(jí)C語言上機(jī)考試技巧09-28

如何學(xué)好C語言編程11-30