人人范文网 范文大全

改错编程题

发布时间:2020-03-02 00:05:58 来源:范文大全 收藏本文 下载本文 手机版

实验二 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

编程题小结

编程题总结

编程题总结

英语改错押题

高考改错真题

c语言编程题

短文改错真题(一)

c语言编程题答案

C语言期末考试编程题

VB编程题及答案

改错编程题
《改错编程题.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档