Wednesday, September 1, 2021

O Level Important C Exam Question

Q1). Write a ‘C’ functions to input from user appropriate values into matrices A and B. Use suitable loops. Make use of pointers if necessary.

Ans)

#include<stdio.h>

#include<conio.h>

#define MAX 3

void input(int [][MAX]);

void print(int [][MAX]);

 

void main()

{

     int ar[MAX][MAX], br[MAX][MAX];

     clrscr();

     printf("Enter Elements in Matrix A \n");

     input(ar);

     printf("Enter Elements in Matrix B \n");

     input(br);

     printf("Matrix A Look Like \n");

     print(ar);

     printf("Matrix B Look Like \n");

     print(br);

     getch();

}

void input(int ar[][MAX])

{

     int r,c;

     for(r=0;r<MAX;r++)

     {

          for(c=0;c<MAX;c++)

          {

              printf("Enter number>> ");

              scanf("%d",&ar[r][c]);

          }

     }

}

void print(int ar[][MAX])

{

     int r,c;

     for(r=0;r<MAX;r++)

     {

          for(c=0;c<MAX;c++)

          {

              printf("\t%d",ar[r][c]);

          }

          printf("\n");

     }

 

}

 

Q2). Write a ‘C’ function to calculate matrix C such that C=A+B Use suitable loops. Make use of pointers if necessary.

Ans)

#include<stdio.h>

#include<conio.h>

#define MAX 3

void add(int [][MAX],int [][MAX],int [][MAX]);

void print(int [][MAX]);

void main()

{

     int a1[MAX][MAX],a2[MAX][MAX],a3[MAX][MAX],r,c;

     clrscr();

     printf("\nFirst Array Input\n");

     for(r=0;r<MAX;r++)

     {

          for(c=0;c<MAX;c++)

          {

              printf("Enter number>> ");

               scanf("%d",&a1[r][c]);

          }

     }

     printf("\nSecond Array Input\n");

     for(r=0;r<MAX;r++)

     {

          for(c=0;c<MAX;c++)

          {

              printf("Enter number>> ");

              scanf("%d",&a2[r][c]);

          }

     }

     add(a1,a2,a3);

     clrscr();

     printf("\nFirst Array\n");

     print(a1);

     printf("\nSecond Array\n");

     print(a2);

     printf("\nThird Array\n");

     print(a3);

     getch();

}

void add(int a[][MAX],int b[][MAX],int c[][MAX])

{

     int R,C;

     for(R=0;R<MAX;R++)

     {

          for(C=0;C<MAX;C++)

          {

              c[R][C]=a[R][C]+b[R][C];

          }

     }

}

void print(int a[][MAX])

{

     int r,c;

     for(r=0;r<MAX;r++)

     {

          for(c=0;c<MAX;c++)

          {

              printf("\t%d",a[r][c]);

          }

          printf("\n");

     }

}

 

Q3). Write a suitable ‘C’ program to print the following structure. The number of rows should be input from the user.

*

**

***

****

*****

******

Ans)

#include<stdio.h>

void main()

{

     int i,j;

     for(i=1;i<=5;i++)

     {

           for(j=1;j<=i;j++)

           {

                printf("*");

           }

           printf("\n");

     }

}

 

Q4). Write a program to input a 3x3 matrix and to print its transpose.

Ans)

#include <stdio.h>

int main() {

int a[10][10], transpose[10][10], r, c;

     printf("Enter rows and columns: ");

     scanf("%d %d", &r, &c);

     printf("\nEnter matrix elements:\n");

     for (int i = 0; i < r; ++i){

           for (int j = 0; j < c; ++j) {

                printf("Enter element a%d%d: ", i + 1, j + 1);

                scanf("%d", &a[i][j]);

           }

}

     printf("\nEntered matrix: \n");

     for (int i = 0; i < r; ++i){

           for (int j = 0; j < c; ++j) {

                printf("%d  ", a[i][j]);

                     if (j == c - 1){

                           printf("\n");

}

           }

}

     for (int i = 0; i < r; ++i){

           for (int j = 0; j < c; ++j) {

                transpose[j][i] = a[i][j];

            }

}

     printf("\nTranspose of the matrix:\n");

     for (int i = 0; i < c; ++i){

           for (int j = 0; j < r; ++j) {

                printf("%d  ", transpose[i][j]);

                if (j == r - 1){

                     printf("\n");

                }

}

}

  return 0;

}

 

Q5) a lucas sequence is given: 1, 3, 4, 7, 11, 18, 29 The third number is sum of previous two numbers. Write a program to print first 10 numbers of lucas sequence.

Ans)

#include<stdio.h>

void main()

{

    int a,b,c;

    clrscr();

    a=1;

    b=3;

    printf("\n\t%d\t%d",a,b);

    c=0;

    while(c<50)

    {

    c=a+b;

     a=b;

     b=c;

 

     printf("\t%d",c);

    }

}

 

Q6) Write a program to print the value of numbers in words when number entered is in the range of 0 to 999.

Ans)

#include<stdio.h>

#include<conio.h>

void single(int);

int reverce(int);

void ten(int);

void hundred(int);

void printhundred(int);

void main()

{

     int n;

     clrscr();

     printf("Enter number>> ");

     scanf("%d",&n);

     if(n>999){

          puts("Out of Range !!");

}

     else

     {

          if(n<10){

              single(n);

          }else if(n<100)

          {

              if(n<20)

              {

                   n=reverse(n);

                   if(n==1){

                        printf(" Ten");

                   }else{

                        ten(n/=10);

}

              }

              else

              {

                   printhundred(n);

              }

 

          }

          else

          {

              single(n/100);

              printf(" Hundred");

              printhundred(n-(100*(reverse(n)%10)));

          }

     }

     getch();

}

void printhundred(int n)

{

     n=reverse(n);

     if(n<10){

          hundred(n);

     }else

     {

          hundred(n%10);

          single(n/=10);

     }

}

void hundred(int n)

{

     char *ar[]={"","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"};

     printf(" %s",ar[--n]);

}

void ten(int n)

{

     char *ar[]={"","Elevan","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};

     printf(" %s",ar[n]);

}

int reverse(int n)

{

     int m=0;

     while(n>0)

     {

          m=m*10+(n%10);

          n/=10;

     }

     return m;

}

void single(int n)

{

     char *ar[]={"Zero","One","Two","Three","Four","Five","Six","Seven","EIght","Nine"};

     printf(" %s",ar[n]);

 

}

 

Q7) Write a program using pointer to find greatest number in an array.

Ans)

#include<stdio.h>

#define MAX 5

void main()

{

     int ar[MAX],*pt,h,i;

     for(i=0;i<MAX;i++)

     {

          printf("Enter Number>> ");

          scanf("%d",&ar[i]);

     }

 

     h=ar[0];

     for(pt=ar,i=0;i<MAX;pt++,i++)

     {

          if(*pt>h)

              h=*pt;

     }

     printf("Highest Value is %d",h);

    

}

 

Q8) Write a program to copy a file into another file.

Ans)

#include <stdio.h>

#include <stdlib.h>

 

int main()

{

     FILE *fptr1, *fptr2;

     char filename[100], c;

 

     printf("Enter the filename to open for reading \n");

     scanf("%s", filename);

 

     fptr1 = fopen(filename, "r");

     if (fptr1 == NULL)

     {

           printf("Cannot open file %s \n", filename);

           exit(0);

     }

 

     printf("Enter the filename to open for writing \n");

     scanf("%s", filename);

 

     fptr2 = fopen(filename, "w");

     if (fptr2 == NULL)

     {

           printf("Cannot open file %s \n", filename);

           exit(0);

     }

 

     c = fgetc(fptr1);

     while (c != EOF)

     {

           fputc(c, fptr2);

           c = fgetc(fptr1);

     }

 

     printf("\nContents copied to %s", filename);

 

     fclose(fptr1);

     fclose(fptr2);

     return 0;

}

 

Q9) Write a program to multiply two matrices.

Ans)

#include<stdio.h>

#include<conio.h>

void main()

{

     int ar1[3][3],ar2[3][3],ar3[3][3],r,c,m,tmp;

     clrscr();

     printf("first array input\n");

     for(r=0;r<3;r++)

     {

          for(c=0;c<3;c++)

          {

              printf("Enter no ");

              scanf("%d",& ar1[r][c]);

          }

     }

     printf("second array\n");

     for(r=0;r<3;r++)

     {

          for(c=0;c<3;c++)

          {

               printf("Enter no ");

               scanf("%d", &ar2[r][c]);

          }

       }

     /*  Multiplication */

       for(r=0;r<3;r++)

       {

          for(c=0;c<3;c++)

          {

              for(m=0,tmp=0;m<3;m++)

                   tmp+=ar1[r][m]*ar2[m][c];

              ar3[r][c]=tmp;

          }

       }

       clrscr();

       printf("\nFirst array\n");

       for(r=0;r<3;r++)

       {

          for(c=0;c<3;c++)

          {

              printf("\t%d",ar1[r][c]);

 

          }

          printf("\n");

       }

       printf("\nSecond array\n");

       for(r=0;r<3;r++)

       {

          for(c=0;c<3;c++)

          {

              printf("\t%d",ar2[r][c]);

 

          }

          printf("\n");

       }

       printf("\nMultiplication of array\n");

            for(r=0;r<3;r++)

            {

                                                                             for(c=0;c<3;c++)

              {

                   printf("\t%d",ar3[r][c]);

              }

              printf("\n");

            }

 

     getch();

}

 

Q10) Write program to compute factorial of a user input number using recursive function.

Ans)

#include<stdio.h>

int fact(int);

void main()

{

     int i;

     printf("enter number for factorial>> ");

     scanf("%d",&i);

     printf("\n\t%d",fact(i));

}

 

int fact(int n)

{

     if(n==0)

           return 1;

     else

           return(n*fact(n-1));

}

Q11) Write a program to write records of students in a file, where each record consists of student name, roll number, CGPA, and address. Read the records back from the file and display them.

Ans)

#include<stdio.h>

#include<conio.h>

struct stu

{

     char name[20];

     int roll;

     int cgpa;

     char add[20];

};

void main()

{

     FILE *ft;

     struct stu ob;

     int r,i;

     clrscr();

     ft=fopen("test.txt","w");

     if(ft==NULL)

           puts("Output file opening error");

     else

     {

           printf("How many record you want to enter>> ");

           scanf("%d",&r);

           for(i=1;i<=r;i++)

           {

                fflush(stdin);

                printf("\nEnter name for %d record>> ",i);

                gets(ob.name);

                printf("Enter roll for %d record>> ",i);

                scanf("%d",&ob.roll);

                printf("Enter CGPA for %d record>> ",i);

                scanf("%d",&ob.cgpa);

                fflush(stdin);

                printf("Enter address for %d record>> ",i);

                gets(ob.add);

                fwrite(&ob,sizeof(ob),1,ft);

 

           }

           fclose(ft);

           ft=fopen("test.txt","rb");

           clrscr();

           while(fread(&ob,sizeof(ob),1,ft)==1)

           {

                printf("\n\nName=%s",ob.name);

                printf("\nRoll=%d",ob.roll);

                printf("\nCGPA=%d",ob.cgpa);

                printf("\nAddress=%s",ob.add);

           }

     }

     getch();

}

Q12) Write a program to input a set of numbers into an array. Pass the array to a function that finds and display the  largest number.

Ans)

#include<stdio.h>

#include<conio.h>

void find(int ar[5]);

 

void main()

{

     int ar[5],i;

     clrscr();

     for(i=0;i<5;i++)

     {

           printf("Enter Number>> ");

           scanf("%d",&ar[i]);

     }

     find(ar);

     getch();

}

void find(int ar[5])

{

     int i,j;

     j=ar[0];

     for(i=1;i<5;i++)

     {

           if(j<ar[i])

                j=ar[i];

     }

     printf("\nLargest No. is %d",j);

}

 

Q13) Write a program using dynamic memory allocation to read numbers as input and display them in sorted order thereafter.

Ans)

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void main()

{

 

     int *a,r,n,j,tmp;

     clrscr();

     printf("How many number you want to enter>> ");

     scanf("%d",&r);

     a=(int *) malloc(r*sizeof(int));

     for(n=0;n<r;n++)

     {

           printf("Enter %d position number>>",n+1);

           scanf("%d",(a+n));

     }

     for(n=0;n<r;n++)

     {

           for(j=0;j<r-1-n;j++)

           {

                if(*(a+j)>*(a+j+1))

                {

                     tmp=*(a+j);

                     *(a+j)=*(a+j+1);

                     *(a+j+1)=tmp;

                }

           }

     }

     printf("\n\nSort order print\n");

     for(n=0;n<r;n++)

           printf("\t%d",*(a+n));

     getch();

}

 

Q14) Write a program to concatenate two strings.(Do not use inbuilt string function).

Ans)

#include<stdio.h>

#include<conio.h>

void main()

{

     char ar1[20],ar2[20],ar3[40];

     int i,j;

     printf("Enter first string>> ");

     gets(ar1);

     printf("Enter Second string>> ");

     gets(ar2);

     for(i=0;ar1[i]!='\0';i++)

          ar3[i]=ar1[i];

     for(j=0;ar2[j]!='\0';j++,i++)

          ar3[i]=ar2[j];

     ar3[i]='\0';

     printf("\nFirst string is %s",ar1);

     printf("\nSeocnd string is %s",ar2);

     printf("\nConcatenation string is %s",ar3);

     getch();

}

 

Q15) Write a ‘C’ program to find the frequency of characters in a String.

Ans)

#include<stdio.h>

#include<conio.h>

#define MAX 50

void main()

{

     char ar[MAX],temp[26];

     int i,j,k,s;

     clrscr();

     printf("Enter String>> ");

     gets(ar);

     temp[0]=ar[0];

     for(i=0,j=1;ar[i]!='\0';i++)

     {

          for(k=0;k<j;k++)

          {

 

              if(ar[i]==temp[k])

                   break;

          }

          if(k==j)

              temp[j++]=ar[i];

     }

     printf("\nFrequency of character is follows\n");

     for(i=0;i<j;i++)

     {

          for(k=0,s=0;ar[k]!='\0';k++)

          {

              if(temp[i]==ar[k])

                   s++;

          }

          printf("\n%c = %d",temp[i],s);

     }

     getch();

}