试题三(共 15分)
阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。
【说明 1】
函数test_f1(int m, int n)对整数 m、n进行某种运算后返回一个整数值。
【C函数 1】
int test_f1(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_f1(9,6)时,函数的返回值;
(2)请说明函数test_f1的功能。
【说明 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 ", sizeof(ptr));
}
【问题 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题:
试题三(共 15 分)
阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。
第2题:
第3题:
第4题:
阅读以下两个说明、c函数和问题,将解答写入答题纸的对应栏内。
【说明1】
函数main()的功能旨在对输入的一个正整数n,计算12+22+32+…+n2,但是对该函数进行测试后没有得到期望的结果。
【c函数】
1.输入5测试上述main函数时,显示结果如下所示。
input an integer:5
result:-582598909
2.将行号为7的代码修改为:prinff(”n=%d\nresuh:%d\n”,n,sum);并再次
输入5测试main函数,显示结果如下所示。
input an interger:5
n=2293632
result:-582598909
阅读以上两个说明、c函数和问题,将解答写入答题纸的对应栏内。
【问题1】
请给出上述main函数中需要修改的代码行号,并给出修改后的整行代码。
【说明2】
函数test_f2{}编译时系统报告有错,修改后得到函数12_B{}。对函数12_B{}
进行编译时顺利通过,在某些C系统中执行时却由于发生异常而不能正确结束。
【c函数2】
【问题2】(1)请指出函数test_f2中不能通过编译的表达式;(2)请指出可能导致函数f2_B运行异常的表达式。
第5题:
第6题: