2017全國計算機二級c考試真題及答案 2017年計算機二級c語言真題

2017全國計算機二級c考試真題及答案 2017年計算機二級c語言真題

日期:2023-03-10 15:55:15    编辑:网络投稿    来源:互联网

2017全國計算機二級C考試真題  【2017全國計算機二級C考試真題】  一、改錯題  函數fun的功能是:將一副撲克牌編號為1,2,3...53,54,以某種特定的方式洗牌,這種方式是將這

2017全國計算機二級C考試真題

  【2017全國計算機二級C考試真題】

  一、改錯題

2017全國計算機二級C考試真題

  函數fun的功能是:將一副撲克牌編號為1,2,3...53,54,以某種特定的方式洗牌,這種方式是將這副牌分成兩半,然后將它們交叉,并始終保持編號為1的牌在最上方,譬如第一次這樣洗牌后的結果為:1,28,2,29,...53,27,54。兩次洗牌后的結果為:1,41,28,15,2,42...53,40,27,14,54。

  程序的功能是:輸出經過n次這樣洗牌后的結果。

  請在程序的下劃線處填入正確的內容,并把下劃線刪除,使程序得出正確的結果。

  注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結構!

  #include

  void fun( int a[55], int n )

  { int i, k ;

  int __[1]__[55];

  for (i=0; i

  { for (k=1; k<= 27; k++)

  { b[ 2*k-1 ] = a[k];

  b[ __[2]___* k ] = a[k+27];

  }

  for (k=1; k<=54; k++)

  a[k]=___(3)___;

  }

  }

  main( )

  { int m, a[55],i;

  for (i=1; i<55; i++) a[i]= i;

  printf("請輸入洗牌次數 : "); scanf("%d", &m);

  fun(a, m);

  for (i=1; i<55; i++) printf("%d,",a[i]);

  printf(" ");

  }

  【參考答案】

  (1)b

  (2)2

  (3)b[k]

  二、改錯題

  給定程序MODI1.C中,函數fun的功能是:判斷輸入的任何一個正整數n,是否等于某個連續正整數序列之和。若是,則輸出所有可能的序列。否則輸出“不能分解”。

  例如:當輸入100時,輸出:100=9+10+11+12+13+14+15+16

  100=18+19+20+21+22

  請改正函數fun中指定部位的錯誤,使它能得出正確的結果。

  注意:不要改動mam函數,不得增行或刪行,也不得更改程序的結構。

  #include

  void fun( int n )

  { int j, b, c, m, flag=0;

  for (b=1; b<=n/2; b++) {

  n = m;

  c = b;

  while (m !=0 && m>=c) {

  m = m - c; c++

  }

  if ( m!=0)

  { printf("%d=", n);

  for (j=b; j

  printf("%d ", j);

  flag=1;

  }

  }

  if(flag==0)

  printf("不能分解 ");

  }

  main()

  { int n;

  printf("請輸入一個整數 : "); scanf("%d", &n);

  fun(n);

  }

  參考答案

  (1) m=n

  (2) m=m-c; c++;

  (3)if(m==0)

  三、編程題

  請編寫函數fun,其功能是:判斷t所指字符串中的'字母是否由連續遞增字母序列組成(字符串長度大于等于2)。例如字符串:uvwxyz滿足要求;而字符串:uvxwyz不滿足要求。

  注意:部分源程序存在PROG1.C中,請勿改動主函數main和其他函數中的任何內容,僅在函數fun指定的部位填入所編寫的若干語句。

  #include

  #include

  void NONO();

  int fun( char *t )

  {

  int i=0;

  for(i=0;t[i+1]!=''; i++)

  if(t[i]+1!=t[i+1])

  break;

  if(t[i+1]!=''){

  return 0;

  }

  return 1;

  }

  main()

  { char s[26];

  printf("請輸入一個字母組成的字符串: ");

  gets(s);

  if( fun(s) ) printf("%s 是由連續字母組成的字符串. ", s );

  else printf("%s 不是由連續字母組成的字符串! ", s );

  NONO();

  }

  void NONO()

  {

  FILE *fp, *wf ;

  int i;

  char s[26], *p;

  fp = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for(i = 0 ; i < 10 ; i++) {

  fgets(s, 26, fp);

  p=strchr(s,' ');

  if(p) *p=0;

  if (fun(s)) fprintf(wf, "%s ", s+2);

  else fprintf(wf, "%s ", strrev(s));

  }

  fclose(fp) ;

  fclose(wf) ;

  }

【2017全國計算機二級C考試真題】相關文章:

計算機等級考試二級C語言真題09-30

計算機二級考試C語言無紙化真題09-26

計算機二級考試C語言無紙化程序真題09-28

全國計算機二級VB考試真題09-13

計算機二級C++選擇真題09-29

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

計算機二級C語言筆試真題精選11-23

計算機二級C++考試強化訓練題201710-06

2017年9月全國計算機二級C++考試強化訓練題10-05