您的位置:首页 > 其它

第三周作业

2014-03-31 21:54 211 查看
课本例题1:

#include "stdafx.h"

#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

cout<<"numerb of bytes in int is "<<sizeof(int)<<endl;

cout<<"numerb of bytes in long int is "<<sizeof(long)<<endl;

cout<<"numerb of bytes in shott int is "<<sizeof(short)<<endl;

cout<<"numerb of bytes in float is "<<sizeof(float)<<endl;

cout<<"numerb of bytes in double is "<<sizeof(double)<<endl;

cout<<"numerb of bytes in long double is "<<sizeof(long double)<<endl;

cout<<"numerb of bytes in char is "<<sizeof(char)<<endl;

return 0;

}

课本例题2:

// 课本第二章.cpp : 定义控制台应用程序的入口点。

//功能:布尔类型使用举例

#include "stdafx.h"

#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

bool a=true;

cout<<a<<endl;

cout<<boolalpha<<a<<endl;

cout<<a+5<<endl;

a=0;

cout<<"执行语句a=0;后a的值为:"<<boolalpha<<a<<endl;

a=0.0;

cout<<"执行语句a=0.0;后a的值为:"<<a<<endl;

cout<<"执行语句a=0.0;后a的值为:"<<boolalpha<<a<<endl;

return 0;

}

程序3

// 课本第二章.cpp : 定义控制台应用程序的入口点。

//功能:赋值语句表达式语句的运用

#include "stdafx.h"

#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

int a,b,c,d,t;

a=4;

b=a;

a=5;

c=d=6;

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

cout<<"b="<<b<<endl;

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

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

c*=a;

d%=a+b;

//等价于:

//d=d%(a+b);

t=a; //交换a b的值

a=b; //

b=t; //

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

cout<<"b="<<b<<endl;

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

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

return 0;

}

程序4

// 课本第二章.cpp : 定义控制台应用程序的入口点。

//功能:数据溢出举例

#include "stdafx.h"

#include<iostream>

using namespace std;

int main()

{

short a,b,c,d;

char i,j;

a=10000;

b=10000;

c=a+b;

d=a*b;

i=a;

j=225;

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

cout<<"d="<<d<<endl; //

cout<<"i="<<i<<endl; //

cout<<"j="<<j<<endl;

return 0;}

程序6

// 课本第二章.cpp : 定义控制台应用程序的入口点。

//功能:强制类型转换

#include "stdafx.h"

#include<iostream>

using namespace std;

int main()

{

int ab,bc;

double b=3.14;

char c='A';

ab=int(b);

bc=int(c);

cout<<"b="<<b<<endl;

cout<<"ab="<<ab<<endl;

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

cout<<"bc="<<bc<<endl;

return 0;

}

// 课本第二章.cpp : 定义控制台应用程序的入口点。

//功能:强制类型转换

#include "stdafx.h"

#include<iostream>

using namespace std;

int main()

{

int ab,bc;

double b=3.14;

char c='A';

ab=int(b);

bc=int(c);

cout<<"b="<<b<<endl;

cout<<"ab="<<ab<<endl;

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

cout<<"bc="<<bc<<endl;

return 0;

}

2.输入三角形三个边,求周长和面积

// 课本第二章.cpp : 定义控制台应用程序的入口点。

//功能:已知三角形三边求面积和周长

#include "stdafx.h"

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

double a,b,c,S,P,t;//a,b,c为三边,S为面积,P为周长

char key=1,exit,K;

while(key)

{

cout<<"请分别输入三角形的三个边:"<<endl;

cin>>a>>b>>c;

P=a+b+c;

t=P/2;

S=sqrt(t*(t-a)*(t-b)*(t-c));

cout<<"该三角形的面积为:"<<S<<endl

<<"该三角形的周长为:"<<P<<endl;

K=1;

cout<<"是否计算下一个?enter:Y or N"<<endl;

while (K)

{

cin>>exit;

if(exit=='Y'||exit=='y')

{key=1;K=0;}

else if(exit=='N'||exit=='n')

{key=0;K=0;}

else

cout<<"无效按键,按N结束,按Y计算下一个"<<endl;

}

}

return 0;

}

课本习题3

// xiti31.cpp : 定义控制台应用程序的入口点。

//课本习题3.(1)(2)编成一个了

#include "stdafx.h"

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

int e=1,f=4,g=2,a=7;

float m=10.5,n=4.0,k;

float x=2.5,y=4.7,z;

k=(e+f)/g+sqrt((double)n)*1.2/g+m;

//(e+f)/g=2,

//sqrt((double)n)=2.0,

//sqrt((double)n)*1.2/g=1.2;

//k=2+1.2+10.5

z=x+a%3*(int(x+y)%2)/4;

//括号优先int(x+y)=7,

//int(x+y)%2=1,

//a%3=1,

//a%3*(int(x+y)%2)=1,

//a%3*(int(x+y)%2)/4=0,

//z=x+a%3*(int(x+y)%2)/4=2.5+0=2.5

cout<<"k="<< k<<endl

<<"z="<<z<<endl;

return 0;

}

4.编写一个求一元二次方程的程序

// jieercifangc1.cpp : 定义控制台应用程序的入口点。

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

**输入一元二次方程的系数求解方程***

**可以输出虚数! ! ! ! ! ! ! ! ! **/

#include "stdafx.h"

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

double a,b,c,x1,x2,t,Re,Im;

cout<<"请分别输入方程二次项、一次项、常数项系数"<<endl;

cin>>a>>b>>c;

t=b*b-4*a*c;

//可以使用幂函数pow(),

//t=pow(b,2)-4*a*c;

if(t>=0)

{

x1=(-b+sqrt(t))/(2*a);

x2=(-b-sqrt(t))/(2*a);

cout<<"x1="<<x1<<endl

<<"x2="<<x2<<endl;

}

else

{

Re=(-b)/(2*a);

Im=sqrt(-t)/(2*a);

cout<<"X1="<<Re<<"+"<<Im<<"i"<<endl;

cout<<"X2="<<Re<<"-"<<Im<<"i"<<endl;

}

return 0;

}

5.确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果

// jiamijiemin1.cpp : 定义控制台应用程序的入口点。

//设计算法加密和解密

#include "stdafx.h"

#include<iostream>

#include<cstring>

using namespace std;

#define uchar unsigned char

uchar jiami(uchar s); //加密函数

uchar jiemi(uchar s); //解密函数

uchar _crol_ (uchar a,int b);//自定义循环左移函数

uchar _cror_ (uchar a,int b);//自定义循环右移函数

int main()

{

uchar i,k,mima,yuanma;

char xm[20]; //姓名存放数组

char jxm[20]; //解码字符存放数组

cout<<"请输入您的英文名"<<endl;

cin.get(xm,20);

k=strlen(xm);

cout<<"加密之后:";

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

{

mima=jiami(xm[i]);

cout<<mima;

jxm[i]=mima;

}

cout<<endl;

cout<<"解密效果:";

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

{

yuanma=jiemi(jxm[i]);

cout<<yuanma;

}

cout<<endl;

return 0;

}

uchar jiami(uchar s)

{

uchar a,b;

a=~s; //先求反码

a=_crol_(a,3);//循环左移3位

b=a+5;

a=_cror_(b,2);//加5后循环右移2位

b=~a; //再求反码

return b; //返回b

}

uchar jiemi(uchar s) //解密函数,算法与加密相反即可

{

uchar a,b;

a=~s;

a=_crol_(a,2);

b=a-5;

a=_cror_(b,3);

b=~a;

return b;

}

uchar _crol_ (uchar a,int b)

{

uchar i,j,k,m;

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

{

j=a&0x01;

if(j)

k=1;

else

k=0;

m=a>>1;

if(k)

a=m|0x80;

else

a=m|0x00;

}

return a;

}

uchar _cror_ (uchar a,int b)

{

uchar i,j,k,m;

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

{

j=a&0x80;

if(j)

k=1;

else

k=0;

m=a<<1;

if(k)

a=m|0x01;

else

a=m|0x00;

}

return a;

}

6·设计一个程序控制设备

// Cokzg1.cpp : 定义控制台应用程序的入口点。

//输出一个控制信号,使设备急停的程序

#include "stdafx.h"

#include<iostream>

#include <bitset>

using namespace std;

int main()

{

short a,b;

cout<<"信号输入(输入一个两位数,可以是字母)"<<endl;

cin>>a;

cout<<bitset<16>(a)<<endl;//看看a的二进制数是什么样的,方便对照结果

b=0xff00; //1111111100000000

a=a&b; //按位与之后a的高8位不变,低8位全为0,能急停,是否报警

//得看输入的信号,若急停时必须报警,只需将b的高1位改为0,即0xfe00

//若不需要报警,即高一位必须为1,只需将结果与0x0100按位或再赋值给a

//b=0x0100;

//a=a|b;

cout<<"a="<<a<<endl; //这是十进制数

cout<<bitset<16>(a)<<endl; //输出二进制看看是否符合要求

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: