模拟试题

3773考试网计算机等级考试模拟试题正文

2014年3月全国计算机二级C语言上机模拟试题九之2

来源:2exam.com 2013-10-30 19:14:16

解题思路: 

  本题是考察使用链表方法,使用两重while循环语句,对链表的结点数据进行升序排列。 

  第一处:由于外循环变量使用p指针,内循环变量使用q指针,所以q指向必须指向p的next 

  指针,因此应填写:p.next。 

  第二处:判断内循环q指针是否结束,所以应填:q。 

  第三处:外循环控制变量p指向自己的next指针,所以应填:p.next。 

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

  给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母转换为按字母

  序列的后续字母(但Z转换为A, z转换为a),其它字符不变。 

  请改正函数fun中指定部位的错误, 使它能得出正确的结果。 

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

  给定源程序: 

  #include  

  #include  

  void fun (char *s) 

  { 

  while(*s!=’@’) 

  { if(*s>=’A’ & *s<=’Z’ || *s>=’a’ && *s<=’z’) 

  { if(*s==’Z’) *s=’A’; 

  else if(*s==’z’) *s=’a’; 

  else *s += 1; 

  } 

  (*s)++; 

  } 

  } 

  main() 

  { char s[80]; 

  printf("\n Enter a string with length < 80. :\n\n "); gets(s); 

  printf("\n The string : \n\n "); puts(s); 

  fun ( s ); 

  printf ("\n\n The Cords :\n\n "); puts(s); 

  } 

  解题思路: 

  第一处: 使用while循环来判断字符串指针s是否结束,所以应改为:while(*s)。 

  第二处: 取字符串指针s的下一个位置,所以应改为:s++;。 

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

  请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 

  例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动 

  后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。 

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

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

  给定源程序: 

  #include  

  #define N 80 

  void fun(int *w, int p, int n) 

  { 

  } 

  main() 

  { int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; 

  int i,p,n=15; 

  printf("The original data:\n"); 

  for(i=0; i  printf("\n\nEnter p: ");scanf("%d",&p); 

  fun(a,p,n); 

  printf("\nThe data after moving:\n"); 

  for(i=0; i  printf("\n\n"); 

  NONO(); 

  } 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1