c程序这个程序怎么运行的

c程序这个程序怎么运行的,第1张

先说明下这段代码是有歧义的,

如果按照中对齐方式添加 {  和 }的话:这段代码的功能: 求a, b, c三个数的最大值。

所以这道题目选:A)  max=8

这种题其实最简单的方法就是在编译器上敲出来,运行一边就可以了。

我特意在编译器帮你运行了一边,打印结果如下:

题目分析:

1、先拿c和a,b相比较,因为c=3, 小于b (b=8),所以if条件不成立,走的是else分支。

2、在else分支中,判断if(b > a)是成立的,所以此时将b的值赋值给max。

3、在下一行打印出max的值。

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

但是,还有另外一种考虑,中的代码的对齐方式是错误的,在没有 { 和 }的情况下,正确的对齐方式 和 输出结果(此时max = 5)如下:

以上是我对这道题目的解析,如果对你有帮助,请采纳一下,谢谢。

概念上讲,一部计算机的存储器可以被视为一组“细胞”单元。每一个“细胞”都有一个编号,称为地址;又都可以存储一个较小的定长信息。这个信息既可以是指令(告诉计算机去做什么),也可以是数据(指令的处理对象)。原则上,每一个“细胞”都是可以存储二者之任一的。

算术逻辑单元(ALU)可以被称作计算机的大脑。它可以做两类运算:第一类是算术运算,比如对两个数字进行加减法。算术运算部件的功能在ALU中是十分有限的,事实上,一些ALU根本不支持电路级的乘法和除法运算(由是使用者只能通过编程进行乘除法运算)。第二类是比较运算,即给定两个数,ALU对其进行比较以确定哪个更大一些。

输入输出系统是计算机从外部世界接收信息和向外部世界反馈运算结果的手段。对于一台标准的个人电脑,输入设备主要有键盘和鼠标,输出设备则是显示器,打印机以及其他许多后文将要讨论的可连接到计算机上的I/O设备。

控制系统将以上计算机各部分联系起来。它的功能是从存储器和输入输出设备中读取指令和数据,对指令进行解码,并向ALU交付符合指令要求的正确输入,告知ALU对这些数据做那些运算并将结果数据返回到何处。控制系统中一个重要组件就是一个用来保持跟踪当前指令所在地址的计数器。通常这个计数器随着指令的执行而累加,但有时如果指令指示进行跳转则不依此规则。

20世纪80年代以来ALU和控制单元(二者合成中央处理器,CPU)逐渐被整合到一块集成电路上,称作微处理器。这类计算机的工作模式十分直观:在一个时钟周期内,计算机先从存储器中获取指令和数据,然后执行指令,存储数据,再获取下一条指令。这个过程被反复执行,直至得到一个终止指令。

由控制器解释,运算器执行的指令集是一个精心定义的数目十分有限的简单指令集合。一般可以分为四类:1)、数据移动(如:将一个数值从存储单元A拷贝到存储单元B)2)、数逻运算(如:计算存储单元A与存储单元B之和,结果返回存储单元C)3)、条件验证(如:如果存储单元A内数值为100,则下一条指令地址为存储单元F)4)、指令序列改易(如:下一条指令地址为存储单元F)

指令如同数据一样在计算机内部是以二进制来表示的。比如说,10110000就是一条Intel x86系列微处理器的拷贝指令代码。某一个计算机所支持的指令集就是该计算机的机器语言。因此,使用流行的机器语言将会使既成软件在一台新计算机上运行得更加容易。所以对于那些机型商业化软件开发的人来说,它们通常只会关注一种或几种不同的机器语言。

更加强大的小型计算机,大型计算机和服务器可能会与上述计算机有所不同。它们通常将任务分担给不同的CPU来执行。今天,微处理器和多核个人电脑也在朝这个方向发展。

超级计算机通常有着与基本的存储程序计算机显著区别的体系结构。它们通常由者数以千计的CPU,不过这些设计似乎只对特定任务有用。在各种计算机中,还有一些微控制器采用令程序和数据分离的哈佛架构

给你提示一下吧,我希望能够帮助你自己理解它。

这个程序的意思是:把第1个单词中跟第1个字符相同的字符删除,把第2个单词中跟第2个字符相同的字符删除,把第3个单词中跟第3个字符相同的字符删除,把第4个单词中跟第4个字符相同的字符删除。

顺便说一下,这个程序在有的编译器环境下可能引起运行时内存错误。

#include <stdioh>

main()

{ int i, j;

char ch, p1, p2, s[4]={"four","hello","peak","apple"};

for(i = 0; i < 4; i++){

p1 = p2 = s[i]; //p1和p2指向第i个单词的开头

ch = (p1 + i);//ch表示第i个单词的第i个字符

while(p1 != '\0'){ //循环让p1从这个单词的开头逐步走到这个单词的末尾

if(p1 != ch) {//如果p1所指的字符跟ch不同,就通过p2从单词第一个位置开始放置

p2 = p1;

p2++;//然后让p2指向这个单词的下一个位置

}

p1++;

}

p2 = '\0';

}

for(i = 0; i < 4; i++)

printf("%s\n", s[i]);

}

一开始p2是指向s[i]里面的第一个字符的

通过给p2赋值就给s[ i ]这个单词里面的第一个字符赋新值了

然后p2++让p2指向这个单词的下一个字符位置

下次赋值就把第二个字符的内容改变了

如此如此

求采纳为满意回答。

以上就是关于c程序这个程序怎么运行的全部的内容,包括:c程序这个程序怎么运行的、电脑程序是怎么运行的,原理是什么、程序是怎样运行的,看不懂!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://www.outofmemory.cn/zz/9367724.html

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

发表评论

登录后才能评论

评论列表(0条)

保存