C语言预赛练习之基础知识讲义.docx

上传人:b****3 文档编号:5356194 上传时间:2022-12-15 格式:DOCX 页数:51 大小:95.46KB
下载 相关 举报
C语言预赛练习之基础知识讲义.docx_第1页
第1页 / 共51页
C语言预赛练习之基础知识讲义.docx_第2页
第2页 / 共51页
C语言预赛练习之基础知识讲义.docx_第3页
第3页 / 共51页
C语言预赛练习之基础知识讲义.docx_第4页
第4页 / 共51页
C语言预赛练习之基础知识讲义.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

C语言预赛练习之基础知识讲义.docx

《C语言预赛练习之基础知识讲义.docx》由会员分享,可在线阅读,更多相关《C语言预赛练习之基础知识讲义.docx(51页珍藏版)》请在冰豆网上搜索。

C语言预赛练习之基础知识讲义.docx

C语言预赛练习之基础知识讲义

C语言预赛练习之-基础知识讲义

第一讲 C语言概述

引 言

一、教学目的

本讲主要介绍了C语言的特点、基本结构、基本输入输出语句和C程序的编辑、编译、运行方法,要求了解C语言的特点,掌握C程序的基本结构,掌握输入输出函数scanf()和printf()的基本使用方法,熟悉C程序的编辑、编译、调试和运行过程。

二、知识要点

1.C语言的特点

(1)丰富的数据类型

(2)结构化的控制语句

(3)高效率的目标代码

(4)可移植性好

2.C语言的基本结构

(1)由一个主函数main()或一个主函数及其它函数组成

(2)每个函数用{}括起来

(3)每个语句后加“;”

3.库函数printf()的使用

(1)函数printf()的功能和使用格式

(2)常用转义字符的使用

(3)常用格式符的意义和使用

4.库函数scanf()的使用

(1)函数scanf()的功能和使用格式

(2)格式控制与输入数据格式的关系

(3)地址表列的使用

5.C程序开发过程

(1)编辑、编译、连接和执行

(2)源程序、目标程序、可执行程序

三、边用边学

§1.1 C语言简史

C语言是由D.M.Ritchie于1972年在B语言的基础上设计的,主要用于编写UNIX操作系统的。

1977年出现了可移植的C语言编译程序,使得用C语言编写的UNIX系统可以在各种计算机上使用。

随着UNIX的广泛应用,C语言得到了普及和推广,并最终独立于UNIX而成为世界上应用最广泛的计算机语言之一。

1983年美国国家标准化协会(ANSI)制订了C语言标准,即ANSIC。

目前流行的各种版本的C语言都是以它为基础的,如TurboC,MicrosoftC,QuickC等。

§1.2 C语言的特点

一、丰富的数据类型

C具有整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等多种数据类型。

特别是C的指针类型,功能强大、灵活方便。

二、结构化的控制语句

C语言的控制结构语句符合结构化程序设计要求,并且用函数作为程序模块,使得程序结构清晰、可读性好、易于调试。

三、高效率的目标代码

C语言允许直接访问物理地址、直接对硬件操作,提供对字节、位、内存和寄存器操作,可以调用或嵌入汇编语言代码,并且经过C编译程序生成的目标代码质量高、执行效率高。

四、可移植性好

用C语言写的程序,基本上可以不加修改地用于各种计算机和操作系统上。

§1.3 C程序的基本结构

一、C程序的基本结构讲解

例1在屏幕上显示:

Hello!

#include

main()

 {

 printf(“Hello!

\n”);

 }

输出:

Hello!

例2求两数之和

#include

main()

 {inta,b,sum;

a=123;b=456;

sum=a+b;

 printf(“sumis%d\n”,sum);

 }

输出:

sum is 579

例3输入a、b两个数,输出其中最大值。

#include

floatmax(floatx,floaty)

 {floatz;

if(x>y)z=x;

elsez=y;

returnz;}

 main()

 {floata,b,c;

scanf(“%f,%f”,&a,&b);

c=max(a,b);

printf(“%f,%f,themaxis%f\n”,a,b,c);

 }

输入:

23,56

输出:

23.000000,56.000000,maxis56.000000

二、C程序的基本结构

1.由一个主函数main(),或一个主函数及其它函数组成

2.每个函数用{}括起来

3.每个语句后加;

三、C语言的三类函数及其采用的意义

1.C程序是由一个主函数main()或一个主函数及其它函数组成。

C程序由函数构成,使用函数可以简化了主函数以及实现模块化程序设计。

C语言的函数可以分为三类:

第一类:

主函数,名为main()。

每个程序中只能有一个、也必须有一个主函数。

无论主函数在什么位置,C程序总是从主函数开始执行。

第二类:

用户自定义函数,可有可无,数目不限。

第三类:

C语言提供的库函数,例如输出函数printf()和输入函数scanf()

2.每个函数的内容用大括号“{}”括起来。

3.每个语句后加“;”。

§1.4 库函数printf()和scanf()的使用

printf()和scanf()函数是C语言中两个最基本的库函数,存在于TurboC所在目录的子目录include中的stdio.h头文件内,使用时应该在源程序中加入#include(TurboC2.0可以缺省)。

一、函数printf()

功能:

通过标准输出设备(如屏幕)输出一组数据。

格式:

printf(格式控制,输出表列)

1.“格式控制”是用双引号括起来的部分,由要输出的文字和数据格式说明组成。

例:

printf(“Hello!

”);

printf(“%f,%f,themaxis%f\n”,a,b,c);

要输出的文字除了可以使用字母、数字、空格和一些数学符号以外,还可以使用一些转义字符表示特殊的含义(如“\n”)。

转义字符功能见表1-1。

表1.1 常用转义字符

转义字符

功 能

\n

回车换行符,光标移到下一行行首

\r

回车不换行,光标移动到本行行首

\t

横向跳格(8位为一格,光标跳到下一格起始位置,如第9或17位等)

\b

退一格,光标往左移动一格

\f

走纸换页

\\

用于输出反斜杠字符“\”

\'

用于输出单引号字符“'”

\”

用于输出双引号字符“””

\ddd

三位八进制数ddd对应的ASCII码字符

\xhh

两位十六进制数hh对应的ASCII码字符

#include

main()

{

printf(“123456789012345678901234567890\n”);

printf(“123\t456\n");

printf(“12345\b123\r9\n”)

}

运行结果:

123456789012345678901234567890

 123 456

 9234123

举一反三:

写出下列输出结果

printf(“\tfirst\b\b\bsh\\\r\'No.1\'”);

数据格式说明由“%”开头,形式为%<数据输出宽度说明><格式符>,数据格式说明用在需要输出变量或运算数值结果的时候,它的个数与输出表列的个数一一对应。

数据宽度说明中如果实际数据小于宽度,则根据宽度是否大于零而左补空格或右补空格。

如果实际数据大于宽度,按实际位数输出。

如果缺省宽度说明,则按实际宽度输出(实数位数按照格式符默认位数输出)。

常用格式符见表1-2。

表1-2 常用格式符

格式符

功 能

d

以带符号的十进制形式输出整数(整数不输出正号)

o

以不带符号的八进制形式输出整数

x

以不带符号的十六进制形式输出整数

u

以不带符号的十进制形式输出整数

c

以字符形式输出一个字符

s

输出一个或多个字符

f

以小数形式输出单、双精度数,默认输出6位小数

e

以标准指数形式输出单、双精度数,数字部分小数位数为6位

#include

main()

{

printf(“a=%4d,b=%-6.2f,c=%c,d=%s”,12,3.456,'A',”hello”);

}

运行结果:

a=12,b=3.46,c=A,d=hello

举一反三:

写出下列输出结果

printf(“x=%d,y=%-6.2f,z=%2d”,2,8.999,300);

2.输出表列可以是变量、表达式或者是数值。

输出表列的类型决定了“格式控制”中使用的“数据格式符”,其个数决定了“数据格式说明”的个数。

如已知a=3,则语句

printf(“%d+%d=%d”,a,12,a+12);

3+12=15

二、函数scanf()

功能:

通过标准输入设备(如键盘)输入一组数据。

格式:

scanf(格式控制,地址表列)

格式控制同printf()函数的格式控制。

其中特别注意:

如果格式控制中加入了格式符以外的其它字符,则通过键盘等输入设备输入数据时这些字符也要同样输入,如果格式符中无其它字符间隔,输入时可以用空格、回车或跳格键Tab。

地址表列是由若干个地址组成的表列,变量的地址表示法是在变量前加上&符(数组不用)。

函数scanf()是将输入设备输入的数据赋给地址表列中对应的变量。

地址表列的个数和变量类型,决定了格式控制中格式符的个数和形式。

§1.5 C程序的开发过程

开发一个C程序,一般要经历编辑、编译、连接和运行四个步骤。

一、源文件的编辑

用户通过编辑器,将自己开发的C语言程序输入计算机的过程称为C程序源文件的编辑。

编辑生成的文件以文本形式存储,扩展名为“.C”,也称为C的源程序。

源程序文件以ASCII码形式存储,不含任何格式和样式,计算机不能直接执行。

二、编译

计算机把C的源程序翻译成计算机可以识别的二进制形式的目标代码文件,这个过程称为编译,由C的编译程序完成。

C的编译程序在编译的同时,还对源程序的语法和程序的逻辑结构等进行检查。

当发现错误时,将会列出错误的位置和种类,此时需要重新编辑修改源程序。

如果编辑成功则生成目标文件,文件名同源程序文件名,扩展名为“.obj”。

编译生成的目标文件,不包含程序运行所需要的库函数等,计算机仍然不能直接执行。

三、连接

连接程序以将目标程序和其它目标程序模块,以及系统提供的C库函数等进行连接生成可执行文件的过程,称为“连接”。

连接生成的可执行文件的文件名同源程序文件名,扩展名为“.exe”。

连接生成的可执行文件,计算机可以直接执行。

四、运行

在DOS环境直接键入C程序的可执行文件名,或者在C的集成环境下选择“RUN”命令,以及在Windows的资源管理器内双击该可执行文件名,都可以获得运行结果。

如果运行结果有误,需要重新编辑源程序,再进行编译、连接、运行,直到得到满意的运行结果。

作业及上机练习

1.使用printf()函数显示下列菜单:

 Menu

========================================

1.Inputthestudents'namesandscores

2.Searchscoresofsomestudents

3.Modifyscoresofsomestudents

4.Listallstudents'scores

5.Quitthesystem

========================================

Pleaseinputyourchoise(1-5):

2.参照例1.7和例1.8,选择一种方法编写一个程序,实现输入六个数输出最小数。

3.编写一个程序,从键盘上输入华氏温度,屏幕显示对应的摄氏温度。

华氏温度和摄氏温度的转换公式为:

 c=(f-32)/1.8

第二讲 基本数据类型

引 言

一、教学目的

通过介绍C语言的数据类型和存储特点,要求了解C语言数值数据和文字数据的表示方法,掌握C语言基本数据类型的存储格式,掌握变量的定义和赋值,了解数据运算中类型的自动转换和强制转换。

二、知识要点

1.C语言的数据类型

数据类型分类

2.数值数据的表示

(1)整数数据的表示和存储形式

(2)浮点小数的表示和存储形式

3.文字数据的表示

(1)单个字符的表示和存储形式

(2)字符串的表示和存储形式

4.变量的定义和赋值

(1)变量的命名

(2)变量的定义

(3)变量的赋值

5.C语言类型修饰符

(1)long型修饰符的意义

(2)unsigned型修饰符的意义

6.表达式中数据类型转换

(1)自动类型转换

(2)强制类型转换

三、边用边学

§2.1 C语言的数据类型

C语言提供的数据类型分类如下:

§2.2 数值数据的表示

C语言中使用的数值数据有两种:

整数和浮点小数。

一、整数

整数可以用十进制数、八进制数和十六进制数形式表示。

除符号外,如果整数的第一位数字是0时为八进制数,前两位数字为0x时为十六进制数,其余的形式为十进制数。

一般整数的存储空间为2个字节,取值范围一般为,即-32768~32767。

如果超过这个范围,只有使用占4个字节的长整型数,即在整数后面加上一个字母L(大小写均可),此时取值范围可以扩大到,即-2147483648~2147483647。

二、浮点小数

C语言中的浮点小数描述的是实数,可以采用十进制小数形式或者指数形式表示。

十进制小数形式:

包含整数部分、小数点和小数部分。

其中小数点不能省略。

指数形式:

包含尾数部分、字母E或e和阶码。

例如2.78E12。

注意尾数部分不能省、阶码必须是整数。

浮点小数一般为单精度浮点类型,占用4个字节,有效位数6~7位,如果需要精度特别高,可以采用双精度浮点类型,有效位数可以达到16~17位。

§2.3 文字数据的表示

C语言把文字数据分为两种类型:

单个字符和字符串。

一、单个字符

单个字符的表现形式是由单引号括起来的一个字符,例如:

’a’。

其中单引号、双引号和反斜杠的表现形式比较特殊,分别是’\’’、’\”’、‘\\’。

在C语言中转义字符被认为是具有特殊意义的单个字符,例如’\n’,代表一个换行符。

单个字符在内存中只占用1个字节,其存储的内容为该字符在ASCII码表中对应的数值。

二、字符串

字符串是由双引号括起来的字符序列,例如:

“thisisaprogram.”、“Hello!

”、“IlikeC”。

字符串中的字符按照从左到右的顺序,依次存储在一段连续的空间里,其中每一个字符占用一个字节,其内容为该字符在ASCII码表(见附录)中对应的数值。

需要注意的是C语言的字符串在实际存储时,将自动在字符串尾部加了一个结束标志‘\0’(其ASCII码值为0)。

§2.4 变量的定义和赋值

C语言中的数据有两种基本形式:

常量和变量。

C语言中所有的变量在使用前必须先定义,说明变量类型。

一、变量的定义

变量定义的形式如下:

 类型标识符 变量名;

变量在定义时要注意以下几个问题:

1.变量的命名要符合C语言规定的标识符的命名规则,即只能由字母、数字和下划线组成,首字母必须为字母或下划线。

此外C语言中规定的有特殊用途的关键字,例如int、float、if等,不能作为变量名称。

C语言中大小写是敏感的。

但是习惯上,C中的变量一般用小写字母表示。

2.变量的数据类型决定了它的存储类型,即该变量占用的存储空间。

所以定义变量类型,就是为了给该变量分配存储空间,以便存放数据。

基本的变量类型及其存储空间见表2.1:

表2.1 C基本数据类型

类型

名称

存储空间

取值范围

实例

int

整型

2个字节

介于-32768~32767的整数

inti,j;

float

单精度浮点型

4个字节

实数,有效位数6~7位

floatx;

double

双精度浮点型

8个字节

实数,有效位数15~16位

doubley;

char

字符型

1个字节

ASCII码字符,或-128~127的整数

charc;

注:

char型变量只能存放一个字符,汉字或字符串的存储需要用字符数组实现。

二、变量的赋值

变量需要预置一个值,即赋值。

赋值操作通过赋值符号“=”把右边的值赋给左边的变量:

变量名=表达式;

例如x=3;a=a+1;f=3*4+2;

其中需要注意的是:

1.数学中的“=”符号不同于C语言中的赋值符号“=”。

2.如果赋值时两侧类型不一致时,系统将会作如下处理:

将实数赋给一个整型变量时,系统自动舍弃小数部分。

将整数赋给一个浮点型变量时,系统将保持数值不变并且以浮点小数形式存储到变量中。

当字符型数据赋给一个整型变量时,不同的系统实现的情况不同,一般当该字符的ASCII值小于127时,系统将整型变量的高字节置0、低字节存放该字符的ASCII值。

变量在定义的同时也可以赋初值,称作变量的初始化。

3.字符型变量的值可以是字符型数据、介于-128~127的整数或者转义字符。

§2.5 C语言类型修饰符

基本类型可以带修饰性前缀,即类型修饰符,扩大C语言基本数据类型的使用范围。

C语言共有4种类型修饰符:

long 长型

short短型

signed有符号型

unsigned 无符号型

short型和long型用于整型和字符型,其中long型还可以用于双精度型。

short型不常用,对于不同机型取值范围不同,这里不再介绍。

longint(简写为long)型的存储长度为4个字节,范围,用于存储整数超过int型取值范围的情况。

longdouble型存储长度16个字节,约24位有效数字,取值范围超过double型。

有符号型signed和无符号型unsigned适用于char型、int型和long型三种类型,区别在于它们的最高位是否作为符号位。

unsignedchar型取值范围0~255,unsignedint(简写为unsigned)型取值范围0~65535,unsignedlong型取值范围。

§2.6 表达式中数据类型转换

C语言中不同的数据类型的取值范围不同,在进行混合运算时结果会如何呢?

一、自动类型转换

C语言规定,不同类型的数据在参加运算前会自动转换成相同类型,再进行运算。

转换的规则是:

如果运算的数据有float型或double型,自动转换成double型再运算,结果为double型。

如果运算的数据中无float型或double型,但是有long型,数据自动转换成long型再运算,结果为long型。

其余情况为int型。

二、强制类型转换

在C语言中也可以使用强制类型转换符,强迫表达式的值转换为某一特定类型。

强制类型转换形式为:

(类型)表达式

强制类型转换最主要的的用途一是满足一些运算对类型的特殊要求,例如求余运算符“%”,要求运算符两侧的数据为整型,(int)2.5%3二是防止丢失整数除法中的小数部分。

作业与上机练习

1.编程输出字符0、9、A、Z、a、z的ACSII码的十进制、八进制和十六进制的表示形式。

2.参考例L2_6.C编写一个程序,从键盘输入字符(例如’1’),转换成十进制数(即1),并输出。

提示:

“1”的ASCII码为十进制数49,将其减去一个数等于十进制1即可。

3.已知a=3,b=2,c=2.5,计算(float)(a+b)/3+(int)c的值。

4.编写一个程序输出5!

、10!

的结果。

5.参考例L2_8.C编写一个程序,输入2个学生的姓名、学号、英语、数学、计算机成绩,输出这两个学生的姓名、学号和平均分。

第三讲 控制结构

(一)

引 言

一、教学目的

本讲主要介绍了程序设计的一般方法、结构化程序设计思想以及C语言的顺序结构和选择结构的实现方法,要求熟练掌握if语句和switch语句的使用,了解结构化程序设计思想,并且可以按照一般程序设计方法完成简单程序的设计过程。

二、知识要点

1.程序设计的一般方法

(1)程序设计的主要因素

(2)程序设计的一般方法

(3)流程图的画法

2.结构化程序设计

(1)结构化程序设计的基本思想

(2)结构化程序设计的三种基本结构及其特点

3.顺序结构

C语言顺序结构的实现

4.if语句

(1)if语句的几种形式和使用方法

(2)if语句的嵌套

(3)else与if的配对问题

5.switch语句

(1)switch语句的基本形式

(2)switch语句的使用

三、边用边学

§3.1 程序设计的一般方法

程序设计的一般方法可以概括为以下四个步骤:

一、明确处理对象、选择算法

二、画流程图

流程图用来表示各种操作的图框,用流程图表示的算法直观形象,便于编程。

以下是常见的流程图符号:

三、编写程序

四、调试程序

§3.2 结构化程序设计

结构化程序设计的基本思想是:

任何程序都可以用三种基本结构的组合来实现。

这三种基本结构是:

顺序结构、选择结构和循环结构。

这三种结构都具有一个入口和一个出口。

此外结构化程序设计思想要求限制无条件转移语句(即goto语句)的使用。

§3.3 顺序结构

顺序结构是结构化程序设计的三种基本结构中最简单的。

它可以独立存在,也可以出现在选择结构或循环结构中,总之整个程序都存在顺序结构。

在顺序结构中,函数、一段程序或者语句是按照出现的先后顺序执行的。

§3.4 if语句

C语言中的选择结构有两种:

if语句和case语句。

if语句主要提供两个分支的选择,case语句提供多分支的选择。

一、if语句的基本形式

if语句的基本形式和流程图如图3.5所示:

二、if语句的嵌套

if语句可以互相嵌套,即当if语句中的语句1或语句2是一个含if语句的复合语句时,形成if语句的嵌套。

if语句的嵌套常见形式有两种:

形式一:

当语句2是if语句结构

在if语句嵌套中,需要特别注意else与if的配对问题。

C编译系统处理该问题的原则是:

else总是与同一语法层次中离它最近的尚未配对的if配对。

§3.5 switch语句

C语言提供了switch语句解决多分支选择问题。

switch语句的一般形式和流程图如下:

整型表达式也可以是字符型表达式。

数值1到数值n可以是整数或者字符常量。

switch语句执行过程是:

首先计算整型表达式,根据结果与case后面的常量数值进行比较,如果等于case后面数值则执行其后的语句,然后跳出。

如果case后的数值没有与表达式值相等的情况时,则执行default后面的语句再跳出。

其中,缺省break则执行符合表达式数值的语句及其后的语句,直到遇见break才跳出switch语句。

缺省default,当没有与表达式值相等的数值时,直接跳出switch语句。

上机练习与课后作业

1.输入两个数,判断两个数的关系是“大于”、“等于”或“小于”,并输出结果。

2.从键盘任意输入三个整数,按从小到大顺序输出。

3.判断ax2+bx+c=0方程的有几个解,如果有解则输出。

系数a、b、c由键盘输入。

4.要求输出如下菜单

主菜单

================================

 1.输入学生成绩

 2.查询学生成绩

 3.打印输出成绩

 0.退出系统

================================

请选择(0~3):

如果选择1,则显示“请输入”;选择2,则显示“请输入查找学生学号”;选择3,显示“正在输出”;选择0,显示“谢谢使用”;选择其它则显示“输入错误”。

(用switch语句实现)。

第四讲 控制结构

(二)

引 言

教学目的

本讲主要介绍了C语言提供的三种循环结构语句:

while语句、do-while语句和for语句,介绍了循环结构中常用的语句break、continue的使用以及循环的嵌套。

要求大家掌握这三种循环结构的使用,理解break和continue在循环结构中的不同作用,了解循环的嵌套。

知识要点

1.while语

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

当前位置:首页 > 自然科学 > 物理

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

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