C语言笔记

C语言程序的结构:

  1. 一个程序有一个或多个源程序文件组成
    • 预处理指令
    • 全局声明
    • 函数定义
  2. 函数是C程序的主要组成部分
  3. 一个函数包括两个部分
    • 函数首部
    • 函数体
  4. 程序总是从main函数开始执行的
  5. 程序中要求计算机完成的操作是由函数中的C语句完成的
  6. 在每个数据声明和语句的最后必须有一个分号
  7. C语言本身不提供输入输出语句
  8. 程序应当包含注释

运行C 程序的步骤与方法:

  1. 上机输入和编辑源程序
  2. 对源程序进行编译
  3. 进行连接和处理
  4. 运行可执行程序,得到运行结果

程序设计的任务:

  1. 问题分析
  2. 设计算法
  3. 编写程序
  4. 对源程序进行编辑、编译和连接
  5. 运行程序,分析结果
  6. 编写程序文档

算法的特性:

  1. 有穷性
  2. 确定性
  3. 有零个或多个输入
  4. 有一个或多个输出
  5. 有效性

C语言最重要的知识点

总体上必须清楚的:

1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。
2)读程序要从main()入口,然后从最上面顺序往下读(碰到循环做循
环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位
置就是他的地址,
4)bit是位是指为0或者1。byte是指字节,一个字节 二八个位.
概念常考到的:
1、编译预处理不是C语言的一部分,不占运行时间,不要加号,C语言
编主泽的程序称为源程序,它以ASCI数值存放在文本文件中.
2、# define PI3.1415926 ;这个写法是错误的,一定不能出现分号.
3每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5算法:可以没有输入,但是一定要有输出。
6、 break可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二.
第-章C语言的基础知识

第一节对C语言的基础认识

1、C语言编写的程序为源程序,又称为编译单位
2.C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点.

第二节熟悉VC++

1、VC是软件,用来运行写的C语言程序
2、每个C语言程序写完后,都是先编译,后链接,最后运行(.—>.xe
这个过程中注意.C和.obj文件是无法运行的,只有.exe文件才可以运行。

第三节标识符

小标识符(必考内容):
合法的要求是由字母数字下划线组成。有其它元素就错了.
并且第一个必须为字母或者是下划线。第一个为数字就错了,
2、标识符分为关键字预定义标识符用户标识符.
关键字:不可以作为用户标识符号。main define scanf printf 都不是关键
字迷惑你的地方是f是可以作为用户标识用符,因为If中的第一个字母大写
了,所以不是关键字.
预定义标识符:背诵define scanf printf include .记住预定义标识
符可以作为用户标识符。
用户标识符:基本上每年都考,详情请见书上习题.

第四节:进制的转换

十进制转换成二进制、八进制、十六进制。
二进制、八进制、十六进制转换成十进制.

第五节:整数与实数

) C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理.
2)a. C语言中的八进制规定要以0开头. 018的数值是非法的,八进制是
没有8的,逄8进1.

b C语言中的十六进制要以0x开头.
2)小数的合法写法: C语言小数点两边有一个是零的话,可以不用写。
1.0在C语言中可写成1.
0.|在C语言中可写成.1.
3)实型数据的合法形式:

b C语言中的十六进制要以0x开头.
2)小数的合法写法: C语言小数点两边有一个是零的话,可以不用写。
1.0在C语言中可写成1.
0.|在C语言中可写成.1.
3)实型数据的合法形式:
a、2333-1就是合法的,且数据是2333x10*.
&、考试口诀:e前e后必有数,e后必为整数。
4)整型一般是4个字节,字符型是个字节,双精度一般是八个字节:
long int x ;表示X是长整型.
unsigned int x;表早示X是无符号整型.
第六七节:算术表达式和赋值表达式
核心:表达式一定有数值!
1算术表达式:+,-, *,1,%
考试定要注意:“1”两边都是整型的话,结果就是一个整型.312的结果是1.
“1“有一边是小数,那么结果就是小数 .312的结果是0.5
“%"符号请定要注意是余数,考试最容易算成了除号
%符号两边要求是整数。不是整数就错了.
2、赋值表达式:表达式数值是最左边的数值。a= b=5;该表达式为5常量不可
以赋值.

  1. int x=y= 10:错啦,定义时,不可以连续赋值
    2.intx,y;
    x=y=10;对滴,定义完成后,可以连续赋值
    3.赋值的左边只能是一个变量
    4.int x=7.7;对滴,X就是7(因为x为整形变量)

4.三种取整丢小数的情况:
1、int a=1.6 ;
2、(int)a ;
3.1/2 ; 3、2 ;
第八节字符
1)字符数据的合法形式:
‘1’是字符占一个字节,“1”是字符串占两个字节(含有一个结束符号)
10的ASCII数值表示为48 ,‘a’的ASCII数值是97. ‘A’的ASCI数值是65.
一般考试表示单个字符错误的形式:‘65’“1”
字符是可以进行算术运算的,记住:’ 0’-0=48
大写字母和小写字母转换的方法: ‘A’+32 ='a’相互之间-般是相差32.
2)转义字符:
转义字符分为一般转义字符,八进制转义字符,十六进制转义字符.
-般转义字符:背诵\0.\n.、 '.、 “.N.
八进制转义字符:‘\141是合法的, 前导的0是不能写的
十六进制转义字符: “\x6d’才是合法的 前导的0不能写而且X是小写。
3 )字符型和整数是近亲:两个具有很大的相似之处
chara:65
printf(”%c”, a) ;得到的输出结果:a
printf("%d", a) ;得到的输出结果: 65
第九章、位运算
1)位运算的考查:会有一到二题考试题目
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先
把十进制变成二进制再变成十进制)

例-:char a=6,b;
b=a<<2 ;这种题目的计算是先要把a的十进制6化成二进制,再
做位运算。
例二:一定要记住,异或的位运算符号“八”。0异或|得到1.
0异或0得到0两个女的生不出来
考试记忆方法:一男(1)-女(0)才可以生个小孩(1) .
例三:在没有舍去数据的时候,《左移-位表示乘以2;》>右移一-
位表示除以2。
第二章
第-节:数据输出(-)(=)
1.使用printf和scanf函数时,要在最前面加上#include <stdio .h>

  1. printf可以只有一个参数,也可以有两个参数

  2. printf("第一部分”,第二部分);把第二部分的变量、表达式常量以
    第一部分的形式展现出来.

  3. printf(" a=%d, b=%d",12, 34)考试重点!
    一定要记住将12和34以第-部分的形式现在在终立常也就是黑色
    的屏幕上。考核核心为:一模一样。在黑色屏幕上显示为a=12, b=34
    printf (a=%d,\n=%d" 12,34 )那么输出的结果就是:(a=12
    b=34)

  4. int x=017定要弄 清楚为什么是这个结果 !过程很重要
    printf("%d",X); 15
    printf("%0",x) ;17
    printf("%#0",x); 017
    printf("%x”,X);11

printf ("%#*’ ,X); 0x11

6、intx=12 y=34;注意这种题性

charz=‘a’;

printf("%d" ,X,y );一个格式说明,两个输出变量,后面的y不输出

printf("%C",Z)结果为12a ,

格式说明表示内容格式说明表示内容
%d整型int%c字符char
%ld长整型long int%s字符串
%f浮点型float%o带前导的八进制
%lfdoule%#o八进制
%%输出一个百分号%x十六进制
%5d%#x带前导十六进制

举例说明:

printf ("%2d”,123);第二部分有三位,大于指定的两位.原样输出123

printf ("%5d”,123);第二部分有三位,小于指定的五位,边补两个空格123

printf (4%叶”,1.25);小数要求礼足6位的,没有六位的补D.结果为1.250000

printf (%5", 125);小数三位,整个五位,结果为1.250(小数点算-位)

printf (3%31",1.25);小数一位,整个三位,结果为1.3(要进行四舍五入)

第三节数据输入

1 sanf(“a=%d.b=%d”,&a &b )考试超级重点!

一定要记住是以 第-部分的格式在终端输入数据考试核心为:一模一样。

在黑色屏幕上面输入的为a=12, b=34打可以把12和34正确给a和b。有一点不同也不行。

2.scanf("%d,%d",x,y);这种写法绝对错误scanf的第二部分一定要
是地址!
scanf ("%d, %d",&x ,&y );注意写成这样才可以!
3.特别注意指针在scanf的考察(%d",x);错误scanf ("%d",P);正确
sanf ("%d",&p);错误scanf ("%d",*P);错误
4.指定输入的长度(考试重点)
终端输入:1234567
scanf ( “%2d %4d”,&x ,&y ,&z);X为12 ,y为3456 ,z为7.
终端输入:1 234567由于1和2之间有空 格,所以只有1位给X .
soanf( “%2d%4d”,&X ,&y,&z);x为1,为2345,Z为67

5.字符和整型是近亲:
int x=97;
printf ("%d",x);结果为97;
printf ("%c",x);结果为a;
6、输入时候字符和整数的区别(考试超级重点)
scanf (“%d", &X);这个时候输入1,特别注意表示的是整数|
scanf ("%c ",&X);这个时候输入1 ,特别注意表示的是字符个ASI为整数48
补充说明:

  1. scanf函数的格式考察:
    注意该函数的第二个部分是&a这样的地址,不是a;

sanf("%d%d%%d",&a ,&b,&c):跳过输入的第三个数据
2) utar, gethar函数的考查:
char a= gthar()是没有参数的,从键盘得到你输入的一个字符给变量a.
puthar’y’)把字符y输出到屏幕中。
3)如可实现两个变量X,中数值的变换(要求背下来)
不可以把X=y, y=x ;要用中间变量t=x;x=y; y=t.
4)如何实现保留三位小说数,第四位四舍五入的程序(要求背下来)

y=(int)(x100+0.5)/100.0这个保留两位,对第三位四金五入
y=(int)(x
1000+0.5)/1000.0.这个保留三位,对第四位四舍五入y=(int)(x*10000+0.5)/10000.0这个保留四位,对第五位四金五入
这个有推广的意义,请注意X= (int)X这样是把小数部分去掉。
特别要注意:C语言中是用非0表示逻车辑真的,用回表示逻辑假的
C语言有构造类型,没有逻车辑类型
关系运算符号:注意< =的写法,和=的区别!(考试重点)
if只管后面一句个语句,要管多个,请用大括号!
1)关系表达式:
a.表达式的数值只能为1(表示为真),或0(表示为假)
如9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1
如7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0
b.考试最容易错的:就是int x=1 ,y=0,z=2 ; x<y<2是真还是假?
带入为为1<0<2,从娄文学角度出发肯定是错的,但是如果是C语言那么就是正确的!因为要1<0为假得到0,表达式就变成了0<2那么运算结果就是1,成为真的了!
C.等号和赋值的区别!一定记住“=“就是赋值,“
”才是等于多人可以背诵,但我依然要大家一定好好记住否则,做错了,我一定会强烈的鄙视你!
2)逻辑表达式:
核心:表达式的数值只能为1(表示为真),或0(表示为假)
a)共有&& II ! 三种逻辑运算符号。
b)!>&& >||优先的级别。
C)注意短路现象.
d)表示X小于0大于10的方法。
0<X<10是不行的(一定记住)。是先计算0<X得到结果为|或则0;再
用0.,或与10比较得到的总是真(为1)。所以一定要用(0<x)&& (X<10)表
示比0大比10小。
3)if语句
a. else是与最接近的if且没有else的语句匹配
b交换的程序写法:t=X;X=y; y=t ;
c.if(a<b)t=a; a=b; b=t
if(a<b){t=a;a=b; b=t }两个的区别考试多次考到了!
a单独的if语句:if(a<b) t=a;
标准的语句: if(a<b ) min=a ;
else min= b
嵌套的汙语句: if (a<b)
if(b>C ) printf(“ok!”);
多选一的f语句if (at) printf(“a”)
else if(b
t)printf(“b”)
else if(c==t )printf(“c”)

else pritnf(“d”)
经典考题: 结合上面四种于语句题型做题
int a=1,b=0 ;
if(!a) b++ ;
else if (a0)
if(a) b+=2;
else b+=3 ;请问b的值是多少?
正确的是b为3。
int a=1 ,b=0;
if(!a) b++;是假的不执行
else if (a
0)是假的执行
if(a)b+=2属于else if的嵌套if语句,不执行
else b+=3 else if语句没有一个正确的,就执行else的语句!
4)条件表达式:
表达式1 ?表达式2 :表达式3
a.考试口诀:真前假后
b.注意是当表达式1的数值是非0时,才采用表达式2的数值作为整个运算结果,当表达式1的数值为0时,就用表达式3的数值作为整个的结果。
C. int a=1 ,b=2, c=3 ,d=4 .e=5;
k:a>b? c:d>e? d:e求k的数值是多少?答案为3
5) switih语句
a)执行的流程一定要弄懂!
b)注意有break和没有break的差别,书上的两个例子,没有break的时候,只要有一个case匹配了,剩下的都要执行有beak则是直接跳出了swith语句。break在C语言中就是分手,一刀两断的意思。
C) switch只可以和break 一起用,不可以和continue用.
d)switch(x) X: 是整型常量,字符型常量,枚举型数据.
{case…不可以是变量
case2:…

}

e) switch是必考题型,请大家-定要完成书上的课后的Switch的习题
1)三种循环结构:
a) for(); while() do -whil()三种。
b) for循环当中必须是两个分号,千万不要忘记。
C)写程序的时候一定要注意循环一定要有结束的条件,否则成了死循环、
d do- while()循环的最后一个while();的分号一定不能丢。(当心上机改错) do while循环至少执行一定循环。
2) break 和continue的差别
记忆方法:
break :是打破的意思, (破了整个循环)所以看见break就退出整个一层循环。
contine :是继续的意思,(继续循环运算),但是要结束本循环,就是循环内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环.
3)嵌套手盾环
就是有循环里面还有循环.这种比较复杂,要一层一层一步一步耐心
的计算,一般记住两层是处理二维数组的.

  1. while ((c= getcher() !=’\n’)和
    while(c =getchar() !=\n’)的差别
    先看a=3!=2和(a=3)!=2的区别:
    (!=号的级别高于=号所以第一个先计算3!=2)第一个a的数值是得到的1;第二个是a的数值是3
    考试注意点:括号在这里的重要性。
    5)每行输出的五个的写法:
    for(i=o ;i<=ICo ;i++)
    { printf("%d",i);
    if(i=1)%50 printf("\n");如果i是从1开始的话,就是if(i%50)
    printf("\n");}
    6)如何整除一个数: i%5=0表示整除5
    1%2==0表示整除2,同时表示是偶数!
    7)输入123输出321逆序输出数据
    int i= 123
    while (i!=0)
    printf ("%d", i%10);
    i=i/0; }
  2. for只管后面个语句:
    int i= 3
    for(i:3;i<b ; i+t )
    printf ("#”)请问最终打印几个# 号?答案为1个!
    q)不停的输入,直到输入#停止输入!不停地输入,直到输X
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值