二、基本操作题程序填空题
【1】k=2【2】s+=(2*k一1)/sl【3】s
【解析】由题目中所给公式可知,多项武的第一项为1。变量s中存放多项式的和,其初始值为l。因此,循环从第二项开始,因此,【1】处填“k=2”;变量sl中存放各项表达武的值,由公式可知,【2】处填“s+=(2*k-1)/sl”;题目中要求将多项式的和返回到主函数当中,因此,【3】处填“s”。
三、程序改错题
(1)错误:int j=1;正确:double j=1.0;
(2)错误:y+=1/(i*i); 正确:y+=j/(i*i);
【解析】由函数proc()可知,变量j的作用是控制每一项符号的变化,并且作为运算的分子,应改为double型变量。因此,“int j=1;”应改为“double j=1.0;”。变量y中存放多项式的值,多项式中的每一项符号由变量j决定。因此,“y+=1/(i*i);”应改为“y+=j/(i*i);”。
四、程序设计题
char*proc(char(*a)[81],int M)
{
char*max;
int i=0:
max=a[O]:
for(i=0;i if(strlen(max) max=a[i];
return max; //返回最长字符串的地址
}
【解析】本题首先要定义一个字符指针用于保存最长的字符串,并使其初始值指向第一个字符串;再循环遍历字符串数组,通过if语句比较字符串的长度,并把最长的字符串地址赋给字符指针;最后返回最长字符串的地址。
相关推荐: