C语言预赛练习之基础知识讲义Word文档下载推荐.docx
《C语言预赛练习之基础知识讲义Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言预赛练习之基础知识讲义Word文档下载推荐.docx(51页珍藏版)》请在冰点文库上搜索。
一、C程序的基本结构讲解
例1在屏幕上显示:
Hello!
#include<
stdio.h>
main()
{
printf(“Hello!
\n”);
}
输出:
Hello!
例2求两数之和
{inta,b,sum;
a=123;
b=456;
sum=a+b;
printf(“sumis%d\n”,sum);
sum is 579
例3输入a、b两个数,输出其中最大值。
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码字符
{
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位
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语