重庆市二级C语言基础知识点总结
第一部分 C语言基础知识
      C程序的基本结构
1.(1)一个C程序由一个或者多个函数构成,有且仅有一个主函数main()。
(2)一个函数由函数的首部和函数体组成。
(3)函数是从主函数(main())开始执行,回到主函数(main())结束;(与main()函数在程序中定义的位置无关)
(4)一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束;
(5)算法的特性:有穷性,确定性,有一个或者0输入,有一个或者多个输出;有效性
(6)算法(程序)的几个结构:选择结构,顺序结构,循环结构
2.用户标识符,由数字,字母,下划线构成,第一个不能是数字(一般会出选择题让你判
断哪个标识符定义正确),字母要区分大小写。不能与32个关键字相同。例:P24 第2题P122、2,模拟题第一题
3.注释符://注释一行;/*和*/注释多行,注释不可以嵌套书写。注释没有任何语法功能。
C语言的基本数据类型
1.数据类型:分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型 (空类型合法哦,不要忘记了这个特殊哦)。
        基本数据类型

16位编译器
32位编译器
char :1个字节
char :1个字节
char*(即指针变量): 2个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。)
short int:2个字节
short int : 2个字节
int:  2个字节
int:  4个字节
unsigned int :2个字节
unsigned int : 4个字节
float:4个字节
float:  4个字节
double:  8个字节
double:  8个字节
long:  4个字节
long:  4个字节
long long:  8个字节
long long:  8个字节
unsigned long:  4个字节
unsigned long:  4个字节
一般只需要记int类型是2个字节,float4个字节,double8个字节
注意int的最大表示范围是-32768――+32767,当超过这个范围的时候,即以%d输出+32768时结果为-32768
长整型(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整型的3,如果是a=3L,那么就是长整型的3;当分别以%o,%ld,%x 8进制,长整型,16进制)输出的时候,结果没有前面的00X,和后面的L
  例:int a=075b=ox14;long int c=5L;
        printf(%o,%x,%ld”a b c)结果为75145)
P22第5、11、9题等
2.转义字符:\n    \t    \\    \    \    \ddd(1-3位八进制所代表的字符)    \xhh(1-2位十六进制所代表的字符)  这个书上习题特别多,P25 第19题,P120第3题,P138第16题P147第14题P152第2题等
3.sizeof()和strlen():sizeof()测试字符串的存储长度;strlen()测试字符串长度,只计算遇到的第一个\0前面的字符个数。
例:strlen(“abc\089”)=3    strlen(“abc\012”)=4
  注意这个例题:char a[30]=“abc\0b”; 
sizeof(a)=30 ;      sizeof(“abc\0b”)=6;
strlen(a)=        strlen(“abc\0b”)=3 ;
4.运算符和表达式:记忆书上附录里的运算符优先级(一定要记住常用的)
(1)算术运算符和算术表达式:注意自增++,自减--,自反-,
++,--,当++,--,在变量后面的时候表示在本次运算的时候会改变,在下次引用或者参与运算的时候才会自变;当++,--,在变量的前面的时候则是在本次运算就发生自变(顺便掌握++,--结合性是右结合,若i+++j等价于(i++)+j
(2)关系运算符><<=>== =!= ,==和!=优先级最低。
注意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1(关系运算的结果本应是逻辑值,但C语言中没有逻辑数据类型,因此用整型数据来表示关系运算的结果)。
(3)逻辑运算符&& ||!在这几个中优先级!大于 && 大于 ||,优先级是体现在结合性上而不是运算的先后性上。例如
a=b=c=1;d=++a||++b&&++c
在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1a=2b=1c=1
(4)赋值运算符:简单赋值运算符“=”其左边必须是变量。一般形式:变量名=表达式
复合赋值运算符:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。注意当等号后面接的是表达式的时候要把表达式看成一个整体即x *=y+8等价于x=x*(y+8),y+8是一个整体
(5)条件运算符:由两个符号“?”和“:”构成,
一般形式:表达式1?表达式2:表达式3
先计算表达式1的值,如果值为真(非0),则将表达式2的值作为条件表达式的值,否则将表达式3的值作为条件表达式的值。
(6)逗号运算符和逗号表达式
一般形式:表达式1,表达式2,……,表达式n
求值时从左至右依次计算,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值。
例:#include<stdio.h>
void main()
{    int a;
    printf(%d\n,(a=3*8,a*4,a+5));
}该程序的输出结果为29,变量a的值为24,注意此处考察了逗号表达式、逗号和赋值符号的优先级。=优先级高于,的优先级。
(7)位运算符和位表达式(参考教材P17-18)
位运算符有 | (或)即只要有一个1就是1,  &(与)要全部为1才为1  ^(异或)要不相同才为1 ;注意的是当向左移动n位就是乘以2的n次方;向右移动n位就是除以2的n次方。
(8)强制类型转换运算符
强制类型转换的一般形式:(类型名)表达式
表达式(double)(x+y),是将x+y的值转换为double类型后得到的值,变量x,y和表达式x+y都保持原来的数据类型。
C程序的输出
printf()函数的一般形式为:printf(格式控制字符串,输出表列);
格式控制包括两种信息:(1)格式说明:由%和格式字符组成。如%d、%f等。作用是将输出的数据转换为指定的格式输出。格式说明总是由%字符开始。(2)普通字符:即需要原样输出的字符。如逗号、空格和换行符。所以在写程序输出结果时,这种字符要原样写出来。
putchar()函数的作用是向终端输出一个字符。一般形式:putchar(c),输出字符变量c的值,c可以是字符型变量或整型变量。
%d,%md,%m.nd, %e,以及相应的几种格式是什么意思
C程序的输入
scanf()函数的一般形式为:scanf(格式控制字符串,变量地址表);
这里的格式控制与printf()中的一样。变量地址表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
getchar()函数的作用是从终端输入一个字符。gechar函数没有参数一般形式:getchar()
常用数学类标准库函数的简单应用:
abs()、fabs()、fmod()、sin()、cos()、tan()、exp()、pow()、log()、log10()、sqrt()。参考教材
大一期末c语言必考知识点
第二部分 C程序的基本控制结构
分支结构
1.if语句与程序的单分支结构
形式:if(表达式)
                    语句
功能:若表达式的值为真,则执行语句。
注意,当函数作为if里面的表达式的时候即if(printf(“*”))的时候,则是以函数的返回值判断if的真假,printf输出以1个字符则返回为1,所以这个if是真的;
2.if……else语句与程序的双分支结构
形式:if(表达式)
                  语句1
else
语句2
功能:若表达式的值为真,则执行语句1,否则执行语句2
3.复合语句及其在程序中的使用
复合语句是用一对花括号“{}”将若干条C语句括起来形成的语句序列。复合语句的基本形式如下所示:
    {    语句1;
    …
          语句i;
          …
          语句n;
}
注意:
C语言的复合语句右括号“}”后不需要用分号“;”结尾,如果在程序中有如下形式的语句格式出现,则应认为是复合语句后面跟了一个空语句:
    {  语句序列;};    /* 最后的分号是空语句 */
4.if语句的嵌套与程序的多分支结构
C语法规定else 必须与最近的if相匹配。
5.switch语句与程序的多分支结构
形式:
switch(表达式)
{    case 常量表达式1:语句组1;
case 常量表达式2:语句组2;
………
case 常量表达式n:语句组n;
default:语句组n+1;
}
a)常量表达式必须为整型、字符型或者枚举型,且值必须互不相同
b)case后可包含多个可执行语句,且不必加{ }
c)多个case可共用一组执行语句
d)当表达式的值和某个case后面的语句相匹配时,则执行相应case后面的语句,并继续执行之后的语句。若不希望继续执行之后的语句,则使用break语句跳出switch语句。参考P40,11题

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。