奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

計算機二級C語言考前訓練題及答案

時間:2024-10-27 08:53:24 C語言 我要投稿

2017年計算機二級C語言考前訓練題及答案

  計算機二級對于很多考生來說還是比較有難度的,那么怎樣順利通過二級考試呢?這就需要大家平時多練習和找方法了。以下是百分網小編整理的2017年計算機二級C語言考前訓練題及答案,希望對大家有幫助!

  考前訓練題一

  1: 第1題 m個人的成績存放在score數組中,請編寫函數fun,它的功能是:將低于平均分的人作為函數值返回,將低于平均分的分數放在below所指定的函數中。

  答案:

  int fun(int score[],int m,int below[])

  {

  int i,k=0,aver=0;

  for(i=0;i

  aver+=score[i];

  aver/=m;

  for(i=0;i

  if(score[i]

  {

  below[k]=score[i];

  k++;

  }

  return k;

  }

  2: 第2題請編寫函數fun,它的功能是:求出1到100之內能北7或者11整除,但不能同時北7和11整除的所有證書,并將他們放在a所指的數組中,**n返回這些數的個數。

  答案:

  void fun(int *a, int *n)

  {

  int i,j=0;

  for(i=2;i<1000;i++)

  if ((i%7==0 || i==0) && iw!=0)

  a[j++]=i;

  *n=j;

  }

  3: 第3題請編寫函數void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶數的各整數,并按從小到大的順序放在pp所指的數組中,這些除數的個數**形參n返回。

  答案:

  void fun(int x, int pp[ ], int *n)

  {

  int i=1,j=0;k=0,*t=pp;

  for(i=0;i<=x;i++)

  if(i%2!=0)

  {

  t[j]=I;

  j++;

  }

  for(i=0;i

  if(x%t[i]==0)

  {

  pp[k]=t[i];

  k++;

  }

  *n=k;

  }

  4: 第4題請編寫一個函數void fun(char *tt,int pp[]),統計在tt字符中"a"到"z"26各字母各自出現的次數,并依次放在pp所指的數組中。

  答案:

  void fun(char *tt, int pp[])

  {

  int i;

  for (i=0;i<26;i++)

  pp[i]=0;

  while (*tt)

  {

  switch (*tt)

  {

  case ‘a’: pp[0]++;break;

  case ‘b’: pp[1]++;break;

  case ‘c’: pp[2]++;break;

  case ‘d’: pp[3]++;break;

  case ‘e’: pp[4]++;break;

  case ‘f’: pp[5]++;break;

  case ‘g’: pp[6]++;break;

  case ‘h’: pp[7]++;break;

  case ‘i’: pp[8]++;break;

  case ‘j’: pp[9]++;break;

  case ‘k’: pp[10]++;break;

  case ‘l’: pp[11]++;break;

  case ‘m’: pp[12]++;break;

  case ‘n’: pp[12]++;break;

  case ‘o’: pp[14]++;break;

  case ‘p’: pp[15]++;break;

  case ‘q’: pp[16]++;break;

  case ‘r’: pp[17]++;break;

  case ‘s’: pp[18]++;break;

  case ‘t’: pp[19]++;break;

  case ‘u’: pp[20]++;break;

  case ‘v’: pp[21]++;break;

  case ‘w’: pp[22]++;break;

  case ‘x’: pp[23]++;break;

  case ‘y’: pp[24]++;break;

  case ‘z’: pp[25]++;break;

  }

  tt++;

  }

  }

  5: 第5題請編寫一個函數void fun(int m,int k,int xx[]),該函數的功能是:將大于整數m且緊靠m的k各素數存入xx所指的數組中。

  答案:

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

  {

  int g=0,I,j,flag=1;

  for(i=m+1;i

  {

  for(j=0;j

  {

  if(i%j!=0)

  flag=1;

  else

  {

  flag=0;

  break;

  }

  }

  if (flag==1 && j>=i)

  {

  if (k>=0)

  {

  xx[g++]=i;

  k--;

  }

  else

  break;

  }

  }

  }

  6: 第6題請編寫一個函數void fun(char a[],char[],int n),其功能是:刪除以各字符串中指定下標的字符。其中,a指向原字符串,刪除后的字符串存放在b所指的數組中,n中存放指定的下標。

  答案:

  void fun(char a[],char b[], int n)

  {

  int I,j=0;

  for (i=0;i

  if (i!=n)

  {

  b[j]=a[i];

  j++;

  }

  b[j]=‘\0’;

  }

  7: 第7題請編寫一個函數int fun(int *s,int t,int *k),用來求除數組的最大元素在數組中的下標并存放在k所指的儲存單元中。

  答案:

  void fun (int *s, int t, int *k)

  {

  int I, max;

  max=s[0];

  for(i=0;i

  if (s[i]>max)

  {

  max=s[i];

  *k=I;

  }

  }

  8: 第8題編寫函數fun,功能是:根據以下攻勢計算s,計算結果作為函數值返回;n**形參傳入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)

  答案:

  float fun (int n)

  {

  int i;

  float s=1.0, t=1.0;

  for(i=2;i<=n;i++)

  {

  t=t+i;

  s=s+1/t;

  }

  return s;

  }

  9: 第9題編寫一個函數fun,它的功能是:根據以下公式求p的值,結果由函數值帶回。M與n為兩個正整數,且要求m>n。 p=m!/n!(m-n)!

  答案:

  float fun(int m, int n)

  {

  float p,t=1.0;

  int I;

  for (i=1;i<=m;i++)

  t=t*I;

  p=t;

  for(t=1.0,i=1;i<=n;i++)

  t=t*I;

  p=p/t;

  for(t=1.0,i=1;i<=m-n;i++)

  t=t*I;

  p=p/t;

  return p;

  }

  10: 第10題編寫函數fun,它的功能是:利用以下的簡單迭代方法求方程cos(x)-x=0的一個實根。

  迭代步驟如下:(1)取x1初值為0.0; (2)x0=x1,把x1的值賦各x0;

  (3)x1=cos(x0),求出一個新的x1;

  (4)若x0-x1的絕對值小于0.000001,則執行步驟(5),否則執行步驟(2);

  (5)所求x1就是方程cos(x)-x=0的一個實根,作為函數值返回。

  程序將輸出root=0.739085。

  答案:

  float fun()

  {

  float x1=0.0,x0;

  do

  {

  x0=x1;

  x1=cos(x0);

  }

  while(fabs(x0-x1)>1e-6);

  return x1;

  }

  考前訓練題二

  基本輸入輸出及流程控制

  1.

  #include

  main()

  { int a=1,b=3,c=5;

  if (c==a+b)

  printf("yes\n");

  else

  printf("no\n");

  }

  運行結果為:no

  詳見教材p89 選擇結構

  詳見教材p91關系符號

  詳見附錄D p378符號的優先級

  ==表示判斷符號兩邊的值是否相等;=表示將符號右邊的值賦給左邊的變量

  本題考點是選擇結構3種基本形式的第二種

  選擇結構三種一般形式中的“語句”皆為復合語句,復合語句要用{ }括起來,只有當復合語句中只包括一條語句時可以省略{ },此題即如此,因此兩個printf操作沒有加{ }

  若c==a+b成立,則執行printf("yes\n");

  否則(即c==a+b不成立),執行printf("no\n");

  +的優先級高于==,因此先算a+b,值為4, 表達式5==4不成立,因此執行printf("no\n");即輸出字符串no

  2.

  #include

  main()

  { int a=12, b= -34, c=56, min=0;

  min=a;

  if(min>b)

  min=b;

  if(min>c)

  min=c;

  printf("min=%d", min);

  }

  運行結果為: min=-34

  詳見教材p89 選擇結構

  本題考點是選擇結構3種基本形式的第一種

  一共包含了兩個選擇結構(兩個if語句)

  定義變量,并賦值 此時a=12, b= -34, c=56, min=0

  將a中值拷貝,賦給min,覆蓋了min中的0,此時min中的值被更新為12。

  若min>b成立,則執行min=b;

  若min>c成立,則執行min=c;

  輸出min中的值

  12大于-34,第一個if語句的表達式成立,因此執行min=b; 執行后min中的值被更新為-34.

  -34小于56,第二個if語句的表達式不成立,因此不執行min=c;

  最后輸出min中的值,為-34.

  3.

  #include

  main()

  { int x=2,y= -1,z=5;

  if(x  if(y<0)

  z=0;

  else

  z=z+1;

  printf(“%d\n”,z);

  }

  運行結果為:5

  遇到選擇結構,首先要明確條件表達式成立時執行哪些操作。本題中,第一個if語句,其后的復合語句沒有大括號{ },說明復合語句中只包含一條語句,進而省略了{ }。內層的if...else...是選擇結構的第二種基本形式,在結構上視為一條語句。因此內層的if...else...作為第一個if語句的復合語句。

  若表達式x  若y<0,則執行z=0;

  否則(即y>=0),執行z=z+1;

  輸出z

  2>-1,表達式x  輸出z中的值為5

  4.

  #include

  main()

  { float a,b,c,t;

  a=3;

  b=7;

  c=1;

  if(a>b)

  {t=a;a=b;b=t;}

  if(a>c)

  {t=a;a=c;c=t;}

  if(b>c)

  {t=b;b=c;c=t;}

  printf("%5.2f,%5.2f,%5.2f",a,b,c);

  }

  運行結果為:1.00,2.00,7.00

  詳見教材p72數據的輸出形式

  本題包含了3個if語句,每個if語句后的{ }都不可省略,因為每個{ }中都包含了多條語句

  若表達式a>b成立,則執行{t=a;a=b;b=t;}

  若表達式a>c成立,則執行{t=a;a=c;c=t;}

  若表達式b>c成立,則執行{t=b;b=c;c=t;}

  輸出a,b,c中的值,要求輸出的每個數據寬度為5個空格,小數部分保留2位,數據右對齊

  3小于7,因此表達式a>b不成立,因此不執行{t=a;a=b;b=t;}

  3大于1,因此表達式a>c成立,則執行{t=a;a=b;b=t;}。第一句,將a中的3拷貝,粘貼到t中;第二句,將c中的1拷貝,粘貼到a中,覆蓋掉先前的3;第三句。將t中的3拷貝到c中,覆蓋掉c中先前的1. 執行完復合語句后實現了a,c元素的值的互換,a為1,c為3,t為3,。

  7大于c中的3,因此b>c成立,執行則執行{t=b;b=c;c=t;},過程同上,執行后b為3,c為7,t為7

  此時輸出a,b,c中的值為1.00,2.00,7.00

  5.

  #include< stdio .h >

  main ( )

  {floatc=3.0 , d=4.0;

  if ( c>d ) c=5.0;

  else

  if ( c==d ) c=6.0;

  elsec=7.0;

  printf ( “%.1f\n”,c ) ;

  }

  運行結果為:7.0

  此題為if...else...語句的嵌套,第二if...else...作為第一個if...else...語句else部分的復合語句。

  若表達式c>d成立,則執行c=5.0;

  否則(表達式c>d不成立)

  若表達式c==d成立,則執行c=6.0;

  否則,執行c=7.0;

  輸出c中的值

  3.0小于4.0,因此表達式c>d不成立,執行第二個if…else…。

  3.0不等于4.0,因此表達式c==d不成立,執行c=7.0,將7.0賦給c, 覆蓋掉c中的3.0,此時c中的值為7.0

  輸出此時的c中的值

  6.

  #include

  main()

  { int m;

  scanf("%d", &m);

  if (m >= 0)

  { if (m%2 == 0) printf("%d is a positive even\n", m);

  else printf("%d is a positive odd\n", m); }

  else

  { if (m % 2 == 0)printf("%d is a negative even\n", m);

  else printf("%d is a negative odd\n", m); }

  }

  若鍵入-9,則運行結果為: -9 is a negative odd

  7.

  #include

  main()

  { int num=0;

  while(num<=2){ num++;printf("%d\n",num);}

  }

  運行結果為:

  1

  2

  3

  詳見教材p115循環結構

  當循環條件num<=2成立的時候,執行循環體{ num++;printf("%d\n",num);}中的語句。

  循環初值num為0;

  循環條件num<=2成立

  第1次循環:執行num++;即將num中的值加1,執行后num為1;

  執行printf("%d\n",num);在屏幕上輸出num中的值,即輸出1,之后換行

  此時num中的值為1,循環條件num<=2成立

  第2此循環:執行num++;即將num中的值加1,執行后num為2;

  執行printf("%d\n",num);在屏幕上輸出num中的值,即輸出2,之后換行

  此時num中的值為2,循環條件num<=2成立

  第3此循環:執行num++;即將num中的值加1,執行后num為3;

  執行printf("%d\n",num);在屏幕上輸出num中的值,即輸出3,之后換行

  此時num中的值為3,循環條件num<=2不成立,結束循環。

  8.

  #include

  main( )

  { int sum=10,n=1;

  while(n<3) {sum=sum-n;n++; }

  printf(“%d,%d”,n,sum);

  }

  運行結果為:3,7

  當循環條件n<3成立的時候,執行循環體{sum=sum-n;n++; }中的語句。

  循環初值sum為10,n為1;

  循環條件n<3成立

  第1次循環:執行sum=sum-n=10-1=9;

  執行n++,即將n中的值加1,執行后n為2;

  此時n中的值為2,sum中的值為9,循環條件n<3成立,繼續執行循環

  第2次循環:執行sum=sum-n=9-2=7;

  執行n++,即將n中的值加1,執行后n為3;

  輸出此時n,sum中的值,即為3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求輸出的數據彼此間用逗號間隔,因此結果的兩個數據間一定要有逗號

  9.

  #include

  main()

  { int num,c;

  scanf("%d",&num);

  do{c=num%10;printf("%d",c);}while((num/=10)>0);

  printf("\n");

  }

  從鍵盤輸入23,則運行結果為:32

  詳見教材p117循環結構;p60復合的賦值運算符

  do{ }while(表達式);

  先無條件執行循環體,再判斷循環條件。注意while(表達式)后有分號

  定義整型變量num,c;

  為num賦一個整型值;

  執行{c=num%10;printf("%d",c);}直到循環條件(num/=10)>0不成立;

  輸出換行

  已知為num賦值23

  第1次執行循環體

  執行c=num%10=23%10=3;

  執行printf("%d",c);輸出3

  判斷循環條件 num/=10等價于num=num/10; 因此num=23/10=2, 2大于0,因此循環條件(num/=10)>0成立,繼續執行循環體。執行完第1次循環時,num為2,c為3

  第2次執行循環體

  執行c=2%10=2;

  執行printf("%d",c);再輸出2

  判斷循環條件num=2/10=0,0等于0,因此循環條件(num/=10)>0不成立。結束循環

  10

  #include

  main()

  { int s=0,a=5,n;

  scanf("%d",&n);

  do { s+=1;a=a-2; }while(a!=n);

  printf("%d,%d\n",s,a);

  }

  若輸入的值1,運行結果為: 2,1

  詳見教材p117循環結構;p60復合的賦值運算符

  執行{ s+=1;a=a-2; }直到循環條件a!=n不成立;

  已知為n賦值1,s為0,a為5

  第1次執行循環體

  執行s+=1;等價于s=s+1=0+1

  執行a=a-2; a=5-2=3

  判斷循環條件,3不等于1,因此循環條件a!=n成立,繼續執行循環體。

  執行完第1次循環時,s為1,a為3

  第2次執行循環體

  執行s+=1;等價于s=s+1=1+1=2

  執行a=a-2; a=3-2=1

  判斷循環條件,1等于1,因此循環條件a!=n不成立,結束循環。

  執行完第2次循環時,s為2,a為1

  輸出此時s,a中的值,結果為2,1

【計算機二級C語言考前訓練題及答案】相關文章:

2017計算機二級C語言考前熱身訓練題及答案12-05

2017計算機二級考試《C語言》考前沖刺題及答案12-09

2016計算機二級C語言考前沖刺題(含答案)03-28

2017計算機二級C語言提分訓練題及答案12-05

2017計算機二級C++考前沖刺題及答案12-05

2017計算機二級考試C語言考前沖刺題12-04

計算機二級C語言歷年真題及答案05-29

2017計算機二級C語言提分訓練題12-05

2017計算機二級C語言基礎訓練及答案03-16

主站蜘蛛池模板: 民和| 石城县| 凤翔县| 张家港市| 孝感市| 方正县| 西贡区| 南皮县| 陕西省| 大同市| 波密县| 高阳县| 勐海县| 白城市| 夏津县| 浦东新区| 招远市| 乐业县| 临潭县| 金山区| 攀枝花市| 柞水县| 永昌县| 荔浦县| 昔阳县| 沭阳县| 青龙| 台南市| 措美县| 黎城县| 穆棱市| 淄博市| 海阳市| 江山市| 涡阳县| 兖州市| 高安市| 辽中县| 江华| 平果县| 嘉善县|