计算机高级语言程序设计源程序_第1页
计算机高级语言程序设计源程序_第2页
计算机高级语言程序设计源程序_第3页
计算机高级语言程序设计源程序_第4页
计算机高级语言程序设计源程序_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

四、上机操作题

1.利用VC++2005控制台应用程序的步骤调试下面的程序,并写出运行结果.

(1)

行include<iostream>

usingnamespacestd;

voidmain()

(

cout«"ThisisaM<<Hn;

cout<<nC++program.",<<"\n,';

}

(2)

♦include<iostream>

usingnamespacestd;

voidmain()

(

inta,b,c;

COUt<<n请输入两个数字:”;

cin>>a>>b;

c=a+b;

cout<<a<<n+"«b<<,,=',<<c<<endl;

)

【例2-1]短整型数据使用例程。

/**********************************************

例2-1短整型数据使用例程

**********************************************/

#include<iostream>

usingnamespacestd;

voidmain()

(

unsignedshortx;

cout<<”请输入一个0~65535之间的整数:n;

cin>>x;

cout<<”您输入的是:"<<x<<endl;

)

【例2-2】字符型数据使用例程。

/*********************************************

例2-2字符型数据使用例程

*********************************************/

#include<iostream>

usingnamespacestd;

voidmain()

(

charch;

cout<<”请输入一个字符:,

cin>>ch;

cout<<”您输入的是:,,<<ch«endl;

)

【例2-3】数据类型的自动转换。

/******************************************

例2-3数据类型的自动转换

******************************************/

♦include<iostream>

usingnamespacestd;

voidmain(void)

(

chara=*x1;

intb=3,f=2;

floatc=2.5678;

doubled=5.2345;

longe=32L;

cout<<a-b+d/c-e*f«endl;

}

【例2-4]数据类型的强制转换。

/******************************************

例2-4数据类型的强制转换

■A:*****************************************/

#include<iostream>

usingnamespacestd;

voidmain()

intx=3,y=2;

floatfl,f2;

fl=7.0;

f2=fl+(float)x/y;//等价于f2=f1+float(x)/y;

cout<<nf2="<<f2<<endl;

)

【例2・5】使用数学运算符的简短程序。

例2-5使用数学运算符的简短程序

********************************************

tinclude<iostream>

usingnamespacestd;

voidmain()

(

inta,b,

doubled;

a=10+4;//加法运算符

b=a-20;//减法运算符

c=a*b;〃乘法运完符

d=c/2.5;//除法运算符

e=a%2;〃取余运算符

cout<<na=H«a<<endl;

cout<<nb=n<<b<<endl;

cout<<nc="<<c<<endl;

cout<<nd=n«d<<endl;

cout«"e="«e<<endl;

【例2-6】使用关系运算符的简短程序。

/*************************************

例2-6使用关系运算符的简短程序

普include<iostream>

usingnamespacestd;

voidmain()

inta,b,C;

a=6;

b=3;

c=a>b;//大于运算符

cout«nc="<<c«endl;

c=a<b;〃小于运算符

cout<<nc="<<c<<endl;

c=a==3;//等丁•运算符

cout<<nc=M<<c<<endl;

c=a>=b;//大于等于运算符

cout<<nc=M<<c<<endl;

c=a<=b;〃小于等于运算符

cout<<"c="<<c<<endl;

c=a!=b;〃不等于运算符

cout«nc=M<<c<<endl;

}

【例2-7]对下列情况编制程序:

如果年龄小于或等于55岁,身体健康,则准予办理人寿保险;

如果年龄小于或等于55岁,身体不健康,则不予办理人寿保险:

如果年龈大于55岁,则不予办理人寿保险。

用逻辑与运算符来组合这些条件,得出需要的结果,"I以使用1F语句(在后面的章节中讲

述IF语句)。下面是实现上述功能的程序:

tinclude<iostream>

usingnamespacestd;

voidmain()

(

charlife-insurance;

charhealth;

intage=50;

health=*B*;

if(age<=55&&health==*G*)

1ife_insurance=*Y,;

if(age<=55&&health==*B1)

life_insurance='N*;

if(age>55)

1ife_insurance=1N';

if(life_insurance==*Y*)

cout<<"符合购买保险的条件,,<<endl;

if(life_insurance==,N')

cout<<"不符合购买保险的条件"<<endl;

}

例2-7可用II运算符重写为:

存include<iostream>

usingnamespacestd;

voidmain()

(

charlife_insurance;

charhealth;

intage=50;

health='B*;

if(age<=55&&health==*G*)

life_insurance=*Y,;

if((age<=55&&health==*B*)I|(age>55))

1ife_insurance='N';

if(life_insurance==,Y')

cout<<"符合购买保险的条件"<<endl;

if(life_insurance==,N')

cout«"不符合购买保险的条件"<<endl;

}

【例2-8】将129与-97按位与。

/*★★★**★★★★★****,***★*****★★★*****★★★****★★

例2-8将129与-97按位与

*****************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

(

inta=129;

intb=-97;

intc;

c=a&b;

cout«"c=n<<c<<endl;

}

【例2・9】将129与-97按位或。

例2-9将129与-97按位或

linclude<iostream>

usingnamespacestd;

voidmain()

(

inta=129;

intb=-97;

intc;

c=aIb;

cout<<nc=n<<c<<endl;

)

【例2-10]将129与-97按位异或。

/******************************************

例2-10将129与-97按位异或

******************************************/

存include<iostream>

usingnamespacestd;

voidmain()

(

inta=129;

intb=-97;

intc;

c=aAb;

cout<<nc=M<<c<<endl;

}

【例2-11】前后缀自增(减)运算符。

/*****************************************

例2-n前后缀自增(减)运算符

*it***************************************/

tinclude<iostream>

usingnamespacestd;

voidmain()

inta=100;

intb=200;

intc;

c=a++;〃自增运算符后缀

cout<<'*c="<<c<<endl;

〃自减运算符后缀

«c<<endl;

c=++a;//自增运和符前缀

cout<<Mc="«c<<endl;

c=--b;//自减运算:符前缀

cout<<Mc="«c<<endl;

该程序的等价程序如下:

存include<iostream>

usingnamespacestd;

voidmain()

inta=100;

intb=200;

intc;

c=a;

a=a+1;//c=a++

cout<<Mc=11<<c<<endl;

c=b;

b=b-1;//c=b—

cout<<Mc=n<<c<<endl;

a=a+1;

c=a;//c=++a

cout<<Mc=n«c<<endl;

b=b-1;

c=b;//c=——b

cout<<Mc=n«c<<endl;

【例2-12】sizeof运算符应用示例。

例2-12sizeof运算符应用示例

****************************************/

#include<iostream>

usingnamespacestd;

voidmain()

(

floatf;

cout<<"sizeoffloatisn<<sizeof(f)<<n\nH

cout<<"sizeofintis'*<<sizeof(int)«endl;

)

【例2-13]条件运算符的使用。

/*****************************************

例2-13条件运算符的使用

*****************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

(

inta,b;

b=0;

a=(b?2:4);

cout<<Ma="<<a<<endl;

}

【例2・14】逗号运算符的使用。

例2-14逗号运算符的使用

frinclude<iostream>

usingnamespacestd;

voidmain()

(

inta,b,c,d;

d=(a=l,b=a+2,c=b+3);

cout<<nd="<<d<<endl;

)

【例3・1】指l^#endif预处理指令。

例3-1*if和4endif预处理」旨令

***************************************

tinclude<iostream>

usingnamespacestd;

♦defineDEBUG1

voidmain()

(

#ifDEBUG

cout<<"调试状态"<<endl;

#endif

cout<<"运行状态"«endl;

}

【例3-2】#ifdef,#else和#endif的使用。

/**************************************

例3-2#ifdef,#e1se和#6血1£的使用

***************************************

#include<iostream>

usingnamespacestd;

♦defineDEBUG

voidmain()

(

#ifdefDEBUG

cout<<"调试状态"<<endl;

#else

cout<<"非调试状态"<<endl;

#endif

cout<<”运行状态,,<<endl;

)

【例3-3]#elif预处理指令。

/****************************************

例3-3#elif预处理指令

♦include<iostream>

usingnamespacestd;

#defineDEBUG1

#defineTESTING0

tdefineEXPERIMENTAL0

voidmain()

(

#ifDEBUG

cout<<"调试状态"<<endl;

#elifTESTING

cout<<"测试状态"«endl;

#elifEXPERIMENTAL

cout<<”实验状态”«endl;

#else

cout<<"非运行状态"<<endl;

#endif

cout<<"运行状态"<<endl;

}

【例3・4】输入输出流使用。

例3-4输入输出流使用

#include<iostream>

usingnamespacestd;

voidmain()

intx;floaty;longz;

cout<<"请输入x,y,z的数值:n;

cin»x>>y>>z;

cout<<"x="<<x<<ny=u<<y<<Mz=n<<z«endl;

【例3-5]C++控制符使用示例。

/****************************************

例3-5C++控制符使用示例

#include<iostream>

usingnamespacestd;

♦include<iomanip>//要用到格式控制符

voidmain()

doublenum_amountl=37.0/7;

cout<<nunuamount1<<endl;

doublenum_amount2=3.141592;

cout<<setprecision(1)<<num_amountl<<endl;

cout«setprecision(5)«num_amountl<<endl;

cout<<setiosflags(ios:::scientific)<<:nuni_amount1<<endl

cout<<setiosflags(ios:::fixed);

cout<<setprecision(8);

cout<<setw(12)<<num_.amount2«endl;

}

【例4-1】下面的程序等待键入・个字符,如果是'b',则响铃。

/************************************************

例4-1下面的程序等待键入一个字符,如果是'b',则响铃

普include<iostream>

usingnamespacestd;

存include<conio.h>

voidmain()

cout<<"请输入一个字符使机器发出响铃:"<<end1;

charch=getchar();

if(ch==*br)

cout<<*\a';

)

【例4-2】根据考试成绩的等级输出百分制分数段。

#include<iostream>

usingnamespacestd;

voidmain()

(

chargrade;

cout«”请输入学生成绩:“«endl;

cin»grade;

switch(grade)

case1A,cout<<n90-100\nM

case,B1cout<<"80~89'n";

case1c,cout<<n70~79\nn;

casecout<<n60~69\nn;

case'E'cout<<"0~59\n”;

default:cout<<nerror\nn;

}

【例4-3]根据学生的分数输出其成绩等级。

♦include<iostream>

usingnamespacestd;

voidmain()

(

intgrade;

cout<<"请输入学生成绩:n<<endl;

cin»grade;

if(grade>=90&&grade<=100)

cout<<"A\nH;

elseif(grade>=80&&grade<=89)

cout<<"B\n";

elseif(grade>=70&&grade<=79)

cout<<nC\nn;

elseif(grade>=60&&grade<=69)

cout<<nD\nM;

elseif(grade>=0&&grade<=59)

cout<<"F\nH;

else

cout<<"error\nn;

}

【例4-4】求1+2+3+...+99+100的值。

/********************************************

例4-4求1+2+3+...+99+100的值

********************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

inti=lzsum=0;//变量初始化

while(i<=100)

sum=sum+i;

i=i+1;

)

cout<<"sum=M<<sum<<endl;

}

【例4-5]试编写一个程序,输入一系列字符,遇到字符“#"后不再分类计数,将这一系

列字符分成四类计数,即字符X、y、z为第一类,字符$为第二类,字符为第三类,其余为

第四类,最后输出分类计数结果。

#include<iostream>

usingnamespacestd;

voidmain()

intletzque,smi,oth;

charc;

let=que=smi=oth=0;

cin>>c;

while(c!='#')

switch(c)

case*x,

case

case'z'let++;break;

case*$*que++;break;

case*.,smi++;break;

default:oth++;break;

}

cin>>c;

cout«n\nH;

cout<<Mletter=n«let<<endl;

cout<<nque=n<<que<<endl;

cout«nsmi=n<<smi«endl;

cout«nother=n<<oth<<endl;

}

【例4-6]while语句嵌套使用例程。

例4-6while语句嵌套使用例程

*******************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

(

intk=l,j;

while(k<=5)

(

j=l;

while(j<=k)

{

cout<<n#n;

j++;

}

k++;

cout<<n\n";

}

)

【例4-7]for语句嵌套使用例程一输出九九口诀表。

/******************************************

例4-7for语句嵌套使用例程-输出九九口诀表

******************************************/

存include<iostream>

usingnamespacestd;

voidmain()

(

intj,i,p;

cout«

for(i=l;i<=9;i++)

{

cout.width(4);

cout<<i;

cout«endl;

for(i=l;i<=9;i++)

cout.width(4);

cout<<i;

for(j=l;j<=i;j++)

(

P=i*j;

cout.width(4);

cout«p;

}

cout<<endl;

【例4・8】判断输入的数据是否为素数。

例4-8判断输入的数据是否为素数

#include<iostream>

usingnamespacestd;

voidmain()

(

intn,k,flag;

cout<<”请输入一个数:”;

cin»n;

for(k=2;k<n;k++)

(

if(n%k==0)

(

flag=0;

break;

)

else

flag=1;

}

if(flag==1)

cout<<n«"是素数"«endl;

else

cout<<n<<"不是素数"«endl;

}

【例4-9]寻找100以内的所有素数。

/************************************

例4-9寻找100以内的所有素数

#include<iostream>

usingnamespacestd;

voidmain()

{

inti,j,flag;

cout<<"2,n;

for(i=3;i<=100;i++)

(

flag=l;

for(j=2;j<i;j++)

I

if(i%j==0)

{

flag=0;

break;

}

)

if(flag==l)

(

cout<<i<<n,M;

continue;

}

【例4-10】求1加到100的和。

/★★★★*★★*★★★*************★★★***★★★★★★★

例4-10求1加到100的和

**************************************

frinclude<iostream>

usingnamespacestd;

voidmain()

inti=lzsum=O;

Loop:

sum+=i++;

if(i<=100)

gotoLoop;

cout«n1~100的和为:"<<sum<<endl;

}

【例4-11】找到两个数其乘积为45并且两个数小于10,输出这两个数。

/****************************************************

例4-11找到两个数其乘积为45并且两个数小于10,输出这两个数

****************************************************/

#include<iostream>

usingnamespacestd;

voidmain()

(

inti,j;

for(i=l;i<10;i++)

for(j=l;j<10;j++)

if(i*j==45)

gotoEnd;

End:〃循环体外

cout«i<<«j<<”=45"<<endl;

}

【例4-12】判明素数。

/****************************************

例4-12判明素数

****************************************/

♦include<iostream>

usingnamespacestd;

#include<math.h>

voidmain(doublem)

(

intn;

n=(int)m;

cout<<”请输入一个数:n;

cin>>m;

intsqrtm;

sqrtm=(int)(sqrt(m));

intflag;

for(inti=2;i<=sqrtm;i++)

(

flag=l;

if(n%i==0)

(

flag=0;

break;

}

}

if(flag==l)

cout«m<<"是素数"<<endl;

else

cout«m<<"不是素数"«endl;

}

【例4-13】译密码。

为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。这

里我们使用的加密方法是将字母按序后移5位。

tinclude<iostream>

usingnamespacestd;

voidmain()

(

charc,d;

cin>>c;

while(c!='\n*)

(

cin>>c;

if((c>=*A'&&c<=*Z*)||(c>=*a*&&c<='z'))

{

d=c+5;

if(c>,Z'&&c<=,Z'+5||c>1z1)

d=c-26;

}

cout<<d;

求阶乘之和

【例4-15】

求阶乘之和

#include<iostream>

usingnamespacestd;

intmain()

(

longsum=0;

1ongsum_t=1;

for(inti=l;i<=15;i++)

(

for(intj=l;j<=i;j++)

sum_t二sum_t*j;

sum=sum_t+sum;

sum_t=1;

)

,z

cout<<sum=”《suni<<endl;

cin»sum;

}

}

【例5-1】把0~10的整数按逆序输出。

/******************************************

例5-1把0~10的整数按逆序输出

******************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

(

inti,a[11];

for(i=0;i<=10;i++)

a[i]=i;

for(i=10;i>=0;i--)

cout«a[i];

【例5-2】定义一个数组,其中后一个元素的值是前一个元素值的平方加1。

/******************************************************

例5-2定义一个数组,其中•后个元素的值是前•个元素值的平方加1

******************************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

(

inti,a[5];

a[0]=6;

for(i=0;i<4;i++)

(

a[i+l]=a[i]*a[i]+l;

cout<<a[i]<<endl;

)

)

【例5-3]求Fibonacci数列前20个数。

/********************************************

例5-3求Fibonacci数列前20个数

********************************************/

这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。

即:

FlT(n=l)

F2T(n=2)

Fn=Fn-l+Fn-2(nM3)

程序代码如下:

♦include<iostream>

usingnamespacestd;

♦include<iomanip>

voidmain()

(

longfl,f2;

inti;

fl=f2=l;

for(i=l;i<=l0;i++)

(

cout<<fl<<"«f2«"n;

if(i%2==0)

cout<<endl〃每输出个数后换行,使每行输出个数

fl=fl+f2;//左边的£1代表增值后的数

f2=f2+fl;//右边的fl是上一语句中左边的fl

【例5-4]编写程序,对输入的数据进行排序。

/********************************************

例5-4编写程序,对输入的数据进行排序

********************************************/

#include<iostream>

usingnamespacestd;

voidmain()

(

inttemp,i;

intarray[[={3,5,9,11,33,6,-9,-77,123,103);

cout«”排序前的数组为:n;

for(i=0;i<10;i++)

cout«array[i]«n,

cout<<endl;

for(intpass=0;pass<9;pass++)

(

for(i=0;i<9-pass;i++)

(

if(array[i]>array[i+l])〃一次交换

{

temp=array[i];

array[i]=array[i+1];

array[i+1]=temp;

I

)

}

cout«”排序后的数组为:n;

for(i=0;i<10;i++)

cout<<array[i]«n,n;

cout«endl;

}

【例5-5】将一个二维数组行和列元素互换,存到另一个二维数组中。

例如:

”F1144'

a=P'F行列互换后存放在b数组中b=2255

445566-,

程序如下:

/***************************************************

例5-5将一个二维数组行和列元素互换,存到另一个二维数组中

***************************************************/

♦include<iostream>

usingnamespacestd;

voidmain()

(

inta[2][3]={{11,22,33),{44,55,66));

intb[3][2],izj;

cout<<"Sti0.a:"«endl;

for(i=0;i<=l;i++)

(

for(j=0;j<=2;j++)

{

cout«a[i][j]<<"

b[j][i]=a[i][j];〃数组元素的行列互换

}

cout<<endl;

}

cout<<"数组b:"<<endl;

for(i=0;i<=2;i++)

I

for(j=0;j<=l;j++)

cout«b[i][j]<<n

cout<<endl;

)

}

【例5-6】表格处理应用:简易学生成绩查询系统。设学生成绩表如表5-2所示。

表5-2学生成绩表

学生序号课程1课程2课程3课程4课程5课程6

学生1807966506066

学生2598875707889

学生3799070606874

学生4848075568281

程序如下:

tinclude<iostream>

usingnamespacestd;

voidmain()

(

intselect,i,j;

floataverage,sum;

intscore[5][7]={

{0},

{0,80,79,66,50,60,66},

{0,59,88,75,70,78,89},

(0,79,90,70,60,68,74),

{0,84,80,75,56,82,81}

);〃初始化学生成绩数组

sum=0;

average=0;

cout<<"本系统有3种功能供选择”<<endl;

cout«nl.按学生序号查询该学生的平均成绩”<<endl;

cout«"2.按课程号查询本门课程学生的平均成绩"<<endl;

cout«"3.按学生序号和课程号查询本门课程学生的成绩n«en<H;

cout请选择功能1-3:n<<endl;

cin>>select;//保存选择的功能序号

switch(select)

I

case1:

cout<〈"请输入学号:n«endl;

cin>>i;

for(j=l;j<7;j++)

(

cout"”学生序号为:"<<i<〈”的学生成绩为:"〈〈score[i][j]«endl;

sum=sum+score[i][j];

)

average=sum/6;

couti<<"此学生的平均成绩为:',<<average<<endl;

break;

case2:

cout<<"请输入课程号:"<<endl;

cin>>j;

for(i=l;i<5;i++)

(

。。泣<<“课程号为:"<.

cout«n学生本门课程的成绩为:"<<score[i][j]«endl;

sum=sum+score[i][j];

)

average=su

温馨提示

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

评论

0/150

提交评论