C Programming :: Basic Concepts

Home > C Programming > Basic Concepts > General Questions

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

31 / 87

 What is the output of the following C Program?

#include
void main()
{
printf("sizeof (void *) = %d \n", sizeof( void *));
printf("sizeof (int *) = %d \n", sizeof(int *));
printf("sizeof (double *) = %d \n", sizeof(double *));
printf("sizeof(struct unknown *) = %d \n", sizeof(struct unknown *));
}

Asizeof (void *) = 4 sizeof (int *) = 4 sizeof (double *) = 4 sizeof(struct unknown *) = 4

Bsizeof (void *) = 2 sizeof (int *) = 2 sizeof (double *) = 4 sizeof(struct unknown *) = 4

Csizeof (void *) = 4 sizeof (int *) = 4 sizeof (double *) = 2 sizeof(struct unknown *) = 4

DCompilation Error

Answer: Option A

Explanation:

The pointer to any type is of same size.

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

32 / 87

 To print out a and b given below, which printf() statement will be used ?

float a = 3.14;
double b = 3.14;

Aprintf("%f%f', a, b);

Bprintf("%Lf%f', a, b);

Cprintf ("%Lf%Lf', a, b);

Dprintf("%f%Lf', a, b);

Answer: Option A

Explanation:

Here, in every option we see that there is a missing terminating " character, which will result to an error.

Hence, to print the values of a and b, the code should be-

printf("%f%f",a,b);

This will give the output as 3.1400003.140000.


Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

33 / 87

 To scan float a and double b, which scanf() statement will be used?

Ascanf("%f%f", &a, &b);

Bscanf("%f%Lf', &a, &b);

Cscanf ("%Lf%Lf', &a, &b);

Dscan{ ("%f%lf', &a, &b);

Answer: Option D

Explanation:

We want to scan float a and double b.

Option A is incorrect because it will scan both the variables as float.

Option B is incorrect as here variable b will be scanned as long-double type, but we want b to be double type.

Option C is incorrect because here both the variables will be scanned as long-double type.

Option D is incorrect because it should be 'scanf' and not 'scan{', which will create an error. If we correct this then variable a will be scanned as float type and variable b will be scanned as double type.

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

34 / 87

 The Below statement in 'C' prints.

printf("%c", 200)

Aprints 200

Bprints the ascii equivalent of 200

Cprints garbage

Dnone of these

Answer: Option B

Explanation:

Here, 200 is an integer value, and we are printing a character. Hence, the output will be the character corresponding to the given integer value 200.

For ASCII code 200, the printable character will be "╚ ". 

Hence, the correct option is B.

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

35 / 87

 C language is available for which of the following Operating System?

ADOS

BWindows

CUnix

DAll of these

Answer: Option D

Explanation:

Here is no explanation for this answer

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

36 / 87

 How will you print \n on the screen ?

Aprintf(“\n”);

Becho \\n;

Cprintf(“\n”);

Dprintf(\\n);

Answer: Option D

Explanation:

The statement printf("\\n"); prints '\n' on the screen.

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

37 / 87

 Assignment operator targets to _____

Ar-value

Bl-value

Cboth

DNone

Answer: Option B

Explanation:

Assignment operators are used to assign the the values present on the right-hand side to whatever is present on the left-hand side of the operator. The left-hand side can be a variable or a pointer, and the right-hand side can be a variable, a constant, an expression or a function call.

For example-

a=5;    //assigns '5' to 'a'.

On the other hand, 5=a;    //error.

Very often in C, we use the terminology of l-value in error messages. It basically refers to the operands present on the left-hand side of the assignment operator. It can be a variable or a pointer, but should not be a constant.

Hence, from the above theory, we can conclude for sure that assignment operator targets to L-value.

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

38 / 87

 What will be output of the following "c" code?

#include

void main() {
printf("ABCDEFG \n");
printf(4+"ABCDEFG\n");
printf("ABCDEFG\n"+4);
printf("%c\n", "ABCDEFG" [4]);
printf("%c\n", 4["ABCDEFG"]);
}

AABCDEFG EFG EFG E E

BCompilation Error

CNo output No Error

DABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG

Answer: Option A

Explanation:

Line 3 is simple that it will print ABCDEFG.

Line 4 and 5 will result to the same output, i.e, it will print the characters from 4th index to (n-1)th index or 6th index. Hence, printing EFG for both the lines.

Line 6 and 7 will also result to the same output, i.e, it will print the character at 4th index position. Hence, printing E for both the lines.

Hence, the output will be ABCDEFG EFG EFG E E.  

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

39 / 87

 What will be output of the following "c" code?

#include
void main( )
{
int i;
printf("%d", scanf("%d", &i));
}
If input of is given by keyboard is 10.

A10

B1

CCompilation Error

DNone of these

Answer: Option B

Explanation:

Here, no. of values that are scanned is 1, and we know that printf() function returns the no. of characters as argument. Hence, output will be 1.

Workspace

NA
SHSTTON
0
Solv. Corr.
0
Solv. In. Corr.
0
Attempted
0 M:0 S
Avg. Time

40 / 87

 What will be output of the following "c" code?

#include
void main() {
int i =400, j = 300;
printf("%d %d %d %d ");
}

AGarbage Values

Bstack overflow

C400 300

D300 400

Answer: Option A

Explanation:

In the printf() function we are just printing values, but have it's not specified what values are we actually printing. Therefore, in such a case, it is going to print garbage values.

Workspace