C语言程序设计基础知识要点.wps资料文档下载
- 文档编号:1450663
- 上传时间:2023-04-30
- 格式:WPS
- 页数:19
- 大小:150.50KB
C语言程序设计基础知识要点.wps资料文档下载
《C语言程序设计基础知识要点.wps资料文档下载》由会员分享,可在线阅读,更多相关《C语言程序设计基础知识要点.wps资料文档下载(19页珍藏版)》请在冰点文库上搜索。
变量=表达式如:
x=a+b;
赋值表达式的功能是计算表达式的值再赋予左边的变量。
赋值运算符具有右结合性。
因此a=b=c=5可理解为a=(b=(c=5);
复合赋值运算符:
+=、-=、*=、/=、%=、=、=、&
=、=、|=构成复合赋值表达式的一般形式为:
变量双目运算符=表达式它等价于:
变量=变量运算符表达式如:
a+=5等价于a=a+5x*=y+7等价于x=x*(y+7)r%=p等价于r=r%p3、类型转换如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。
具体规定如下:
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+),【例】自增、自减运算、#includemain()inti=8;
printf(%dn,+i);
/*i先加1,再输出i,输出结果为9*/printf(%dn,-i);
/*i先减1,再输出i,结果为8*/printf(%dn,i+);
/*先输出i,输出结果为8,i再加1,*/printf(%dn,i-);
/*先输出i,输出结果为9,i再减1,*/printf(%dn,-i+);
/*先加输出-i,输出结果为-8,i再加1*/printf(%dn,-i-);
/*先输出-i,输出结果为-9,i再减1*/5、求字节运算符计算表达式的结果所占字节数或某种数据类型的定义字节数。
一般格式:
sizeof(数据类型标识符)或sizeof(表达式)如:
sizeof(float)的值为4,占4个字节;
sizeof(2*3)的值为2,占2个字节;
6、关系运算符和关系表达式关系运算符:
“”(小于)、“”(大于)、”=”(大于等于)、”=”(等于)、“!
=”(不等于)关系表达式:
若关系表达式成立,其值为“真”,否则为“假”;
在C语言中,用0代表“假”,用1代表“真”;
7、逻辑运算符和逻辑表达式:
逻辑运算符:
“!
”(非)、“&
”(与)、“|”(或);
运算优先级:
!
&
|逻辑表达式:
用逻辑运算符将表达式连接起来的式子;
逻辑表达式的结果仍然是逻辑量(“真”或“假”)8、条件运算符:
?
:
先计算表达式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(”Iamastudent!
其中:
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;
#includemain()inti;
i=40;
printf(“%dn”,i);
printf(“%5dn”,i);
printf(“%-5dn”,i);
printf(“%5.3dn”,i);
f格式符:
用于以小数形式输出实数;
%10.3f:
以定点十进制形式显示变量的值,且总共用10个字符,其中,整数位6位,小数位3位,小数点1位;
#includemain()floatx;
x=839.21f;
printf(“%10.3fn”,x);
c格式符:
用于输出一个字符;
x=”a”,y=”b”,则printf(%c%c,x,y)的输出结果为:
ab若变量的值为整数,则输出该整数值为ASCII码的字符:
如x=65,y=98,则printf(“%c,%c”,x,y)的输出结果为:
A,b;
同理,一个字符的数据也可以以整数的形式输出;
如x=a,y=B,则printf(“%d,%d”,x,y)的输出结果为:
97,66s格式符:
用于输出一个字符串。
printf(“%s”,”Iamastudent!
”)e,E格式符:
用于以指数形式输出实数。
printf(“%e”,123.456),则输出结果为:
1.234560e+002;
g,G格式符:
用于输出实数,根据数值的大小自动选择f格式或e格式。
2、格式输入函数scanf()
(1)一般格式:
scanf(格式字符串,变量地址表)其中:
格式字符串使用双引号括起来的字符串,包括“普通字符”(按原样输入)、“格式控制字符”(由%和格式字符组成,用来标定输入数据的格式)。
变量地址表是由若干个变量地址组成的表列,可以是变量的地址,也可以使字符串的首地址。
d格式:
用于输入十进制整数;
scanf(“%d,%d”,&
x,&
y);
则输入格式为:
123,3456u格式:
用于输入十进制无符号整数;
f格式:
用于输入以小数形式的实数;
scanf(“%f,%f”,&
123.23,23.456c格式:
用于输入一个字符;
如:
scanf(“%c,%c”,&
a,bs格式:
用于输入一个字符串;
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(ab)printf(“ab!
例:
若用户输入的数为3的倍数,则显示”OK”#includemain()inta;
scanf(“%d”,&
a);
if(a%3=0)printf(“OK”);
二、if-else语句:
if(表达式)语句1;
else语句2;
给出用户输入的两个整数的较大者#includemain()inta,b;
a,&
b);
if(ab)printf(“themax=%d”,a);
elseprintf(“themax=%d”,b);
三、if语句的嵌套1、if子句中嵌套:
if(表达式1)if(表达式2)语句1;
else语句3;
2、else子句中嵌套if(表达式1)语句1;
elseif(表达式2)语句2;
if(表达式1)语句1;
3、嵌套一般格式:
if(表达式1)语句1;
elseif(表达式3)语句3;
elseif(表达式n)语句n;
else语句n+1;
将用户输入的成绩按以下规则转换成等级成绩:
分数:
90100等级:
优分数:
8089等级:
良分数:
7079等级:
中分数:
6069等级:
及格分数:
60以下等级:
不及格#includemain()intd;
printf(“输入分数:
d);
if(d=90)printf(“优”);
elseif(d=80)printf(“良”);
elseif(d=70)printf(“中”);
elseif(d=60)printf(“及格”);
elseprintf(“不及格”);
四、条件语句:
表达式1?
表达式2:
表达式3执行的过程:
若表达式1的值为非0时,该条件语句的职位表达式2,否则为表达式3;
求一个整数的绝对值#includemain()inti,absi;
i);
absi=i0?
i:
-i;
printf(“%d绝对值是%dn”,i,absi);
五、switch语句switch(表达式)case常量表达式1:
语句1;
break;
case常量表达式2:
语句2;
case常量表达式n:
语句n;
default:
语句n+1;
商店卖货物,每一件3.5元,按购买的数量给与优惠:
购买100件,优惠5%;
购买200件以上,优惠6%;
购买300件以上,优惠8%;
购买400件以上,优惠10%;
购买500件以上,优惠15%;
#includemain()intn;
floatp,price;
scanf(%d,&
n);
switch(n/100)case1:
p=0.05;
case2:
p=0.06;
case3:
p=0.08;
case4:
p=0.10;
case5:
p=0.15;
price=3.5*n*(1-p);
printf(%应付款=%7.2fn,price);
06.循环结构一、for语句:
for(表达式1;
表达式2;
表达式3)语句;
先计算表达式1的值,再计算表达式2的值,若表达式2的值为0,则跳出循环体,转去执行循环体后面的程序命令;
若表达式2的值非0,则执行循环体中的语句,接着计算表达式3的值;
而后,再从计算表达式2的值开始重复上诉操作,直到表达式2的值为0时结束。
计算sum=1+2+3+100的值”#includemain()inti,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的值#includemain()inti,sum;
i=1;
while(i=100)sum=sum+i;
三、do-while语句1、一般格式:
Do语句;
While;
先执行一次循环语句,然后计算表达式的值,若表达式的值非0,则再执行循环语句,然后从计算表达式的值开始重复上述过程,直到计算表达式的值为0,循环结束。
dosum=sum+i;
while(i=100);
四、break和continue语句:
1、break语句:
使用break语句可以提前结束由while、for、do-while语句构成的循环,而去执行循环下面的语句。
判定用户输入的一个数是否为素数#includemain()inta,d;
printf(“请输入一个整数:
for(d=2;
da;
d+)if(a%d=0)break;
/跳出当前的循环,执行循环后面的语句if(da)printf(“%d不是素数”,a);
elseprintf(“%d是素数“,a);
2、continue:
continue语句用于for、while、do-while语句中,其作用是结束本次循环,接着进入下一次是否执行循环的判断。
输入10个非0的整数并求和。
#includemain()inti,n=0,sum=0;
while(n10)printf(“请输入整数:
if(i=0)continue;
/若为0,则继续输入下一个数sum+=i;
n+;
printf(“%d”,sum);
五、三种循环的比较:
1、三种循环可以处理同一个问题,一般情况下可以相互代替;
2、while和do-while循环语句只在while语句之后指定循环条件,在循环体内应包含使循环趋于结束的语句;
for循环语句可以在中包含使循环趋于结束的语句;
3、对于while和do-while循环语句,循环变量的初始化应在while和do-while语句之前完成;
for循环语句可以在中进行;
4、while和for语句是先判断表达式,后执行循环;
do-while循环语句是先执行循环,后判断表达式;
07数组数组是一组具有同一名字、不同下标的变量。
数组中带下标的变量称为数组元素,每个数组元素由数组名字和下标唯一地来确定;
同一数组中的元素数据类型相同。
一、一维数组:
1、定义:
只有一个下标的数组。
2、定义格式:
类型说明符数组名常量表达式如:
inta3;
/定义了一个一维数组,名称为a,数据类型为整型,含3个数组元素a0、a1、a2;
类型说明符:
是指数组的数据类型;
常量表达式:
是一个值为正整数的表达式,用来表示该数组的元素的个数,即数组的大小;
3、数组的引用:
数组名下标;
a24、数组的初始化:
对数组的全部因素赋初值:
inta3=10,20,30;
则该语句执行后,a0=10,a1=20,a2=30;
对数组的部分元素赋初值:
intb3=12,11;
则该语句执行后,b0=12,b1=11,a2=0;
对数组的全部元素赋初值时,也可将数组定义为一个不确定长度的数组:
intc=10,15,20;
则该语句执行后,数组c的长度自动确定为3,c0=10,c1=15,c2=20;
将输入的10个整数按反序输出#includemain()inta10,i;
printf(请输入10个整数:
);
for(i=0;
i=0;
i-)printf(%d,ai);
printf(n);
计算Fibonacci数列的前20项Fibonacci数列定义:
f
(1)=1f
(2)=1f(n)=f(n-1)+f(n-2)(n2)#includemain()intf21,i;
f1=1;
f2=1;
for(i=3;
i=20;
i+)fi=fi-1+fi-2;
i+)printf(%8d,fi);
/每个数字占8位if(i%5=0)printf(n);
/按5个一行输出二、二维数组:
具有两个下标的数组为二维数组。
1、定义格式:
类型说明符数组名常量表达式常量表达式如:
inta32;
/定义了一个二维数组,名称数组名为a,含有6个元素:
a00、a01、a10、a11、a20、a21;
第一个常量表达式指出的是数组的行数;
第二个常量表达式指出的是数组的列数;
二维数组元素的顺序是:
按行存放;
即先顺序存放第一行的元素,再存放第二行的元素以此类推;
其存储格式:
a00a01a10a11a20a212、二维数组的初始化:
同一维数组。
分行为二维数组赋初值:
inta32=1,2,3,4,5,6;
则该语句执行后,a00=1,a01=2,a10=3,a11=4,a20=5,a21=6;
按数组在存储时的排列次序赋初值:
对数组的部分元素赋初值:
inta32=1,2,3,4;
忽略第一维的长度,对二维数组赋初值:
inta2=1,2,3,4,5,6;
该语句执行后,C语言系统自动计算出第一维的长度为6/2=3,同样有:
a00=1,a01=2,a10=3,a11=4,a20=5,a21=6;
将两个2行3列的矩阵相加,并显示结果。
#includemain()inta23=1,3,5,7,9,11;
intb23=2,4,6,8,10,12;
intc23,sum=0,i,j;
i2;
i+)/i表示第1行到第3行for(j=0;
j3;
j+)/j表示第1列到第3列cij=aij+bij;
i+)for(j=0;
j字符串2,则返回1,否则返回-1;
比较两个字符串str1、str2:
if(strcmp(str1,str2)=1)printf(str1str2);
strlen(字符数组);
/返回字符数组中包含的字符串的长度;
strlwr(字符串);
/将字符串的大写字符转换为小写;
strupr(字符串);
/将字符串的小写字符转换为大写;
不使用strlen()函数,计算一个字符串的长度#includemain()inti=0;
charstr30;
printf(“输入一个字符串:
gets(str);
while(stri!
=0)i+;
printf(“字符串长度为:
%dn”,i);
将一字符串逆转#include#includemain()charstr20,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础知识 要点