程序设计C语言总复习

马上就要开始C语言的期末考试了,我想通过写一篇博客来完成C语言的复习。多说无益,这就开始。
第一张是引言,没有什么知识点。
第二章是C语言的数据类型。
C语言的程序处理数据有常量和变量两种形式。对于变量记得要区分大小写就行,而常量,在定义时注意类型,常用的有int、char、double、float、unsigned int、long、long long。
第三章主要是一些简单的算术运算符和表达式。
需要注意的是这些运算符的优先级: “-(取相反数)“为优先级最高的算术运算符,其结合性为从右向左;“x”、“/”、“%(求余)”优先级次之,“+”、“-”的优先级最低。“%”只适用于整数,“/”对整数和浮点数进行运算的结果不同。由此不得不说自动类型转换,C编译器在对操作室进行运算之前会将所有操作数都转换成取值范围较大的操作数类型,称为类型提升。C语言还有一大神器——强制转换,强转是一个一元运算符,与其他一元运算符具有相同优先级。由低到高依次是char、short——int——unsigned int——long——unsigned long——double——long double。另有float——double。
这一章有一个我特别容易忘的知识点——常量定义。就比如实现让整数a = 2,宏常量的定义方法是“define a 2”,而用const常量的定义方法是“const int a = 2;”由于宏常量的定义不需要数据类型,机器运行时极容易出错,所以还是习惯const常量好。
第四章是键盘的输入和屏幕的输出。
对于转义字符,常用的"","\r"。C语言的输入输出主要用scanf和printf,举个例子,用scanf和printf输入输出整数a,scanf("%d",&a),printf("%d",a)。%u无符号整型,%s输出字符串,%d是整型,%f是单精度,%lf是双精度。printf中默认输出精度是输出六位小数,如果想规定,可以printf("%7.2d",a)这里7是域宽,2是保留两位小数,当然这个例子不恰当,对整数规定保留小数是没有什么效果的。getchar()和putchar()用于字符输入和输出。“a”与“A”、“b”与“B”的ASCII码值相差32。
第五章是选择控制结构。
单分支控制条件语句用if,双分支控制条件语句用if……else,多分支控制条件语句用if……else if……else if……else,多路选择用swtich语句。条件运算符是C语言中唯一的三目运算符,格式用一个例子来说明:a>b?a:b,即表达式1?表达式2:表达式3;其含义是若表达式1的值非零(是真),则该表达式的值是表达式2的值,否则是表达式3的值。用起来是这样的:
int a,b,max;
cin>>a>>b;
max = a>b?a:b;
cout<<max<<endl;
第六章是循环控制结构。
for循环语句后面不加分号,除非有特殊情况,比如程序需要延时的时候。for加了分号是这样的:
for(int i = 1;i<=n;i++)
{
;
}
while后更不能加分号,否则会出现死循环。在循环结构中分号一定要慎加。do-while后要加分号。
goto是可以在整段程序中随便跳转,但是不建议使用,因为辨识度不高,有跳崩程序的风险,但跳出多重循环是有大用处的;break可用于跳出switch结构,也可用于跳循环结构,多与if一起使用,一旦读到break,立刻终止循环并跳出循环;continue也用于终止循环,但不会跳出循环,只会开始下一次循环。对于嵌套,break和continue只能跳出一层,繁琐的,用goto一下就能解决。
rand()是输出一个范围在0~RAND_MAX之间的随机数,调用头文件<stdlib.h>,为了使随机数随机化,需要用函数srand()设置随机数种子。
第八章是数组。
首先,数组要习惯在外边定义,好处多多。
然后,数组的下标从0开始,在定义数组时不能使用变量定义数组的大小,数组的定义最好用宏定义,以适用未知的变化。一维数组的初始化可以在定义时一并完成。如a[5]={1,2,3,4,5},而a[5] = {1,2,3}是只对数组的的前三个数进行初始化,其余值是0,a[5]={}是将数组全部初始化为0,数组有一种全部清零的方式:memset(a,0,sizeof(a)),头函数是string.h。复制数组中的元素可以用到memcpy(b,a,sizeof(类型)*k),全部复制,直接memcpy(b,a,sizeof(a)),此函是需要调用头文件string.h。
字符串数组是二维数组。输入字符串可以用scanf和gets,scanf输入字符串,读到空格终止一次读入,要习惯用gets输入字符串,输出可以用printf和puts。
最后介绍两个好使的函数。
1.swap(),头文件algorithm,用于冒泡排序。
2.sort(),头文件是algorithm,对给定区间所有元素进行排序,sort函数有三个参数,第一个是要排序的数组的起始地址,第二个是结束的地址(最后一位要排序的地址的下一地址),第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。如何倒序呢?下面来一段程序:
int a[10];
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
for(int i = 1;i<=10;i++)
cin>>a[10];
sort(a,a+10,cmp)
}
就这些,祝我自己考个好成绩!(╹^ ▽ ^╹)

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值