bokee.net

其他职业博客

正文 更多文章

第一课——第七课 复习(自己整理)

relation operator  关系运算符
logical operator   逻辑运算符

广义的说,逻辑运算符也属于关系运算符的一种

power(2,14)=16384
power(2,15)=32768
power(2,16)=65536
常用的,要记住这三个数

任何整数a,b, a = (a/b)*b+a%b

a*(b+c)=a*b+a*c
取模运算%也满足分配率,但是有一个条件
但是如果a和b有一个是c的倍数,则分配率成立
此时有(a+b)%c=a%c+b%c
%叫moduls

比如a是c的倍数,则(a+b)%c=b%c

数字也有类似空翻的操作
叫移位操作
左移和右移
比如1230,右移一位得到123
如果1230左移一位,就得到12300
左移动是加0不删数字,右移是删右边的数字
左移就是扩大10倍,准确的说就是 a *= 10
右移动一位就是缩小10倍,准确的说就是 a /= 10,
假设进制为N(n=2,8,10,16等等)
左移一位就是 a *= N;
右移一位就是 a /= N
C语言讲师: 这两个式子理解了吧?


tc里的int 是两个字节, long int则是4个字节
sizeof(short int)<=sizeof(int)<=sizeof(long int)
至于short/long到底占多少个字节
由具体的编译器决定
语句int x; 和语句short int x; 等价.
long和short的目的就是指明int所占的字节数

计算机中最小的存储单元是位.每个位只有两个状态0和1.一个字节有8位,所以一个字节可以存储的状态有256个.也就是2的8次方,从00000000——88888888
从2的1到16次方,都应该背下来

C语言讲师: int 和 signed int是等价的
C语言讲师: 一个完整的int变量的声明格式为
C语言讲师: signed/unsigned long/short int 变量名;
C语言讲师: 前面所写的整型变量声明语句int x;实际上是
C语言讲师: signed short int x;的缩写.
C语言讲师: int x;实际上是signed short int x;的缩写
有符号有两种情况,有正有负;无——正和0

C语言讲师: 对同一个类型,有符号和符号所包含的数字个数是一样的,但是范围不同
C语言讲师: 下面看一下每个类型所对应的取值范围
C语言讲师: 大家要会看这个表
C语言讲师: 以后要经常查阅的
char的大小一定是一个字节
但是int /float/double的大小随编译器而定
C语言讲师: signed int的取值范围是-power(2,15)到power(2,15)-1
C语言讲师: 而unsigned int的取值范围就是0到power(2,16)
C语言讲师: 都包括65536个数字

TC要求变量的声明必须统一集中在函数体的开头
所以应该把int result写在int x,y;之后
以后学习c++的话变量的声明就没这么死板了
你在函数体内的任何部分都可以声明变量
老迈村长 21:02:57
汗,我是说把main里的result声明集中到主函数体前面,呵呵
老迈村长21:03:27
每个函数内的局部变量声明都统一放到该函数体的最前面,呵呵


8.9
C语言讲师: c语言程序设计
C语言讲师: 程序设计的一种
C语言讲师: c c++ java asp php

C语言讲师: 假设大连的电话号码有八位,每个位都是0-9的一个数字
00000000  -99999999
10的8次方


假设有一个单词,仅由两个小写字母组成
那么这样的单词有多少个?
26的2次方

C语言讲师: 一个字节为8位
C语言讲师: 这个是基本的,一定要记住
熊猫: sizeof:查看占多少字节 形式printf("%d,sizeof(要查的变量))
C语言讲师: 一般会告诉你一个类型占多少个字节
C语言讲师: 通过字节数 再计算出位数
C语言讲师: 位数等于字节数*8

基本类型的大小一定是2的倍数

C语言讲师: 在我们使用的tc编译器中sizeof(int)==2
C语言讲师: sizeof(float)=4
C语言讲师: sizeof(double)=8
sizeof(char)<=sizeof(int)<=sizeof(float)<=sizeof(double)
C语言讲师: 如果告诉了sizeof的结果之后,就应该能计算出整型的取值范围
C语言讲师: 知道位数N之后,那么该类型可以存储的数字的个数就是pow(2,N)

C语言讲师: 无符号数和有符号数的长度一样
C语言讲师: 只是起点前移
C语言讲师: 有符号数正数和负数各占一半,无大于等于0

C语言讲师: 假设有符号数和无符号数的位数都是N
C语言讲师: 那么无符号数的取值范围是[0, pow(2,n)-1]
C语言讲师: 有符号数的取值范围是[-powe(2,n-1), powe(2,n-1)-1]

整型可以参与的运算有数学运算和关系运算(含逻辑运算)和自增、自减

float和double就不可以进行取模运算% 和自增自减

float x; 那么++x;就是非法语句

C语言讲师: float x=1;
这样也可以

兼容

C语言讲师: int x=1.5;
C语言讲师: 这么写不报错
C语言讲师: 但是执行的时候x会被去掉小数部分

对于任何一个类型,都要了解以下三点:它的字节数,取值范围和可以进行的操作

C语言讲师: 是任何一个程序设计语言都应该提供的基本部件
美丽人生: 控制结构?
C语言讲师: 只是不用的语言提供的方式不一样而已
美丽人生: 啊哦,老师这些之前都没总结地
C语言讲师: 顺序/选择和循环

long int x=70000;
printf("%ld\n");

%ld输出长整型     %s有另外含义了
int 默认的就是short int
int x;是signed short x;的缩写
在32位机器的vc等编译器里short和long都是4字节
具体的取值范围你要会根据sizeof的结果来算,计算原理才是我们要记住的,呵呵

 


C语言讲师: 假设一个学校有10个班级,第n个班级有n个人,那么学校总共有多少人?
C语言讲师: (1+10)*10/2  ==  (1+n)*n/2

 

假设一个十进制数字有12位,这样的数字有多少个?
9*pow(10,11)

10的12次方

如果一个二进制数字有M位,那么这样的二进制数字有多少个,假设首位也可以是0
2的M次方

一个字节等于8位
C语言讲师: 假设一个类型的字节数是N
C语言讲师: 那么这个类型可以表示的数字个数是多少?
P(2,8*N)

我们现在用的电脑是二进制电脑。

 

8.12

double的输出和输入格式字符就是%f

float没有单独的格式字符

C语言讲师: 只要遇到return语句,函数就立即返回
C语言讲师: 后面的语句不再被执行

举例:

#include "stdio.h"
int main()
{
  int radius; /*半径*/
  scanf("%d", &radius);
   if (radius <0)
       return -1;  /*小于0则直接退出*/
   printf("radius=%d\n", radius);
   getch();
   return 0;
}

问一:return -1; 为什么写-1呢  rerurn后面的数怎么定的啊

答一:以后正式做的时候   会有一个设计文档   告诉每个返回值代表什么   需要程序员和设计者沟通好   这里主要是显示return的退出作用 

问二:"只要遇到return语句,函数就立即返回
           后面的语句不再被执行"——  那后面的为什么还会输出的

答二:这里的第一个return是在 if里   只有条件满足了才会执行到这里啊   我的意思是说一旦return语句被执行的话,后面的其他语句都被忽略   这个代码是if和return的结合  如果输入负数,第一个return就被执行了,后面的语句就被忽略了。  输入正数或者0的时候就没被执行

            在主函数里返回就意味着程序退出了,结束运行。

 

c语言要求函数声明必须集中到函数头部,c++里的声明是可以随便放的  。   int x=4;这个是声明语句  

而int x;
    x =4; 这个就是可执行语句了

 

举例:两个例子对比

1。

#include "stdio.h"
int main()
{
  int x  = 4, y = -4;
  int result = (++x > y*(-2));
  printf("result = %d\n", result);
   printf("x=%d, y=%d\n",x ,y);
   getch();
   return 0;
}

 

2。

#include "stdio.h"


int main()
{
    int x,y,result;
    x=4,y=-4;
    result=(++x>y*(-2));
    printf("result=%d\n",result);
    printf("x=%d,y=%d\n",x,y);
    getch();
    return 0;
}

 

3.

#include <stdio.h>
int main()
{
  int x =4, y=-4;
  if (++x > y*-2)
    printf("1\n");
    else
    printf("0\n");
   printf("x=%d, y=%d\n", x,y);
  getch();

  return 0;
}

赋值运算中,式子中的=前面的+、-、*、/都必须和=紧挨着写,否则编译器会报错。

分享到:

上一篇:1.1 数字的转换和存储——第七课

下一篇:第一课——第七课 复习(老师整理一: