現(xiàn)在很多同學(xué)想把學(xué)歷提上去,然后報(bào)了湖南自考本科之后,發(fā)現(xiàn)沒有自考資料進(jìn)行復(fù)習(xí),所以湖南自考生網(wǎng)為大家收集了“04737《C語言程序設(shè)計(jì)》自考資料二”,希望能夠幫助大家。
函數(shù)
1.函數(shù)定義的一般形式:
無參數(shù)函數(shù): 類型標(biāo)識(shí)符 函數(shù)名()
{ 說明部分;
語句;}
注:無返回值,可不寫類型標(biāo)識(shí)符。
有參數(shù)函數(shù):類型標(biāo)識(shí)符 函數(shù)名(形式參數(shù)列表)
形式參數(shù)說明
{ 說明部分;
語句;}
注:類型標(biāo)識(shí)符指定函數(shù)返回值的類型,無類型標(biāo)識(shí)符時(shí)默認(rèn)為整型數(shù)。
空 函 數(shù):類型標(biāo)識(shí)符函數(shù)名()
{ }
2.函數(shù)的調(diào)用
一般調(diào)用形式:函數(shù)名(實(shí)際參數(shù)列表)
函數(shù)調(diào)用方式:把函數(shù)調(diào)用作為一個(gè)語句,完成某種操作,無需返回值,
如:printstr();
函數(shù)出現(xiàn)在表達(dá)式中,要求有返回值參與運(yùn)算,如:c=2*max(a,b);
函數(shù)調(diào)用作為另一個(gè)函數(shù)的實(shí)參,如:printf(“%d”,max(a,b));
說明:①被調(diào)用函數(shù)必須存在。
②使用庫函數(shù),一般在文件開頭用 #include命令將有關(guān)函數(shù)信息包含進(jìn)來。
③自定義函數(shù)應(yīng)與主調(diào)函數(shù)在一個(gè)文件中,若自定義函數(shù)在主調(diào)函數(shù)后,主調(diào)函 數(shù)中應(yīng)加以說明。
函數(shù)的嵌套調(diào)用:C語言中不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù),即在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)。
函數(shù)的遞歸調(diào)用:在一個(gè)函數(shù)中直接或間接調(diào)用該函數(shù)本身。
3.函數(shù)的參數(shù)
函數(shù)的參數(shù)可以是變量,也可以是數(shù)組元素、數(shù)組名或指針變量。
4.內(nèi)部函數(shù)和外部函數(shù)、局部變量和全局變量、動(dòng)態(tài)存儲(chǔ)變量與靜態(tài)存儲(chǔ)變量。
第九章 編譯預(yù)處理
1.宏定義:用一個(gè)指定的標(biāo)識(shí)符來代表一個(gè)字符串。
不帶參數(shù)的宏定義:#define 標(biāo)識(shí)符字符串
帶參數(shù)的宏定義: #define 宏名(參數(shù)表) 字符串
終止宏定義的作用域:#undef
2.文件包含處理:一個(gè)源文件將另一個(gè)源文件包含進(jìn)來。
形式:#include“文件名”
3.條件編譯:對(duì)源程序中的一部分指定編譯條件。
第十章 指針
1.指針:是一個(gè)變量的地址,即分配給一個(gè)變量的內(nèi)存起始地址。
指針變量:是存放指針(另一變量地址)的變量。
指針變量的定義形式: 類型標(biāo)識(shí)符 *標(biāo)識(shí)符
2.指針變量的引用
例如:int x=5,y,z,a[]={1,2,3,4};
int *px,*py;
px=&x;py=a;
*px=5;
z=*px;
3.指針與函數(shù)參數(shù)
例:交換兩個(gè)變量?jī)?nèi)容的程序
swap(int *px, int *py)
{ int temp;
temp=*px;
*px=*py;
*py=temp;
}
main()
{ int a,b;
scanf(“%d”,&a);scanf(“%d”.&b);
printf(“a=%d\tb=%d\n”,a,b);
swap(&a,&b);
printf(“a=%d\tb=%d\n”,a,b);
}
通過地址(指針)實(shí)現(xiàn)被調(diào)用函數(shù)直接修改調(diào)用函數(shù)中變量的內(nèi)容。
4. 指針和數(shù)組
數(shù)組的指針是指數(shù)組的起始地址,任何能用數(shù)組下標(biāo)完成的操作都能由指針來完成。通過指針引用數(shù)組元素,例:若有int a[],*pa;pa=a;則:a[i]=*(pa+i)=*(a+i)
5.多維數(shù)組的指針
例:設(shè)有一個(gè)二維數(shù)組a[3][4],則:數(shù)組名a是數(shù)組的首地址,a+i與a[i]等價(jià),是第i行的首地址,a[i]+j表示第i行第j列的地址。
若有:int *p=a;
則:數(shù)組中任一元素地址可表示為*(p+i)+j,或?yàn)閜+i*m+j。(m列數(shù))
指向由m個(gè)元素組成的一維數(shù)組的指針變量,例:int(*p)[m]
6.字符串與指針
例:若有:char *s;s="I am a string" 表示s指向字符串的首地址,s+i表示第i個(gè)字符的地址。輸出時(shí)從指針?biāo)傅刂烽_始直到字符串結(jié)束標(biāo)記(‘\0’)為止。
7.指針數(shù)組和多級(jí)指針
凡是可以用多維數(shù)組處理的問題,都可以用指針數(shù)組來解決,但兩者有所區(qū)別。
指針數(shù)組定義形式:類型標(biāo)識(shí)符 數(shù)組名[長(zhǎng)度說明]如:int *p[4];
指針數(shù)組的初始化:允許在定義時(shí)初始化,
如:static char *a[]={"ab","cde","fghi"};
指針數(shù)組的引用:a+i表示第i個(gè)字符串。
多級(jí)指針定義形式:類型標(biāo)識(shí)符 **指針變量名; 如:char **p;
多級(jí)指針的初始化:p=a;
多級(jí)指針的引用:p+i表示第i個(gè)字符串,p++表示下一個(gè)字符串,*(p+i)+j表示第i個(gè)字符串中第j個(gè)字符的地址。
8.函數(shù)的指針
定義形式:數(shù)據(jù)類型標(biāo)識(shí)符 (*指針變量名)(); 如:int (*f)();
初 始 化:int max(x,y);f=max;
用指針變量調(diào)用函數(shù):c=(*f)(a,b);
9.返回指針值的函數(shù)
定義形式:類型標(biāo)識(shí)符函數(shù)名(形參列表); 如:int *a(x,y);
10.指針數(shù)組
指針數(shù)組的元素均為指針類型數(shù)據(jù)。
定義形式:類型標(biāo)識(shí)符 *數(shù)組名[數(shù)組長(zhǎng)度]; 如:int *p[4];
11.指向指針的指針
定義形式:類型標(biāo)識(shí)符 **標(biāo)識(shí)符; 如:char **p;
12、有關(guān)指針的數(shù)據(jù)類型
變量int iint *pint **p
數(shù)組int a[n]int (*p)[n]int *p[n]
函數(shù)int f()int (*p)()int *p()
第十一章 結(jié)構(gòu)體
結(jié)構(gòu)體是一種類型,是包含若干個(gè)類型不同的數(shù)據(jù)項(xiàng)組成的組合體。
1、定義結(jié)構(gòu)體類型
struct 結(jié)構(gòu)體名
{ 成員表列 };
2、定義結(jié)構(gòu)體類型的變量的三種方法
(1) 先聲明結(jié)構(gòu)體類型再定義變量名
例:struct student{ 成員表列 };
struct student student1,student2;
(2) 聲明結(jié)構(gòu)體類型的同時(shí)定義變量名
struct 結(jié)構(gòu)體名
{
成員表列
}變量名表列;
(3) 直接定義結(jié)構(gòu)體類型變量
struct
{
成員表列
}變量名表列;
3、結(jié)構(gòu)體變量的引用及初始化
不能將結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入和輸出,只能對(duì)結(jié)構(gòu)體變量中的各個(gè)成員分別進(jìn)行輸入和輸出。引用結(jié)構(gòu)體變量中各個(gè)成員的方式:結(jié)構(gòu)體變量名.成員名
結(jié)構(gòu)體變量可以在定義時(shí)指定初始值,也可以先定義,而后給每個(gè)成員賦值。
4、結(jié)構(gòu)體數(shù)組
結(jié)構(gòu)體數(shù)組中每個(gè)元素都是同一個(gè)結(jié)構(gòu)體類型的數(shù)據(jù),它們都分別包括各個(gè)成員項(xiàng)。
例:定義struct student stu[3];
5、指針與結(jié)構(gòu)體
一個(gè)結(jié)構(gòu)體類型的指針是所指結(jié)構(gòu)體變量所占內(nèi)存的起始地址。
若有:struct student stu,*p;p=stu;
以下三種形式等價(jià): stu.成員名 等價(jià)于 (*p).成員名 等價(jià)于 p->成員名
6、用指針處理鏈表
(1) 建立鏈表的函數(shù):p.297 例11.8
struct student *creat( )
{ struct student *head, *p1, *p2;
int i, len;
len=sizeof(struct student);
for(i=1; i<=N; i++)
{ p1=(struct student *)malloc(len);
printf("Enter num,score:");
scanf("%ld,%f", &p1->num, &p1->score);
if(i==1) head=p2=p1;
else { p2->next=p1; p2=p1; }
if(i==N) p2->next=NULL;
}
return(head); /*返回鏈表頭指針*/
}
(2) 輸出鏈表的函數(shù):p.300 例11.9
void plink(struct student *head) /*更具通用性*/
{ struct student *p;
p=head;
while(p!=NULL)
{ printf("num=%ld, score=%5.2f\n",
p->num, p->score);
p=p->next;
}
return;
}
(3) 對(duì)鏈表的刪除操作:p.301 例11.10
struct student *del(struct student *head, long n)
{ struct student *p1, *p2; /*↑n:要?jiǎng)h除學(xué)號(hào)*/
p1=head;
if(p1->num==n) head=p1->next; /*刪除首節(jié)點(diǎn)*/
else
{ do { p2=p1; p1=p1->next;
}
while(p1!=NULL && p1->num!=n);
if(p1->num==n) p2->next=p1->next; /*找到*/
else printf("Not be found!\n"); /*未找到*/
}
free(p1); /*釋放被刪除節(jié)點(diǎn)的存儲(chǔ)區(qū)*/
return(head); /*返回頭指針*/
}
(4) 對(duì)鏈表的插入操作:p.303 例11.11
第十二章 位運(yùn)算
1、 按位“與”運(yùn)算符(&):參與運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)制位進(jìn)行“與”的運(yùn)算。
2、 按位“或”運(yùn)算符(|):參與運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)制位進(jìn)行“或”的運(yùn)算。
3、 按位“異或”運(yùn)算符(^):參與運(yùn)算的兩個(gè)二進(jìn)制位同號(hào)為0(假),異號(hào)為1(真)。
4、 “取反”運(yùn)算符(~):對(duì)二進(jìn)制位按位取反。
以上是湖南自考生網(wǎng)為大家?guī)淼淖钥紡?fù)習(xí)資料“04737《C語言程序設(shè)計(jì)》自考資料二”,希望能對(duì)大家考試有所幫助。
TEL:蔣老師17773102705
2024年自考、成考、網(wǎng)教報(bào)名進(jìn)行中,點(diǎn)擊立即報(bào)考咨詢>>
掃一掃下方二維碼關(guān)注湖南自考生網(wǎng)微信公眾號(hào)、客服咨詢號(hào),即時(shí)獲取湖南自考、成考、網(wǎng)教最新考試資訊。
關(guān)注公眾號(hào)免費(fèi)拿資料
微信掃一掃咨詢
微信掃一掃咨詢
1、鑒于各方面資訊時(shí)常調(diào)整與變化,本網(wǎng)所提供的信息僅供參考,實(shí)際以考試院通知文件為準(zhǔn)。
2、本網(wǎng)部分內(nèi)容來源于網(wǎng)絡(luò),如有內(nèi)容、版權(quán)等問題請(qǐng)與本網(wǎng)聯(lián)系,我們將會(huì)及時(shí)處理。聯(lián)系方式 :QQ(393848300)
3、如轉(zhuǎn)載湖南自考生網(wǎng)聲明為“原創(chuàng)”的內(nèi)容,請(qǐng)注明出處及網(wǎng)址鏈接,違者必究!
湖南正規(guī)的自考報(bào)名網(wǎng)站,提供各類學(xué)歷報(bào)名服務(wù)
特別聲明:本站信息大部分來源于各高校,真實(shí)可靠!部分內(nèi)容來自互聯(lián)網(wǎng),僅供參考!所有信息以實(shí)際政策和官方公告為準(zhǔn)!
湖南求實(shí)創(chuàng)新教育科技有限公司 版權(quán)所有 湘ICP備18023047號(hào)-2