所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)Kernighan和Ritchie的《TheCProgrammingLanguage》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《CReferenceManual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《PointersonC》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《CTrapsandPitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《ExpertCProgramming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。初学者可以看看这文章写的不错。下面是链接。
#include "graphicsh"
#define SIZE 100
#include <conioh>
#include<stdioh>
int N;
struct student
{
int No ;
int age;
char name[10];
char sex;
int computerscore;
int Englishscore;
int Mathscore;
int Sum[10];
int aver[10];
char Dengji[10];
}stud[SIZE];
FILEfp;
int i;
int j;
int m;
int n;
int o;
void input()
{
i=1;
printf("please input student data\n");
while(i<=N)
{
printf("No :");
scanf("%d",&stud[i]No );
printf("name:");
scanf("%s",stud[i]name);
printf("age");
scanf("%d",&stud[i]age);
printf("sex");
getchar();
scanf("%c",&stud[i]sex);
printf("computerscore:");
scanf("%d",&stud[i]computerscore);
printf("Englishscore:");
scanf("%d",&stud[i]Englishscore);
printf("Mathscore:");
scanf("%d",&stud[i]Mathscore);
i++;
}
}
chuli(struct student stud[])
{
int k,m;
struct student t;
int Sum[SIZE],aver[SIZE];
for(i=1;i<=N;i++)
Sum[i]=stud[i]computerscore+stud[i]Englishscore+stud[i]Mathscore;
for(i=1;i<=N;i++)
aver[i]=Sum[i]/3;
for(i=1;i<=N;i++)
{
k=i;
{
for(j=i+1;j<=N;j++)
if(Sum[i]<Sum[j])
k=j;
if(k!=i)
{
t=stud[i];stud[i]=stud[k];stud[k]=t;
m=Sum[i];Sum[i]=Sum[k];Sum[k]=m;
n=aver[i];aver[i]=aver[k];aver[k]=n;
}
}
}
for(i=1;i<=N;i++)
{
if(aver[i]>=90)
{printf("%d\t%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\tA\n",stud[i]No ,stud[i]name,stud[i]age,stud[i]sex,stud[i]computerscore,stud[i]Englishscore,stud[i]Mathscore,Sum[i],aver[i]);
printf("\t\t\t\t\twelldone!please go on!\n");
}
else if(aver[i]>=80)
printf("%d\t%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\tB\n",stud[i]No ,stud[i]name,stud[i]age,stud[i]sex,stud[i]computerscore,stud[i]Englishscore,stud[i]Mathscore,Sum[i],aver[i]);
else if(aver[i]>=70)
printf("%d\t%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\tC\n",stud[i]No ,stud[i]name,stud[i]age,stud[i]sex,stud[i]computerscore,stud[i]Englishscore,stud[i]Mathscore,Sum[i],aver[i]);
else if(aver[i]>=60)
printf("%d\t%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\tD\n",stud[i]No ,stud[i]name,stud[i]age,stud[i]sex,stud[i]computerscore,stud[i]Englishscore,stud[i]Mathscore,Sum[i],aver[i]);
else
{
printf("%d\t%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\tE\n",stud[i]No ,stud[i]name,stud[i]age,stud[i]sex,stud[i]computerscore,stud[i]Englishscore,stud[i]Mathscore,Sum[i],aver[i]);
printf("\t\t\t\t\tYou should work hard!\n");
}
}
}
Maxcomputerscore(struct student stud[])
{
int i=0,Max;
Max=stud[i]computerscore;
m=stud[i]No ;
for(i=1;i<N;i++)
if(Max<stud[i]computerscore)
{
Max=stud[i]computerscore;
m=stud[i]No ;
}
printf("Maxcomputerscore:");
printf("Max=%d,m=%d\n",Max,m);
}
Maxenglishscore(struct student stud[])
{
int i,Max;
i=0;
Max=stud[i]Englishscore;
m=stud[i]No ;
for(i=1;i<N;i++)
if(Max<stud[i]Englishscore)
{
Max=stud[i]Englishscore;
m=stud[i]No ;
}
printf("Max Englishscore:");
printf("Max=%d,m=%d\n",Max,m);
}
MaxMathscore(struct student stud[])
{
int i=0;
int m;
int Max;
Max=stud[i]Mathscore;
m=stud[i]No ;
for(i=1;i<N;i++)
if(Max<stud[i] Mathscore)
{
Max=stud[i]Mathscore;
m=stud[i]No ;
}
printf("MaxMathscore:");
printf("Max=%d,m=%d\n",Max,m);
}
main()
{
char ch;
int i,k,driver=DETECT,mode;
initgraph(&driver,&mode,"c:\\tc");
system("cls");
printf("\t\t\n");
setbkcolor(BLUE);cleardevice();
setfillstyle(1,2);
setcolor(YELLOW);
rectangle(100,100,540,380);
floodfill(50,50,14);
setcolor(12);
settextstyle(1,0,8);
outtextxy(130,150,"welcome!");
printf("\t\t\t\t\t\n");
printf("\t\t please input the number of students!\t\t\t\t");
scanf("%d",&N);
system("cls");
printf("\t\t---------------------------------------\n");
printf("\t\tT:input the student data \n");
printf("\t\t\C:have a look at the data \n");
printf("\t\tL:get every subject the highest score \n");
printf("\t\tJ:stored information \n");
printf("\t\tX:quit the program \n");
printf("\t\t---------------------------------------\n");
printf("please input your choise:");
while((ch=getchar())!='w')
{
switch(ch)
{
case'T':input();
break;
case'C':
chuli(stud);
break;
case'L':
Maxcomputerscore(stud);
Maxenglishscore(stud);
MaxMathscore(stud);
break;
case'X':exit(o);
case'J':
fp=fopen("studenttxt","w+");/创建一个sutdentxt文本文件/
if(!fp)
{
printf("cannot open the file");
return;
}/在文件头写入包含的学生信息/
for(i=0;i<N;i++)
fprintf(fp,"%d\t%s\t%d\t%c\t%d\t%d\t%d\t%d\t%d\t\n",stud[i]No ,stud[i]name,stud[i]age,stud[i]sex,stud[i]computerscore,stud[i]Englishscore,stud[i]Mathscore);
fclose(fp);/写完后关闭文件/
break;
default: printf("\nplease input the right word:\nTCLJX\n");
}
printf("\n--------------over------------------------------\n");
}
}
以上就是关于k&r的c程序设计语言才是经典吧,怎么有人说成c语言程序设计还有其他书全部的内容,包括:k&r的c程序设计语言才是经典吧,怎么有人说成c语言程序设计还有其他书、c语言程序程序设计、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)