1. How would you find the length of each string in the following Program? main() { char *str[] = { "Frogs", "Do", "Not" , "Die" , "They" , "Croak!"}; printf ("%d%d", sizeof (str), sizeof (str[0])); }
Correct Answer: main() { char *str[] = { "Frogs", "Do", "Not", "Die" , "They", "Croak!" }; int i; for ( i = 0;i<=5;i++) printf ("\n%s%d", str[i], strlen( str[i])); }
2. Point out the error, if any, in the following program. #include "stdio.h" main() { unsigned char; FILE *fp; fp = fopen ("trail", "r"); while (( ch = getc (fp)) ! = EOF) printf ("%c", ch); fclose (fp); }
Correct Answer: EOF has been defined as #define EOF -1 n the file "stdioh" and an unsigned char ranges from 0 to 255 hence when EOF is read from the file it cannot be accommodated in ch Solution is to declare ch as an int
3. Point out the error, if any, in the following program. #include "stdarg.h" main() { display ( 4, 12.5, 13.5, 14.5, 44.3); } display(int num, ...) { float c; int j; va_list ptr; va_start (ptr, num); for ( j = 1; j <= num; j++) { c = va_arg ( ptr, float ); printf ("\n%f", c); } }
Correct Answer: While extracting a float argument using va_arg we should have useed c = va_arg (ptr, double)
4. What would be the output of the following program? main() { char huge * near * far *ptr1; char near * far * huge *ptr2; char far * huge * near *ptr3; printf ("%d%d%d", sizeof (ptr1), sizeof (ptr2), sizeof (ptr3)); }
Correct Answer: #include "memh" #include "alloch" main() { int area; char *dest; char src[] = "Life is the camera and you are the target" "so keep smiling always"; area = sizeof (src); dest = malloc (area); memmove (dest, src, area); printf("\n%s", dest); printf("\n%s",src); }
6. What will be output of following program ? #include int main() { int a = 10; void *p = &a; int *ptr = p; printf("%u",*ptr); return 0; }
Void pointer can hold address of any data type without type casting. Any pointer can hold void pointer without type casting.
7. What will output when you compile and run the following code? #include struct student { int roll; int cgpa; int sgpa[8]; }; void main() { struct student s = { 12,8,7,2,5,9 }; int *ptr; ptr = (int *)&s; clrscr(); printf( "%d", *(ptr+3) ); getch(); }
Correct Answer: #include int main(){ int num,r,sum=0,temp; printf("Enter a number: "); scanf("%d",&num); temp=num; while(num){ r=num%10; num=num/10; sum=sum*10+r; } if(temp==sum) printf("%d is a palindrome",temp); else printf("%d is not a palindrome",temp); return 0; } Sample output: Enter a number: 131 131 is a palindrome
9. Write a c program to find out sum of diagonal element of a matrix.
Correct Answer: #include int main(){ int a[10][10],i,j,sum=0,m,n; printf("\nEnter the row and column of matrix: "); scanf("%d %d",&m,&n); printf("\nEnter the elements of matrix: "); for(i=0;i
10. The output of the code below is #include void main() { int i = 0, k; if ( i == 0 ) goto label; for ( k = 0;k < 3; k++ ) { printf( "hin" ); label: k = printf( "%03d", i ); } }