频道栏目
首页 > 资讯 > C语言 > 正文

2014年计算机二级C语言上机模拟试题58

13-11-09        来源:[db:作者]  
收藏   我要投稿
  给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。 

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 

  注意:源程序存放在考生文件夹下的BLANK1.C中。 

  不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include  

  typedef struct 

  { int num; 

  char name[10]; 

  }PERSON; 

  void fun(PERSON ___1___) 

  { 

  ___2___ temp; 

  if(std[0].num>std[1].num) 

  { temp=std[0]; std[0]=std[1]; std[1]=temp; } 

  if(std[0].num>std[2].num) 

  { temp=std[0]; std[0]=std[2]; std[2]=temp; } 

  if(std[1].num>std[2].num) 

  { temp=std[1]; std[1]=std[2]; std[2]=temp; } 

  } 

  main() 

  { PERSON std[ ]={ 5,"Zhanghu",2,"WangLi",6,"LinMin" }; 

  int i; 

  fun(___3___); 

  printf("nThe result is :n"); 

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

  printf("%d,%sn",std[i].num,std[i].name); 

  }

  解题思路: 

  本题是要求对结构体数组中的三个元素按num成员升序排列。 

  第一处:由于在函数体fun中,已经使用了std变量,所以应填:*std。 

  第二处:由于temp是存放交换记录的中间变量,所以应填:PERSON。 

  第三处:函数的调用,所以应填:std。 

  *************************************************** 

  给定程序MODI1.C中函数fun的功能是:将 m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。 

  例如:把3个串:"abc","CD","EF"连接起来,结果是 "abcCDEF"。 

  请改正程序中的错误,使它能得出正确的结果。 

  注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include  

  #include  

  int fun ( char str[][10], int m, char *pt ) 

  { 

  Int k, q, i ; 

  for ( k = 0; k < m; k++ ) 

  { q = strlen ( str [k] ); 

  for (i=0; i  pt[i] = str[k,i] ; 

  pt += q ; 

  pt[0] = 0 ; 

  } 

  } 

  main( ) 

  { int m, h ; 

  char s[10][10], p[120] ; 

  printf( "nPlease enter m:" ) ; 

  scanf("%d", &m) ; gets(s[0]) ; 

  printf( "nPlease enter %d string:n", m ) ; 

  for ( h = 0; h < m; h++ ) gets( s[h]) ; 

  fun(s, m, p) ; 

  printf( "nThe result is : %sn", p) ; 

  }

 解题思路: 

  第一处:保留字int错写成Int。 

  第二处:字符数组的字符串书写格式错误。 

  *************************************************** 

  程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数 

  fun( int a[][N]),函数的功能是:使数组左下三角元素中的值全部置成0 。 

  例如:a 数组中的值为 | 1 9 7 | | 0 9 7 | a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 0 0 8 | | 4 5 6 | | 0 0 0 | 

  注意: 部分源程序存在文件PROG1.C中。 

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 

  给定源程序: 

  #include  

  #include  

  #define N 5 

  int fun ( int a[][N] ) 

  { 

  } 

  main ( ) 

  { int a[N][N], i, j; 

  printf("***** The array *****n"); 

  for ( i =0; i  { for ( j =0; j  { a[i][j] = rand(); printf( "M", a[i][j] ); } 

  printf("n"); 

  } 

  fun ( a ); 

  printf ("THE RESULTn"); 

  for ( i =0; i  { for ( j =0; j  printf("n"); 

  } 

  NONO( ); 

  }

  解题思路: 

  本题是利用两重循环给二维数组左下三角元素中的值全部置成0。 

  参考答案: 

  int fun ( int a[][N] ) 

  { 

  int i, j; 

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

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

  a[i][j] = 0 ; 

  } 

  ※※※※※※※※※※※※※※※※※※※※※※※※※

相关TAG标签
上一篇:2014年计算机二级C语言上机模拟试题57
下一篇:2014年计算机二级C语言上机模拟试题59
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站