二级C语言机试2

上传人:cn****1 文档编号:466010771 上传时间:2023-03-08 格式:DOC 页数:3 大小:34.50KB
返回 下载 相关 举报
二级C语言机试2_第1页
第1页 / 共3页
二级C语言机试2_第2页
第2页 / 共3页
二级C语言机试2_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

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

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

2、 x2 , p , q;,%f , %f , &a, &b, &c);clrscr() ;printf(* the result *+*+/n) if(disc =0)x1=U【1】/U; x2=(-b-sqrt(disc)/(2*a);printf(x1=%6else.2f , x2=%6.2f/n,x1, x2);P=U【2 】 q=U【3 】/U/Uprintf(x1=%6.2f+%6.2f i/n printf(x2=%6.2f-%6.2f i/n(分数:30.00 )填空项1:,P,P,q);q);(正确答案:【1】(-b+sqrq(disc)/(2*a)解析:【2】-b/(2*a)

3、【3】二、B改错题/B(sqrt(fabs(disc)/(2*a)总题数:1,分数:30.00)2.下列给定程序中函数fun()岀应该是38;若输入328,则输岀应该是77。请改正程序中的错误,使它能得到正确结果。 改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include stdio.h long fun(long num) /*+*+*+*+*found*/ long k=1 k+=(num%10)*(num%10); num/=10; /*+found*+*+*+*/ long n ; clrscr() ; printf(/Pleasefun(n) ; (分数:3

4、0.00 )的功能是计算正整数 num的各位上的数字之平方和。例如:输入352,则输注意:不要 #includedowhile(num) return(k); main()enter a number: ) ; scanf(%ld , &n) ; printf(/n%ld/n ,填空项 1: (正确答案: (1) 错误: long k=1 ; 正确: long k=0 ;)解析: (2) 错误: while(num) 正确: while(num) ; 解析 错误 1: k 用来存放各位数字的平方和,初值应 为 0。 错误 2: do-while 语句的语法, while() 后加分号。三、 B

5、 编程题 /B( 总题数: 1,分数: 40.00)3. 请编写函数 fun() ,它的功能是求 Fibonacci 数列中小于 t 的最大的一个数,结果由函数返回。其中 Fibonacci 数列 F(n) 的定义为 F(0)=0 ,F(1)=1 F(n)=F(n-1)+F(n-2) 例如: t=1000 时,函数值为 987。 注 意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填 入所编写的若干语句。试题程序:#include #include #include int fun(int t) main() int n; clrscr(

6、) ; n=1000; printf(n=%d , f=%d/n , n, fun(n) ; (分数: 40.00 ) 正确答案: ()解析:int fun(int t) int a=1, b=1, c=0 , i ; /*a 代表第 n-2 项,b 代表第 n-1 项,c 代表第 n 项*/* 如果求得的数。 比指定比较的数小, 则计算下一个 Fibonacci 数, 对 a, b 得新置数 */ do c=a+b; a=b; b=c; while(c t) ; /*如果求得的数c比指定比较的数大时,退出循环 */ c=a ; /*此时数c的前一个 Fibonacci 数为小于指定比较的数的最大的数 */ return c ; 解析根据所给数列定义不难发现,该数 列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c 看成是前两项之和 (即第 n 项),而 a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号