求这几题C语言程序设计题目的解析

求这几题C语言程序设计题目的解析,第1张

14 while循环没有加{ },所以只控制宴数纳printf一条打印语句

第一次 :n-- 为6n使用时是5 --n为4;

第二次 :n-- 为4n使用时晌没是3 --n为2;

第三次 :n-- 为2n使用时是1 --n为0;

从第一次循环中我们得到打印的结果每次-2,循环三次,所以结果为420

15 b==c中的==为判断符号,其结果只有两种0或1,条件成立返回1,不成则立毕薯返回0

16 x为二维数组

| 0 1 2 |

| 3 4 5 |

| 6 7 8 |

其for 循环的结果为0,1,2所以其取值为x[0][2],x[1][1],x[2][0],结果就是246

1.程序设计

大家在做程序设计的时候要根据系统的控制要求,采用合适的设计方法来设计三菱PLC程序。程序要以满足系统控制薯闹要求为主线,逐一编写实现各控制功能或各任务的程序,逐步完善系统指定的功能。除此之外,程序通常还应包括以下内容:

1)初始化程序。在三菱PLC上电后,一般都要做一些初始化的 *** 作,为启动作必要的准备,避免系统发生误动作搜手散。初始化程序的主要内容有:对某些数据区、计数器等进行清零,对某些数据世氏区所需数据进行恢复,对某些继电器进行置位或复位,对某些初始状态进行显示等等。

2)检测、故障诊断和显示等程序。这些程序相对独立,一般在程序设计基本完成时再添加。

3)保护和连锁程序。保护和连锁是程序中不可缺少的部分,必须认真加以考虑。它可以避免由于非法 *** 作而引起的控制逻辑混乱。

2. 程序模拟调试

程序模拟调试是以方便的形式模拟产生现场实际状态,为程序的运行创造必要的环境条件。模拟调试有硬件模拟法和软件模拟法两种形式。

1)硬件模拟法是使用一些硬件设备模拟产生现场的信号,并将这些信号以硬接线的方式连到PLC系统的输入端,其时效性较强。

2)软件模拟法是在三菱PLC中另外编写一套模拟程序,模拟提供现场信号,其简单易行,但时效性不易保证。模拟调试过程中,可采用分段调试的方法,并利用编程器的监控功能。

#include<stdio.h>

#include<stdlib.h>

#define MAX 100

struct addr{

char name[30]

char street[40]

char city[20]

char state[3]

unsigned long int zip

}add_list[MAX]

void init_list(void),enter(void)

void delete(void),list(void)

void load(void),save(void)

int menu_select(void),find_free(void)

int main(void)

{

char choice

init_list()/咐侍*initialize the structure array*/

for(){

choice=menu_select()

switch(choice){

case 1:enter()

break

case 2:delete()

break

case 3:list()

break

case 4:save()

break

case 5:load()

break

case 6:exit(0)

}

}

return 0

}

/*Initialize the list*/

void init_list(void)

{

register int t

for(t=0t<MAX++t)

add_list[t].name[0]='0'咐橘

}

/*Get a menu selection*/

int menu_select(void)

{

char s[80]

int c

printf("1.Enter a name\n")

printf("2.Delete a name\n")

printf("3.List the file\n")

printf("4.Save the file\n")

printf("5.Load the file\n")

printf("6.Quit\n")

do{

printf("\nEnter your choice:")

gets(s)

c=atoi(s)

}while(c<0||c>6)

return c

}

/*Input addresses into the list*/

void enter(void)

{

int slot

char s[80]

slot=find_free()

if(slot==-1){

printf("\nList Full")

return

}

printf("Enter name:")

gets(add_list[slot].name)

printf("Enter street:"衡简吵)

gets(add_list[slot].street)

printf("Enter city:")

gets(add_list[slot].city)

printf("Enter state:")

gets(add_list[slot].state)

printf("Enter zip:")

gets(s)

add_list[slot].zip=strtoul(s,'\0',10)

}

/*Find an unused structure*/

int find_free(void)

{

register int t

for(t=0add_list[t].name[0]&&t<MAX++t)

if(t==MAX)

return -1/*no slots free*/

return t

}

/*Delete an address*/

void delete(void)

{

register int slot

char s[80]

printf("enter record # :")

gets(s)

slot=atoi(s)

if(slot>=0&&slot<MAX)

add_list[slot].name[0]='\0'

}

/*Display the list on the screen*/

void list(void)

{

register int t

for(t=0t<MAX++t){

if(add_list[t].name[0]){

printf("%s\n",add_list[t].name)

printf("%s\n",add_list[t].street)

printf("%s\n",add_list[t].city)

printf("%s\n",add_list[t].state)

printf("%s\n",add_list[t].zip)

}

}

printf("\n\n")

}

/*Save the list*/

void save(void)

{

FILE *fp

register int i

if((fp=fopen("maillist","wb"))==NULL)

printf("Cannot open file\n")

return

for(i=0i<MAXi++)

if(*add_list[i].name)

if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)

printf("File write error\n")

fclose(fp)

}

/*Load the file*/

void load(void)

{

FILE *fp

register int i

if((fp=fopen("maillist","rb"))==NULL){

printf("Cannot open file\n")

return

}

init_list()

for(i=0i<MAXi++)

if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){

if(feof(fp))break

printf("File read error\n")

}

fclose(fp)

}


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

原文地址:https://54852.com/yw/12487040.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存