C语言程序设计基础知识要点.docx
- 文档编号:26968451
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:56
- 大小:36.04KB
C语言程序设计基础知识要点.docx
《C语言程序设计基础知识要点.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础知识要点.docx(56页珍藏版)》请在冰豆网上搜索。
C语言程序设计基础知识要点
01.C 程序基本结构
一、C 语言的特点:
1、C 语言源程序的基本组成单位是函数;一个 C 程序可由若干个函数组成,其中必须有且仅有一个以 main 命名的主
函数,其余的函数名称可由编程者自行设定。
2、C 程序的执行总是由 main()函数的第一个可执行语句开始,到 main()函数的最后一个可执行的语句结束;而其
他函数都是在 main()函数开始执行以后,通过其他函数的调用才得以运行。
3、C 语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include 编译预处理命令将描述该
库函数的头文件包含进去。
二、C 程序的书写格式:
1、语句可从分开放在任意多行内;
如:
printf(“To C,”);
printf(“ or not to C:
”);
与 printf(“To C , or not to C:
”);是等价的
2、一行中可以有若干个语句;
如:
a=123;b=345;
3、每个语句和数据定义的最后必须有一个分号;
三、C 语言程序的运行:
1、编译(Compile):
将 C 源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程
序每一条语句的语法错误。
2、建造(Bulid):
C 语言程序示例:
显示“Hello”
#include
int main(void)
{
printf(“Hello.\n”);
return 0;
}
说明:
#include
printf 函数来自”标准输入输出库”,可以产生格式化输出;
\n 告诉 printf 函数执行完信息显示后要进行换行操作;
return 0 表明程序终止时会向操作系统返回值 0;
{ }来标出 main()函数的起始和结束。
02.数据类型
一、C 语言的特点:
1、C 语言源程序的基本组成单位是函数;一个 C 程序可由若干个函数组成,其中必须有且仅有一个以 main 命名的主
函数,其余的函数名称可由编程者自行设定。
2、C 程序的执行总是由 main()函数的第一个可执行语句开始,到 main()函数的最后一个可执行的语句结束;而其
他函数都是在 main()函数开始执行以后,通过其他函数的调用才得以运行。
3、C 语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include 编译预处理命令将描述该
库函数的头文件包含进去。
二、C 程序的书写格式:
1、语句可从分开放在任意多行内;
如:
printf(“To C,”);
printf(“ or not to C:
”);
与 printf(“To C , or not to C:
”);是等价的
2、一行中可以有若干个语句;
如:
a=123;b=345;
3、每个语句和数据定义的最后必须有一个分号;
三、C 语言程序的运行:
1、编译(Compile):
将 C 源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程
序每一条语句的语法错误。
2、建造(Bulid):
C 语言程序示例:
显示“Hello”
#include
int main(void)
{
printf(“Hello.\n”);
return 0;
}
说明:
#include
printf 函数来自”标准输入输出库”,可以产生格式化输出;
\n 告诉 printf 函数执行完信息显示后要进行换行操作;
return 0 表明程序终止时会向操作系统返回值 0;
{ }来标出 main()函数的起始和结束。
03,运算符和表达式
1、算术运算符和表达式
+:
加法运算符,如 3+5;
-:
减法运算符,如 5-3;
*:
乘法运算符,如 5*8;
/:
除法运算符,如 3/6;参与运算量均为整型时,结果也为整型,舍去小数;若运算量中有一个是实型,则结果为
双精度实型。
%:
模运算符,也称“取余运算符”,用于计算两数相除后的余数,如 5%3=2;
2、赋值运算符和赋值表达式
赋值运算符:
”=”,其作用是将一个表达式的值赋给一个变量;
其一般形式为:
变量=表达式
如:
x=a+b;
赋值表达式的功能是计算表达式的值再赋予左边的变量。
赋值运算符具有右结合性。
因此a=b=c=5可理解为
a=(b=(c=5));
复合赋值运算符:
+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=
构成复合赋值表达式的一般形式为:
变量 双目运算符=表达式
它等价于:
变量=变量 运算符 表达式
如:
a+=5等价于 a=a+5
x*=y+7等价于 x=x*(y+7)
r%=p等价于 r=r%p
3、类型转换
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。
具体规定
如下:
1)实型赋予整型,舍去小数部分。
前面的例子已经说明了这种情况。
2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为 0)。
3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的 ASCII 码值放到整型量的低八位中,高
八位为 0。
整型赋予字符型,只把低八位赋予字符量。
4、自增、自减运算符:
自增运算符:
“++”,功能是将变量的值加 1;
自减运算符:
“--”,功能是将变量的值减 1;
可有以下几种形式:
++ii 自增 1 后再参与其它运算。
--ii 自减 1 后再参与其它运算。
i++i 参与运算后,i 的值再自增 1。
i--i 参与运算后,i 的值再自减 1。
注:
(1)”++”、”--“的操作对象只能是变量;
(2)”++”、”--“运算优先级相同,且结合方向自右向左;-i++应理解为-(i++),
【例】自增、自减运算、
#include
main()
{
int i=8;
printf("%d\n",++i); /* i 先加 1,再输出 i ,输出结果为 9 */
printf("%d\n",--i);/* i 先减 1,再输出 i ,结果为 8 */
printf("%d\n",i++); /* 先输出 i ,输出结果为 8,i 再加 1, */
printf("%d\n",i--); /* 先输出 i ,输出结果为 9,i 再减 1, */
printf("%d\n",-i++); /* 先加输出-i,输出结果为-8,i 再加 1 */
printf("%d\n",-i--); /* 先输出-i ,输出结果为-9,i 再减 1 */
}
5、求字节运算符
计算表达式的结果所占字节数或某种数据类型的定义字节数。
一般格式:
sizeof(数据类型标识符) 或 sizeof(表达式)
如:
sizeof(float)的值为 4,占 4 个字节;
sizeof(2*3)的值为 2,占 2 个字节;
6、关系运算符和关系表达式
关系运算符:
“<”(小于)、 “<=”(小于等于) 、”>”(大于)、”>=”(大于等于) 、”==”(等于)、 “!
=”(不等于)
关系表达式:
若关系表达式成立,其值为“真”,否则为“假”;在 C 语言中,用 0 代表“假”,用 1 代表“真”;
7、逻辑运算符和逻辑表达式:
逻辑运算符:
“!
” (非)、 “&&” (与)、 “||”(或);运算优先级:
!
>&&>||
逻辑表达式:
用逻辑运算符将表达式连接起来的式子;逻辑表达式的结果仍然是逻辑量(“真”或“假”)
8、条件运算符:
一般格式:
<表达式 1>?
<表达式 2>:
<表达式 3>
先计算表达式 1,若表达式 1 的值为真,则计算表达式 2 的值,且表达式 2 的值为整个条件表达式的值;否则,计算
表达式 3 的值,且表达式 3 的值即为整个条件表达式的值。
9、逗号运算符和逗号表达式
逗号运算符:
”,”作为运算符,其功能是将多个表达式组成一个表达式;
一般形式:
表达式 1,表达式 2,…,表达式 n
求解过程:
先计算表达式 1,再计算表达式 2,依此计算表达式 n,最终,表达式 n 的值即为整个表达式的值。
04.顺序结构
一、概述:
顺序语句按照语法形式分为:
表达式语句、函数调用语句、复合语句、流程控制语句和空语句。
1、表达式语句:
语法格式:
表达式;
如:
a+4;
其中赋值语句为最典型的表达式语句,如:
a=5;
a=b+3;
特别提示:
分号(;)是表达式语句中不可缺少的一部分。
2、函数调用语句:
如:
printf(”I am a student!
”);
其中:
printf()为系统提供的函数,用于显示信息。
3、复合语句:
所谓“复合语句”即由一对“{}”括起来的一组语句,也称“块语句”或“分程序”。
一般形式为:
{
语句 1
语句 2
...
语句 n
}
如:
{
i++;
j=a+3;
printf("%d,j=",i,j);
}
特别提示:
复合语句中的最后一条语句的分号不得缺少;复合语句的“}”之后不得有分号。
4、空语句:
“空语句”即为一个独立的分号。
如:
main()
{
...
;
...
}
二、数据的输入输出
C 语言提供了一些输入输出函数,如 printf()和 scanf(),在程序中调用这些输入输出函数时,必须将标准输入输出头文
件“stdio.h”包含到用户所编写的源程序中。
如:
#include
其中:
#include 命令一般写在程序的开头位置。
1、格式输入输出
1、格式输出函数 printf()
(1)一般格式:
printf(格式字符串,输出列表)
其中:
“格式字符串”包括“输出字符”和“格式控制字符”(由%和格式字符组成,指定输出项的输出格式)。
• d 格式符:
用于输出十进制整数;
%d:
以十进制形式显示输出变量的值;
%5d:
以十进制形式显示变量的值,且至少占用 5 个字符的空间,若不够 5 位数字,则左侧补空格;
%-5d:
以十进制形式显示变量的值,且至少占用 5 个字符的空间,左对齐;
%5.3d:
以十进制形式显示变量的值,且至少占用 5 个字符的空间并至少有 3 位数字,若不够 3 位数字,则
左侧补 0;
如:
#include
main()
{
int i;
i=40;
printf(“%d\n”,i);
printf(“%5d\n”,i);
printf(“%-5d\n”,i);
printf(“%5.3d\n”,i);
}
• f 格式符:
用于以小数形式输出实数;
%10.3f:
以定点十进制形式显示变量的值,且总共用 10 个字符,其中,整数位 6 位,小数位 3 位,小数点
1 位;
如:
#include
main()
{
float x;
x=839.21f;
printf(“%10.3f\n”,x);
}
• c 格式符:
用于输出一个字符;
如:
x=”a”,y =”b”,
则 printf(%c %c",x,y)的输出结果为:
a b
若变量的值为整数,则输出该整数值为 ASCII 码的字符:
如 x=65,y=98,则 printf(“%c, %c”,x,y)的输出结果为:
A, b;
同理,一个字符的数据也可以以整数的形式输出;
如 x=’a’,y=’B’,则 printf(“%d,%d”,x,y)的输出结果为:
97,66
• s 格式符:
用于输出一个字符串。
如:
printf(“%s”,”I am a student !
”)
• e,E 格式符:
用于以指数形式输出实数。
如:
printf(“%e”, 123.456),则输出结果为:
1.234560e+002;
• g,G 格式符:
用于输出实数,根据数值的大小自动选择 f 格式或 e 格式。
2、格式输入函数 scanf()
(1)一般格式:
scanf(格式字符串,变量地址表)
其中:
格式字符串使用双引号括起来的字符串,包括“普通字符”(按原样输入)、格式控制字符”(由%和格式
字符组成,用来标定输入数据的格式)。
变量地址表是由若干个变量地址组成的表列,可以是变量的地址,也可以使字符串的首地址。
• d 格式:
用于输入十进制整数;
如:
scanf(“%d,%d”,&x,&y);则输入格式为:
123 ,3456
•u 格式:
用于输入十进制无符号整数;
•f 格式:
用于输入以小数形式的实数;
如:
scanf(“%f,%f”,&x,&y);则输入格式为:
123.23,23.456
•c 格式:
用于输入一个字符;
如:
scanf(“%c,%c”,&x,&y);则输入格式为:
a,b
•s 格式:
用于输入一个字符串;
如:
scanf(“%s”,a);假定 a 为字符数组,则输入格式为:
abcdef
注:
输入的字符串中间不能包含空格。
特别说明:
• 对于变量,”&”加变量名即为该变量的地址;如:
&a、&b 等分别表示变量 a 和变量 b 的地址;
•对于字符串数组或字符指针型变量,数组名和指针变量名本身即为其地址;
•可以在%和格式字符之间加表示位数的数字;如:
scanf(“%5s”,p);表示只能输入 5 个字符给字符串指针 p;
3、字符数据的输入输出:
(1)putchar()函数:
是向标准输入输出设备输出一个字符;
其调用格式为:
putchar(ch); 其中:
ch 为一个字符变量或常量;
putchar()函数作用等同于 printf(“%c”,ch);
(2)getch() getche()和 getchar()函数:
•getch():
从键盘上读入一个字符,但不显示在屏幕上;
•getche():
从键盘上读入一个字符,显示在屏幕上;
•getchar():
从键盘上读入一个字符,并显示在屏幕上,但直到输入回车键时才结束输入,第一个字符为其函数的
返回值。
05.选择结构
一、if 语句:
一般格式:
if(表达式) 语句;
表示:
当“表达式”成立时,则执行“语句”;否则跳过“语句”;
如:
if (a>b) printf(“a>b!
”);
例:
若用户输入的数为 3 的倍数,则显示”OK”
#include
main()
{
int a;
scanf(“%d”,&a);
if(a %3==0) printf(“OK”);
}
二、if-else 语句:
一般格式:
if (表达式)
语句 1;
else
语句 2;
例:
给出用户输入的两个整数的较大者
#include
main()
{
int a,b;
scanf(“%d,%d”,&a,&b);
if(a>b)
printf(“the max=%d”,a);
else
printf(“ the max=%d”,b);
}
三、if 语句的嵌套
1、if 子句中嵌套:
• if(表达式 1)
if(表达式 2) 语句 1;
else 语句 2;
else 语句 3;
• if(表达式 1)
{ if(表达式 2) 语句 1; }
else 语句 2;
2、else 子句中嵌套
• if (表达式 1) 语句 1;
else
if(表达式 2) 语句 2;
else 语句 3;
• if(表达式 1) 语句 1;
else
if(表达式 2) 语句 2;
3、嵌套一般格式:
if (表达式 1) 语句 1;
else if (表达式 2) 语句 2;
else if (表达式 3) 语句 3 ;
…
else if(表达式 n) 语句 n;
else 语句 n+1;
例:
将用户输入的成绩按以下规则转换成等级成绩:
分数:
90~100等级:
优
分数:
80~89等级:
良
分数:
70~79等级:
中
分数:
60~69等级:
及格
分数:
60 以下等级:
不及格
# include
main()
{
int d;
printf(“输入分数:
”);
scanf(“%d”,&d);
if(d>=90 ) printf(“优”);
else if(d>=80) printf(“ 良”);
else if(d>=70) printf(“ 中”);
else if(d>=60) printf(“ 及格”);
else printf(“ 不及格”);
}
四、条件语句:
表达式 1 ?
表达式 2 :
表达式 3
执行的过程:
若表达式 1 的值为非 0 时,该条件语句的职位表达式 2,否则为表达式 3;
例:
求一个整数的绝对值
#include
main()
{
int i,absi;
scanf(“%d”,&i);
absi=i>0 ?
i :
-i;
printf(“%d 绝对值是%d\n”,i,absi);
}
五、switch 语句
switch (表达式)
{
case 常量表达式 1:
语句 1 ;
break;
case 常量表达式 2:
语句 2 ;
break;
…
case 常量表达式 n:
语句 n ;
break;
default:
语句 n+1;
}
例:
商店卖货物,每一件 3.5 元,按购买的数量给与优惠:
购买 100 件,优惠 5%;
购买 200 件以上,优惠 6%;
购买 300 件以上,优惠 8%;
购买 400 件以上,优惠 10%;
购买 500 件以上,优惠 15%;
#include
main()
{
int n;
float p,price;
scanf("%d",&n);
switch(n/100)
{
case 1:
p=0.05;
break;
case 2:
p=0.06;
break;
case 3:
p=0.08;
break;
case 4:
p=0.10;
break;
case 5:
p=0.15;
break;
}
price=3.5*n*(1-p);
printf("%应付款=%7.2f\n",price);
}
06.循环结构
一、for 语句:
一般格式:
for( 表达式 1 ;表达式 2;表达式 3) 语句;
表示:
先计算表达式 1 的值,再计算表达式 2 的值,若表达式 2 的值为 0,则跳出循环体,转去执行循环体后面的程
序命令;若表达式 2 的值非 0,则执行循环体中的语句,接着计算表达式 3 的值;而后,再从计算表达式 2 的值开始重
复上诉操作,直到表达式 2 的值为 0 时结束。
例:
计算 sum=1+2+3+…+100 的值”
#include
main()
{
int i,sum;
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf(“sum=%d”,sum);
}
二、while 语句:
一般格式:
while<表达式>
语句;
表示:
先计算表达式的值,若为非 0,则执行循环体语句,然后再计算表达式的值,重复上述过程,直到计算表达
式的值为 0 时结束循环。
例:
计算 sum=1+2+3…+100 的值
#include
main()
{
int i,sum;
i=1;
sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(“sum=%d”,sum);
}
三、do-while 语句
1、一般格式:
Do
语句;
While<表达式>;
表示:
先执行一次循环语句,然后计算表达式的值,若表达式的值非 0,则再执行循环语句,然后从计算表达式的值
开始重复上述过程,直到计算表达式的值为 0,循环结束。
例:
计算 sum=1+2+3…+100 的值
#include
main()
{
int i,sum;
i=1;
sum=0;
do
{
sum=sum+i;
i++;
}while(i<=100);
printf(“sum=%d”,sum);
}
四、break 和 continue 语句:
1、break 语句:
使用 break 语句可以提前结束由 while、for、do-while 语句构成的循环,而去执行循环下面的语句。
例:
判定用户输入的一个数是否为素数
#include
main()
{
int a,d;
printf(“请输入一个整数:
”);
scanf(“%d”,&a);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础知识 要点