c语言国二考试编程题答案

上传人:新** 文档编号:512008391 上传时间:2023-02-14 格式:DOC 页数:65 大小:311.51KB
返回 下载 相关 举报
c语言国二考试编程题答案_第1页
第1页 / 共65页
c语言国二考试编程题答案_第2页
第2页 / 共65页
c语言国二考试编程题答案_第3页
第3页 / 共65页
c语言国二考试编程题答案_第4页
第4页 / 共65页
c语言国二考试编程题答案_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《c语言国二考试编程题答案》由会员分享,可在线阅读,更多相关《c语言国二考试编程题答案(65页珍藏版)》请在金锄头文库上搜索。

1、1m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。第一个for循环用来计算score数组中分数的总和,然后用aver/=m求出平均值,第二个循环用来找出小于平均分的元素,并放到数组below中,这里要注意j的递增方式。#include #include #include int fun(int score,int m,int below) i

2、nt i,j=0,aver=0; for(i=0;im;i+) aver+=scorei; aver/=m; for(i=0;im;i+) if(scoreiaver) belowj+=scorei; return j;main( ) int i,n,below9; int score9=10,20,30,40,50,60,70,80,90; n=fun(score,9,below); printf(nbelow the average score are :); for(i=0;in;i+) printf(%4d,belowi);2请编写函数fun,它的功能是:求出1到1000之内能被7或1

3、1整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。该题关键就是如何表示能被7或11整除,但不能同时被7和11整除。用(i%7=0) | (i%11=0)来表示能被7或11整除,用 !(i%7=0) & (i%11=0)来表示不能同时被7和11整除。#include #include void fun(int *a,int *n) int i,m=0;for(i=1;i1000;i+)if(i%7=0) | (i%11=0) & !(i%7=0) & (i%11=0) am=i;m+=1;*n=m; main( ) int aa1000,n,k;clr

4、scr( );fun(aa,&n);for(k=0;kn;k+)if(k+1)%10=0) printf(n);else printf(%d,aak);3请编写函数void fun(int x,int pp,int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。由于要求的数不能是偶数故编程时从1开始循环而步长为2这样正好保正i永远的奇数。这里也要注意存放结果的数组pp的下标变化方式。#include #include void fun(int x,in

5、t pp,int *n) int i,j=0; for( i=1;i=x;i=i+2) if(x%i=0) ppj+=i; *n=j; main( ) int x,aa1000,n,i; printf(n please enter an integer number:n); scanf(%d,&x); fun(x,aa,&n); for(i=0;in;i+) printf(%d ,aai);4请编写一个函数void fun(char *tt,int pp),统计在字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果

6、应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0本题采用的是字母的ASCII码值与数组pp下标的对应转换关系分别求出对应字母的个数。第一个for是给pp赋初值0,第二个for用于控制在字符串内从头到尾移动。由于字母a的ASCII码值为97而它的个数要放在pp0中,而a-97的值正好为0。#include #include void fun(char *tt,int pp) int i; for(i=0;i26;i+) ppi=0; for(;*tt;tt+) if(*tt=a) pp*tt-97+;main( ) char aa10

7、00; int bb26,k; clrscr( ); printf(nPlease enter a char string:); scanf(%s,aa); fun(aa,bb); for(k=0;k26;k+) printf(%d,bbk); printf(n); 5请编写一个函数void fun(int m,int k,int xx),该函数的功能是:将大于整数m且紧靠m 的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。本题中的for循环用来判断一个数是否为素数,由于个数只能是k个所以用dowhile循环来控制。#include #inclu

8、de void fun(int m,int k,int xx) int i,j=0,p=m+1; do for( i=2;i=p) xxj+=p; p+; while(jk); main( ) int m,n,zz1000; printf(n please enter two integers:); scanf(%d%d,&m,&n); fun( m,n,zz); for(m=0;mn;m+) printf(%d ,zzm);6请编写一个函数void fun(char a,char b,int n),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数

9、组中,n中存放指定的下标。例如,输入一个字符串World,然后输入3,则调用该函数后的结果为Word。#include #include #define LEN 20void fun (char a,char b ,int n) int i,k=0; for(i=0;ai!=0;i+) if(i!=n) bk+=ai; bk=0;main( ) FILE *wf ; char strlLEN,str2LEN; int n; printf (Enter the string:n) ; gets(strl); printf (Enter the position deleted:); scanf

10、(%d,&n); fun(strl,str2,n); printf (The new string is:%s n,str2); wf=fopen(out.dat,w); fun(world,str2,3); fprintf(wf,%s,str2); fclose(wf);7请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为:6,980。#include #include int fun(int *s

11、,int t,int *k) int i,max; max=s0; for( i=0;imax) max=si;*k=i; main( ) int a10=876,675,896,101,301, 401,980,431,451,777,k; fun(a,10,&k); printf(%d,%dn,k,ak);8编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+.+1/(1+2+3+4+.+n),例如:若n的值为11时,函数的值为1.833333。#include float fun(int n) int i,sum=1; float s=1; for(i=2;i=n;i+) sum=sum+i; s=s+1.0/sum; return s; long chsdc(int n) int i,s; s=0; for(i=0;in。p=m!/n!(m-n)!。例如:m=12,n=8时,运行结果为495.000000。#include #include float fun( int m,int n) int i,j,k;

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

当前位置:首页 > 高等教育 > 习题/试题

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