《C语言程序设计》教学辅导一.docx

上传人:b****5 文档编号:7478041 上传时间:2023-01-24 格式:DOCX 页数:12 大小:26.96KB
下载 相关 举报
《C语言程序设计》教学辅导一.docx_第1页
第1页 / 共12页
《C语言程序设计》教学辅导一.docx_第2页
第2页 / 共12页
《C语言程序设计》教学辅导一.docx_第3页
第3页 / 共12页
《C语言程序设计》教学辅导一.docx_第4页
第4页 / 共12页
《C语言程序设计》教学辅导一.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》教学辅导一.docx

《《C语言程序设计》教学辅导一.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》教学辅导一.docx(12页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》教学辅导一.docx

《C语言程序设计》教学辅导一

《C语言程序设计》教学辅导

(一)

---第1章C语言概述

主要内容:

一、C语言特性

二、C语言字符集

三、C语言单词

四、C语句分类

五、C函数的概念

六、C程序的结构

七、标准输出函数printf()和标准输入函数scanf()的使用

八、VC++6.0集成开发环境简介

一、C语言特性(为何学习C语言)

(1)C语言是最通用和流行的一种计算机高级程序设计语言。

(2)C语言是目前高校普遍开设的适应于计算机程序设计入门的语言。

(3)C语言具有丰富的语法规则,使用它能够很方便地编写出结构化和模块化的程序。

(4)学习C语言之后,能够为以后学习C++、JAVA等面向对象的程序设计语言奠定坚实的基础。

(5)C语言上机环境方便,在各种C和C++集成开发环境中都可以上机输入、调试和运行C语言程序。

本课程以微软(Microsoft)公司开发的、与Windows操作系统完全兼容的VisualC++6.0集成开发工具为上机操作环境,介绍C语言知识和上机操作过程。

二、C语言字符集

同汉语和英语等自然语言一样,C语言也具有相应的语法结构和构成规则,具有字符、单词、语句、文章(程序)的基本成分和结构,由字符可以构成单词,由单词可以构成语句,由语句可以构成段落(函数模块),由函数模块可以构成程序。

在C语言中使用的所有字符(符号),可归结为以下几种类别:

●大、小写英文字母(52个):

A-Z,a-z,大小写不等效,如A和a不同的字符。

●十进制数字符号(10个):

0-9。

●标点符号:

逗号(,)、分号(;)、单引号(’)、双引号(”)、冒号(:

)、空格()、左花括号({)、右花括号(})、回车(Enter)等。

半角西文符号

●单字符运算符号:

左右圆括号()、左右方括号[]、加(+)、减(-)、乘(*)、除(/)、取余数(%)、小数点(.)、大于(<)、等于(=)、小于(>)、叹号(!

)、破折号(~)、和号(&)、尖号(^)、分割符(|)、问号(?

)。

●特殊用途的符号:

井字号(#)、反斜线(\)、下划线(_)。

●在字符串中可以使用任何字符:

包括汉字、图形字符等,不受语法限制。

三、C语言单词

有一些C语言的单词就是单个字符本身,如大于号(>)、逗号(,)、数字2、变量标识符x等,有些单词由连续若干个字符组合而成。

C语言中的单词是基本的语法单位,可以分为以下几种类别:

●保留字如int,char,if,for等,它是英文单词或其缩写,被赋予一定的语法含义,表示相应的功能。

如int是整型变量的说明符,其后出现的标识符为整型变量。

保留字又称为关键字。

●标识符如x2,Time,a,maxMage等,它是由英文字母开头的字母数字串,通常在C语言程序中用作变量、函数、用户类型、文件等的名字。

如可用标识符length表示一种物体的长度,用标识符age表示一个人的年龄。

●常量在运算中不变的量,即不能被重新赋予新值的对象。

Ø常数如5、23、-256、2.307等,能够用它们直接进行各种算术运算。

ØASCII码字符为了区别于常数,必须把它用单引号括起来。

如'a'、'D'、'5'、'+'、'%'等,由它组成字符串。

Ø字符串一个或多个字符,包括汉字等全角字符,用双引号括起来。

如"5"、"apple"、"姓名"、"A+B="等。

通常用一个字符串来标识一种事物,如一个人的姓名、一场会议的名称、一件商品的编号等。

●运算符能够进行算术运算、关系(比较)运算、字符串运算、逻辑运算等的运算符号。

若按运算符中包含的字符个数来区分,则有以下几种:

Ø单字符运算符如+、-、*、/、>、<、=等。

Ø双字符运算符如>=、<=、==、++、--、&&等。

Ø三字符运算符如>>=、<<=等。

●标点符号每个标点符号都可以单独作为单词使用。

如逗号、分号、冒号等。

四、C语句分类

C++语言中的语句非常丰富,可以分为以下几种类型:

1.用户类型定义语句

可以把一个标识符定义为一种数据类型,以后可以用这个类型标识符来定义此种类型的变量。

2.变量定义语句

就是把标识符说明为变量,如“intx;”就把x说明为整数变量。

在变量定义语句中包含有类型标识符和变量标识符两个部分,如int就属于类型标识符,x就属于变量标识符,即变量名。

3.函数原型语句

又叫做函数声明语句或函数说明语句。

在程序中使用的函数分为函数定义、函数声明和函数调用这三个方面。

通常函数声明在程序或文件的开始,函数定义可以在程序中的任何位置,它是一个独立功能的程序模块,函数调用存在于表达式之中,只有其函数被声明后,才能够进行函数调用。

4.表达式语句

当在一个表达式后加上分号则就构成了一个表达式语句。

如“x=3*x+5;”就是一个赋值表达式语句,它把3乘于x加5的值又赋给x,若执行这条语句前x的值为8,则执行后x的值变为29。

5.复合语句

是由一对花括号括起来的一条或若干条所组成。

如“{intx;x=10;}”就是一条复合语句,它包含有两条语句,一条是定义x的变量说明语句,另一条是给x赋值10的赋值语句。

6.选择类语句

就是根据已知条件从多个分支语句块中选择一个满足条件的语句块执行,它包括if语句和switch语句两种。

if语句又叫条件语句,switch语句又叫开关语句。

如“if(x>=60)cn=1;elsecn=0;”,就是一条条件语句,执行时首先判断x是否大于等于60,若是则把1赋给变量cn,否则把0赋给变量cn。

7.循环类语句

就是根据所设定的循环条件控制一个程序段反复执行。

它包括for语句、while语句和do语句三种,分别称它们为for循环、while循环和do循环。

如“for(i=1;i<=10;i++)s=s+i;”就是一条简单的for循环语句,它使得循环体语句“s=s+i;”反复执行10次,每次把i的值都加到s变量上,因为i的值从1变化到10,所以就把1到10的值即55加到了s上,也就是说,通过执行这条for语句,使s的值比原来增加了55。

8.跳转类语句

就是改变程序从上到下顺序执行语句的次序,转移到其他指定的位置执行,而不是接着执行它的下一条语句。

goto语句、return语句、break语句、continue语句等都是跳转类语句。

如在程序中执行到“gotoL1;”语句时,其紧接着要执行的语句是标记有L1位置的语句,而不是它下面位置上的一条语句。

若在程序中执行一条非跳转类的语句后,则紧接着要执行的是它后面相邻的一条语句。

五、C函数的概念

1.函数分类

从大的方面分为系统函数和用户函数两大类。

Ø系统函数由C语言系统内部的函数库提供,用户可以直接调用,系统函数的所有函数原型,都被组织到相应的系统头文件当中,如math.h就是一个系统头文件,它包含有系统函数中的所有数学函数的原型,如求绝对值函数、求平方根函数的原型等。

Ø用户函数是指由用户自己编写代码而定义的函数,如用户可以编写和定义一个求三个数中最大值的函数,当调用该函数时,就能从用户给出的三个数中挑选出最大者并返回。

从函数处理数据的类型分类

可以把函数分为数值函数、日期与时间函数、逻辑函数、字符串函数、存储空间分配函数、文件函数、输入与输出函数等许多种。

2.C头文件

C语言头文件有系统头文件和用户头文件之分。

系统头文件是在C语言系统内已经存在的头文件,用户可以通过#include命令包含它而直接使用,用户头文件由用户根据编程需要而建立,也通过#include命令包含它而被使用。

无论是哪种头文件,其文件的扩展名都为.h。

如stdio.h就是一个系统头文件,其中包含有进行数据从键盘输入和向显示器屏幕输出的系统函数的原型,当在一个程序中需要从键盘输入数据或向屏幕输出数据时,必须通过#include命令包含这个头文件。

C头文件中包含的内容一般为在程序中需要使用的数据类型的定义、常量的定义、函数原型(函数声明)语句等。

在一个程序文件中使用一个头文件时,需要使用#include包含命令。

命令格式:

#include<头文件名>

#include"头文件名"

当使用尖括号把头文件名括起来时,表示为系统头文件;当使用双引号把头文件名括起来时,表示为用户自己建立的头文件。

在#include命令的后面不仅可以包含头文件,也可以包含一般的程序文件,即扩展名为.c的程序文件。

当编译一个程序文件时,若遇到的是#include包含命令,则就把该命令替换为所包含文件的全部内容。

因此可以使用#include命令在一个文件中包含另外的文件。

一个#include命令只包含一个文件,要使用另外多个文件必须同时使用多个#include命令。

带井字符开头的命令称做编译预处理命令。

3.C语言中函数的定义格式

<函数类型><函数标识符>(<参数表>)<函数体>

一个函数通常都要返回一个值,值的类型就是函数定义中的函数类型,函数标识符就是给函数起的名字,函数声明语句和函数调用表达式中都需要使用它,参数表给出若干个用逗号分开的变量说明,是函数运算中的自变量,函数体是函数的执行部分,即对自变量进行运算的过程,它由一对花括号括起来的一条复合语句。

例如:

“intf1(intn){intp;p=n*n*n;returnp;}”就是一个函数定义,函数类型,又叫函数返回类型为整型int,函数名为f1,函数参数为整型变量n,函数体包含有3条语句,第1条定义p为整型变量,第2条把n的立方值赋给p,第3条返回p的值并结束函数。

若调用该函数时给自变量n传送的值为5,则函数执行后的返回值为125。

4.主函数

在每个C语言程序中,不管包含有多少个程序文件,也不管总共包含有多少个函数,则用户必须在其中的一个程序文件中定义唯一的一个主函数,它不是系统函数,而是用户定义的函数,其函数名规定为main。

当执行一个程序时,将首先查找并自动调用执行这个主函数。

在一个程序中有且仅有一个主函数,它是程序执行的唯一入口。

主函数定义的格式与一般函数相同,只是对函数名作了限制,即必须使用标识符main作为函数名。

另外,主函数的返回类型通常标识为空类型void,表明不返回一个值,其参数表也标识为空void,即不含有自变量。

所以主函数的一般格式为:

voidmain(void){语句序列}

在一些教材中,也时常把主函数的返回类型定义为int类型,这时在主函数的函数体的最后一条语句必须使用“return0;”结束。

5.使用主函数举例

#include//编译预处理包含命令

voidmain(void)//函数头

{//向下是函数体

printf("C语言程序的例子!

\n");//标准输出函数,'\n'表示一个换行

}

该主函数的函数体中只包含有一条语句,它是一条函数调用语句,printf标识符是函数名,它是C语言系统内定义的标准输出函数,其函数声明包含在stdio.h头文件中,括号内的字符串是进行函数调用的实际参数,该函数调用将把这个字符串的内容输出到一个屏幕窗口中。

当在计算机上输入和运行这个程序时,将在一个屏幕输出窗口显示出如下内容:

C语言程序的例子!

//输出内容

Pressanykeytocontinue//运行结束提示

其中第1行信息是主函数运行的结果,第2行信息是系统在结束主函数运行前给出的提示信息,当用户按下任一键后将关闭输出窗口,返回到C语言编辑屏幕中。

六、C程序的结构

C语言程序构成:

一个C语言程序由一个或多个程序文件所构成,每个程序文件的扩展名为.c,每个程序文件是一个独立的编译单位,每个程序是一个独立的执行单位。

当然在每个程序文件中通过使用#include包含命令可以包含一个或多个头文件,还可以包含一个或多个程序文件。

在每个程序中,只能包含并且必须包含一个命名为main的主函数,该主函数所在的程序文件称为主文件,其他的程序文件称为次文件或一般文件。

每个程序文件可以包含0个、一个或若干个用户定义的函数。

当然若需要调用C语言系统内部的函数时,则必须通过#include命令包含相应的系统头文件。

总之一个C语言程序:

一个主程序文件,0个、1个或多个一般程序文件。

程序中的注释:

在一个程序中的任何位置都可以加注释内容,以便能够使他人很好的阅读程序。

若加入的注释内容在一行的后面并且不需要换行,则注释内容应以双斜线“//”开始。

若需要换行,或插入在程序行内部则注释内容应以斜线加星号“/*”开始,以星号加斜线“*/”结束。

程序举例1:

#include//包含命令

intAdd(intx,inty);//Add函数原型声明

intmain(void)//主函数

{

inta;

a=Add(3,4);

printf("a=%d\n",a);

return0;

}

intAdd(intx,inty)//Add函数定义

{

intz=x+y;returnz;//返回x+y的和

}

该程序的主函数包含4条语句,第1条说明整型变量a,第2条调用Add函数,把常数3和4分别传送给函数参数x和y,计算出相加的和7,返回后赋给变量a,第3条输出a的值7和一个换行符,第4条语句返回0,结束主函数的执行过程,回到C语言程序的开发界面。

程序举例2:

#include//进行标准I/O操作需要包含头文件stdio.h

#include//调用数学函数需要包含头文件math.h

/*以下是主函数定义*/

voidmain()//主函数头

{//向下为函数体

doublex,y,z;//定义三个实数变量

x=5.0;//给变量x赋值为常数5.0

y=pow(x,3);//计算x3,其值赋给y,求x3

z=sqrt(x);//计算x的平方根,其值赋给z,求

printf("%5.2Lf%5.2Lf%5.2Lf\n",x,y,z);//输出x,y,z的值

}

输出结果:

5.00125.002.24

Pressanykeytocontinue

程序举例3:

#include/*进行标准I/O操作需要包含头文件stdio.h*/

/*以下是主函数定义*/

voidmain()/*主函数头*/

{//向下为函数体

intx,y,z,w;/*定义四个整型变量*/

scanf("%d%d%d",&x,&y,&z);//从键盘上为x,y,z输入数据

w=x+y+z;//把x+y+z的值赋给变量w

printf("%d%d%d%d\n",x,y,z,w);//输出x,y,z,w的值

}

程序运行结果如下:

234//键盘输入

2349

Pressanykeytocontinue

七、标准输出函数printf()和标准输入函数scanf()的使用

在C语言系统中,利用标准输入和输出设备即键盘和显示器进行输入和输出数据的系统函数有许多,必要时应当查找相应的C语言函数库手册。

这里只介绍两个最常用的函数,即printf()和scanf()函数。

这两个函数的原型声明已经被放置在系统头文件stdio.h中,若在程序中需要调用它们,只要在程序开始使用#include命令包含此头文件即可。

1.printf()函数

函数原型:

intprintf(<字符指针参数>,<形式参数表>);

函数调用格式:

printf(<格式字符串>,<实际参数表>);

函数功能:

将实际参数表中每个数据项的值按照格式字符串所指定的类型和格式输出到显示器屏幕窗口上显示出来。

实际参数表:

可以含有一个或多个数据项,每两个数据项之间必须用逗号分开,每个数据项可以是简单的常量或变量,也可以是函数调用或表达式。

格式字符串:

格式字符串是用双引号括起来的具有特定含义的字符序列。

在格式字符串中可以包含需要原样输出的普通字符,也可以包含具有特定含义的格式符。

每个格式符都以一个百分号字符%开始,以一个表示参数类型的说明字符结束,在这两个字符之间还可以使用表示数据输出对齐方式、占用宽度、小数位数等格式信息。

格式字符串举例:

如"%d*%d=%d\n"就是一个格式字符串,其中包含有3个格式符,每个格式符同为%d,字符d为表示整数类型的说明符,即指定格式字符串后面的实际参数表中对应的实际参数值为一个整数类型的值。

当在printf()函数调用的实际参数表中需要输出什么类型的值时,就在前面使用的格式字符串中对应相同类型的格式符信息。

常用的类型说明符:

d,i,f,e,c,s,p,o,u,x,%。

d和i相同,都是整数类型说明符。

f和e基本相同,都是单精度类型说明符,只是f采用的是定点表示法,而e采用的是带指数部分的、规范化的科学(浮点)表示法。

如23.05是定点表示法,而2.305e+002则是对应的科学表示法(浮点数),对应的常数是2.305×102。

科学表示法由尾数部分、指数符号e(代表乘幂的底数10)和指数部分所组成,当尾数部分的小数点前只保留一位整数位时则是规范化的科学表示法。

c是单个字符类型说明符。

s是字符指针类型说明符,对应的实际参数表中的参数通常是字符指针变量或一个字符串,输出的将是相应字符串中的内容。

printf函数调用举例:

假定a是字符型(char),值为,,x是整型(int),值为32,wg是单精度型,其值2.56,则printf()函数调用表达式语句:

printf("%c%d%f\n",a,x,wg);

执行时将依次输出字符变量a的值逗号、整型变量x的值32和单精度变量wg的值2.560000,其中输出单精度数时,小数部分默认为6位,后面不足的部分自动补0。

数据项的输出宽度:

每个格式符的开始字符%和类型说明符之间可以增加一个正整数,用来规定对应值的输出宽度,即在屏幕上显示时所占有的字符位数。

若实际值的位数超过此规定宽度则实际值全部显示出来,若输出值不足此宽度则空出的字符位置用空格填补。

printf("%5d\n",36);

执行时将使输出36占用5个字符位置,其中前3个位置为空格,后2个位置为36。

即数据(包括数值和字符或字符串)按右对齐输出,左边多余的位置用空格填补。

数据项为单精度数时的情况:

当需要输出一个单精度数时,通过在开始字符%和类型说明符之间增加用小数点分开的两个正整数,分别对应规定整个数据所占用的字符位数和纯小数部分所占用的字符位数。

如执行printf("%6.2f\n",36.2)时,将使36.2的输出占用6个字符位置,其中小数部分占用2个字符位置,输出结果为“36.20”。

在单精度类型说明符前使用字母l或L的情况:

在格式字符串的一个单精度类型说明符f或e前增加小写字母l或大写字母L,则指定将对应输出一个双精度类型的值。

如假定x是一个双精度类型的变量,则printf("%lf",x)或printf("%Lf",x)执行时将输出x中保存的一个双精度数。

若在整数类型说明符d或i前增加小写字母h则表示输出一个短整型数。

若在整数类型说明符d或i前增加小写字母l或大写字母L则表示输出一个长整型数。

如假定a、b和c分别是短整型、整型和长整型变量,则printf("%hd%d%ld\n",a,b,c)执行时将依次输出相应变量的值,并且它们之间用空格分开,因为格式字符串中每个格式符之间使用了一个空格。

2.scanf()函数

函数原型:

intscanf(<字符指针参数>,<形式参数表>);

函数调用格式:

scanf(<格式字符串>,<实际参数表>);

函数功能:

按照格式字符串所指定的类型从键盘缓冲区中读取数据到实际参数表的每个参数中。

实际参数表:

可以含有一个或多个参数,每两个参数之间必须用逗号分开,每个参数只能是指针变量,或者是一般类型变量的地址。

如x为一个int型的整数变量,若要利用此函数调用从键盘缓冲区为x输入一个整数,则应书写为&x,即给一个变量加上&字符前缀表示取该变量的地址。

格式字符串:

在scanf()函数调用中使用的格式字符串与在printf()函数调用中使用的格式字符串基本相同,区别仅在于:

所含的普通字符对于scanf来说是需要从键盘上照原样输入的,而对于printf来说是输出到屏幕窗口照原样显示的。

scanf()函数调用中的格式字符串通常只需要使用空格字符,把每个格式符分开,不需要使用其他任何普通字符。

当从键盘上按照格式字符串中每个格式符所含的类型说明符的要求输入数据时,数据之间要用空格分开,最后要用回车键结束输入。

函数调用举例:

(1)scanf("%d%d",&x,&y);

(2)scanf("%d%lf",&n1,&x1);

(3)scanf(“%d%c%d",&a,&p,&b);

第1条语句从键盘上输入两个整数到整数变量x和y中,当执行到该语句时,系统就等待用户输入,当输入两个用空格分开的整数并按下回车键后,系统就自动按序把第1个数赋给x,把第2个数赋给y。

执行第2条语句时,从键盘上输入得到一个整数和一个双精度数,并分别赋给整数变量n1和双精度变量x1。

执行第3条语句时,从键盘上输入得到一个整数、一个字符和另一个整数,并分别赋给整数变量a、字符变量p和另一个整数变量b。

带有scanf函数调用的程序举例:

#include

voidmain()

{

intx,y;

y=0;

while

(1){

scanf("%d",&x);//输入一个整数到x

if(x<=0)break;//若x小于或等于0则退出循环

y=y+x;//把x的值累加到y上

}

printf("y=%d\n",y);//输出y的值

}

输出结果:

3581215-1//键盘输入

y=43//执行printf语句的输出

八、VC++6.0集成开发环境简介

VC++6.0集成开发环境是集程序文件的输入、编辑、编译、连接、运行等各种操作功能为一体的、具有Windows窗口界面特色的环境。

利用VC++6.0集成开发环境开发C语言程序的步骤大致为:

1.针对问题建立程序结构

根据实际应用问题分析出编程思路和程序结构,即整个程序应该由哪几个文件所组成,每个文件包含哪几个函数,函数之间应用如何调用。

在最简单的程序中,只包含有一个程序文件,即程序主文件,该文件中只包含有一个函数,就是名称为main的主函数。

2.按照C语言的程序构成规则编写出每个C程序文件以及必要的头文件

当然,最简单的情况是:

只需要编写出一个文件,即程序主文件。

3.分别输入、编辑每个程序文件(.c)

在VC++6.0集成开发环境下,分别输入、编辑和保存每个程序文件(.c),以及必要的头文件。

4.通过开发界面所提供的编译菜单编译每个程序文件

通常是首先编译程序主文件,然后再编译一般程序文件,编译每个程序文件时将产生相应的目标文件(.obj)。

当编译过程出现错误时,应根据显示的错误信息对程序文件或头文件进行修改。

注意:

用户定义的头文件不能被单独编译,它只能通过#include命令被包含在其他程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1