全国计算机等级考试c 语言一一编程题.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《全国计算机等级考试c 语言一一编程题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试c 语言一一编程题.docx(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试c语言一一编程题1 . m个人的成绩存放在score数组中,请编写函数fim,它的功能是:将低于平均分的人数作为函数值返回,将低 于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10 20、30、40、50、60、70、80、 90时,函数返回的人数应该是4,below中的数据应为10、20、30、40o第一个fbr循环用来计算score数组中 分数的总和,然后用aver/=m求出平均值,第二个循环用来找出小于平均分的元素,并放到数组below中,这里要 注意j的递增方式。#include #include /include int fun(int
2、score,int m,int below) int ij=0,aver=0;for(i=0;im;i+) aver+=scorei; aver/=m;for(i=0;im;i+) if(scoreiaver) belowj+J=scorei; return j;main() int i,n,below9;int score9=10,20,30,40,50,60,70,80,90);n=fun(score,9,bclow);printfinbelow the average score are fbr(i=0;in;i-H-) printfl(,%4d,belowi);2 .请编写函数fun,
3、它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数 并将它们放在a所指的数组中,通过n返回这些数的个数。该题关键就是如何表示能被7或11整除,但不能同 时被7和11整除。用(i%7=0) | (i%l 1=0)来表示能被7或11整除,用!(i%7=0) & (i%l 1=0)来表示不 能同时被7和11整除。#include #include void fun(int *a,int *n) int i,m=0;for(i=l;i1000;i+)if(l%7=0) II (i%ll=0) & !(i%7=0) & (i%ll=0) am=i;m+=l;*n=m;
4、jmain() int aa1000,n,k;clrscr();fun(aa,&n);for(k=0;kn;k+)if(k+l)%10=0) printf(MnH); else printf(H%d,aak);3.请编写函数void funfint x,int pp,int *它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的 顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求, 它们是1,3,5,15。由于要求的数不能是偶数故编程时从1开始循环而步长为2这样正好保正i永远的奇数。 这里也要注意存放结果的数组pp的下标变化方式。#incl
5、ude #include void fun(int x,int pp,int *n) int ij=0;for( i=l;i=x;i=i+2)if(x%i=0) pplj+J=i;*n=j;main() int x,aa1000,n,i;printf(”n please enter an integer number:n*);scanf(M%dM,&x);fun(x,aa,&n);fbr(i=0;in;i-H-) printR%d ,aai);4 .请编写一个函数void fun(char *tt,int pp),统计在字符串中R到N26个字母各自出现的次数,并依次放在pp 所指数组中。例如,
6、当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 322 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0000000本题采用的是字母的ASCII码值与数组pp下标的对应转换关系分别求出对应字母的个数。第一 个for是给pp赋初值0,第二个for用于控制在字符串内从头到尾移动。由于字母家的ASCII码值为97而它 的个数要放在pp0中而g97的值正好为0o#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+
7、;main() char aa1000;int bb26,k;clrscr();printfi(nnPlease enter a char string:*1);scanfi(”s”,aa);fun(aa,bb);fbr(k=0;k26;k+) printfT%d”,bbk); printffW);5 .请编写一个函数void ftin(int m,int k,int xx口),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx 所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。本题中的for循环用来判断一个数是否为素数, 由于个数只能是k个所以用do-whil
8、e循环来控制。#include #include void fun(int m,int k,int xx) int ij=0,p=m+l; do for( i=2;i=P)xxj+=p;p+; while(jk);main() int m,n,zz1000;printRn please enter two integers:M);scanf(H%d%d,&m,&n);fun( m,n,zz);fbr(m=0;mn;m+) printff%d ”,zzm);6 .请编写一个函数void fun(char a,char b,int n),其功能是:删除一个字符串中指定下标的字符。其中,a指向 原字
9、符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串World,然后输 入3,则调用该函数后的结果为Wordo#include #include #define LEN 20void fiin (char a,char b ,int n) int i,k=0;for(i=0;ai!=*0*;i+)if(i!=n) bk+=ai;bk=(r;main() FILE *wf; char strlLEN,str2LEN; int n;printf (MEnter the string:nH);gets(strl);printf (Enter the position d
10、eleted:*);scanf (M%dn,&n);fun(strl,str2,n);printf (MThe new string is:%s nn,str2);wf=fbpen(Hout.datH,wM);fun(uworldM,str2,3);用 rintRwf,”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 #
11、include int fun(int *s,int t,int *k) int i,max;max=s0;for( i=0;imax) max=si;*k=i;|main() int al 0=876,675,896,101,301,401,980,431,451,777 ,k;fun(a,10,&k);printfiCn%d,%dn,k,ak);8 .编写函数fun,函数的功能是:根据以F公式计算s,计算结果作为函数值返回;n通过形参传入。s=l+l/(l+2)+l/(l+2+3)+.+1/(1+2+3+4+n),例如:若 n 的值为 11 时,函数的值为 1.833333。#includ
12、e float fiin(int n) int i,sum=l;float s=l;for(i=2;i=n;l+) 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)!o 例如:m=12,n=8 时,运行结果为 495.000000。#include #include float fun( int m,int n) int ij,k;long int t=l,s=l,p=l;float q;for(i=l;i=m;i+) t*=i;for(j=l;j=n;j+) s*=j
13、;for(k=l ;k=m-n;k+) p*=k;q=(float)t/s/p;return q;main() printf(Hnp=%lfnn,fun(l 2,8);10 .编写函数ftm,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。Xn+l=cos(Xn)迭代步骤如下:取X1初值为0.0;(2)x0=xl,把xl的值赋给x0;(3)xl=cos(xO),求出一个新的 xl;(4)若xO-xl的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求xl就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.73
14、9085o#include #include #include float fiin() float x0,xl=0;do x0=xl;xl=cos(x0); while( fabs(x0-xl)le-006);return xl;main() printfi(Hroot=%fn,fiin();)11 .下列程序定义了 NxN的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是: 使数组左下半三角元素中的值全部置成0o例如:a数组中的值为该题的关键是如何表示出左下半角的元素, 当从上往下到第i行时只有左边的i个元素要置为0(每行总是如此)。用外层for来控制行而内嵌的for来控 制每行的
15、左边元素,故而在内嵌for中j最大只能循环到i(即表示出第i行左边的i个元素)。197097238008456,则返回主程序后a数组中的值应为000 0#include#include#include#define N 5int fiin(int aN) int ij;for(i=0;iN;i+) for(j=0;j=i;j+) aiU=0;)main() int aNN,ij;printff* The array *nM);fbr(i=O;iN;i-H-)for(j=0;jN;j-H-) aij=rand( )%10;printn%4d,aiU); fiin(a);printffThe re
16、sultnH);fbr(i=O;iN;i-H-)for(j=OuNj-H-) printf(%4d,aij);12 .下列程序定义了 NxN的二维数组,并在主函数中赋值。请编写函数ftm,函数的功能是:求出数组周边元素 的平均值并作为函数值返回给主函数中的So例如:若a数组中的值为0127919 7 4 5a = 238314568259141则返回主程序后s的值应为3.375。注意不能重复计算,第一个for循环求出第一列与最后一列的和,第二 个for循环求出第一行与最后一行(已除去两头元素),要注意第二个for中起始为1,最后为N-2o#include #include #include #
17、define N 5double fun (int wN) int i,t=0;double s=0;for(i=0;iN;i+) s+=wi0+wiN-l;t+=2; for(i=l;iN-l;i+) s+=w0i+wN-li;t+=2; s=s/t;return s; main() int aNN= 0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1;int ij;double s;print.* The array *n”);for(i=0;iN;i-H-)for(j=0;jN;j-H-)printf(M%4dH,aij);s=fun(a)
18、;printff* The result *nH);printffThe sum is %lfnH,s);13 .请编一个函数void fun(int ttMN,int ppN),tt指向一个M行N列的二维数组,求出二维数组每列中最小 元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。该题用fbr(i=0;ivN;i+)来控制一 列一列地找,而内嵌循环for(j=0;jvM;j+)用于控制同列内元素的比较。多重循环的嵌套总是最里层循环变化 最快,即外层循环改变一个值,内层循环就要循环完一次,对于多重循环一定要好好去体会和理解,在多数题目 中都要用到多重循环(一般为二重)。#i
19、nclude conio.h”#include stdio.h#define M 3#define N 4void fun(int ttMN,int ppN) int ij;for(i=0;iN;i+) pp=ttOi;for(j=0;jM;j+)if(ttjippi) ppi=ttUi;)main() int tMN=22,45,56,30,19,33,45,38,20,22,66,40; int pN,ij,k;printfifthe original data is:nH);fbr(i=O;iM;i-H-)for(j=O;jNJ+) printfi(%6d,tij);fun(t,p);p
20、rintffnthe result is:nM);fbr(k=0;kN;k+) printf)(%4d,pk);14 .请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中 赋予。例如:若二维数组中的值为13 5 7 9299946999813570则函数值为61。该题的第一个for循环是计算矩阵的最上一行和最下一行的总和,第二个for是计算除两头元素以外的最 左一列和最右一列的元素的和,最后sum就是周边元素的和。#include #include #define M 4#define N 5int fun(int aMN) int sum=0,i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机等级考试c 语言一一编程题 全国 计算机等级考试 语言 一一 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内