还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
累加累乘[程序1]#includestdio.hvoidmain{floatstx11=
1.0t2=l.0;intin;scanf舟f%d”xn;s=0t=-l;fori=l;i=n;i++{tl=tl*x;t2=t2*i;t=-t;s=s+t*tl/t2;}printf%f,s;[程序2]^includestdio.hfloatflfloatxintn{floaty=l.0;intk;fork=0;kn;k++y=y*x;returny;longf2intn{longm=l;intk;fork=l;k=n;k++m=m*k;returnm;voidmainfloatstx;intin;scanff%dxn;s=0t=-l;fori=l;i=n;i++{t=-t;s=s+t*flxi/f2i;}printf“%f”s;
二、整除性基本知识x%y=0intx/y=x/yfmodxy==0应用.素数质数includestdio.h#includemath.hvoidmain.链表遍历链表的建立、插入、删除和输出.文件遍历1下列程序将当前目录下的文本文件a.txt复制到b.txt要求将a.txt中每1个非英文字符后的第1个小写英文字母改为大写字母写到文件b.txt中,其它字符复制时不变^includestdio.h#includectype.h4includestdlib.hvoidmainO{FILE*fl*f2;intflag=l;charch;iffl=fopena.txtr==NULL{printf不能打开文件a.;exitO;iff2=fopen,,b.txtw=NULL{printf不能打开文件b.txt\n;exit0;}while!fcofflch=fgetcfl;ifflag==lch=ach=,zfputcch-32f2;elsefputcchf2;if!isalphachflag=l;elseflag=0;fclosef1;fclosef2;八.函数调用1值传递,地址传递includestdio.hintxyz;voidpint*xinty{++*x;y;z=*x+y;2printf*%d%d%d―”*xyz;voidmainO{x=2;y=3;z=4;pxy;printf与d%d%d—xyz;pyx;printf飞d%d%d\n”xyz;.静态局部变量1函数f定义如下,执行语句sum=f5+f3;后,sum的值应为35intfintm{staticinti=0;ints=0;for;i=m;i++s+=i;returns;}A、21B、16C、15D、82写出下列程序的输出结果#includestdio.hintfintx{staticy=l;x+=y;y++;returnx;}voidmain{intk;k=f3;printfC%d%d\n,»kfk;.递归调用1函数f定义如下,执行语句“m=f5;”后,m的值应为Bintfintkifk==O||k==lreturn1;elsereturnfk-1+fk-2;}A、3B、8C、5D、13九.其他算法
1.数学类问题上机题程序设计题考生目录下有Design”程序,请完成以下功能数组元素x[i]、y[i]表示平面上某点坐标统计10个点中同处在圆xT*xT+y+
0.5*y+
0.5=25与x-
0.5*x-
0.5+y*y=36内的点数k并将变量k的值以格式飞d”写到考生目录下新建文件design.datottincludestdio.h^includemath.hvoidmain{FILE*p;intik=0;floatx[]={l.
13.2-
2.
55.
673.42-
4.
52.
545.
60.
974.65;floaty[]={-
64.
34.
53.
672.
422.
545.6-
0.
974.65-
3.33};//此处起要求考生自己编制程序p=fopendesigndatw;fori=0;i10;i++ifsqrtx[i]-l*x[i]-l+y[i]+O.5*y[i]+
0.55sqrtx[i]-
0.5*x[i]-
0.5+y[i]*y[i]6k++;fprintfp*%d*k;fclosep;程序设计题考生H录下有Design”程序,请完成以下功能数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式飞f〃写到考生目录下新建文件designdateftincludestdio.h:includemath.httdefinelenxlylx2y2sqrtxl-x2*xl-x2+yl-y2*yl-y2voidmain{FILE*p;intij;floatcmine;floatx[]={l.
13.2-
2.
55.
673.42-
4.
52.
545.
60.
974.65;floaty[]={-
64.
34.
53.
672.
422.
545.6-
0.
974.65-
3.33};minc=lenx
[0]y
[0]x[l]y[l];//此处起要求考生自己编制程序p=fopen*designdat*w;fori=0;i9;i++forj=i+l;j10;j++ifc=lenx[i]y[i]x[j]y[j]mincminc=c;fprintfp%f”mine;fclosep;
2.结构体输入某班30位学生的姓名及数学,英语,计算机三门课成绩,输出平均成绩=60分的学生的姓名及其各门课的成绩#includestdio.h^defineSIZE30structstudent{charname
[10];intmathenglishcomputer;};voidmain{structstudents[SIZE];intkjnd[SIZE];floataverage;fork=0;kSIZE;k++scanf螺s%d%d%d”];forn=0k=0;kSIZE;k++average=s[k].math+s[k].englksh+s[k].computer/
3.0;if2d[n]=k;3;fork=0;kn;k++printf^lOs%3d%3d%3d\n*s[j].names[j].maths[j].englishs[j].computer;
2.分支程序阅读下列程序,写出运行结果
1.程序1(8分)ftincludestdio.hvoidmainOintm=18s=0;doswitchm%7case2:m/=2;s+=2case3:m/=3;s+=3case5:m/=5;s+=5default:m-;printfs;}whilem;}
3.指针#includestdio.hvoidmain{voiddivint*int*;inta
[5]={-50604534}i=0j=2;whilea[i]=0i++;whilea[i]!=1diva+ij;voiddivint*nint*k{if*n%*k==0{printfw%d%d\n”*n*k;*n/=*k;else*k++;
3.程序33分位运算ttincludestdio.hvoidmainOints
[8]i;charch=BT;/*字符A的ASCII码为65*/printf^cchch;fori=7;i=0;i一{sEi]=chl;ch=ch»l;fori=0;i8;i++printfs[i];printf\n;算法口诀:累加累乘整除性,最大最小双重循二查三排三遍历,函数调用文件行intmin=0;doscanfM”,m;n=sqrtm;fori=2;i=n;i++ifm%i==0break;ifinprintf$d”m;}whilem!=0;/*输入0结束*/[素数2]ttincludestdio.h#includemath.hintprimeintm{intkp;p=sqrtm;fork=2;k=p;k++ifm%k==0return0;return1;}voidmain{intmin=0;do{scanf,m;ifprimemprintfu%d是素数.”,m;elseprintfC%d不是素数.”,m;.水仙花数若某数等于各位数字的立方和,则称该数为水仙花数fori=100;i=999;i++{a=i%10;b=i/10%10;c=i/100;ifa*a*a+b*b*b+c*c*c==iprintf“*d,i;输入一个整数判断是否是水仙花数.scanfnm;t=0;n=m;whilen0{k=n%10;t=t+k*k*k;n=n/10;}ifm==tprintf“与d是水仙花数.”,m;[水仙花数]#includestdio.hintfintm{intknt;n=m;t=0;whilen0{k=n%10;t=t+k*k*k;n=n/10;ifm==treturn1;elsereturn0;}voidmainintm;do{scanf“*d,m;iffmprintf%d是水仙花数.”,m;elseprintf“%d不是水仙花数.”,m;}whilem!=0;.完数:某数等于其诸因子之和则该数为完数如6=1+2+328=1+2+4+7+14则
6、28就是完数#includestdio.h#includestdlib.hvoidmain{intnis;forn=6;n=1000;n++{s=0;fori=l;i=n/2;i++ifn%i==0s+=i;ifn==sfprintfp%6d”n;.数位截取输入一个长整型数,求各位数字的平方和#includestdio.hvoidmain{intdigit;longins;scanfin;ifin0in=-in;s=0;whilein0{digit=in%10;s=s+digit*digitin=in/10;printfsum=%ld\n*s;.最大公约数、最小公倍数Sincludestdio.hvoidmain{intmnktp:scanf%d%d”mn;ifmn{k=m;p=n;else{k=n;p=m;}whilet=k%p!=0k=P;P=t;printf*gongyueshu=%d\rTp;printfz,gongbeishu=%d\n,\m*n/p;}.亲密数对说明若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b如
220、284是1对亲密数,
284、220也是1对亲密数#includestdio.hvoidmainintabci;fora=6;a=5000;a++b=c=O;fori=l;ia/2;i++ifa%i==0b=b+i;fori=l;ib;i++ifb%i==0c=c+i;ifa==ca!=bprintf,z%6d56d\n”ab;方法2用函数#includesldio.hlongsintm{intj;longsum=0;forj=l;j=m/2;j++ifm%j==0sum=sum+j;returnsum;voidmain{intab;longclc2;scanf“%d$d”,ab;cl=sa;c2=sb;ifa!=bc1==b.c2==aprintf%6d%6d\n”ab;
三、最大最小.从输入的若干个正数中选出最小数#includestdio.hvoidmainfloatxmin;scanfx;min=x;whilex=0{ifxminmin=x;scanfx;printf^theminiumnumberis.编制函数,其功能是在float类型1维数组中查找最大值、最小值,并将它们返回到调用程序#includestdio.hvoidmax_minintx[]intnint*maxint*min{inti;*max=x
[0];*min=x
[0];fori=l;in;i++if*maxx[i]*max=x[i];ifx[i]*min*min=x[i];}voidmain{intx
[10]iminmax;fori=0;i10;i++scanf%dx+i;max_minx10maxmin;printfCMAX=%dMIN=%d\nmaxmin;}
四、双重循环.求s=l!+2!+3!+...+〃!n由输入决定^includestdio.hvoidmain{intijn;longintt=lsum=0;scanf%Tn;fori=l;i=n;i++{t=l;forj=l;j=i;j++sum=sum+t;printf/,n!=%ld,zsum;.输入一个3*6的二维整型数组数据,输出其中最大值及其所在行列下标#includestdio.hvoidmiininta
[3]
[6]ijmnmax;fori=0;i3;i++forj=0;j6;j++scanf飞ida[i][j];max=a[O]
[0];fori=0;i3;i++forj=0;j6;j++ifa[i][j]maxmax=a[i][j];m=i;n=j;printf^themaxnumis%drow%d1ine%d\n”maxmn;}
3.鞍点问题找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小^defineN10^defineM10voidmainintijkmnflaglflag2a[N][M]maxmaximaxj;scanf飞dn;scanf飞dm;fori=0;in;i++forj=0;jm;j++scanf飞da[n][m];fori=0;in;i++forj=0;jm;j++printf*%d*a[n][m];printf\n;flag2=0;fori=0;in;i++{max=a[i]
[0];forj=0;jm;j++ifa[i][j]maxmax=a[i][j];maxj=j;fork=0flagl=l;knflagl;k++ifmaxa[k][maxj]flagl=0;ifflaglprintf*\n第%d行第%d列的%d是鞍点“,imaxjmax;flag2=l;if!flag2printfz,\n矩阵中无鞍点”;
五、三种排序.选择排序函数sort使用选择法将一维整型数组中各元素按值从大到小排序#includestdio.h^defineN10voidsortinta[]intn{intijktemp;fori=0;in-l;i++{k=i;forj=i+l;jn;j++ifa[k]a[j]k=j;tomp=a[k];a[k]=a[i];a[i]=temp;}voidmaininta[N]i;fori=0;iN;i++scanf线da[i];sortaN;fori=0;iN;i++printf*%da[i];}.冒泡法■includestdio.hvoidmaininta
[10]ijt;printf*Input10numbers:Xn*;fori=0;i10;i++/*输入排序数*/scanfC%d*a[i];printf\n;forj=0;j9;j++/*控制比较趟数*/fori=0;i9-j;i++/*控制比较对数*/ifa[i]a[i+Ut=a[i];a[i]=a[i+l];a[i+l]=t;}printfCThesortednumber:\n;fori=0;i10;i++/*输出已排序的数*/printf*%d”a[i];
3.插入排序将x插入到已从小到大排序好的数组a中,插入x后数组中的元素仍然有序#includestdio.h^defineN5voidmainOinta[N]ixj;scanfa
[0];fori=l;iN;i++scanfx;forj=i-l;j=0;jifa[j]xa[j+l]=a[j];elsebreak;a[j+l]=x;fori=0;iN;i++printf*%d*a[i];
六、二种查找
1.顺序查找设a是一个整型数组,n和x都是整数,数组a中各元素的值互异请编写函数findanx在数组a的前n个元素中查找x如果找到,返回x在数组a中的位置;如果没有找到,返回0#includestdio.h#defineN5intfindint*aintnintxintk=0y=0;fork=0;kn;k++ifa[k]==xy=k+l;returny;voidmainOintnxa[N]i;fori=0;iN;i++scanf;printf,zpleaseinputxandnn;scanf%d%d”xn;whilex!=0{ifi=findanx!=0prinlf%disthe%dthnumber”xi;elseprintfz,notfound;scanf飞d%dxn;
2.二分法查找要求查找的数据要有序#includestdio.h^defineN10intfintxinta[]intn{intlowhighmid;low=0;high=n-l;inty=l;whilelow=high{mid=low+high/2;ifxa[mid]low=mid+l;elseifxa[mid]high=mid-l;else{y=mid break;}returny;voidmain{intixna[N];fori=0;iN;i++scanf飞da[i];printf^pleaseinputxandn〃;scanf,,%d%dz,xn;printffxan;}七.三种遍历
1.数组遍历1字符串与整数转换说明】函数atoi的功能是将字符串转换成整数,如“atoi〃T23”将返回723#includestdio.hintatoi1chars[]intk=0signdigit;sign=l;digit=0;whiles[k],0||s[k]*9ifs[k]===sign=T;k++;whiles[k]〉=0s[k=9digit=digit*10+s[k]-0*;k++;returnsign*digit;voidmain{chars
[80];intd;scanf飞s”s;d=atoils;printf/dd;2数组逆置lfori=0;i=n/2;i++{t=a[i];a[i]=a[n-i-l];a[n-i-l]=t;}2fori=0j=n-l;ij;i++j—{t=a[i];a[i]=a[j];a[j]=t;}如何用指针表示?3strcpystrcmpstrlenstrcat这四个函数用数组,指针实现#includestdio.hvoidslrcpy1char*iochar*from{while*to=*from!=’\0to++:from++;voidmaincharto
[20]from
[10];scanffromto;strcpy1tofrom;printf,,%s\n/,to;4进制转换函数xtoi的功能是将放在字符串中的十六进制数可以出现‘
09、af转换成十进制整数例如调用xtoiIf将返回31#includestdio.hintxtoi1chars[]{intk=0d=0;whiles[k]=Os[k]:9||s[k]=*as[k]=fifs[k]=Os[k]=9d=d*16+s[k]-O;ifs[k]=*as[k]=fd=d*16+s[k]-87;k++;returnd;}voidmainO{chars
[80];intd;scanf“%ss;d=xloi1s;printfd;基本知识s=s+x累加0X=X+1计数0T=T*X累乘求售1T=T*I累乘求N!1应用级数求和
1.输入x、n后输出下列算式的值(次数控制)X2/X12!3!x4F4!…+1划。