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

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

13-11-09        来源:[db:作者]  
收藏   我要投稿
  给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制 到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个 字符串复制到形参t所指字符数组中。例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数 组中的字符串应为:defgh。 

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

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

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

  给定源程序: 

  #include  

  #include  

  #define N 80 

  void fun(char *s, int n, char *t) 

  { int len,i,j=0; 

  len=strlen(s); 

  if(n>=len) strcpy(__1__); 

  else { 

  for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; 

  t[j]= __3__ ; 

  } 

  } 

  main() 

  { char s[N],t[N]; int n; 

  printf("Enter a string: ");gets(s); 

  printf( "Enter n:"); scanf("%d",&n); 

  fun(s,n,t); 

  printf("The string t : "); puts(t); 

  }

  解题思路: 

  本题是根据要求来复制字符串。 

  第一处:当给定的长度n大于该字符串s的长度,那么把该字符串直接拷贝到t就可以了,所以应填:t,s。 

  第二处:使用for循环语句,把最右边n个字符依次添加到t中,所以应填:s[i]。 

  第三处:字符串操作结束,需要到t加一个字符串结束符,所以应填:’’。 

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

  给定程序MODI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数, 并作为函数值返回。 

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

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

  给定源程序: 

  #include  

  int fun(int m) 

  { int i, k ; 

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

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

  if (i % k != 0) 

  break ; 

  if (k < i) 

  return(i); 

  } 

  } 

  void main() 

  { 

  int n ; 

  n = fun(20) ; 

  printf("n=%dn", n) ; 

  } 

 解题思路: 

  第一处:判断素数的条件是一个数i除自身或1除外不被任何数k整除的数,如果一个数i被另一个数k取模,模值等于零,那么这个不是素数并退出循环体,所以应改为if(i%k==0)。 

  第二处:如果i不被循环中任一个k值不整除,那么循环结束后k的值应该等于i,所以应改为if(k==i)或if(k>=i)也可以。 

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

  请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从 小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 

  例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。 

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

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

  给定源程序: 

  #include  

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

  { 

  } 

  main( ) 

  { int x, aa[1000], n, i ; 

  printf( "nPlease enter an integer number:n" ) ; scanf("%d", &x) ; 

  fun(x, aa, &n ) ; 

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

  printf("%d ", aa[i]) ; 

  printf("n") ; 

  NONO( ) ; 

  } 

  解题思路: 

  本题是求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 

  参考答案: 

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

  { 

  int i; 

  *n=0; 

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

  if((x % i== 0) && (i % 2)) pp[(*n)++]=i; 

  } 

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

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

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

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