• 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”;有一个隐形的字符;

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

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

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

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

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

    strcat();字符串拼接

    strm  p();字符串比较

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

    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 ", i);

        

            printf("%d", i);

        

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

            printf("addbhakdhkj");

            

            

        str[i] = i;

        printf("%d ",i);

        printf("%c ",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 ",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(" ");

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

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

        }

        return 0;

    }

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

  • 相关阅读:
    高程第五章(引用类型)
    第四章(变量、作用域、内存问题)
    label语句和break continue的使用(高程第三章)
    高级程序设计第三章
    max取得数组的最大值
    使用bind()扩充作用域
    函数
    数据类型、字符编码、文件处理
    Python入门
    8.8每日作业系列之循环模块运用
  • 原文地址:https://www.cnblogs.com/jyq-blog/p/4418316.html
Copyright © 2020-2023  润新知