当前位置:文档之家› 从键盘输入一个数

从键盘输入一个数

从键盘输入一个数
从键盘输入一个数

从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeated digit!”;否则显示“No repeated digit!”。

已知函数原型:

intCountRepeatNum(int count[], int n);

若有重复数字,则该函数返回重复出现的数字;否则返回-1.

程序运行结果示例1:

Input n:

28212↙

Repeated digit!

程序运行结果示例2:

Input n:

12345↙

No repeated digit!

输入提示:"Input n:\n"

输入格式: "%ld"

输出格式:

有重复数字,输出信息: "Repeated digit!\n"

没有重复数字,输出信息: "No repeated digit!\n"

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

#include

#include

#define N 20

intCountRepeatNum(int count[], int n);

void Scan(int n);

intmain()

{

inti,b,count[N];

long n;

printf("Input n:\n");

scanf( "%ld",&n);

for(i=1;n>=1;i++)

{

b = n%10;

n/=10;

count[i]=b;

}

count[i] = n;

Scan(CountRepeatNum(count, i)); return 0;

}

void Scan(int n)

{

if(n == -1){

printf("No repeated digit!\n");

}else{

printf("Repeated digit!\n");

}

}

intCountRepeatNum(int count[], int n){ inti,j;

for(i=0;i

for(j=i+1;j<=n;j++){

if(count[i]==count[j]){

return count[i]; }

}

}

return -1;

}

C语言程序设计中键盘输入数据的方法分析

Computer Science and Application 计算机科学与应用, 2019, 9(2), 323-327 Published Online February 2019 in Hans. https://www.doczj.com/doc/a410780758.html,/journal/csa https://https://www.doczj.com/doc/a410780758.html,/10.12677/csa.2019.92037 Method Analysis of Keyboard Input Data in C Language Programming Kui Gao, Xiaocui Fu, Weiyan Li Information Science and Engineering, Shandong Agricultural University, Tai’an Shandong Received: Jan. 28th, 2019; accepted: Feb. 6th, 2019; published: Feb. 13th, 2019 Abstract In C language programming, it is often necessary to input the required data from the keyboard, which can be achieved by different input functions. In this paper, some examples and analysis are given for the use of these input functions; through comparison, usage and considerations of each function have been analyzed, to achieve the purpose of correct use. Keywords Scanf, Getchar, Gets, Separator, Keyboard C语言程序设计中键盘输入数据的方法分析 高葵,付晓翠,李蔚妍 山东农业大学信息科学与工程学院,山东泰安 收稿日期:2019年1月28日;录用日期:2019年2月6日;发布日期:2019年2月13日 摘要 在C语言程序设计中经常需要从键盘输入所需要的数据,可以通过不同的输入函数来实现。本文对这几个输入函数的使用举例并进行分析说明,通过比较,分析出每种函数的使用方法和注意事项,达到正确使用的目的。 关键词 Scanf,Getchar,Gets,分隔符,键盘

4乘4矩阵键盘输入数码管显示四位数

综合课程设计三相步进电机控制器电路的设计 学生姓名__________

指导教师_________ 课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1?谢自美?电子线路设计?实验?测试.[M]武汉:华中理工大学出版社,2000 年 2. 阎石. 数字电子技术基础. [M] 北京:高等教育出版社,2006年 3. 童诗白、华成英.模拟电子技术基础. [M] 北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M] 北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M] 北京:人民 邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

一、概述 本次毕设的题目是:三相步进电机控制电路的设计。本次毕设使用80C51单片机作为主控芯片,利用ULN2003A集成电路作为三相步进电机的驱动电路,采用单极性驱动方式,使三相步进电机能在(1)三相单三拍,(2)三相双三拍, (3)三相六拍三种工作方式下正常工作;能实现的功能有:启动/停止控制、方向控制;速度控制;用LED数码管显示工作方式。键盘输入工作频率。本次课程设计采用80C51单片机作为主控芯片,程序采用C语言来编写,驱动电路采用ULN2003A集成电路,显示采用 7SEG-MPX4-CC卩四位共阴数码管,P0接段码,并用8只1K欧左右电阻上拉。P2的4位10 口接位选码。正转,数码管显示1。反转,数码管显示2.不转,数码管显示0.采用Proteus软件进行仿真。在Keil uVsuon3编程环境下编程和编译生成HEX文件,导入到 80C51单片机,实现对各个模块的控制,实现我们所需要的功能。 本次课程是对毕业设计的基础设计,即实现4x4键盘输入,数码管显示输入数字的设计。 二、方案论证 1步进电机驱动方案选择 方案1 :使用功率三极管等电子器件搭建成功率驱动电路来驱动电机的运行。这种方案的驱动电路的优点是使用电子器件联接,电路比较简单,但容易受 干扰,信号不够稳定,缺点是器件较大而不便电路的集成,使用时很不方便,联接时容易出错误。 方案2:使用专门的电机驱动芯片ULN2003A来驱动电机运行。驱动芯片的优点是便于电路的集成,且驱动电路简单,驱动信号很稳定,不易受外界环境的干扰,因而设计的三相步进电机控制系统性能更好。 通过对两种方案的比较,我选择方案2使用ULN2003A S机驱动芯片来作为驱动。 2数码管显示方案选择 方案1:把所需要显示的数据通过专用的七段显示译码器(例如7448)的转换输出给LED显示屏。优点是输出比较简单,可以简化程序,但增加了芯片的费用,电路也比较复杂。 方案2:通过程序把所要的数据转化为七段显示的数据,直接通过单片机接 口来显示,其优点是简化了电路,但增加了软件编写的负担。 通过对两种方案进行比较,我选择通过软件编写来输出显示信号,即单片机直接和显示器相连。 3控制状态的读取 方案1:把按键接到单片机的中断口,若有按键按下,单片机接收到中断信 号,再通过软件编写的中断程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。

51单片机数码管显示矩阵键盘键入值

51单片机实现数码管显示矩阵键盘键入值 #include #define uchar unsigned char uchar code decode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; void delay(uchar); uchar temp,b,c,d,num; void display(uchar); void main() { while(1) { P0=0xfe; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp)

case 0xe0:num=0;break; case 0xd0:num=1;break; case 0xb0:num=2;break; case 0x70:num=3;break; } } } P0=0xfd; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp) { case 0xe0:num=4;break; case 0xd0:num=5;break; case 0xb0:num=6;break; case 0x70:num=7;break;

} } P0=0xfb; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp) { case 0xe0:num=8;break; case 0xd0:num=9;break; case 0xb0:num=10;break; case 0x70:num=11;break; } } } P0=0xf7; temp=P0;

通过键盘输入一组数字

一、通过键盘输入一组数字,并用单链表形式存储,输入完成后分别按顺序和逆序输出所输 入的数字。(作者:缪海涛) 解: #include #include #include typedef struct node { int c; struct node *link; }Node; Node *head; Node *first() { Node *h2; h2=(Node *)malloc(sizeof(Node)); h2->c='\0'; h2->link=NULL; return h2; } Node *create(Node *h2) { Node *p,*h,*s,*r; int x; char y; h=(Node *)malloc(sizeof(Node)); h->link=NULL; p=h; printf("请输入一组数字,以空格间隔:\n"); scanf("%d",&x); for(;;) { if(y!='\n') { s=(Node *)malloc(sizeof(Node)); p->link=s; s->c=x; s->link=NULL; p=s; r=(Node *)malloc(sizeof(Node)); r->c=x; r->link=h2->link; h2->link=r; scanf("%d",&x);

scanf("%c",&y); } else { s=(Node *)malloc(sizeof(Node)); p->link=s; s->c=x; s->link=NULL; p=s; r=(Node *)malloc(sizeof(Node)); r->c=x; r->link=h2->link; h2->link=r; break; } } return h; } void main() { Node *h=NULL,*h2; h2=first(); head=create(h2); h=head; printf("您输入的数字组正序为:\n"); while(h->link!=NULL) { printf("%d",h->link->c); h=h->link; if(h->link!=NULL) { printf("->"); } } printf("\n\n"); printf("您输入数字组的倒序为:\n"); while(h2->link!=NULL) { printf("%d",h2->link->c); h2=h2->link; if(h2->link!=NULL) { printf("->"); }

从键盘输入一串字符,分别统计其中的字母(不区分大小写)、数字字符和其他

; 题目名称:分类统计字符 ; 题目来源:https://www.doczj.com/doc/a410780758.html,/question/131013276.html ; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。 Code Segment Assume CS:Code,DS:Code ; -------------------------------------; 功能:显示指定地址(Str_Addr)的字符串 ; 入口: ; Str_Addr=字符串地址(要求在数据段) ; 用法: Output Str_Addr ; 用法举例:Output PromptStr Output MACRO Str_Addr lea dx,Str_Addr mov ah,9 int 21h EndM ; -------------------------------------; 功能:在当前光标位置显示一个字符 ; 入口:dl=要显示的字符 Output_Chr proc Near push ax mov ah,02h int 21h pop ax ret Output_Chr Endp ; -------------------------------------; 功能:显示、输出一个回车、换行 Output_CTLF proc Near push ax push dx mov ah,02h mov dl,0dh int 21h mov dl,0ah int 21h pop dx pop ax ret Output_CTLF Endp ; -------------------------------------; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示

4乘4矩阵键盘输入数码管显示四位数

沈阳航空航天大学 综合课程设计三相步进电机控制器电路的设计 班级 94020101 学号 2009040201023 学生姓名 XXXXXXXXX 指导教师常丽东

课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1.谢自美. 电子线路设计·实验·测试. [M]武汉:华中理工大学出版社,2000年 2.阎石. 数字电子技术基础. [M]北京:高等教育出版社,2006年 3.童诗白、华成英.模拟电子技术基础. [M]北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M]北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M]北京:人民邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

键盘输入显示程序

#include #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00};//0-f-最后一个空uchar j=1; sbit p37=P3^7; void delay(uint z) { uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(ucharshu) { P1=table[shu]; delay(5); } ucharkeyscan() {

uchartemp,num; P2=0xfe; temp=P2; temp=temp&0xf0; if(temp!=0xf0) { p37=0; delay(5); temp=P2; temp=temp&0xf0; while(temp!=0xf0) { temp=P2; switch(temp) { case 0xee:num=1;break; case 0xde:num=2;break; case 0xbe:num=3;break; default:break; } while(temp!=0xf0)//**********松手检测松手后显示{ j=0;

temp=P2; temp=temp&0xf0; } } }p37=1; P2=0xfd; temp=P2; temp=temp&0xf0; if(temp!=0xf0) { p37=0; delay(5); temp=P2; temp=temp&0xf0; while(temp!=0xf0) { temp=P2; switch(temp) { case 0xed:num=4;break; case 0xdd:num=5;break; case 0xbd:num=6;break; }

键盘输入原理

基础知识 1. 键盘的基本原理 键盘是一组按键的组合,它是最常用的输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机对话。 键盘是一种常开型的开关,通常键的两个触点处于断开状态,按下键时它们才闭合。键盘的识别有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。目前有很多芯片可以用来实现键盘扫描,如有Intel8279、CH451、ICM7218、PCF8574等。但是键盘扫描的软件实现方法有助于缩减系统的重复开发成本,且只需要很少的CPU 开销。嵌入式控制器的功能很强,可以充分利用这一资源,这里就介绍一下用软件实现键盘扫描的方案。 键盘从结构上分为独立式键盘与矩阵式键盘。一般按键较少时采用独立式键盘,按键较多时采用矩阵式键盘。 (1)独立式键盘。在由单片机组成的测控系统及智能化仪器中,用的最多的是独立式键盘。这种键盘具有硬件与软件相对简单的 特点,其缺点是按键数量较多时,要占用大量口线。当按键没 按下时,CPU对应的I/O接口由于内部有上拉电阻,其输入为

高电平;当某键被按下后,对应的I/O接口变为低电平。只要 在程序中判断I/O接口的状态,即可知道哪个键处于闭合状态。 (2) 矩阵式键盘。矩阵式键盘使用于按键数量较多的场合,它由行线与列线组成,按键位于行、列的交叉点上。一个3*3的行列结构可以构成一个有9个按键的键盘。同理,一个4*4的行列可以构成一个16按键的键盘。很明显,在按键数量较多的场合,与独立式键盘相比,矩阵式键盘要节省很多I/0接口。

2、键盘按键识别方法 (1)扫描法。扫描法有行扫描和列扫描两种,无论采用哪种,其效果是一样的,只是在程序中的处理方法有所区别。下面以行扫描法为例来介绍扫描法识别按键的方法。先向键盘4根行线输出其中某一行为低电平,其它行为高电平,然后读取列值,若某一列值为低电平,则表明同时为低电平的行和列的交叉处按键被按下,如果没有某列为低电平,则继续扫描下一行。因为输入低电平的行是从第一行开始逐行遍历的,故称为行扫描法。行与列是相对的,可以将行按列对待,同时将列按行对待,所实现的扫描法效果是一样的。

单片机键盘输入编程(C语言)

学习过单片机技术的人都知道,单片机的按键输入一般可分为简单的独立式按键输入及行列式键盘输入两种。图1为简单的独立式键盘输入示意图,独立式键盘输入适合于按键输入不多的情况(<5个按键),具有占用口线较少、软件编写简单容易等特点。 图2为行列式键盘输入示意图,列线接P1.0~P1.3,行线接P1.4~P1.7。行列式键盘输入适合于按键输入多的情况,如有16个按键输入,用简单按键输入用要占用2个输入口(共16位),而使用行列式键盘输入只需占用一个输入口(8位)。但行列式键盘输入软件编写较复杂,对初学者而言有一定的难度。

以上略谈了一下按键输入的情况。在很多状态下,按键输入的值要同时要在LED数码管上显示出来。如一个按键设计为输入递增(加法)键,可以设计成每点按一下,数值递增加1,同时在LED数码管上显示出来;也可设计成持续按下时,数值以一定时间间隔(如0.3秒)累加。但是当欲输入值较大时(如三位LED数码管作输入显示时的输入值最大为999),则可能按下键的时间太长(最长达300秒),看来这种方式只适用于一位或至多两位数值(最大99)的输入。当然你也可多设几个键,每个键只负责一位数值的输入,但这样会占用较多的口线,浪费宝贵的硬件资源。 大家可能见到过,一些进口的温度控制器(如日本RKC INSTRUMENT INC. 生产的REX_C700温控器)的面板设计为:温度测量值用4位LED数码管显示,输入设定值显示也用4位

LED数码管,输入按键只有4个,一个为“模式设定键”,一个为“左移键”,另两个为“加法键”、“减法键”。欲输入设定值(温控值)时,按一下“模式设定键”,程序进入设定状态,此时输入设定值显示的4位LED数码管中,个位显示最亮(稳定显示),而十、百、千位显示较暗(有闪烁感),说明可对个位进行输入。按下“加法键”或“减法键”,即可输入个位数的值;点按一下“左移键”,变为十位显示最亮,而个、百、千位显示较暗,说明可对十位进行输入。按下“加法键”或“减法键”,即可输入十位数的值;……这样可完成4位数的输入。完成输入后,再按一下“模式设定键”,程序即退出设定状态,进入工作运行。用这种输入方法,不仅输入4位数用4个键即可,再多位(5位至24位)的输入也用这4个键就够了。 大家了解了这种新颖的按键输入方式后,一定很感兴趣,也想掌握设计方法。为了便于大家理解,这里结合笔者设计的一款“节能时控器”,详细进行讲解。“节能时控器”用于定时控制大功率电器工作,因现采用分时计费方法,可起到节约开支的作用,对工业生产成效显著。 图3为“节能时控器”硬件构成原理图。“节能时控器”共有4个输入按键:set--模式设定键,left--左移键,up—加法键,on/off--定时1、2启动/关闭键。单片机IC1(AT89C2051)只有15条I/O线,由于受I/O线数量限制,因此P1口中的 P1.0~P1.3既作为驱动4位LED数码管的数据输出一部分,同

从键盘输入数据并显示实验

实验四从键盘输入数据并显示实验 【实验目的】 1.掌握键盘输入字符的方法和十六进制数字字符的ASCII码转换为二进制数的原理。 2.掌握子程序定义和调用的方法。 3.掌握循环移位指令的用法和无符号数比较大小的方法。 【实验性质】 验证性实验(学时数:2H) 【实验内容】 从键盘上输入4位十六进制数,将其转换为16位二进制数并在显示器上显示出来。要求输入的数字字符串以回车键结束。如果输入的数字超过4个,则以最后输入的4个为准。若按下的键不是十六进制数字字符,则显示出错信息。 参考程序: 【实验提示】 从键盘上输入的十六进制数字字符进入计算机后并不是相应的十六进制数或二进制数,而是与字符对应的ASCII码,现要找出ASCII码与该数字对应的二进制数之间的关系。关系如下: 十六进制数字字符字符对应的ASCII码数字对应的二进制数 0 ~930H ~39H ASCII码- 30H A ~F41H ~46H ASCII码- 37H a ~f61H ~66H ASCII码- 57H 【报告要求】 1.给出该问题的程序设计流程图。 2.给出该程序的全部代码,并加上注释。 3.总结实验体会。 CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM DATA SEGMENT

MARK DB MESS DB '输入四位十六进制数,按回车键转化为二进制数,空格键结束!',0DH,0AH,'输入:$' ERROR DB 0DH,0AH, '输入错误!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW 32 DUP() TOP DW STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP HEAD: CRLF MOV MARK,0 MOV AH,09H LEA DX,MESS INT 21H ;显示提示输入的信息 CALL GETNUM ;接收键入数值送DX CMP MARK,01H JE HEAD MOV CX,0010H ;16位 MOV BX,DX TTT: ROL BX,1 ;循环左移1位 MOV DL,BL AND DL,01H ;屏蔽掉高7位 ADD DL,30H MOV AH,02H INT 21H ;显示二进制位对应的ASCII字符 LOOP TTT JMP HEAD FINI: MOV AX,4C00H INT 21H ;返回DOS GETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CX XOR DX,DX GGG: MOV AH,01H INT 21H CMP AL,0DH ;输入为回车,则进行转换 JE PPP CMP AL,20H ;输入为空格,则退回DOS JE FINI CMP AL,30H JB KKK SUB AL,30H

键盘输入

4.2 键盘 4.2.1键盘概念 键盘是最常用也是最主要的输入设备,通过键盘,可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。 4.2.2键盘的分类 按照键盘的工作原理和按键方式的不同,可以划分为四种: (1)机械式键盘(Mechanical) 采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。 (2)塑料薄膜式键盘(Membrane)键盘内部共分四层,实现了无机械磨损。其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。 (3)导电橡胶式键盘(Conductive Rubber)触点的结构是通过导电橡胶相连。键盘内部有一层凸起带电的导电橡胶,每个按键都对应一个凸起,按下时把下面的触点接通。这种类型键盘是市场由机械键盘向薄膜键盘的过渡产品。(4)无接点静电电容式键盘(Capacitives)使用类似电容式开关的原理,通过按键时改变电极间的距离引起电容容量改变从而驱动编码器。特点是无磨损且密封性较好。 按其结构形式可分为以下两种: (1)编码键盘 编码键盘采用硬件方法产生键码。每按下一个键,键盘能自动生成键盘代码,键数较多,且具有去抖动功能。这种键盘使用方便,但硬件较复杂,PC机所用键盘即为编码键盘。 (2)非编码键盘 非编码键盘仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单,广泛应用于各种单片机应用系统,本次设计使用非编码键盘。 按照键盘与单片机的连接方式可分为一下两种: (1)独立式键盘 独立式键盘,顾名思义,即各按键相互独立,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他按键的工作状态。这种按键软件程序简单,但占用I/O口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。 (2)矩阵式键盘 矩阵式键盘又称行列式键盘,在其行、列交汇点接有若干个按键。当需要较多按键时,与独立式键盘相比,单片机口线资源利用率大幅提高了。但若需要更多的键盘,需采用接口扩展技术,如8155等。 综上所述,结合实际情况,本次设计选用非编码矩阵式键盘。 4.2.3非编码矩阵式键盘工作原理 非编码矩阵式键盘,作为单片外围电路,应具有如下功能:

【免费下载】从键盘输入一个四位数按如下规则加密后输出

作业31、从键盘输入一个四位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字,再把第一位与第三位交换,第二位与第四位交换。clear x=ones(1,4);x(1)=input('输入第一位:');x(2)=input('输入第二位:');x(3)=input('输入第三位:');x(4)=input('输入第四位:');x=rem(7+x,10);y=1000.*x(3)+100.*x(4)+10.*x(1)+x(2)2、分别用if 语句和switch 语句实现以下计算,其中a ,b ,c 的值从键盘输入。?????????≤≤+≤≤+≤≤++=5.55.3,ln 5.35.1,sin 5.15.0,2x x c b x x b a x c bx ax y c a=input('请输入a:');b=input('请输入b:');c=input('请输入c:');if(x>=0.5&&x<=1.5) y=a.*x^2+b.*x+c elseif(x>=1.5&&x<=3.5) y=a.*(sin(b))^c+x elseif(x>=3.5&&x<=5.5) y=log(abs(b+c./x))end a=input('请输入a:');b=input('请输入b:');c=input('请输入c:');switch x case (x>=0.5&&x<=1.5) y=a.*x^2+b.*x+c case (x>=1.5&&x<=3.5) y=a.*(sin(b))^c+x case (x>=3.5&&x<=5.5) y=log(abs(b+c./x))end 3、已知 63322......2221+++++=s

c语言编程 题目及答案

**********************************考试形式:上机考试(60分钟) 考试题型说明:10个单选题+2个编程题 下面是编程题目的复习题型,期末考试的编程题型及难易程度与此相近,请大家认真复习,强化练习,打下坚实基础,顺利通过考试。 ********************************** 1、编写一计算阶乘的函数fac,在主函数中从键盘输入一个正整数,调用阶乘函数fac计算阶乘并输出计算结果。 2、编写一个求x的y次幂的函数pw,在main函数中从键盘输入a、b的值,然后调用pw函数求a的b次幂,并输出结果。 3、写一函数max,计算三个数中最大数。在主函数中输入三个数,调用该函数求出其中最大数并输出。(要求:三个数为实数) 4、写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m, n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。 5、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中 调用该函数,输出200以内所有的素数。 6、请编一个自定义函数,功能:将给定的字符串中的所有字母改为小写字母。字符串在主函数中从键盘任意输入(容许包含空格) 7、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数

中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”, 否则输出“no” 8、将1--1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到屏幕上。 9、在屏幕上打印以下图案:(要求打印N行,N用符号常量定义为7) * ** *** **** ***** ****** ******* 10、输出所有在正整数200和300之间能被6整除、但不能被4整除的数,并统计这样的数有多少个。 11、求S=1/1+1/2+1/3+……+1/100(精确到小数点后三位)。 12、编程计算1到20的平方和,并输出结果。(要求用for循环) 13、编写一个程序从键盘任意个整数,求均值及低于均值的个数,输出到屏幕。 14、编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、最低分输出,要求将该程序以文件名test1.c保存到K盘根目录。 15、在main()函数中输入一个人的年龄和性别,女士55岁退休,男士60岁退休。编写一个函数根据年龄和性别判断一个人士工作还是退休,若工作,则输出“Working!”,退休则输出“Retired!” 161、编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、最低分输出。 17、编写一个函数求一个实数的绝对值。然后在main函数中用scanf输入 任意个实数,调用该函数求它的绝对值并输出。 18、编写一个求1——n内的偶数和的函数,在main()函数中输入n,然后 调用该函数求1——n的偶数和并输出。 19、编写一个求1——n内的奇数和的函数,在main()函数中输入n,然后

通过scanf函数从键盘输入数据

通过scanf函数从键盘输入数据 1)当调用scanf函数从键盘输入数据时,最后一定要按下回车键,scanf函数才能接受键盘输入的数据。 2)输入数据值 当键盘输入数据时,输入的数值数据之间用间隔符隔开。列<间隔符>10<间隔符>20 <间隔符> 此处间隔符可以是空格符、制表符(Tab)、回车符。 3)跳过输入数据的方法 可以在格式字符和%之间加上一个*,它的作用是跳过对应的输入数据。列 Int a1,a2, a3; Scanf("%d%d*%d%d%d",&a1,&a2,&a3); 当输入如下数据时:10 20 30 40 将把10赋给a1,跳过20,把30赋给a2,把10赋给a3 4)在格式字符串中插入其他字符 如果想在屏幕上输入字符串来提示,应该使用printf函数,如果在scanf的格式控制字符串中插入其他字符,则在输入时要求按一对一的位置原样输入这些字符 列1 Int a1,a2,a3; Scanf(“inpat a1,a2,a3:%d%d%d”,&a1,&a2,&a3); 要求按以下形式进行输入 Input a1,a2,a3:102030 列1 以下程序由终端出入两个整数给变量x和y,在交换x和y的值后,在输出x和y,验证两个变量中的数是否正确的进行了交换。 #inclube "stdio.h" Main() {int x,y,t; Printf("enter x&y:\n"); Scanf("%d %d",&x,&y); Printf9("x=%d y=%d\n",x,y); T=x;x=y;y=t; Printf("x=%d y=%d\n",x,y); } 列2 输入一个doulbe类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入后处理,然后输出此数,以便验证处理是否正确。

键盘使用说明书完整版

一、键盘简介键盘是计算机使用者向计算机输入数据或命令的最基本的设备。常用的键盘上有101个键或103个键,分别排列在四个主要部分:打字键区、功能键区、编辑键区、小键盘区。 现将键盘的分区以及一些常用键的操作说明如下: (一)打字键区 它是键盘的主要组成部分,它的键位排列与标准英文打字机的键位排列一样。该键区包括了数字键、字母键、常用运算符以及标点符号键,除此之外还有几个必要的控制键。 下面对几个特殊的键及用法作简单介绍。 键的名称 主要功能说明 空格键 键盘上最长的条形键。每按一次该键,将在当前光标的位置上空出一个字符的位置。 [Enter↙] 回车键 (1)每按一次该键,将换到下一行的行首输入。就是说,按下该键后,表示输入的当前行结束,以后的输入将另起一行。 (2)或在输入完命令后,按下该键,则表示确认命令并执行。[CapsLock]大写字母锁定键 在打字键区右边。该键是一个开关键,用来转换字母大小写状态。每按一次该键,键盘右上角标有CapsLock的指示灯会由不亮变成发亮,或由发亮变成不亮。这时: (1)如果CapsLock指示灯发亮,则

键盘处于大写字母锁定状态:1)这时直接按下字母键,则输入为大写字母;2)如果按住[Shif]键的同时,再按字母键,输入的反而是小写字母。 (2)如果这时CapsLock指示灯不亮,则大写字母锁定状态被取消。 [Shift]换档键 换档键在打字键区共有两个,它们分别在主键盘区(从上往下数,下同)第四排左右两边对称的位置上。 (1)对于符号键(键面上标有两个符号的键,例如:等,这些键也称为上下档键或双字符键)来说,直接按下这些键时,所输入的是该键键面下半部所标的那个符号(称为下档键); 如果按住[Shift]键同时再按下双字符键,则输入为键面上半部所标的那个符号(称为上档键)。如: [Shift] +=% (2)对于字母键而言:当键盘右上角标有CapsLock的指示灯不亮时,按住[Shift]键的同时再按字母键,输入的是大写字母。例如:CapsLock指示灯不亮时,按[Shift] +S键会显示大写字母S [←BackSpace]退格删除键 在打字键区的右上角。每按一次该键,将删除当前光标位置的前一个字符。 [Ctrl]控制键 在打字键区第五行,左右两边各一个。该键必须和其它键配合才能实现各种功能,这些功能是在操作系统或其他应用软件中进行设定的。例如:

用单片机实现PC键盘输入

用单片机实现PC键盘输入.txt跌倒了,爬起来再哭~~~低调!才是最牛B的炫耀!!不吃饱哪有力气减肥啊?真不好意思,让您贱笑了。我能抵抗一切,除了诱惑……老子不但有车,还是自行的……串行口和键盘口通讯接口的单片机实现 摘要:在某些特殊控制场合,需要通过主控机的串行口和受控机的PS/2键盘口,实现主控机对受控机的模拟键盘输入。本文介绍了串行口和键盘口的通讯接口的软、硬件设计方法。 关键词:串行口 PS/2键盘口通讯单片机 键盘作为微机的基本输入设备,是微机不可缺的一部分。但在某些特殊的场合,我们要对受控机进行程序设计的特殊输入控制,则需要一接口实现串行口和PS/2键盘口通讯,这样在主控机上通过对串行口的编程就能实现对受控机的模拟键盘输入。笔者开发的该接口以MCS-51单片机为核心,原理图如图1所示,利用MCS-51的全双工异步串行I/O口实现与主控机的异步串行通讯,而和受控机PS/2键盘口的同步串行通讯则通过双向数据I/O口控制同步时钟和数据位。 .1.和主控机的异步串行通讯 异步通讯按帧传送数据,它利用每一帧的起、止信号来建立发送与接受之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个发送和接收的。 1.1硬件接口设计 与主控机的异步串行通讯基于RS-232总线标准。为了使接口具有更好的兼容性和工作稳定性,我们用MAX232E作为数据传送器。MAX232E是专为RS-232通讯而设计,低功耗,外接电容小,抗干扰能力强,管脚有ESD保护并且能支持到120k波特率的数据传输,能很好地解决PC机和单片机电平不匹配问题。同时它增强了数据驱动能力,能支持12米的串行线。 1.2软件接口设计 异步通讯必须在字符格式中设置起始位和结束位,以使收发双方取得同步。其数据格式为1位起始位+8位数据位+奇偶校验位+1位或2位的停止位。其中起始位为低电平,数据位传送时先低后高,停止位为高电平。笔者在电路板上设计了异步串行通讯跳线,可设置通讯的波特率、奇偶校验位和停止位,在单片机软件的开始读取跳线设置值而后初始化串行口,从而支持多种通讯数据格式。 PC机启动时将向串行口发送两个字节的00H以检测串行口,同时防止主控机上的串行口其他的干扰信息,通讯时笔者设计的报文以A0H,CDH作为联络信息开头,第三字节为数据长度,之后为我们要传送的数据,这样有效地过滤掉干扰信息。单片机按串行口中断方式接收主控机的数据,收到有效格式的数据后,解析报文,提取出真实的数据,传送给受控机的PS/2口。

在java中如何用键盘输入一个数

在java中如何用键盘输入一个数 一、java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。 实例程序: 一,利用Scanner 实现从键盘读入integer或float 型数据 import java.util.*; //import java.io.*; class Abc { public static void main(String args[]) { Scanner in=new Scanner(System.in); //使用Scanner类定义对象 System.out.println("please input a float number"); float a=in.nextFloat(); //接收float型数据 System.out.println(a); System.out.println("please input a integer number"); int b=in.nextInt(); //接收整形数据 System.out.println(b); } } 二,利用BufferedReader实现从键盘读入字符串并写进文件abc.txt中 import java.io.*; public class Test1 { public static void main(String[] args) throws IOException { BufferedReaderbuf = new BufferedReader (new InputStreamReader(System.in)); BufferedWriter buff = new BufferedWriter(new FileWriter("abc.txt")); String str = buf.readLine(); while(!str.equals("exit")) { buff.write(str); buff.newLine(); str = buf.readLine(); } buf.close(); buff.close(); } } 关于JDK1.5 Scanner类的说明 Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象. Scanner reader=new Scanner(System.in);

键盘及LED显示实验

实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED 显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。 5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED显示器,学生可选用任一位LED显示器,只要按地址输出相应的数据,就可以显示所需数码。 六、实验原理图

P1口桥接。 八、实验参考流程图 1.主程序流程图

2.外中断服务程序流程图 外部中断0 外部中断1 定时器0中断程序,用于消抖动:

3.LED显示程序流程图 九、C51语言参考源程序 #include "reg52.h" unsigned char KeyResult; //存放键值 unsigned char buffer[8]; //显示缓冲区 bit bKey; //是否有键按下 xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口 xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口 xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口 xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口 code unsigned char SEG_TAB[] = { //段码 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0}; sbit bLine0 = P3^2; sbit bLine1 = P3^3; //延时1ms void Delay1ms() { unsigned char i;

相关主题
文本预览
相关文档 最新文档