① 吉林大學《c語言程序設計》教程用的教材是什麼
我當時用的是譚浩強《C語言程序設計》第二版
② 吉林大學 操作系統教材用的什麼書
你問的應該是計算機學院和軟體學院的吧? C語言是《程序設計基礎》張長海編的。 C++是《C++程序設計》譚浩強編的。 這兩本書版本不同差不了太多。
③ 學編程所要的書籍
我是計算機專業,推薦:
C語言編程書籍——《程序設計基礎》(張長海、陳娟、劉磊編著,高等教育出版社出版)
C++編程教材——《C++程序設計》(譚浩強編著,清華大學出版社出版)
然後給出一點個人建議:
數學和英語很重要。
④ 吉林大學C語言教程 用的什麼教材
你問的應該是計算機學院和軟體學院的吧?
C語言是《程序設計基礎》張長海編的。
C++是《C++程序設計》譚浩強編的。
這兩本書版本不同差不了太多。
⑤ 新手學C語言用什麼軟體好啊有好的教程么
軟體,Visual C++ 6.0 就行
不建議用TC2.0 因為在TC2.0環境下不能用滑鼠,很不方便
至於教材,很專業的話建議你用:《C程序設計》 張長海 陳娟編著 高等教育出版社 ,這本教材就是我們用的,剛開始可能感覺不出來它的好,但學到一定程度你就會發現這本教材真的不錯。譚浩強寫的C程序設計可以用作輔助
不是很專業的話就只看譚浩強寫的《C程序設計》就行了。
打開下面幾個這個網址有視頻教程,需要的話可以使用迅雷下載
http://58.251.57.206/down?cid=&t=13&fmt=-
http://58.251.57.206/down?cid=&t=13&fmt=-
http://58.251.57.206/down?cid=&t=13&fmt=-
⑥ 求大學教程c語言的兩本書《程序設計基礎》張長海和《c++程序設計》譚浩強
加我的QQ。。我發給你。。 905757740
⑦ 誰知道大學計算機程序設計基礎(C語言)(普通高等教育「十一五」國家級規劃教材)的答案,請進
網上有的是。。。
⑧ C語言編寫的超市管理系統
有一個小型超市,出售N(N>=10)種商品,設計並實現一個系統,完成下列功能:
1. 保存及輸出。超市中的各種商品信息保存在指定文件中,可以把它們輸出顯示。
2. 計算並排序。計算每類商品的總價值(sum,單精度)及平均價(aver,單精度,輸出一位小數),將每類商品按平均價從大到小的順序排序列印出來。
3. 統計。統計輸出庫存量低於100的貨號及類別。統計輸出有兩種以上(含兩種)商品庫存量低於100的商品類別。
1.2總體結構
本程序主要分為八個模塊:主模塊、信息輸出修改模塊、新建信息模塊、排序模塊、計算模塊、統計模塊1、統計模塊2、列印模塊。
1) 主模塊:通過調用各分模塊實現功能;
2) 信息輸出修改模塊:輸出顯示文件中商品信息內容,添加商品信息,刪除商品信息,修改商品信息;
3) 新建商品信息模塊:建立一個新結構體,為鏈表存信息用,並且將信息保存在指定的文件中;
4) 排序模塊:把文件中順序零亂的商品信息按單價的大小從高到低進行排序,放到鏈表裡存儲;
5) 計算模塊:將所有商品的價格與庫存量進行累加求和;
6) 列印模塊:將商品信息按每類平均價格排序(從高到低)按順序列印出來;
7) 統計模塊1:統計庫存量低於100的貨名及類別;
8) 統計模塊2:統計商品庫存量有2種以上(含2種)低於100的商品類別。
附 錄(程序清單)
#include "stdio.h" /*輸入,輸出頭文件*/
#include "stdlib.h" /*申請空間頭文件*/
#include "string.h" /*對字元串加工頭文件*/
#include "conio.h" /*清屏頭文件*/
FILE *fp;
int n=0; /*定義文件指針類型*/
int i,j,a[4],m; /*定義整數類型*/
float aver[4],sum[4],g[4],h; /*定義浮點類型*/
char c[5]="elec"; /*定義字元數組類型*/
char d[5]="comm"; /*定義字元數組類型*/
char e[5]="food"; /*定義字元數組類型*/
char f[5]="offi"; /*定義字元數組類型*/
struct good /*定義結構體*/
{
int num; /*商品編號*/
char name[20]; /*商品名稱*/
char kind[40]; /*商品類型*/
float price; /*商品價格*/
char unit[10]; /*商品單位*/
int quantity; /*商品數量*/
struct good *next; /*定義結構體指針類型*/
}*head,*p1,*p2;
struct good *createlist() /*創建鏈表函數*/
{
struct good *head1,*p1,*p2; /*定義結構體指針類型*/
if((fp=fopen("goods message.txt","w"))==NULL) /*判斷能否打開文件*/
{
printf("can not open the file");
exit(0); /*結束程序*/
}
head1=(struct good *)malloc(sizeof(struct good)); /*申請頭結點空間*/
p1=head1;
p2=head1;
printf("*********************************************\n");
printf("請輸入信息:編號,名稱,類型,價格,單位,數目\n");
printf(" (以輸入「-1」表示結束輸入)\n");
printf("*********************************************\n");
printf("____________________\n");
scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*輸入商品信息*/
printf("____________________\n");
p1->next=NULL;
fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*將商品信息寫入文件*/
while(1)
{
p1=(struct good *)malloc(sizeof(struct good)); /*申請新空間*/
printf("*********************************************\n");
printf("請輸入信息:編號,名稱,類型,價格,單位,數目\n");
printf(" (以輸入「-1」表示結束輸入)\n");
printf("*********************************************\n");
printf("____________________\n");
scanf("%d",&p1->num);
if(p1->num==-1) /*申請空間結束條件*/
{
printf("____________________\n\n");
fprintf(fp,"%d",-1);
fclose(fp);
return head1; /*返回頭指針*/
}
scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*輸入商品信息*/
printf("________________\n");
fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*將商品信息寫入文件*/
p1->next=NULL;
p2->next=p1;
p2=p1;
}
}
struct good *paixu(struct good*head2) /*鏈表排序函數*/
{
struct good *p6,*p7,*r,*s; /*定義結構體指針類型*/
for(i=0;i<=3;i++) /*賦初值值*/
{
a[i]=0;
sum[i]=0;
aver[i]=0;
}
p6=(struct good *)malloc(sizeof(struct good)); /*申請新空間*/
p6->next=head2;
head2=p6;
while(p6->next!=NULL) /*判斷循環結束條件*/
{
p7=p6->next;
r=p6;
while(p7->next!=NULL) /*判斷循環結束條件*/
{
if((p7->next->price)>(r->next->price)) /*判斷是否調換*/
r=p7;
p7=p7->next;
}
if(p6!=r) /*判斷循環結束條件*/
{
s=r->next; /*指針調換*/
r->next=s->next;
s->next=p6->next;
p6->next=s;
}
p6=p6->next;
}
p6=head2;
head2=head2->next;
free(p6); /*釋放第一個無效空間*/
return head2;
}
void jisuan()
{
p1=head;
do
{
if(strcmp(p1->kind,c)==0) /*判斷是否為電器類型*/
{
sum[0]=sum[0]+(p1->price)*(p1->quantity); /*求電器總價*/
a[0]=a[0]+p1->quantity; /*求電器總件數*/
}
if(strcmp(p1->kind,d)==0) /*判斷是否為日用品類型*/
{
sum[1]=sum[1]+(p1->price)*(p1->quantity); /*求日用品總價*/
a[1]=a[1]+p1->quantity; /*求日用品總件數*/
}
if(strcmp(p1->kind,e)==0) /*判斷是否為辦公用品類型*/
{
sum[2]=sum[2]+(p1->price)*(p1->quantity); /*求辦公用品總價*/
a[2]=a[2]+p1->quantity; /*求辦公用品總件數*/
}
if(strcmp(p1->kind,f)==0) /*判斷是否為食品類型*/
{
sum[3]=sum[3]+(p1->price)*(p1->quantity); /*求食品總價*/
a[3]=a[3]+p1->quantity; /*求食品總件數*/
}
p1=p1->next;
}while (p1!=NULL); /*遍歷鏈表結束條件*/
for(i=0;i<4;i++)
aver[i]=sum[i]/a[i]; /*求每類商品平均價*/
printf("****************************************************\n");
printf("商品類型 \t 平均價\t 總庫存量\n");
printf("****************************************************\n");
printf("____________________________________________________\n");
printf("電器總價值:%0.1f\t平均價:%0.1f\t總庫存量:%d\n",sum[0],aver[0],a[0]);
printf("____________________________________________________\n");
printf("日用品總價值:%0.1f\t平均價:%0.1f\t總庫存量:%d\n",sum[1],aver[1],a[1]);
printf("____________________________________________________\n");
printf("食品總價值:%0.1f\t平均價:%0.1f\t總庫存量:%d\n",sum[2],aver[2],a[2]);
printf("____________________________________________________\n");
printf("辦公用品總價值:%0.1f\t平均價:%0.1f\t總庫存量:%d\n",sum[3],aver[3],a[3]);
printf("____________________________________________________\n");
}
void shuchu() /*輸出商品信息函數*/
{
do
{
struct good *p3,*p4,*p5; /*定義結構體指針類型*/
int n=0,p=0,q=0,r=0;
printf("所有商品信息:\n");
printf("編號,名稱,類型,價格,單位,數目\n");
printf("**********************************\n");
if((fp=fopen("goods message.txt","rb+"))==NULL) /*判斷能否打開文件*/
{
printf("can not open the file");
exit(0); /*結束程序*/
}
head=(struct good *)malloc(sizeof(struct good)); /*申請頭結點空間*/
p3=head;
fscanf(fp,"%d %s %s %f %s %d ",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity); /*從文件中寫到鏈表*/
while(1)
{
p4=(struct good *)malloc(sizeof(struct good)); /*申請頭結點空間*/
fscanf(fp,"%d ",&p4->num);
if(p4->num!=-1) /*判斷循環結束條件*/
{
fscanf(fp,"%s %s %f %s %d ",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*從文件中寫到鏈表*/
p4->next=NULL;
p3->next=p4;
p3=p4;
}
else
{
p3->next=NULL;
break;
}
}
fclose(fp); /*關閉文件*/
p3=head;
while(p3!=NULL)
{
printf(" %d %s %s %0.1f %s %d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);
printf("__________________________________\n");
p3=p3->next;
}
printf("**********************************\n");
printf("//////////////////////////////////\n");
while(n!=4)
{
p3=head;
printf("**********************************\n");
printf("1 添加商品信息\n");
printf("2 刪除某商品信息\n");
printf("3 修改某商品信息\n");
printf("4 返回(當你完成了對某一商品的添加、刪除或者修改後請按4返回)\n");
printf("**********************************\n");
scanf("%d",&n);
if(n==1) /*添加商品信息*/
{
printf("請輸入商品 編號 名稱 類型 價格 單位 數目\n");
printf("**********************************\n");
p4=(struct good *)malloc(sizeof(struct good)); /*申請空間*/
scanf("%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*輸入商品信息*/
p4->next=NULL;
while(p3->next!=NULL) /*判斷循環結束條件*/
{
p3=p3->next;
}
p3->next=p4;
p3=head;
if((fp=fopen("goods message.txt","w"))==NULL) /*判斷能否打開文件*/
{
printf("can not open the file");
exit(0); /*結束程序*/
}
while(p3!=NULL)
{
fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity) /*將商品信息寫入文件*/
p3=p3->next;
}
fprintf(fp,"%d",-1);
fclose(fp); /*關閉文件*/
printf("**********************************\n");
printf("__________________________________\n");
printf("------------請按4返回-------------\n");
printf("__________________________________\n");
printf("**********************************\n");
}
if(n==2) /*刪除商品*/
{
printf("**********************************\n");
printf("請輸入需要刪除的商品編號\n");
printf("**********************************\n");
scanf("%d",&p);
printf("**********\n");
printf("1 確認刪除\n2 取消刪除\n");
printf("**********\n");
scanf("%d",&r);
if(r==1)
{
if((head->num)==p)
{
head=head->next;
free(p3); /*釋放空間*/
}
else
{
p4=head;
p3=p4->next;
while(p3!=NULL) /*判斷循環結束條件*/
{
if((p3->num)==p)
{
p5=p3->next;
free(p3); /*釋放空間*/
p4->next=p5;
break;
}
p3=p3->next;
p4=p4->next;
}
}
if((fp=fopen("goods message.txt","w"))==NULL) /*判斷能否打開文件*/
{
printf("can not open the file");
exit(0); /*結束程序*/
}
p3=head;
while(p3!=NULL) /*判斷循環結束條件*/
{
fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*將商品信息寫入文件*/
p3=p3->next;
}
fprintf(fp,"%d",-1);
fclose(fp); /*關閉文件*/
}
if(r==2)
continue; /*繼續循環*/
printf("**********************************\n");
printf("__________________________________\n");
printf("------------請按4返回-------------\n");
printf("__________________________________\n");
printf("**********************************\n");
}
if(n==3) /*修改某商品信息*/
{
printf("請輸入需要修改的商品編號\n");
scanf("%d",&q);
while(p3!=NULL) /*判斷循環結束條件*/
{
if((p3->num)==q) /*判斷是否為所需要修改的商品*/
{
printf("請輸入商品單價與庫存量(如果單價不變請輸入原來的單價)\n");
scanf("%f %d",&p3->price,&p3->quantity); /*輸入商品價格與庫存量*/
}
p3=p3->next;
}
if((fp=fopen("goods message.txt","w"))==NULL) /*判斷能否打開文件*/
{
printf("can not open the file");
exit(0); /*結束程序*/
}
p3=head;
while(p3!=NULL) /*判斷循環結束條件*/
{
fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*將商品信息寫入文件*/
p3=p3->next;
}
fprintf(fp,"%d",-1);
fclose(fp); /*關閉文件*/
printf("**********************************\n");
printf("__________________________________\n");
printf("------------請按4返回-------------\n");
printf("__________________________________\n");
printf("**********************************\n");
}
if(n==4) /*退出*/
break;
}
printf("**********\n");
printf("1 繼續修改\n---------\n2 返回\n");
printf("**********\n");
scanf("%d",&p);
if(p==1)
continue; /*繼續循環*/
if(p==2)
break; /*跳出循環*/
}while(n!=2);
fclose(fp); /*關閉文件*/
}
void printf0(struct good *p) /*遍歷鏈表並列印電器類商品函數*/
{
struct good *p3; /*定義結構體指針類型*/
p3=p;
while (p3!=NULL) /*判斷遍歷鏈表循環結束條件*/
{
if(strcmp(p3->kind,c)==0) /*判斷商品類型是否為電器類型*/
{
printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*輸出電器類商品信息*/
printf("________________________________________________\n");
}
p3=p3->next;
}
return;
}
void printf1(struct good *p) /*遍歷鏈表並列印日用品類商品函數*/
{
struct good *p3; /*定義結構體指針類型*/
p3=p;
while (p3!=NULL) /*判斷遍歷鏈表循環結束條件*/
{
if(strcmp(p3->kind,d)==0) /*判斷商品類型是否為日用品類型*/
{
printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*輸出日用品類商品信息*/
printf("________________________________________________\n");
}
p3=p3->next;
}
return;
}
void printf2(struct good *p) /*遍歷鏈表並列印辦公用品類商品函數*/
{
struct good *p3; /*定義結構體指針類型*/
p3=p;
while (p3!=NULL) /*判斷遍歷鏈表循環結束條件*/
{
if(strcmp(p3->kind,e)==0) /*判斷商品類型是否為辦公用品類型*/
{
printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*輸出辦公用品類商品信息*/
printf("________________________________________________\n");
}
p3=p3->next;
}
return;
}
void printf3(struct good *p) /*遍歷鏈表並列印食品類商品函數*/
{
struct good *p3; /*定義結構體指針類型*/
p3=p;
while (p3!=NULL) /*判斷遍歷鏈表循環結束條件*/
{
if(strcmp(p3->kind,f)==0) /*判斷商品類型是否為食品類型*/
{
printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*輸出食品類商品信息*/
printf("________________________________________________\n");
}
p3=p3->next;
}
return;
}
void shunxudayin()
{
for(i=0;i<4;i++)
g[i]=aver[i]; /*將平均價賦給新數組*/
for(j=0;j<3;j++) /*將新數組用冒泡排序法排序*/
for(i=j+1;i<4;i++)
{
if(g[j]<g[i])
{
h=g[j];
g[j]=g[i];
g[i]=h;
}
}
printf("\n****************************\n");
printf("商品平均價格排序表(從高到低)\n");
printf("****************************\n");
printf("________________________________________________\n");
printf("編號\t名稱\t類別\t單價\t單位\t數量\n");
printf("________________________________________________\n");
for(j=0;j<4;j++)
for(i=0;i<4;i++)
{
if (aver[i]==g[j]) /*判斷每類商品平均價格的先後順序*/
switch(i)
{
case 0:
printf0(head); /*調用遍歷鏈表並列印電器類商品函數*/
break;
case 1:
printf1(head); /*調用遍歷鏈表並列印日用品類商品函數*/
break;
case 2:
printf2(head);/*調用遍歷鏈表並列印辦公用品類商品函數*/
break;
case 3:
printf3(head); /*調用遍歷鏈表並列印食品類商品函數*/
break;
}
}
}
void tongji1()
{
p1=head;
printf("\n************************\n");
printf("庫存量低於100的貨名及類別\n");
printf("************************\n");
printf("________________________\n");
printf("商品名稱\t商品類型\n");
printf("________________________\n");
while(p1!=NULL) /*判斷遍歷鏈表循環結束條件*/
{
if(p1->quantity<100) /*判斷庫存量是否小於100*/
{
printf("%s\t%s\n",p1->name,p1->kind); /*輸出商品名稱及類別*/
printf("________________________\n");
}
p1=p1->next;
}
}
void tongji2()
{
printf("\n**********************************************\n");
printf("商品庫存量有2種以上(含2種)低於100的商品類別:\n");
printf("**********************************************\n");
printf("________\n");
if((a[0]<100)&&(a[0]>=2)) /*判斷電器類庫存量是否為2種以上(含2種)低於100*/
{
printf("電器\n");
printf("________\n");
}
if((a[1]<100)&&(a[1]>=2)) /*判斷日用品類庫存量是否為2種以上(含2種)低於100*/
{
printf("日用品\n");
printf("________\n");
}
if((a[2]<100)&&(a[2]>=2)) /*判斷食品類庫存量是否為2種以上(含2種)低於100*/
{
printf("食品\n");
printf("________\n");
}
if((a[3]<100)&&(a[3]>=2)) /*判斷辦公用品類庫存量是否為2種以上(含2種)低於100*/
{
printf("辦公用品\n");
printf("________\n");
}
}
int main(int argc, char* argv[])
{
struct good *p1,*p2; /*定義結構體指針類型*/
while(1)
{
printf("***********************************************\n");
printf("1 ----------輸出查看或者修改已存信息-----------\n");
printf("-----------------------------------------------\n");
printf("2 -----重新輸入新信息(並且刪除原有信息)------\n");
printf("-----------------------------------------------\n");
printf("3 統計商品信息(如果您還沒有查看過信息請先按1)\n");
printf("-----------------------------------------------\n");
printf("4 -------------------退出---------------------\n");
printf("***********************************************\n");
scanf("%d",&m);
if(m==1)
shuchu(); /*調用輸出信息函數*/
if(m==2)
{
system("cls");
head=createlist(); /*調用建立鏈表函數*/
}
if(m==3)
{
printf("統計結果如下\n");
head=paixu(head); /*調用鏈表排序函數*/
jisuan(); /*調用計算函數*/
shunxudayin(); /*調用順序列印函數*/
tongji1(); /*調用統計1函數*/
tongji2(); /*調用統計2函數*/
}
if(m==4)
{
p1=head;
while(p1!=NULL) /*判斷遍歷鏈表結束條件*/
{
p2=p1->next;
free(p1); /*釋放空間*/
p1=p2;
}
break;
}
}
return 0; /*結束程序*/
}
⑨ c程序設計的作品目錄
第1章 C 程序設計的初步知識
1.1 簡單 C 程序的組成和格式
1.2 十進制整型數和實型數
1.2.1 常量
1.2.2 十進制整型常量
1.2.3 浮點常量
1.2.4 用定義一個符號名的方法來代表一個常量
1.3 標識符
1.3.1 關鍵字
1.3.2 預定義標識符
1.3.3 用戶標識符
1.4 整型變數和實型變數
1.4.1 變數
1.4.2 整型變數
1.4.3 浮點型變數
1.4.4 給變數置初值
1.4.5 定義不可變的變數
1.5 可進行算術運算的表達式
1.5.1 基本的算術運算符
1.5.2 運算符的優先順序與結合性和算術表達式
1.5.3 強制類型轉換表達式
1.6 賦值表達式
1.6.1 賦值運算符和賦值表達式
1.6.2 復合的賦值表達式
1.6.3 賦值運算中的類型轉換
1.7 自加、自減運算符和逗號運算符
1.7.1 自加運算符(++)和自減運算符(--)
1.7.2 逗號運算符和逗號表達式
習題
第2章 簡單的C語句及其順序程序結構
2.1 賦值語句
2.2 整型數和實型數的簡單輸入和輸出語句
2.2.1 調用 printf 函數輸出數據到終端
2.2.2 調用 scanf 函數從終端鍵盤輸入數據
2.3 復合語句和空語句
2.3.1 復合語句
2.3.2 空語句
習題
第3章 分支結構
3.1 關系運算和邏輯運算
3.1.1 C 語言中的邏輯值
3.1.2 關系運算符和關系表達式
3.1.3 邏輯運算符和邏輯表達式
3.2 用if 語句構成的分支結構
3.2.1 if 語句
3.2.2 嵌套的 if 語句
3.3 由條件表達式構成的分支結構
3.4 由switch 語句和 break 語句構成的分支結構
3.4.1 switch 語句
3.4.2 switch 語句的執行過程
3.4.3 在 switch 語句體中使用 break 語句
習題
第4章 循環結構4
4.1 用for語句構成的循環結構
4.1.1 for 循環的一般形式?
4.1.2 for 循環的執行過程
4.1.3 有關 for 語句的說明
4.2 用while 語句構成的循環結構
4.2.1 while 循環的一般形式
4.2.2 while 循環的執行過程
4.3 用do-while語句構成的循環結構
4.3.1 do-while 循環的一般形式
4.3.2 do-while 循環的執行過程
4.4 循環結構的嵌套
4.5 幾種循環結構的比較
4.6 break 和 continue 語句在循環體中的作用
4.6.1 break 語句
4.6.2 continue 語句
4.7 語句標號和 goto 語句
4.7.1 語句標號
4.7.2 goto 語句
4.8 程序舉例
習題
第5章 函數的初步知識
5.1 庫函數
5.2 函數的定義和返回值
5.2.1 函數定義的語法
5.2.2 函數的返回值
5.3 函數的調用
5.3.1 函數的兩種調用方式
5.3.2 函數調用時的語法要求
5.4 調用函數和被調用函數之間的數據傳遞
5.5 函數原型的說明
5.5.1 函數原型的說明語句
5.5.2 函數原型說明語句的位置
5.6 程序舉例
習題
第6章 演算法和結構化程序設計
6.1 程序和程序設計
6.1.1 程序
6.1.2 程序設計
6.2 演算法
6.3 結構化程序設計和模塊化結構
6.3.1 結構化程序
6.3.2 模塊化結構
6.4 怎樣評價一個程序
習題
第7章 字元數據和字元數據處理
7.1 字元常量
7.1.1 常規字元常量
7.1.2 轉義字元常量
7.1.3 可對字元量進行的運算
7.2 字元變數
7.3 字元的輸入和輸出
7.3.1 調用 printf 和 scanf 函數
7.3.2 調用 putchar 和 getchar 函數
7.3.3 調用 getche 和 putche 函數
7.3.4 調用 getch 和 putch 函數
7.4 程序舉例
習題
第8章 地址和指針
8.1 什麼是地址?什麼是指針?
8.2 指針變數的定義和指針變數的基類型
8.3 給指針變數賦值
8.3.1 使指針指向一個對象
8.3.2 給指針變數賦「空」值
8.4 對指針變數的操作
8.4.1 通過指針或地址來引用一個存儲單元
8.4.2 移動指針
8.4.3 指針比較
8.5 函數之間地址值的傳遞
8.5.1 地址或指針變數作為實參
8.5.2 在被調用函數中直接改變調用函數中的變數的值
8.5.3 函數返回地址值
習題?
第9章 一維數組
9.1 一維數組的定義和一維數組元素的引用
9.1.1 一維數組的定義
9.1.2 一維數組元素的引用
9.1.3 一維數組的初始化
9.1.4 通過賦初值定義數組的大小
9.2 一維數組的應用舉例(一)
9.3 一維數組和指針
9.3.1 一維數組和數組元素的地址
9.3.2 通過數組的首地址引用數組元素
9.3.3 通過指針來引用一維數組元素
9.3.4 用指針帶下標的形式引用一維數組元素
9.4 一維數組名或數組元素作實參
9.4.1 數組元素作實參
9.4.2 數組名作實參
9.4.3 數組元素地址作為實參
9.5 一維數組應用舉例(二)
習題
第10章 二維數組
10.1 二維數組的定義和二維數組元素的引用
10.1.1 二維數組的定義
10.1.2 二維數組元素的引用
10.1.3 二維數組的初始化
10.1.4 通過賦初值定義二維數組的大小
10.2 二維數組的應用舉例(一)
10.3 二維數組和指針?
10.3.1 二維數組和數組元素的地址
10.3.2 通過地址來引用二維數組元素
10.3.3 通過建立指針數組來引用二維數組元素
10.3.4 通過建立行指針來引用二維數組元素
10.4 通過建立指針數組和一維數組來構造二維數組
10.5 二維數組名和指針數組作為實參
10.5.1 二維數組名作為實參
10.5.2 指針數組作為實參
10.6 二維數組應用舉例(二)
習題
第11章 字元串
11.1 用一維字元數組來存放字元串
11.1.1 通過賦初值的方式給一維字元數組賦字元串
11.1.2 在 C 程序執行過程中給一維字元數組賦字元串
11.2 使用指針指向一個字元串
11.2.1 通過賦初值的方式使指針指向字元串
11.2.2 通過賦值運算使指針指向字元串
11.2.3 用字元數組作為字元串和用指針指向的字元串之間的區別
11.3 字元串的輸入和輸出
11.3.1 輸入和輸出字元串時的必要條件
11.3.2 逐個字元輸入和輸出
11.3.3 用格式說明符「%s」進行整串輸入和輸出
11.3.4 調用 gets和puts 函數在終端按行輸入輸出字元
11.4 字元串數組
11.5 用於字元串處理的函數
11.6 程序舉例
習題
第12章 對函數的進一步討論
12.1 傳給 main () 函數的參數
12.2 通過實參向函數傳遞函數名或指向函數的指針
12.3 函數的遞歸調用
習題
第13章 C語言中用戶標識符的作用域和存儲類
13.1 內部變數、外部變數和存儲分類
13.1.1 用戶標識符的作用域
13.1.2 內部變數、外部變數和存儲分類
13.2 內部變數及其作用域和生存期
13.2.1 auto 變數
13.2.2 register 變數
13.2.3 靜態存儲類的內部變數
13.3 外部變數及其作用域和生存期
13.3.1 外部變數的作用域和生存期
13.3.2 在同一編譯單位內使用extern說明符
13.3.3 在不同編譯單位內使用extern說明符
13.3.4 靜態外部變數
13.4 函數的存儲分類
13.4.1 用 extern 說明函數
13.4.2 用 static 說明函數
13.5 在 Turbo C 集成環境下連接多個編譯單位的方法
習題S
第14章 編譯預處理
14.1 宏替換S
14.1.1 不帶參數的宏定義
14.1.2 帶參數的宏定義
14.1.3 終止宏定義
14.2 文件包含
14.3 條件編譯
14.4 #line 行
習題
第15章 動態存儲分配
15.1 malloc 函數和 free 函數
15.2 calloc 函數
15.3 realloc 函數
習題
第16章 結構體類型和用戶定義類型
16.1 用 typedef 說明一種新類型名
16.2 結構體類型
16.3 結構體類型的說明
16.4 結構體類型的變數、數組和指針的定義
16.5 給結構體變數、數組賦初值
16.6 引用結構體類型變數中的數據
16.7 通過結構體組成較復雜的存儲結構
16.8 函數之間結構體變數的數據傳遞
16.8.1 向函數傳遞結構體變數的成員
16.8.2 向函數傳遞結構體變數
16.8.3 傳遞結構體的地址
16.8.4 函數值為結構體類型
16.8.5 函數的返回值可以是指向結構體變數的指針類型
16.9 利用結構體變數構成鏈表
16.9.1 結構體中含有可以指向本結構體的指針成員
16.9.2 動態鏈表的概念
16.9.3 單向鏈表
16.9.4 單向環形鏈表
16.9.5 雙向鏈表
習題
第17章 C 語言中的整型數和整型變數
17.1 十進制數和二、八、十六進制數之間的轉換
17.1.1 十進制數和二進制數之間的轉換
17.1.2 十進制數和八進制數之間的轉換
17.1.3 十進制數和十六進制數之間的轉換
17.1.4 二進制數與八進制數、十六進制數間的轉換
17.2 整數在內存中的存儲形式
17.2.1 正整數
17.2.2 負整數
17.2.3 無符號整數
17.3 C 語言中的整數類型
17.4 C 語言中的整數類型之間的轉換
習題
第18章 共用體、位段結構和枚舉類型
18.1 共用體
18.1.1 共用體類型的說明和變數定義
18.1.2 共用體變數的引用
18.1.3 共用體應用舉例
18.2 位段結構
18.3 枚舉類型
習題
第19章 位運算
19.1 位運算符和位運算
19.1.1 位運算符
19.1.2 位運算符的運算功能
19.2 位運算的簡單應用
習題
第20章 在終端上按格式進行數據的輸入和輸出
20.1 調用 printf() 在終端上按格式進行數據的輸出
20.1.1 printf() 函數的一般調用形式
20.1.2 printf () 函數中常用的格式說明
20.1.3 調用 printf (函數時的注意事項
20.2 調用 scanf() 在終端上按格式進行數據的輸入
20.2.1 scanf() 函數的一般調用形式
20.2.2 scanf () 函數中常用的格式說明
20.2.3 通過 scanf 函數從鍵盤輸入數據
習題
第21章 文件
21.1 文件的概念
21.2 文件指針
21.3 打開文件
21.4 關閉文件
21.5 getc(fgetc)函數和putc(fputc)函數
21.6 判文件結束函數 feof
21.7 fscanf 函數和fprintf函數
21.8 fgets函數和fputs函數
21.9 fread函數和fwrite函數
21.10 文件定位函數
21.10.1 fseek函數
21.10.2 ftell函數
21.10.3 rewind 函數
習題附錄
附錄A C 語言的關鍵字
附錄B 雙目算術運算中兩邊運算量類型轉換規律
附錄C 運算符的優先順序和結合性
附錄D 常用字元與 ASC Ⅱ代碼對照表
附錄E Turbo C 2.0 常用庫函數
附錄F 簡單的上機操作和程序的調試
參考文獻
張長海 陳娟 編