C语言程序是由哪些部分组成的,各部分的作用是什么

C语言程序是由哪些部分组成的,各部分的作用是什么,第1张

1,先编译预处念携理,头文件。如:#include“stdio.h”,即表示库函数中的输入输出函数

2,用户函数自定义。

3,主函数,一个C语言程序中只能有一个主函数:main()

4,函数体。当中包含数据类型的定义,赋值,和一系列腊高大的执行语句。

一般的程序差不多就是这轮竖样子

#include<stdio.h> // stdio中包含对printf, scanf, getchar的声明。非标准语法的使用需要先声明

int main(void) { // 这个是C程序的入口,返回值类型是int,传入参数类型void

    int i, j, length // 定义变量及类型,i和j只是计数器,

    char temp, ch = 0 // 定义变量temp/ch,并且给ch赋值为0

    printf("Please input an uppercase letter:") //在控制岩答台输出引号中的话

    scanf("%c", &ch) //然后读取一个输入,输入的类型是字符("%c"),并且赋值给变量ch

    getchar() // 不知道……我以为scanf就可以了

    

    length = ch - 'A' + 1 // 字符的本质其实也是数字,'A'等于98(忘了),假设我们输入'D',那length就是4

    for (i = 0 i < length i++) { // 循环结构,初始i=0,每次i自增1,当i<length的时候会进入循环。

        // 所以如果输入'D',那会循环4次,i分别是0/1/2/3

        temp = 'A' - 1 // 先让temp等于 'A'-1,因为后面有 ++temp 的 *** 作

        // 而且每次循环都执行了这一步

        for (j = 0 j < (length - i - 1) j++) {

            // 嵌入的子循环,i==0时就会循环3次,然后输出三个空亏行格

            printf(" ")

        }

        for (j = 0 j <= i j++) {

            // 同上,但每次子循环输出字符A/B/C…,输出多少和i有关系

            printf("%c", ++temp) // ++temp是自增,等同于 temp = temp + 1,如果第一次输出'A',第二次就会是'B'

        }

        for (j = 0 j < i j++) {

            // 这个 *** 作和上面刚好相反

            printf("%c", --temp)

        }

        printf("\n") //输出完要换行

        // 输出第一行后就是:***A (表示为“***,A,”,“*”表示空格)

        // 在第二次输出后是:**ABA (表示为“**,AB,A”)

        // 第三次输出之后是:*ABCBA (上面括号里的逗号分别表示三个子循环的输出)

        // 第四次输出之后是:ABCDCBA (我表示很很怀疑输出的结果是不是这几个)粗空慧

    }

    return 0 // 程序结束,返回状态,还记得上面main的返回类型是int不

}

大概是这个意思,<del>不确定输出结果是什么</del>(原来每次都会给temp赋值为'A'-1,刚才搞错了)。不知你刚学了解多少,可能有些解释多余了,也可能有些地方没说清。

呵呵,这个是一个单片机的问题,我可以给你解释,但是必须把分给我

#include <reg51.h> 头文件包含

#include <math.h>

#define uchar unsigned char 用Uchar 定义unsigned char

#define uint unsigned int

#define ON 0 //电动机开关的宏

#define OFF 1

sbit PWM=P3^5//与电动机通信的端口 定时器1外部中断

sbit MP=P3^4 //定时器0外部中断

bit FLAG=0 //数据是否需要显示的标志

uchar code dispbit[6]={0x20,0x10,0x08,0x04,0x02,0x01}//选择led的六个中的一拦差咐个

uchar code seg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}//0——9显示代码

//0,1,2,3,4,5,6,7,8,9

uchar disbuf[6]={0,0,0,0,10,10}//数据缓冲区,j就是屏庆歼幕显示的缓冲数据

uint temp[6]//显示速度分成显示字符的缓冲区

uint discount=0 //显示位数的定位

uint timecount=0 //定时的次数

uint T0count=0 //to计数器的溢出次数

uint hus=0

uint k=60

uint Vc

uint Vs

uint tm=3000 //外部定时器1的初始值,就是测转最多多少次

uint x

void t0_serv() interrupt 1 //外部定时器0中断延时定时器到了,TOCUNT加一,时间

{ T0count++

}

void t1_serv() interrupt 3 //外部定时器1中断延时定时器到了响应中断

{

PWM=1

TH1=(65536-tm)/256 /定时器1初始化

TL1=(65536-tm)%256

hus++

if(hus==tm) //是否到3000次

{ PWM=0

TH1=(25536+tm)/256 //定时器0初始化

TL1=(25536+tm)%256

}

timecount++ //时间加一

if(timecount==250) //最多多少时间

{

//FLAG=1 //需要显示啦

TR0=0//初始化

hus=0

timecount=0

Vc=T0count*65536+TH0*256+TL0

Vs=144

if(abs(Vc-Vs)>5) /简纯/得到的值与144相比

{ tm=abs(k*(Vc-Vs))

T0count=0

TR0=1

TR1=1

ET0=1

ET1=1

EA=1

}

FLAG=1

TR0=0

timecount=0

}

P0=dispbit[discount]

P1=seg[disbuf[discount]]

discount++

if(discount==6)

{ discount=0

}

}

void main()

{ uint i

TMOD=0x15//设置定时器启动模式

TH0=0//定时器0的初始值

TL0=0

TH1=(65536-tm)/256//定时器1的初始值

TL1=(65536-tm)%256

TR0=1//启动定时器

TR1=1

ET0=1//启动两个中断

ET1=1

EA=1//开中断

while(1)

{ if(FLAG==1)

{ FLAG=0

x=T0count*65536+TH0*256+TL0//显示初始化 0

for(i=0i<6i++)

{temp[i]=0

}

i=0

while(x/10)

{

temp[i]=x%10//将x放入缓冲区

x=x/10

i++

}

temp[i]=x

for(i=0i<6i++)

{

disbuf[i]=temp[i]//将临时缓冲区的数据放入显示缓冲区

}

timecount=0//定时器的归零初始化

T0count=0

TH0=0

TL0=0

T0count=0

TR0=1

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12399334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存