公司介绍
| 计算机等级考试C语言上机题… | 2009-05-29 |
| 教育学论述题… | 2009-05-28 |
| 教育学简述题… | 2009-05-28 |
| 教育学填空题部分… | 2009-05-28 |
| 教育学试题简答题… | 2009-05-28 |
| ATA证书介绍… | 2009-04-22 |
| 高级办公自动化测试题样题… | 2009-04-19 |
| 高级办公自动化测试题样题… | 2009-04-18 |
知识改变命运
科技创造价值!
计算机等级考试C语言上机题
日期:2009-05-29
1.填空题
请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b2
例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
float a,b,c, disc,x1,x2;
system("CLS");
do
{
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("disc=%f\n Input again!
\n",disc);
}while(【1】);
printf("*******the result*******\n");
x1=【2】;
x2=【3】;
printf("\nx1=%
}
【1】disc<0
【2】(-b+sqrt(disc))/(2*a)
【3】(-b-sqrt(disc))/(2*a)
2. 改错题
下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。
y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)
例如:m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
double fun(int m)
{ double y=1.0;
/**********************found***********************/
int j=1;
int i;
for(i=2; i<=m; i++)
{
j=-1*j;
/**********************found***********************/
y+=1/(i * i);
}
return(y);
}
void main()
{
int n=5;
system("CLS");
printf("\nThe result is %lf\n" ,fun(n));
}
(1)错误:int j=1;
正确:double j=1.0;
(2)错误:y+=1/(i * i);
正确:y+=j/(i * i);
3. 编程题
请编一个函数void fun(int tt[M][N], int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#define M 3
#define N 4
void fun(int tt[M][N],int pp[N])
{
}
void main()
{
int t[M][N]={{68, 32, 54, 12},{14, 24, 88, 58},{42, 22, 44, 56}};
int p[N],i,j,k;
system("CLS");
printf("The riginal data is:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nThe result is:\n");
for(k=0;k<N;k++)
printf("%4d",p[k]);
printf("\n");
}
void fun(int tt[M][N],int pp[N])
{
int i,j,max;
for(j=0;j<N;j++)
{
max=tt[0][j];
/*假设各列中的第一个元素最大*/
for(i=0;i<M;i++)
if(tt[i][j]>max)
/*如果各列中的其他元素比最大值
还大,则将更大的元素看做当前该列中最
大的元素*/
max=tt[i][j];
pp[j]=max;
/*将各列的最大值依次放入pp数组中*/
}
}