计算机二级C语言要点.docx
- 文档编号:1025615
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:28
- 大小:24.66KB
计算机二级C语言要点.docx
《计算机二级C语言要点.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言要点.docx(28页珍藏版)》请在冰豆网上搜索。
计算机二级C语言要点
第一章:
1、源程序(.c)编辑->目标文件(.obj)连接->可执行文件(.exe)
2、程序设计步骤:
确定数据结构、确定算法、编码、在计算机上测试程序、整理并写成文档资料
3、算法的5个特性:
有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出
4、结构化程序:
顺序结构、选择结构、循环结构
5、模块化程序:
是指C程序是由多个函数组成的
第二章:
1.1、标示符:
关键字、预定义标示符、用户标示符
其中:
关键字(浅蓝色显示)和预定义标示符都有固定的含义,用户标示符就是用户自己定义的变量、函数名等,所以关键字不能作为用户标示符,但预定义标示符可以
1.2、标示符组成:
字母、数字、下划线。
(注:
不能是数字开头)
2.1、变量:
程序运行过程中可以改变的量
2.2、常用变量类型:
整型:
int占4个字节
单精度型:
float占4个字节
双精度型:
double占8个字节
字符型:
char占1个字节
3.1、常量:
程序运行过程中不会改变的量
3.2、常用常量类型:
整型常量:
十进制、八进制(0开头)、十六进制(0x开头)
注:
只有十进制有负数
实型常量:
小数形式(如:
3.2.8-12.1.0)
指数形式(如:
3E-21.2E3-2E4)
注:
指数形式的E前后没有空格,E前面必须是数字,后面必须是整数。
4.1、算术运算符:
+-*/%
注:
两个整数相除只能等于一个整数
%的对象只能是整数
4.2、算术运算符的优先级别:
()->(单目运算符+、-)->(双目运算符*/%+-)
5、强制转换的格式:
(类型名)(表达式)
6.1、赋值表达式:
由赋值运算符构成的表达式
6.2、赋值运算符:
=+=-=*=/=%=++--
注:
赋值号左边只能是变量
同时出现多个赋值号时,从右到左运算
7、自加自减:
++--
(前加:
++x)(后加:
x++)
注:
前加就是执行该语句之前先加
后加的就是先执行该语句后再加
8、逗号表达式:
表达式1,表达式2,表达式3,......表达式n它类似多个语句写在同一行,最后一个表达式的值为整个表达式的值
9、常用算法:
两数互换:
t=a;a=b;b=t;
a=a+b;b=a-b;a=a-b;
除去x的后n位:
x=x/10^n
余下x的后n位:
x=x%10^n
四位数拆分:
q=x/1000%10
w=x/100%10
e=x/10%10
r=x/1%10
保留2位小数第三位四舍五入:
x=x*100;
x=x+0.5;
x=(int)(x);
x=x/100;
或:
(int)(x*100+0.5)/(double)100
第三章:
1、输出语句:
printf("格式控制字符串",输出列表);
注:
双眼号中的内容按原样输出
2、输入语句:
scanf("格式控制字符串",输入列表);
注:
输入列表成员只能是地址
3、常用格式字符:
c字符型、s字符串、d十进制整型、o八进制整型、x十六进制整形、f单精度型、lf双精度型、e指数形式、%输出一个%符号
注:
输入时:
%3c给定3个输入空间,只接受第一个输入的值
输出时:
%3d给定3个输出空间,如果实际数据超出会自动突破
%5.2f给定5个输出空间,保留2位小数第3位四舍五入
输入多个数值型数据时,要加间隔符(如:
空格、回车、tab)
输入多个字符型和数值型时,后面是字符型就不能加间隔符
如有:
scanf("%c%c%c",&a,&b,&c);这时可以加间隔符
4、复合语句:
用花括号括起来的语句,在函数里默认为一条语句
5、空语句:
只有一个分号
(表达式+分号=语句)
第四章
1、关系运算符:
<<=>>===!
=
注:
前四种的优选级别高于后两种
2、逻辑运算符:
!
&&||
以上运算符只有两种运算结果:
为真时结果为:
1,为假时结果为:
0
!
算术关系逻辑赋值逗号
3、短路现象:
inta=0,b=0;
y=a++&&b++;
运算结果:
y=0;a=1;b=0;
y=++a||++b;
运算结果:
y=1;a=1;b=0;
4、if()语句几种基本结构
if(条件表达式)
{
语句序列;
}
if(条件表达式)
{
语句序列1;
}
else
{
语句序列2;
}
if(条件表达式1)
{
语句序列1;
}
elseif(条件表达式2)
{
语句序列2;
}
.....
elseif(条件表达式n)
{
语句序列n;
}
else
{
语句序列;
}
注意:
(1)条件表达式运算结果为非零时可执行相应的语句序列,为零时运行下一个条件表达式
(2)每个用花括号括起来的语句序列都是复合语句,默认为一条语句,无论什么情况都只能而且必须执行其中一个复合语句
(3)复合语句里面也可以使if()语句
(4)语句序列只有一条语句时可以省略花括号,如果省略了括号意味着只有紧跟在条件表达式后面的一条语句受约束
(5)if语句可以嵌套,无论如何嵌套,else始终和上一个不带else的if配对
5、switch语句
switch(表达式)
{
case常量表达式1:
语句1;
case常量表达式2:
语句2;
...
case常量表达式n:
语句n;
default:
语句n+1;
}
注意:
(1)表达式的结果的数据类型与case后常量表达式类型必须一致
(2)由表达式确定从哪个case进入执行语句,如果没有遇到break语句就一直往下执行其他case后的语句,直到最后一条语句,break只能退出里面一层switch
6、常用算法
x为偶数:
if(x%2==0)
x为奇数:
if(x%2==1)或if(x%2!
=0)或if(x%2)
x能被7整除:
if(x%7==0)
x不能被7整除:
if(x%7!
=0)或if(x%7)
x能被7或11整除:
if(x%7==0||x%11==0)
x能被7和11整除:
if(x%7==0&&x%11==0)
if(x%77==0)
x能被7和11整除,但不能同时被他两整除:
if((x%7==0&&x%11)||(x%11==0&&x%7))
a,b均为奇数:
if(a%2&&b%2)
a,b一奇一偶:
if((a%2&&b%2==0)||(a%2==0&&b%2))
if((a+b)%2)
if(a%2!
=b%2)
第五章
1、for语句
for(表达式1;表达式2;表达式3)
{
循环语句;
}
表达式1:
给循环变量赋初始值
表达式2:
条件表达式(!
0时执行循环语句)
表达式3:
循环变量改变
while(条件表达式)
{
循环语句;
}
do
{
循环语句;
}while(条件表达式);
注:
(1)以上循环语句中的条件表达式结果为!
0时(包括为真时)执行循环语句;
(2)花括号括起来的是复合语句,若省略了括号,则只有紧跟其后的一条语句为循环语句
(3)for(...)
for(...)循环语句;
此结构为嵌套关系
(4)for(...)循环语句1;
for(...)循环语句2;
此结构为并列关系
习题:
12.143.355.3
第六章
1、每个字符常量都等价于一个整数,这就是字符的ASCII码值,用单引号括起来。
字符变量用char定义
2、转义字符用\开头,均表示为一个字符
3、字符数据都能做所有数学运算,等价于数值数据
4、在使用scanf连续输入字符数据时不加间隔符,若是连续对字符与数据类型进行输入时,只要需记住后面是输入字符数据时就不加间隔符(空格、TAB、回车)
5、常用字符函数:
charc;
c=getchar()输入字符
putchar(c)输出字符
isalpha(c)判断是否为字母
isdigit(c)判断是否为数字
isupper(c)判断是否为大写字符
islower(c)判断是否为小写字母
toupper(c)转换成大写字母
tolower(c)转换成小写字母
第七章
1、函数
(1)y=sin(x)该函数为库函数,x为参数,y为接受函数返回值,所以该函数为有返回值函数
(2)intadd(intn)
{
inti,sum=0;
for(i=1;i<=n;i++)
{
sum+=i;
}
returnsum;
}
main()
{
printf("sum=%d\n",add(10));
}
(3)voidtt(int,int);
main()
{
intx,y;
x=2;y=3;
tt(x,y);
printf("x=%d,y=%d\n",x,y);
}
voidtt(inta,intb)
{
intt;
t=a;a=b;b=t;
}
(4)voidtt(int*,int*);
main()
{
intx,y;
x=2;y=3;
tt(&x,&y);
printf("x=%d,y=%d\n",x,y);
}
voidtt(int*a,int*b)
{
intt;
t=*a;*a=*b;*b=t;
}
注:
(2)到(4)属于自定义函数。
(2)为求出1到n之和,有返回值。
(3)(4)均为将两数互换,(3)的参数属于单向传递,(4)的参数属于双向传递,(3)(4)均无返回值,(3)函数不能达到互换效果,(4)函数则可以达到
函数定义应该放在函数调用的前面,否则在前面加上函数声明
习题:
15.345.3
第八章
1、地址的感念:
所以变量定义后,系统都会自动分配相应的存储空间(一个存储单元),具体所占存储空间大小决定于变量的类型。
内存的最小单位是字节(八位二进制),每个字节都有相应的编号,这个就叫地址。
2、普通变量存储都是具体的内容,只有指针变量才可以存储地址,这就可以让指针指向该变量,不同类型指针只能存放相应变量地址
3、intx,*p;p=&x;x=10;*p=*p+1;
x=10为直接存取,*p=*p+1为间接存取
p=&x;为前提,不可却
4、intx=10,*p;p=&x;*p++;
++优先级别高于*,但p++为后加,意味着还是先执行*p,后执行p=p+1,所以最后使得p的地址加1,而不是x的值加1
5、intx,*p=&x;与intx,*p;p=&x;的区别
6、指针p++,移动的是一个存储单元的位置,而不是一个字节的位置,所以指针只有指向连续的从存储空间才体现出指针的价值
7、指针因为可以间接存取数据,在函数调用中,参数的双向传递可以体现出其价值
如:
voidtt(inta,intb)
{
intt;
t=a;a=b;b=t;
}
main()
{
intx,y;
x=2;y=3;
tt(x,y);
printf("x=%d,y=%d\n",x,y);
}
与
voidtt(int*a,int*b)
{
intt;
t=*a;*a=*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 要点