二级题库答案

上传人:无*** 文档编号:210733599 上传时间:2023-05-18 格式:PDF 页数:141 大小:15.81MB
收藏 版权申诉 举报 下载
二级题库答案_第1页
第1页 / 共141页
二级题库答案_第2页
第2页 / 共141页
二级题库答案_第3页
第3页 / 共141页
资源描述:

《二级题库答案》由会员分享,可在线阅读,更多相关《二级题库答案(141页珍藏版)》请在装配图网上搜索。

1、第一套给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:2,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:19.527,输出为:s=598.949991。注意:部分源程序给包如下。请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。【参考答案】r*r(2)&x(3)x下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+l)+f(0)+f(l)+f(2)+f(n)的值。例如,当 n 为 5 时,函数值应为10.407143 f(x)函数定义如下:f(x)=请改正程序中的错误,

2、使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:f(double x)正确:double f(double x)(2)错误:return s 正确:return s;编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n 通过形参传入。S=1+1/(1 +2)+1/(1+2+3)+.+1/(1+2+3+.+n)例如,若 n 的值为I I 时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】float f

3、un(int n)(inti,sl=0;/*定义整型变量si,表示分母*/float s=0.0;/*定义单精度变量s,表示每一项*/for(i=l;iv=n;i+)sl=sl+i;/*求每一项的分母*/s=s+1.0/sl;/*求多项式的值*/return s;第二套请补充main函数,该函数的功能是:计算两个自然数n 和 m(m100()0)之间所有数的和(n和 m从键盘输入)。例如,当 n=l,m=100 时,sum=5050;当 n=100,m=1000 时,sum=495550。注意:部分源程序给出如下。请勿改动m ain函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入

4、所编写的若干表达式或语句。【参考答案】sum=O(2)sum+=n(3)Id下列给定程序中,fun函数的功能是:根据形参m,计算下列公式的值:t=l+l/2+l/3+l/4+.+1/m例如,若输入5,则应输出2.283333。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:t+=LO/k;正确:t+=1.0/I;错误:return I;正确:return t;请编写一个函数void fun(char*tt,int pp),统计在tt字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符串

5、abcdefghabcdeabc后,程序的输出结果应该是:3 3 3 2 2 11 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】void fun(char*tt,int pp)(int i;for(i=0;i=a&*ttv=z)pp*tt-a+;)第三套给定程序的功能是:判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后。注意:部分源程序给出如下。请勿改动函数main和其他函数中的任何内容,仅在横线上填入

6、所编写的若干表达式或语句。【参考答案】!=str或*(str+l)s,c下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串 s 输入:AaaaBBbl23CCccccd,则应输出结果:upper=5,lower=9。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:void fun(char*s,int a,int b)正 确:void fun(char*s,int*a,int*b)错误:a+;正确:(*a)+;错误:b+;正确:(*b)+;请编写函数fun,它的功能是

7、:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。)【参考答案】int fun(char*ss,char c)(int i=0;for(;*ss!=l0;ss+)if(*ss=c)i+;)第四套请补充函数fun,该函数的功能是:把ASCH码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入函数fun。例如,输入abcdeF,输出ace。注意:部分源程序给出如下。请勿

8、改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(1)void fun(char s,int n)j=0(3)sUl=O下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:l o n g k;正确:l o n g k=l;错误:n u m=1 0;正确:n u m/=1 0;请编写一个函数f u n,它的功能是:求出1到m(含

9、m)之内能被7或1 1整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为5 0,则程序输出:7 1 1 1 4 2 1 2 2 2 8 3 3 3 5 4 2 4 4 4 9注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。【参考答案】v o i d f u n(i n t m,i n t *a,i n t *n)(i n t i,j=0;f o r(i=l;i l 或 ln(2)n-l(3)1下列给定的程序中,函数fun的功能是:计算并输出k 以内最大的10个能被13或 17整除的自然数之和。k

10、 的值由主函数传入,若 k 的值为500,则函数的值为4622。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:if(k%13=0)ll(k%17=0)正确:if(k%13=0)ll(k%17=0)(2)错误:缺少大括号正确:加请编写函数fun,它的功能是计算:s=(ln(1 )+ln(2)+ln(3)+-+ln(m)0.5(根号)在 C 语言中可调用log(n)函数求ln(n)o例如,若 m 的值为20,则 fun函数值为6.506583注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅

11、在函数fun的花括号中填入所编写的若干语句。【参考答案】double fun(int m)int i;double s=0.0;for(i=l;i=m;i+)s=s+log(i);return sqrt(s);/*计算 s=ln(l)+ln(2)+ln(3)+,*+ln(m)*/*对 s 求平方根并返回*/)第七套请补充函数fun,该函数的功能是:整除x 且是偶数的数,把这些数保存在数组b b 中,并按从大到小的顺序输出。例如当x=20时,依次输出:20 1042o注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答

12、案】(l)i=l(2)k%i=0&i%2=0(3)j 或 j-1卜冽给定程序中,函数fun()的功能是:根据整型形参m 的值,计算如卜.公式的值:请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:for(i=2;im;i+)正确:for(i=2;iv=m;i+)错误:y-=l/(i*i);正确:y-=1.0/(i*i);编写函数fun,它的功能是:求n 以内(不包括n)同时能被5 与 11整除的所有自然数之和的平方根 s,并作为函数值返回。例如,n 为 1000时,函数值应为s=96.979379。注意

13、:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】double fun(int n)double s=0.0;int i;for(i=0;in;i+)/*从 0 n 中找到既能被5 整除同时又能被I I 整除的数,并将这些数求和*/if(i%5=0&i%ll=0)s=s+i;s=s q r t(s);/*对s求平方根*/r e t u r n s;)第八套请补充函数f u n,它的功能是:计算并输出n(包括n)以内所有能被3或7整除的自然数的倒数之和。例如,在主函数中从键盘给n输入30后,输出为:s=1.2 2 6 3

14、2 3。注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的横线上填入所编写的若干表达式或语句。【参考答案】i =n (2)1 1 (3)1.0 或(d o u b l e)1在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数f u n的功能是:计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素的值依次为3 9,-4 7,2 1,2,-8,1 5,0,则程序的运行结果为1 9.2 5 0 0 0 0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得

15、更改程序的结构。【参考答案】错误:i n t s u m=0.0;正确:d o u b l e s u m=0.0;错误:s u m=c;正确:s u m/=c;请编写函数f u n,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。例如,输 入1 7,则应输出46 8 9 1 0 1 2 1 4 1 5 1 6。注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。【参考答案】v o i d f u n(i n t m,i n t *k,i n t x x)(i n t i,j,n=O;

16、f o r(i=4;i m;i+)/*找出大于1小于整数m的非素数*/f o r(j=2;j i;j+)i f(i%j=O)b r e a k;i f(j n P=m!/(n!(m-n)!),例如,m=12,n=8 时,运行结果为 495.000000。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】float fun(int m,int n)(int i;double p=1.0;for(i=l;i=m;i+)p=p*i;/*求 m!*/for(i=l;i=n;i+)p=p/i;/*求 m!/n!*/for(i=

17、l;iv=m-n;i+)p=p/i;/*求 m!/(n!(m-n)!)*/return p;)第十套请补充函数fun(char*s),该函数的功能是:把字符串中的内容逆置。例如,字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(1)n 或-n 或 n-=l 或 n=n-l(2)si=sN或*(s+i)=*(s+n)(3)sN=t 或*(s+n)=t下列给定程序中,函数fun的功能是:按如下递归公式求函数值。例如,当给n 输入5 时,函数

18、值为18;当给n 输入3 时,函数值为14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:int fun(n)正确:int fun(int n)错误:if(n=l)正确:if(n=l)请编一个 函 数 float fun(double h),函数的功能是:对变量h 中的值保留两位小数,并对第三位进行四舍五入(规定h 中的值为正数)。例如,若 h 值为8.32433,则函数返回8.32;若 h 值为8.32533,则函数返回8.33。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun

19、的花括号中填入所编写的若干语句。【参考答案】float fun(float h)(long t;t=(h*1000+5)/10;/*单精度数h 乘 以 1000后再加5,相当于对-h 中的第三位小数进行四舍五入,除以10后将其赋给一个长整型数时,把第三位小数后的数全部截去*/return(float)t/100;/*除 以 100,保留2 位小数*/第H 一套请补充main函数,该函数的功能是:输出一个矩阵,要求非周边元素赋值0,周边元素赋值1。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】(1)i

20、=0lli=n-1 llj=Ollj=n-1(2)b b i j=O卜列给定程序中,函数f u n的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,1 3,2 1,例如,若 给n输 入7,该项的斐波拉契级数值为1 3。请改正程序中的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:swit c h(g);正确:去掉分号(2)错误:c a se 1 ;c a se 2:re t u rn 1;正确:c a se 1 :c a se 2:re t u rn 1;请编写函数f

21、u n,函数的功能是:求出二维数组周边元素之利,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为1 3 5 7 92 9 9 9 46 9 9 9 813 5 7 0则函数值为6 1。注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。【参考答案】int f u n(int a M N )(int i,j,su m=0;f or(i=0;i M;i+)f or(j=0;j=1 e-6);r e t u r n x 1;第十三套请补充main函数,该函数的功能是:从键盘输入3 个整数,然后找出最大的数

22、并输出。例如,输 入 12,45,43,最大值为45。注意:部分源程序给出如卜。请勿改动m ain函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】(1)max=a(2)max=b(3)max=c下列给定程序中,函数fun的功能是:将十进制正整数m 转换成进制数,并按位输出 例如,若输入8 和 2,则应输出1000(即十进制数8 转换成二进制表示是1000)。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:void fun(int m,int k);正确:voi

23、d fun(int m,int k)(2)错误:aai=m/k;正确:aai=m%k;(3)错误:printf(%d,aai);正确:printf(%d”,aai-lD;假定输入的字符串中只包含字母利*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是A*BC*DEF*G*。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】void fun(char*a)(char*p=a;while(*p=*)P+

24、;/*指针p 指向字符串第一个字母*/fbr(;*p!=();p+,a+)*a=*p;/*从第个字母开始,其后的字符都放入指针a 所指的字符串中*/*a=0;/*在字符串最后加上结束标记符号第十四套函数fun的功能是:从三个形参a、b、c 中找出中间的数,作为函数值返回。例如,当 a=3,b=5,c=4时,中间的数为4。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(l)a(2)a(3)b下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x

25、 和y 不相等,z 和 y 不等。例如,当 x 的值为9,y的值为ll,z 的值为15时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:#define FU(m,n)(m/n)正确:#define FU(m,n)(m)/(n)错误:retum(Value);正确:return(value);请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出“YES”,否则返回0,主函数中输出“NO”。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串12

26、3312就不是回文。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】int fun(char*str)(int i,n=O,fg=l;char*p=str;while(*p)/*将指针p 置位到字符串末尾,并统计字符数*/n+;P+;)for(i=0;in/2;i+)/*循环比较字符*/if(stri=strn-l-i);/*相同,什么都不作*/else/*不同,直接跳出循环*/fg=O;break;return fg;第 十 五 套-函 数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用外部(全

27、局)变量c l、c2、c3返回主函数。例如,当n=123114350时,结果应该为:cl=3 c2=l c3=2。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(l)n%10(2)break(3)break卜列给定程序中函数fu n的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如,当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDEo请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参

28、考答案】错误:正确:ti=ssl-l-i;请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】void fun(char*s)char ch;int i,m,n;i=0;m=n=strlen(s)-1;while(i(n+l)/2)ch=si;si=sm;sm=ch;i+;m;第十六套一一请补充main函数,该函数的功能是:打印出1 1000中满足个位数字的立方

29、等于其本身所有数。本题的结果为:1 64 125 216 729注意:部分源程序给出如下。请勿改动m ain函数和其他函数中的任何内容,仅在函数main的横线上填入所编写的若干表达式或语句。【参考答案】(1)i%10(2)g*g*g=i下列给定程序中,函 数 fun的功能是:求三个数的最小公倍数。例如,给变量x l、x2、x 3 分别输 入 15、II、2,则输出结果应当是330。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:j=l;正确:j=0;(2)错误:while(t!R&m!=0&n!=0)正确:wh

30、ile(t!=0 II m!=0 II n!=0)请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C 语言提供的将字符串转为整数的函数)。例如,若输入字符串1234”,则函数把它转换为整数值-1234。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】long fun(char*p)long n=0;int flag=l;if(*p=-)/*负数时置 flag 为-1*/p+;flag=-1;else if(*p=+!)/*正数时置 flag 为 1*/P+;while(*p!=O n=n*

31、10+*p-O;/*将字符串转成相应的整数*/P+;return n*flag;)第十七套请 补 充main函数,该函数的功能是:打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位 数。本题的结果为:111 222 333 444 555 666 777 888 999。注意:部分源程序给出如下。请 勿 改 动m ain函数和其他函数中的任何内容,仅 在m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】(1)g=s&s=b 或者 g=b&s=b 或者 g=s&g=b(2)g+s*10+b*100下列给定程序中,函 数fun的功能是:从n个学生的成绩中统计出低于平均分

32、的学生人数,此人数由函数值返回,平 均 分 存 放 在 形 参aver所指的存储单元中。例 如 输 入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为4(平均 分 为75.5625)。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:t=sk;正确:t+=sk;(2)错误:*a v e u&a v e;正确:*aver=ave;请 编 写 一 个 函 数void fun(char*ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,

33、则不转换)。例如,若输入abc4EFg,则 应 输 出aBc4EFg,注意:部分源程序给出如下。请 勿 改 动main函数和其他函数中的任何内容,仅 在 函 数fun的花括号中填入所编写的若干语句。【参考答案】void fun(char*ss)(int i,n=0;char*p=ss;while(*p)(n+;P+;)for(i=0;in;i+)if=a&ssi=z,)&i%2!=0)/*将下标为奇数位置的字母转换成大写*/ssi=ssi-32;ssi=O;第十八套请补充main函数。该函数的功能是:求1 100(不包括100)以内所有素数的平均值。程序运行后的结果为42.40。注意:部分源程

34、序给出如下。请勿改动main函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】(1)j%i0(2)fla g-1 (3)aver/n下列给定程序中,函数fun的功能是:在字符串的最前端加入n 个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:s=p;正确:p=s;(2)应填 p+;或+p;或 p+=l;或 p=p+l;错误:ai=O;正确:ai=K0;或 ai=0编写 个函数,该函数可以统计一个长度

35、为2 的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,则应当输出6。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】int fun(char*str,char*substr)(int i,j=O;for(i=0;stri+l!=,0,;i+)/*如果一个长度为2 的子字符串在主字符串中出现一次,则j+1,如此循环*/if(stri=substrO&stri+l=substrl)j+;return j;/*返回子字符串在主字

36、符串中出现的次数*/第十九套请补充函数fun,该函数的功能是:求一维数组xN的平均值,并对所得结果进行四舍五入(保留两位小数)。例如,当 x10=15.6,19.9,16715.2,18.3,12.1,15.5,11.0,10.0,16.0,结果为:avg=15.O3OOOO。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(1)sum+=xi(2)avg*1000(3)(avg+5)/10下列给定程序中,函数fun的功能是:删除字符串s 中所有空白字符(包括Tab符、回车符及换行符)。输入字符串时用#结束输

37、入。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:皿=0;正确:则=、0;编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】char*fun(char(*a)81,int num,char*max)(int i=0;max=aO;/*找出最长的一个字符串*/for(i=0;inum;i+)if(strlen(max)

38、0(2)n%10+0(3)stri=W下列给定程序中,函 数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。请 改 正 函 数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:sum=l;正确:sum=O;(2)错 误:scanf(%d,ai|j);正 确:scanf(%d,&aij);编 写 个 函 数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即 把p2所指的字符 串 连 接 到p l所指的字符串后。例如,分别输入下面两个字符串:FirstSt

39、ringSecondString则程序输出:FirstStringSecondString注意:部分源程序给出如下。请 勿 改 动main函数和其他函数中的任何内容,仅 在 函 数fun的花括号中填入所编写的若干语句。【参考答案】void fun(char pl,char p2)int i,j;for(i=0;pl“!=、()&+);/*救出的i 为 p l 字符串的总长度,包括结束标记位*/forU=0;p2j!=0;j+)pli+=p2j;/*W p2字符串连在p l 字符串后面*/pl|il=、0;/*在字符串最后加上结束标记符*/第二H 一 套请补充函数fun,该函数的功能是:将字符串

40、t t 中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入Are you come from Sichuan?,则输出are you come from sichuan?o注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(1)tti=Z(2)tti+=32(3)tt下列给定程序中函数fun的功能是:求出字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。例如,当字符串中的内容为abcdabfabcdx,t中的内容为a b 时,输出结

41、果应是abcdx。当字符串中的内容为abcdabfabcdx,t中的内容为abd时,则程序输出未找到的信息Not found!。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:a=Null;正确:a=NULL;(2)错误:if(匚=p)r+;p+;正确:if(*r=*p)r+;p+;请编写函数fun,对长度为7 个字符的字符串,除首、尾字符外,将其余5 个字符按ASCII码值升序排列。例如,原来的字符串为Bdsihad,则排序后输出为Badhisdo注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容

42、,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】int fun(char*s,int num)c h a r t;i n t i,j;f o r(i=1 ;i n um-2;i+)/*下标 值 从1开始用循环依次取得字符串中的字符*/f o r(j=i+1 ;j sUD/*如 果 后 面 字 符 的A S C I I码 值 小于该字符的A S C I I码值*/(t=si;/*则交换这两个字符*/si=sj;s|j l=t;第二十二套请 补 充m a i n函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-3 8 4 7 6 5

43、 2,结果为:3 8 4 7 6 5 2。注意:部分源程序给出如卜。请 勿 改 动m a i n函数和其他函数中的任何内容,仅 在 函 数f un的横线上填入所编写的若干表达式或语句。【参考答案】(1)%l d ,&n n=-n;(3)n下列给定程序中,函 数f un的功能是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入A b,c D ,则输出 A B,C D。请改正程序中的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:1 1正确:&(2)错误:tti+=3 2 正确:tt叶=3 2;请

44、编 写 函 数f un,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放 在 主 函 数 的a g e数组中。要 求 函 数 把0至9岁年龄段的人数在d 0 中,把1 0至1 9岁年龄段 的 人 数 放 在d 中,把20至29岁年龄段的人数放在d 中,依次类推,把1 0 0岁(含1 0 0岁)以上年龄的人数都放在仇1 0 中。结果在主函数中输出。注意:部分源程序给出如下。请 勿 改 动m a i n函数和其他函数中的任何内容,仅 在 函 数f un的花括号中填入所编写的若干语句。【参考答案】void fun(int*a,int*b)int i,j;for(j=0;jM;j

45、+)bj=O;/*数组b 初始化为0*/for(i=0;i=100)b10+;/*如果年龄大于等于100,b10自增1*/elsebai/10+;/*如果年龄小于100,则将其分别统计到bai/10中*/第二十三套请补充m ain函数,该函数的功能是:从键盘输入若干字符放到一个字符数组中,当按回车键时结束输入,最后输出这个字符数组中的所有字符。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】b re a k 、0下列给定程序中,函数fun的功能是:计算s 所指字符串中含有t 所指字符串的数目,并作为函

46、数值返回。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:*r=t;正确:4 t;应填:r=t;或 r=&tO;请编写函数fun,该函数的功能是:将M 行 N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:WW WWSSS SHHH H则字符串中的内容应是:WSHWSHWSHWSH。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】void fun(ch

47、ar(*s)N,char*b)(int i,j,k=O;for(i=0;iN;i+)/*按列的顺序依次放到一个字符串中*/for(j=0;jM;j+)bk+=sUi;bk=O;)第二十四套请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。例如,当a=l,b=2,c=l时,方程的两个根分别是xl=-1.00,x2=-1.00。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。【参考答案】(1)di

48、sc0(2)(-b+sqrt(disc)/(2*a)(3)(-b-sqrt(disc)/(2*a)下列给定程序中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:t=0;正确:*t=0;错误:if(d%2=0)正确:if(d%2!=0)请编写一个 函 数fun,它的功能是:求出 一 个 整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程

49、序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】fun(int aJlMJ)int i,j,max=aOO;for(i=0;i2;i+)for(j=0;jM;j+)if(maxaij)max=ai皿;/*求出二维数组的最大值*/return max;)第二十五套请补充main函数,该函数的功能是:从键盘输入两个字符串并分别保存在字符数组strl和 str2中,用字符串str2替换字符串strl前面的所有字符。注意:str2的长度不大于strl,否则需要重新输入。例如,如果输入 str 1=abced,str2=fk,则输出fkc

50、ed。注意:部分源程序给出如下。请勿改动m ain函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】(1)strlen(strl)strlen(str2)(2)*p2(3)strl下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给 a 和 b 分别输入60和 65,输出为:a=65 b=60请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:void fun(int a,b)正确:void fun(int*a,int*b)(2)错误:t=b;b=a;a

51、=t;正确:t=*b;*b=*a;*a=t;下列程序定义了的二维数组,并在主函数中自动赋值。请编写函数fun(int aHN),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a 数组中的值为:a=l 97238456则返回主程序后a 数组中的值应为:097008000注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。【参考答案】i n t f u n (i n t a|N )(i n t i,j;f o r(i=0;i N;i+)f o r(j=0;j s td 或*s td PERSON s td下列给定

52、程序中,函 数fun的功能是:将个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。例如,若输入7 7 7 7 7,则输出将是3 2 7 6 7 o请改正程序中的错误,使它能得出正确结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:n=*p-o 正确:n=*p-O 错误:n=n*7+*p-o 正确:n=n*8+*p-O 请编写函数f u n,其功能是:计算并输出给定1 0个数的方差。其中:例 如,给 定 的 1 0 个 数 为 9 5.0,8 9.0,7 6.0,6 5.0,8 8.0,7

53、 2.0,8 5.0,8 1.0,9 0.0,5 6.0,贝U 输 出 为S=11.730729 c注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】double fun(double x10)(double xl=0.0,s=0.0;int i;for(i=0;i10;i+)xl=xl+xi;xl=xl/10;/*求 10个数的平均值*/for(i=0;is;while(h!=NULL)/*通过循环找到最高分数*/if(maxs)max=h-s;h=h-next;)return max;第二十八套给定程序的功能是:

54、分别统计字符串中大写字母和小写字母的个数。例如,给字符串ss输入:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lower=9。注意:部分源程序给出如下。请勿改动函数中的其他内容,仅在横线上填入所编写的若干表达式或语句。【参考答案】(1)(*a)+或+(*a)或*a+=l 或*a=*a+1(2)(*b)+或+(*b)或*b+=l 或*b=*b+l(3)upper,lower下列给定的程序中,函数fun的功能是:用选择法对数组中的n 个元素按从小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【

55、参考答案】错误:p=j 正确:p=j;(2)错误:p=j;正确:p=i;N 名学生的成绩已在主函数中放入一个带头节点的链表结构中,h 指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】double fun(STREC*h)(double max=h-s;while(h!=NULL)/*通过循环找到最高分数*/if(maxs)max=h-s;h=h-next;)return max;第二十九套请补充main函数,该函数的功能是:先以只写方式

56、打开文件”。ut29.dat”,再把字符串str中的字符保存到这个磁盘文件中。注意:部分源程序给出如下。请勿改动m ain函数和其他函数中的任何内容,仅 在 m ain函数的横线上填入所编写的若干表达式或语句。【参考答案】(1)out29.dat,w(2)fputc(ch,fp)(3)fclose(fp)N 个有序整数数列已放在一维数组中,给定下列程序中,函 数 fu n 的功能是:利用折半查找算法查找整数m 在数组中的位置。若找到,则返回其下标值;反之,则返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low 和 high(lowvhigh),然后把m 与中间位置(mid)

57、中元素的值进行比较。如果m 的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到lowhigh渣找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:void fun(int a,int m)正确:int fun(int a,int m)(2)错误:else if(m=amid)正确:else if(mamid!)学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函数 fun,它的功能是:函数返回指定学号的学生数据

58、,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是 strcmp)。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】STREC fun(STREC*a,char*b)(int i;STREC str=o,-l);/*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/for(i=0;inext)正确:while(p!=NULL)(2)错误:p=h-next;正确:p=p-next;学生的记录由学号和成绩组成,N 名学生的数据已

59、在主函数中放入结构体数组s 中,请编写函数 fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】i n t f un (S T R E C a )(i n t i,j;S T R E C t;f o r(i=l;i N;i+)/*用冒泡法进行排序,进行N-l次比较*/f o r(j=0;j N-l ;j+)/*在每一次比较中要进行N-1次两两比较*/i f(a j .s a|j+l .s)t=a j ;a j =a U+l j;a l j+1 =t;/*按分数的

60、高低排列学生的记录,高分在前*/第三十一套请补充m a i n函数,该函数的功能是:求n!。例如,7!=5 0 4 0。注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅 在m a i n函数的横线上填入所编写的若干表达式或语句。【参考答案】(l)&n i=l 或 i=2 f*=i下列给定程序中,函数f u n的功能是:求表达式s=a a a a-a a-a a-a(此处a a a a表 示n个a,a和n的值在1至9之间)的值。例如a=3,n=6,则以上表达式为:s=3 3 3 3 3 3-3 3 3 3 3-3 3 3 3-3 3 3-3 3-3其值是2 96 2

61、 98。a和n是函数f u n的形参,表达式的值作为函数值传回m a i n函数。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。【参考答案】错误:l o n g s=O,t=l;正确:l o n g s=0,t=0;(2)错误:f o r (j=O;j v=n;j+)正确:f o r (j=O;j n;j+)错误:t=t%1 0;正确:请编写函数f u n,其功能是计算并输出如下多项式的值:S n=l+1/1 !+l/2!+l/3!+l/4!+.+l/n!例如,若主函数从键盘给n输 入1 5,则输出为S=2.7 1 8 2

62、8 2 注意:n的值要求大于1但不大于1 0 0。部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。【参考答案】d o u b l e f u n(i n t n)(d o u b l e t,s n=1.0;i n t i,j;f o r(i=l;i =n;i+)(t=1.0;f o r(j=l ;j =i;j+)t*=j;s n+=1.0/t;)r e t u r n s n;第三十二套请补允函数f u n,该函数的功能是:计算并输出下列多项式的值。例如,若主函数从键盘给n输入50后,则输出为S=l.96 0 7 8 4

63、 注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的横线上填若干表达式或语句。【参考答案】(1)d o u b l e (2)j (3)1.0/t 或(d o u b l e)1 /t下列给定程序中,函数f u n的功能是:根据整型形参m,计算如下公式的值例如,若m的值为5,则应输出:1.4 6 3 6 1 1。请改正程序中的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:f o r (i=2;i m;i+)正确:f o r(i=2;i =m;i+)(2)错误:y+=l/(

64、i*i);正确:y+=L 0/(i*i);请编写函数f u n,该函数的功能是:计算并输出S=l+(1 +2 0.5)+(l +2 0.5+3 0.5)+.+(1 +2 0.5+3 0.5+.+n 0.5)例如,若主函数从键盘给n输入20后,则输出为S=5 3 4.1 8 8 8 8 4 注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。【参考答案】d o u b l e f u n(i n t n)i n t i;d o u b l e s=0.0,s 1=0.0;f o r(i=l ;i =n;i+)s l=s l

65、+p o w(i,0.5);/*求每一项*/s=s+s l;/*按公式求出s*/)r e t u r n s;)第三十三套程序的功能是计算。注意:部分源程序给出如下。请勿改动m a i n函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。【参考答案】(1)1 s*i 或 i*s (3)0 (4)s+f u n(k)数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数f u n的功能是:计算前项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如当n的值为20时,该数列为3,8,1 3,1 8,2 3,

66、2 8,93,98。符合此条件的累加值应为4 2,1 2 6,3 6 6,5 7 0,1 0 1 0 c请改正程序中的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。【参考答案】(1)错误:i n t i,j,k,s u m;正确:i n t i,j=0,k,s u m;错误:i f(s u m%4=2)正确:i f(s u m%4=2)错误:r e t u r n j;正确:r e t u r n j+;请编写一个函数fun,它的功能是:计算并输出给定整数n 的所有因子(不包括1 与自身)之和。规定n 的值不大于lOOOo例如,若主函数从键盘给n 输入的值为856,则输出m 为 sum=763。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。【参考答案】int fun(int n)(int s=0,i;for(i=2;i=n-I;i+)/*将 n 减 1 累加*/if(n%i=O)s+=i;return s;第三十四套请补充main函数,该函数的功能是:求1+2!+

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!