計算機高級語言程序設計源程序_第1頁
計算機高級語言程序設計源程序_第2頁
計算機高級語言程序設計源程序_第3頁
計算機高級語言程序設計源程序_第4頁
計算機高級語言程序設計源程序_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

四、上機操作題

1.利用VC++2005控制臺應用程序的步驟調(diào)試下面的程序,并寫出運行結(jié)果.

(1)

行include<iostream>

usingnamespacestd;

voidmain()

(

cout?"ThisisaM<<Hn;

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

}

(2)

?include<iostream>

usingnamespacestd;

voidmain()

(

inta,b,c;

COUt<<n請輸入兩個數(shù)字:”;

cin>>a>>b;

c=a+b;

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

)

【例2-1]短整型數(shù)據(jù)使用例程。

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

例2-1短整型數(shù)據(jù)使用例程

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

#include<iostream>

usingnamespacestd;

voidmain()

(

unsignedshortx;

cout<<”請輸入一個0~65535之間的整數(shù):n;

cin>>x;

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

)

【例2-2】字符型數(shù)據(jù)使用例程。

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

例2-2字符型數(shù)據(jù)使用例程

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

#include<iostream>

usingnamespacestd;

voidmain()

(

charch;

cout<<”請輸入一個字符:,

cin>>ch;

cout<<”您輸入的是:,,<<ch?endl;

)

【例2-3】數(shù)據(jù)類型的自動轉(zhuǎn)換。

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

例2-3數(shù)據(jù)類型的自動轉(zhuǎn)換

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

?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]數(shù)據(jù)類型的強制轉(zhuǎn)換。

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

例2-4數(shù)據(jù)類型的強制轉(zhuǎn)換

■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】使用數(shù)學運算符的簡短程序。

例2-5使用數(shù)學運算符的簡短程序

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

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歲,則不予辦理人壽保險。

用邏輯與運算符來組合這些條件,得出需要的結(jié)果,"I以使用1F語句(在后面的章節(jié)中講

述IF語句)。下面是實現(xiàn)上述功能的程序:

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<<"調(diào)試狀態(tài)"<<endl;

#endif

cout<<"運行狀態(tài)"?endl;

}

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

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

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

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

#include<iostream>

usingnamespacestd;

?defineDEBUG

voidmain()

(

#ifdefDEBUG

cout<<"調(diào)試狀態(tài)"<<endl;

#else

cout<<"非調(diào)試狀態(tài)"<<endl;

#endif

cout<<”運行狀態(tài),,<<endl;

)

【例3-3]#elif預處理指令。

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

例3-3#elif預處理指令

?include<iostream>

usingnamespacestd;

#defineDEBUG1

#defineTESTING0

tdefineEXPERIMENTAL0

voidmain()

(

#ifDEBUG

cout<<"調(diào)試狀態(tài)"<<endl;

#elifTESTING

cout<<"測試狀態(tài)"?endl;

#elifEXPERIMENTAL

cout<<”實驗狀態(tài)”?endl;

#else

cout<<"非運行狀態(tài)"<<endl;

#endif

cout<<"運行狀態(tài)"<<endl;

}

【例3?4】輸入輸出流使用。

例3-4輸入輸出流使用

#include<iostream>

usingnamespacestd;

voidmain()

intx;floaty;longz;

cout<<"請輸入x,y,z的數(shù)值: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<<"請輸入一個字符使機器發(fā)出響鈴:"<<end1;

charch=getchar();

if(ch==*br)

cout<<*\a';

)

【例4-2】根據(jù)考試成績的等級輸出百分制分數(shù)段。

#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]根據(jù)學生的分數(shù)輸出其成績等級。

?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]試編寫一個程序,輸入一系列字符,遇到字符“#"后不再分類計數(shù),將這一系

列字符分成四類計數(shù),即字符X、y、z為第一類,字符$為第二類,字符為第三類,其余為

第四類,最后輸出分類計數(shù)結(jié)果。

#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】判斷輸入的數(shù)據(jù)是否為素數(shù)。

例4-8判斷輸入的數(shù)據(jù)是否為素數(shù)

#include<iostream>

usingnamespacestd;

voidmain()

(

intn,k,flag;

cout<<”請輸入一個數(shù):”;

cin?n;

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

(

if(n%k==0)

(

flag=0;

break;

)

else

flag=1;

}

if(flag==1)

cout<<n?"是素數(shù)"?endl;

else

cout<<n<<"不是素數(shù)"?endl;

}

【例4-9]尋找100以內(nèi)的所有素數(shù)。

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

例4-9尋找100以內(nèi)的所有素數(shù)

#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】找到兩個數(shù)其乘積為45并且兩個數(shù)小于10,輸出這兩個數(shù)。

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

例4-11找到兩個數(shù)其乘積為45并且兩個數(shù)小于10,輸出這兩個數(shù)

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

#include<iostream>

usingnamespacestd;

voidmain()

(

inti,j;

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

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

if(i*j==45)

gotoEnd;

End:〃循環(huán)體外

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

}

【例4-12】判明素數(shù)。

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

例4-12判明素數(shù)

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

?include<iostream>

usingnamespacestd;

#include<math.h>

voidmain(doublem)

(

intn;

n=(int)m;

cout<<”請輸入一個數(shù):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<<"是素數(shù)"<<endl;

else

cout?m<<"不是素數(shù)"?endl;

}

【例4-13】譯密碼。

為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收報人再按約定的規(guī)律將其譯回原文。這

里我們使用的加密方法是將字母按序后移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的整數(shù)按逆序輸出。

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

例5-1把0~10的整數(shù)按逆序輸出

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

?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】定義一個數(shù)組,其中后一個元素的值是前一個元素值的平方加1。

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

例5-2定義一個數(shù)組,其中?后個元素的值是前?個元素值的平方加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數(shù)列前20個數(shù)。

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

例5-3求Fibonacci數(shù)列前20個數(shù)

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

這個數(shù)列有如下特點:第1、2個數(shù)為1、1。從第3個數(shù)開始,每個數(shù)是其前面兩個數(shù)之和。

即:

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〃每輸出個數(shù)后換行,使每行輸出個數(shù)

fl=fl+f2;//左邊的£1代表增值后的數(shù)

f2=f2+fl;//右邊的fl是上一語句中左邊的fl

【例5-4]編寫程序,對輸入的數(shù)據(jù)進行排序。

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

例5-4編寫程序,對輸入的數(shù)據(jù)進行排序

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

#include<iostream>

usingnamespacestd;

voidmain()

(

inttemp,i;

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

cout?”排序前的數(shù)組為: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?”排序后的數(shù)組為:n;

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

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

cout?endl;

}

【例5-5】將一個二維數(shù)組行和列元素互換,存到另一個二維數(shù)組中。

例如:

”F1144'

a=P'F行列互換后存放在b數(shù)組中b=2255

445566-,

程序如下:

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

例5-5將一個二維數(shù)組行和列元素互換,存到另一個二維數(shù)組中

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

?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];〃數(shù)組元素的行列互換

}

cout<<endl;

}

cout<<"數(shù)組b:"<<endl;

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

I

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

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

cout<<endl;

)

}

【例5-6】表格處理應用:簡易學生成績查詢系統(tǒng)。設學生成績表如表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}

);〃初始化學生成績數(shù)組

sum=0;

average=0;

cout<<"本系統(tǒng)有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<〈”的學生成績?yōu)椋?〈〈score[i][j]?endl;

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

)

average=sum/6;

couti<<"此學生的平均成績?yōu)?',<<average<<endl;

break;

case2:

cout<<"請輸入課程號:"<<endl;

cin>>j;

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

(

。。泣<<“課程號為:"<.

cout?n學生本門課程的成績?yōu)?"<<score[i][j]?endl;

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

)

average=su

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論