《国家计算机二级考试题库.pdf》由会员分享,可在线阅读,更多相关《国家计算机二级考试题库.pdf(110页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。r*r&xx函数 fun 的功能:计算 S=f(-n)+f(-n+l)+,+(0)+f(1)+f(2)+,(n)f(x)函数定义如下:f(x)=(1)错误:f(double x)正确:double f(double x)(2)错误:return s 正确:return s;编写函数fun,功能:计算s,结果作为函数值返回;n 通过形参传入。S=l+1/(1+2)+1/(1+2+3)+-+1/(l+2+3+-+n)float fun(int n)int i,sl=0;float s=0.0;for(i=l;i=n;i+)
2、sl=sl+i;s=s+l.0/sl;return s;2.请补充main函数:计算两个自然数n 和 m(m 1 0000)之间所有数的和(n和 m 从键盘输入)。sum=0 sum+=n Idfun函数的功能是:根据形参m,计算下列公式的值:t=l+l/2+l/3+l/4+-+l/m 错 误:t+=1.0/k;正 确:t+=1.0/I;(2)错 误:return I:正确:return t;编写一个 函 数 void fun(char*tt,int pp),统 计 在 t t 字符串中a到“z26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符 串 abcdefghabcde
3、abc后,程序的输出结果应该是:3 3 3 2 2 1 1 1 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0void fun(char*tt,int pp)(int i;for(i=0;i=a z)pp a+;)3.判断字符ch是否与串str中的某个字符相同,相同什么也不做,不同则插在串的最后。!=(2)strl或*(str+l)(3)s,c函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串 s 输入:AaaaBBbl23C C ccccd,则应输出结果:upper=5,lower=9。错 误:void fun(char*s,int a,i
4、nt b)正确:void fun(char*s,int*a,int*b)(2)错误:a+;正确:(*a)+;错误:b+;正确:(*b)+;编写函数f un,功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串1 2 3 4 1 2 1 3 2,输入字符1,则输出3 oi n t f un(c h a r*ss,c h a r c)(i n t i=0;f o r(;*ss!=0 ;ss+)i f(*ss=c)i+;re turn i;4.补充函数f un,功能是:把A S C I I 码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入
5、,其长度作为参数传入函数f un。例如,输入 a b c d e f ,输出 a c e 。(1)v o i d f un (c h a r s ,i n t n)(2)j=0 (3)s j=0 函数f un 的功能是:计算正整数n um 各位上的数字之积。例如,若输入2 5 2,则输出应该是2 0。若输入2 0 2,则输出应该是0。(1)错误:l o n g k;正确:l o n g k=l;(2)错误:n um =1 0;正 确:n um/=1 0;编写一个函数f un,它的功能是:求出1 到 m(含m)之内能被7 或 1 1 整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传
6、给m的值为5 0,则程序输出:7 1 1 1 4 2 1 2 2 2 8 3 3 3 5 4 2 4 4 4 9v o i d f un(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下列给定的程序中,函数f un的功能是:计算并输出k以内最大的1 0个能被1 3或1 7整除的自然数之和。k的值由主函数传入,若k的值为5 0 0,则函数的值为4 6 2 2。错误:i f(k%1 3=0)|(k%1 7=0)正确:i f(k%1 3=0)|(k%1 7=0)错误:缺少大括号 正确:加请编写函数f un,它的功
7、能是计算:s=(I n (1)+l n(2)+l n(3)+-+l n(m)C语言中用l o g (n)函数求l n(n)od o ub l e f un(i n t m)(i n t i;d o ub l e s=0.0;f o r(i=l;i =m;i+)s=s+l o g(i);re turn sqrt(s);7.补充函数f un,功能是:整除x且是偶数的数,把这些数保存在数组b b中,并按从大到小的顺序输出。例如当x=2 0时,依次输出:2 0 1 0 4 2O(1)i=l (2)k%i=0&i%2=0 (3)j 或 j-l卜列给定程序中,函数f un ()的功能是:根据整型形参m的值
8、,计算如下公式的值:(1)错:f o r(i=2;i m;i+)正:f o r(i=2;i =m;i+)(2)错误:y-=l/(i*i);正:y-=l.O/(i*i);编写函数f un,功能是:求n以内(不包括n)同时能被5 与 1 1 整除的所有自然数之和的平方根s,并作为函数值返回。d o ub l e f un(i n t n)d o ub l e s=0.0;i n t i;f o r(i=0;i n;i+)i f(i%5=0&i%l l=0)s=s+i;s=sqrt(s);re turn s;8.补充函数f un,功能是:计算并输出n(包括n)以内所有能被3 或 7整除的自然数的倒数
9、之和。i =n (2)|(3)1.0 或(d o ub l e)1在主函数中从键盘输入若干个数放入数组中,用 0结束输入并放在最后一个元素中。下列给定程序中,函数f un 的功能是:计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素的值依次为3 9,-4 7,2 1,2,-8,1 5,0,则程序的运行结果为1 9.2 5 0 0 0 0o错误:i n t sum=0.0;正确:d o ub l e sum=0.0;(2)错误:sum =c;正确:sum/=c;请编写函数f un,其功能是:将所有大于1 小于整数m 的非素数存入xx所指数组中,非素数的个数通过k 传回。例如,输入1 7
10、,则应输出4 6 8 9 1 0 1 21 4 1 5 1 6 ov o i d f un(i n t m,i n t*k,i n t xx )(i n t i,j,n=0;f o r(i=4;i m;i+)f o r(j=2;j i;j+)i f(i%j=0)b re a k;i f (j i)xx n+=i;)*k=n;)9.请补充m a i n 函数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组b b 中。当 sc o re N M =8 3.5,8 2,8 6,6 5,6 7,8 0,9 1.5,8 4,9 9,9 5 ,9 0.5,9 5,8 6,9 5,9 7 时,
11、三 个 学 生 的 平 均 分 为76.7,8 9.9,9 2.7。(1)b b i =O (2)b b i +=sc o re i j下列给定程序中,函数f un 的功能是:判断一个整数m是否是素数,若是返回 1,否则返回0 o 在 m a i n 函数中,若 f un()返回1 则输出 Y E S ,若 f un()返回0则输出 N O!。(1)错误:k+正确:k+;(2)错误:i f (m=k)正确:i f (m=k)编写函数f un,它的功能是:根据以下公式求p的值,结果由函数值带回。m与n为两个正数且要求m n。P=m!为n!(m-n)!),例如,m=1 2,n=8 时,运行结果为
12、4 9 5.O O O O O O of l o a t f un (i n t m,i n t n)(i n t i;d o ub l e p=l.0;f o r(i=l;i =m;i+)p=p*i;/*求 m!*/f o r(i=l;i =n;i+)p=p/i;/*求 m!/n!*/f o r(i=l;i =m-n;i+)p=p/i;/*求 m!/(n!(m-n)!)*/re turn p;)1 0.请补充函数f un(c h a r*s),该函数的功能是:把字符串中的内容逆置。例如,字符串中原有的字符串为a b c d e,则调用该函数后,串中的内容为e d c b ao(1)n一或一n
13、 或 n-=l 或 n=nT (2)s i=s N 或*(s+i)=*(s+n)(3)s N =t 或*8+11)=1下列给定程序中,函数 f u n的功能是:按如下递归公式求函数值。例如,当给n 输 入 5时,函数值为18;当给n 输 入 3 时,函数值为14。(1)错误:int f u n(n)正确:int f u n(int n)(2)错误:if (n=l)正确:if(n=l)请编一个函数f loa t f u n(d ou b le h),函数的功能是:对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如,若h值 为 8.324 33,则函数返回8.32;若
14、h值 为 8.3 2 5 3 3,则函数返回 8.33 0f loa t f u n(f loa t h)long t;t=(h*1000+5)/10;r e tu r n(f loa t)t/100;I L 请补充ma in函数,该函数的功能是:输出一个矩阵,要求非周边元素赋值 0,周边元素赋值1。(1)i=0|i=n-l|j=0|j=n-l(2)b b i j =0函 数 f u n的功能是:用递归算法计算斐波拉契级数列中第n 项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,例如,若给n 输 入 7,该项的斐波拉契级数值为13。错 误:s w itc h(g);正
15、确:去掉分号(2)错误:c a s e 1 ;c a s e 2:r e tu r n 1;正确:c a s e 1 :c a s e 2:r e tu r n 1;请编写函数f u n,功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0则函数值为6 1。int f u n(int a M N )(int i,j,s u m=0;f or(i=0;i M;i+)f or(j=0;j =le-6);r e tu r n x l;13.补 充m a i n函数,功能是:从键
16、盘输入3个整数,然后找出最大的数并输出。例如,输入12,4 5,4 3,最大值为4 5。(1)ma x=a (2)ma x=b (3)ma x=c下列给定程序中,函数f u n的功能是:将十进制正整数m转换成进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)o(1)错误:v oid f u n(int m,int k);正确:v oid f u n(int m,int k)(2)错误:a a i=m/k ;正确:a a i=m%k;(3)错误:p ri n t faai);正确:pr intf (%d,a a i-l);假定输入的字符串中只包含字
17、母和*号。请编写函数f u n,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的 内 容为*A*B C*D E F*G*,删 除 后,字符串中的内容则应当是A*B C*D E F*G*ov oid f u n(c h a r *a)(c h a r *p=a;w h ile(*p=*,)p+;f or (;*p!=0;p+,a+)*a=*p;*a=0;14.函 数f u n的功能是:从三个形参a、b、c中找出中间的数,作为函数值返回。例如,当a=3,b=5,c=4时,中间的数为4。(1)a (2)a (3)b下 列 给 定 程 序 中,函数fun的 功 能
18、是:计 算 函 数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中 x 和 y 不相等,z 和 y 不等。例如,当x的值为9,y的值为11,z的值为1 5时,函数值为-3.5 0o(1)错误:#d e f i n e F U(m,n)(m/n)正确:#d e f i n e F U(m,n)(m)/(n)(2)错误:r e t ur n (Val ue);正确:r e t ur n (v al ue);请 编 写 函 数f un,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出“YE S,否 则 返 回0,主 函 数 中 输 出 回 文 是 指 顺
19、 读和倒读都一样的字符串。例如,字符串LE VE L是回文,而字符串1 2 331 2就不是回文。i n t f un(c h ar *s t r)(i n t i,n=0,f g=l;c h ar *p=s t r;w h i l e (*p)n+;p+;)f o r (i=0;i n/2;i+)i f (s t r i-s t r n-l-i);e l s e(f g=0;br e ak;)r e t ur n f g;1 5.函数f un 的功能是:统计长整数n的各位上出现数字1、2、3 的次数,并用外部(全局)变量c l、c 2、c 3返回主函数。(1)n%1 0 (2)br e ak
20、 (3)br e ak函数f un 的功能是:先将在字符串s 中的字符按逆序存放到t 串中,然后把s中的字符按正序连接到t串的后面。例如,当 s中的字符串为A B C D E 时,则 t 中的字符串应为E D C B A A B C D E o(1)错误:t i=s s l,T;正确:;请编一个函数f un (c h ar *s),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为abc d e f g,则调用该函数后,串中的内容为g f e d c ba。v o i d f un(c h ar *s)c h ar c h;i n t i,m,n;m=n=s t r l e n(
21、s)T;w h i l e(i (n+l)/2)c h=s i;s i=s m;s m=c h;i+;m一;)1 6.请补充m a i n函数,该函数的功能是:打印出1 1 0 0 0中满足个位数字的立方等于其本身所有数。本题的结果为:1 6 4 1 2 5 2 1 6 7 2 9(1)i%1 0(2)g*g*g=i下列给定程序中,函数f un的功能是:求三个数的最小公倍数。(1)错误:j=l;正确:j=0;错:w h i l e (t!=0&m!=0&n!=0)正:w h i l e (t!=0|m!=0|n!=0)请编写一个函数f un,它的功能是:将一个数字字符串转换为一个整数。例如,若
22、输入字符串“T2 34”,则函数把它转换为整数值7 2 34。l o n g f un(c h ar *p)(l o n g n=0;i n t f l ag=l;i f (*p=)p+;f l ag=-1;e l s e i f(*p=+)p+;w h i l e(*p!=,0 n=n*1 0+*p-O;p+;r e t ur n n*f l ag;1 7.请补充m ai n函数,该函数的功能是:打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。本题的结果为:1 1 1 2 2 2 3334 4 4 5 5 5 6 6 6 7 7 7 888 999。(1)g=s&s=b
23、或者 g=b&s=b 或者 g=s&g=b(2)g+s*1 0+b*1 0 0下列给定程序中,函数f un的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参av e r所指的存储单元中。例如输入8名学生的成绩:80.5 6 0 7 2 90.5 98 5 1.5 88 6 4则低于平均分的学生人数为4(平均分为7 5.5 6 2 5)。错误:t=s k;正确:t+=s k;(2)错误:*av e r=&av e;正确:*av e r=av e;请编写一个函数v o i d f un (c h ar *s s),其功能是:将字符串s s 中所有下标为奇数
24、位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc 4 E F g,则应输出aB c 4 E Fg ov o i d f un(c h ar *s s)(i n t i,n=0;c h ar *p=s s;w h i l e(*p)(n+;p+;f o r(i=0;i=,a&s s i 0J;i+)if(stri=substrO&stri+l=substrl)j+;return j;)1 9.请补充函数fun,功能是:求一维数组xN的平均值,并对所得结果进行四舍五入(保留两位小数)。例 如,当x1 0=1 5.6,1 9.9,1 6.7,1 5.2,1 8.3,1 2.
25、1,1 5.5,1 1.0,1 0.0,1 6.0,结果为:a vg=15.03 0000o(1)sum+=x i (2)a vg*1000(3)(a vg+5)/I O函数f un 的功能是:删除字符串s 中所有空白字符(包括Ta b 符、回车符及换行符)。输入字符串时用#结束输入。(1)错误:c t=O;正确:c t=O;编写一个函数,从传入的n um 个字符中找出最长的一个字符串,并通过形参指针m a x 传回该串地址(用*作为结束输入的标志)。c h a r*f un(c h a r(*a)8 1,i n t n um,c h a r*m a x)(i n t i=0;m a x=a
26、0;f o r(i=0;i n um;i+)i f (strl e n (m a x)0(2)n%10+0(3)str i =0下列给定程序中,函数f un 的功能是:先从键盘上输入一个3 行、3 列的矩阵的各个元素的值,然后输出主对角线元素之和。错误:sum=l;正确:sum=0;错:sc a n f (%d,a i j );正确:sc a n f (%d,&a i j );编写一个 函 数f un,它的功能是:实现两个字符串的连接(不使用库函数strc a t),即把p 2所指的字符串连接到p l所指的字符串后。例如,分别输入下面两个字符串:F i rstStri n gSe c o n
27、d Stri n g则程序输出:F i rstStri n g Se c o n d Stri n gvo i d f un(c h a r p l ,c h a r p 2 )i n t i,j;f o r(i=0;p l i !=0;i+);f o r(j=0;p 2 j !=0;j+)p l i+=p 2 j ;/p l i =0;2 1.请补充函数f un,该函数的功能是:将字符串t t中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入A re y o u c o m e f ro m Si c h ua n?”,贝输出“a re y o u c o m e f ro m s
28、i c h ua n?”。(1)tt i =Z,(2)tt i +=3 2 (3)tt函数f un的功能是:求出字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NUL L o例如,当字符串中的内容为a b c d a b f a b c d x,t中的内容为a b时,输出结果应是a b c d x o当字符串中的内容为a b c d a b f a b c d x,t中的内容为a b d时,则程序输出未找到的信息“No t f o un d!。错误:a=N u l l;正确:a=NUL L;(2)错误:i f (r=p)r+;p+;
29、正确:i f (*r=*p)r+;p+;请编写函数f un,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按A SCI I码值升序排列。例如,原来的字符串为B d si h a d,则排序后输出为 B a d h i sd oi n t f un(c h a r*s,i n t n um)(c h a r t;i n t i,j;f o r(i=l;i n um-2;i+)f o r(j=i+l;j s j )(t=sL i ;s i =s j ;s j =t;2 2.请补充m a i n函数,功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-
30、3 8 4 7 65 2,结果为:3 8 4 7 65 2。(1)l d,&n (2)n=-n;(3)n函数f un的功能是:将字符串t t中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入A b,c D,则输出“A B,CD”。错误:I I 正确:&(2)错误:tt i +=3 2 正确:tt i -=3 2;请编写函数f un,功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的a g e数组中。要求函数把0至9岁年龄段的人数在d 0中,把10至19岁年龄段的人数放在d l 中,把2 0至2 9岁年龄段的人数放在d 2中,依次类推,把100岁(含100岁)以上
31、年龄的人数都放在d 10中。结果在主函数中输出。v o i d f u n(i n t *a,i n t *b)(i n t i,j;f o r(j=0;j M;j+)b j =O;f o r(i=0;i=100)b 10+;e l s eb a i /10+;23.请补充m ai n 函数功能是:从键盘输入若干字符放到一个字符数组中,当按回车键时结束输入,最后输出这个字符数组中的所有字符。(1)br e ak (2)0 (3)*p+下列给定程序中,函数f u n 的功能是:计算s 所指字符串中含有t 所指字符串的数目,并作为函数值返回。(1)错误:*r=t;正确:r=t;(2)应填:r=t;
32、或 r=&t 0;请编写函数f u n,该函数的功能是:将M行 N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:W W W WS S S SH H H I I则字符串中的内容应是:W S HW S HW S HW S Hov o i d f u n(ch ar (*s)N ,ch ar *b)(i n t i,j,k=0;f o r(i=0;i N;i+)f o r(j=0;j M;j+)b k+=s j i ;b k =0;24.请补充m ai n 函数,功能是求方程ax 2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(d i
33、 s c=b2-4ac)小于0,则要求重新输入a、b、c的值。例如,当a=l,b=2,c=l时,方程的两个根分别是x l=-l.00,x 2=-l.00o(1)d i s c0(2)(-b+s q r t(d i s c)/(2*a)(3)(-b-s q r t(d i s c)/(2*a)函数f u n的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531o错误:t=0;正确:*t=0;(2)错误:i f(d%2=0)正确:i f(d%2!=0)请编写一个函数f u n,功能是:求出一个整型二
34、维数组中最大元素的值,并将此值返回调用函数。f u n (i n t a M )i n t i,j,m ax=a 0 0;f o r(i=0;i 2;i+)f o r(j=0;j M;j+)i f(m ax a i j )m ax=a i j ;r e t u r n m ax;25.请补充m ai n函数,功能是:从键盘输入两个字符串并分别保存在字符数组s t r l和s t r 2中,用字符串s t r 2替换字符串s t r l前面的所有字符。注意:s t r 2的 长 度 不 大 于s t r l,否则需要重新输入。例如,如果输入s t r l=abce d ,s t r 2=f k
35、,则输出 f k ce d。(1)s t r l e n(s t r l)s t r l e n(s t r 2)(2)*p 2(3)s t r l下列给定程序中,函数f u n的功能是:实现两个整数的交换。例如,给a和b分别输入6 0和65,输出为:a=65 b=60(1)错误:v o i d f u n(i n t a,b)正确:v o i d f u n(i n t *a,i n t *b)(2)错误:t=b;b=a;a=t;确:t=*b;*b=*a;*a=t;下列程序定义了的二维数组,并在主函数中自动赋值。请编写函数f u n(i n t a N ),该函数的功能是:使数组左下半三角元
36、素中的值全部置成0。例如a数组中的值为:a=l 9 72 3 84 5 6则返回主程序后a数组中的值应为:0 9 70 0 80 0 0i 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 t d或*s t d (2)P E R S O N (3)s t d下列给定程序中,函 数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。例如,若输入77777,则输出将是32767。(1)错误:n=*p-o 正确:n=*p-O(2)错误:n=n*7+*p
37、-o 正确:n=n*8+*p-0请编写函数f u n,其功能是:计算并输出给定10个数的方差。其中:例 如,给 定 的 10 个 数 为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,则 输 出 为S=l l.730729cd o u bl e f u n(d o u bl e x 10)d o u bl e x l=0.0,s=0.0;int i;for(i=0;i1 0;i+)xl=xl+xi;xl=xl/1 0;for(i=0;i0)正确:if(strcmp(*(pstr+i),*(pstr+j)0)(3)错误:*(pstr+i)=ps
38、tr+j;正确:*(pstr+i)=*(pstr+j);已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入a结构体数组中。请编写函数fun,功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。fun(STU a,STU*s)in t i;*s=aO;fo r(i=0;i s s;whil e(h!=N UL L)/*通过循环找到最高分数*/if(m ax s)m ax=h-s;h=h-n ext;r etur n m ax;2 9.请补充m ain函数,功能是:先以只写方式打开文件o ut2 9.dat,再把字符串str中的字符保存
39、到这个磁盘文件中。(1)“o ut2 9.dat,w (2)fp utc(ch,fp)(3)fcl o se(fp)N个有序整数数列已放在一维数组中,给定下列程序中,函数f u n的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1。(1)错误:vo id fun(in t a,in t m)正确:in t fun(in t a,in t m)(2)错误:el se if(m =am id)正确:el se if(m am id)学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生
40、数据,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是str cm p)oSTRE C fun(STRE C *a,char *b)in t i;STRE C str=o”,T;fo r(i=0;i n ext)正确:whil e(p!=N UL L)(2)错误:p=h-n ext;正确:p=p-n ext;学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。in t fun (STRE C a)in t i,jSTRE C t
41、;for(i=l;iN;i+)/*用冒泡法进行排序,进行N-l次比较*/for(j=0;jN-l;j+)/*在每一次比较中要进行2 1次两两比较*/if(aj.saj+l.s)t=aj;aj=aj+l;aj+l=t;/*按分数的高低排列学生的记录,高分在前*/)31.请补充main函数,该函数的功能是:求n!。例如,7!=5 040o(1)&n(2)i=l 或 i=2(3)f*=i下列给定程序中,函数fun的功能是:求表达式s=aaaa-aa-aa-a(此处aaaa表示n 个 a,a 和 n 的值在1 至 9 之间)的值。例如a=3,n=6,则以上表达式为:s=333333-33333-333
42、3-333-33-3 其值是 296298。a 和 n 是函数 fun 的形参,表达式的值作为函数值传回main函数。(1)错误:long s=0,t=l;正确:long s=0,t=0;(2)错误:for(j=0;j=n;j+)正确:for(j=0;jn;j+)错误:t=t%1 0;正确:请编写函数fun,其功能是计算并输出如下多项式的值:Sn=l+l/l!+l/2!+l/3!+l/4!+-+l/n!例如,若主函数从键盘给n 输入1 5,则输出为S=2.71 8282。注意:n 的值要求大于1 但不大于1 00。double fun(int n)d ou b le t,s n=l.0;i n
43、t i,j;for(i=l;i=n;i+)(t=l.0;for(j=l;j=i;j+)t*=j;s n+=l.0/t;)r e t u r n s n;32.请补允函数fu n,该函数的功能是:计算并输出下列多项式的值。例如,若主函数从键盘给n输 入50后,则输出为S=l.960 784c(1)d ou b le (2)j(3)1.0/t 或(d ou b le)1/t下列给定程序中,函数fu n的功能是:根据整型形参m,计算如下公式的值。例如,若m的值为5,则应输出:1.46361 1 c(1)错误:for (i=2;i m;i+)正确:for(i=2;i=m;i+)(2)错误:y+=l/(
44、i*i);正确:y+=l.0/(i*i);请编写函数fu n,该函数的功能是:计算并输出S=l+(l+20.5)+(1+20.5+30.5)+-+(1+20.5+30.5+n0.5)例如,若主函数从键盘给n输 入20后,则输出为S=534.1 88884。d ou b le fu n(i nt n)(i nt i;d ou b le s=0.0,s l=0.0;for (i=l;i=n;i+)(s l=s l+p ow(i,0.5);s=s+s l;)r e t u r n s;33程序的功能是计算。(1)1 (2)s*i 或 i*s (3)0 (4)s+fu n(k)数列中,第一项为3,后一
45、项都比前一项的值增5。下列给定程序中,函数fu n的功能是:计算前项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如当n的值为20时,该数列为3,8,1 3,1 8,23,28,93,98。符合此条件的累加值应为42,126,366,570,1 0 1 0。(1)错误:i nt i,j,k,s u m;正确:i nt i,j=0,k,s u m;(2)错误:i f(s u m%4=2)正确:i f(s u m%4=2)(3)错误:r e t u r n j;正确:r e t u r n j+;请编写一个函数fu n,功能是:计算
46、并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1 0 0 0。例如,若主函数从键盘给n输入的值为856,则输出m为s u m=763。i nt fu n(i nt n)(i nt s=0,i;for(i=2;i=n-l;i+)/*将n减1累加*/i f(n%i=0)s+=i;r e t u r n s;34.请补充ma i n函数,该函数的功能是:求l+2!+3!+-+N!的和。例如,1+2!+3!+5!+6!的和为 873。(1)&n(2)t*i (3)s+t下列给定程序中,函数f u n的功能是:求S的值。设S=(22/(1*3)*(42/(3*5)*(62/(5*7)
47、*(2k)2/(2kT)*(2k+l)例如,当k为1 0例函数的值应为1.533852o(1)错误:fu n(i nt k)正确:d ou b le fu n(i nt k)(2)错误:r e t u r n s正确:r e t u r n s;请编写函数fu n,功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。例如,若主函数从键盘给n输入2 0后,则输出为s=0.583333。d ou b le fu n(i nt n)(i nt i;d ou b le s u m=0.0;for (i=l;i=n;i+)i f(i%5=0|i%9=0)s u m+=l.0/i;r
48、e t u r n s u m;35.给定程序的功能是:计算并输出下列级数的前N项之和SN,直到S N大于q为止,q的值通过形参传入。例如,若q的值为50.0,则函数值为50.41 6687c(1)=(2)n+或 n+=l 或 n=n+l(3)r e t u r n s 或 r e t u r n(s)下列给定程序中,函数fu n的功能是:给定n个实数,输出平均值,并统计平均 值 以 上(含 平 均 值)的 实 数 个 数。例 如,n=8时,输入1 93,1 99,1 95.673,1 95.757,1 96.0 51,1 96.0 92,1 96.596,1 96.579,1 96.763,
49、所得平均值为1 95.838745,在平均值以上的实数个数应为5。错误:缺 正确:加请编写函数fu n,功能是:求出1到1 0 0 0之内能被7或1 1整除但不能同时被 7 和 1 1 整除的所有整数,并将它们放在a 所指的数组中,通过n 返回这些数的个数。void fun(int*a,int*n)(int i,j=0;for(i=l;i=1 000;i+)if(i%7=0|i%ll=0)&i%77!=0)aj+=i;*n=j;)36.请在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输 出 n 对应的斐波拉契数列。斐波拉契数列是一整数数列,该数列自第三项开始,每数等于前面两数之
50、和,即0,1,1,2,3,5,8,1 3,21,34,5 5,(1)n=0(2)n=l(3)fun(n-l)+fun(n-2)下列给定程序中,函数fun的功能是:根据整型形参n,计算如下公式的值。Al=l,A2=1/(1+A1),A3=l/(1+A2),An=l/(1+A(n-l)例如,若 n=1 0,则应输出0.61 7977o(1)错误:int fun(int n)正确:float fun(int n)(2)错误:for(i=2;in;i+)正确:for(i=2;iy (2)x z (3)y z下列给定程序中,函数fu n的功能是:找出1 0 0 到 n(不大于1 0 0 0)之间三个位上