883重要知识点

(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;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯西极限存在准则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值