第三周作业

                                  

要求:

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

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

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

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

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

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

7.积累调试经验,收集错误信息,总结原因。并形成文字。

                  作业一

 例一:

//***************************************
**功能:显示输出各种整型变量所占的字节数**
****************************************/                 
#include<iostream>                                             // 编译预处理命令                                      
using namespace std;                                           //使用标准名空间std                         
int main()                                                     //主函数                                
{   
	cout<<"number of bytes in int is:"<<sizeof(int)<<endl;
	cout<<"number of bytes in long int is:"<<sizeof(long)<<endl; 
	cout<<"number of bytes in short int is:"<<sizeof(short)<<endl;        
   
	return 0;
}
输出结果:

     

例二:

//**************************
**功能:布尔类型使用举例**
****************************/                 
#include<iostream>  //编译预处理命令
#include<iomanip>      //使用控制符boolalpha需要使用此头文件                                                                           
using namespace std;          //使用标准名空间std                                                         
int main()                        //主函数                                                            
{   
	bool flag=true;          //定义布尔类型变量flag,并初始化为true
	cout<<flag<<endl;         //默认情况下为非bool字母(noboolalpha),输出整型值1
	cout<<boolalpha<<flag<<endl;     //使用输入格式控制符boolalapha,输出布尔值
	cout<<flag+5<<endl;         //在算术运算中,把布尔数据当作整形数据,输出6
	flag=0;          //可以给布尔类型的变量赋任意的值
	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赋给变量j
	k=i++;     //先对变量i的值77赋给变量k,然后i的值自增,i的值变为8
	++i=1;   //++i可以作为左值,执行完该语句后变量i的值为1
	cout<<"i="<<i<<endl
		<<"j="<<j<<endl
		<<"k="<<k<<endl;

	return 0;
}
输出结果

例六:

#include<iostream>
using namespace std;

int main()
{
    char ch;
	cout<<"please input a character:"<<endl;
	     cout<<"请输入一个字母,我将把它变成相应的大写字母:";
	cin>>ch;
	ch= ch>= 'a'&& ch<= 'z'?ch -'a'+'A': ch;   
	cout<<"The result is :"<<ch<<endl;
	cout<<"经过我的一番演算,那个字母就是:"<<ch<<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;
}
输出结果:



                                                        作业二

输入一个三角形的三条边,计算其面积和周长
#include <iostream>                           //预编译处理命令 
#include<math.h>                              //数学调用符号所需头文件
  
using namespace std;                          //标准名字空间  
  
int main ()                                   //主函数  
{  
    float a,b,c,d,e;                          //定义一些函数  
    double Area,Perimeter;  
  
shuru:                                        //goto语句的调用  
    cout<<"请输入所求三角形的三条边"<<endl;   //输入三角形的三条边  
    cin>>a>>b>>c;  
  
    if(a+c>b&&a+b>c&&c+b>a)                   //判断输入的边是否构成三角形  
    {  
        d=(a*a+b*b-c*c)/(2*a*b);              //求某一个角的余弦值  
        e=sqrt(1-d*d);                        //求这一个角的正弦值  
        Area=0.5*a*b*e;                     //计算面积  
        Perimeter=a+b+c;                      //计算周长  
        cout<<"该三角形的面积为"<<Area<<endl        //输出结果  
            <<"该三角形的周长为"<<Perimeter<<endl;  
        goto shuru;                           //返回,继续下一个运算  
    }  
    else                                      //若输入的边不构成三角形,则错误重新输入  
    {  
        cout<<"输入有错,请确认边长是否能构成三角形后重新输入"<<endl;  
        goto shuru;  
    }  
  
    return 0;  
  
} 


输出:

                     
                                                                           作业三
本章习题三
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	cout<<"第一小题"<<endl;
	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;
    
	cout<<"第二小题"<<endl;
	int a=7;
	float x=2.5,y=4.7,z;
          z=x+a%3*(int(x+y)%2)/4;
	cout<<"答案z="<<z<<endl;
	return 0;
}

输出结果(没截图)

k=13.7

z=2.5

                                                                                  作业四

 

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

#include<iostream>
#include<math.h>
using namespace std;
int main()
{	
    float a,b,c,d,e,x1,x2;
	cout<<"输入一元二次方程的各项系数:"<<endl;

	cout<<"二次项系数a:"<<endl;
	cin>>a;
cout<<"一次项系数b:"<<endl;
	cin>>b;
	cout<<"常数项c:"<<endl;
	cin>>c;
	e=b*b-4*a*c;

	if(e>=0)
	
{
	x1=((-b)+sqrt(e))/2*a;
			x2=((-b)-sqrt(e))/2*a;

	if (x1=x2)
	
		cout<<"该方程有唯一解 即x=x1=x2="<<x1<<endl;
	
	else
	
	cout<<"该方程有两解"<<endl;
			cout<<"x1="<<x1<<endl;
			cout<<"x2="<<x2<<endl;
}
       	else
	{ 
         cout<<"该方程无解"<<endl;
	
}
		return 0;
}


                                                  作业五

要求:自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。

#include<iostream>
using namespace std;
int main()
{
	char a[25],b[25],c[25],e[25];
	int k;
	cout<<" 请输入要加密的姓名(拼音形式)"<<endl;
	cout<<"加密请输入【1】,解密请输入任意数:"<<endl;
	cin>>k;
	if(k==1)
	{
		cout<<"请输入要加密的名字"<<endl;
		
		fflush(stdin);                        //清除缓存
		cin.get(a,25);                        //从键盘获取字符
		cout<<"该名字加密后为:"<<endl;
		for(int i=0;i<25;i++)
		{
			if(a[i]==0)
			{
				break;
			}
			b[i]=a[i];
			b[i]=b[i]+9;
			c[i]=b[i];                   //加密方法
			cout<<c[i];
		}
		cout<<endl;
	}
	else                                        //解密
	{
		cout<<"请输入要解密的名字"<<endl;
		fflush(stdin);
		cin.get(a,25);
		for(int i=0;i<25;i++)
		{
			if(a[i]==0)
				
			{
				break;
			}
			b[i]=a[i];
			b[i]=b[i]-9;
			e[i]=b[i];               //解密方法
			cout<<"解密后为:"<<e[i];
		}
		cout<<endl;
	}
	return 0;
}

输出:

加密                                                                                    解密

                                                                


这个程序我还不太懂,参考了光荣榜的同学自己输入的,虽然有一些内容不知道,但是能正确的输入我觉得这已经是学习C++以来最大的进步!!给自己一个[/鼓掌]

                                      作业六

没看懂,头脑内存资料不足[/尴尬],到时候听老师讲。


 

错误信息收集:

1.这段时间在学习的过程中主要犯的错误是一些字符忘记输入或者输错,比如在一行程序结束的时候忘了输“;”,还把“endl”里的"L"输成“1”。

2.在弄“数据溢出”例题的时候完全照搬书上的内容,结果在调试的时候出现:

         error C2447: missingfunction header (old-style formal list?)

          执行 cl.exe 时出错.

         不知道怎么办?(现在仍不太清楚,希望老师讲解一下为啥会出现这种情况。)

3.在写解一元二次方程组的程序时,还是按照之前写试卷的习惯写成 “e=b^2-4ac”,正确的写法应该是“e=b*b-4*a*c”.

虽然犯了比较多的错误,但也一一改过来,进步还是有的。


<think>好的,我现在要解决用户的问题,寻找翁恺C语言课程第三作业的相关内容或答案。首先,我需要理清用户的具体需求。用户提到已经看到了第二作业的引用内容,现在需要第三作业题目和解答。但用户提供的引用内容里,引用的三个来源都是关于第二作业、时间格式以及输入输出的例子,没有直接涉及第三的内容。不过,可能需要根据已有的信息和一般C语言课程的安排来推断第三可能的内容。 首先,回顾用户提供的引用内容: - 引用[1]是一个C语言程序,判断三个输入中的不同情况,可能涉及条件语句的使用。 - 引用[2]是第二作业的代码,处理整数反转的问题,例如输入123,输出321,这涉及取余和整除操作。 - 引用[3]是关于时间格式的输出,要求两位数的小时、分钟、秒,可能需要格式化输出,如printf中使用%02d。 根据一般C语言课程的进度,第二可能学习基本输入输出、变量、算术运算,第三可能涉及更复杂的条件判断、循环结构,或者更深入的练习题目。例如,第三作业可能包括判断语句、循环结构,或者更复杂的数值处理问题。 接下来,我需要查找翁恺C语言课程第三作业的题目。但用户提供的引用中没有直接相关的信息。可能需要通过常见的题目类型来推测。例如,第三作业可能涉及: 1. 时间转换:将秒转换为小时、分钟、秒,并格式化输出,类似于引用[3]中的内容,但需要更详细的处理。 2. 成绩分级:根据输入的分数输出等级,如A、B、C等,使用条件判断。 3. 计算分段函数:例如,根据不同的输入范围计算不同的函数值。 4. 循环练习:如求数列的和、阶乘,或者判断素数等,但第三可能还未涉及循环,可能更偏向条件语句。 另外,根据引用[2]中的例子,第二涉及整数处理,第三可能继续类似的题目,但增加复杂度。例如,判断一个数是否为水仙花数,或者进行四则运算的计算器程序。 考虑到用户可能无法访问外部资源,我需要基于常见的C语言第三作业题目来构造答案,并确保符合引用中的格式要求,比如正确的LaTeX数学公式和代码块。 现在,我需要组织这些可能的题目,并提供相应的解答示例,同时注意引用格式。例如,如果题目是关于时间转换,可以引用引用[3]中的格式要求。如果涉及条件判断,可以参考引用[1]中的代码结构。 需要注意的是,用户要求生成相关问题,所以可能需要根据推测的题目内容提出相关问题,例如优化方法、应用场景等。 总结步骤: 1. 推测翁恺C语言第三可能的作业题目。 2. 为每个题目提供解答示例,符合C语言语法。 3. 确保代码格式正确,使用代码块。 4. 生成相关问题,帮助用户进一步理解。 5. 在回答中适当引用已有的引用内容,如时间格式化引用[3]。 可能的题目一:时间转换 题目要求输入总秒数,转换为hh:mm:ss格式,不足两位补零。例如输入3661,输出01:01:01。这可以引用[3]中的格式要求。 可能的题目二:成绩转换 输入一个百分制成绩,输出等级制,如90以上为A,80-89为B等,使用条件判断语句。 可能的题目三:四位数逆序 类似第二的反转数字,但可能扩展到四位数,如输入1234,输出4321,处理方式类似引用[2],但需要调整位数。 可能的题目四:计算分段函数 例如,计算以下分段函数的值: 当x >= 0时,f(x) = x^0.5; 当x < 0时,f(x) = (x+1)^2 + 2x + 1/x; 需要注意输入x的处理和条件判断。 针对这些推测的题目,我需要编写解答代码,并确保正确性。例如: 题目一解答: ```c #include <stdio.h> int main() { int total; scanf("%d", &total); int hh = total / 3600; int mm = (total % 3600) / 60; int ss = total % 60; printf("%02d:%02d:%02d", hh, mm, ss); return 0; } ``` 这里引用了引用[3]中的格式要求,使用%02d来补零。 题目二解答: ```c #include <stdio.h> int main() { int score; scanf("%d", &score); if (score >= 90) { printf("A"); } else if (score >= 80) { p
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值