函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12时,调用该函数后,c=4251。
注意:部分源程序在文件PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
文件PROG1.C内容如下:
#include<stdio.h>
void fun(int a,int b,long *c)
void main( )
int a,b;
long c;
printf("Input a,b:");
scanf("070 d%d",&a,&b);
fun(a,b,&c);
printf("The result is:%1d\n",c);
参考答案:void fun(int a,int b,long *c)
{
*c=a/10*1000+a%10*10+b/10+h%10*100;
}
解析: 本题考的是数据分离的算法,分离出两位整数的个位和十位,然后按照题目要求进行重新组合。数据的分离通常采用“/”、“%”来实现。a和b是两个两位的正整数,所以a/10、b/10分离出.d、b变量的十位,a%10、b%10分离出a、l,变量的个位,参数c是指针,通过它将组成的新数传回所指的变量,所以注意应该对*c进行赋值。
[归纳总结] 本套试题的程序填空和程序设计题考查的是数据分离的算法。此类题目的处理方法通常有两种。
第一种:在知道整数确切位数的情况下,要求分离出整数的每一位,通常采用“/”和“%”两种运算的结合。
常用程序为:设有整型变量a且已正确赋值一个正整数,则
gw=a%10; /*分离出个位*/
sw=a/10%10;/*分离出十位*/
bw=a/100%10;/*分离出百位*/
第二种:在不知道位数的情况下,通常采用循环,每次分离整数的个位,再通过整除10的运算将个位丢掉,原来的十位则又变成了个位,以此类推进行处理。常用程序段为:
设有整型变量a且已正确赋值。
while(a!=0){
t=a%10; /*分离出整数的个位*/
______; /*横线部分根据程序要求对存放在t中的数据进行处理*/
a=a/10; /*采用整除的方法,将正整数的个位丢掉,高位数据依次向低位移动*/
}