您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 二级(C语言程序设计)上机题汇总
1二级(C语言程序设计)上机题汇总一、程序调试题(一)程序填空练习一:/*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/#includestdio.h#includemath.h#definef(x)x*x-5*x+sin(x)voidmain(){intx;floatmax;____max=f(1);____for(x=2;x=10;x++)___if(maxf(x))max=f(x);___printf(%f\n,max);}练习二:/*该程序功能:输入三个整数,按由小到大的顺序输出这三个数。*/#includestdio.hvoidswap(__int*pa,int*pb____){/*交换两个数的位置*/inttemp;temp=*pa;*pa=*pb;*pb=temp;}voidmain(){inta,b,c,temp;scanf(%d%d%d,&a,&b,&c);if(ab)swap(&a,&b);if(bc)swap(&b,&c);if(__ab___)swap(&a,&b);printf(%d,%d,%d,a,b,c);}练习三:/*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/#includestdio.h2voidDec2Bin(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*/#includestdio.hvoidf(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;in;i++)printf(%5d,x[i]);printf(\n);}练习五:/*该程序功能:输出6~1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3,28=1+2+4+7+14,则6,28都是完数)*/#includestdio.hvoidmain(){inti,j,s;for(i=6;i=1000;i++){___s=1;___3for(j=2;___ji___;j++)if(i%j==0)s+=j;if(s==i)printf(%d\n,s);}}练习六:/*该程序功能:输入整数n(n0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。*/#includestdio.hvoidmain(){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*/#includestdio.hvoidf(int*a,intn,intk){inti,j,t;for(i=0;ik;i++){_t=a[0];for(j=1;jn;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;i7;i++)printf(%5d,x[i]);printf(\n);}练习八:/*该程序功能:调用函数f,求二维数组a中全体元素的和.*/#includestdio.hfloatf(_float*x[],intm,intn_____){floaty=0;inti,j;for(i=0;im;i++)for(j=0;jn;j++)y=y+*(*(x+i)+j);returny;4}voidmain(){floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];inti;for(i=0;i3;i++)b[i]=__a[i]__;printf(%.2f\n,f(b,3,4));}练习九:/*该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。*/#includestdio.h#includemath.hvoidmain(){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项的值。*/#includestdio.h__longf(intn);voidmain(){printf(%ld\n,f(30));}longf(intn){if(_____n=2)return1;elsereturnf(n-1)+f(n-2);}练习十一:/*该程序功能:输入m,n(要求输入均大于0,且m=n),输出它们的最大公约数*/#includestdio.h5voidmain(){intm,n,k;while(scanf(%d%d,&m,&n),m0||n0||mn);for(k=n;n%k!=0||m%k!=0;k--);printf(%d\n,k);}练习十二:/*程序功能:输入一个整数后,输出该数的位数,如3114,则输出4。*/#includestdio.hvoidmain(){intn,k=0;scanf(“%d”,&n);while(n!=0){k++;n=n/10;}printf(“%d\n”,k);}练习十三:/*程序功能:调用函数f,计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*xx,当x=1.7时的值。*/#includestdio.hfloatf(float,float*,int);voidmain(){floatb[5]={1.1,2.2,3.3,4.4,5.5};printf(%f\n,f(1.7,b,5));}floatf(floatx,float*a,intn){floaty=a[0],t=1;inti;for(i=1;in;i++){t=t*x;y=y+a[i]*t;}returny;}练习十四:/*程序功能:调用函数f,从字符串中删除所有的数字字符。*/#includestdio.h#includestring.h#includectype.hvoidf(char*s){inti=0;while(s[i]!='\0')if(isdigit(s[i]))strcpy(s+i,s+i+1);6elsei++;}(二)程序修改练习一:/*该程序功能:运行是输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。*/#includestdio.h#includemath.hvoidmain(){intn,s=0;scanf(%d,&n);n=fabs(n);/********1*******/while(n1){//n1改成ns=s+n%10;/********2******/n=n%10;//n=n%10;改成n=n/10;}printf(%d\n,s);}练习二:/*该程序功能:输入m,n(要求输入均大于0,且m=n),输出它们的最小公倍数*/#includestdio.hvoidmain(){intm,n,k;/********1*********/while(scanf(%d%d,&m,&n),m0&&n0);//m0&&n0改成m0||n0||mnfor(k=m;k%n!=0;)/********2********/k=k+n;//k=k+n;改成k=k+m;printf(%d\n,k);}练习三:/*该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母,输出该字符串。*/#includestdio.h#includestring.h#includestdlib.hvoidmain(){intn,i;7/*****1*****/charstr;//charstr;改成char*str;scanf(%d\n,&n);str=(char*)malloc(n);gets(str);/*****2*****/for(i=1;istrlen(str);i++)//i=1;改成i=0;或istrlen(str);改成i=strlen(str);if(str[i]='a'&&str[i]='z')str[i]=str[i]-('a'-'A');puts(str);}练习四:/*该程序功能:输人1个字符串,按字母出现次序输出其中所出现过的大写英文字母。如运行时输入字符串“FONTNAMEandFILENAME”应输出“FONTAMEIL”。*/#includestdio.hvoidmain(){charx[80],y[26];inti,j,ny=0;gets(x);for(i=0;x[i]!='\0';i++)if(x[i]='A'&&x[i]='Z'){for(j=0;jny;j++)/*****1*****/if(y[i]==x[j])continue;//y[i]==x[j]改成y[j]==x[i]continue;改成break;if(j==ny){y[ny]=x[i];ny++;}}/*****2*****/for(i=0;i26;i++)//i26;改成iny;printf(%c,y[i]);printf(\n);}练习五:/*程序功能:将一个char型数的高4位和低4位分离,分别输出,如22(二进制:00010110)输出1,6*/#includestdio.hvoidmain(){chara,b1,b2,c;scanf(%d,&a);/******1******/b1=a4;/*b1存放高4位*///b1=a4;改成b1=a4;c=~(~04);/******2******/b2=a|c;/*b2存放低4位*///b2=a|c;改成b2=a&c;printf(%d,%d,b1,b2);}8练习六:/*在考生目录下的Paper子目录下,有Modify.c文件,该文件中”/*****N*****/”的下一行中有错误,请改正(注意:不得加行,减行,加句,减句,否则后果自负)。该程序功能:输入x和正数,eps计算多项式1-x+x*x/2!-x*x*x/3!….的和直到末项的绝对值小于eps为止。*/#includestdio.h#includemath.hvoidmain(){floatx,eps,s=1,t=1,i=1;scanf(%f%f,&x,&eps);do{/*****1*****/t=-t*x/++i;//t=-t*x/++i;改成t=-t*x/i++;s+=t;/*****2*****/}while(fabs(t)=eps)//少;printf(%f\n,s);}练习七:/*程序功能:输入n,输出n的所有质数因子,(如n=13860,输出2、2、3、3、5、7、11)。*/#includestdio.hvoidmain(){intn,i;scanf(“%
本文标题:二级(C语言程序设计)上机题汇总
链接地址:https://www.777doc.com/doc-3261912 .html