问题 问答题

给定程序中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为:7654321时,t中的数为:642。

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

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

[试题源程序]

#include<stdio.h>

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

void fun(long s,long t)

long s1=10;

s/=10;

*t=s%10;

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

while(s<0)

s=s/100;

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

s1=s1*10;

mein()

long s,t;

printf("\nPlease enter s:");

scanf("%1d",&s);

fun(s,&t);

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

答案

参考答案:

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

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

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

正确:while(s>0)

解析:

错误1:在函数fun体中,t是一个指针型变量,由C的基础知识我们可以知道,定义形参时也应定义指针。

错误2:由题目可以知道,此处条件应该s>0,所以这里应改为:while(s>0)。

单项选择题 A型题
单项选择题