① 吉林大学《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 简单的上机操作和程序的调试
参考文献
张长海 陈娟 编