- 博客(13)
- 收藏
- 关注
原创 数组习题:在有序的数列中插入若干个数,每插入一个数都要保持有序。——[C语言]入门基础编程 1047
有序数组插入若干数字,在数组最后插入数字,与前一项不停作比较,若交换后能使数组有序,则交换两个数字的位置,别忘了最后要给数组总长+1
2022-06-17 07:39:51 1090 1
原创 函数习题:编写一个函数,给出年、月、日,计算该日是本年的第几天。——[C语言]入门基础编程 1032
使用函数解决问题在编写函数为什么不要函数实现太大的功能?
2022-06-12 15:03:35 4895
原创 结构体习题:有5个职工,每个职工的数据包括:职工号、姓名、工资,编写程序要求从键盘上输入职工们的数据,输出高于平均工资的职工信息及高于平均工资的职工人数。——[C语言]入门基础编程 1092
结构体内容定义、代码实现struct定义结构体、定义结构体中的参数、主函数中引用参数等
2022-06-11 15:52:46 2056
原创 6.0 动态数码管 _ [AT89C51/2] [从零开始的单片机]
数码管简介上一个实验是静态数码管实验,动态和静态所用的数码管都一样,在开发板上是2个四位一体的共阴数码管,唯一的区别是要不断更改输入的电平,从而达到动态的效果。这里所说的动态并不完全是动态。这里的动态是说输入的电平时刻都在改变,这是动态,但是在数码管上显示出来的是多个数字,这些数字并不能变,按这样来说并不是动态的。多位数码管简介这里就要说到“段”和“位”了。对于“位”,我们使用的数码管就是2给四位一体的共阴极数码管,“四位”即指四个“8”,下面就是一位数码管:对于“段”,段是从属于上面的位,上图
2022-03-27 15:48:08 7777
原创 循环结构:编一程序,对于任意输入的n个整数,可输出其中的最大数和最小数,并输出它们在序列中的位置序号。——[C语言]入门基础编程 1020
Input输入第一行:输入n值。输入第二行:输入n个整数。Output输出仅二行第一行:输出最大值和最小值第二行:输出最大值序列号和最小值序列号。样例输入478 98 88 97样例输出max=98,min=78maxi=2,mini=1题目分析题目要求我们写一个代码,要写出一个程序,程序核心是找出最大值,乍一看似乎需要我们把顺序排列出来,再提取出最大值与最小值,如果用冒泡排序等方法实际上小题大做。实际上并没有这个必要,我们要做的就是把最值找出来即可。那究竟要怎么寻找最值呢?如
2022-03-26 22:28:24 3781
原创 循环结构:求Sn=a+aa+aaa+…+aaa…a的值,其中a为一个数字。例如,2+22+222,此时a=2,n=3, n由键盘输入。——[C语言]入门基础编程 1018
分析问题:这是一道循环结构的题,要求我们计算前n项和,本质上是需要我们计算出a,aa,aaa,aaaa…这些数字。这些数字有很多规律,循环结构正是需要用规律解题,所以你使用了什么规律,就决定了编写程序的难易。以2+22+222+2222…为例:我刚开始想的时候,无非认为应该这样求第n项:2*(10 ^ 0) + 2*(10 ^ 1) + 2 * (10 ^ 2)…我把每一位的2拆开,就把计算第n项变成了计算2 + 22 + 222…的值,看起来似乎没有问题,可我还是没有写出来(以后再试试)。上面的
2022-03-25 23:34:12 6174
原创 循环结构:计算1~n(n为大于1且小于1000的整数)以内的所有含6的整数的和。——[C语言]入门基础编程 1082
如果要计算1~100内的数字中含有6的数字,无非是对里面的数取模等于6或者取余等于6条件符合的数字进行统计。如果超过了100,问题就转换为"对100以上的数字中含有6的数字进行统计",乍一看可以继续使用/或者%套用计算,实际上并不准确。以116这个数字为例,对它取余一次,就可以得到数字6,如果题目要求在120内的数字的和,结果自然是对的,但是代码块本质还是有问题。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main()
2022-03-24 16:16:55 3108 1
原创 5.0 静态数码管 _ [AT89C51/2] [从零开始的单片机]
数码管介绍数码管即发光二极管,有的时七段,有的是八段,八段的二极管比七段的多了一小段二极管"dp"(为下一节"动态数码管"及段选埋伏笔)。一般把能显示一个数字"8"的二极管叫做一位(位选的伏笔),如果有8个8能全部显示出来,叫做8位数码管,当然也有1~7位的数码管。下面用数字表出数码管的8个"段":数码管显示原理——共阳极\共阴极输送电平的区别数码管内部电路如图,左侧为共阳极原理图,右侧为共阴极原理图。要想让数码管输出数字"0",就要使除了"g""dp"之外的二极管全部点亮即可。以输出数
2022-03-23 19:06:55 1901
原创 4.0 蜂鸣器 _ [AT89C51/2] [从零开始的单片机]
蜂鸣器介绍蜂鸣器分为压电式蜂鸣器和电磁式蜂鸣器。压电式蜂鸣器需要电压、一定频率的脉冲信号;电磁式蜂鸣器需要电源即可。开发板上面是压电式蜂鸣器,是无源蜂鸣器(无振荡电路),因此可以手动改变蜂鸣器的频率产生不同音色、音调,而改变高低电平占比可以改变声音大小。硬件设计压电式蜂鸣器需要的电压不可能由单片机的I/O口提供,因为I/O口的驱动能力很弱(加上上拉电阻也不强),在开发板原理图上:开发板原理图中,P2^5引脚直接连接蜂鸣器,并不是直接连接单片机,也没有先连接到三极管放大,还使用UNL2003芯
2022-03-22 14:07:48 1866
原创 3.0 LED流水灯实验 _ [AT89C51/2] [从零开始的单片机]
LED闪烁回顾LED闪烁本质就是把LED的输入端不断更改高低电平即可。记得延时函数!LED流水灯是什么?LED流水灯就是使8个发光二极管逐个点亮,显而易见,需要LED闪烁为基础、8个LED输出规律有8个LED,则有8个引脚(I/O口),要同时控制8个引脚,有两种方法可行。通过编写LED的二进制位数转换为十六进制得到的表。原理如下:原理图LED LED LED LED LED LED LED LED 1 1 1 1 1 1 1 0 0xfe 1 1
2022-03-22 12:31:05 1170
原创 2.0 LED闪烁实验 _ [AT89C51/2] [从零开始的单片机]
LED原理回顾LED接通时,就是LED的正极负极接通,即高电平和低电平接通。LED从恒亮变为闪烁要使LED从恒亮变为闪烁,就要使输入的电平在0和1之间循环。当然,循环不是简简单单在0和1之间变化就好,因为人眼的余晖效应,灯光消失时在人眼中还会存在一段时间。因此,LED亮灭之间要有一段时间的延迟。需要编写延时函数。延时函数void delay(u16 i)//延时函数 相当于(int 数字){ while(i--);//输入的数字在while死循环内递减}程序主体#include &l
2022-03-22 09:57:07 978
原创 1.0 点亮第一个LED _ [AT89C51/2] [从零开始的单片机]
1.0 点亮第一个LED _ [AT89C51/2] [从零开始的单片机]LED电路这是开发板上面LED的原理图,相同引脚是连接在一起的(虽然原理图上是分开表示)。如图,这些LED是共阳极,因此,只需给想要点亮的LED相应的引脚输入低电平即可使电路导通,LED点亮。点亮第一个LED上面说过,要点亮一个LED,就要对相应的LED输入低电平,即输入"0",#include "reg52.h"sbit LED1=P2^0; //将 P2.0 管脚定义为 LED1void main(){L
2022-03-22 09:47:01 786
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人