二级C语言机试5.doc

上传人:scccc 文档编号:14011496 上传时间:2022-01-30 格式:DOC 页数:3 大小:35KB
返回 下载 相关 举报
二级C语言机试5.doc_第1页
第1页 / 共3页
二级C语言机试5.doc_第2页
第2页 / 共3页
二级C语言机试5.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《二级C语言机试5.doc》由会员分享,可在线阅读,更多相关《二级C语言机试5.doc(3页珍藏版)》请在三一文库上搜索。

1、二级C语言机试5(总分:100.00,做题时间:90分钟)一、B填空题/B(总题数:1,分数:30.00)1. 请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b 2-4ac)小于0,则要求重新输入 a、b、c的值。例如,当a=1,b=2,c=1时,方程的两个根分别是x仁-1.00,x2=-1.00。注意:部分源程序给岀如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序:#includemath.h#include main()float a ,

2、b, C,disc,X1,x2 ;clrscr() ;doprintf(lnput a ,b, C:);scanf(%f ,%f,%f,&a, &b, ac);disc=b*b-4*a*c ;if(disc 0) printf(disc=%f/n Input again!/n ,disc);while(U 【1】/U);printf(*+* the result *+*/n);x1=U【2】/U;x2=U【3】/U;printf(/nx1=%6.2f/nx2=%6.2f/n,x1/x2);(分数:30.00 )填空项1: (正确答案:【1】disc 0【2】(-b+sqrt(disc)/(2*

3、a)【3】(-b-sqd(disc)/(2*a)解析:解析填空1:题目要求当判别式 disc小于0时,要重新输入a、b、c的值,所以do-while 循环的执行 条件是disc 0。填空2:方程ax2+bx+c=0的一个实数根是:。填空3:方程ax2+bx+c=0的另一个实数根是:丨 L 。二、B改错题/B( 总题数:1,分数:30.00)2. 下列给定程序中,函数fun()的功能是根据整型形参m计算如下公式的值。y=1-1/(2 X2)+1/(3 X3) -1/(4 X4)+ +( -1) (m+1)/(m Xm)例如:m中的值为5,则应输出0.838611。请改正程序中的错误,使它能得到正

4、确结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includedouble 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)main()int n=5 ;clrscr() ;printf(/n The result is %lf/n,fun(n) ;(分数: 30.00 )填空项 1: (正确答案: (1) 错误: int j=1 正确: double j=1.0;)解析:(2) 错误: y+=1

5、/(i*i); 正确: y+=j/(i*i); 解析错误 1:为了做后面的除法运算,j 要定义为实型数,否则除得的结果将为整数。错误 2:题中公式是加减相间的运算,通过来实现。三、B 编程题 /B( 总题数: 1,分数: 40.00)3. 请编一个函数 void fun( int ttMN, int ppN , tt指向一个 M行N列的二维数组,求出二维数组每列中最大元素,并依次放入 pp 所指的一维数组中。二维数组中的数已在主函数中给出。 注意:部分 源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序: #inclu

6、de #include #define M 3 #define N 4 voidfun(int ttMN , int ppN) main() int tM N=68, 32, 54, 12, 14, 24, 88, 58 ,42 , 22, 44, 56 ; int pN , i , j , k; clrscr() ; printf(The riginal data is : /n) ; for(i=0 ; i M; i+) for(j=0 ; j N; j+) printf(%6d , tij); printf(/n) ; fun(t , p) ; printf(/nTheresult is

7、 : /n) ; for(k=0 ; k N; k+) printf(%4d , pk) ; printf(/n) ; (分数: 40.00 ) 正确答案: ()解析: void fun(int ttMN , int ppN) int i , i , max; for(j=0 ; j N; j+) max=tt0j ; /* 假设各列中的第一个元素最大 */ for(i=0 ; i max) /* 如果各列中的其他元素比 最大值大,则将这个更大的元素看作当前该列中最大元素 */ max=ttij ; ppj=max ; /* 将各列的最 大值依次放入 pp 数组中 */ 解析本题中函数的功能是求出二维数组中每列的最大元素。首先,假设 各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进 行比较, 如果遇到更大的, 则把这个更大的元素看做当前该列中最大的元素, 继续与该列中其他元素比较。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1