第三周作业
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;
}
#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;
}
相关文章推荐
- 第三周作业——冒泡排序和归并排序
- 第三周作业 归并排序(接)
- 第三周作业
- 第三周作业
- 第三周作业
- 第三周作业
- 第三周作业
- Andrew Ng-Neural Networks and Deep Learning 第三周作业
- 《实时控制软件设计》第三周作业
- 高级编程技术第三周平时作业(2)
- Python第三周第二次作业
- 第三周作业_Chapter 5课后练习
- 【中文】【吴恩达课后编程作业】Course 1 - 神经网络和深度学习 - 第三周作业
- 《深度学习——Andrew Ng》第四课第三周编程作业
- N26-第三周作业
- 第三周作业
- 第三周作业-循环与判断语句
- 机电传动控制第三周作业
- 第三周作业-实现随机点名的签到程序 非头像版
- 第三周作业