Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

1.

Write a C program to create a structure containing five strings: address1, address2, city, state, zip
and create a typedef called RECORD that can be used to create instance of this structure.
#include <stdio.h>
#include <string.h>
struct Address
{
char address1[100];
char address2[100];
char city[50];
char state[50];
char zip[20];
};
typedef struct Address RECORD;

int main()
{
RECORD myRecord;
strcpy(myRecord.address1, "");
strcpy(myRecord.address2, "Apt 456");
strcpy(myRecord.city, "Cityville");
strcpy(myRecord.state, "Stateville");
strcpy(myRecord.zip, "12345");
printf("Address 1: %s\n", myRecord.address1);
printf("Address 2: %s\n", myRecord.address2);
printf("City: %s\n", myRecord.city);
printf("State: %s\n", myRecord.state);
printf("Zip Code: %s\n", myRecord.zip);
return 0;
}
2. Write a C program to add and subtract time given in the format HH, MM, SS using structures and
functions.
#include <stdio.h>
struct Time
{
int hours;
int minutes;
int seconds;
};
struct Time addTime(struct Time t1, struct Time t2)
{
struct Time result;
result.seconds = t1.seconds + t2.seconds;
result.minutes = t1.minutes + t2.minutes + result.seconds / 60;
result.hours = t1.hours + t2.hours + result.minutes / 60;
result.seconds %= 60;
result.minutes %= 60;
return result;
}
struct Time subtractTime(struct Time t1, struct Time t2)
{
struct Time result;
int time1InSeconds = t1.hours * 3600 + t1.minutes * 60 + t1.seconds;
int time2InSeconds = t2.hours * 3600 + t2.minutes * 60 + t2.seconds;
int differenceInSeconds = time1InSeconds - time2InSeconds;
if (differenceInSeconds < 0)
{
differenceInSeconds += 24 * 3600;
}
result.seconds = differenceInSeconds % 60;
result.minutes = (differenceInSeconds / 60) % 60;
result.hours = differenceInSeconds / 3600;
return result;
}

int main()
{
struct Time time1, time2, sum, difference;
printf("Enter time 1 (HH MM SS): ");
scanf("%d %d %d", &time1.hours, &time1.minutes, &time1.seconds);
printf("Enter time 2 (HH MM SS): ");
scanf("%d %d %d", &time2.hours, &time2.minutes, &time2.seconds);
sum = addTime(time1, time2);
printf("Sum: %02d:%02d:%02d\n", sum.hours, sum.minutes, sum.seconds);
difference = subtractTime(time1, time2);
printf("Difference: %02d:%02d:%02d\n", difference.hours, difference.minutes, difference.seconds);

return 0;
}

3. Write a C program employing nested structures with DOB and student data where DOB is part of
student data.
#include <stdio.h>
struct DateOfBirth {
int day;
int month;
int year;
};
struct Student
{
char name[50];
int rollNumber;
struct DateOfBirth dob;
};

int main()
{
struct Student student1;
printf("Enter student name: ");
scanf("%s", student1.name);

printf("Enter roll number: ");


scanf("%d", &student1.rollNumber);

printf("Enter date of birth (DD MM YYYY): ");


scanf("%d %d %d", &student1.dob.day, &student1.dob.month, &student1.dob.year);
printf("\nStudent Information:\n");
printf("Name: %s\n", student1.name);
printf("Roll Number: %d\n", student1.rollNumber);
printf("Date of Birth: %d/%d/%d\n", student1.dob.day, student1.dob.month, student1.dob.year);

return 0;
}
4. Write a C program to read, display, add and subtract two distances where distance is defined in
Kilometres and metres in a structure. Use functions and pass the entire structure.
#include <stdio.h>
struct Distance
{
int kilometers;
int meters;
};
void readDistance(struct Distance *d);
void displayDistance(struct Distance d);
struct Distance addDistances(struct Distance d1, struct Distance d2);
struct Distance subtractDistances(struct Distance d1, struct Distance d2);

int main()
{
struct Distance distance1, distance2, sum, difference;
printf("Enter details for Distance 1:\n");
readDistance(&distance1);

printf("\nEnter details for Distance 2:\n");


readDistance(&distance2);
printf("\nEntered Distances:\n");
printf("Distance 1: ");
displayDistance(distance1);
printf("Distance 2: ");
displayDistance(distance2);
sum = addDistances(distance1, distance2);
printf("\nSum of Distances: ");
displayDistance(sum);
difference = subtractDistances(distance1, distance2);
printf("\nDifference of Distances: ");
displayDistance(difference);

return 0;
}
void readDistance(struct Distance *d)
{
printf("Enter distance in kilometers: ");
scanf("%d", &(d->kilometers));
printf("Enter distance in meters: ");
scanf("%d", &(d->meters));
}
void displayDistance(struct Distance d)
{
printf("%d kilometers and %d meters\n", d.kilometers, d.meters);
}
struct Distance addDistances(struct Distance d1, struct Distance d2)
{
struct Distance result;
result.kilometers = d1.kilometers + d2.kilometers;
result.meters = d1.meters + d2.meters;
result.kilometers += result.meters / 1000;
result.meters %= 1000;

return result;
}
struct Distance subtractDistances(struct Distance d1, struct Distance d2)
{
struct Distance result;
result.kilometers = d1.kilometers - d2.kilometers;
result.meters = d1.meters - d2.meters;
if (result.meters < 0) {
result.kilometers--;
result.meters += 1000;
}

return result;
}
5. Write a C program that uses a pointer to a structure to initialize the members of the structure.
#include <stdio.h>
struct Student {
char name[50];
int rollNumber;
int age;
char grade;
};
void initializeStudent(struct Student *ptrStudent) {
printf("Enter student name: ");
scanf("%s", ptrStudent->name);

printf("Enter roll number: ");


scanf("%d", &ptrStudent->rollNumber);

printf("Enter age: ");


scanf("%d", &ptrStudent->age);

printf("Enter grade: ");


scanf(" %c", &ptrStudent->grade);
}

int main()
{
struct Student student1;
struct Student *ptrStudent = &student1;
initializeStudent(ptrStudent);
printf("\nStudent Information:\n");
printf("Name: %s\n", student1.name);
printf("Roll Number: %d\n", student1.rollNumber);
printf("Age: %d\n", student1.age);
printf("Grade: %c\n", student1.grade);

return 0;
}

6. Write a C program using an array of pointers to a structure, to read and display the data of the
student.
#include <stdio.h>
struct Student
{
char name[50];
int rollNumber;
float marks;
};
void readStudentData(struct Student *student)
{
printf("Enter student name: ");
scanf("%s", student->name);
printf("Enter roll number: ");
scanf("%d", &student->rollNumber);

printf("Enter marks: ");


scanf("%f", &student->marks);
}
void displayStudentData(const struct Student *student)
{
printf("\nStudent Information:\n");
printf("Name: %s\n", student->name);
printf("Roll Number: %d\n", student->rollNumber);
printf("Marks: %.2f\n", student->marks);
}

int main()
{
struct Student studentArray[3];
for (int i = 0; i < 2; i++)
{
printf("\nEnter data for Student %d:\n", i + 1);
readStudentData(&studentArray[i]);
}
for (int i = 0; i < 2; i++)
{
displayStudentData(&studentArray[i]);
}

return 0;
}
7. Write a C program that passes ‘pointer to a structure’ to a function.
#include <stdio.h>
struct Student {
char name[50];
int rollNumber;
float marks;
};
void modifyStudentData(struct Student *ptrStudent)
{
printf("Enter new marks for %s: ", ptrStudent->name);
scanf("%f", &ptrStudent->marks);
}
void displayStudentData(const struct Student *ptrStudent)
{
printf("\nStudent Information:\n");
printf("Name: %s\n", ptrStudent->name);
printf("Roll Number: %d\n", ptrStudent->rollNumber);
printf("Marks: %.2f\n", ptrStudent->marks);
}

int main()
{
struct Student student1 = {"Clara", 2023105530, 90};
modifyStudentData(&student1);
displayStudentData(&student1);

return 0;
}

8. Write a C program to illustrate the use of arrays within a structure.


#include <stdio.h>
struct Student
{
char name[50];
int rollNumber;
float marks[5];
};
void readStudentData(struct Student *student)
{
printf("Enter student's name: ");
scanf("%s", student->name);

printf("Enter student's roll number: ");


scanf("%d", &student->rollNumber);

printf("Enter marks for 5 subjects:\n");


for (int i = 0; i < 5; ++i) {
printf("Subject %d: ", i + 1);
scanf("%f", &student->marks[i]);
}
}
void displayStudentData(const struct Student *student)
{
printf("\nStudent Information:\n");
printf("Name: %s\n", student->name);
printf("Roll Number: %d\n", student->rollNumber);

printf("Marks for 5 subjects: ");


for (int i = 0; i < 5; ++i) {
printf("%.2f ", student->marks[i]);
}
printf("\n");
}

int main()
{
struct Student student1;
readStudentData(&student1);
displayStudentData(&student1);

return 0;
}

9. Write a C program using array of structures to display information of all the students in the class.
#include <stdio.h>
struct Student
{
char name[50];
int rollNumber;
float marks;
};
void readStudentData(struct Student *student)
{
printf("Enter student name: ");
scanf("%s", student->name);

printf("Enter roll number: ");


scanf("%d", &student->rollNumber);

printf("Enter marks: ");


scanf("%f", &student->marks);
}
void displayStudentData(const struct Student *student) {
printf("\nStudent Information:\n");
printf("Name: %s\n", student->name);
printf("Roll Number: %d\n", student->rollNumber);
printf("Marks: %.2f\n", student->marks);
}

int main()
{
struct Student classStudents[5];
for (int i = 0; i < 5; ++i) {
printf("\nEnter data for Student %d:\n", i + 1);
readStudentData(&classStudents[i]);
}
for (int i = 0; i < 5; ++i)
{
displayStudentData(&classStudents[i]);
}

return 0;
}

You might also like