改错编程题_填空改错编程题库
改错编程题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“填空改错编程题库”。
实验二 VC++流程控制语句
(一)二 程序设计题
1、编写程序,输入一个不多于5位的整数,求出它是几位数,并分别打印出每一位数字,再按逆序打印出各位数字。
2、编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形。若能,则判断组成的是等腰、等边、直角还是一般三角形;若不能,则输出相应的信息。
1、参考程序 方法一:
#include void main(){
int m,a,b,c,d,e;cout>m;a=m%10;//个位 b=m/10%10;//十位 c=m/100%10;//百位 d=m/1000%10;//千位 e=m/10000;//万位
if(e!=0)cout
个
5位
数,“
逆
序
各
位
数
字
是”
else if(d!=0)cout
else if(c!=0)cout
3位数,“
else if(b!=0)cout
else cout
} //当输入数字是012时,其实输入的是八进制数,对应的十进制是10。
方法二:
#include void main(){
int a,b,c;//b表示所输入数的位数
cout>a;cout
for(b=0;a;b++)
{
c=a%10;
cout
a=a/10;
}
cout
} }
2、参考程序 #include void main(){
} int a,b,c;cout>a>>b>>c;if(a+b>c&& a-b
if(a==b&&b==c&&c==a)//错误的a==b==c cout
cout
else if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)
cout
else
cout
(二)
1、从键盘输入整数n,求n的阶乘。
2、从键盘输入若干个实数,以输入0结束。设计一程序,分别统计正数的个数和负数的个数,并求出正数之和、负数之和及总平均值
3、设计一个程序,求出满足以下条件的最小n值和s值:
s=1+2+3……….+n, 且s>=600
4、用二分法解方程f(x)=0的具体算法如下:
(1)输入x1,x2,直至f(x1)与f(x2)异号,说明方程在x
1、x2之间有解。
(2)求x1和x2的中点x0.(3)如果f(x0)与f(x1)同号,表明方程的解在x0与x2之间,用x0取代x1;否则方程的解在x0与x1之间,用x0取代x2.(4)如果f(x0)的值足够小,则方程的近似解为x0;否则重复执行步骤(2)、(3)、(4),直至f(x0)足够小。
(5)输出方程的解x0.2要求用二分法求解方程x+4x-4=0.参考程序:
1、#include void main(void){
}
2、#include void main(void){ float a,s1=0,s2=0;int m=0,n=0;
cin>>a;while(a){
if(a>0){ m++;s1+=a;} else{ n++;s2+=a;int i=1,n;long int s=1;cout>n;while(i>a;} cout
cout
3、cout void main(){ int n=0,s=0;while(s ++n;} s+=n;cout 4、#include #include void main(){ } float x0,x1,x2;double y0,y1,y2;do{ cout>x1>>x2;y1=x1*x1+4*x1-4;y2=x2*x2+4*x2-4;}while(y1*y2>0); x0=(x1+x2)/2;y0=x0*x0+4*x0-4;do{ if(y0*y1>0){x1=x0;y1=y0;} else {x2=x0;y2=y0;}//可以不要y2=y0;x0=(x1+x2)/2;y0=x0*x0+4*x0-4;}while(fabs(y0)>1e-5);cout (三) 二、改错题 答案: 增加 #include j=sqrt(i);修改为: int j=sqrt(i);if(i%n=0)break;修改为:if(i%n==0)break;if(k/5=0)cout 三、编程设计题 1、设计一个程序,输出所有的水仙花数。所谓水仙化数是一个三为数,其各位数字的立方和等于该数本身。列如153是一个水仙化数。水仙花数的算法分析: 1)用穷举法对100~999之间的每个数验证,验证公式为:x=h*h*h+d*d*d+n*n*n 2)分解一个3位数x的百位、十位和个位。 2、求出1000以内所有完全数,并输出。例如6就是一个完全数,6的因数共有4个: 1、2、3、6,除了6自身这个因数外,其他的3个因数都是它的真因数,把6的所有真因数都加起来,正好等于6这个自然数本身。具有这种性质的自然数叫做完全数。 参考程序: 1、#include void main(){ int x,h,d,n;cout h=i/100;d=i/10%10;n=i%10;x=h*h*h+d*d*d+n*n*n;if(i==x)cout 2、#include void main(){ } int s;for(int i=1;i } s=0;for(int j=1;j s+=j;if(s==i)cout 实验三 函数与编译预处理(一) 三、改错题 答案: 增加#include int isprime(n)修改为:int isprime(int n)if(n%i==0)break;修改为:if(n%i==0)return 0;if(!isprime(k))修改为:if(isprime(k)) 四、编程设计题 1、设计一程序,计算组合数:C(m,r)=m!/(r!*(m-r)!),其中m,r为正整数,且m>r.分别求出C(4,2).C(6,4).C(8,7)的组合数。求阶乘和组合数须用函数来实现。 2、阿克曼函数定义如下,其中m、n为正整数,设计一个程序,分别求出Acm(3,2)和Acm(2,2)的值。 m0n1Acm(m,n)Acm(m1,1)n0 Acm(m1,Acm(m,n1))n0,m0参考程序: 1、#include long int jc(int n){ if(n==1)return 1;return n*jc(n-1);} long int zh(int m,int r){ int c; } if(m void main(void){ } 2、#include long int Acm(int m,int n){ int c;if(m==0)return n+1;cout } if(n==0)return Acm(m-1,1);if(n>0&&m>0){ c=Acm(m,n-1);return Acm(m-1,c);} void main(){ } int m,n;cout>m>>n;cout 实验三 函数与编译预处理(二) 三、改错题 答案: 在main()的上面增加语句int gys(int x,int y);return y;修改为:return x; 三、编程设计题 1、设计一程序,将求两个实数的最大值函数放在头文件myfun.h中,在源程序文件mypro.cpp中包含该头文件,并实现输入三个实数,求最大值。 2、设计一程序,定义重载函数area,分别求圆和长方形的面积。 3、用递归法将一个整数n转换成字符串。例如,输入整数567,应输出字符串“567”。n的位数不确定,可以是任意的整数。参考程序: 1、//myfun.h float max(float x, float y){ float z;if(x>y)z= x;else z=y;return z;} //mypro.cpp #include #include”myfun.h“ void main(){ float a,b,c;cin>>a>>b>>c; cout 2、#include #define PI 3.14 double area(float r){ return PI*r*r;} double area(float a,float b){ return a*b;void main(){ } float r=2.5, a=2,b=1.2;cout 3、#include void fun(int n){ } int a,b;a=n%10;b=n/10;if(b)fun(b);cout int m; } cin>>m;cout 实验四 数组的应用 (一) 一、程序设计题 1、定义一个10个整数的数组,从键盘输入数据,设计一程序,找出其中最大的偶数和最大的奇数(若设有奇数时,输出“没有奇数!”,若没有偶数,输出“没有偶数!”)。 2、输入一组非0整数(以输入0作为输入结束标志)到一维数组中。设计一程序,求出这一组数的平均值,并分别统计出这一组数中正数和负数的个数。参考程序: 1、#include void main(){ int a[10],b[10],c[10]; int max1,max2,j=0,k=0,m,n,t;cout>a[i];for(i=0;i if(a[i]%2){ b[j++]=a[i];n=j;} else { c[k++]=a[i];m=k;} } if(j==0)cout max1=b[0];coutmax1)max1=b[i];} cout for(i=0;imax2)max2=c[i];} cout 2、#include void main(){ int a[100; } int,j=0,k=0,t;float avg,s=0;cout>a[i];s+=a[i];i++;}while(a[i-1]);t=i-1;cout0)j++;else if(a[i] 实验四 数组的应用 (二) 四、编程题 1、设计一程序,用cin.getline()将一个字符串输入到字符数组s(char s[200])中,删除字符串的所有空格后输出。参考程序 //方法一: #include #include void main(){ } //法二: #include #include char s[200],t[200];int i=0,j=0;cout void main(){ char s[200];int i=0;cout cin.getline(s,200);cout