C程序设计-第二章-第一天学习记录

    一个30岁半啃老的人记录一下自己的学习记录吧。人生已经过了一半了,却什么都不会,人生没有任何价值和追求,身体也不健康。开始第一天的人生从头再来的努力,希望可以坚持下去。
    2021年6月20号。谭浩强第四版c语言程序设计第二章学习记录。

然后,7月4号了。才看完一章,真是太慢了。
有错误的地方请各位大佬一一指正。太感谢了。么么哒。

习题

    1.什么是算法?试从日常生活中找到三个例子,描述他们的算法。
    key:

对操作的描述。要求计算机进行操作的步骤,也就是算法。广义的说为解决一个问题而彩玉的方法和步骤成为算法。
例子一:从北京到天津开会,1-先买火车票,2-作地铁到北京站,3-登上火车,4-天津站下车,5-转车到会场,6-参加会议。
例子二:买电视机。1-挑选货物,2-给钱,3-抱着电视,4-回家
例子三:考大学。1-准备高考。2-填写诚信考试表。3去考场。4-参加高考。5考试结束。6-填写报名表。7-录取通知书。8-考上大学。

    2.什么叫结构化的算法,为什么要提倡结构化的算法?

key:
由基本结构(顺序、选择、循环结构)所构成的算法属于结构化的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前向后的跳转。
由一些顺序、选择、循环等基本结构按照顺序组成,流程的转移至存在一一个基本的范围之内。
结构化算法便于编写,可读性高,修改和维护起来简单,可以减少程序出错的机会,提高了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。

    3.试述3种基本结构的特点,请另外设计两种基本结构,要符合基本结构的特点。

三种基本结构为顺序结构、选择结构、循环结构(当while型循环结构和直到until型循环结构)。顺序结构是一种线性、有序的结构,它依次执行各语句模块。选择结构:选择结构是根据条件成立与否选择程序执行的通路。循环结构是重复执行一个或几个模块,直到满足某一条件位置。
设计基本条件结构要满足一下提点:
只有一个入口;只有一个出口;结构内的每一部分都有机会被执行到;结构内不存在死循环。
第二问图片
4.用传统流程图表示求解一下问题的算法。
(1)有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换。即A瓶原来盛酱油,现在放醋。B瓶反之。没有
第四题第一问
(2)依次将10个数输入,要求输出其中最大的数
key:
将输入的第一个数赋值给max,依次输入的数都和max进行比较。大于max,将值赋给max,小于max不变。最后输出max。
第二问
(3)有三个数a,b,c,要求按大小顺序将他们输出。
第三题
(4)求1+2+3+……+100。
第四题 (5)判断一个数n能否同时被3和5整除。
第五题
(6)将100~200之间的素数输出。
第六题
(7)求两个数n和m的最大公约数。
key

辗转相除法

a.如果n大于m,交换m和n
b.循环进行以下操作:
m%n是否为0?是,则最大公约数为m,输出m结束。
否则,m%n结果给r,将n的值给m,将r的值给n,返回n==0判断
用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

订正图画错了,应该是输入m和n,如果n>m,就交换n和m的值。

第七题
(8)求方程式ax^2+bx+c=0的根。分别考虑:
有两个不相等的实根和有两个相等的实根。
第八题
5.用NS图表示第四题中各题的算法。
key:
鉴于本人从没有用过NS图,并且明确表示在以后的文章里都不会用的,所以,在这里我就不画NS了。如果以后我画了,我就接受自己的打脸。

    6.用伪代码表示第四题中各题的算法。
    第一题:
begin
  a=醋
  b=酱油
  a=c
  a=b
  b=c
end

第二题:

begin
	int a,b,c
	b=0
	c=0
	while b<=10
		{
		输入整数 a
		if a>c
			{
			c=a}
		b+=1
		}
	print c
end

第三题:

begin
	input a,b,c
	if a<b
	{
	t=a
	a=b
	b=t
    }
    if a<c
    {
    t=a
    a=c
    c=t
    }
    if b<c
    {
    t=b
    b=c
    c=t
	}
	print a,b,c
end
	

第四题

begin 
	i=1
	n=1
	sum=0
	while(n<=1000)
	{
	sum=sum+i
	}
	print sum
end
	

第五题

begin
	input n
	if (n%3==0)
	{
	    if(n%5==0)
	    {
	        print("n能被3和5整除"}
	     else
	     print("n不能被3和5整除")
	 }
	 else
     print("n不能被3和5整除")

第六题

begin
	t=100
	n=2
	if(t=100;t++;t<=200)
	{
		while(n<t)
		{
		r=t%n
		if(r==0)
			{
				n=t
				pirnt("t不是素数")
			}
			n+=1
		}
	}
		

第七题

begin 
	if (n>m)
	{
		a=m
		m=n
		n=a
	}
	if(n==0)
	print("n是最大公约数")
    else
    {
    	r=m%n
		while(r!=0)
		{
		   m=n
		   n=r
		   r=m%n
		}
		print("n是最大公约数")
	}
end	

第八题

begin
	input a,b,c
	n=b*b-4*a*c
	m=b*b+4*a*c
	if(n>0)
	{
		print("x1=(-n)/(2a)")
		print("x2=(-m)/(2a)")
	}
	if(n=0{
		pirnt("x1=x2=(-n)/(2q)")
	}
	if(n<0)
	{
	print("没有实数根")
	}
end
    7.什么叫结构化程序设计?它的主要内容是什么?
    key:

结构化的设计:是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计思想使程序执行效率提高,是软件发展的一个重要的里程碑。主要内容是把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。它的主要观点是采用自顶向下、逐步求精的程序设计方法;各个模块通过“顺序、选择、循环"的控制结构进行连接,并且只有一个入口,一个出口。

    8.用自顶向下、逐步化的方法进行一下算法的设计:
     (1)输出1900~2000年中是闰年的年份,符合能被4整除但不能被100整除;或能被100整除且被400整除两个条件之一的年份是闰年。
     key:
 设计一个1900-2000的循环
 能整除4且不能被100整除或或能被100整除且被400整除
 输出闰年

     (2)求ax^2+bx+c=0的根。分别考虑d=b^2-4ac=大于零、等于零和小于零这3种情况。
     key:
  
  输入a,b,c的值
  求d=b*b-4*a*c,n=b*b+4*a*c
  如果,d>0,则有两个实根,x1=(-d)/(2a),x2=(-n)/(2a)
  如果,d=0,则有一个实根,x=(-n)/(2a)
  如果,d<0,则没有实根

     (3)输入10个数,输出其中最大的一个数。
     key:

max=第一个数
每输入一个数都与max相比,大了则赋值给max
输出max

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值