《计算机二级C语言操作题高频考卷(3).docx》由会员分享,可在线阅读,更多相关《计算机二级C语言操作题高频考卷(3).docx(5页珍藏版)》请在第一文库网上搜索。
1、一、程序填空题1填空题给定程序中,函数tim的作用是:不断从终端读入整数,由变量a统计大于。的个数,用变量c来统计小于O的个数,当输入O时结束输入,并通过形参pa和Pb把统计的数据传回主函数进行输出。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。B1ANK1.C存放在B1NK1.C中。不得增行或删行,也不得更改程序的结构!试题程序:Winc1uderfdivoidfun(intpx,inty)Ifound/mt1U;canf(-%d0.&k);foundwhi1e2.if(k0)a-H-;if(kO)b;/found/QI:i*px=a;pyb;Imain()nti.y
2、;fun(&x.&y);pri1f(x=%dy=%dn,*,x,y):I参考解析:【参考答案】(1)a=0,b=0,k(k1.0)(3)scanf(“d”,&k)【解题思路】填空1:下面的SCanf函数用到变量k,需要提前定义,在WhiIe循环中使用了临时存放正、负数个数的变量a,b,因此也要提前定义。填空2:根据题意,输入O时结束程序,因此当k!=0时进入循环记录正负数的个数。填空3:需要不断从终端输入整数,因此在循环体内添加输入操作。二、程序修改题2简答题在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中所有值为正数
3、的平均值(不包括0)o例如,数组中元素的值依次为:39、-47、21、2、-8、15、0,则程序的运行结果为19请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:I!inc1ude2*inc1ude3doub1efun(intx1)K(5found/6 Intsum=0.0;7 intc0,i0;8 whi1e(xi!=0)if(xi0)Ksumxi;/found/sum-c;returnsum;Imain()(int1000;inti-0;rintf(*nP1easeentersomedata(endwith0):);do(
4、scanf(%d,&xi);whi1e(xi+-0);printf(-%1fn,fun(x);参考解析:【参考答案】(1)doub1eum=0.0;(2)sum/=c;【解题思路】(1)变量定义错误,变量SU1n存放所有数据的和,应定义为doub1e型。(2)C语言中的除法运算符是。三.程序设计题3简答题编写函数fun,其功能是:根据以下公式计算s,并将计算结果作为函数值返回,n通过形参传人。C.I、=I.I-X1*21+2+3I2+3*n例如,若n的值为11时,函数的值为1o注意:部分源程序给出如下。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
5、。试题程序:*inc1ude*inc1ude*inc1udef1oatfun(intn)inc1udevoidmain()(intn;f1oats;system(,C1S);printf(*,nP1easeenterN:);scanf(h%d,&n);s-fun(n)iprintf(Theresu1tis:%f【参考答案】If1oatfun(intn)2 13 intitsi0;4 f1oats=0.0;5 for(i-1;ini*)S(7 si-si+i;Z求每一项的棺分号*/8 s=s+1.0s1;/*求多项式1.的值*/9源returns;【解题思路】此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。本题中表达式的规律是1+2+n的倒数之和,那么可以通过for循环语句来实现第1项到第n项的变化。其实就是累加算法,方法是先根据题目要求定义变量,注意该变量的数据类型,然后对其进行初始化操作,因为该变量的作用是累加器,所以初始值应为0(或0.0,根据变量数据类型来确定),再通过for循环语句来完成累加过程。本题中S1用来表示每一项的分母,每一项的分母都是由前一项分母加项数。注意,由于S1定义成一个整型,所以在s=s+1.0s1语句中不能把1.0写成1。