基本信息
文件名称:计算机二级考试部分试题及答案讲解.pdf
文件大小:604.12 KB
总页数:35 页
更新时间:2025-04-01
总字数:约3.82万字
文档摘要

第一套

一、改错题

1.题目要求

下列给定程序中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x—y)+(z+y)/(z—y)的值。其中x和y的值

不相等,z和y的值不相等。

例如,当x的值为9,y的值为11,z的值为15时,函数值为一3.50。

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

注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。

#includestdio.h

#includemath.h

#includestdlib.h

**********found**********

#defineFU(m,n)((m/n))floatfun(floata,floatb,floatc){floatvalue;

value=FU(a+b,a-b)+FU(c+b,c-b);

**********found**********

Return(Value);

}

main()

{floatx,y,z,sum;

printf(Inputxyz:);

scanf(%f%f%f,x,y,z);

printf(x=%f,y=%f,z=%f\n,x,y,z);

if(x==y||y==z){printf(Dataerror!\n);exit(0);}sum=fun(x,y,z);

printf(Theresultis:%5.2f\n,sum);

}

2.算法分析

①#defineFU(m,n)((m/n))错误这样定义FU(m,n)造成语句value=FU(a+b,a-b)+FU(c+b,c-b)执

行为value=(a+b/a-b)+(c+b/c-b),所以应该将语句#defineFU(m,n)((m/n))改为#defineFU(m,n)(m)/(n)

②语句Return(Value);错误C语言中大小写字母有不同的含义,此处希望执行返回value的值

的操作,所以应该改为return(value);

二、填空题

1.题目要求

下列给定程序中,函数fun的功能是:有NXN矩阵,以主对角线为对称线,对称元素相加并将结果

存放在左下三角元素中,右上三角元素置为0。

例如,若N=3,有下列矩阵

123

456

789

计算后结果为

100

650

10149

请在程序的下划线处填入正确的内容并把下划线删除。使程序得出正确的结果。注意:部分源程序在文件

BLANK1.C中。

不得增行或删行,也不得改程序的结构!

#includestdio.h

#defineN4

voidfun(int(*t)______1__)

{inti,j;

for(i=1;iN;i++)

{for(j=0;ji;j++)

{

—2—=t[i][j]+t[j][i];

___3___=0;

}

}

}

main()

{

intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;

printf(\nTheoriginalarray:n);

for(i=0;iN;i++)

{for(j=0;jN;j++)printf(%2d,t[i][j]);

printf(\n);

}

fun(t);

printf(\nTheresultis:\n);