📌  相关文章
📜  AKTU第一学年第二学期解题纸2017-18 | COMP。系统和C编程| B段

📅  最后修改于: 2021-05-20 06:37:09             🧑  作者: Mango

论文下载链接:论文|第二学期| 2017-18

时间: 3小时
总分:70

注意:-

  • 共分为三个部分。 A节为20分, B节为30分, C节为50分。
  • 尝试所有问题。每个问题都带有标记。
  • 必要时假定合适的数据。

2.尝试以下任何三个:(7 * 3 = 21)

  1. 用C编写一个程序,以查找4 * 4矩阵中最多的元素。
    // C program for finding maximum in 4x4 matrix.
      
    #include 
      
    #define MAX 100
      
    // Finds maximum
    void max(int arr[][MAX], int n)
    {
        int max = arr[0][0];
        int i, j;
      
        // Traverses rows one by one
        for (i = 0; i < n; i++) {
            for (j = 0; j <= n; j++) {
      
                // Compare elements
                if (arr[i][j] > max) {
                    max = arr[i][j];
                }
            }
        }
        printf("Largest number = %d", max);
    }
      
    /* Driver program to test above function */
    int main()
    {
        int arr[MAX][MAX] = { { 5, 9, 11, 55 },
                              { 1, 25, 0, 14 },
                              { 74, 21, 6, 4 },
                              { 2, 24, 65, 43 } };
        max(arr, 4);
      
        return 0;
    }
    
    输出:
    Largest number = 74
    
  2. 举例说明以下指令的语法和用法:
    1. #ifdef:此指令是最简单的条件指令。此块称为条件组。如果定义了宏名,则受控文本将包含在预处理器输出中。条件内的受控文本将包含预处理指令。仅在条件成功时才执行它们。您可以将它们嵌套在多个层中,但是必须将它们完全嵌套。换句话说,“#endif”始终匹配最接近的“ #ifdef”(或“ #ifndef”或“ #if”)。同样,您不能在一个文件中开始条件组,而在另一个文件中完成它。

      句法:

      #ifdef MACRO
          controlled text
      #endif /* macroname */
      
    2. #undef:#undef指令用于取消定义现有的宏。该指令的工作方式如下:

      句法:

      #undef LIMIT

      使用此语句将取消定义现有的宏LIMIT。在此语句之后,每个“ #ifdef LIMIT”语句将评估为false。

    3. #pragma:此伪指令是一种特殊用途的伪指令,用于打开或关闭某些功能。这类指令是特定于编译器的,即它们随编译器的不同而不同。下面讨论了一些#pragma指令:
      • #pragma startup#pragma exit :这些指令可帮助我们指定程序启动之前(控件传递到main()之前)和程序退出之前(控件从main()返回之前)所需运行的功能。 。
      • #pragma warn指令:该指令用于隐藏在编译过程中显示的警告消息。
        我们可以隐藏警告,如下所示:
        • 警告的#pragma -rvl:这个指令皮革时应该返回一个值的函数没有返回值被上调的警告。
        • #pragma warn -par :此伪指令隐藏那些在函数不使用传递给它的参数时引发的警告。
        • #pragma warn -rch :此伪指令将隐藏无法访问代码时发出的警告。例如:在函数的return语句之后编写的任何代码均不可访问。
    4. #include:使用include指令时,包含的头文件(经过预处理)的内容将复制到当前文件中。
      尖括号<和>指示预处理器在保存所有头文件的标准文件夹中查找。用双引号“和”指示预处理器查看当前文件夹(当前目录)。
  3. 在以下内容上写简短说明:
    1. 自上而下的程序开发方法:这种方法是指根据任务将程序分为子程序的程序开发。这些任务称为模块。 C语言支持这种方法,程序员也认为这种方法是一种以分层方式创建项目的好方法。在此首先开发主要模块,然后再开发其他模块,依此类推。
    2. 结构和数组之间的区别
      ARRAY STRUCTURE
      Array refers to a collection consisting of elements of homogenous data type. Structure refers to a collection consisting of elements of heterogenous data type.
      Array uses subscripts or “[ ]” (square bracket) for element access Structure uses “.” (Dot operator) for element access
      Array is pointer as it points to the first element of the the collection. Structure is not a pointer
      Instantiation of Array objects is not possible. Instantiation of Structure objects is possible.
      Array size is fixed and is basically the number of elements multiplied by the size of an element. Structure size is not fixed as each element of Structure can be of different type and size.
      Bit filed is not possible in an Array. Bit filed is possible in an Structure.
      Array declaration is done simply using [] and not any keyword. Structure declaration is done with the help of “struct” keyword.
      Arrays is a primitive datatype Structure is a user-defined datatype.
      Array traversal and searching is easy and fast. Structure traversal and searching is complex and slow.
      data_type array_name[size]; struct sruct_name{
      data_type1 ele1;
      data_type2 ele2;
      };
      Array elements are stored in continuos memory locations. Structure elements may or may not be stored in a continuos memory location.
      Array elements are accessed by their index number using subscripts. Structure elements are accessed by their names using dot operator.
  4. 用“ C”语言编写一个递归程序以打印斐波那契数列。
    // Fibonacci Series using Recursion
      
    #include 
      
    int fib(int n)
    {
        if (n <= 1)
            return n;
        return fib(n - 1) + fib(n - 2);
    }
      
    int main()
    {
        int n = 9;
      
        printf("%d", fib(n));
      
        return 0;
    }
    
    输出:
    34
    
  5. 什么是算法?开发算法时应遵循的主要步骤是什么?编写一个算法,计算给定数字的总和。算法:算法用于以明确定义的步骤的形式为特定问题提供解决方案。每当您使用计算机解决特定问题时,导致解决方案的步骤都应正确传达给计算机。在计算机上执行算法时,将几种操作(例如加法和减法)组合在一起以执行更复杂的数学运算。可以使用自然语言,流程图等表达算法。

    设计算法的步骤:

    • 步骤1:满足先决条件

      为了编写算法,需要满足以下条件:

      1. 这是问题由该算法来解决。
      2. 问题必须同时解决的问题要考虑的约束上
      3. 解决问题要采取的投入
      4. 解决问题时可以预期的输出
      5. 在给定的矛盾条件下,该问题的解决方案
    • 步骤2:设计算法
    • 步骤3:通过实施对算法进行测试。

给定数字位数求和的算法:

  1. 取得号码
  2. 声明一个变量以存储总和并将其设置为0
  3. 重复接下来的两个步骤,直到数字不为0
  4. 借助余数’%’运算符,将其除以10,然后将其加到总和中,即可得到数字的最右边数字。
  5. 借助“ /”运算符将数字除以10
  6. 打印或返回总和