第二章作业

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

例2.1

/*****************************
**  功能:布尔类型使用举例  ***
*****************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	bool flag = true;
	cout<<flag<<endl;
	cout<<boolalpha<<flag<<endl;
	cout<<flag + 5<<endl;
	flag = 0;
	cout<<"执行语句 flag=0;后 flag 的值为:"<<boolalpha<<flag<<endl;
	flag = 0.0;
	cout<<"执行语句 flag=0.0;后 flag 的值为:"<<boolalpha<<flag<<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, m, n;
	i=1000;
	j=1000;
	m=i + j;
	n=i * j;
	cout<<"m="<<m<<endl;
	cout<<"n="<<n<<endl;

	return 0;
}


例2.4

#include<iostream>
using namespace std;

int main()
{
	int i = 6, j, k, temp;
	j = ++i;
	k = i++;
	++i = 1;
	cout<<"i = "<<i<<endl
		<<"j = "<<j<<endl
		<<"k = "<<k<<endl;

	return 0;
}


例2.5

#include<iostream>
using namespace std;

int main()
{
	char ch;
	cout<<"please input a character: ";
	cin>>ch;
	ch = ch>= 'a'&& ch<= 'z'? ch - 'a' + 'A' : ch;
	cout<<"The result is:"<<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;
    cout<<"ab ="<<ab<<endl;
    cout<<"c ="<<c<<endl;
    cout<<"ac ="<<ac<<endl;
    return 0;
}


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

//**计算三角形的面积和周长**//
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
f:	float a, b, c, p, s, l;
	cout<<"请输入三角形的三边a,b,c: "<<endl;
	cin>>a>>b>>c;
	if(a+b>c&&a+c>b&&b+c>a)
	{
		p=(a+b+c)/2;
	    s=sqrt(p*(p-a)*(p-b)*(p-c));
		l=a+b+c;
		cout<<"三角形的面积s= "<<s<<endl;
		cout<<"三角形的周长l= "<<l<<endl;
	}
	else
	{
		cout<<"您输入的三条边不能构成三角形,请重新输入: "<<endl;
		goto f;
	}
	return 0;
}


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

(1)

#include<iostream>
#include<math.h>
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;  //**把n强制转换为双精度型**//
	cout<<"k= "<<k<<endl;
	return 0;
}



(2)
#include<iostream>
using namespace std;
int main()
{
	float x=2.5, y=4.7, k;
	int a=7;
	k=x+a%3*(int(x+y)%2)/4;  //(x=y)强制转换为int型//
	cout<<"k= "<<k<<endl;
}


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

//**求一元二次方程的根**//
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	float a, b, c, d, x1, x2, Re, Im;
	cout<<"请分别输入二次项系数、一次项系数,常数项系数a,b,c: "<<endl;
	cin>>a>>b>>c;
	d=b*b-4*a*c;
    x1=0.5*(sqrt(d)-b);
	x2=-0.5*(sqrt(d)+b);

	if(d>=0)
	{
	
		cout<<"x1= "<<x1<<endl;
		cout<<"x2= "<<x2<<endl;
	}
	else
	{
		Re=(-b)/(2*a);  
        Im=sqrt(-d)/(2*a);  
        cout<<"X1="<<Re<<"+"<<Im<<"i"<<endl;  
        cout<<"X2="<<Re<<"-"<<Im<<"i"<<endl;
	
	}
	return 0;
}

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

/**音标姓名(英文)加密**/ 
#include <iostream>    
#include <string.h>    
    
using namespace std;    
    
int main ()    
{       
   
   char input[20];                     //定义输入值    
   cout<<"请输入您的音标姓名(英文): "<<endl;    
    cin.get(input,15);                 //cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格       
        
    for (int i =0; input[i]; ++i)     //for循环语句用于执行输入英文名字母的位的移动    
    {    
    if(input[i]>='a'&&input[i]<='z')   //if条件语句确定输入該字母为小写时    
    input[i]='a'+(input[i]-'a'+5)%26;  //输出为原字母向后移5以26个字母为基准    
    if(input[i]>='A'&&input[i]<='Z')      //if条件语句确定输入該字母为大写时    
    input[i]='A'+(input[i]-'A'+2)%26;  //输出为原字母向后移2以26个字母为基准   
    }    
            
    cout<<"加密结果为:"<<input<<endl;    
        
   return 0;     
}  


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

先搞懂再补做!大笑


7.积累调试程序经验,收集错误信息原因

a:第一次不知道求带根号的函数需要加#include<math.h>;

b:运算b^2不符合逻辑,应该是b*b;

c:在条件语句if中,想要循环返回上一级,需加"f".






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值