计算机等级考试二级C语言程序设计专项训练题——程序修改题(一)

[复制链接]
发表于 2022-11-16 05:01:20 | 显示全部楼层 |阅读模式
1、下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
  1. #include <stdio.h>
  2. // ****found****
  3. void proc(long s,long *t)
  4. {
  5.     long sl=10;
  6.     s/=10;
  7.     *t=s%10;
  8. // ****found****
  9.     while (s>0)
  10.     {
  11.         s=s/100;
  12.         *t=s%10*sl+*t;
  13.         sl=sl*10;
  14.     }
  15. }
  16. int main()
  17. {
  18.     long s,t;
  19.     printf("Please enter s:");
  20.     scanf("%ld",&s);
  21.     proc(s,&t);
  22.     printf("The result is:%ld\n",t);
  23.     return 0;
  24. }
复制代码
  1. (1)错误:void proc(long s,long t)
  2. 正确:void proc(long s,long *t)
  3. (2)错误:while (s<0)
  4. 正确:while (s>0)
  5. 【解析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。
  6. 因此“void proc(long s,long t)”应改为“void proc(long s,long *t)”;
  7. 要从低位开始取出长整型变量s中偶数位上的数,每次变量S要除以100,
  8. 然后判断其是否大于0来决定是否要继续,因此“while(s>0)”。
复制代码
参考答案及解析2、给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
[code]#include // ****found**** void proc(double m[]) {     int i;    for (i=0; i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表