问题 填空题

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

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

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

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

 该题中函数功能是取出长整型变量s中偶数位上的数,组成新数。从已给定源程序的main主函数开始入手,“fun(s,&t);”语句调用函数fun来实现题目要求。

(1)第一个标识下的形参t被定义为一个long型变量,而对应的主函数中的实参却是一个地址值。因此,t在函数定义中应该被定义为一个指针变量,即“void fun(long s,long t)”改为“void fun(long s,long *t)”。

(2)第二个标识下的while循环控制表达式“s<0”要求s小于0才进入循环。而s的值总是大于0,因此将“while(s<0)”改为“while(s>0)”。

[考点] 函数定义;逻辑关系。

 

答案

参考答案:(A)void fun(A0ng s,long *t) (B)while(s>0)

解析:

该题中函数功能是取出长整型变量s中偶数位上的数,组成新数。从已给定源程序的main主函数开始入手,“fun(s,&t);”语句调用函数fun来实现题目要求。

(1)第一个标识下的形参t被定义为一个long型变量,而对应的主函数中的实参却是一个地址值。因此,t在函数定义中应该被定义为一个指针变量,即“void fun(long s,long t)”改为“void fun(long s,long *t)”。

(2)第二个标识下的while循环控制表达式“s<0”要求s小于0才进入循环。而s的值总是大于0,因此将“while(s<0)”改为“while(s>0)”。

[考点] 函数定义;逻辑关系。

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