C Programming Questions and Answers
What will be the output of the program if the array begins at address 65486?
#include < stdio.h >int main()
{
int arr[] = {12, 14, 15, 23, 45};
printf("%u, %u\n", arr, &arr);
return0;
}
Option B
Explanation :Step 1: int arr[] = {12, 14, 15, 23, 45}; The variable arr is declared as an integer array and initialized.
Step 2: printf("%u, %u\n", arr, &arr); Here,
The base address of the array is 65486.
=> arr, &arr is pointing to the base address of the array arr.
Hence the output of the program is 65486, 65486
What will be the output of the program if the array begins 1200 in memory?
#include < stdio.h >int main()
{
int arr[]={2, 3, 4, 1, 6};
printf("%u, %u, %u\n", arr, &arr[0], &arr);
return0;
}
Option B
Explanation :Step 1: int arr[]={2, 3, 4, 1, 6}; The variable arr is declared as an integer array and initialized.
Step 2: printf("%u, %u, %u\n", arr, &arr[0], &arr); Here,
The base address of the array is 1200.
=> arr, &arr is pointing to the base address of the array arr.
=> &arr[0] is pointing to the address of the first element array arr. (ie. base address)
Hence the output of the program is 1200, 1200, 1200
Which of the following is correct way to define the function fun() in the below program?
#includeint main()
{
int a[3][4];
fun(a);
return0;
}
Option A
Explanation :void fun(int p[][4]){ } is the correct way to write the function fun(). while the others are considered only the function fun() is called by using call by reference.
Which of the following statements are correct about an array?
1: The array int num[26]; can store 26 elements.
2: The expression num[1] designates the very first element in the array.
3: It is necessary to initialize the array at the time of declaration.
4: The declaration num[SIZE] is allowed if SIZE is a macro.
Option B
Explanation :1. The array int num[26]; can store 26 elements. This statement is true.
2. The expression num[1] designates the very first element in the array. This statement is false, because it designates the second element of the array.
3. It is necessary to initialize the array at the time of declaration. This statement is false.
4. The declaration num[SIZE] is allowed if SIZE is a macro. This statement is true, because the MACRO just replaces the symbol SIZE with given value.
Hence the statements '1' and '4' are correct statements.
Point out the error in the program?
#include < stdio.h >#include < stdlib.h >int main()
{
unsignedchar;
FILE *fp;
fp=fopen("trial", "r");
if(!fp)
{
printf("Unable to open file");
exit(1);
}
fclose(fp);
return0;
}
Option C
Explanation :This program tries to open the file trial.txt in read mode. If file not exists or unable to read it prints "Unable to open file" and then terminate the program.
If file exists, it simply close the file and then terminates the program.
Point out the error in the program?
#include < stdio.h >/* Assume there is a file called 'file.c' in c:\tc directory. */int main()
{
FILE *fp;
fp=fopen("c:\tc\file.c", "r");
if(!fp)
printf("Unable to open file.");
fclose(fp);
return0;
}
Option C
Explanation :The path of file name must be given as "c:\\tc\file.c"
Point out the error/warning in the program?
#include < stdio.h >int main()
{
unsignedchar ch;
FILE *fp;
fp=fopen("trial", "r");
while((ch = getc(fp))!=EOF)
printf("%c", ch);
fclose(fp);
return0;
}
Option A
Explanation :Here, EOF is -1. As 'ch' is declared as unsigned char it cannot deal with any negative value.
Point out the correct statements about the program?
#includeint main()
{
FILE *fptr;
char str[80];
fptr = fopen("f1.dat", "w");
if(fptr == NULL)
printf("Cannot open file");
else
{
while(strlen(gets(str))>0)
{
fputs(str, fptr);
fputs("\n", fptr);
}
fclose(fptr);
}
return0;
}
Option B
Explanation :This program get the input string from the user through gets function and store it in the file f1.txt using fputs function.
What is x in the following program?
#include < stdio . h >int main()
{
typedefchar (*(*arrfptr[3])())[10];
arrfptr x;
return0;
}
Option C
What will be the output of the program?
#includetypedefstruct error {int warning, err, exception;} ERROR;
int main()
{
ERROR e;
e.err=1;
printf("%d\n", e.err);
return0;
}
Option B