Skip to main content

assignment 4

 

1. Define a structure in C. Write the syntax for structure declaration with an example.

In C, a structure is a user-defined data type that can hold different types of data. A structure is defined using the struct keyword.

Syntax for structure declaration:

struct structure_name {
    data_type member1;
    data_type member2;
    // More members
};

Example:

#include <stdio.h>

// Defining a structure to store student details
struct Student {
    int roll_no;
    char name[50];
    float marks;
};

int main() {
    // Declaring and initializing a structure variable
    struct Student student1 = {101, "John Doe", 85.5};
    
    // Displaying the student's details
    printf("Roll Number: %d\n", student1.roll_no);
    printf("Name: %s\n", student1.name);
    printf("Marks: %.2f\n", student1.marks);
    
    return 0;
}

2. Declare the C structures for the following scenario:

(i) College contains the following fields: College code (2 characters), College Name, year of establishment, number of courses. (ii) Each course is associated with course name (String), duration, number of students.

C Structure Declaration:

#include <stdio.h>

struct Course {
    char course_name[50];
    int duration;  // Duration in months
    int num_students;
};

struct College {
    char college_code[3]; // 2 characters + null terminator
    char college_name[100];
    int year_of_establishment;
    int num_courses;
    struct Course courses[50];  // A college can offer up to 50 courses
};

3. Define a structure type personal, that would contain person name, date of joining, and salary. Write a program to initialize one person's data and display the same.

#include <stdio.h>

struct personal {
    char name[50];
    char date_of_joining[20];
    float salary;
};

int main() {
    struct personal p1 = {"John Doe", "01-01-2020", 75000.50};
    
    // Displaying the person's details
    printf("Name: %s\n", p1.name);
    printf("Date of Joining: %s\n", p1.date_of_joining);
    printf("Salary: %.2f\n", p1.salary);
    
    return 0;
}

4. Differentiate between structure and union in C with examples. Write a program in C to maintain a record of N employee detail using an array of structures with three fields (id, name, salary) and print the details of employees whose salary is above 60000.

Structure vs Union in C:

  • Structure: In a structure, each member has its own memory location. The size of the structure is the sum of the sizes of its members.
  • Union: In a union, all members share the same memory location, and only one member can hold a value at any given time. The size of the union is the size of the largest member.

Example of structure:

struct Employee {
    int id;
    char name[50];
    float salary;
};

Example of union:

union Data {
    int i;
    float f;
    char str[20];
};

Program to maintain a record of N employee detail:

#include <stdio.h>

struct Employee {
    int id;
    char name[50];
    float salary;
};

int main() {
    int n;
    printf("Enter number of employees: ");
    scanf("%d", &n);
    
    struct Employee employees[n];
    
    // Input employee details
    for (int i = 0; i < n; i++) {
        printf("Enter details for employee %d\n", i + 1);
        printf("ID: ");
        scanf("%d", &employees[i].id);
        printf("Name: ");
        scanf("%s", employees[i].name);
        printf("Salary: ");
        scanf("%f", &employees[i].salary);
    }
    
    // Print employees with salary > 60000
    printf("\nEmployees with salary above 60000:\n");
    for (int i = 0; i < n; i++) {
        if (employees[i].salary > 60000) {
            printf("ID: %d, Name: %s, Salary: %.2f\n", employees[i].id, employees[i].name, employees[i].salary);
        }
    }
    
    return 0;
}

5. Define a structure type book, that would contain book name, author, pages, and price. Write a program to read this data using member operator (‘.’) and display the same.

#include <stdio.h>

struct Book {
    char name[50];
    char author[50];
    int pages;
    float price;
};

int main() {
    struct Book book1;
    
    // Input book details
    printf("Enter book name: ");
    scanf("%s", book1.name);
    printf("Enter author name: ");
    scanf("%s", book1.author);
    printf("Enter number of pages: ");
    scanf("%d", &book1.pages);
    printf("Enter price: ");
    scanf("%f", &book1.price);
    
    // Displaying book details
    printf("\nBook Details:\n");
    printf("Name: %s\n", book1.name);
    printf("Author: %s\n", book1.author);
    printf("Pages: %d\n", book1.pages);
    printf("Price: %.2f\n", book1.price);
    
    return 0;
}

6. How to pass a structure member as an argument of a function? Write a program to explain it.

Passing a structure member to a function:

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
    float marks;
};

// Function to display student marks
void displayMarks(float marks) {
    printf("Marks: %.2f\n", marks);
}

int main() {
    struct Student student1 = {101, "John Doe", 85.5};
    
    // Passing the structure member to the function
    displayMarks(student1.marks);
    
    return 0;
}

7. What is an array of structure? Declare a variable as an array of structure and initialize it.

An array of structures is an array where each element is a structure variable.

Syntax:

struct structure_name array_name[size];

Example:

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
};

int main() {
    struct Student students[2] = {
        {101, "John Doe"},
        {102, "Jane Smith"}
    };
    
    for (int i = 0; i < 2; i++) {
        printf("Roll Number: %d, Name: %s\n", students[i].roll_no, students[i].name);
    }
    
    return 0;
}

8. Write a C program to calculate student-wise total marks for three students using an array of structure.

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
    float marks[3]; // Array of marks for 3 subjects
    float total;
};

int main() {
    struct Student students[3];
    
    // Input details for 3 students
    for (int i = 0; i < 3; i++) {
        printf("Enter details for student %d\n", i + 1);
        printf("Roll Number: ");
        scanf("%d", &students[i].roll_no);
        printf("Name: ");
        scanf("%s", students[i].name);
        
        students[i].total = 0; // Initialize total to 0
        for (int j = 0; j < 3; j++) {
            printf("Enter marks for subject %d: ", j + 1);
            scanf("%f", &students[i].marks[j]);
            students[i].total += students[i].marks[j];
        }
    }
    
    // Displaying total marks for each student
    for (int i = 0; i < 3; i++) {
        printf("Total marks for %s (Roll No: %d) = %.2f\n", students[i].name, students[i].roll_no, students[i].total);
    }
    
    return 0;
}

9. Write a C program using an array of structure to create employee records with the following fields: emp-id, name, designation, address, salary and display it.

#include <stdio.h>

struct Employee {
    int emp_id;
    char name[50];
    char designation[50];
    char address[100];
    float salary;
};

int main() {
    struct Employee employees[3];
    
    // Input employee details
    for (int i = 0; i < 3; i++) {
        printf("Enter details for employee %d\n", i + 1);
        printf("Employee ID: ");
        scanf("%d", &employees[i].emp_id);
        printf("Name: ");
        scanf("%s", employees[i].name);
        printf("Designation: ");
        scanf("%s", employees[i].designation);
        printf("Address: ");
        scanf(" %[^\n]%*c", employees[i].address); // To read multi-word address
        printf("Salary: ");
        scanf("%f", &employees[i].salary);
    }
    
    // Display employee details
    printf("\nEmployee Records:\n");
    for (int i = 0; i < 3; i++) {
        printf("Employee ID: %d, Name: %s, Designation: %s, Address: %s, Salary: %.2f\n",
            employees[i].emp_id, employees[i].name, employees[i].designation,
            employees[i].address, employees[i].salary);
    }
    
    return 0;
}

10. What is structure within structure? Give an example for it.

Structure within structure (or nested structure) is when a structure contains another structure as a member.

Example:

#include <stdio.h>

struct Address {
    char city[50];
    char state[50];
};

struct Employee {
    int emp_id;
    char name[50];
    struct Address addr;  // Structure within structure
};

int main() {
    struct Employee emp = {1, "John Doe", {"New York", "NY"}};
    
    printf("Employee ID: %d\n", emp.emp_id);
    printf("Name: %s\n", emp.name);
    printf("City: %s\n", emp.addr.city);
    printf("State: %s\n", emp.addr.state);
    
    return 0;
}

11. Write a C program using nested structures to read 3 employee details with the following fields: emp-id, name, designation, address, da, hra, and calculate gross salary of each employee.

#include <stdio.h>

struct Address {
    char city[50];
    char state[50];
};

struct Employee {
    int emp_id;
    char name[50];
    char designation[50];
    struct Address addr;  // Nested structure
    float da;  // Dearness Allowance
    float hra; // House Rent Allowance
    float gross_salary;  // Gross salary
};

int main() {
    struct Employee employees[3];
    
    // Input employee details and calculate gross salary
    for (int i = 0; i < 3; i++) {
        printf("Enter details for employee %d\n", i + 1);
        printf("Employee ID: ");
        scanf("%d", &employees[i].emp_id);
        printf("Name: ");
        scanf("%s", employees[i].name);
        printf("Designation: ");
        scanf("%s", employees[i].designation);
        printf("City: ");
        scanf("%s", employees[i].addr.city);
        printf("State: ");
        scanf("%s", employees[i].addr.state);
        printf("Dearness Allowance: ");
        scanf("%f", &employees[i].da);
        printf("House Rent Allowance: ");
        scanf("%f", &employees[i].hra);
        
        // Calculating Gross Salary
        employees[i].gross_salary = employees[i].da + employees[i].hra;
    }
    
    // Display employee details with gross salary
    for (int i = 0; i < 3; i++) {
        printf("\nEmployee ID: %d\n", employees[i].emp_id);
        printf("Name: %s\n", employees[i].name);
        printf("Designation: %s\n", employees[i].designation);
        printf("Address: %s, %s\n", employees[i].addr.city, employees[i].addr.state);
        printf("Gross Salary: %.2f\n", employees[i].gross_salary);
    }
    
    return 0;
}

12. Distinguish between Arrays within Structures and Array of Structure with examples.

Arrays within Structures and Array of Structures are two concepts in C where arrays and structures are used together. Let's distinguish between them:

Arrays within Structures:

An array is a member of a structure. This means that the structure contains an array as one of its members.

Example:

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
    float marks[5];  // Array of 5 marks
};

int main() {
    struct Student student1 = {101, "John Doe", {85.5, 90.0, 88.0, 92.5, 79.0}};
    
    printf("Student Roll No: %d\n", student1.roll_no);
    printf("Student Name: %s\n", student1.name);
    printf("Marks in Subject 1: %.2f\n", student1.marks[0]);
    
    return 0;
}

Here, marks is an array within the structure Student. The structure holds an array of marks as one of its members.

Array of Structures:

An array of structures is an array where each element is a structure variable. Each structure in the array can have different values for its members.

Example:

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
    float marks;
};

int main() {
    struct Student students[3] = {
        {101, "John", 85.5},
        {102, "Jane", 90.0},
        {103, "Alice", 88.5}
    };
    
    for (int i = 0; i < 3; i++) {
        printf("Roll No: %d, Name: %s, Marks: %.2f\n", students[i].roll_no, students[i].name, students[i].marks);
    }
    
    return 0;
}

Here, students is an array of structures. Each element of the array holds a structure representing a student's details.

13. Write a C program using structure to create a library catalog with the following fields: Access number, author’s name, Title of the book, year of publication, publisher’s name, and price.

#include <stdio.h>

struct LibraryCatalog {
    int access_number;
    char author_name[50];
    char title[100];
    int year_of_publication;
    char publisher_name[50];
    float price;
};

int main() {
    struct LibraryCatalog book1;
    
    // Input book details
    printf("Enter Access Number: ");
    scanf("%d", &book1.access_number);
    printf("Enter Author's Name: ");
    scanf(" %[^\n]s", book1.author_name);  // To allow spaces in the name
    printf("Enter Title of the Book: ");
    scanf(" %[^\n]s", book1.title);
    printf("Enter Year of Publication: ");
    scanf("%d", &book1.year_of_publication);
    printf("Enter Publisher's Name: ");
    scanf(" %[^\n]s", book1.publisher_name);
    printf("Enter Price: ");
    scanf("%f", &book1.price);
    
    // Display the book details
    printf("\nLibrary Catalog Information:\n");
    printf("Access Number: %d\n", book1.access_number);
    printf("Author: %s\n", book1.author_name);
    printf("Title: %s\n", book1.title);
    printf("Year of Publication: %d\n", book1.year_of_publication);
    printf("Publisher: %s\n", book1.publisher_name);
    printf("Price: %.2f\n", book1.price);
    
    return 0;
}

14. Explain in brief about pointers and structures. What is self-referential structure? Explain through an example.

Pointers and Structures:

  • Pointers store memory addresses of variables, including structures.
  • A pointer to a structure is used to access structure members via the pointer, using the -> operator.

Example of pointer to structure:

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
};

int main() {
    struct Student student1 = {101, "John"};
    struct Student *ptr = &student1;
    
    // Accessing structure members using pointer
    printf("Roll No: %d, Name: %s\n", ptr->roll_no, ptr->name);
    
    return 0;
}

Self-Referential Structure:

A self-referential structure is a structure that contains a pointer to its own type.

Example of self-referential structure:

#include <stdio.h>

struct Node {
    int data;
    struct Node *next;  // Pointer to the same structure type
};

int main() {
    struct Node node1, node2;
    
    node1.data = 10;
    node1.next = &node2;  // Pointing to node2
    
    node2.data = 20;
    node2.next = NULL;
    
    // Print data from node1 and node2
    printf("Node1 Data: %d, Node2 Data: %d\n", node1.data, node2.data);
    
    return 0;
}

15. Discuss file handling in C in brief. Explain different modes of opening files with syntax and example.

File Handling in C: File handling allows programs to read from and write to files. It uses the following functions:

  • fopen(): Opens a file.
  • fclose(): Closes a file.
  • fprintf(): Writes formatted data to a file.
  • fscanf(): Reads formatted data from a file.
  • fread() and fwrite(): Read and write binary data.

Modes of Opening Files:

  1. r: Open a file for reading.
  2. w: Open a file for writing (creates a new file or truncates an existing file).
  3. a: Open a file for appending (adds to the end).
  4. r+: Open a file for both reading and writing.
  5. w+: Open a file for both reading and writing (creates a new file or truncates an existing file).
  6. a+: Open a file for both reading and appending.

Example:

#include <stdio.h>

int main() {
    FILE *file;
    
    // Opening a file in write mode
    file = fopen("example.txt", "w");
    if (file == NULL) {
        printf("Error opening file.\n");
        return 1;
    }
    
    fprintf(file, "Hello, World!\n");
    
    fclose(file);  // Closing the file
    
    return 0;
}

16. What are the file I/O functions in C? Give a brief note about the task performed by each function.

  • fopen(): Opens a file.
  • fclose(): Closes a file.
  • fgetc(): Reads a character from a file.
  • fputc(): Writes a character to a file.
  • fgets(): Reads a string from a file.
  • fputs(): Writes a string to a file.
  • fprintf(): Writes formatted data to a file.
  • fscanf(): Reads formatted data from a file.
  • fread(): Reads binary data from a file.
  • fwrite(): Writes binary data to a file.
  • feof(): Checks if the end of the file has been reached.

17. Write a C program to copy the content of A.txt file into B.txt using file handling functions.

#include <stdio.h>

int main() {
    FILE *source, *destination;
    char ch;
    
    source = fopen("A.txt", "r");
    if (source == NULL) {
        printf("Error opening source file.\n");
        return 1;
    }
    
    destination = fopen("B.txt", "w");
    if (destination == NULL) {
        printf("Error opening destination file.\n");
        fclose(source);
        return 1;
    }
    
    // Copying content from A.txt to B.txt
    while ((ch = fgetc(source)) != EOF) {
        fputc(ch, destination);
    }
    
    printf("Content copied from A.txt to B.txt\n");
    
    fclose(source);
    fclose(destination);
    
    return 0;
}

18. What is a preprocessor directive? Explain #define and #include preprocessor directives. Explain any other five preprocessor directives in C.

Preprocessor Directives: Preprocessor directives are instructions given to the preprocessor before the program is compiled. They are not executable but are processed by the preprocessor.

  1. #define: Defines a macro or constant value.

    • Syntax: #define MACRO_NAME value

    Example:

    #define PI 3.14
    
  2. #include: Includes the contents of a file.

    • Syntax: #include <filename> or #include "filename"

    Example:

    #include <stdio.h>
    

Other preprocessor directives:

  • #ifdef: Checks if a macro is defined.
  • #ifndef: Checks if a macro is not defined.
  • #endif: Ends an #if, #ifdef, or #ifndef.
  • #undef: Undefines a macro.
  • #pragma: Provides additional information to the compiler.

19. Write a C program for the following: there are two input files named first.dat and second.dat. The files are to be merged, i.e., copy the contents of first.dat and then second.dat to a new file named result.dat.

#include <stdio.h>

int main() {
    FILE *file1, *file2, *file3;
    char ch;
    
    file1 = fopen("first.dat", "r");
    if (file1 == NULL) {
        printf("Error opening first file.\n");
        return 1;
    }
    
    file2 = fopen("second.dat", "r");
    if (file2 == NULL) {
        printf("Error opening second file.\n");
        fclose(file1);
        return 1;
    }
    
    file3 = fopen("result.dat", "w");
    if (file3 == NULL) {
        printf("Error opening result file.\n");
        fclose(file1);
        fclose(file2);
        return 1;
    }
    
    // Copy content from first.dat
    while ((ch = fgetc(file1)) != EOF) {
        fputc(ch, file3);
    }
    
    // Copy content from second.dat
    while ((ch = fgetc(file2)) != EOF) {
        fputc(ch, file3);
    }
    
    printf("Contents merged into result.dat\n");
    
    fclose(file1);
    fclose(file2);
    fclose(file3);
    
    return 0;
}

20. Explain the command line arguments. What are the syntactic constructs followed in C?

Command Line Arguments: Command line arguments allow users to pass parameters to the program at the time of execution. They are passed to the main() function.

Syntax:

int main(int argc, char *argv[])
  • argc: Argument count (number of arguments passed).
  • argv: Argument vector (an array of strings holding the arguments).

21. Write a C program to add two numbers using command line arguments.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    if (argc != 3) {
        printf("Please provide two numbers.\n");
        return 1;
    }
    
    int num1 = atoi(argv[1]);
    int num2 = atoi(argv[2]);
    
    printf("Sum: %d\n", num1 + num2);
    
    return 0;
}

22. What are macros in C? Write a program in C to calculate the area and perimeter of rectangle and circle using macros in C.

Macros in C: Macros are preprocessor directives that define constant values or expressions.

Example:

#include <stdio.h>

#define PI 3.14
#define AREA_RECTANGLE(length, width) ((length) * (width))
#define PERIMETER_RECTANGLE(length, width) (2 * ((length) + (width)))
#define AREA_CIRCLE(radius) (PI * (radius) * (radius))
#define PERIMETER_CIRCLE(radius) (2 * PI * (radius))

int main() {
    float length = 5, width = 3, radius = 4;
    
    printf("Area of Rectangle: %.2f\n", AREA_RECTANGLE(length, width));
    printf("Perimeter of Rectangle: %.2f\n", PERIMETER_RECTANGLE(length, width));
    printf("Area of Circle: %.2f\n", AREA_CIRCLE(radius));
    printf("Perimeter of Circle: %.2f\n", PERIMETER_CIRCLE(radius));
    
    return 0;
}

Comments

Popular posts from this blog

Cloud Computing

 CLOUD COMPUTING The cloud is a generic term used for Internet. Cloud computing is Internet – based  Computing , Whereby Shared Resources , Software, and Information are provided  to Computer and Other devices on demand, Like the electricity grid….. Types Of Clouds There are different types of Clouds that you can subscribe to depending on your choice (Needs)….. There are four deployment models of Clouds are: 1. Private Clouds 2. Public Clouds 3. Community Clouds 4. Hybrid Clouds Private Clouds   These are the clouds for exclusive use by a single Organization and Typically Controlled, managed and hosted in private data  But a private Clouds remains for the exclusive use of one organization. For example:- An example of a private cloud deployment is where you maintain your own servers and infrastructure that hosts your applications and data. ... A Hybrid model is where you also have some applications or servers based on business need running in a public cloud infra...

Python - How To Merge Two Dictionaries

  Python -  How to merge two dictionaries As we know If you are working as Python developer, data analytics or data scientists for any organisation then it is very important for you to know how to merge two dictionaries. There are various ways in which Dictionaries can be merged by the use of various functions and constructors in Python. In this article, we will discuss a few ways of merging dictionaries.  Using the method update () By using the method update() in Python, one list can be merged into another. But in this, the second list is merged into the first list and no new list is created. It returns  None .    Example # Python code to merge dict using update() method def Merge(dict1, dict2):      return (dict2.update(dict1))        # Driver code dict1 = { 'a' : 20 , 'b' : 8 } dict2 = { 'd' : 6 , 'c' : 4 }   # This return None print (Merge(dict1, dict2))   # changes made in dict2 pri...

Django in Python

What is Django? Django is a free and open source web application framework written in Python that encourages rapid development and clean pragmatic design. As you know  A framework is nothing more than a collection of modules that  make development easier. They are grouped together, and allow you to create applications or websites from an existing source, instead of from scratch. Some well known sites that use Django include PBS, Instagram, Disqus, Washington Times, Bitbucket and Mozilla. Django offers a big collection of modules which you can use in your own projects. Primarily, frameworks exist to save developers a lot of wasted time and headaches and Django is no different.