改错编程题_填空改错编程题库

2020-02-27 其他范文 下载本文

改错编程题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“填空改错编程题库”。

实验二 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)的值。

m0n1Acm(m,n)Acm(m1,1)n0

Acm(m1,Acm(m,n1))n0,m0参考程序:

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

《改错编程题.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
改错编程题
点击下载文档
相关专题 填空改错编程题库 填空改错编程题库
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文