好老师重庆市二级C语言基础知识点总结以及题目订正
第一章
第二章
1,算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性
2,算法(程序)的几个结构:选择结构,顺序结构,循环结构
中国卫生人才网登录入口2022第三章
1,int类型是2个字节,float英语四级口语考试难吗是4个字节,dooble是8个字节
2,数据类型分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型 (空类型合法哦,不要忘记了这个特殊哦)
3,变量的地址是确定的,变量变的地方只是地址里面的值。
4,用户标志符,由数字,字母,下划线构成,第一个不能是数字,但是32个关键字除外。
6,长整形(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整形的3,如果是a=3L,那么就是长整形的3;当分别以%o,%ld,%x (8进制,长整形,16进制)输出的时候,结果没有前面的0,0X,和后面的L
例:int a=075,b=ox14;long int c=5L;
printf(“%o,%x,%ld”,a b c); 结果为(75,14,5)
7,当出现’\0’的什么时候为结束,什么时候为八进制的转义字符: 当’\0’后面有1-7之间的数字的时候为转义字符;其他的时候为字符串结束标志,注意转义字符有哪些(参考书p8)
这样一个例题 若 strlen(”abc\089”)=3 strlen(“abc\012”)=4
8,强制转换不会改变一个变量的值,只是改变其作用的那个表达式的值。
9,++,――,当++,——,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当++,――,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握++,――结合性是右结合,若i+++j等价于(i++)+j;
10,复合运算符要注意当等号后面接的是表达式的时候要把表达式看成一个整体即x *=y+8等价于x=x*(y+8),y+8是一个整体
第四章
1,格式输入和输出的时候,注意格式。要严格按照题目的格式进行操作。(在做题的时候尤其是读程序写结果的时候要细心哈!)
2,%d,%md,%m..nd, %e,以及相应的几种格式是什么意思,参考书p13
第五章
1,关系运算符,>,<,<=,>=,= =,!= ,==和!=优先级最低,主意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1.
2,逻辑运算符,&& ,||,!在这几个中优先级!> && > ||,优先级是体现在结合性上而不是运算的先后性上。例如
a=b=c=1;d=++a||++b&&++c在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1
3,if语句基本格式:有else的情况是:if(表达式)语句;else语句;(注意有分号哦),没有else的情况是:if(表达式)语句;当有多个if和else的时候if是与其后最近的没有配对的else结合;注意,当函数作为if里面的表达式的时候即if(printf(“*”))的时候,则是以函数的返回值判断if的真假,printf输出以1个字符则返回为1,所以这个if是真的;
4条件表达式,? : ;右结合性,是从右往左结合,即是以最后一个?开始结合,但是计算顺序仍然是从左到右(这个牵涉到++,--问题)(参考书全国注册会计师成绩查询p16)
5,switch语句,switch语句只有碰到break或者做到最后一个语句才结束,case和default语句都只是入口。(参考书p17页例子)
第六章
1,while语句基本格式是while(表达式)语句;注意在while()后面没有;号,当函数或者赋值表达式放在while的()中时与if的判断方法一样,时候函数的返回值或表达式值的逻辑值;
2,do{ }while();语句和while语句的区别在于前者先做后判断后者是先判断后做,这个知识点多参考书上(p18例题)和卷子上的题
3,for语句,例如:for(i=1;i<100;i++)
s=s+i;注意for括号的后面没有;号,
当有两个for语句即嵌套的for循环的时候 例如:
for(i=1;i<4;i++)
for(j=0;j<5;j++)
s=s+i ; 这个时候是先做i=0;然后判断i;然后做加粗的部分,即是把加粗部分看成一个整体做完之后才会回到i++;所以s=s+i ;这个语句做了20次,(参考书p19例题)
4,总结if,for,whlie,后面如果没有{}的时候,即是只有一个简单的语句的时候,if,for,whlie的作用效力范围是到与之最近的分号结束;当有{ }的时候即是把{ }看成一个整体,控制范围是整个{ }里面的所有语句。
5,break是结束整个循环;contine结束本层循环;具体参考书(p19页例子这个很重要哦,一定要掌握)
第七章和第十章(重点哦!!!!!!)
1,维数的判断,当*,[]前面有int ,char,float等常见的类型名的时候表示是在定义,一个
* 或者[]表示升一维,当表达式前面没有int ,char,float的时候则是在引用(或称为使用)一个*或者[ ]表示降一维;
2,注意这样一些东西:int a[3][3],**p=a则, a[0]等价于*p表示的是这个2维数组的第一行或者说是这个2维数组的首元素的地址;a[i]等价与*(p+i)都表示是数组的第i行或者是第i行的首元素的地址;所以要引用这个a数组的元素应该用a[i][j]或者**p
3,对一个数组的输入输出总结
当数组是int(整形的时候)
一个有n个元素的1维数组:输入 for贵州省招生考试院网站(i=0;i<n;i++)
scanf(“%d,&a[i]”);
输出 for(i=0;i<n;i++)
printf(“%d”,a[i]);注意int类型要以%d的格式
一个有n行m列的2维数组:输入:for(i=0;i<n;i++)(这里i控制行,j控制列)
for(j=0;j<m;j++)
scanf公务员公示最怕举报什么(“%d”,&a[i][j]);
输入:for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf(“%d”,a[i][j]);(注意在输入的时候才有&符号,输出的时候没有)
一个字符串数组即 char a[10];对这个的输入有两种方式
(1)for(i=0;i<n;i++)
scanf(“%c”,&a[i]);
(2)gets(a); scanf(“%s”,a)(注意这两种方式的括号里面的只能是一个数组名)
输出也对应有两种方式:(1),for(i=0;i<n;i++)
printf(“%c”, a[i]);
(2)puts(a);printf(“%s”,a);注意这两种方式的括号里面的只能是一个数组名;
4,对一个有n个元素的数组的遍历(既是说从第一个成员访问到最后一个成员)有以下两种方式:
1, for(i=0;i<n;i++) 2重庆2022年公务员招考公告,for(i=0;a[i]!=’\0’;i++)
a[i]; (都是指从a[0]访问到a[n-1]) a[i]; 参考书p31
5,对字符串的操作注意:sizeof是一个系统关键字,不是函数,求其后边的参数占用的内存空间,strlen 求字符串中有多少有效字符。
注意这个例题:char a[30]=“abc\0b”; sizeof(a)=30 ; sizeof(“abc\0b”)=6;
strlen(a)=3 strlen(“abc\0b”)=3 ;
6, *p++ 表达式中p与++先结合,取完值之后地址指向下一个元素的地址;*++p则是直接输出第二个元素,指针输出完之后,也指向了下一个元素的地址
7,char a[10]; while(a[i])和while(a[i]!=‘\0’)都是表示当a数组不结束的情况下继续循环,一般就是指访问整个数组
8,自编函数实现求字符串的长度:
int fun(char *a) int fun(char *s)
{ int k; { char *p;
发布评论