(1)程序结构分三种:顺序结构,选择结构,循环结构。
(2)该程序都要从main()开始,然后从最上面往下。
(3)计算机的数据在电脑中保存以二进制的形式,数据存放的位置就是他的地址。
(4)bit是指0或者1,byte是指字节,一个字节八个位。
1.编译预处理不是C语言的一部分,不占运行。
2.C语言以ASCII数值存放在文本文件中。
3.define π 3.1415926
4.在函数中不能再定义函数。
5.算法:可以没有输入,但不能没有输出。
6.break可用于循环结构和Switch语句。
7.逗号运算符级别最低。
1.C语言编写的程序叫源程序。
2.标识符分为关键字,预定义标识符,用户标识符。
3.C语言没有二进制。但是运算的时候所有的进制都要转换为二进制来处理。
4.C语言中的十六进制要以0x开头,八进制以0开头
5.int x=y=1 是错的,不能连续赋值
6.a=5,++a是6,a++是5,++在前先加后用,++在后先用后加
7.0的ASCII值是48,a是97,A是65
8.C语言中所有的关键字必须小写
9.C语言中允许的基本数据类型包括整型,实型,字符型
1.使用printf和scanf函数时,要在最前面加上#include
2.嵌套的if语句:if(a
- printf("%2d",123):第二部分有三位,指定的是两位,所以输出123
- printf("%5d",123):第二部分有三位,指定的是五位,所以输出 123(左边补两个空格)
- printf(“%10f”,1.25):小数要求补足六位,没有六位的补0,结果是 1.250000
- printf(“5.3f”,125):小数三位,整个五位,结果为1.250(小数点算一位)
- printf(“%3.1f”,1.25):小数一位,整个三位,结果为1.3(四舍五入要记得)
数据输入:
1.scanf(“a=%d,b=%d”,&a,&b)(考试重点)
终端输入:1 234567 由于1和2之间有空格,所以1位给x
scanf(“%2d%4d%d”,&x,&y,&z):x=1,y=2345,z=67
scanf函数的格式考察:
注意该函数的第二个部分是&a这样的地址,不是a
- 函数:具有一定功能的一个程序块,C语言的基本组成单位
- 函数不可以嵌套定义,但是可以嵌套使用
- 函数名缺返回值类型,默认为int
- C语言有且仅有一个main函数
1.使用printf和scanf函数时,要在最前面加上#include“stdio.h”
2.printf可以只有一个参数,也可以有两个参数
3.printf(“第一部分”,第二部分)
- Switch可以和break一起用,不可以和continue用
- break:打破的意思,看到break就退出一层循环
- continue:结束本次循环,剩下的语句不执行,跳出进行新一轮循环。
- 传数值的话,形参的变化不会改变实参的变化。
- 传地址的话,形参的变化会有可能改变实参的变化。
库函数是已经写好的函数,pow(a,b)是重点,23是由pow(2,3)表示的。
a=3!=2和(a=3)!=2的区别
第一个a的值是1,因为3!=2得出1,第二个a的值是3,因为括号内先计算
如何判断a是否是质数:(重要!)
void shizhishu (int a){ for(i=2;i<a/2;i++){ if(a%i==0)printf("不是质数"); printf("是质数") ; } }
如何求阶层,n!(重要)
int fun(int n){ int p=1; for(i=0;i<=n;i++){ p=p*i; } return p; }
char a=getchar()是没有参数的,从键盘得到输入的一个字符给变量a.
putchar('y')把字符输出到屏幕中。
x,y两个变量数值互换
要t=x,x=y,y=t;
int *p中,*p是数值,p是地址。
*p可以当做变量来使用,*的作用是取后面地址p里面的数值。
p是当做地址来使用,可以用在scanf函数中:scanf("%d",p)
*p++是地址会变化。(*p)++是数值会要变化
例题:int *p,a[]={1,3,5,7,9};
p=a;
请问*p++和(*p)++的数值分别为多少?
答:(*p)++本身的数值是1,有个++数值会增加,指针不会动,但数值1由于增加了所以变成2;*p++这个本身的数值是1,由于是地址会增加1,所以指针指向数值3.
二级指针:
*p:一级指针:存放变量的地址。
**q:二级指针:存放一级指针的地址。
例:int x=7,int *p=&x,**q=p。问:*p是多少?*q是多少?**q是多少?
答:*p=7,*q=p,**q=7.
数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。
函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。
char ch[]="iamhandsome"
char *p=ch;
*(p+2)=m;*p+2=k;
char a[]={'a','b','c'};数组长度为3;
char a[5]={'a','b','c'};数组长度为5;
scanf("%s",a)不可以接收空格;
gets(a)可以接收空格;
例:a[3][3]={1,2,3,4,5,6,7,8,9};
a[0]+1就是第一行的第一个元素往后面跳一列,那么这里就是a[0][1],所以是1;
a[1]+2就是第二行的第一个元素往后面跳两列,就是a[1][2],所以是6;