二级(C语言程序设计)上机题汇总_第1页
二级(C语言程序设计)上机题汇总_第2页
二级(C语言程序设计)上机题汇总_第3页
二级(C语言程序设计)上机题汇总_第4页
二级(C语言程序设计)上机题汇总_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

二级(C语言程序设计)上机题汇总二级(C语言程序设计)上机题汇总二级(C语言程序设计)上机题汇总xxx公司二级(C语言程序设计)上机题汇总文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度二级(C语言程序设计)上机题汇总一、程序调试题(一)程序填空练习一:/*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/#include<>#include<>#definef(x)x*x-5*x+sin(x)voidmain(){intx;floatmax;____max=f(1);____for(x=2;x<=10;x++)___if(max<f(x))max=f(x);___printf("%f\n",max);}练习二:/*该程序功能:输入三个整数,按由小到大的顺序输出这三个数。*/#include<>voidswap(__int*pa,int*pb____){/*交换两个数的位置*/inttemp;temp=*pa;*pa=*pb;*pb=temp;}voidmain(){inta,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b)swap(&a,&b);if(b>c)swap(&b,&c);if(__a>b___)swap(&a,&b);printf("%d,%d,%d",a,b,c);}练习三:/*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/#include<>voidDec2Bin(intm){intbin[32],j;for(j=0;m!=0;j++){bin[j]=__m%2___;m=m/2;}for(;j!=0;j--)printf("%d",____bin[j-1]______);}voidmain(){intn;scanf("%d",&n);Dec2Bin(n);}练习四:/*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1346*/#include<>voidf(int*a,int*m){inti,j;for(i=0;i<*m;i++)if(a[i]<0){for(j=i--;j<*m-1;j++)a[j]=a[j+1];___*m=*m-1;___}}voidmain(){inti,n=7,x[7]={1,-2,3,4,-5,6,-7};_f(x,&n);_____for(i=0;i<n;i++)printf("%5d",x[i]);printf("\n");}练习五:/*该程序功能:输出6~1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3,28=1+2+4+7+14,则6,28都是完数)*/#include<>voidmain(){inti,j,s;for(i=6;i<=1000;i++){___s=1;___for(j=2;___j<i___;j++)if(i%j==0)s+=j;if(s==i)printf("%d\n",s);}}练习六:/*该程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。*/#include<>voidmain(){intm=0,t=1,n;while(__scanf(“%d”,&n),n<=0___);while(!(t<=n&&t*2>=n)){___t=t*2;___m++;}printf("%d\n",m);}练习七:/*该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4567123*/#include<>voidf(int*a,intn,intk){inti,j,t;for(i=0;i<k;i++){_t=a[0];for(j=1;j<n;j++)a[j-1]=a[j];a[n-1]=t;}}voidmain(){inti,x[7]={1,2,3,4,5,6,7};f(x,7,3);for(i=0;i<7;i++)printf("%5d",x[i]);printf("\n");}练习八:/*该程序功能:调用函数f,求二维数组a中全体元素的和.*/#include<>floatf(_float*x[],intm,intn_____){floaty=0;inti,j;for(i=0;i<m;i++)for(j=0;j<n;j++)y=y+*(*(x+i)+j);returny;}voidmain(){floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];inti;for(i=0;i<3;i++)b[i]=__a[i]__;printf("%.2f\n",f(b,3,4));}练习九:/*该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。*/#include<>#include<>voidmain(){intn,s=0;scanf("%d",&n);____n=fabs(n);____while(n!=0){____s+=n%10;____n=n/10;}printf("%d\n",s);}练习十:/*该程序功能:数组的第1,2项均为1,此后各项值均为该项前二项之和。计算数组第30项的值。*/#include<>__longf(intn);voidmain(){printf("%ld\n",f(30));}longf(intn){if(_____n==1||n==2)return1;elsereturnf(n-1)+f(n-2);}练习十一:/*该程序功能:输入m,n(要求输入均大于0,且m>=n),输出它们的最大公约数*/#include<>voidmain(){intm,n,k;while(scanf("%d%d",&m,&n),m<=0||n<=0||m<n);for(k=n;n%k!=0||m%k!=0;k--);printf("%d\n",k);}练习十二:/*程序功能:输入一个整数后,输出该数的位数,如3114,则输出4。*/#include<>voidmain(){intn,k=0;scanf(“%d”,&n);while(n!=0){k++;n=n/10;}printf(“%d\n”,k);}练习十三:/*程序功能:调用函数f,计算代数多项式+*x+*x*x+*x*x*x+*x*x*xx,当x=时的值。*/#include<>floatf(float,float*,int);voidmain(){floatb[5]={,,,,};printf("%f\n",f,b,5));}floatf(floatx,float*a,intn){floaty=a[0],t=1;inti;for(i=1;i<n;i++){t=t*x;y=y+a[i]*t;}returny;}练习十四:/*程序功能:调用函数f,从字符串中删除所有的数字字符。*/#include<>#include<>#include<>voidf(char*s){inti=0;while(s[i]!='\0')if(isdigit(s[i]))strcpy(s+i,s+i+1);elsei++;}(二)程序修改练习一:/*该程序功能:运行是输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。*/#include<>#include<>voidmain(){intn,s=0;scanf("%d",&n);n=fabs(n);/********1*******/while(n>1){和直到末项的绝对值小于eps为止。*/#include<>#include<>voidmain(){floatx,eps,s=1,t=1,i=1;scanf("%f%f",&x,&eps);do{/*****1*****/t=-t*x/++i;,a[i].y);,&a[i].y);for(i=0;i<n;i++)if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)printf("%f,%f\n",a[i].x,a[i].y);}练习十:程序功能:分别统计字符串中所有英文字母中的各元音字母个数。#include<>#include<>voidmain(){chara[80];intn[5]={0},i;gets(a);for(i=0;a[i]!='\0';i++)/*****1*****/switch(toupper(a[i])){....的值,并将其值以格式"%.6f"写到考生目录中Paper下目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;inti;floatx=,t=,y=;floata[10]={,,,,,,,,,};/*考生在这里添加程序*/y=a[0];p=fopen("","w");for(i=1;i<10;i++){t=t*x;y+=a[i]*sin(t);}fprintf(p,"%.6f",y);fclose(p);}练习三:/*设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值一格式"%f"写到考生目录中Paper下目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;inti;floatx=,t=1,y=0;floata[10]={,,,,,,,,,};/*考生在这里添加程序*/y=a[0];p=fopen("","w");for(i=1;i<10;i++){t=t*x;y+=a[i]*t;}fprintf(p,"%f",y);fclose(p);}练习四:/*设计程序:累加a字符串各个字符的ASCII码值,然后将累加和以形式“%d”写到考生目录中Paper下目录下的新建文件中*/#include<>voidmain(){FILE*p;ints=0,i=0;char*a="r235%^%34cdDW,.";/*考生在这里添加程序*/p=fopen("","w");for(;a[i]!='\0';i++)s+=a[i];fprintf(p,"%d",s);fclose(p);}练习五:/*设计程序:寻找并输出11到999之间的数m,它满足m,m*m,m*m*m均为回文数。所谓回文数是指各位数字左右对称,例如121,676,94249等。满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。请编制函数intJSValue(longm)实现此功能,如果是回文数,则函数返回为1,反之则返回0。*/#include<>#include<>#include<>intJSValue(longm){/*考生在这里添加程序*/inta[10],i=0,n;while(m){a[i]=m%10;m=m/10;i++;}for(--i,n=i;i>n/2;i--)if(a[i]!=a[n-i])return0;return1;}voidmain(){FILE*p;longm;p=fopen("","w");for(m=11;m<1000;m++){if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m))fprintf(p,"%ld",m);}fclose(p);}练习六:/*设计程序:数列各项为1,1,2,3,5,8,13,21,…,求其前40项之和,并将求和的结果以格式“%d”写到考生目录下的新建文件中*/#include<>voidmain(){FILE*p;longs=0,i,a[40];/*考生在这里添加程序*/p=fopen("","w");for(i=0;i<40;i++){if(i==1||i==0)a[i]=1;elsea[i]=a[i-2]+a[i-1];}for(i=0;i<40;i++)s+=a[i];fprintf(p,"%d",s);fclose(p);}练习七:/*设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,…的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以“%.6f”写到考生目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;floats=1,t=1,i=3;/*考生在这里添加代码*/p=fopen("","w");do{t=-t*i*(i-1);s=s+1/t;i+=2;}while(fabs(1/t)>=1e-5);fprintf(p,"%.6f",s);fclose(p);}练习八:/*设计程序:a,b,c为区间[1,100]的整数,统计使等式c/(a*a+b*b)=1成立的所有解的个数(若a=1,b=3,c=10是1个解,则a=3,b=1,c=10也是解)。*/#include<>voidmain(){FILE*p;intn=0,a,b,c;/*考生在这里添加代码*/p=fopen(“”,”w”);for(a=1;a<=100;a++)for(b=1;b<=100;b++)for(c=1;c<=100;c++)if(c==(a*a+b*b))n++;fprintf(p,“%d”,n);fclose(p);}练习九:/*设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式“%.5f”写到考生目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;inti;floatk=0;floatx[10]={,,,,,,-5,,,},d,v=0;for(i=0;i<10;i++)v+=x[i];v=v/10;d=fabs(x[0]-v);/*考生在这里添加代码*/p=fopen("","w");k=x[0];for(i=0;i<10;i++)if(d>fabs(x[i]-v)){d=fabs(x[i]-v);k=x[i];}fprintf(p,"%.5f",k);fclose(p);}练习十:/*设计程序:在正整数中找出1个最小的,被3,5,7,9除余数分别为1,3,5,7的数,将该数以格式“%d”写到考生的目录下的新建文件中*/#include<>#include<>voidmain(){/*考生在这里添加代码*/FILE*p;inti;p=fopen(“”,”w”);for(i=1;;i++)if((i%3==1)&&(i%5==3)&&(i%7==5)&&(i%9==7))break;fprintf(p,"%d",i);fclose(p);}练习十一:/*设计程序:将满足条件pow,n)<1e6<pow,n+1)的n,pow,n)值以格式“%d,%.0f”写到生目录下的新建文件中*/#include<>#include<>voidmain(){floaty=;intn=1;FILE*p;/*考生在这里添加代码*/p=fopen(“”,”w”);for(;pow(y,n)>1e6||pow(y,n+1)<1e6;n++);fprintf(p,"%d,%.0f",n,pow,n));fclose(p);}练习十二:/*设计程序:计算2的平方根,3的平方根,…,10的平方根之和,要求计算结果具有小数点后10有效位数,以“%.10f\n”写到考生的目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;/*考生在这里添加代码*/floatx=0;inti;p=fopen("","w");for(i=2;i<=10;i++)x+=sqrt(i);fprintf(p,"%.10f",x);fclose(p);}练习十三:/*设计程序:将a数组的每1行均除以该行上绝对值最大的元素,然后将a数组写到考生的目录的新建文件中*/#include<>#include<>voidmain(){floata[3][3]={{,,},{2,3,},{3,4,}};FILE*p;floatx;inti,j;/*考生在这里添加代码*/for(i=0;i<3;i++){x=a[i][0];for(j=0;j<3;j++)if(fabs(x)<fabs(a[i][j]))x=a[i][j];for(j=0;j<3;j++)a[i][j]=a[i][j]/x;}p=fopen("","w");for(i=0;i<3;i++){for(j=0;j<3;j++)fprintf(p,"%",a[i][j]);fprintf(p,"\n");}fclose(p);}练习十四:/*设计程序:x[i],y[i]分别表示平面上1个点的x,y坐标,求下列5点各点间距离总和,并将该数以格式“%.4f”写到考生的目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;floats,x[5]={,,,,};floaty[5]={7,,,,};inti,j;/*考生在这里添加代码*/p=fopen("","w");s=0;for(i=0;i<4;i++)for(j=i+1;j<5;j++)s+=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));fprintf(p,"%.4f",s);fclose(p);}练习十六:/*设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依次递增。将每个字符的权重值,以格式“%d”写到考生的目录下的新建文件中*/#include<>#include<>voidmain(){FILE*p;inti,w;char*s="we45*&y3r#$1";/*考生在这里添加代码*/p=fopen(“”,”w”);for(i=0;s[i]!='\0';i++){w=s[i]*i;fprintf(p,”%d”,w);}fclose(p);}练习十七:/*程序设计:在6至1000内找出所有的合数,用语句“fprintf(p,”%6d”,n);”输出。说明(某个数等于其诸因子之和,则该数为合数:6=1+2+3,28=1+2+4+7+14,6,28都是合数)*/#include<>voidmain(){FILE*p;intn,j,s;/*考生在这里添加代码*/p=fopen(“”,”w”);for(n=6;n<=1000;n++){s=0;for(j=1;j<n;j++)if(n%j==0)s+=j;if(s==n)fprintf(p,"%d\n",n);}fclose(p);}练习十八:/*程序设计题:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式"%d"写入到考生目录下新建的文件。说明:若a、b、c是1个解,则a、c、b也是1个解,等等。*/#include<>voidmain(){FILE*p;intx,y,z,k=0;/*考生在这里添加代码*/p=fopen(“”,”w”);for(x=-45;x<45;x++)for(y=-45;y<45;y++)for(z=-45;z<45;z++)if(x*x+y*y+z*z==2000)k++;fprintf(p,”%d”,k);fclose(p);}练习十九:/*程序设计题:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写到考生目录下新建文件。*/#include<>#include<>#definelen(x1,y1,x2,y2)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))voidmain(){FILE*p;inti,j;floatc,minc;floatx[]={,,,,,,,,,};floaty[]={-6,,,,,,,,,};minc=len(x[0],y[0],x[1],y[1]);/*考生在这里添加代码*/p=fopen("","w");for(i=0;i<10;i++)for(j=0;j<10;j++){c=len(x[i],y[i],x[j],y[j]);if(i!=j&&minc>c)minc=c;}fprintf(p,"%f",minc);fclose(p);}练习二

温馨提示

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

最新文档

评论

0/150

提交评论