AKTU 1er año Sem 1 Documento resuelto 2016-17 | COMP. SISTEMA Y PROGRAMACION C | Sec C

Enlace de descarga de papel : Papel | Sem 1 | 2016-17

Tecnología B.
(SEM-II) EXAMEN TEÓRICO 2016-17
SISTEMAS DE COMPUTACIÓN Y PROGRAMACIÓN EN C

Tiempo: 3 horas
Marcas totales : 100

Nota :-

  • Hay tres secciones. La Sección A lleva 20 puntos, la Sección B lleva 30 puntos y la Sección C lleva 50 puntos.
  • Intenta todas las preguntas. Las marcas se indica frente a cada pregunta.
  • Asumir datos adecuados siempre que sea necesario.

Sección – C

Intenta dos preguntas cualquiera de esta sección: (2*15 = 30)

3. a) ¿A qué te refieres con clasificar? Escriba un programa en C para ordenar los n enteros positivos dados. También proporcione el diagrama de flujo para el mismo.

Se utiliza un algoritmo de clasificación para reorganizar una array dada o enumerar elementos de acuerdo con un operador de comparación en los elementos. El operador de comparación se utiliza para decidir el nuevo orden de los elementos en la estructura de datos respectiva.

Por ejemplo : La siguiente lista de caracteres está ordenada en orden creciente de sus valores ASCII. Es decir, el carácter con menor valor ASCII se colocará primero que el carácter con mayor valor ASCII.

sorting-algorithms

Diagrama de flujo de la clasificación de selección:

Programa en C para ordenar los elementos de un arreglo dado de N enteros positivos:

// C program to sort the elements
// of a given array of N positive integers
  
#include <stdio.h>
  
void swap(int* xp, int* yp)
{
    int temp = *xp;
    *xp = *yp;
    *yp = temp;
}
  
void selectionSort(int arr[], int n)
{
    int i, j, min_idx;
  
    // One by one move boundary of unsorted subarray
    for (i = 0; i < n - 1; i++) {
        // Find the minimum element in unsorted array
        min_idx = i;
        for (j = i + 1; j < n; j++)
            if (arr[j] < arr[min_idx])
                min_idx = j;
  
        // Swap the found minimum element with the first element
        swap(&arr[min_idx], &arr[i]);
    }
}
  
/* Function to print an array */
void printArray(int arr[], int size)
{
    int i;
    for (i = 0; i < size; i++)
        printf("%d ", arr[i]);
    printf("\n");
}
  
// Driver program to test above functions
int main()
{
    int arr[] = { 64, 25, 12, 22, 11 };
    int n = sizeof(arr) / sizeof(arr[0]);
    selectionSort(arr, n);
    printf("Sorted array: \n");
    printArray(arr, n);
    return 0;
}
Producción:

Sorted array: 
11 12 22 25 64

3. b) Escribir un programa para comprobar si un número dado es Armstrong o no. Como 153 = 13+ 53+ 33.

// C program to find Armstrong number
  
#include <stdio.h>
  
/* Function to calculate x raised to the power y */
int power(int x, unsigned int y)
{
    if (y == 0)
        return 1;
    if (y % 2 == 0)
        return power(x, y / 2) * power(x, y / 2);
    return x * power(x, y / 2) * power(x, y / 2);
}
  
/* Function to calculate order of the number */
int order(int x)
{
    int n = 0;
    while (x) {
        n++;
        x = x / 10;
    }
    return n;
}
  
// Function to check whether the given number is
// Armstrong number or not
int isArmstrong(int x)
{
    // Calling order function
    int n = order(x);
    int temp = x, sum = 0;
    while (temp) {
        int r = temp % 10;
        sum += power(r, n);
        temp = temp / 10;
    }
  
    // If satisfies Armstrong condition
    if (sum == x)
        return 1;
    else
        return 0;
}
  
// Driver Program
int main()
{
    int x = 153;
    if (isArmstrong(x) == 1)
        printf("True\n");
    else
        printf("False\n");
  
    x = 1253;
    if (isArmstrong(x) == 1)
        printf("True\n");
    else
        printf("False\n");
  
    return 0;
}
Producción:

True
False

4. a) ¿Definir una estructura? Escriba un programa en C para crear una base de datos de cincuenta estudiantes para almacenar detalles personales como el número de registro, el nombre y las calificaciones. Imprime todos los datos de los alumnos cuyo nombre es ingresado por el usuario.

Una estructura es un tipo de datos definido por el usuario en C/C++. Una estructura crea un tipo de datos que se puede usar para agrupar elementos de tipos posiblemente diferentes en un solo tipo.

¿Cómo crear una estructura?
La palabra clave ‘struct’ se utiliza para crear una estructura. El siguiente es un ejemplo.

struct address {
    char name[50];
    char street[100];
    char city[50];
    char state[20];
    int pin;
};

 
¿Cómo declarar variables de estructura?
Una variable de estructura puede declararse con una declaración de estructura o como una declaración separada como los tipos básicos.

// A variable declaration with structure declaration.
struct Point {
    int x, y;
} p1; // The variable p1 is declared with 'Point'
  
// A variable declaration like basic data types
struct Point {
    int x, y;
};
  
int main()
{
    struct Point p1; // The variable p1 is declared like a normal variable
}

Nota : en C++, la palabra clave struct es opcional antes de la declaración de una variable. En C, es obligatorio.

Programa:

#include <stdio.h>
#include <string.h>
  
struct Student {
    int roll_no;
    char name[100];
    float marks;
};
  
int main()
{
    int i = 0;
    char n[100];
    struct Student student[50];
  
    for (i = 0; i < 50; i++) {
        printf("\nEnter details for Student %d", i + 1);
  
        printf("\nRoll Number: ");
        scanf("%d", &student[i].roll_no);
  
        printf("\nName: ");
        scanf("%s", student[i].name);
  
        printf("\nMarks: ");
        scanf("%f", &student[i].marks);
    }
  
    printf("\nEnter the name of the student whose details you need: ");
    scanf("%s", n);
  
    for (i = 0; i < 50; i++) {
        if (strcmp(n, student[i].name) == 0) {
  
            printf("\nRoll Number: %d", student[i].roll_no);
  
            printf("\nName: %s", student[i].name);
  
            printf("\nMarks: %f", student[i].marks);
  
            break;
        }
    }
  
    if (i == 50)
        printf("No student found with this name");
}

4. b) ¿A qué te refieres con macro? Explicar tipos de macro con sus ejemplos.

Macros : Las macros son fragmentos de código en un programa al que se le da algún nombre. Cada vez que el compilador encuentra este nombre, el compilador reemplaza el nombre con la pieza de código real. La directiva ‘#define’ se usa para definir una macro. Ahora entendamos la definición de macro con la ayuda de un programa:

#include <iostream>
  
// macro definition
#define LIMIT 5
int main()
{
    for (int i = 0; i < LIMIT; i++) {
        std::cout << i << "\n";
    }
  
    return 0;
}
Producción:

0
1
2
3
4

Producción:

0
1
2
3
4

En el programa anterior, cuando el compilador ejecuta la palabra LIMIT, la reemplaza con 5. La palabra ‘LIMIT’ en la definición de macro se llama plantilla de macro y ‘5’ es expansión de macro.
Nota : No hay punto y coma (‘;’) al final de la definición de macro. Las definiciones de macro no necesitan un punto y coma para terminar.

Macros con argumentos : También podemos pasar argumentos a las macros. Las macros definidas con argumentos funcionan de manera similar a las funciones. Entendamos esto con un programa:

#include <iostream>
  
// macro with parameter
#define AREA(l, b) (l * b)
int main()
{
    int l1 = 10, l2 = 5, area;
  
    area = AREA(l1, l2);
  
    std::cout << "Area of rectangle is: " << area;
  
    return 0;
}
Producción:

Area of rectangle is: 50

Producción:

Area of rectangle is: 50

Podemos ver en el programa anterior que cada vez que el compilador encuentra AREA(l, b) en el programa, lo reemplaza con la instrucción (l*b) . No solo esto, los valores pasados ​​a la plantilla de macro AREA(l, b) también serán reemplazados en la instrucción (l*b). Por lo tanto AREA(10, 5) será igual a 10*5.

5. a) ¿Qué quiere decir con punteros ? ¿Cómo se inicializan las variables de puntero? Escriba un programa para ordenar números dados usando punteros.

Los punteros son representaciones simbólicas de direcciones. Permiten que los programas simulen llamadas por referencia, así como que creen y manipulen estructuras de datos dinámicas. Su declaración general en C/C++ tiene el formato:

Sintaxis:

datatype *var_name; 
int *ptr;   //ptr can point to an address which holds int data

¿Cómo usar un puntero?

  • Definir una variable de puntero
  • Asignar la dirección de una variable a un puntero usando el operador unario (&) que devuelve la dirección de esa variable.
  • Acceder al valor almacenado en la dirección mediante el operador unario (*) que devuelve el valor de la variable ubicada en la dirección especificada por su operando.

La razón por la que asociamos el tipo de datos a un puntero es que sabe en cuántos bytes se almacenan los datos . Cuando incrementamos un puntero, aumentamos el puntero por el tamaño del tipo de datos al que apunta.

pointers in c

5. b) Se ingresa un entero positivo de cinco dígitos a través del teclado. Escriba una función C para calcular la suma de los dígitos del número de 5 dígitos

  1. Sin usar recursividad :

    // C program to compute sum of digits in
    // number.
    #include <stdio.h>
      
    /* Function to get sum of digits */
    int getSum(int n)
    {
        int sum = 0;
        while (n != 0) {
            sum = sum + n % 10;
            n = n / 10;
        }
        return sum;
    }
      
    int main()
    {
        int n = 687;
        printf(" %d ", getSum(n));
        return 0;
    }
    Producción:

    21
    
  2. Usando recursividad :

    // Recursive C program to find sum of digits
    // of a number
    #include <stdio.h>
      
    // Function to check sum of digit using recursion
    int sum_of_digit(int n)
    {
        if (n == 0)
            return 0;
        return (n % 10 + sum_of_digit(n / 10));
    }
      
    // Driven Program to check above
    int main()
    {
        int num = 12345;
        int result = sum_of_digit(num);
        printf("Sum of digits in %d is %d\n", num, result);
        return 0;
    }
    Producción:

    Sum of digits in 12345 is 15
    

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *