C语言程序改错题汇总doc下载,计算机等级考试二级C语言程序改错题(一)

这篇博客讨论了一个C++程序,该程序旨在从长整型变量中提取偶数位数字并存储到另一个变量中。程序存在两个错误:函数声明的参数类型不匹配和循环条件错误。修正后的程序使用指针正确地处理了长整型变量,并通过调整循环条件确保了偶数位数字的正确提取。
摘要由CSDN通过智能技术生成

一、

下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。

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

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

试题程序:

#include

// ****found****

void proc(long s,long *t)

{

long sl=10;

s/=10;

*t=s%10;

// ****found****

while (s>0)

{

s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

int main()

{

long s,t;

printf("Please enter s:");

scanf("%ld",&s);

proc(s,&t);

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

return 0;

}

参考答案:

(1)错误:void proc(long s,long t)

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

(2)错误:while (s<0)

正确:while (s>0)

【解析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。因此“void proc(long s,long t)”应改为“void proc(long s,long *t)”;要从低位开始取出长整型变量s 中偶数位上的数,每次变量S要除以100,然后判断其是否大于0来决定是否要继续,因此“while(s>0)”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值