C学习笔记及课后作业

1、Mac系统简介—基本功能

1.1commad+空格  切换输入法

1.2系统自带截屏功能(command+shift+3、command+shift+4)

1.3所有设置都可以通过“偏好设置”来调整(快捷键是command+,)

1.4ctrl+左右键切换桌面,ctrl+上键添加桌面

1.5 command+shift+删除键 清空废纸篓

1.6应用程序切换command+tab

1.7退出当前应用 command+Q

1.8关闭当前窗口command+w

2、Xcode

1、C语言基础

1.1进制转换方法:按权求和、连除倒取余(10进制转化为其他进制的方法)

1.2二进制用B表示,八进制用0表示,十进制用H表示,十六进制用0X表示    

1.3注释(单行和多行注释)

1.4、基本数据类型:char 、int、short、long、float、double

1.5、sizeof的使用方法,sizeof输出值使用%lu;        

1.6、常量:程序运行期间不可改变的量。

1.7、float类型最大可以表示6位小数精度,而double类型最大可以表示15位小数精度。double在32位系统中占用4个字节,在64位系统中占用8个字节。但是double类型在默认情况下,输出小数点后6位,我们通常要减少其小数点后的长度。则可以使用 “%m.nlf"的形式,其中m和n都为正整数。m表示输出的浮点型的数据占m位,如果实际长度不等于m,则按实际长度输出,n表示输出的小数点位数。所以说,m实际上可以不用管,直接用0代替或者不写都可以!

1.8、记住下面的格式化字符串:

 记住下面的格式化字符串:

Code 格式:

%% 一个'%'符号 

%c 字符 

%d 带符号整数 

%i 带符号整数 

%e 科学计数法, 使用小写"e" 

%E 科学计数法, 使用大写"E" 

%f 浮点数 

%g 使用%e或%f中较短的一个 

%G 使用%E或%f中较短的一个 

%o 八进制 

%s 一串字符 

%u 无符号整数 

%x 无符号十六进制数, 用小写字母 

%X 无符号十六进制数, 用大写字母 

%p 一个指针 

%n 参数应该是一个指向一个整数的指针

指向的是字符数放置的位置

1.9、command+反斜杠 添加断点

2.0、C中共有32个关键字

2.1、表达式:常量、变量和运算符的有效合理组合,表达式都有值;

 

1.1、Bool类型:非0即为真。只有真和假两种状态。(在标准的C语言中是没有bool类型的,从C99版本开始添加bool类型)在OC中使用YES表示真,使用NO表示假;其他语言,一般使用true表示真,使用false表示假;

1.2、关系运算符

1.3、逻辑运算符

1.4、运算符优先级:算数运算符>关系运算符>逻辑运算符>赋值运算符

1.5、逻辑运算符

1.6、C中的三种结构:顺序结构、分支结构、循环结构

1.7、switch语句中的变量和case值都必须是整形,而不能是其他类型;

1.8、数据类型分为基本数据类型和特殊类型,特殊类型包括bool型和构造类型,构造类型又包括枚举、数组等;

1.9、注意枚举类型的学习;

2.0、typedef的使用方法。

 

 

1、while循环,do-while循环,for循环;

2、随机数 arc4random()的使用方法, arc4random();输出随机数的类型是unsigned int类型,数据范围为0--2^31-1;

3、求最大值的时候,max定义的初始值不能比任何一个随机数大,而求最小值的时候,min定义的初始值不能比任何一个随机数小;

4、循环结构药店:循环初始值—决定循环从哪开始;

                             循环条件—决定循环是否继续进行(什么时候结束)

                             循环体—决定我要干什么(内容)

                             循环增量—计数的功能(防止死循环)

5、c/oc中m的n次方可以使用函数pow(m,n);

6、变量起名规则:变量名字只能有数字、字母、下划线组成,且不能由数字开头;不能和系统的关键字重名;同一作用域变量名不能重名;变量名见名知意;

7、数组 int a[10];它的数据类型是int [10],而变量名是a;

8、字符数组定义方式:char string[10]={‘a’,’b’,’c’,’d’,’e’};

                                    char string[10]=“abcde”;有一个隐形的\0字符;

                                    char *string=“abcde”;有一个隐形的\0字符;

9、有’\0’结束标识的字符数组也称为字符串。

系统提供的字符串处理函数包括:

strlen();计算字符串(有效)长度, 不包括’\0’的长度;例如:char   string[]=“ios”;字符串长度是3个字符,而内存分配的空间是4个字符。            

strcpy();字符串拷贝,例:strcpy(b, a);

strcat();字符串拼接

strm  p();字符串比较

 

字符串所占的空间 ⾄至少要⽐比 字符串⻓长度⼤大1,因为 字符串以 ‘\0’ 表⽰示结束。系统提供的字符串处理函 数都是根据 ‘\0’ 来判断字符串是否结束    。

10、char类型可以使用%d打印其ASCII码,也可以使用%c打印其值,其中char默认为 signed char,其取值范围为-128到127,也可以定义为unsigned char,其取值范围为0到256;     

例子:int main(int argc, char *argv[])

{

    unsigned char str[10], i;

    

    for(i = 0; i < 255; i++)    //有256改为255

        printf("%d\n", i);

    

        printf("%d", i);

    

//        printf("%d\n", i);

 

        printf("addbhakdhkj");

        

        

    str[i] = i;

    printf("%d\n",i);

    printf("%c\n",i);

    return 0;

}

 

 

 

 

 

/*13、(***)模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时,直接输入其编号(编号由计算机随机产生),

 若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。

*/(第四堂课作业),注意加法的实现和排序(*******把人名和票数捆绑*********)重要、、重要

 

 

//使用随机数+数组实现

 

int main()

{

    int people_num;

    printf("输入群众人数:");

    scanf("%d",&people_num); //群众人数输入

    int candidate = 0;                          //候选人序号

    int tickets[4]={0,0,0,0};                          //候选人票数a[0],代表A的票数

    char people[4]={'A','B','C','D'};

    

    printf("产生的随机票为:");

    for (int i = 0; i < people_num; i++)

    {

        candidate=arc4random()%(4-0+1);//产生随机票,0代表A,1代表B,2代表C,3代表D,4

        printf("%d\t",candidate);

        if (candidate > 3){

            continue;

        }else{

            tickets[candidate]++;

        }

    }

    for ( int i = 0; i <4-1; i++) {

        for (int j = 0; j< 4 - i -1; j++) {

            if (tickets[j] < tickets[j+1]) {

                int temp = 0;

                temp = tickets[j];

                tickets[j] = tickets[j+1];

                tickets[j+1] = temp;

                char temp2 = '0';

                temp2 = people[j];

                people[j] = people[j+1];

                people[j+1] = temp2;

            }

        }

    }

    printf("\n");

    for (int i = 0; i< 4; i++) {

        printf("%c得票%d\n",people[i], tickets[i]);

    }

    return 0;

}

 

 

作业:注意作业中通过数组实现某些过程会特别方便,例如打印*组成的菱形可以通过定义两个数组,一个存放空格,另外一个存放*,这样可以很方便的实现打印的过程。

 

posted @ 2015-04-11 20:17  看天下  阅读(172)  评论(0编辑  收藏  举报