为了账号安全,请及时绑定邮箱和手机立即绑定
  • printLine()函数被test.c调用,因此要定义为extern

    test.c已经在hello.c中include了,而test.c中的main函数中再次调用了,因此需要用static定义一下say()函数的作用域为test.c



    查看全部
  • i是行,j是空格,k是* i=1时,首先j循环4次空格,跳出j内循环,然后k循环1次*, 跳出k内循环,再执行i外循环 i=2时,首先j循环3次空格,跳出j内循环,然后k循环3次*, 跳出k内循环,再执行i外循环 i=3时,首先j循环2次空格,跳出j内循环,然后k循环5次*, 跳出k内循环,再执行i外循环 i=4时,首先j循环1次空格,跳出j内循环,然后k循环7次*, 跳出k内循环,再执行i外循环 i=5 不符合i<5条件,循环结束

    查看全部
  • 原式=3+4%(3+4)/3+3*4-4

           =3+4/3+12-4

           =3+1+8

           =12 

            4/3=1是因为int所以取整      4%7除不了,4比7小,直接取4

    (“%”、“/”、“*” 位于同一优先级,从左至右运算)


    查看全部
    5 采集 收起 来源:练习题

    2020-03-16

  • 猴子第一天总共摘了N个桃子,第一天吃了N/2+1,剩下N-(N/2+1)=N/2-1,下面用函数关系推到第n天剩余的桃子数(num),

    第1天剩余的桃子数:num(1)=N/2-1;

    第2天剩余的桃子数:num(2)=num(1)/2-1;

    第3天剩余的桃子数:num(3)=num(2)/2-1;

    ... ... ...

    第n天剩余的桃子数:num(n)=num(n-1)/2-1;

    第n+1天剩余的桃子数:num(n+1)=num(n)/2-1;

    所以推导出:num(n)=(num(n+1)+1)*2;或者num(n)=num(n-1)/2-1;

    查看全部
  • %本身是个转义字符(占位符),比如%d、%s等占位符,如果想输出%本身的话,就只能用%%来输出本身(不然机器会识别不出来的),另外一个例子就是你如果想要直接输出\字符的话,也只能使用\\进行输出,因为\本身也是个转义字符,比如\n(换行)、\t(制表符)等,总结一下:就是这类有特殊含义的符号,要想输出本身的话,只能在前面再加个相同的字符把它的特殊性给消除掉。

    查看全部
    6 采集 收起 来源:算术运算符

    2020-02-19

  • 1 数据类型关键字(12个):

    (1) char :声明字符型变量或函数 

    (2) double :声明双精度变量或函数 

    (3) enum :声明枚举类型 

    (4) float:声明浮点型变量或函数

     (5) int: 声明整型变量或函数 

    (6) long :声明长整型变量或函数 

    (7) short :声明短整型变量或函数

     (8) signed:声明有符号类型变量或函数 

    (9) struct:声明结构体变量或函数 

    (10) union:声明共用体(联合)数据类型 

    (11) unsigned:声明无符号类型变量或函数 

    (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

    2控制语句关键字(12个):



    A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与 if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句return :子程序返回语句(可以带参数,也看不带参数)

    3 存储类型关键字(4个)

    (1)auto :声明自动变量 一般不使用 

    (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

     (3)register:声明积存器变量 

    (4)static :声明静态变量

    4 其它关键字(4个):

    (1)const :声明只读变量

     (2)sizeof:计算数据类型长度

     (3)typedef:用以给数据类型取别名(当然还有其他作用 

    (4)volatile:说明变量在程序执行中可被隐含地改变

    查看全部
    6 采集 收起 来源:有名有姓的C

    2020-02-01

  • 带入a,b

      3+4%(3+4)/3+3*4-4   //先算括号,再乘除求余,后加减

    =3+4%7/3+12-4          //4%7得0余4

    =3+4/3+8                    //4/3,两整数相除,不写小数,4/3=1

    =12

    查看全部
    5 采集 收起 来源:练习题

    2020-01-22

  • int a = 3; b = 4;

    a+b%(a+b)/a+a*b-b  先括号后乘除再加减

    先括号  a+b%7/a+a*b-b    

    后乘除  a+4%7/a+a*b-b (乘除同级,从左往右)

                a+4/a+a*b-b    (4%7,一个小数模上大数,余等于被模数,也就4%7=4)

                3+4/3+3*4-4   (4/3=1,两个整数相除,结果也为整数)

                3+1+12-4=12


    查看全部
    5 采集 收起 来源:练习题

    2019-09-25

  • 首先都要修改printLine()为extern,然后有两个方法:

    方法1. #include "test.c"作用就是被引入到hello.c,引入进去相当与hello.c的一部分,所以将say()改为static,调用内部函数。

    方法2. 删除#include "test.c",直接调用say().因为say()默认是extern,外部函数是可以直接调用的。


    查看全部
  • ※ 算术运算符 + - * / % (取余)++(自加) --(自减) ※ 赋值运算符 = +=(a += b; 等价于a = a+b;) -=(a -= b; 等价于a = a-b;) *=(a *= b; 等价于a = a*b;) /= (a /= b;等价于a = a/b;) %=(a %= b;等价于a = a%b;) ※ 关系运算符 > < >= <= == != //判断,为真时返回值为0,假为1 ※ 逻辑运算符 &&(与) || (或) !(非) ※ 三目运算符 “?:”,其格式为:表达式1 ? 表达式2 : 表达式3;(先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果) attention:运算符有优先级.

    查看全部
    5 采集 收起 来源:运算符号是啥

    2019-02-17

  • for是关键字,For不是关键字,C语言区分大小写

    C语言的关键32字

    auto double int struct break else long switch
      case enum register typedef char extern return union
      const float short unsigned continue for signed void
      default goto sizeof volatile do if while static


    查看全部
    5 采集 收起 来源:练习题

    2019-01-19

  • 好难 啊啊啊啊啊啊啊

    查看全部
    • 摘抄自 C语言中文网

    • 其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

    • “case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。

    • 为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

    查看全部
  • 题目问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。

    首先,你定义了一个函数来帮你计算在某天还剩多少桃子,这个函数的名字叫 getPeachNumber(n)。这个函数里面有一个参数 n,用n来表示第几天。比如n=10,就表示第十天,n=9,就表示第九天。

    然后,这个问题是让我们求桃子的数量,所以你还需要定义一个参数 num,用来定义所剩桃子数量。

    根据题目要求,第n天桃子的数量干掉一半再减去一个,就是第n+1天的桃子数量。所以 第n+1天桃子数量先加1再乘2,就是第n天的桃子数量。

    已知第10天时候桃子数量为1。所以getPeachNumber(10)=1。

    同理,第9天所剩桃子数量 num = getPeachNumber(9) = (getPeachNumber(10)+1)*2

    第8天所剩桃子数量 num = getPeachNumber(8) = (getPeachNumber(9)+1)*2

    以此类推.........

    int getPeachNumber(n)  //定义函数,n表示第几天
    {
        int num;    //定义所剩桃子数
        if(n==10) //条件判断如果在第10天的时候,
        {
           return 1;       //递归结束条件(就是题目中给的已知条件,第10天时候桃子还剩1个)
        } 
        else //判断条件,在不是第十天的时候
        {
            num = (getPeachNumber(n+1)+1)*2;   //函数中自己调用自己,就是递归。看最后回答你的第二个问题。

            printf("第%d天所剩桃子%d个\n",n ,num);  //打印语句,打印每天所剩桃子数    }
        return num;  //将num的值返回给函数。
    }

    int main() //程序主函数
    {
        int num = getPeachNumber(1); //这里要通过你定义的函数来计算,在第一天时候桃子数量。
        printf("猴子第一天摘了:%d个桃子。\n", num);
        return 0;
    }


     num = (getPeachNumber(n+1)+1)*2;   //函数中自己调用自己,就是递归。这里回答你的第二个问题。

    本题中的运算基本集中在这里。例如,要想求n=9时候的num值,需要根据n=10的num值来计算,getPeachNumber(9) = (getPeachNumber(10)+1)*2;求n=8时候的num值,需要根据n=9的num值来计算,第8天所剩桃子数量 num = getPeachNumber(8) = (getPeachNumber(9)+1)*2。以此类推,相求第n天的num值,需要根据第n+1天的num值来计算。每计算一次,都需要调用一次这个函数。

    num  = getPeachNumber(n)=(getPeachNumber(n+1)+1)*2

    不论num,还是getPeachNumber(n),都看做是一个字就可以,他的原理很简单, 

    a =(b+1)*2;   b=(c+1)*2;    c=(d+1)*2; d=1。让你求a。


    查看全部

举报

0/150
提交
取消
课程须知
本教程仅仅是C程序设计的入门教程
老师告诉你能学到什么?
什么是程序; 什么是程序结构; 什么是函数; 什么是数组.

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!