zoukankan      html  css  js  c++  java
  • 第一次博客作业

    一、思维导图。

           

    二、对以下语法的认识。

           1.  if-else:

                   用法格式:

    if( 判断条件)
    {
          执行的语句 ;
     }
    else  //if的条件为0时,需要执行这里
     {
           执行的语句 ;
    }

    else总是与与其最接近的且没有与其他else配对的if搭配,判断条件语句不需要加分号,而执行的语句需要输入分号。判断语句需要用括号括起来,执行语句块最好用用 { }括起来,才严谨。

          2.  switch:

                  用法格式:

    switch ( )//括号内输入表达式
    {
    case 常量表达式1 : 语句1;breakcase 常量表达式2 : 语句2:break;
    .......
    case 常量表达式n:   语句n;breakdefault:     语句n+1break

    开关语句(switch)首先计算()内表达式的值,然后在对应case的值,并执行对应case的语句,如果无任何一个case的值与之对应,则执行default后面的语句,然后跳出switch语句。若执行完对应的语句后无break,则将按顺序往下执行其他case里的语句,直到读到break才跳出switch。使用switch语句需要注意的是 switch(表达式)表达式的值必须是整形或者是可以转化成整型的数值类型,例 int、char等,但long和string则不能用于switch语句。switch()后面没有分号,没有分号,没有分号!直接连接  { } 。 case常量表达式后用的是 ‘ :’  而是不是  ‘ ;’ 。

        3.for:

             用法格式:

    for(初始化 ;条件表达式 ;增量;)
    {
         循环体语句 ;
    }

    for循环步骤,先初始化然后判断条件表达式是否为真,真则执行循环体语句,然后变量执行增量,再判断条件表达式,如果为假则推出for循环,若真则继续执行循环直至条件表达式不成立,结束。for()中条件表达式和增量可以没有,但分号不可少,当没有条件表达式时,需要在循环体语句中增加能跳出循环的语句,否则该for循环变为死循环,就没意思了。

         4.while:

                用法格式:

    while(表达式)
    {
      循环体语句;
    }

    while循环步骤,先进性表达式的判断,结果为真则进入循环体,执行循环体语句,读到break或表达式变为假的时候推出循环体。使用while循环,需要注意的是 while(表达式)后千万不要加  分号(  )千万不要加 ,千万不要加!while里面定义的变量,在while外面 无法使用。

        5.do-while:

                用法格式:

    do
    {
        循环体 ;
    
    }while (表达式);

     do-while循环步骤,先进入循环体,执行循环体语句,然后判断表达式真或假,真则再执行循环体语句,直到表达式为假,则推出循环体。do-while和while循环最大区别为,do-while无论如何都会先执行一次循环体,while有可能一次都不执行循环体。

         6.break和continue:

                  用法:均只用于循环语句和开关语句中,break为结束循坏,跳出循环体;而continue则为结束本次循环,进入下一次循环。

    三、2.3 2.4  、第三章作业和4.1作业pta截图,以及节选题目分析。

           2.3 2.4分数截图:

           第三章作业pta分数截图:

              第四章作业pta分数截图:

             节选题目分析:

      1、题目:

    答案:

      

     1 #include <stdio.h>
     2 
     3 int main( ) 
     4 {
     5     char op;//定义字符常量用来存放运算符号。
     6     int number1, number2, result;//定义三个整型的变量,前两个用来存放需要进行运算的数字,后面一个用来存放运算结果。
     7     scanf("%d %c %d", &number1, &op, &number2);
     8     switch (op)//判断运算符号
     9     {
    10     case '+':            //加法运算
    11         result = number1 + number2; 
    12         printf("%d", result); 
    13         break;
    14 
    15     case '-':           //减法运算
    16         result = number1 - number2;
    17         printf("%d", result); 
    18         break;
    19 
    20     case '*':           //乘法运算
    21         result = number1 * number2; 
    22         printf("%d", result); 
    23         break;
    24 
    25     case '/':          //除法运算
    26         if (number2 != 0)        //保证分母不为零,除法运算式成立
    27         { 
    28             result = number1 / number2; 
    29             printf("%d", result); 
    30         }
    31         break;
    32 
    33     case '%':          //求余预算
    34         if (number2 != 0)         //保证分母不为零,除法运算式成立
    35         {
    36             result = number1 % number2; 
    37             printf("%d", result); 
    38         }
    39         break;
    40 
    41     default: printf("ERROR"); break;     //非法字符
    42     }
    43     return 0;
    44 }

        

            这题需要注意的是,在使用switch语句时,不要忘了在每个case运行结束后 给个break,没有break ,就不会跳出switch,导致最后结果的错误。在提交这道题的时候,有个测试点 (非法字符 )一直提示答案错误,想了好久怎么判断非法字符,后来才发现,没有善于利用default。完成此题,我学会了switch语句的用法。(思路在代码注释)

       2、题目:

     答案:

     1 #include <stdio.h>
     2 
     3 int level(int levle);
     4 
     5 int main() {
     6     int n, point, levels;             //定义三个整型变量分别储存人数、分数、等级
     7     int num1 = 0, num2 = 0, num3 = 0, num4 = 0, num5 = 0;        //定义五个变量分别储存A、B、C、D、E等级的总人数
     8     scanf("%d
    ", &n);                //输入学生总人数
     9     for (int i = 1; i <= n; i++)      //进入循环,读取n个学生的成绩并进行各等级人数的计算
    10     {
    11         scanf("%d", &point);
    12         levels = level(point);        //调用自主编写的求等级函数
    13         switch (levels)              //计算各等级人数
    14         {
    15         case 'A': num1++; break;
    16         case 'B': num2++; break;
    17         case 'C': num3++; break;
    18         case 'D': num4++; break;
    19         case 'E': num5++; break;
    20         }
    21     }
    22     printf("%d %d %d %d %d", num1, num2, num3, num4, num5);         //按要求格式输出各等级的人数
    23 }
    24 int level(int point)           //自主编写等级函数
    25 {
    26     char level;               //定义字符变量,意在将分数转为等级
    27     if (point >= 90)
    28     {
    29         level = 'A';
    30     }
    31     else if (point >= 80 && point < 90)
    32     {
    33         level = 'B';
    34     }
    35     else if (point >= 70 && point < 80)
    36     {
    37         level = 'C';
    38     }
    39     else if (point >= 60 && point < 70)
    40     {
    41         level = 'D';
    42     }
    43     else
    44     {
    45         level = 'E';
    46     }
    47     return level;           //返回对应等级
    48 }

             在做此题时,首先先完成成绩由百分数转换为五分制的子函数编写,然后再将scanf写进main函数的循环里,为读取完所有学生的分数。完成此题,我学会了编写自主函数并正确调用它。(思路在代码注释)

     3、题目:

    答案:

     1 #include <stdio.h>
     2 
     3 int main( ) 
     4 {
     5     int a, n, sum = 0 ;     //定义三个整型变量,储存输入的数字a、项数n和计算的和。
     6 
     7     int num;               //定义一个整型,将a的值赋予它,便于后面的a的值改变,还能对a初始值取用。
     8 
     9     scanf("%d%d", &a, &n);
    10 
    11     num = a;               //赋值
    12 
    13     if (a <= 9 && n <= 9)      //应题目对a和n的大小要求,进入执行语句。
    14     {
    15         for (int i = 1; i <= n; i++)    //设置循环,将n个由a组成的特殊数列相加求和。
    16         {
    17             sum = sum + a;             //求和
    18 
    19             a = a * 10 + num;          //每一次循环,都将a的值变为n个a组成数
    20         }
    21         printf("s = %d", sum);        //循环外,按要求输出最后的值
    22     }
    23     return 0;
    24 }

           此题考点在于对for循环的运用,难点在如何将初始a逐次变为递增的n个a组成的新的数。完成此题,我对for语句有了更进一步的掌握。(思路在编程注释里)

  • 相关阅读:
    Android之弹出/隐藏系统软键盘
    Android之自定义侧滑菜单
    2017-2018-2 20179204 PYTHON黑帽子 黑客与渗透测试编程之道
    2017-2018-2 20179204《网络攻防实践》第十三周学习总结 python实现国密算法
    2017-2018-2 20179204《网络攻防实践》第十二周学习总结 免杀技术
    2017-2018-2 20179204《网络攻防实践》第十一周学习总结 SQL注入攻击与实践
    2017-2018-2 20179204《网络攻防实践》第十周学习总结 缓冲区溢出漏洞实验
    2017-2018-2 20179204《网络攻防实践》第九周学习总结
    2017-2018-2 20179204《网络攻防实践》第八周学习总结
    2017-2018-2 20179204《网络攻防实践》第七周学习总结
  • 原文地址:https://www.cnblogs.com/AJAJAJfighting/p/11666209.html
Copyright © 2011-2022 走看看