版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C語言1主要內(nèi)容一、 學習編程語言的一些建議 二、 指針三、 預處理器四、 結構、聯(lián)合和枚舉五、 sizeof六、 參考書籍和資料2(1)多動手 學習編程唯一方法是編寫調(diào)試程序??丛俣嗟臅Ч脖炔簧显O計調(diào)試一個簡單程序。(2)養(yǎng)成良好的編程習慣 養(yǎng)成好習慣很難。所以良好的編程習慣要從一開始培養(yǎng)。(3)注意細節(jié) 不應漏過任何一個技術細節(jié)。只有細節(jié)的日積月累,才能有技術上的提高。 (4)了解開發(fā)環(huán)境 在學習編程語言的同時,也需要了解編程語言的開發(fā)、使用環(huán)境。如硬件平臺(51、MSP430、PC)、操作系統(tǒng)(uCOS、Linux、DOS)、集成開發(fā)環(huán)境(Keil C,Borland C)等。(5
2、)多看書、勤思考 很多國外的經(jīng)典書籍是由擁有幾十年經(jīng)驗的質(zhì)深程序員編寫的。這些書里最重要的是融入了作者多年的編程經(jīng)驗。多看書,再結合自身平時的積累,不斷思考總結是提高編程技術最有效的辦法。第一章 學習編程語言的一些建議3第二章 指 針2.1 指針的基本概念2.1.1 指針是什么? 指針是一個變量,它的值是另外一個變量的地址。例12.1.2 指針的類型 指針所存儲的那個變量類型,就稱為指針的類型。 例 2 有三個不同類型的指針: int I2, *pI = &I0; 右邊的三個運算有何不同? pI+; char C2, *pC = &C0; pC+; float F2, *pF = &F0; p
3、F+;0 x00C7指針變量 int *p0 x00C7變量 int a上面例中的兩個0 x00C7有什么區(qū)別?42.1.3 指針的三個要素 指針指向的地址(指針的內(nèi)容);指針指向的地址上的內(nèi)容;指針本身的地址。 例 3: int A, *pA, *ppA; pA = &A; ppA = &pA;在復雜的指針都可以通過下表來分析: &ppA ppA *ppA *ppA &pA pA *pA &A A第二章 指 針5第二章 指 針2.1.4 指針的大?。ㄖ羔樧兞空加玫膬?nèi)存空間) 與所用的CPU尋址空間大小和類型有關,而與指針類型無關。 8位CPU的指針長度為12個字節(jié)(51單片機的情況較為復雜,
4、是13個字節(jié)); 16位CPU的指針長度為2個字節(jié)(如MSP430); 32位CPU的指針長度為4個字節(jié)(如Intel 80386)。 上面所述是通常情況,并不是全部符合。第二章 指 針2.1.5 指針的初始化 變量在沒有賦值之前,其值不定的。對于指針變量,可以表述為:指向不明。程序訪問了一個沒有初始化的指針: int* p;p 的內(nèi)存是隨機的一個數(shù),比如: 0 x3FF0073D程序隨即訪問內(nèi)存地址:0 x3FF0073D0 x3FF0073D 是哪里的內(nèi)存?說不定正好是Windows老大要用的內(nèi)存,你竟敢訪問! Windows一生氣,藍屏。一個指向不明的指針,是非常危險的! 因此,指針在使
5、用前一定要初始化;在使用前一定要確定指針是非空的! 6第二章 指 針2.2 數(shù)組與指針 對于數(shù)組的兩個概念: 1. C語言中只有一維數(shù)組,數(shù)組的大小必須在編譯時作為一個常數(shù)確定下來。數(shù)組的元素可以是任何類型,甚至是數(shù)組,由此可以方便地得到多維數(shù)組; 2. 數(shù)組的任何操作,即使采用數(shù)組下標進行的運算都等于對應的指針運算??梢杂弥羔樞袨樘娲鷶?shù)組下標的運算。例4 : int a4, *p; p = a; /等價于 p =&a0; *(a+2) = 0; /等價于 a2 = 0; p2 = 0; /等價于 a2 = 0; 7 但數(shù)組不同于指針: 數(shù)組名 a是指向數(shù)組起始位置的“常量”。 因此,不能對數(shù)
6、組名進行賦值操作。 例 5: int a4, *p; p = a; /正確 a = p; /錯誤 p+; /正確 a+; /錯誤 第二章 指 針8第二章 指 針2.3 空指針與通用指針(1). 空指針是個特殊指針值,也是唯一對任何指針類型都合法的指針值。一個指針變量具有空指針值,表示它當時沒指向有意義的東西,處于閑置狀態(tài)。空指針值用0 表示,這個值絕不會是任何程序對象的地址。給一個指針賦值0 就表示要它不指向任何有意義的東西。為了提高程序的可讀性,標準庫定義了一個與0 等價的符號常量NULL,程序里可以寫: p = NULL; /注意不要與空字符NUL混淆,NUL等價于0或者: p = 0;注
7、意: 在編程時,應該將處于閑置的指針賦為空指針; 在調(diào)用指針前一定要判斷是否為空指針,只有在非空情況下才能調(diào)用。9(2).通用指針通用指針可以指向任何類型的變量。通用指針的類型用(void *)表示,因此也稱為void 指針。下面的第三行定義了兩個通用指針:int n, *p;double *q;void *gp1, *gp2;可以直接把任何變量的地址賦給通用指針。例如,有了上面定義,下面賦值是合法的:gp1 = (void *) &n;可以把通用指針的值賦給普通的指針。如果被賦值指針與通用指針所指變量的類型不符,需要寫強制轉換:p = (int *)gp1;第二章 指 針10第二章 指 針2
8、.4 函數(shù)指針2.4.1 函數(shù)指針的定義函數(shù)指針即指向函數(shù)地址的指針。利用該指針可以知道函數(shù)在內(nèi)存中的位置。因此也可以利用函數(shù)指針調(diào)用函數(shù)。函數(shù)指針的定義方法: (* )(.)例如:int (*func)(void )這里,func就是一個函數(shù)指針。注意:int *func(void)和int (*func)(void)的區(qū)別int *func(void); /這是返回一個整型指針的函數(shù) int (*func)(void); /這是一個函數(shù)指針112.4.2 函數(shù)指針的使用 例6 :假定有下面的函數(shù)聲明 int ptr;int fn(int);int (*fp)(int);指出下面的語句是否合
9、法?,為什么?。fp = fn; /正確,將函數(shù)fn的地址賦給fpfp = fn(5); /錯誤,返回給fp的結果不是一個函數(shù)地址。fp = &ptr; / 錯誤,ptr的地址不在程序代碼區(qū),兩種數(shù)據(jù)類型不能轉換。 從上面的例子可以看出:(1) 不能將普通變量的地址賦給函數(shù)指針;(2) 不能將函數(shù)的調(diào)用賦給函數(shù)指針(3) 可以將函數(shù)名賦給一個函數(shù)指針第二章 指 針12第二章 指 針2.4.2 函數(shù)指針的用途一旦函數(shù)可以通過指針被傳遞、被記錄,這開啟了許多應用,特別是下列三者:多態(tài) (polymorphism):指用一個名字定義不同的函數(shù),這函數(shù)執(zhí)行不同但又類似的操作,從而實現(xiàn)“一個接口,多種方
10、法”。多線程 (multithreading):將函數(shù)指針傳進負責建立多線程的 API 中:例如 Win32 的 CreateThread(.pF.)。 回調(diào) (call-back):所謂的回調(diào)機制就是:當發(fā)生某事件時,自動呼叫某段程序代碼。事件驅動 (event-driven) 的系統(tǒng)經(jīng)常透過函數(shù)指針來實現(xiàn)回調(diào)機制,例如 Win32 的 WinProc 其實就是一種回調(diào),用來處理窗口的訊息。 132.4.3 函數(shù)指針數(shù)組例7 :在一個計算器的例子中,有如下一些語句:switch(oper)caseADD:result=add(op1,op2);break;caseSUB:result=sub
11、(op1,op2); break; . 對于一個復雜的計算器,switch語句將非常長。我們可以用函數(shù)指針數(shù)組來完成。 doubleadd(double,double);doublesub(double,double);.double(*oper_func)(double,double)=add,sub,.;第2個步驟是用下面語句替換前面整條switch語句:result=oper_funcoper(op1,op2);oper從數(shù)組中選擇正確的函數(shù)指針,而函數(shù)調(diào)用操作符將執(zhí)行這個函數(shù)。第二章 指 針14第三章 預處理器 3.1 預處理器的作用 可以將預處理器看作為一個文本編輯器。它只對程序的文
12、本起作用,而不會進行其他任何依賴于C語言語法的工作。它負責在正式編譯前將源程序進行轉換,替換宏定義、刪去無需編譯的代碼、插入包含的文件等等。 出于幾個主要原因,預處理器為我們提供了一些簡化的途徑: 首先,可以通過改變一個數(shù)字并重新編譯程序來改變一個特殊量的所有實例。 其次,可以定義一些東西,它們看起來象函數(shù)但沒有函數(shù)調(diào)用所需的運行開銷。例如,putchar()和getchar()通常實現(xiàn)為宏以避免對每一個字符的輸入輸出都要進行函數(shù)調(diào)用。15第三章 預處理器 3.2 #define 3.2.1 帶參數(shù)的宏定義 當需要有一個程序塊,看上去和用起來像函數(shù)一樣,但是沒有函數(shù)調(diào)用時的開銷時,可以采用宏定
13、義。宏定義可以象函數(shù)一樣帶參數(shù),如: 例 8: #define Add(a,b) (a)+(b) 注意: (1) 括號的作用 預防由運算符優(yōu)先級引起有關的問題。 例 9: #define Add(a,b) a+b Average = Add(Num1, Num2) / 2; 例中,運算式最終由預處理器展開為: Average = Num1+Num2 / 2;16 (2) 不要忽視空格的作用 例10: #define f (x) (x)-1) Num = f(Num); 上面這個語句會被展開成什么,a還是b,為什么? a. Num = (Num)-1); b. Num = (x) (x)-1)(
14、Num); (3) 宏不是類型定義 例11:#define PWORD int * typedef PBYTE char *; PWORD pA, pB; /pB是什么類型? PBYTE pC, pD; /pD是什么類型?第三章 預處理器173.3 #include 和#include “ ” 有什么區(qū)別?#include :在使用時,編譯器將會到指定的系統(tǒng)或標準頭文件目錄查找頭文件。通常用于標準或系統(tǒng)提供的頭文件。#include “ ”:在使用“ ”時,編譯器將會到用戶創(chuàng)建的項目文件所在目錄查找頭文件。通常用于程序自己的頭文件。例12: #include #include #include
15、 “disp.h” #include “output.h”第三章 預處理器18第三章 預處理器3.4 條件編譯(1). 條件編譯可以按照不同的編譯條件,組織成不同的代碼。例13: #define MCS51 #ifdef MCS51 Baud = 9600; #elif MSP430 Baud = 4800; #elif PC104 Baud = 115200; #endif 19(2). 條件編譯可用于調(diào)試。將用于調(diào)試的語句放入條件編譯中。例14: #define DEBUG TotalNum = a + b; #ifdef DEBUG printf(“The total num is: %
16、d”,TotalNum); #endif 當程序調(diào)試結束后,只需將 #define DEBUG一句取消,即可將程序中所有的調(diào)試語句刪去。第三章 預處理器20(3). 在通用的模塊中,可以通過條件編譯實現(xiàn)功能的可裁減。例14: #define TMR_SET_EN #ifdef TMR_SET_EN void TMR_Set(char tmr_init, char tmr_mod, char tmr_fnct) #endif 如果不需要TMR_Set功能,只需將 #define TMR_SET_EN語句刪除即可。輕松實現(xiàn)TMR模塊的可裁減特性。第三章 預處理器21(4). 在宏定義時,避免重復定
17、義。例15: #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif 第三章 預處理器22;。23第四章 結構、聯(lián)合和枚舉4.1 結構體結構是由若干(可不同類型的)數(shù)據(jù)項組合而成的復合數(shù)據(jù)對象,這些數(shù)據(jù)項稱為結構的成分或成員。(1) 字段C 語言的結構還提供了一種定義字段的機制,使人在需要時能把幾個結構成員壓縮到一個基本數(shù)據(jù)類型成員里存放,這可以看作是一種數(shù)據(jù)壓縮表示方式。例16: struct pack unsigned a:2; unsigned b:8; unsigned c:6; pk1, pk2;
18、結構變量pk1或者pk2的三個成員將總共占用16位存儲,其中a占用2 位,b占用8 位,c占用6 位。24(2)結構體內(nèi)部的成員的對齊 在計算結構體長度(尤其是用sizeof)時,需要注意! 根據(jù)不同的編譯器和處理器,結構體內(nèi)部的成員有不同的對齊方式,這會引起結構體長度的不確定性。例17: #include structa chara1; chara2; chara3; A;structb shorta2; chara1; B;void main(void) printf(“%d,%d,%d,%d”, sizeof(char), sizeof(short), sizeof(A), sizeof
19、(B);在Turbo C 2.0中結果都是1,2,3,3在VC6.0中是1,2,3,4第四章 結構、聯(lián)合和枚舉25第四章 結構、聯(lián)合和枚舉 字節(jié)對齊的細節(jié)和編譯器實現(xiàn)相關,但一般而言,滿足三個準則:1) 結構體變量的首地址能夠被其最寬基本類型成員的大小所整除;2) 結構體每個成員相對于結構首地址的偏移量(offset)都是成員大小的整數(shù)倍,如有需要編譯器會在成員之間加上填充字節(jié)(internal adding);3) 結構體的總大小為結構體最寬基本類型成員大小的整數(shù)倍,如有需要編譯器會在最末一個成員之后加上填充字節(jié)(trailing padding)。 對于上面的準則,有幾點需要說明:1)結構
20、體某個成員相對于結構體首地址的偏移量可以通過宏offsetof()來獲得,這個宏也在stddef.h中定義,如下:#define offsetof(s,m) (size_t)&(s *)0)-m)2) 基本類型是指前面提到的像char、short、int、float、double這樣的內(nèi)置數(shù)據(jù)類型,這里所說的“數(shù)據(jù)寬度”就是指其sizeof的大小。由于結構體的成員可以是復合類型,比如另外一個結構體,所以在尋找最寬基本類型成員時,應當包括復合類型成員的子成員,而不是把復合成員看成是一個整體。但在確定復合類型成員的偏移位置時則是將復合類型作為整體看待。26第四章 結構、聯(lián)合和枚舉4.2 聯(lián)合體 在
21、一個結構(變量)里,結構的各成員順序排列存儲,每個成員都有自己獨立的存儲位置。聯(lián)合變量的所有成員共享從同一片存儲區(qū)。因此一個聯(lián)合變量在每個時刻里只能保存它的某一個成員的值。(1)聯(lián)合變量的初始化聯(lián)合變量也在可以定義時直接進行初始化,但這個初始化只能對第一個成員做。例如下面的描述定義了一個聯(lián)合變量,并進行了初始化:例18: union data char n; float f; ; union data u1 = 3; /只有u1.n被初始化274.3 枚舉 枚舉是一種用于定義一組命名常量的機制,以這種方式定義的常量一般稱為枚舉常量。 一個枚舉說明不但引進了一組常量名,同時也為每個常量確定了一個
22、整數(shù)值。缺省情況下其第一個常量自動給值0,隨后的常量值順序遞增。(1)給枚舉常量指定特定值 與給變量指定初始值的形式類似。如果給某個枚舉量指定了值,跟隨其后的沒有指定值的枚舉常量也將跟著順序遞增取值,直到下一個有指定值的常量為止。 例如寫出下面枚舉說明: enum color RED = 1, GREEN, BLUE, WHITE = 11, GREY, BLACK= 15; 這時,RED、GREEN,、BLUE 的值將分別是1、2、3,WHITE、GREY的值將分別是11、12,而BLACK 的值是15。第四章 結構、聯(lián)合和枚舉28(2)用枚舉常量作為數(shù)組長度 例19: typedef en
23、umWHITE, RED, BLUE, YELLOW, BLACK, COLOR_NUM COLOR; float BallSizeCOLOR_NUM; 上例中當顏色數(shù)量發(fā)生變化時,只需在枚舉類型定義中加入或刪去顏色。無需修改COLOR_NUM的定義。與大量使用#define相比既簡潔又可靠。 如: typedef enum WHITE, RED, BLUE,COLOR_NUM COLOR;第四章 結構、聯(lián)合和枚舉29第五章 sizeof5.1 sizeof的定義和使用sizeof 是C/C+中的一個操作符(注意!不是函數(shù)!就像return一樣)。其作用就是返回一個對象或者類型所占的內(nèi)存字節(jié)數(shù)
24、。sizeof有三種使用形式,如下:1) sizeof(var); / sizeof( 變量 ); 2) sizeof(type_name); / sizeof( 類型 );3) sizeof var; / sizeof 變量;所以,int i;sizeof(i); / oksizeof i; / oksizeof(int); / oksizeof int; / error為求形式統(tǒng)一,不建議采用第3種寫法,忘掉它吧!305.2 數(shù)組的sizeof 數(shù)組的sizeof值等于數(shù)組所占用的內(nèi)存字節(jié)數(shù),如:例21:char* ss = 0123456789; sizeof(ss); / 結果 4 ,
25、 ss是指向字符串常量的字符指針 sizeof(*ss); / 結果 1 ,*ss是第一個字符 char ss = 0123456789; sizeof(ss); / 結果 11 , 計算到0位置,因此是101 sizeof(*ss); / 結果 1 , *ss是第一個字符 char ss100 = 0123456789; sizeof(ss); / 結果 100 , 表示在內(nèi)存中的大小 1001 strlen(ss); / 結果 10 , strlen是到0為止之前的長度 int ss100 = 0123456789; sizeof(ss); /結果200 , ss表示在內(nèi)存中的大小 100
26、2 strlen(ss); /錯誤,strlen的參數(shù)只能是char*且必須以0結尾第五章 sizeof31第五章 sizeof5.3 結構體的sizeof 參見(結構體內(nèi)部的成員的字節(jié)對齊)5.4 當數(shù)組作為函數(shù)的參數(shù)時, sizeof的使用 編譯器把數(shù)組參數(shù)當作指針對待, 因而在使用sizeof時,報告的是指針的大小。例22: char S = “1234567890”; size_t foo(char *s) return(sizeof(s); void main(void) size_t sz = foo(S); /sz = 4(PC),sz = 2(MSP430) size_t sz
27、1 = sizeof(S); /sz1 = 11; 32第六章 可移植性6.1 數(shù)據(jù)類型的大小 在C和C+里,基本數(shù)據(jù)類型大小并沒有明確的規(guī)定,僅給出下列一些規(guī)則: sizeof(char) = sizeof(short) = sizeof(int) = sizeof(long); sizeof(float) = sizeof(double); char至少是8位,short和int至少是16位,long至少是32位。如: 在8051上int為16位,占2個字節(jié); 在PC機上int為32位。占4個字節(jié)。 因此,我們建議用類似下面的類型定義來替代:typedef unsigned char BO
28、OLEAN;typedef unsigned char INT8U;typedef signed char INT8S;typedef unsigned int INT16U;typedef signed int INT16S;typedef unsigned long INT32U;typedef signed long INT32S;typedef float FP32;typedef double FP64;33第六章 可移植性6.2 char的符號問題 char數(shù)據(jù)類型到底是有符號還是無符號,C和C+并沒有給出明確規(guī)定。 不同編譯器和平臺,對char是否有符號規(guī)定不一。 無符號char
29、的范圍為 0255; 有符號char的范圍為 128127。 因此,在移植時會出現(xiàn)溢出(無符號有符號)或負數(shù)變?yōu)檎龜?shù)(有符號無符號)。解決辦法: 在變量無需用到負數(shù)時,明確定義其為 unsigned char或是INT8U; 在變量可能用到負數(shù)時,明確定義其為 signed char或是INT8S。6.3 結構體對齊問題參見(結構體內(nèi)部的成員的字節(jié)對齊)34第六章 可移植性6.4 字節(jié)順序 大多數(shù)微處理器的存儲結構是8 位地址空間。 字節(jié)許多數(shù)據(jù)項地址數(shù)字和字符串太長,不能用單個字節(jié)保存必須用一系列連續(xù)字節(jié)保存當使用用多字節(jié)保存的數(shù)據(jù)時,字節(jié)順序就成為一個問題。 對字節(jié)順序的兩個通行的方法被廣
30、泛使用: 第一個方法是調(diào)用小ENDIAN 就是低字節(jié)首先保存。例如一個16 位整數(shù)值0 x1234 用小ENDIAN 方法保存兩個連續(xù)的字節(jié)如下 地址 內(nèi)容+0+10 x340 x12 第二個方法是調(diào)用大ENDIAN 就是高字節(jié)先保存低字節(jié)后保存例如一個16 位整數(shù)值0 x1234 用大ENDIAN 方法保存兩個連續(xù)的字節(jié)如下 地址 內(nèi)容址+0 +1+0 +10 x120 x34356.5 使用標準庫 盡量使用C語言定義的標準庫。這樣,從一個系統(tǒng)移植到另一個系統(tǒng),你的代碼很有希望還能具有同樣的行為方式。 8051 的LCALL 指令保存下一個指令在堆棧中地址的低字節(jié)首先推入堆棧因此地址是以小E
31、NDIAN 格式保存; 所有別的16 位和32 位值以大ENDIAN 格式保存高字節(jié)先保存例如LJMP和LCALL 指令期望地址以大ENDIAN 格式保存; 浮點數(shù)根據(jù)IEEE-754 格式保存以大ENDIAN 格式首先保存高字節(jié) 如果8051 嵌入應用平臺和別的CPU通訊必須知道其所用的字節(jié)順序。第六章 可移植性36第六章 參考書籍和資料6.1 C語言初級教材(1)C程序設計語言(The C Programming Language) 作者:Brian W.Kernighan, Dennis M.Ritchie 簡介:本書是由C語言的設計者Brian W. Kernighan和Dennis
32、M. Ritchie編寫的一部介紹標準C語言及其程序設計方法的權威性經(jīng)典著作。一本必讀的程序設計語言方面的參考書。(2)C Primer Plus中文版(C Primer Plus) 作者:Stephen Prata 簡介:作為核心計算機技術成熟、完整的參考書籍,Primer Plus系列歷經(jīng)十數(shù)年不衰,通過學習C Primer Plus(第五版)中文版,你將奠定堅實的C編程基礎。(3)C和指針(Pointers on C) 作者:Kenneth A.Reek 簡介:本書提供與C語言編程相關的全面資源和深入討論。全書覆蓋了數(shù)據(jù)、語句、操作符和表達式、指針、函數(shù)、數(shù)組、字符串、結構和聯(lián)合等幾乎所有重要的C編程話題。書中給出了很多編程技巧和提示。376.2 C語言進階書籍(1)C陷阱與缺陷(C Traps and Pitfalls) 作者:Andrew Koenig 簡介:作者以自己1985年在Bell實驗室時發(fā)表的一篇論文為基礎,結合自己的工作經(jīng)驗擴展成為這本對C程序員具有珍貴價
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人融資合同續(xù)簽條件協(xié)議書范本3篇
- 2025年度個人住房抵押借款合同范本:家庭信用評級體系4篇
- 2025年度鋼材租賃與市場分析預測合同范本2篇
- 2025飾品店加盟合同協(xié)議書范本版
- 2025委托出口合同新范文
- 2025新盟食堂承包合同書(正本我做)
- 二零二五年度房地產(chǎn)項目投資合作協(xié)議范本6篇
- 二零二五年度集裝箱承攬運輸管理協(xié)議3篇
- 二零二四年消防裝備租賃與購銷合同樣本3篇
- 2025年度金融行業(yè)個人勞務用工合同模板(二零二五版)4篇
- 2024年湖南高速鐵路職業(yè)技術學院高職單招數(shù)學歷年參考題庫含答案解析
- 國旗班指揮刀訓練動作要領
- 2024年國家工作人員學法用法考試題庫及參考答案
- 國家公務員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術》課件 第6講 阻燃纖維及織物
- 2021-2022學年遼寧省重點高中協(xié)作校高一上學期期末語文試題
- 同等學力英語申碩考試詞匯(第六版大綱)電子版
- 人教版五年級上冊遞等式計算100道及答案
- 墓地個人協(xié)議合同模板
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 2024年新課標全國Ⅰ卷語文高考真題試卷(含答案)
評論
0/150
提交評論