天津城市建设学院C语言程序填空题附答案_第1页
天津城市建设学院C语言程序填空题附答案_第2页
天津城市建设学院C语言程序填空题附答案_第3页
天津城市建设学院C语言程序填空题附答案_第4页
天津城市建设学院C语言程序填空题附答案_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试卷编号:10097所属语言:TurboC试卷方案:cxl试卷总分:1260分共有题型:1种一、程序填空 共126题(共计1260分)第1题(10.0分)题号:425/♦ 【程序填空】功能:当输入“2,5”的时候输出为“255” */#include<stdio.h>//definemax100main()intf[max],ij,k,m;scanff%d,%d”,&k,&m);/***********SPACE***********/fbr(i=O;i<=[?];i++)f!i]=0;/***********SPACE***********/fl[?]]=1;fbr(i=k;i<=m;i4-+)/***********space***********/for(j=i-ky<=i-lj++)f[i][?]f[j];printff%d%10d%10d\nM,k,m,f[m]);答案:1).M.k-1答案:1).M.k-1或k・l.+=或=1+第2题(10.0分)题号:466/♦ 【程序填空】功能:用二分法求方程2X八3+4X八2+3X・6=0在(・10,10)之间的根,其中X?代表X的n次方。#include<math.h>main()floatx0,x1,x2,fx0,fx1,fx2;doprintf(MEnterxl&x2:M);scanfT%£%F,&x1,&x2);fxl=xl*((2*xl-4)*xl+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;y***********gpy^(^E***********/}while(仅1*仅2[?]);dox0=(xl+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;/***********space***********/x2=x0;fx2=fx0;)elsexl=xO;fxl=feO;/***********space***********/while([?]>=le-5);printf(Mx=%6.2f\nn,xO);}.<0.fabs(fxO)答案:l).>0.<0.fabs(fxO)第3题(10.0分)题号:476/* 【程序填空】功能:不用第三个变量,实现两个数的对调操作。 */#include<stdio.h>main()inta,b;scanfi(H%d%d",&a,&b);printf)(Ha=%d,b=%d\n',,a,b);/***********space***********//***********space***********/b=[?];/***********space***********/a=[?];printf(Ha=%d,b=%d\n",a,b);答案:1).a+b.a-b或a-b.a-b或a-b第4题(10.0分)题号:483/* 【程序填空】功能:对数组A中的N(0<N<100)个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组A中元素的顺序,且相同的整数要具有相同的编号。例如:数组是:A=(5,3,4,7,3,5,6)则输出为:(3,1,2,5,1,3,4)*/main()intij,k,n,m=l,r=l,a[2][100]={0};printf(HPleaseentern:M);scanfC%d”,&n);fbr(i=O;i<n;i++)printf(Ma[%d]=”,i);scanf(H%dn,&a[O][i]);/***********space***********/while([?])fbr(i=0;i<n;i++)if(a[l][i]=0)/***********space***********/[?];k=i;fbr(j=i;j<n;j++)/***********space***********/if(a[l][j]=0&&a[0][j]<a[0][k])[?];a[l][k]=rH-;m++;for(j=0;j<n;j++)if(a[l]D]=0&&a[0][j]=a[0][k])a[l]U]=a[l][k];m++;fbr(i=O;i<n;i++)printf(Ha[%d]=%d,%d\nM,i,a[O][i],a[l][i]);答案:1).m<n或n>m 2).Break 3).k=j第5题(10.0分)题号:458/♦ 【程序填空】功能:用等分法在有序的循环数组中,找到最小元素的位置。 */intcyclic_min(intx[],intn){intleft=0;intright=n-1;intmid;/***********space***********/while([?]){mid=(left+right)/2;if(x[mid]<x[right])/***********space***********/[?];else/***********space***********/[?];)returnleft;#include<stdio.h>voidmain(void){intx[]={20,23,28,35,39,40,42,8,10,15,17,19);intn=sizeof(x)/sizeofi(int);intloc,i;printff\nFindCyclicMinimum”);printfT\n=——^―“);printfi(M\n\nGivenArraySortedinCyclicFashion:\nH);for(i=0;i<n;i++)printfC%3d”,x[i]);loc=cyclic_min(x,n);printf(M\n\nMinimumislocatedatx[%d]=%dH,loc,x[loc]);答案1).leftvright或right>left2).right=mid3).left=mid+l或left=1+mid第6题(10.0分)题号:34【程序填空】功能:以下程序的功能如(图1)。*/#include<conio.h>#includc<stdio.h>/***********space***********/floatfun([?],intn)/***********space***********/[?];floatxa=0,s;for(j=0;j<n;j++)xa+=x|j]/n;/***********space***********/r”•for(j=O;j<n;j++)s+=(x[j]-xa)*(x[j]-xa)/n;/***********space***********/main()floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};clrscr();printf(H%f\nM,fun(x,8));答案:1).floatx口或float*x2).intj3).s=0或s=0.0 4).returns或rctum(s)第7题(10.0分)题号:430/* ——【程序填空】功能:计算一元二次方程的根。#include<stdio.h>/***********space***********/#includc[?]main()floata,b,c,disc,x1,x2,realpart,imagpart;scanfC%f%f%f',&a,&b,&c);printf(Mtheequation");/***********space***********/if([?]<=le-6)printff'isnotquadratic\nM);elsedisc=b*b-4*a*c;if(fabs(disc)<=le-6)printf(Hhastwoequalroots:%-8.4f\n",-b/(2*a));/***********cpy^pg***********yelseif([?]){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printff'hasdistinctrealroots:%8.4fand%.4f\nM,xl,x2);}else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(Mhascomplexroots:\nM);printf(M%8.4f=%.4fi\n",realpart,imagpart);printf(M%8.4^%.4fi\nM,realpart,imagpart);)}le-6<fabs(disc)答案:1).<math.h>2).fabs(a)3).fabs(disc)>le-6或第8题(10.0分)题号:410【程序填空】le-6<fabs(disc)功能:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 */main()(intnumber[20],n,m,i;printff'thetotalnumbersis:");scanff'%d",&n);printf(Mbackm:”);scanff'%d",&m);fbr(i=O;i<n-l;i++)scanf(n%d,",&number[i]);scanfC%d”,&number[n.1]);/***********cpAr*p***********/move([?]);fbr(i=O;i<n-l;i++)printf(M%d;\number[i]);printf(,,%dn,number[n-1]);/***********SPACE***********/move([?])intn,m,array[20];int*p,array_end;/***********space***********/array_end=*([?]);fbr(p=array+n-l;p>array;p-)/***********space***********/♦p=*([?]);*array=array_end;m-;ifi(m>0)move(array,n,m);答案:1).number,n,m2).array,n,m3).array+n-1或array+n-1 4).p-1或p-1第9题(10.0分)题号:15/* 【程序填空】功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。main()intx,i=0j=0;floats1=0,s2=0,av1,av2;scanff'%d",&x);/***********space***********/while([?])ifi(x%2==0){sl=sl+x;i-H-;}/***********space***********/[?]s2=s2+x;j++;

/***********space***********/if(i!=0)avl=sl/i;elseavl=0;if(j!=0)/***********space***********/[?];elseav2=0;printfi(noushujunzhi:%7.2f,jishujunzhi:%7.2f\nH,avl,av2);答案:1).x!=0或x3).scanf(H%d答案:1).x!=0或x3).scanf(H%dM,&x)4).av2=s2/j题号:456第10题(10.0题号:456/* 【程序填空】功能:利用指向结构的指针编写求某年、某月、某日是第几天的程序,其中年、月、日和年天数用结构表示。 */main()/***********space***********/【?】dateinty,m,d,n;/***********space***********/intk,f,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf(Hdate:y,m,d=M);scanf(v%d,%d,%d",&x.y,&x.m,&x.d);f=x.y%4=0&&x.y%100!=0||x.y%400==0;/***********space***********/a[l]+=[?];if(x.m<l||x.m>12||x.d<l||x.d>a[x.m-l])exit(0);fbr(x.n=x.d,k=O;k<x.m-1;k++)x.n+=a[k];/***********space***********/printf("n=%d\n",[?]);答案:1).Struct2).X 3).F4).x.n第11题(10.0分)题号:462【程序填空】功能:把字符串中所有的字母改写成该字母的F一个字母,最后一个字母z改写成字母a。大字母仍为大写字母,小写字母仍为小写字母,其它的字符不变。例如:原有的字符串为:“Mn.l23xyZ”,调用该函数后,串中的内容为:“No.l23yzA”。 */#includc<string.h>#include<stdio.h>#includc<ctype.h>#defineN81main()chara[N],*s;printf(MEnterastring:");gets(a);printf("Theoriginalstringis:");puts(a);/***********space***********/r八•while(*s)ifi(*s=='z,)*s-af;elseif(*s=Z)*s='A';elseif(isalpha(*s))/***********space***********/【?】;/***********space***********/【?】;}printf("Thestringaftermodified:");puts(a);答案:1).s=a.*s+=l或*s=*s+l或(*s)++答案:1).s=a.S-H-或S=s+1或-H-S或S=S4-1第12题(10.0分)题号:27【程序填空】功能:统计一个字符串中的字母、数字、空格和其它字符的个数。 */#include"stdio.hnmain()charsi[80];inta[4]={0};intk;/***********space***********/r>i,gets(sl);/***********space***********/puts(sl);for(k=0;k<4;k-H-)printf(M%4dM,a[k]);voidfun(chars[],intb[])inti;for(i=0;s[i]!=>\0';i++)if(,a'<=s[i]&&s[i]<="z,||'A,<=s[i]&&s[i]<=,Z,)b[0]++;/***********space***********/elseif([?!)b[l]++;/***********space***********/elseif([?])b[2]++;elseb[3]++;2).fun(sl,a)答案:1).voidfun(chars[],intb[])2).fun(sl,a).'0'<=s[i]&&s[i]<='9'或s[i]>='0'&&s[i]<='9'或'0'<=s[i]&&,9>=s[i]或s[i]>='0'&&9>=s[i]或48<=s[i]&&s[i]<=57或s[i]>=48&&s[i]<=57或48<=s[i]&&57>=s[i]或s[i]>=48&&57>=s[i]或!(x<48]|x>57)或!(x<'O'||x>,9').s[i]=''或s[i]=32第13题(10.0分)题号:452/*

【程序填空】功能:从键盘输入若干行字符,输入后把他们存储到一磁盘文件中。在从该文件中读出这些数据,将其中的小写字母转换成大写字母后在屏幕上输出。 */#include"stdio.h"#defincN100main()(FILE*fp;charc,*p,s[N][20];inti,n;printfCn=");scanfC%d”,&n);/***********QpACF***********/[?]n>N)exit(0);printf(,,Input%dstring:\n",n);fbr(i=0;i<n;i-H-)scanf(M%sM,s[i]);/***********space***********/fjp=fbpen(ntext",[?]);fbr(i=0;i<n;i-H-)P=s[i];/***********space***********/while(*p!=NT)ifi(!ferror(fp))fputc([?],fp);)fclose(fp);printf(H\nM);/***********space***********/fp=fbpen(Mtext",[?]);while((c=fgetc(fp))!=EOF)(if(c>,a,&&c<=,z,)c-+32;putchar(c);}printf(M\nM);fclose(fp);答案:1).||2).3).*p-H-4).V第14题(10.0分)题号:469* 【程序填空】功能:用递归法将一个整数n转换成字符串,例如输入483,应输出对应的字符串“483”。n的位数不确定,可以是任意位数的整数。 */#include<stdio.h>voidconvert(intn)inti;/***********space***********/if((1?1)!=0)convert(i);/***********space***********/putchar(n%10+[?]);main()]intnumber;printfi(H\nInputaninteger:");scanff%d”,&number);printtfOutput:");ifi[number<0)(putchar('-');/***********space***********/[?];)convert(number);*3).nuinber=-number答案:1).i=n/10 2).'O'3).nuinber=-number第15题(10.0分)题号:14/* 【程序填空】功能:输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。main()intm,n,k,i=O;fbr(m=100;m<=1000;m++)/***********space***********/【?】;n=m;do/***********space***********/k=k+[?];n=n/10;}/***********space***********/【?】;if(k%15==0)printf(H%5dM,m);i+4-;/***********space***********/if(i%10=0)[?];}2).n%10或n-n/10*10或n-10*(n/10)2).n%10或n-n/10*10或n-10*(n/10)4).printff\n")3).while(n>0)或while(O<n)或while(n!=O)或while(O!=n)第16题(10.0分)题号:397/♦ 【程序填空】功能:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。main()charij,k;/*i是a的对手,j是b的对手,k是c的对手*/fbr(i='x';iv='z';i++)fbr(j=,x,;j<=,z,y-H-)/***********Space***********/if([?])/***********space***********/fbr(k=M【?】;k++)/***********spac、e***********/if([?])/***********Space***********/if(i!='x,&&k!=[?])printfi("orderisa-%c\tb-%c\tc-%c\nH,ij,k);答案:1).i!=j或i!=j2).kv=2'或'z>=k3).i!=k&&j!=k或i!=k&&j!=k4).'z'第17题(10.0分)题号:447/* 【程序填空】功能:已知一个数列,它的头两项分别是。和1,从第三项开始以后的每项都是其前两项之和。编程打印此数,直到某项的值超过200为止。*/main()inti,fl=0,f2=l;/***********space***********/for([?];;i++)printf(M5%dH,fl);/***********space***********/[?])break;printf(M5%dM,f2);ifi(f2>200)break;ifi(i%2=0)printfCW);fl+=f2;/***********space***********/f2+=[?];3).n2).2003).n【程序填空】功能:删除字符串中的数字字符。例如:输入字符串:48CTYP9E6,则输出:CTYPE. */#includc<stdio.h>/***********space***********/voidfun([?])char*p=s;while(*p)if1(*p>='0,)&&(*p<=,9,))pf/***********space***********/else*s++=[?];/***********space***********/【?】;main()(charitem[100];printf("\nEnterastring:");gets(item);fun(item);printfl["\nThestring:\"%s\"\n",item);)答案:1).char*s或chars[] 2).*p++ 3).*s=,0'或*s=0第19题(10.0分)题号:448【程序填空】功能:已知X、Y、Z分别表示0〜9中不同的数字,编程求出使算式XXXX+YYYY+ZZZZ=YXXXZ成立时X、Y、Z的值,并要求打印该算式。main()]intx,y,z;/***********space***********/fbr(x=0;[?];x++)for(y=0;y<10;y-H-)(if(y=x)continue;fbr(z=0;z<10;z-H-)/***********space***********/if(z=x[?]z=y)continue;/***********SPACE***********/if(l111*(x+y+z)=[?]+1110*x+z)(printf(Hx=%d,y=%d,z=%d\n,,,x,y,z);/***********space***********/printf("%d+%d+%d=%d\n",1111*x,1111*y,1111*z,[?]);exit(O);})))答案:1).x<10或10>x 2).||3).10000*y或y*10000 4),10000*y+ll10*x+z或10000*y+1110*x+z第20题(10.0分)题号:416【程序填空】功能:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显示出来。 */#defineM5 /*定义符号常量人数为5*/#defineN4 /*定义符号常量课程为4*/#include"stdio.h"main()intij;voidaver(floatsco[M+l][N+l]);static float score[M+l][N+l]={{78,85,83,65}, {88,91,89,93},{72,65,54,75},{86,88,75,60},{69,60,50,72}};aver(score);clrscr();printff学生编号课程1课程2课程3课程4 个人平均由");fbr(i=0;i<M;i++)(printf("学生%d\t",i+l);y***********gpy^(^E***********/for(j=Ou<[?]J++)printf(M%6.1f\tM,score[i][j]);printf(M\nM);for(j=0;j<8*(N+2);j++)printfifH-M);printf(M\n课程平均)fbr(j=0ij<N4-l;j+4-)printf(M%6.1f\tM,score[i][j]);printf(M\nM);getch();}voidaver(floatsco[][N+l]){intij;/***********space***********/fbr(i=O;i<[?];i++){fbr(j=Ou<N;j-H-)]sco[i][N]+=sco[i][j];sco[M][j]+=sco[i][j];sco[M][N]+=sco[i][j];)/***********space***********/sco[i][N][?]N;)fbr(j=O;j<Nj++)/***********space***********/sco[M][[?]]/=M;sco[M][N]=sco[M][N]/M/N;)答案:1).N+1或1+N或5 2).M或5 3)./= 4).j第21题(10.0分)题号:488【程序填空】功能:有一组基数值(正整数),输入一个正整数(小于100),问:如果该数由基数值相加构成(每个基数可以重复使用),那么最少可能利用的基数是多少个。#include<stdio.h>#include<stdlib.h>#defineMAXSIZE100#definemin(a,b)((a)<=(b)?(a):(b))

voidmain(void)intnum[MAXSIZE+l];intbase[]={1,3,4};intk=sizeof(base)/sizeof(int);intn;inti,j,MIN;charline[100];printf(“\n===——===");printfi(H\n\nBaseValues:”);for(i=0;i<k;i-H-)printf(M%d”,base[i]);printsH\n\nYourinputplease—>");gets(line);n=atoi(line);num[0]=0;num[l]=1;for(i=2;i<=n;i++)(/***********cpA(^p***********/fbr(j=O;j<k;j++)

if(i>=base[j])MIN=min(num[i-base[j]]+1,MIN);^***********gpy^(^E***********//***********gpy^Qp***********/printfi["\n\nMinimum=%d",[?]);答案:1).MIN=n2).num[i]=MIN3).num[n]第22题(10.0分)题号:408/♦ 【程序填空】功能:输入两个整数,求他们的按位与。#include<stdio.h>voidmain()iintx,y,z=0,a,b,k=l;scanfi(”%d,%d”,&x,&y);while(x>0&&y>0)a=x%2;/***********SPACE***********/x=[?];b=y%2;y=y/2;/***********SPACE***********/z=z+[?];k=k*2;)/***********SPACE***********/[?](”z=%d\n”,z);)3).printf答案:l).x/2 2).a*b*k或a*b*k3).printf第23题(10.0分)题号:406/* 【程序填空】功能:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。#include"stdio.hM#include<string.h>main()FILE*fp;charstr[100];inti=0;/***********gpy^(^E***********/if((fp=fopen(MtestM,[?]))=NULL)printfi[ncannotopenthefile\nH);exit(O);}printfi(Hpleaseinputastring:\nM);/***********space***********/gets([?]);while(str[i]!=,!T)/***********space***********/

str[i]=str[i]-32;fputc(str[i],fp);if/***********space***********/fclose([?]);fp=fopen(MtestM,MrM);fgets(str,strlcn(str)+l,fp);printf(H%s\nM,str);fclose(fp);.Str.str[i]<='z'或.Str.str[i]<='z'或'z*>=str[i]4).fp第24题(10.0分)题号:479/* 【程序填空】功能:十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人可向老师要•块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖?main()inti,count=0,a[11]={0,10,2,8,22,16,4,10,6,14,20};/***********space***********/while([?])for(i=l;i<=10;i++)a[i-l]=a[i-l]/2+a[i]/2;a[10]=a[10]/2+a[0];fbr(i=l;i<=10;i++)/***********space***********/if([?J)a[i]++;fbr(i=l;i<10;i++)/***********space***********/if(a[i]!=a[i+l])[?];if(i==10)break;elsea[0]=0;count-H-;printfi(,,count=%dnumber=%d\n",count,a[1]);答案:1).1 2),a[i]%2=1 3).break第25题(10.0分)题号:429【程序填空】功能:从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。#include<stdio.h>main()(intk,n,ij;printf("EnterINTnumber,with0toend\n");i=j=0;scanf("%d",&n);while(n!=0)(/***********space***********/if(n>0)i=[?];/***********space***********/if(n<O)j=[?];/***********SP/\CE***********/scanf("%d",[?!);printf("i=%4d\n",ij);)答案:1).i+1 2).j+1 3).&n第26题(10.0分)题号:475【程序填空】功能:下面create函数的功能是建立-一个带头结点的单向链表,新产生的结点总是插入在链表的末尾。输入0代表结束,单向链表的头指针作为函数值返回。*/#includc<stdio.h>#defincLENsizeofifstructstudent)structstudent(longnum;structstudent*next;};structstudent*creat()(structstudent*hcad=NULL,*tail;longnum;inta;/***********space***********/tail=([?])malloc(LEN);printf^^pleaseinputdate\nM);do(scanf(M%ldM,&num);/***********space***********/if([?]){/***********Space***********/if((?1)head=tail;elsetail=tail->next;tail->num=num;tail->next=(structlist*)malloc(LEN);)elsetail->next=NULL;}while(num!=O);retum(head);}main()(structstudent*p;p=creat();printfi[Hyouinputis\nM);

while(p){printf(H%d\nH,p->num);p=p->next;}答案:1).structstudent*2).num!=O或0!=num3).head=NULL第27题(10.0分)题号:437/* 【程序填空】功能:建立一个如下的二维数组,并按以下格式输出。1000101010001000101010001*/#includc"stdio.h"voidmain()inta[5][5]={0},*p[5]»ij;fbr(i=0;i<5;i++)/***********space***********/p[i]=[?];fbr(i=0;i<5;i++)/***********space***********/*([?]+i)=l;/***********space***********/*(p[i]+5-([?]))=1;}fbr(i=0;i<5;i-H-)fbr(j=0;j<5u++)printf("%2d",p[i]U]);/***********space***********/【?】;}答案:.p[i].i+1或答案:.p[i].i+1或1+1.putcharC\n');第28题(10.0分)题号:445【程序填空】功能:编程求任意给定的n个数中的奇数的连乘积,偶数的平方和以及0的个数,n通过scanf()函数输入。 */main()intr=l,s=O,t=O,n,a,i;primfTn=");scanfi("%d”,&n);fbr(i=l;i<=n;i-H-)printfCa=");/***********space***********/scanf<"%d",[?]);/***********space***********/if([?]!=0)/***********space***********/L/J=a;elseif(a!=O)/***********SPACE***********/s+=[?];elset++;printf(Mr=%d,s=%d,t=%d\n",r,s,t);答案:1).&a2).a%23).r*4).a*a第29题(10.0分)题号:25/♦ 【程序填空】功能:以下程序的功能如(图1)。/***********space***********/main()floatxfscanff%F,&x);/***********space***********/if(x<0)[?];/***********space***********/

else\f([?])f=2*x+l;elsef=sin(x)+5;/***********space***********/printfi("x=%f,y=%f\n",[?]);答案:1).#includc"math.h"或#include<math.h> 2).f=fabs(x+1)3).x<=5或5>=x或x<6或6>x或x>=0&&x<=5或0<=x&&x<=5或x>=0&&5>=x或0<=x&&5>=x或!(x>5) 4).x,f第30题(10.0分)题号:446/* 【程序填空】功能:编程求某年第n天的日期。用数组表示月天数。 */main()inty,m£n;inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("y,n=");scanfiCH%d,%dn,&y,&n);/***********space***********/f=y%4=0&&y%100!=0[?]y%400=0;/***********space***********/a[l][?]f;ifi(n<l||n>365+f)printf("error!\n");exit(0);/***********space***********/fbr(m=l;m[?]a[m-1];n-=a[m-1],m++);printfi[Hy=%d,m=%d,d=%d\n',,y,m,n);答案:1).||答案:1).||.+=或=a+.>第31题(10.0分)题号:481/* 【程序填空】功能:一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。编写程序求这个自然数。 */main()(inti,n,a;i=0;while(l){if{i%8=l){n=i/8;ifi(n%8=l){n=n/8;***********/if(n%8=7)[?];)}if(i%17==4)n=i/17;if(n%17=15)n=n/17;)if(2*a=n)(printf("result=%d\n",i);y***********gpy^(^E***********/[?];)/***********gpy^pg***********/「】;)}3),i++或++i3),i++或++i或i=i+l第32题(10.0分)题号:461【程序填空】功能:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。 */#include"stdio.h**main()]FILE*fp;charstr[100],filename[10];inti=0;if((m=fopen(”test“Jw")>=NULL){printsMcannotopenthefile\nM);exit(0);printf(^pleaseinputastring:\nn);gets(str);/***********QpA(-'p***********/while([?])if(str[i]>=,a,&&str[i]<=,z,)/***********space***********/fputc(str[i],fp);i++;}fclose(fp);/***********space***********/fp=fopen(MtestM,[?]);fgets(str,strlen(str)+l,fp);printf(H%s\nM,str);fclose(fp);答案:l).str[i]!=T 2).str[i]=str[i]-32或str[i]=str[i]-32 3).T或"wrH或Mwr+M第33题(10.0分)题号:21【程序填空】功能:将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。 */main()charstrl[80],str2[80];inti,n;/***********space***********/gets([?]);scanff%d”,&n);/***********space***********/for(i=0;[?];i++)/***********space***********//***********space***********/printf(M%s\nH,str2);答案:1).strl 2).i<n或n>i或i<=n-l或n-l>=i.str2[i]=strl[i]或*(str2+i)=*(strl+i)或*(str2+i)=strl[i]或str2[i]=*(strl+i).str2[n]^0'或str2[i]^0'或str2[n]=0或str2[i]=0或*(str2+n)='\0'或*(str2+i)=*\0'或*(str+n)=O或*(str2+i)=0第34题(10.0分)题号:13【程序填空】功能:产生并输出杨辉三角的前七行。1111 2 113311464 1151010 5 1161520 15 6 */main()(inta[7][7];inti,j,k;for(i=0;i<7;i++){a[i][0]=l;/***********space***********/[?];/***********space***********/fbr(j=lj<[?];j++)/***********space***********/a[i]U]=[?1;for(i=0;i<7;i++)/***********SPAC£***********/for(j=0;[?]J-H-)printf(M%6dM,a[i]g]);primffW”);2).i.a[i-l]U]+a[i-l]U-l]或a[i-l]U-l]+a[i-I][j].j<=i或i>=j或j<i+l或i+l>j或j-l<i或i>j-l第35题(10.0分)题号:424/* 【程序填空】功能:输出结果为:*****main()/***********space***********/staticchar[?)intij,k;charspace='fbr(i=0;i<5;i++)printfCW");/***********space***********/fbr(j=lj<=3*ij++)printf("%lc",[?]);/***********space***********/fbr(k=0;k<【?】;k++)printRn%3cH,a[k]);)printf(w\nM);;答案:1).a[5]或a[] 2).space或八 3).5或=4第36题(10.0分)题号:485/♦ 【程序填空】功能:统计子字符串substr在字符串str中出现的次数。例如:若字符串为"aaaslkaaas”,子字符串为“as”,则应输出字若字符串为"asasasa”,子字符串为“asa”,则应输出3 */#includc<stdio.h>fun(char*substr,char*str)intij,k,num=0;fbr(i=0;str[i];i++)fbr(j=i,k=0;substr[k]=str[j];k+4-j-H-)/****mc******Space***********/if(substr[[?]]=*\0')num++;/***********space***********/1八•returnnum;main()charstr[80],substr[80];printfi(HInputastring:");gets(str);printfi[HInputasubstring:M);gets(substr);/***********space***********/printf(H%d\nH,[?]);).Break.fun(substr,str)答案:l).k+l第37题(10.0分)题号:411.Break.fun(substr,str)/* 【程序填空】功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 */#definenmax50main()inti,k,m,n,num[nmax],*p;printf(Hpleaseinputthetotalofnumbers:M);scanf(M%dn,&n);p=num;/***********space***********/fbr(i=0;[?];i++)/***********space***********/*(p+i)=[?];i=0;k=0;m=0;while(m<n-l)/***********space***********/if([?]!=0)k++;if(k=3)*(p+i)=0;k=0;m++;if(i==n)i=0;/***********gpy^(^E***********/while([?])p++;printf("%disleft\n",*p);)*p=0答案:1).i<n或n>I2).i+1或i+1 3).*(p+i)或*(p+i*p=0第38题(10.0分)题号:35【程序填空】功能:计算并输出high以内最大的10个素数之和,high由主函数传给firn函数,若high的值为100,则函数的值为732。#include<conio.h>#includc<stdio.h>#include<math.h>intfun(inthigh)intsum=0,n=0,j,yes;/***********space***********/while((high>=2)&&([?]))yes=1;fbr(j=2;j<=high/2;j++)/***********SPACE***********/if([?])yes=O;break;}if(yes)sum+=high;n-H-;)high-;/***********space***********/r】•main(){clrscr();printf(M%d\nH,fun(100));}答案:1).n<10或10>n 2).high%j=0或!(high%j)3).returnsum或return(sum)第39题(10.0分)题号:28/♦ 【程序填空】功能:将十进制数转换成十六进制数。 */#include"stdio.h**#include"string.h1'main()inta,i;chars[20];printf(^^inputainteger:\nH);scanff%d”,&a);cl0_16(s,a);/***********space***********/fbr([?];i>=O;i-)printf(M%cn,s[i]);primff'W”);)cl0_16(charp[],intb){intj,i=O;/***********space***********/while([?])(j=b%16;if(j>=0&&j<=9)/***********spa「f***********/elsep[i]=j+55;b=b/16;i++;/***********space***********/【?】;)答案:1).i=strlen(s)-l或i=-l+strlen(s) 2).b>0或0<b或b!=0或0!=b或b.p[i]=j+'O"或p[i]=j+48或*(p+i)=j+'O'或*(p+i尸j+48.p[i]='O'或p[i]=O或p[i]=NULL或*(p+i)=W或*(p+i)=O或*(p+i尸NULL第40题(10.0分)题号:414/* 【程序填空】功能:通过函数的递归调用计算阶乘。longpower(intn)ilongf;ifi(n>l)/***********space***********/芹[?];elsef=l;retum(f);main()intn;longy;printff'inputainteagernumber:\n");/***********space***********/scanfif"%^,[?]);y=power(n);/***********space***********/printff%d!=%ld\n”,n,【?】);getch();3).power(n)或y答案:1).power(n-l)*n或power(n-1)*n3).power(n)或y第41题(10.0分)题号:454/* 【程序填空】功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c)).K4I,s=(a+b+c)/2,a>b、c为三角形三条边的长。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序,在程序中用带参数的宏求面积areao - *///include"math.hH/***********space***********/#【?】S(x,y,z)(x+y+z)/2#defineAREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z))main()floata,b,c,s,area;printf(Ma,b,c=M);/***********SPACE***********/scanfC%f,%£%f',&a,【?】,&c);ifi(a4-b>c&&b+c>a&&c+a>b)/***********space***********/

s=[?];/***********SPACE***********/area=[?];printfi(,,arca=%f\n",area);)}答案:1).Define2).&b 3).S(a,b,c)第42题(10.0分)题号:6【程序填空】功能:以下程序是用选择法对10个整数按升序排序。 ♦//***********spa「f***********/main()(intij,k,t,a[N];fbr(i=0;iv=N・l;i++)scanfitH%dH,&a[i]);fbr(i=0;ivN・l;i++){/***********spa「f***********//***********space***********/for(j=i+l;[?]y++)iflfa[j]<a[k])k=j;/***********space***********/if([?])(t=a[i];a[i]=a[k];a[k]=t;)}printfi(Houtputthesortedarray:\nH);fbr(i=0;i<=N-l;i-H-)printf(M%5dM,a[i]);printffW");答案:l),#defineN104).AREA(s,a,b,c)2).k=i4).k!=i3).j<N或N>j或jv=N・l或4).AREA(s,a,b,c)2).k=i4).k!=i第43题(10.0分)题号:417【程序填空】功能:利用全局变量计算长方体的体积及三个面的面积。 */intsl,s2,s3;intvs(inta,intb,intc){intv;/***********space***********/v=[?];sl=a*b;/***********space***********/s2=[?];s3=a*c;returnv;main()(intv,l,w,h;clrscr();printfif^ninputlength,widthandheight:/***********space***********/scanf("%d%d%d",[?],&w,&h);/***********space***********/v=[?];s3=%d\nH,v,sI,s2,s3);2).b*cs3=%d\nH,v,sI,s2,s3);2).b*c或b*c4).vs(l,w,h)或vs(1,w,h))答案:1).a*b*c或a*b*c3).&1第44题(10.0分)题号:30【程序填空】功能:输入字符串,再输入一个字符,将字符串中与输入字符相同的字符删除。 */#include"stdio.hMvoidfun(chara[],charc)

intij;/***********SPACE***********/fbr(i=j=0;[?];i++)if(a[i]!=c)a|j++]=a[i];/***********space***********/【?】;main()chara[20],cc;gets(a);/***********space***********/[?];/***********space***********/r»】•puts(a);2),aWW或a[j]=NULL或a[j]=04).fun(a,cc)答案:2),aWW或a[j]=NULL或a[j]=04).fun(a,cc)3).cc=getchar()或scanf("%c",&cc)第45题(10.0分)题号:407/* 【程序填空】功能:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,设原有的数据和计算出的平均分数存放在磁盘文件"stud"中。#include"stdio.hnstructstudent(charnum[6];charname网;intscore[3];floatavr;}stu[5];main()inti,j,sum;FILE*fp;/*input*/fbr(i=0;i<5;i-H-)printf(M\npleaseinputNo.%dscore:\n**,i);printff'stuNo:");scanf(M%s",stu[i].num);printf(,,name:n);scanf(M%s",stu[i].name);sum=0;/***********spa「f***********/for(j=O;[?]j++){printf("score%d."j+l);scanf("%d",&stu[i].score(j]);/***********spa「f***********/sum+=stu[i].[?];}stu[i].avr=sum/3.0;}fp=fopen(,,stud,,;,w,');/***********space***********/fbr(i=0;i<5;【?])/***********space***********/ifi(fwrite(&stu[i],sizeof([?]),l,fp)!=l)printf(Mfilewriteerror\n");fclose(fp);}4).structstudent答案:1).卜3或3习 2).scorefj]3).i-H-或++i或i=i+l4).structstudent第46题(10.0分)题号:471【程序填空】功能:给出一个正整数,找到一组连续的数,使之累加和等于给定的正整数。输出存在多少组这样连续的数,及每组的左右边界。例如:15=1+2+3+4+515=4+5+615=7+8所以结果有3组值分别是1->5,4->6,7->8#include<stdio.h>#include<stdlib.h>voidmain(void)longleft,right;longsum;longGIVEN;intcount=0;charline[100];printfi(H\nConsecutivesumtoafixedgivennumber");printf(n\n==============\nn);printfl(H\nYournumber(>0)please->");gets(line);GIVEN=atol(line);for(sum=0,right=1;sum<GIVEN;sum+=right,right++)for(left=1,right—;left<=GIVEN/2;)if(sum>GIVEN)(sum-=left;/***********space***********/【?】;)elseif(sum==GIVEN)printfi("\n%ld=sumfrom%ldto%ldH,GIVEN,left,right);/***********space***********/r?i:/***********space***********/[?];sum+=right;if(count>0)printf(M\n\nThereare%dsolutionsintotal.count);elseprintfi[M\n\nSorry,thereisNOsolutionatall.");}答案:1).left—或left=left+l或++left.count-H-或count=count-H-或-H-count或count=count+1.right++或right=right-H-或-H-right或right=right4-1第47题(10.0分)题号:451【程序填空】功能:编程求任意给两个日期(Y0年MO月DO日和Y1年Ml月D1日)相差的天数。*/main()inty1,ml,d1,y2,m2,d2,n,i;printf(My1,m1,d1-t);scanff%d,%d,%d”,&yl,&ml,&d1);/***********space***********/ifi(ml<l||ml>12||dl<l||dl>[?])exit(O);printfi(Hy2,m2,d2=H);scanf(,,%d,%d,%d",&y2,&m2,&d2);/***********space***********/ifi(m2<l||m2>12||d2<l||d2>[?])exit(O);iRyl>y2||y1=y2&&ml>m2||y1=y2&&m1==m2&&dl>d2)n=yl;yl=y2;y2=n;n=ml;ml=m2;m2=n;n=dl;dl=d2;d2=n;else/***********space***********/n=yend(y1,m1,d1)+[?];/***********space***********/fbr(i=【?】;ivy2;i++)n+=365+Ri);)printfi[H%d.%d.%d一>%d.%d.%d:n=%d\nM,y1,ml,dI,y2,m2,d2,n);intf(inty)retum(y%4==0&&y%100!=0||y%400=0);intmday(inty,intm)retum(31・((m==4)+(m==6)+(m=9)+(m==1l))-(3-f)[y))*(m==2));intyday(inty,intm,intd)retum(d+31*((m>1)+(m>3)+(m>5)+(m>7)+(m>8)+(m>10))+30*((m>4)+(m>6)+(m>9)+(m>11))+(28+f(y))*(m>2));)intyend(inty,intm,intd)(retum(365+f(y)-yday(y,m,d));}答案:1).mday(yl,ml)2).mday(y2,m2)3).yday(y2,m2,d2)4).yl+1或1+yl第48题(10.0分)题号:398/* 【程序填空】功能:打印出如下图案(菱形)*****#include<stdio.h>main()intij,k;/***********space***********/fbr(i=0;[?];i++)for(j=0j<=4-iy++)printf("");/***********space***********/fbr(k=l;k<=[?];k++)printfT*");pr血/***********space***********/for([?]u<3J++)

fbr(k=0;k<j+3;k++)printff");fbr(k=0;k<5-2*j;k++)printff*");printffW”);}或3>=i或4>i或l+2*i或或3>=i或4>i或l+2*i或l+i*2题号:402.2*i+l或i*2+l.j=0第49题(10.0分)/* 【程序填空】功能:输入三个整数x,y,z,请把这三个数由小到大输出。 */main()intx,y,z,t;scanff'%d%d%d”,&x,&y,&z);/***********space***********/if(x>y){【?】}/***********space***********/if(x>z){[?]}/***********space***********/if(y>z){[?]}printf(Hsmalltobig:%d%d%d\nH,x,y,z);答案:1).t=x;x=y;y=t;2).t=z;z=x;x=t;3).t=y;y=z;z=t;第50题(10.0分)题号:489/* 【程序填空】功能:hsequence是一组山。和1组成的数列,它定义如下:<h-seq>=0<h-seq>=1<h-seq><h-seq>利用函数检测输入的字符串是否是h_sequence数列 */#include<string.h>#define YES 1#define NO 0inth_sequence(charx[])intlength=[?];intcount;inti;for(count=1,i=0;count!=0&&i<length;i++)switch(x[i])(case'O'xount-;break;case*r:count-H-;break;default:retumNO;}/***********SPACE***********/return[?]&&i>=length;#include<stdio.h>voidmain(void)£Icharline[100];printf(H\n\nInputastringof0and1—>M);gets(line);/***********space***********/if([?]=YES)printfi[M\n***InputisaHsequence*****);elseprintf(H\n***InputisNOTaHsequence***n);)答案:1).strlen(x) 2).count=0 3).hseque

温馨提示

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

评论

0/150

提交评论