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".