题库 题库

【简答题】

试题三(共15分)阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。
【说明1】函数test fl (int m,int n)对整数m、n进行某种运算后返回一个整数值。
【C函数1】
int test_fl (int m, int n)
{  int k;
    k=m>n?m:n;
    for(;(k%m!=0)||(k%n!=0);k++);
    return k;

【问题1】(5分)
            (1)请写出发生函数调用test_fl(9,6)时,函数的返回值;
            (2)请说明函数test_fl的功能。
【说明2】设在某C系统中为每个字符分配1个字节,为每个指针分配4个字节,sizeof(x)计算为x分配的字节数。函数test_f2()用于测试并输出该C系统为某些数据分配的字节数。
【C函数2】
void test_f2()
{  char str[]="NewWorld";  char *p=str;    char i='\0';
void *ptr=malloc(50);
    printf("%d\t",sizeof(str));        printf("%d\n",sizeof(p));
    printf("%d\t",sizeof(i));          printf("%d\n”,sizeoqptr)),
}
【问题2】(4分)
            请写出函数test_f2()的运行结果。
【说明3】函数test_f3(char s[])的功能是:将给定字符串s中的所有空格字符删除后形成的串保存在字符数组tstr中(串s的内容不变),并返回结果串的首地址。
【C函数3】
char *test_f3 (const char s[])
{  char tstr[50]={'\0'};  unsigned int i,k=0;
    for(i=0;i<strlen(s);i++)
        if(s[i]!= ' ')tstr[k++]=s[i];
    return tstr;

【问题3】(6分)
            函数test_f3()对返回值的处理有缺陷,请指出该缺陷并说明修改方法。

参考答案

    问题1:
(1) 18 
(2) 求m和n的最小公倍数
    问题2:
    9  4
    1  4
    问题3:
    局部数组存放字符串作为函数的返回值是不可取的。应使用 maloc{}动态分配函数来进行分配空间,存储字符串结果,返回其首指针。

相关试题