就业数据资源平台
当前位置:首页 > C语言程序设计
2011年计算机二级C语言十套上机题2

2011年计算机二级C语言十套上机题2


2. 改错题


  下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为4576235时,t中的数为4725。


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


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


  试题程序:


  #include


  #include


  /**********************found***********************/


  int fun(long s,long *t)


  {


  long s1=10;


  *t=s;


  while(s>0)


  {


  /**********************found***********************/


  s=s0;


  *t=s*s1+*t;


  s1=s1*10;


  }


  }


  main()


  {


  long s, t;


  clrscr();


  printf("\nPlease enter s: ");


  scanf("%ld",&s);


  fun(s,&t);


  printf("The result is: %ld\n ",t);


  }


  答案及评析:


  (1)错误:int fun(long s,long *t)


  正确:void fun(long s,long *t)


  (2)错误:s=s0;


  正确:s=s/100;


  【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。


  错误2:此处要注意特殊运算符号"%"--取余和"/"--整除的区别。将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。

就业数据资源平台