A. c语言程序设计学习辅导的作者简介
谭浩强教授,我国着名计算机教育专家,计算机普及和高校计算机基础教育开拓者之一,现任全国高校计算机基础教育研究会会长。他创造了3个世界纪录:(1)20年来他(及其合作者)共编着出版了140余部计算机着作,此外主编了300多部计算机书籍,是出版科技着作数量最多的入。(2)他编着和主编的书发行量近5000万册,是读者最多的科技作家。(3)他和别人合作编着的《BASIC语言》发行了1250万册,创科技书籍发行量的世界纪录。他善于用读者容易理解的方法和语言说明复杂的概念。许多人认为他“开创了计算机书籍贴近大众的新风”,为我国的计算机普及事业做出了重要的贡献。
B. C语言程序设计课程主讲老师是谁
C语言程序设计主讲老师是昆明“新航线OFFICE”创办人、教师培训师、二级课程高级讲师。授课条理清晰、通俗易懂、风趣幽默。 培训过的课程有:全国计算机等级二级VFP、二级Access、二级MS Office、Office高效办公。独立编写的课程教材有:《Office2010高效办公实例教程》、《新航线Office二级Access教程》。 擅长领域: VFP,Access,C语言,Office,Excel VBA
C. C语言程序设计
#include<stdio.h>
#include<stdlib.h>
intn;
typedefstructstudent{
intnum;
intmingci;
charname[20];
doublea[4];
doublesum;
doubleavreage;
structstudent*next;
}STU;
STU*creat();
voidadd_student(STU*);
voidshow(STU*);
STU*delete_student(STU*);
voidpaiming(STU*);
voidshow_one(STU*s);
intpanan(doublel);
intmain(){
intchoose;
STU*head=creat();
while(1){
printf("1录入信息 ");
printf("2查询学生信息 ");
printf("3删除学生信息 ");
scanf("%d",&choose);
switch(choose){
case1:add_student(head);break;
case2:show(head);break;
case3:head=delete_student(head);break;
default:break;
}
}return0;
}
//创建链表表头
STU*creat(){
n=0;
STU*head;
head=(STU*)malloc(sizeof(STU));
head->next=NULL;
returnhead;
}
//录入学生信息
voidadd_student(STU*s){
STU*p=s;
STU*p1;
while(p->next!=NULL){
p=p->next;
}while(1){
printf("请输入学号:学号为0表示输入结束输入!");
scanf("%d",&p->num);
if(p->num!=0){
n++;
printf("请输入姓名:");
scanf("%s",p->name);
printf("请输入成绩格式C程序设计高等数学英语线性代数:");
scanf("%lf%lf%lf%lf",&p->a[0],&p->a[1],&p->a[2],&p->a[3]);
p->sum=p->a[0]+p->a[1]+p->a[2]+p->a[3];
p->avreage=p->sum/4;
p->mingci=0;
p1=(STU*)malloc(sizeof(STU));
p->next=p1;
p1->next=NULL;
p=p1;
}else
{
printf("录入结束! ");
paiming(s);
break;
}
}
}
//根据学号删除学生信息
STU*delete_student(STU*s){
intnum;
STU*p=s,*p1;
printf("请输入要删除学生的学号:");
scanf("%d",&num);
while(p->next!=NULL){
if(p->num==num&&s==p){
n--;
returnp->next;
}elseif(p->num==num){
n--;
p1->next=p->next;
paiming(s);
returns;
}p1=p;
p=p->next;
}
if(n==0){printf("数据库目前为空,请录入信息! ");}
else{
printf("没有发现你输入的学号! ");}
returns;
}
//显示学生数据库信息
voidshow(STU*s){
STU*head=s;
if(n==0){
printf("数据库为空,请先录入信息! ");
}
else{
while(s->next!=NULL){
printf("学号:%d姓名:%s成绩:%.2lf%.2lf%.2lf%.2lf平均分:%.2lf名次:%d ",s->num,s->name,s->a[0],s->a[1],s->a[2],s->a[3],s->avreage,s->mingci);
s=s->next;
}
show_one(head);
}
}
//对学生按平均分排名
voidpaiming(STU*s){
doublescore[n];
intj,i=0;
STU*head=s;
while(s->next!=NULL){
score[i]=s->avreage;
s=s->next;
i++;
}
doubletemp;
for(i=0;i<n;i++){
for(j=i;j<n;j++){
if(score[i]<score[j]){
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
}
}
for(i=0;i<n;i++){
if(score[i]!=0){
s=head;
while(s->next!=NULL){
if(s->mingci==0){
if(score[i]==s->avreage){
score[i]=0;
s->mingci=i+1;
break;
}
}
s=s->next;
}
}
}}
//单科平均分统计
voidshow_one(STU*s){
doublear[4]={0};
intb[4][4]={{0},{0},{0},{0}};
inti;
while(s->next!=NULL){
for(i=0;i<4;i++){
b[i][panan(s->a[i])]++;
ar[i]+=s->a[i];
}
s=s->next;
}
printf("各科平均分%.2lf%.2lf%.2lf%.2lf ",ar[0]/n,ar[1]/n,ar[2]/n,ar[3]/n);
printf("90-100分%d%d%d%d ",b[0][0],b[1][0],b[2][0],b[3][0]);
printf("80-89分%d%d%d%d ",b[0][1],b[1][1],b[2][1],b[3][1]);
printf("60-79分%d%d%d%d ",b[0][2],b[1][2],b[2][2],b[3][2]);
printf("60分以下%d%d%d%d ",b[0][3],b[1][3],b[2][3],b[3][3]);
}
intpanan(doublel){
if(l>=90&&l<=100)return0;
elseif(l>=80&&l<=89)return1;
elseif(l>=60&&l<=79)return2;
elsereturn3;
}
D. C语言程序设计
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
主要特点编辑
1. C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C语言是结构式语言。结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。
4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。 C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
常用c语言编译器编辑
有Microsoft Visual C++,Borland C++,WatcomC++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,WatcomC++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C,Dev-C++,C-Free,win-tc 等等......
发展过程编辑
C语言的原型ALGOL 60语言(也称为A语言) 。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
为了使UNIX操作系统推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名着《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1987年,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 ,即经典的87 ANSI C。C语言发展迅速, 而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多着名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
1990年,国际化标准组织ISO(Intrernational StandardOrganization)接受了87 ANSI C为ISO C的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则略有差别。
相关特点编辑
概述
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
详细介绍
优点
1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 同时对于不同的编译器也有各种
4、C是结构式语言
结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5、语法限制不太严格,程序设计自由度大
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
6、允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
7、生成目标代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8、适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。
缺点
1. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
E. c语言程序设计
#include <stdio.h>
void main()
{
int a[50], b[50];
int n, i, x;
int count = 0;
scanf("%d", &n);
scanf("%d", &x);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++)
{
if (x != a[i])
{
b[count] = a[i];
count++;
}
}
for (i = 0; i < count; i++)
{
printf("%d ", b[i]);
}
}
F. C语言程序设计
#include <stdio.h>
typedef struct _student
{
int score[5];
}student;
float getAverageByStudent(student s);//一个学生平均分
float getAverageByCourse(const student s[],int n,int courseIndex);//一门课平均分n表示学生个数
void getMaxScoreOfAll(student s[],int n,int* stu,int* courseIndex);//n 表示学生个数
int main(int argc, char **argv)
{
student s[2];//初始化工作请自己完成
int maxStu,maxIndex;
int i=0,j=0;
for (i=0;i<2;i++)
{
for ( j=0;j<5;j++)
{
s[i].score[j]=50;
}
}
for (i=0;i<2;i++)
{
printf("student%d average %f\n",i,getAverageByStudent(s[i]));
}
for(i=0;i<5;i++)
{
printf("couse %d average %f\n",i,getAverageByCourse(s,2,i));
}
getMaxScoreOfAll(s,2,&maxStu,&maxIndex);
printf("highest student %d course %d",maxStu,maxIndex);
return 0;
}
float getAverageByStudent(student s)
{
int total = 0;
int i;
for ( i=0;i<5;i++)
{
total+=s.score[i];
}
return total/5.0;
}
float getAverageByCourse(const student s[],int n,int courseIndex)
{
int total = 0;
int i;
for (i=0;i<n;i++)
{
total+=s[i].score[courseIndex];
}
return (float)total/n;
}
void getMaxScoreOfAll(student s[],int n,int*stu,int* courseIndex)
{
int maxstudent=0;
*stu=0;
*courseIndex=0;
int i,j;
for (i=0;i<n;i++)
{
for ( j=0;j<5;j++)
{
if (maxstudent<s[i].score[j])
{
maxstudent = s[i].score[j];
*stu = i;
*courseIndex = j;
}
}
}
}
这里只初始化了2个学生的成绩,请自行补充
G. C语言程序设计
#include<stdio.h>
int main()
{
int a[10],b[10],i,len=0;
printf("请输入10个数:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(0==a[i]%2)
b[len++]=a[i];
}
printf("你输入的数:");
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("%d\n",a[9]);
printf("其中的偶数有:");
for(i=0;i<len-1;i++)
printf("%d ",b[i]);
printf("%d\n",b[len-1]);
return 0;
}
H. C语言程序设计的作者
现在用的比较多的C语言教材是谭浩强编着的,清华大学出版社出版
我们学校选的是杨路明主编的《C语言程序设计》
现在的C语言教程都差不多,主要看你能不能认真看透一本书
I. C语言程序设计
5.3 if语句
用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。
5.3.1 if语句的三种形式
1. 第一种形式为基本形式:if
if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。
【例5.3】
main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max<b) max=b;
printf("max=%d",max);
}
本例程序中,输入两个数a,b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。
2. 第二种形式为: if-else
if(表达式)
语句1;
else
语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。
其执行过程可表示为下图。
【例5.4】
main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}
输入两个整数,输出其中的大数。
改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
3. 第三种形式为if-else-if形式
前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句,其一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。 if-else-if语句的执行过程如图3—3所示。
【例5.5】
#include"stdio.h"
main(){
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
elseif(c>='0'&&c<='9')
printf("This is a digit\n");
elseif(c>='A'&&c<='Z')
printf("This is a capital letter\n");
elseif(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
}
本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。 在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。 这是一个多分
支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。例如输入为“g”,输出显示它为小写字符。
4. 在使用if语句中还应注意以下问题:
1) 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。
例如:
if(a=5) 语句;
if(b) 语句;
都是允许的。只要表达式的值为非0,即为“真”。
如在:
if(a=5)…;
中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。
又如,有程序段:
if(a=b)
printf("%d",a);
else
printf("a=0");
本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。
2) 在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。
3) 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
例如:
if(a>b)
{a++;
b++;}
else
{a=0;
b=10;}
5.3.2 if语句的嵌套
当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。
其一般形式可表示如下:
if(表达式)
if语句;
或者为
if(表达式)
if语句;
else
if语句;
在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。
例如:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
其中的else究竟是与哪一个if配对呢?
应该理解为:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
还是应理解为:
if(表达式1)
if(表达式2)
语句1;
else
语句2;
为了避免这种二义性,C语言规定,else 总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。
【例5.6】
main(){
int a,b;
printf("please input A,B: ");
scanf("%d%d",&a,&b);
if(a!=b)
if(a>b) printf("A>B\n");
else printf("A<B\n");
else printf("A=B\n");
}
比较两个数的大小关系。
本例中用了if语句的嵌套结构。采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择即A>B、A<B或A=B。这种问题用if-else-if语句也可以完成。而且程序更加清晰。因此,在一般情况下较少使用if语句的嵌套结构。以使程序更便于阅读理解。
【例5.7】
main(){
int a,b;
printf("please input A,B: ");
scanf("%d%d",&a,&b);
if(a==b) printf("A=B\n");
else if(a>b) printf("A>B\n");
else printf("A<B\n");
}