数据结构的一些小问题
\u6570\u636e\u7ed3\u6784\u5c0f\u95ee\u9898TFTTF TTFTT FTFTT
\u7b54\u6848\u662f\u6211\u81ea\u5df1\u505a\u7684\uff0c\u4ec5\u4f9b\u53c2\u8003\uff0c\u54ea\u91cc\u6709\u9519\uff0c\u8bf7\u4e0d\u541d\u6307\u6b63
\u9009\u62e9\u6392\u5e8f\uff0c\u7279\u70b9\u662f\uff1a\u6392\u5e8f\u603b\u662f\u4ece\u7b2c\u4e00\u4f4d\u5f00\u59cb\uff0c\u4e0e\u8d77\u59cb\u4f4d\u65e0\u5173\uff1b
\u63d2\u5165\u6392\u5e8f\uff0c\u662f\u628a\u5f85\u6392\u5e8f\u7684\u5143\u7d20 L(i) \u53d6\u51fa\uff0c\u653e\u5230\u8f85\u52a9\u7a7a\u95f4 S \u4e2d\uff0c\uff08s\u4e3a\u6211\u5b9a\u4e49\u7684\u540d\u5b57\uff0c\u53ef\u4ee5\u4e3a\u5176\u4ed6\u4efb\u4f55\u540d\u5b57\uff09\uff0c\u7136\u540e S\uff08\u5373L(i)\uff09 \u4f9d\u6b21\u4e0e L\uff08--i\uff09 \u6bd4\u8f83\uff0c\u6ee1\u8db3\u63d2\u5165\u6761\u4ef6\uff0c\u5c31\u76f4\u63a5\u63d2\u5165\u5230\u5f53\u524d\u4f4d\u7f6e\uff0c\u4e0d\u518d\u8ddf\u4e0b\u9762\u7684\u5143\u7d20\u6bd4\u8f83\uff1b\u5b83\u663e\u7136\u80fd\u5f88\u5feb\u627e\u5230\u79bb i \u4f4d\u7f6e\u6700\u8fd1\u7684\u63d2\u5165\u70b9\uff08\u8be5\u63d2\u5165\u70b9\u79bbi\u5f88\u63a5\u8fd1\uff0c\u5373\u9898\u4e2d\u8bf4\u7684\u60c5\u51b5\uff09\uff1b
\u5feb\u901f\u6392\u5e8f\uff0c\u5728\u6570\u636e\u57fa\u672c\u65e0\u5e8f\u7684\u60c5\u51b5\u4e0b\u6700\u5feb
5.4.1 存储空间的分配与回收
在计算机系统中,存储空间是一种宝贵的资源。外存储设备中的空间容量虽然比较大,但也不是无限的,故对文件删除之后而不再使用的空间,必须加以回收,然后在建立文件等操作中重新利用。
对于制度的存储设备,无所谓回收,也无所谓动态分配,这种存储设备在物理上就是不可重用的。
为了进行存储空间的分配与回收,在外存储设备上设置有空闲空间登记表,该表动态跟踪该外存储设备上所有还没有分配给任何文件的空闲块的数目和块号。
该空闲空间登记表虽然称为表,但不一定以一个二维表格的形式实现。从方便、高效和安全的角度考虑,通常把空闲空间登记表放在存储介质上。
对空闲空间表的访问与修改工作是经常发生的。在进行文件删除、文件建立、写文件等操作中都会访问和修改空闲空间表。
在设计空闲空间登记表的数据结构时,一般有四种不同的方案可以考虑,下面分别介绍。
1、 位示图
位示图的基本思想是,利用一串二进制位(BIT)的值来反映磁盘空间的分配使用情况。在位示图中,没一个磁盘中物理块用一个二进制位对应,如果某个物理块为空闲,则相应的二进制位为0;如果该物理块已分配了,则相应的二进位为,如图5-15所示。
位示图对空间分配情况的描述能力强。一个二进位就描述一个物理块的状态。另外,位示图占用空间较小,因此可以复制到内存,使查找既方便又快速。位示图适用于各种文件物理结构的文件系统。使用位示图能够简单有效地在盘上找到N个连续的空闲块。
2、 空闲块表
空闲块表是专门为空闲块建立的一张表,该表记录外存储器全部空闲的物理块:包括每个空闲块的第一个空闲物理块号和该空闲块只能感空闲物理块的个数。如图5-16所示。空闲块表方式特别适合于文件物理结构为顺序结构的文件系统。
在建立新文件时,应该寻找一组连续的空闲物理块,其空闲块个数恰好等于所申请值,或接近于所申请值。系统首先查找空闲块表,主要查看该空闲块表项中是否有符合上述申请值的对应表项,如果有,就将该表项从空闲块表中删去,并且把所对应的一组连续的空闲物理块分配给申请者。
当删除文件时,系统收回它所占用的物理块,并且考虑所收回的物理块是否可以与原有空闲块相邻接,以便合并成更大的空闲区域,最后修改有关空闲块表项。
3、 空闲块链表
将外存储器中所有的空闲物理块连成一个链表,用一个空闲块首指针指向第一个空闲块,随后的每个空闲块中都含有指向下一个空闲块的指针,最后一块的指针为空,表示链尾,这样就构成了一个空闲块链表,如图5-17所示。
在图45-17中,一个空闲块链表的首指针维持一个指向物理块12的指针,该块是第一个空闲物理块。物理块12包含一个指向物理块13的指针,物理块13指向物理块14,如此等等。
空闲块链表模式效率低。要遍历整张空闲块链表,必须读每一个物理块,这就需要大量的I/O时间。
在空闲块链表模式中对空间的申请和释放是以块为单位的。申请空间时从链首取空闲块。空间释放时将物理块接入链尾。
空闲块链表法节省内存,但申请空间和回收空间的速度较慢,实现效率较低。
4、 成组链接
对链接表的一个改进方案是将N个空闲盘块的地址存放在第一个空闲块中,如图5-18所示。期于N-1个空闲盘块是实际空闲的。假设每100个空闲块为一组。第一组的100个空闲块块号放在第二组的头一块中,而第二组的其余99块是完全空闲的。第二组的100个块号又放在第三组的头一块中,依次类推,组与组之间形成链接关系。在最后一组的块号中第2个单元填“0”,表示该块中指出的块号是最后一组的块号,空闲块链到此结束。在这个空闲块链中,不组100块的一个组的块号,通常放在内存的一个专用块中。这种方式称为成组链接。
系统在初始化时先把专用块内容读到内存中,当需分配空闲块时,就直接在内存中找到哪些块是空闲的,每分配一块后把空闲块数减1。但在把一组中的第一个空闲块分配出去之前,应把登记在该块中的下一组的块号及块数保存到专用块中(此时原专用块中的信息已经无用,因为它指出的一组空闲块都已被分配了)。当一组空闲块被分配完后,则再把专用块的内容读到内存中,指出另一组可供分配的空闲块。
假设初始化时系统已把专用块读入主存储器L单元开始的区域中,分配和回收的算法如下:
⑴分配一个空闲块
查L单元内容(空闲块数):
当空闲块数>1,I:=L+空闲块数;
从I单元得到一空闲块号;
把该块分配给申请者;
空闲块数减1。
当空闲块数=1,取出L+1单元内容(一组的第一块块号或0);
取值 =0,无空闲块,申请者等待;
≠0,把该块内容复制到专用块;
把专用块内容独到主存L开始的区域。
⑵归还一块
查L单元的空闲块数;
当空闲块数〈100,空闲块数加1;
J:=L+空闲块数;
规划块号填入J单元。
当空闲块数=100,把主存中登记的信息写入归还块中;
把归还块号填入L+1单元;
将L单元置成1。
采用成组链接后,分配回收空闲块时均在内存中查找和修改,只有在一组空闲块分配完或空闲的磁盘块构成一组时才需要启动磁盘读写。因此,成组链接的管理方式比普通的链接方式效率高。
成组链接这种方案能够迅速找到大量空闲盘块地址。有些版本的UNIX操作系统便采用了这种方案。
5.4.2 实现文件系统的表目
当用户申请打开一个文件时,系统要在内存中为该用户保存一些必要的信息,这些信息以表格栏目中内容的形式出现,被称为表目。在实现文件系统时所需要的表目有若干种,其中在内存中所需的重要表目有如下一些:
1、 系统打开文件表
系统打开文件表,专门用于保存已打开文件的文件控制块。该系统打开文件表放在内存。除了保存已打开文件的文件控制块之外,在该表格中还保存有已打开的文件号、共享计数、修改标志等等,图5-19。
2、 用户打开文件表
在每个进程中,都有一个“用户打开文件表”。该表的内容有文件描述符、打开方式、读写指针、系统打开文件表入口等,图5-20。另外在进程的进程控制块PCB中,还记录了“用户打开文件表”的位置。
3、 系统打开文件表与用户打开文件表之间的关系
用户打开文件表指向了系统打开文件表。如果多个进程共享同一个文件,则一定有多个用户打开文件表目对应着系统打开文件表的同一入口,图5-21。
5.4.3 记录的成组与分解
用户的文件毫无疑问是由用户按名自己的需要组织的。用户还可按信息的内在逻辑关系,把文件划分成若干个逻辑记录。显然,逻辑记录的大小是由文件性质决定的。
另外,存储介质上的物理分块与存储介质的特性有关,尤其是磁盘。磁盘上的块的大小是在磁盘初始化时预先划好的。因此,逻辑记录的大小往往与存储介质物理分块的大小不一直。
当用户文件的逻辑记录比存储介质的物理分块小得多时,把一个逻辑记录存入一个物理块中,就会造成存储空间的浪费。为此,可把多个逻辑记录存放在一个物理块中,当用户需要某个逻辑记录时再从一物理块信息中将其分解出来。
1、 记录的成组
把若干个逻辑记录合成一组存放一物理块的工作称“记录的成组”,每块中的逻辑记录个数称“块因子”。
记录的成组在不同存储介质上进行信息转储是很有用的。
由于信息交换以块为单位,所以,要进行成组操作时必须使用内存的缓冲区。该缓冲区的长度等于要进行成组的最大逻辑记录长度乘以成组的块因子。成组转储操作如图5-22所示。
在进行记录成组时,还应考虑逻辑记录的格式。这是因为在记录式文件中,有“定长记录格式”和“不定长记录格式”。对定长记录格式的文件按记录成组的方式存储到存储介质上,则除最后一块外,每块中存放的逻辑记录个数是相同的。故只要在文件目录中说明逻辑记录的长度和块因子,在需要使用某个记录时就能方便地将其找出。
如果是一个不定长记录格式的文件,各个逻辑记录的长度可能不相等,在进行记录成组操作时,就应在每个逻辑记录前附加说明该记录长度的控制信息。
2、 记录的分解
对应签署记录成组的操作,有必要考虑从一组逻辑记录中把一个逻辑记录分离出来的操作,这种操作称为“记录的分解”。
显然,从事记录的分解操作也要使用内存缓冲区。
当用户请求读一个文件中的某个记录时,文件系统首先找出该记录所在物理块的位置,然后把含有该记录的物理块全部信息读入内存缓冲区,由于读入内存缓冲区的物理块信息中含有多个逻辑记录,所以要再从内存缓冲区中分解出指定的记录,然后传送到用户工作区。
对定长记录格式,只要的逻辑记录的长度就可容易地进行分解。对不定长记录格式,要根据说明逻辑记录长度的控制信息,计算出用户所指定的记录在内存缓冲区中的位置,然后把记录分解出来。图5-23是记录的分解操作示例。
在图5-23中,用户要求读出逻辑记录K4。用户文件中的记录是成组存放在磁盘上的,系统找出含有记录K4的物理块,从中读出了6个逻辑记录K1,K2,K3,K4,K5和K6,并且知道这些逻辑记录的长度为80,块因子为6。该块信息被读入内存缓冲区后,根据逻辑记录的长度和块因子胃,立即就能取出其中的逻辑记录K4,并把K4传送到用户工作区。
从上面的讨论可以看到,为了提高存储空间的利用率和减少启动设备的次数,采用了记录的成组和分解技术。但是上述效果的获得也付出了代价,主要包括:需要设立内存缓冲区,另外操作系统增加了成组和分解的操作的功能。
5.4.4 文件的操作
文件系统是提供给用户使用的,用户可以进行按名存取所需要的文件。在文件系统的实现中,为用户提供使用文件的手段是文件系统的重要任务之一。
1、 建立文件
用户首先调用文件系统的“建立文件”操作,在请求调用该操作时,提供所要创建的文件的文件名及若干参数:用户名、文件名、存取方式、存储设备类型、记录格式、记录长度,等等。
系统依据用户提供的文件名及若干参数,为这一新创建的文件分配一个文件控制块,填写文件控制块中的有关项。
建立文件的实质是建立文件的文件控制块FCB,并建立必要的存储空间,分配空的FCB。从而建立起系统与文件的联系。
建立文件系统调用的一般格式为:CREATE(文件名,访问权限,(最大长度))。
建立文件的具体步骤如下:
⑴检查参数的合法性:
文件名是否符合命名规则,若是,则进行下一步⑵;否则报错,返回。
⑵检查同一目录下有无重名文件:
若没有,则进行下一步⑶;否则报错,返回。
⑶在目录中有无空闲位置;
若有,则进行下一步⑷;否则,不成功返回。
⑷填写目录项内容:
包括:文件名、用户名、存取权限、长度置零,首地址等等。
⑸返回
2、 打开文件
打开文件,是使用文件的第一步,任何一个文件使用前都要先打开,即把文件控制块FCB送到内存。
打开文件系统调用的一般格式为:FD=OPEN(文件路径名,打开方式)。
打开文件时,系统主要完成以下工作:
⑴根据文件路径名查目录,找到FCB主部。
⑵根据打开方式、共享说明和用户身份检查访问合法性。
⑶根据文件号查系统打开文件表,看文件是否已被打开。
如果是,共享计数加1;
否则,将外存中的CB主部等信息填入系统打开文件表空表项,共享计数置为1。
⑷在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项。
返回信息:FD:文件描述符,是一个非负整数,用于以后读写文件。
3、 读文件
打开文件后,就可以读取文件中的信息。
读文件系统调用的一般格式为:READ(文件名,(文件内位置),要读的长度,内存目的地址)。
隐含参数:文件主。
读写方式可为读、写合既读又写等。
读文件时,系统主要完成以下工作:
⑴检查长度是否为正整数;
若是,则进行下一步;否则,转向(10)。
⑵根据文件名查找目录,确定该文件在目录中的位置。
⑶根据隐含参数中的文件主和目录中该文件的存储权限数据,检查是否有权读:
若是,则进行下一步,否则,转向(10)。
⑷由文件内位置与要读的长度计算最末位置,将其与目录中的文件长度比较,超过否?
若是,则转向(10);否则,进行下一步(5)。也可将参数中的长度修正为目录中的文件长度。
⑸根据参数中的位置、长度和目录中的映射信息,确定物理块号、需要读出的块数等读盘参数。
⑹根据下一块号读块至内存缓冲区。
⑺取出要读的内容,也许要进行成组的分解,将取出的内容送至参数中的内存目的地址。
⑻根据块内长度或起始块号+块数,确定还读下一块吗?同时确定下一块号:
若是,则转向(5);否则,进行下一步(9)。
⑼正常返回。
⑽错误返回,返回响应错误号。
4、 写文件
写文件系统调用的一般格式为:WRITE文件名,记录键,内存位置)。
把内存中指定单元的数据作为指定的一个记录写入指定文件中,系统还将为其分配物理块,以便把记录信息写到外存上。
5、 关闭文件
若文件暂时不用每则应将它关闭。文件关闭后一般不能存取,若要存取,则必须再次打开
6、 删除文件
删除文件文件系统调用的一般格式为:DELETE(文件名)。
7、 指针定位
指针定位的一般格式为:SEEK(FD,新指针的位置)。
指针定位时,系统主要完成以下工作:
⑴由FD检查用户打开文件表,找到对应的入口;
⑵将用户打开文件表中文件读写指针位置设为新指针的位置,供后续读写命令存取该指针处文件内容。
希望对你有帮助
1.内存中指定单元的地址是指定的还是动态分配的?
内存中的指定单元地址永远是固定的 这个是由于内存的物理属性决定的 和数据结构没有关系 应该是计算机组成原理或者计算机体系结构研究的问题 你可以去看看那些方面分书
~~~~~~~~~~~~~~~~~~~~~~~~~
感觉每个数据应该还有个存储地址的空间.
很不幸 这个感觉是错的~~内存中只有存放数据的地方 没有存放地址的地方 内存的地址是由内存的物理结构确定好的 地址这个东西是直接由和内存相连的电子线路直接选通的
例如 我们现在有8条地址线
那么我们最大的内存容量就说2的8次方 256
那么内存的地址就是从0x00 到0x77这么多
现在我们要选中0x00这条线
假设低电平是选中
那么我们只要让8条地址线上的电平都为低电平就是了
假如我们要选0x77 那么我们让8条地址线上的电平都为高电平就是了
当然 现在计算机中的地址线要比这个多 但原理是一样的
其实牵扯到底层问题的时候就不是数据结构可以解决的了 因为它总是一个抽象的软件方面的书
如果你想多了解一些东西的话 你最好把硬件方面的东西也看看~~
~~~~~~~~~~~~~~~~~~~~~~~~~
2.关于你写的那个函数
void initsl(v,m,n)
ET *v;int m,*n;
{
v=malloc(m*sizeof(ET));
*n=0;
return;
}
我觉得你是不是把变量定义写到函数里面去比较好~~而且你这个函数有什么功能也没介绍一下 可以说是无从看起呀~~汗~~~
我只能一句一句说了~~
ET *v;定义了一个指向ET变量的指针
int m,*n; 定义了一个整型变量和一个指向整型变量的指针
v=malloc(m*sizeof(ET));开辟了一点空间 大小为m个ET的大小 v指向这段空间的开始
*n=0; 我只能说你这里很不对 虽然这样或许也可以通过编译 但是n所指向的目标还是未知的 你给一个未知的变量赋值 勇气可嘉呀 汗~~如果你打算让n指向空的话应该是这么写的 n=0;就对了。
~~~~~~~~~~~~~~~~~~~~~~~~~
关于第三个问题 我建议你去看看计算机组成原理的书 我能说的都在上面说了 希望你可以有所收获
~~~~~~~~~~~~~~~~~~~~~~~~~
想详细聊的话加我QQ 65997404 一般晚上10点以后我都隐身在线~~~~
那么长。。。。。没有
绛旓細鍏朵粬绫讳技闂 2008-08-03 鏁版嵁缁撴瀯闂 3 2017-10-25 鏁版嵁缁撴瀯闂! 2017-12-19 鏁版嵁缁撴瀯闂銆傘傘 2009-07-04 鏁版嵁缁撴瀯闂 1 2015-08-25 鏁版嵁缁撴瀯闂 2017-12-26 鏁版嵁缁撴瀯闂銆傘傘 鏇村绫讳技闂 > 涓轰綘鎺ㄨ崘:鐗瑰埆鎺ㄨ崘 浜哄湪涓婃捣,杩欎簺闃茬柅淇℃伅寰堥噸瑕! 6椤逛氦閫氭硶鏂版帾鏂,4鏈1鏃ヨ捣瀹炴柦! 娓呮槑蹇呭...
绛旓細A銆侀『搴忓瓨鍌缁撴瀯B銆侀摼寮忓瓨鍌ㄧ粨鏋凜銆佺储寮曞瓨鍌ㄧ粨鏋凞銆佹暎鍒楀瓨鍌ㄧ粨鏋勭35棰 (2.0) 鍒 涓嬪垪鍚勫紡涓,鎸夊闀跨巼鐢卞皬鑷冲ぇ鐨勯『搴忔纭帓鍒楃殑鏄( )銆 A.n1/2,n!,2n,n3/2B.n3/2,2n,nlogn,2100C.2n,logn,nlogn,n3/2D.2100,logn, 2n, nn绗36棰 (2.0) 鍒 鏍堝拰闃熷垪鐨勫叡鍚岀壒鐐规槸( )銆侫銆侀兘鏄厛杩涘悗鍑築銆侀兘...
绛旓細瀹為獙涓 鍗曢摼琛ㄦ湁涓涓ご鑺傜偣h e a d锛屾寚鍚戦摼琛ㄥ湪鍐呭瓨鐨勯鍦板潃銆傞摼琛ㄤ腑鐨勬瘡涓涓妭鐐圭殑鏁版嵁绫诲瀷涓缁撴瀯浣撶被鍨嬶紝鑺傜偣鏈変袱涓垚鍛橈細鏁村瀷鎴愬憳锛堝疄闄呴渶瑕佷繚瀛樼殑鏁版嵁锛夊拰鎸囧悜涓嬩竴涓粨鏋勪綋绫诲瀷鑺傜偣鐨勬寚閽堝嵆涓嬩竴涓妭鐐圭殑鍦板潃锛堜簨瀹炰笂锛屾鍗曢摼琛ㄦ槸鐢ㄤ簬瀛樻斁鏁村瀷鏁版嵁鐨鍔ㄦ佹暟缁勶級銆傞摼琛ㄦ寜姝ょ粨鏋勫鍚勮妭鐐圭殑璁块棶闇浠...
绛旓細2.鏈夊悜鍥綠鐢ㄩ偦鎺ョ煩闃靛瓨鍌紝鍏剁i琛岀殑鎵鏈夊厓绱犱箣鍜岀瓑浜庨《鐐筰鐨勫叆搴︺1銆 閿 3.涓妫靛叿鏈257涓粨鐐圭殑瀹屽叏浜屽弶鏍戯紝瀹冪殑娣卞害涓9銆 2銆 瀵 4.浜屽弶鏍戜腑姣忎釜缁撶偣鐨勪袱妫靛瓙鏍戞槸鏈夊簭鐨勩 2銆 瀵 5.涓轰簡瀹炵幇鍥剧殑閬嶅巻锛屽叾娣卞害浼樺厛鎼滅储绠楁硶浣跨敤鐨勪竴涓緟鍔鏁版嵁缁撴瀯涓() 銆俛銆佹爤 6.浜屽弶鏍戞槸闈炵嚎鎬ф暟鎹...
绛旓細鐭ラ亾灏忔湁寤烘爲绛斾富 鍥炵瓟閲:101 閲囩撼鐜:100% 甯姪鐨勪汉:37.4涓 鎴戜篃鍘荤瓟棰樿闂釜浜洪〉 鍏虫敞 灞曞紑鍏ㄩ儴 鏁版嵁缁撴瀯闈㈣瘯甯歌闂 鏁版嵁缁撴瀯鏄绠楁満瀛樺偍銆佺粍缁囨暟鎹殑鏂瑰紡銆傛暟鎹粨鏋勬槸鎸囩浉浜掍箣闂村瓨鍦ㄤ竴绉嶆垨澶氱鐗瑰畾鍏崇郴鐨勬暟鎹厓绱犵殑闆嗗悎銆備笅闈㈠氨鏄垜鏁寸悊鐨勬暟鎹粨鏋勯潰璇曞父瑙侀棶棰,涓璧锋潵鐪嬩竴涓嬪惂銆 鏁版嵁缁撴瀯闈㈣瘯甯歌闂 ...
绛旓細浠嶸1寮濮嬶紵娣卞害浼樺厛瀹為檯灏辨槸涓涓叆鏍闂锛氶鍏堟寜鐓ф瘮杈冩柟娉曞敖閲忓線涓嬭蛋锛岃兘鍏ユ爤鐨勫叆鏍堬紝涓嶈兘璧颁簡锛屽嚭鏍堢户缁皾璇曘傝繖閲屽亣璁炬瘮杈冩柟娉曟槸鏁板瓧灏忕殑浼樺厛 V1->V2 // 2姣3灏忥紝2鍏ユ爤 V4 // 4姣5灏忥紝4鍏ユ爤 V8 // 鍙湁8锛8鍏ユ爤 V5 // 5姣6銆7灏忥紝5鍏ユ爤 V6 // 鍥犱负5宸茬粡璧颁笉涓嬪幓浜嗭紝鎵浠...
绛旓細...鍦ㄧi涓厓绱犲墠鍔犱竴涓厓绱犵殑姒傜巼鏄痯i锛岀Щ鍔ㄧ殑娆℃暟鏄痭-i+1娆★紝鏈熸湜灏辨槸锛坣-i+1锛*pi ...鍏ㄩ儴鍔犺捣鏉ュ氨鏄痭*p1+(n-1)*p2+...+(n-i+1)*pi+...+2p(n-1)+pn 危琛ㄧず姹傚拰锛屼笅鏍囨槸鏈灏忓硷紝涓婃爣鏄渶澶у硷紝杩欓噷琛ㄧず浠巌=1鍒癷=n+1鐨勫拰锛屽氨鏄笂闈㈢殑姹傚拰鐨勫紡瀛愪簡 棰樼洰鍙兘鏈闂锛...
绛旓細int鏄敤鏉ュ0鏄庝竴涓暣鏁扮被鍨嬬殑鍙橀噺鎴栬呬竴涓繑鍥炲间负鏁存暟绫诲瀷鍑芥暟鐨勩倂oid鏄敤鏉ュ0鏄庝竴涓棤杩斿洖鍊肩殑鍑芥暟鐨勩俤atatype鍦–璇█涓病鏈夊畾涔夛紝闇瑕佽嚜宸变娇鐢╰ypedef struct{}缁撴瀯浣撳畾涔夈傚畾涔夋垚鍔熷悗锛岀浉褰撲簬鑷繁寰C璇█涓畾涔変簡涓涓柊鐨勭被鍨嬨傛瘮濡傝繖鏍峰畾涔 typedef struct{int a;char c;}datatype; 鐩稿綋浜庡畾涔...
绛旓細a62鐨勫瓨鍌ㄥ湴鍧涓猴細1001+2*(1+2+3+4+5+1)=1033 閫夋嫨绛旀C
绛旓細B鍦ㄥ崟閾捐〃涓紝瑕佸彇鏌愪釜鍏冪礌锛屽彧瑕佺煡閬撹鍏冪礌鐨勬寚閽堝嵆鍙紝鍥犳鍗曢摼琛ㄦ槸闅忔満瀛樺彇鐨勫瓨鍌ㄧ粨鏋 C椤哄簭瀛樺偍缁撴瀯灞炰簬闈欐佺粨鏋勶紝閾惧紡缁撴瀯灞炰簬鍔ㄦ D椤哄簭瀛樺偍鏂瑰紡鍙兘鐢ㄤ簬瀛樺偍绾挎х粨鏋 绾挎ц〃鏄竴涓叿鏈塶涓紙A锛夌殑鏈夐檺搴忓垪 A琛ㄥ厓绱 B瀛楃 C鏁版嵁缁撴瀯 D鏁版嵁椤 瑙i噴锛氫功涓婂啓鐨勬槸鏁版嵁鍏冪礌锛屼絾鏄浜庤棰樺簲鍙互灏嗏...