《C程序设计语言(第2版·新版)》([美] Brian W Kernighan)电子书网盘下载免费在线阅读
sejp
书名:C程序设计语言(第2版·新版)
作者:[美] Brian W Kernighan
译者:徐宝文
豆瓣评分:94
出版社:机械工业出版社
出版年份:2004-1
页数:258
内容简介:
在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书作者是C语言的设计者之一Dennis M Ritchie和著名计算机科学家Brian W Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。
原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。原著第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。
对于计算机从业人员来说,本书是一本必读的程序设计语言方面的参考书。
作者简介:
Brian W Kernighan,贝尔实验室计算科学研究中心高级研究人员,著名的计算机科学家。参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的著作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。
Dennis M Ritchie,1967年加入贝尔实验室。他和 Ken L Thompson 两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们还设计并实现了UNIX *** 作系统。正是由于这两项巨大贡献,Dennis M Ritchie 于1983年获得了计算机界的最高奖——图灵奖。此外,他还获得了ACM、IEEE、贝尔实验室等授予的多种奖项。
#include <stdioh>
#include<mathh>
int main()
{
float a=00,b=00,c=00;
float X1=00,X2=00,S;
printf("Enter a,b,c:");
if((scanf("%f,%f,%f",&a,&b,&c))==2)
{
X1=-a/b;
printf("X=%f\n",X1);
}
else
{
S=bb-4ac;
if(S>=0)
{
X1=((-b)+sqrt(S))/(2a);
X2=((-b)-sqrt(S))/(2a);
printf("X1=%f,X2=%f\n",X1,X2);
}
else
{
X1=((-b)+sqrt(-S))/(2a);
X2=((-b)-sqrt(-S))/(2a);
printf("X1=%fi,X2=%fi\n",X1,X2);
}
}
return 0;
}
楼主你好这是我的专周做的我也是大一的你可以稍加修改就好很适合大一的
#include <stdioh>
#include <conioh>
#include <stringh> //包含使用strcmp的头文件
#include "baohanh"
void main()
{
int chg=1,n;
printf("\t\t欢迎使用本管理系统,为了您的正常使用请在Debug下使用\n");
while(chg)
{
Menu();
scanf("%d",&n);
switch(n)
{
case 1:
Infobase(); //信息维护
break;
case 2:
Find(); //信息查询
break;
case 3:
InfoStat(); //成绩统计
break;
case 4:
Comp();
break; //成绩排序
case 0:
chg=0; //退出菜单
printf("谢谢使用!再见\n");
break;
default:
printf("选择错误(0~4)请重新输入\n");
}
}
getch();
}
/主菜单画面/
void Menu()
{
printf("\t\t\t\n");
printf("\t\t\t \n");
printf("\t\t\t 主菜单 \n");
printf("\t\t\t \n");
printf("\t\t\t\n");
printf("\t\t\t 1 信息维护\n");
printf("\t\t\t 2 信息查询\n");
printf("\t\t\t 3 成绩统计\n");
printf("\t\t\t 4 成绩排序\n");
printf("\t\t\t 0 退出菜单\n");
}
/信息维护/
void Infobase()
{
int n,chg=1;
while(chg)
{
printf("\t\t\t1 录入学生信息\n");
printf("\t\t\t2 修改学生信息\n");
printf("\t\t\t3 删除学生信息\n");
printf("\t\t\t0 回到主菜单\n");
scanf("%d",&n);
switch(n)
{
case 1:
Infobase_add(); //录入信息
break;
case 2:
Infobase_amend(); //修改信息
break;
case 3:
Delete(); //删除信息
case 0:
chg=0; //退回主菜单
break;
default :
printf("\t选择错误请重新输入\n:");
}
}
}
/录入信息/
void Infobase_add()
{
Student stu[1]; //定义Student型数组变量
FILE fp=NULL; //声明文件指针
fp=fopen("专周txt","a"); //以追加方式打开
printf("\t输入姓名 性别 学号 成绩(数学 外语 C语言)\n");
scanf("%s%s%d%d%d%d", //接收输入
stu[0]name,
stu[0]sex,
&stu[0]ID,
&stu[0]math,
&stu[0]english,
&stu[0]computer_C);
stu[0]sum=stu[0]english+stu[0]computer_C+stu[0]math;//计算总分
if(fprintf(fp," %s %s %d %d %d %d %d \n",//写入磁盘防错处理
stu[0]name,
stu[0]sex,
stu[0]ID,
stu[0]math,
stu[0]english,
stu[0]computer_C,
stu[0]sum)==0)
{
printf("写入失败");
}
fclose(fp); //关闭文件指针
}
/修改信息/
void Infobase_amend()
{
int i,j;
char ch[10]; //声明字符数组以保存需修改的姓名
Student stu[50]; //声明Student型数组
FILE fp=NULL; //声明文件指针
printf("\t输入需修改学生的名字");//提示输入
scanf("%s",ch); //接收输入姓名
fp=fopen("专周txt","rt+"); //以可读写方式打开
for(i=0;;i++)
{
fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C,
&stu[i]sum);
if(strcmp(stu[i]name,ch)==0) //判断是否查找所需
{
rewind(fp); //指针移到文件开头
printf("\t输入修改姓名 性别 学号 成绩(数学 外语 C语言)\n");
scanf("%s%s%d%d%d%d", //接收输入
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C);
j=i;
stu[i]sum=stu[i]english+stu[i]computer_C+stu[i]math;
for(i=0;i<j;i++)
{
fprintf(fp," %s %s %d %d %d %d %d \n",//原数据写入磁盘
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum);
}
fprintf(fp," %s %s %d %d %d %d %d ",//将修改数据写入磁盘
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum);
fclose(fp); //关闭文件指针
break;
}
}
}
/删除信息/
void Delete()
{
int i,j,k=0;
char ch[10]; //声明字符数组以保存需删除的姓名
Student stu[50]; //声明Student型数组
FILE fp=NULL,fp1=NULL; //声明文件指针
printf("\t输入需删除学生的名字"); //提示输入
scanf("%s",ch); //接收输入姓名
fp=fopen("专周txt","rt+"); //以可读写方式打开
for(i=0;!feof(fp);i++)
{
fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C,
&stu[i]sum);
if(strcmp(stu[i]name,ch)==0) //判断是否查找所需
j=i;
}
rewind(fp); //指针移动到开头
for(;j<i-1;j++)
{
stu[j]=stu[j+1]; //覆盖需删除的后依次前移
}
for(i=0;i<j;i++)
fprintf(fp," %s %s %d %d %d %d %d \n", //写入磁盘
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum);
}
fclose(fp);
/信息查询/
void Find()
{
int n,chg=1; //声明chg变量用以循环
while(chg)
{
printf("\t\t\t1 按学号查询\n");
printf("\t\t\t2 按姓名查询\n");
printf("\t\t\t0 退回主菜单\n");
scanf("%d",&n);
switch(n)
{
case 1:
Find_ID(); //调用以学号查找的函数
break;
case 2:
Find_name(); //调用以姓名查找的函数
break;
case 0:
chg=0; //退回主菜单
break;
default :printf("\n选择错误请重新输入\n");
}
}
}
/按学号查找/
void Find_ID()
{
int n,i;
Student stu[50]; //声明Student型数组变量
FILE fp=NULL; //声明文件指针
printf("请输入学号"); //提示接收输入
scanf("%d",&n); //接收输入学号
fp=fopen("专周txt","rt"); //以只读方式打开
for(i=0;!feof(fp);i++)
{
if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C,
&stu[i]sum)==0)
printf("读取失败");
if(stu[i]ID==n) //判断是否需查找学生
{
printf("查找到:%s 性别%s 学号%d 数学%d 外语%d C语言%d 总分%d\n",//输出查找目标
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum);
break;
}
if(feof(fp)) //处理未找到情况
{
printf("无此学生信息\n");
}
}fclose(fp); //关闭文件指针
}
/按姓名查找/
void Find_name()
{
int i;
char ch[10]; //声明字符数组以储存查找姓名
Student stu[50]; //声明Student型数组变量
FILE fp=NULL; //声明文件指针
printf("请输入姓名\n"); //提示输入
scanf("%s",ch); //接收输入姓名
fp=fopen("专周txt","rt"); //以只读方式打开
for(i=0;!feof(fp);i++) //循环,以文件指针到末尾结束循环
{
fscanf(fp," %s %s %d %d %d %d %d ",//从磁盘读入内存
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C,
&stu[i]sum);
if(strcmp(stu[i]name,ch)==0) //判断是否查找学生
{
printf("查找到:%s 性别%s 学号%d 数学%d 外语%d C语言%d 总分%d\n",//输出查找目标
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum);
break;
}
if(feof(fp)) //处理未找到情况
{
printf("无此学生信息\n");
}
}fclose(fp); //关闭文件指针
}
/信息统计/
void InfoStat()
{
int n,m,i,count=0;
char ch[15]; //声明字符数组保存课程名
Student stu[60]; //声明Student型数组变量
FILE fp=NULL; //声明文件指针
fp=fopen("专周txt","rt"); //以只读方式打开
printf("输入课程名(数学 外语 C)和分数段(格式:数学 x1-x2)\n");
scanf("%s",ch); //接收输入课程名
scanf("%d-%d",&n,&m); //接收输入分数段
for(i=0;!feof(fp);i++) //以文件指针到文件末尾结束循环
{
if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C,
&stu[i]sum)==0)
printf("读取失败");
count++;
}
fclose(fp); //关闭文件指针
/以下输出查找目标/
printf("姓名 性别 %s 总分\n",ch);
for(i=0;i<count;i++)
if(strcmp(ch,"数学")==0 && stu[i]math>=n && stu[i]math<=m)
{
printf("%s\t%s\t%d\t%d\n",
stu[i]name,
stu[i]sex,
stu[i]math,
stu[i]sum);
}
for(i=0;i<count;i++)
if(strcmp(ch,"外语")==0 && stu[i]english>=n && stu[i]english<=m)
{
printf("%s\t%s\t%d\t%d\n",
stu[i]name,
stu[i]sex,
stu[i]english,
stu[i]sum);
}
for(i=0;i<count;i++)
if(!strcmp(ch,"C") && stu[i]computer_C>=n && stu[i]computer_C<=m)
{
printf("%s\t%s\t%d\t%d\n",
stu[i]name,
stu[i]sex,
stu[i]english,
stu[i]sum);
}
}
/成绩排序/
void Comp()
{
int i,k,j,count=0;
char ch[15]; //声明字符数组保存课程名
Student stu[50],temp; //声明Student型变量
FILE fp=NULL; //声明文件指针
printf("请输入需要排序的课程名"); //提示输入
scanf("%s",ch); //接收输入的课程名
fp=fopen("专周txt","rt"); //以读方式打开文件
for(i=0;!feof(fp);i++) //以文件指针到末尾结束循环
{
if(fscanf(fp," %s %s %d %d %d %d %d \n", //防止读入内存失败
stu[i]name,
stu[i]sex,
&stu[i]ID,
&stu[i]math,
&stu[i]english,
&stu[i]computer_C,
&stu[i]sum)==0)
printf("读取失败");
count++; //记录文件内学生人数
}
fclose(fp); //关闭文件指针
if(strcmp(ch,"数学")==0)
{
for(i=0;i<count-1;i++) //以下为以降序顺序排序
{
k=i;
for(j=i+1;j<count;j++)
if(stu[k]math<stu[j]math)
k=j;
if(i!=k)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("姓名 性别 学号 数学 外语 C语言 总分 数学成绩名次\n");
for(i=0;i<count;i++)
{
printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum,i+1);
}
}
if(strcmp(ch,"外语")==0)
{
for(i=0;i<count-1;i++) //以下为降序顺序排序
{
k=i;
for(j=i+1;j<count;j++)
if(stu[k]english<stu[j]english)
k=j;
if(i!=k)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("姓名 性别 学号 数学 外语 C语言 总分 外语成绩名次\n");
for(i=0;i<count;i++)
{
printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum,i+1);
}
}
if(strcmp(ch,"C")==0)
{
for(i=0;i<count-1;i++) //以下为降序顺序排序
{
k=i;
for(j=i+1;j<count;j++)
if(stu[k]computer_C<stu[j]computer_C)
k=j;
if(i!=k)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("姓名 性别 学号 数学 外语 C语言 总分 C语言成绩名次\n");
for(i=0;i<count;i++)
{
printf("%-6s %4s %d %d %d %d %d %d\n", //输出信息
stu[i]name,
stu[i]sex,
stu[i]ID,
stu[i]math,
stu[i]english,
stu[i]computer_C,
stu[i]sum,i+1);
}
}
}以下是baohan头文件
void Menu(); //主菜单
void Infobase(); //信息维护
void Find(); //信息查询
void InfoStat(); //成绩统计
void Comp(); //成绩排序
void Find_ID(); //以学号查找
void Find_name(); //以姓名查找
void Infobase_add(); //录入信息
void Infobase_amend(); //修改信息
void Delete(); //删除信息
typedef struct //重命名学生信息结构体
{
char name[10]; //姓名
char sex[3]; //性别
int ID; //学号
int math; //数学成绩
int english; //英语成绩
int computer_C; //计算机C语言成绩
int sum; //成绩总和
}Student;
以上就是关于《C程序设计语言第2版·新版》epub下载在线阅读全文,求百度网盘云资源全部的内容,包括:《C程序设计语言第2版·新版》epub下载在线阅读全文,求百度网盘云资源、c语言设计编写程序、我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)