C语言(六)

面试中的套路

==============

1. 公司要求员工的素质和能力

       专业技能 --》第一轮面试通过笔试考察,第二轮面试面谈考察,题嵌入式开发有关一些基础知识掌握怎么样,项目经验

       自我学习提升学习能力 --》你是否是个可造之材

       语言表达能力 --》基本沟通表达

       协调合作能力 --》性格有没有缺陷,善于跟别人合作

 

答疑

=======================

 1. buf[i]=c+字符0 与buf[i]=(int)c 有什么区别    buf-->char   c -->int

     buf[i]=5+'0' -->等价于5+48=53

     buf[i]=(int)5 -->等价于5

  2. char a[5][10];

      a[0][1]='@';    打印不出来???用错格式控制符号

         %c  --》打印字符

         %s  --》打印字符串

 

C语言中的变长数组和零长数组(柔性数组)

===================

  1. 变长数组

          int  a[i];   i是个变量

  2. 零长数组--》跟结构体配合使用(后面学习了结构体再讲)

 

 

C语言中的指针

====================

 1.  指针的基本概念

             指针: 也是一种变量,是一种特殊的变量(专门用来存放其它变量在内存中地址的)

                        int  a;

                        float b;

                        一个变量有多个字节(内存中有多个地址编码),指针存放的是这个变量的首地址(最低的地址,起始位置的地址)

            指针的定义:

                          类型  *指针的名字

                          比如:  int  *p;    //定义了int类型的指针      *表示p是个指针

                                    float  *q;

                                    char  *p;

            指针的使用:

                         第一种:  定义一个指针并初始化

                                  int  a=10;

                                  int  *p=&a;  //  & -->取地址符号(获取变量a在内存中的首地址)

                         第二种:   定义一个指针没有立马初始化

                                  int  a=10;

                                  int *p;   //定义了指针p,p存放谁的地址目前是不清楚的

                                  p=&a;  

             指针的几种基本运算

                         第一种: 解引用

                                        通过指针访问指向的变量里面的内容,或者通过指针修改指向的变量

                                        使用解引用运算

                                       *p;   //把指针p解引用(取出指针p指向的地址里面的内容)

                        第二种:取地址

                                        int  a=100;

                                        int  *p=&a;  //对a取地址

                         小结: 指针是C语言提供的一种间接访问变量的方法

                       第三种: 指针可以比较大小

                                        指针比较大小---》就是把地址当成是数字来比较

练习:

        1.      int   a[5];  //键盘输入5个数,用指针实现判断这个五个数是不是完数

                         完数:     一个数等于自身公因子和 (去除本身)

                                         比如:  6 ---》公因子(能被6整除就是它的公因子)  1  2  3  

                                                      6=  1+2+3

                                                     7 --》 公因子  1  

                       int *p= &a[0]   //  *p等价于a[0]

                        //如何求*p公因子-->  *p分别除以1 2 3 ....*p只要能整除的就是公因子

                        p=&a[1]

       2.  

               考察知识点: 指针基本运算的理解

                                     运算符的优先级

 

改变升级:   a=((*p1)==(*p2))

 

作业:

      1.基础题

               输入字符串,分别统计出其中  英文字母、空格、数字和其它字符的个数。

          求a+aa+aaa+aaaa+aa...a的值

                            比如:a是3,总共5项(变量n表示)     3+33+333+3333+33333结果是??

                                       要求a和n从键盘输入

                              思路:3+33+333+3333+33333 ---》 3*(1+11+111+1111+11111)       

       2.写一个程序处理字符串A,处理规则是: 只要字符串B里面有的字符,不论大小写,一律从A字符串中删除 (用数组或者指针实现)

                                fdjjfDFDdjfjdf   ---》  A字符串

                                AFafd              ---》  B字符串

 

 

 

 

 

 

 

 

 

 

### 回答1: 单片机C语言位密码锁的设计实现需要以下步骤: 1. 首先,通过引入头文件定义各个引脚和端口,以及需要使用的控制指令。 2. 确定系统所需的密码位数,这里为位密码锁。可以使用一个字符数组来存储密码。 3. 在主函数中初始化密码数组和输入密码数组,然后使用函数通过输入密码数组从键盘获取密码。 4. 接下来,使用函数进行密码的验证。可以通过逐位比较输入密码与设定密码的每一位来判断是否匹配。 5. 如果密码正确,可以设置一个LED灯闪烁或者蜂鸣器响起来表示开锁成功,并执行相关操作。 6. 如果密码错误,可以设置另一个LED灯亮起或者蜂鸣器响起来表示开锁失败,并执行相应操作。 7. 最后,循环执行上述步骤,以便用户可以多次尝试输入密码。 需要注意的是,密码锁的具体实现会根据所使用的单片机型号和具体要求有所不同。此外,为了增强密码锁的安全性,还可以加入其他功能,如设置输入密码次数限制、密码过期时间等。 ### 回答2: 单片机的C语言位密码锁是一种基于单片机的电子密码锁系统。该系统旨在提供一种安全可靠的密码锁应用解决方案。 首先,我们需要定义一个位的密码,用作认证密码。这个密码可以预先设定,或者可以通过程序运行时动态设置。 其次,我们需要一个键盘矩阵来接受用户输入的密码。键盘矩阵的原理是将多个按键以矩阵的形式连接起来,通过扫描不同的行和列来确定用户按下的按键。 然后,我们需要将键盘矩阵与单片机进行连接。单片机将不断扫描键盘矩阵的行和列,以检测用户按下的按键。当用户输入密码时,单片机将获取按键的值,并将其存储在一个缓冲区中。 接下来,单片机将比较用户输入的密码和预设的密码是否相同。如果密码正确,则可以执行一系列操作,比如打开某个设备,或者提供其他权限等。 最后,我们还可以为这个密码锁系统添加其他功能。比如,可以设置密码输错次数限制,当输入错误次数达到一定次数时,系统将自动锁定一段时间。还可以添加报警功能,当密码输错次数超过一定次数时,系统将触发报警。这些功能的实现可以通过适当的代码编写和电路设计来完成。 综上所述,利用单片机的C语言可以实现位密码锁。这个密码锁系统具有安全可靠、易于操作和扩展的特点,可以用于保护重要设备的安全。 ### 回答3: 单片机是指一种在单个集成电路芯片中集成了计算机中央处理器(CPU)功能的微型计算机系统。C语言是一种通用的高级计算机编程语言。位密码锁是一种基于密码输入的安全设备,需要用户通过正确的密码才能解锁。 编写单片机C语言位密码锁程序的步骤如下: 1. 定义密码变量:首先,我们需要定义一个位的密码变量,用来存放正确的解锁密码。 2. 初始化IO口:将用于输入密码的IO口设置为输入状态,将用于驱动LED灯的IO口设置为输出状态。 3. 输入密码:通过读取用户输入的按键值或者外部输入口获取密码,将输入的密码保存到一个临时变量中。 4. 检查密码:将用户输入的密码与正确的解锁密码进行比较。将临时变量与密码变量进行逐位比较,如果有一位不匹配,则跳转到错误提示模块。 5. 解锁操作:如果密码匹配成功,则执行解锁操作。解锁操作可以是打开门锁、点亮LED灯、发出蜂鸣器声音等。 6. 错误提示:如果密码匹配失败,则执行错误提示操作。错误提示可以是闪烁LED灯、发出蜂鸣器声音等。 7. 重复执行:程序应该循环执行以上步骤,等待用户重新输入密码。 总结:通过以上步骤,我们可以编写单片机C语言程序实现位密码锁的功能。当用户输入正确的密码时,执行解锁操作;当用户输入错误的密码时,执行错误提示操作。这样可以保障安全性,只有知道正确密码的人才能解锁。编写这样一段代码具有一定的难度,需要考虑各种边界情况和输入的处理,但是通过仔细的设计和调试,可以实现一个可靠的密码锁系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值