第三周C++作业

来源:互联网 发布:js函数访问servlet 编辑:程序博客网 时间:2024/05/03 17:10

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

 

/*******bool类型使用举例**********/#include<iostream>//编译预处理命令 #include<iomanip>//使用控制符boolalpha需使用此头文件using namespace std;//使用标准名空间stdint main()//主函数{bool flag=true;//定义bool类型变量flag,并初始化为truecout<<flag<<endl;//默认情况下为非bool字母(noboolalpha),输出整形值为1cout<<boolalpha<<flag<<endl;//使用输格式控制符bolalpha,输出bool类型cout<<flag+5<<endl;//在算术运算中,把bool数据当作整形数据,输出6flag=0;//可以给bool类型的变量赋予任意类型的值cout<<"执行语句flag=0;后flag 的值为:"<<boolalpha<<flag<<endl;flag=0.0;//0.0为double类型的数值cout<<"执行语句flag=0.0;后flag 的值为:"<<boolalpha<<flag<<endl;return 0;}

 

/*******功能:赋值表达式 语句的使用**********/#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;}


 

/*******数据溢出举例**********/#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;}


 

/******* ++ 运算符使用举例**********/#include<iostream>using namespace std;int main(){int i= 6,j,k,temp;j=++i;//先对变量i自增,i的值为7,之后把i的值7赋给变量jk=i++;//先把变量i的值7赋给变量k,然后i的值自增,i的值变为8++i=1;//++i可以作为左值,执行完该语句后变量i的值为1cout<<"i = "<<i<<endl<<"j = "<<j<<endl<<"k = "<<k<<endl;return 0;}


 

/*******强制类型转换示例**********/#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.5**********/#include<iostream>using namespace std;int main(){char ch;cout<<"please input a character: ";cin>>ch;ch = ch>= 'a'&&ch<='z'?ch-32:ch;//上述语句等价于ch=ch>='a'&&ch<='z'?ch-32:ch;cout<<"The result is:  "<<ch<<endl;return 0;}

 

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

#include<iostream>using namespace std;int main(){float i,j,k,s,c;cout<<"请输入三角形的三条边:"<<endl;cin>>i>>j>>k;s=(i+j+k)/2;c=i+j+k;cout<<"三角形的面积为: "<<s<<endl;cout<<"三角形的周长为:  "<<c<<endl;return 0;}


 

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

#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强制转换成为double类型,按运算顺序从左至右,先乘除后加减,先运算括号内的再运算括号外的cout<<"k = "<<k<<endl;float x=2.5,y=4.7,h;int a=7;h=x+a%3*(int(x+y)%2)/4;  //把x+y强制转化为int类型后,对2取余,运算顺序也是从左至右,先乘除后加减,先运算括号内的再运算括号外的cout<<"h = "<<h<<endl;return 0;}



运算结果:

 

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

#include<iostream>#include<math.h>using namespace std;int main(){float a,b,c,y,x1,x2;cout<<"请输入一元二次方程的三个系数: "<<endl;cin>>a>>b>>c;if(b*b-4*a*c>0){x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);cout<<"一元二次方程的第一个解为: "<<x1<<endl;cout<<"一元二次方程的第一个解为: "<<x2<<endl;}if(b*b-4*a*c==0){x1=x2=(-b)/(2*a);cout<<"一元二次方程只有一个解为: "<<x1<<endl;}if(b*b-4*a*c<0){cout<<"一元二次方程无解"<<endl;}return 0;}


 运算结果:



明显无根的状态怎么会有数值输出?如何才能输出无解??


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

#include <iostream>      using namespace std;#define N 20  void key(char b[N]);  int main()    {    char a[N];int x;cout<<"please enter your english name: "<<endl;cin>>a;key(a);    cout<<"after encryption : ";for(x=0;a[x]!='\0';x++)cout<<int (a[x]);cout<<'\n';    return 0;    }   void key(char b[N]){int i;for(i=0;b[i]!='\0';i++)b[i]=b[i]+2;} 程序运行后加密结果为名字英文对应的ascii码加2

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

 老师原谅学生愚钝,无法理解,望老师指条明路!


7.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
1.在输出输入的时候,经常会写成cin<<和cout>>
2.编写一元二次方程组的那个如何才能输出无解,为什么无解的情况都输出的是虚根。

0 0