第二章作业

实验作业

1.输入课本各个例题,调试运行程序,并分析程序,将每一个程序改写2到3个版本,自己分析程序结果,然后再调试运行,核对分析结果的对错。

2.编写程序输入一个三角形的三条边,计算其面积和周长;

3.编写程序计算并输出课本本章习题3表达式的值并分析结果。

4.编写一个程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。

5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。

6.在一个自动控制设备中,控制字位数16位,控制设备产生机械动作(如削,压等)的是指令字的低8位,其中保护强制停机动作的控制命令是低8位是全为0,控制报警声音是指令的高第1位,0为报警,1为不报警。请编写程序,在紧急状况启动时,向控制器输入控制指令。

7.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。


一.输入课本各个例题,调试运行程序,并分析程序,将每一个程序改写2到3个版本,自己分析程序结果,然后再调试运行,核对分析结果的对错。

例题2.1

/************************************
**  功能:布尔类型使用举例  **
***********************************/
#include<iostream>                   //编译预处理命令

#include<iomanip>                    //使用控制符boolalpha需使用此头文件
using namespace std;                 //使用标准名空间std

int main()                           //主函数
{
	bool zjc=true;                  //定义布尔型变量zjc,并初始化为true
    cout<<zjc<<endl;                //默认情况下非bool字母(noboolalpha),输出整型值1
	cout<<boolalpha<<zjc<<endl;     //使用输出格式控制符boolalpha,输出布尔型值
	cout<<zjc + 5<<endl;            //在算术运算中,把布尔数据当作整型数据,输出6
	zjc=0;                          //可以给bool类型的变量赋任意类型的值
	cout<<"执行语句zjc=0;后zjc值为:"<<boolalpha<<zjc<<endl;
	zjc=0.0;                       //0.0为double类型的数值
	cout<<"执行语句zjc=0.0;后zjc的值为:"<<boolalpha<<zjc<<endl;

	return 0;
}

例题2.2

/*********************************
**  功能:赋值表达语句的使用  **
********************************/
#include<iostream>
using namespace std;

int main()
{
	int a,b,c,d;
	a=4;
	b=a;
	a=5;
	c=d=6;
	c*=a;
	d%=a+b;
	cout<<"a="<<a<<endl
		<<"b="<<b<<endl
		<<"c="<<c<<endl
		<<"d="<<d<<endl;

	return 0;
}

例题2.3

#include<iostream>
using namespace std;

int main()
{
	short i,j,x,y;
	i=1000;
	j=1000;
	x=i+j;
	y=i*j;
	cout<<"x="<<x<<endl;
	cout<<"y="<<y<<endl;
	return 0;
}

例题2.4

#include<iostream>
using namespace std;

int main()
{
	int x=6,y,z;
	y=++x;          //先对变量x自增,x值变为7,之后把x值赋给变量y
	z=x++;          //先把变量x的值赋给变量z,然后x的值自增,x的值变为8
	++x=1;          //++x可以作为左值,执行完该语句后变量x的值为1
	cout<<"x="<<x<<endl
		<<"y="<<y<<endl
		<<"z="<<z<<endl;

	return 0;
}

例题2.5

#include<iostream>
using namespace std;

int main()
{
	char ch;
	cout<<"请输入英文字母:";
	cin>>ch;
	ch=ch>='a'&&ch<='z'?ch-'a'+'A':ch;
	//上述语句等价于ch=ch>='a'&&ch<='z'?ch-32:ch;
    cout<<"结果是:"<<ch<<endl;

	return 0;
}

例题2.7

#include <iostream>    
using namespace std;    
    
int main()    
{    
    int ab, ac;    
    double b = 3.14;    
    char c = 'A';    
    ab = int(b);    
    ac = int(c);    
    cout<<"b= "<<b<<endl    
        <<"ab= "<<ab<<endl    
        <<"c= "<<c<<endl    
        <<"ac= "<<ac<<endl;    
    
    return 0;    
}

2.编写程序输入一个三角形的三条边,计算其面积和周长;

#include<iostream>
#include<cmath>
using namespace std;
int s(int x,int y,int z)
{
	int t;
	t=x+y+z;
	return t;
}
int q(int i,int j,int k)
{
	int a;
	int m;
	int n;
	a=(i+j+k)/2;
	m=a*(a-i)*(a-j)*(a-k);
	n=sqrt(m);
	return n;
}
int main()
{
	int n1,n2,n3;
	cout<<"请输入三角形的三边长:";
    cin>>n1>>n2>>n3;
    if((n1+n2<=n3)||(n1+n3<=n2)||(n2+n3<=n1))  //判断三角形是否存在  
       cout<<"不存在该三角形"<<endl;
	else  
	{    
        int svalue;
	    svalue=s(n1,n2,n3);
        cout<<"周长="<<svalue<<endl;
	    int qvalue;
	    qvalue=q(n1,n2,n3);
        cout<<"面积="<<qvalue<<endl;
	}
    return 0;
}
   

3.编写程序计算并输出课本本章习题3表达式的值并分析结果。

(1):

#include<iostream>  
#include<cmath>  
using namespace std;  
int main()  
{  
    int e=1,f=4,g=2;  
    float m=10.5,n=4.0,k;  
    k=(e+f)/g+sqrt((double)n)*1.2/g+m;  
    cout<<"k ="<<k<<endl;  
      
    return 0;  
}  
这个是按照书本上的来打的,结果是

因为e,f,g均为整型,所以/*(e+f)/g的值为2,那么sqrt((double)n)*1.2/g的值为1.2

又因为k被强制为double型,所以最终结果是k=13.7。


(2):

#include<iostream>  
#include<cmath>  
using namespace std;  
int main()  
{  
    float x=2.5,y=4.7,t;    //定义float型变量x和y
    int a=7;                //对a进行赋值  
    t=x+a%3*(int(x+y)%2)/4; 
    cout<<"t ="<<t<<endl;  
      
    return 0;  
}  

最后的结果是

4.编写一个程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int a,b,c;
	cout<<"请输入二次项,一次项和常数项:"<<endl;
	cin>>a>>b>>c;
	if(b*b-4*a*c<0)
	    cout<<"该方程无实数解"<<endl;
	else
	{
		int t;
		int x1;
		int x2;
		t=b*b-4*a*c<0;
        x1=(-b+sqrt(t))/(2*a);    
        x2=(-b-sqrt(t))/(2*a);
		cout<<"x1="<<x1<<endl
		    <<"x2="<<x2<<endl;
    }
return 0;
}

5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。

#include<iostream>
using namespace std;
int main()
{
	char ch1,ch2,ch3;
	cout<<"请输入你的音标姓名:";
	cin>>ch1>>ch2>>ch3;
	ch1=ch1>='a'&&ch1<='z'?ch1-'a'+'A':ch1;
	ch2=ch2>='a'&&ch2<='z'?ch2-'a'+'b':ch2;
	ch3=ch3>='a'&&ch3<='z'?ch3-'a'+'c':ch3;
	cout<<"加密后:"<<ch1<<ch2<<ch3<<endl;
		           
	return 0;
}
这个加密是将自己的英标姓名的第一个字母换成大写,第二个字母退一位(例如a换成b),第三个字母退两位。

加密的结果


6   这题不会做,希望老师上课的时候能讲解一下。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值