C MCQs

15
Solution Sheet- Chapter 1& 2 CS 1090 Exercises Chapter 1 [A] Which of the following are invalid variable names and why? BASICSALARY valid _basic valid basic-hra invalid -in variable name #MEAN group. Invalid #in starting of variable name 422 invalid all numeric characters population in 2006 invalid space between variable name over time invalid space between variable name mindovermatter valid FLOAT invalid C keyword hELLO valid queue valid team‟svictory invalid special character in variable name Plot # 3 invalid special character # in variable name 2015_DDay invalid beginning with number is not permitted [B] Point out the errors, if any, in the following C statements: (a) int = 314.562 * 150 ; variable name not present (b) name = „Ajay‟ ; type of variable not present (c) varchar = „3‟ ; type of variable not present (d) 3.14 * r * r * h = vol_of_cyl ; variable present at right side of expression (e) k = ( a * b ) ( c + ( 2.5a + b ) ( d + e ) ; syntax error, missing operator (f) m_inst = rate of interest * amount in rs ; variable names not according to convention (g) si = principal * rateofinterest * numberofyears / 100 ; correct (h) area = 3.14 * r ** 2 ; unknown operator ** (i) volume = 3.14 * r ^ 2 * h ; unknown operator ^ (j) k = ( (a * b ) + c ) ( 2.5 * a + b ) ; syntax error, missing operator (k) a = b = 3 = 4 ; syntax error, dual assignment (l) count = count + 1 ; correct (m) date = '2 Mar 04' ; a character variable can store only one charcter [F] What would be the output of the following programs: (a) main( )

Transcript of C MCQs

Solution Sheet- Chapter 1& 2

CS 1090

Exercises Chapter 1

[A] Which of the following are invalid variable names and why? BASICSALARY valid

_basic valid

basic-hra invalid „-„ in variable name

#MEAN group. Invalid „#‟ in starting of variable name

422 invalid all numeric characters

population in 2006 invalid space between variable name

over time invalid space between variable name

mindovermatter valid

FLOAT invalid C keyword

hELLO valid

queue valid

team‟svictory invalid special character „ in variable name

Plot # 3 invalid special character # in variable name

2015_DDay invalid beginning with number is not permitted

[B] Point out the errors, if any, in the following C statements:

(a) int = 314.562 * 150 ; variable name not present

(b) name = „Ajay‟ ; type of variable not present

(c) varchar = „3‟ ; type of variable not present

(d) 3.14 * r * r * h = vol_of_cyl ; variable present at right side of expression

(e) k = ( a * b ) ( c + ( 2.5a + b ) ( d + e ) ; syntax error, missing operator

(f) m_inst = rate of interest * amount in rs ; variable names not according to convention

(g) si = principal * rateofinterest * numberofyears / 100 ; correct

(h) area = 3.14 * r ** 2 ; unknown operator **

(i) volume = 3.14 * r ^ 2 * h ; unknown operator ^

(j) k = ( (a * b ) + c ) ( 2.5 * a + b ) ; syntax error, missing operator

(k) a = b = 3 = 4 ; syntax error, dual assignment

(l) count = count + 1 ; correct

(m) date = '2 Mar 04' ; a character variable can store only one charcter

[F] What would be the output of the following programs: (a) main( )

{

int i = 2, j = 3, k, l ;

float a, b ;

k = i / j * j ;

l = j / i * i ;

a = i / j * j ;

b = j / i * i ;

printf( "%d %d %f %f", k, l, a, b ) ;

}

0 2 0.0000 2.0000

(b) main( )

{

int a, b ;

a = -3 - - 3 ;

b = -3 - - ( - 3 ) ;

printf ( "a = %d b = %d", a, b ) ;

}

a=0 b=-6

(c) main( )

{

int a = 5, b = 2 ;

int c ;

c = a % b ;

printf ( "%d", c ) ;

}

1 (d) main( )

{

printf ( "nn \n\n nn\n" ) ;

printf ( "nn /n/n nn/n" ) ;

}

nn

nn

nn /n/n nn/

(e) main( )

{

int a, b ;

printf ( "Enter values of a and b" ) ;

scanf ( " %d %d ", &a, &b ) ;

printf ( "a = %d b = %d", a, b ) ;

}

Enter values of a and b

2 3

a=2 b=3

(f) main( )

{

int p, q ;

printf ( "Enter values of p and q" ) ;

scanf ( " %d %d ", &p, &q ) ;

printf ( "p = %d q =%d", p, q ) ;

}

Enter values of p and q

5 10

p=5 q=10

[G] Pick up the correct alternative for each of the following questions:

(a) C language has been developed by

(1) Ken Thompson

(2) Dennis Ritchie

(3) Peter Norton

(4) Martin Richards

(b) C can be used on

(1) Only MS-DOS operating system

(2) Only Linux operating system

(3) Only Windows operating system

(4) All the above

(c) C programs are converted into machine language with the help of

(1) An Editor

(2) A compiler

(3) An operating system

(4) None of the above

(d) The real constant in C can be expressed in which of the following forms

(1) Fractional form only

(2) Exponential form only

(3) ASCII form only

(4) Both fractional and exponential forms

(e) A character variable can at a time store

(1) 1 character

(2) 8 characters

(3) 254 characters

(4) None of the above

(f) The statement char ch = ‘Z’ would store in ch

(1) The character Z

(2) ASCII value of Z

(3) Z along with the single inverted commas

(4) Both (1) and (2)

(g) Which of the following is NOT a character constant

(1) „Thank You‟

(2) „Enter values of P, N, R‟

(3) „23.56E-03‟

(4) All the above

(h) The maximum value that an integer constant can have is

(1) -32767

(2) 32767

(3) 1.7014e+38

(4) –1.7014e+38

(i) A C variable cannot start with

(1) An alphabet

(2) A number

(3) A special symbol other than underscore

(4) Both (2) & (3) above

(j) Which of the following statement is wrong

(1) mes = 123.56 ;

(2) con = 'T' * 'A' ;

(3) this = 'T' * 20 ;

(4) 3 + a = b ;

(k) Which of the following shows the correct hierarchy of arithmetic operators in C

(1) **, * or /, + or -

(2) **, *, /, +, -

(3) **, /, *, +, -

(4) / or *, - or +

(l) In b = 6.6 / a + 2 * n; which operation will be performed first?

(1) 6.6 / a

(2) a + 2

(3) 2 * n

(4) Depends upon compiler

(m) Which of the following is allowed in a C Arithmetic instruction

(1) [ ]

(2) { }

(3) ( )

(4) None of the above

(n) Which of the following statements is false

(1) Each new C instruction has to be written on a separate line

(2) Usually all C statements are entered in small case letters

(3) Blank spaces may be inserted between two words in a C statement

(4) Blank spaces cannot be inserted within a variable name

(o) If a is an integer variable, a = 5 / 2 ; will return a value

(1) 2.5

(2) 3

(3) 2

(4) 0

(p) The expression, a = 7 / 22 * ( 3.14 + 2 ) * 3 / 5 ; evaluates to

(1) 8.28

(2) 6.28

(3) 3.14

(4) 0

(q) The expression, a = 30 * 1000 + 2768 ; evaluates to

(1) 32768

(2) -32768

(3) 113040

(4) 0

(r) The expression x = 4 + 2 % - 8 evaluates to

(1) -6

(2) 6

(3) 4

(4) None of the above

(s) Hierarchy decides which operator

(1) is most important

(2) is used first

(3) is fastest

(4) operates on largest numbers

(t) An integer constant in C must have:

(1) At least one digit

(2) At least one decimal point

(3) A comma along with digits

(4) Digits separated by commas

(u) A character variable can never store more than

(1) 32 characters

(2) 8 characters

(3) 254 characters

(4) 1 character

(v) In C a variable cannot contain

(1) Blank spaces

(2) Hyphen

(3) Decimal point

(4) All the above

(w) Which of the following is FALSE in C

(1) Keywords can be used as variable names

(2) Variable names can contain a digit

(3) Variable names do not contain a blank space

(4) Capital letters can be used in variable names

(x) In C, Arithmetic instruction cannot contain

(1) variables

(2) constants

(3) variable names on right side of =

(4) constants on left side of =

(y) Which of the following shows the correct hierarchy of arithmetic operations in C

(1) / + * -

(2) * - / +

(3) + - / *

(4) * / + -

(z) What will be the value of d if d is a float after the operation d = 2 / 7.0?

(1) 0

(2) 0.2857

(3) Cannot be determined

(4) None of the above

Exercises Chapter 2

if, if-else, Nested if-elses

[A] What would be the output of the following programs: (a) main( )

{

int a = 300, b, c ;

if ( a >= 400 )

b = 300 ;

c = 200 ;

printf ( "\n%d %d", b, c ) ;

}

b=garbage value, cannot be predicted

c=200

(b) main( )

{

int a = 500, b, c ;

if ( a >= 400 )

b = 300 ;

c = 200 ;

printf ( "\n%d %d", b, c ) ;

}

300

200

(c) main( )

{

int x = 10, y = 20 ;

if ( x == y ) ;

printf ( "\n%d %d", x, y ) ;

}

10 20

(d) main( )

{

int x = 3, y = 5 ;

if ( x == 3 )

printf ( "\n%d", x ) ;

else ;

printf ( "\n%d", y ) ;

}

3 5

(e) main( )

{

int x = 3 ;

float y = 3.0 ;

if ( x == y )

printf ( "\nx and y are equal" ) ;

else

printf ( "\nx and y are not equal" ) ;

}

x and y are equal

(f) main( )

{

int x = 3, y, z ;

y = x = 10 ;

z = x < 10 ;

printf ( "\nx = %d y = %d z = %d", x, y, z ) ;

}

x=10 y=10 z=0

(g) main( )

{

int k = 35 ;

printf ( "\n%d %d %d", k == 35, k = 50, k > 40 ) ;

}

0 50 1

(h) main( )

{

int i = 65 ;

char j = „A‟ ;

if ( i == j )

printf ( “C is WOW” ) ;

else

printf( "C is a headache" ) ;

}

C is WOW

(i) main( )

{

int a = 5, b, c ;

b = a = 15 ;

c = a < 15 ;

printf ( "\na = %d b = %d c = %d", a, b, c ) ;

}

a=15 b=15 c=0

(j) main( )

{

int x = 15 ;

printf ( "\n%d %d %d", x != 15, x = 20, x < 30 ) ;

}

1 20 1

[B] Point out the errors, if any, in the following programs: (a) main( )

{

float a = 12.25, b = 12.52 ;

if ( a = b )

printf ( "\na and b are equal" ) ;

}

Need comparison operator == inside if condition

(b) main( )

{

int j = 10, k = 12 ;

if ( k >= j )

{

{

k = j ;

j = k ;

}

}

}

No Error

(c) main( )

{

if ( 'X' < 'x' )

printf ( "\nascii value of X is smaller than that of x" ) ;

}

No Error

(d) main( )

{

int x = 10 ;

if ( x >= 2 ) then

printf ( "\n%d", x ) ;

}

then not a valid syntax

(e) main( )

{

int x = 10 ;

if x >= 2

printf ( "\n%d", x ) ;

}

(condition) missing

(f) main( )

{

int x = 10, y = 15 ;

if ( x % 2 = y % 3 )

printf ( "\nCarpathians" ) ;

}

Missing comparison operator (==)

(g) main( )

{

int x = 30 , y = 40 ;

if ( x == y )

printf( "x is equal to y" ) ;

elseif ( x > y )

printf( "x is greater than y" ) ;

elseif ( x < y )

printf( "x is less than y" ) ;

}

else if must be separate

(h) main( )

{

int x = 10 ;

if ( x >= 2 ) then

printf ( "\n%d", x ) ;

}

Invalid syntax then

(i) main( )

{

int a, b ;

scanf ( "%d %d",a, b ) ;

if ( a > b ) ;

printf ( "This is a game" ) ;

else

printf ( "You have to play it" ) ;

}

invalid ; after if condition

Logical Operators

If a = 10, b = 12, c = 0, find the values of the expressions in the following table:

Expression Value

a != 6 && b > 5

a == 9 || b < 3

! ( a < 10 )

! ( a > 5 && c )

5 && c != 8 || !c

1

a != 6 && b > 5 , 1

a == 9 || b < 3 , 0

! ( a < 10 ), 1

! ( a > 5 && c ) , 1

5 && c != 8 || !c , 1 [D] What would be the output of the following programs:

(a) main( )

{

int i = 4, z = 12 ;

if ( i = 5 || z > 50 )

printf ( "\nDean of students affairs" ) ;

else

printf ( "\nDosa" ) ;

}

Dean of students affairs

(b) main( )

{

int i = 4, z = 12 ;

if ( i = 5 && z > 5 )

printf ( "\nLet us C" ) ;

else

printf ( "\nWish C was free !" ) ;

}

Let us C

(c) main( )

{

int i = 4, j = -1, k = 0, w, x, y, z ;

w = i || j || k ;

x = i && j && k ;

y = i || j && k ;

z = i && j || k ;

printf ( "\nw = %d x = %d y = %d z = %d", w, x, y, z ) ;

}

w=1 x=0 y=1 z=1

(d) main( )

{

int i = 4, j = -1, k = 0, y, z ;

y = i + 5 && j + 1 || k + 2 ;

z = i + 5 || j + 1 && k + 2 ;

printf ( "\ny = %d z = %d", y, z ) ;

}

y=1 z=1

(e) main( )

{

int i = -3, j = 3 ;

if ( !i + !j * 1 )

printf ( "\nMassaro" ) ;

else

printf ( "\nBennarivo" ) ;

}

Bennarivo

(f) main( )

{

int a = 40 ;

if ( a > 40 && a < 45 )

printf ( "a is greater than 40 and less than 45" ) ;

else

printf ( "%d", a ) ;

}

40

(g) main( )

{

int p = 8, q = 20 ;

if ( p == 5 && q > 5 )

printf ( "\nWhy not C" ) ;

else

printf ( "\nDefinitely C !" ) ;

}

Definitely C!

(h) main( )

{

int i = -1, j = 1, k ,l ;

k = i && j ;

l = i || j ;

printf ( "%d %d", i, j ) ;

}

1 1 (i) main( )

{

int x = 20 , y = 40 , z = 45 ;

if ( x > y && x > z )

printf( "x is big" ) ;

else if ( y > x && y > z )

printf( "y is big" ) ;

else if ( z > x && z > y )

printf( "z is big" ) ;

}

z is big

(j) main( )

{

int i = -1, j = 1, k ,l ;

k = !i && j ;

l = !i || j ;

printf ( "%d %d", i, j ) ;

}

-1 1 (k) main( )

{

int j = 4, k ;

k = !5 && j ;

printf ( "\nk = %d", k ) ;

}

k=0

[E] Point out the errors, if any, in the following programs: (a) /* This program

/* is an example of

/* using Logical operators */

main( )

{

int i = 2, j = 5 ;

if ( i == 2 && j == 5 )

printf ( "\nSatisfied at last" ) ;

}

No Error

(b) main( )

{

int code, flag ;

if ( code == 1 & flag == 0 )

printf ( "\nThe eagle has landed" ) ;

}

Uninitialized variable code & flag used

(c) main( )

{

char spy = 'a', password = 'z' ;

if ( spy == 'a' or password == 'z' )

printf ( "\nAll the birds are safe in the nest" ) ;

}

Undeclared identifier or used

(d) main( )

{

int i = 10, j = 20 ;

if ( i = 5 ) && if ( j = 10 )

printf ( "\nHave a nice day" ) ;

}

Syntax error in if statement (a) main( )

{

int x = 10 , y = 20;

if ( x >= 2 and y <=50 )

printf ( "\n%d", x ) ;

}

Undeclared identifier and used (b) main( )

{

int a, b ;

if ( a == 1 & b == 0 )

printf ( "\nGod is Great" ) ;

}

Uninitialized local variable 'a' used

(c) main( )

{

int x = 2;

if ( x == 2 && x != 0 ) ;

{

printf ( "\nHi" ) ;

printf( "\nHello" ) ;

}

else

printf( "Bye" ) ;

}

Missing parenthesis

(d) main( )

{

int i = 10, j = 10 ;

if ( i && j == 10)

printf ( "\nHave a nice day" ) ;

}

Have a nice day

Conditional operators

[G] What would be the output of the following programs: (a) main( )

{

int i = -4, j, num ;

j = ( num < 0 ? 0 : num * num ) ;

printf ( "\n%d", j ) ;

}

Error, uninitialized variable num used

(b) main( )

{

int k, num = 30 ;

k = ( num > 5 ? ( num <= 10 ? 100 : 200 ) : 500 ) ;

printf ( "\n%d", num ) ;

}

30

(c) main( )

{

int j = 4 ;

( !j != 1 ? printf ( "\nWelcome") : printf ( "\nGood Bye") ) ;

}

Welcome

[H] Point out the errors, if any, in the following programs: (a) main( )

{

int tag = 0, code = 1 ;

if ( tag == 0 )

( code > 1 ? printf ( "\nHello" ) ? printf ( "\nHi" ) ) ;

else

printf ( "\nHello Hi !!" ) ;

}

Hi

(b) main( )

{

int ji = 65 ;

printf ( "\nji >= 65 ? %d : %c", ji ) ;

}

ji >= 65 ? %d : %c

(c) main( )

{

int i = 10, j ;

i >= 5 ? ( j = 10 ) : ( j = 15 ) ;

printf ( "\n%d %d", i, j ) ;

}

10 10 (d) main( )

{

int a = 5 , b = 6 ;

( a == b ? printf( "%d",a) ) ;

}

Syntax error, missing : before )

(e) main( )

{

int n = 9 ;

( n == 9 ? printf( "You are correct" ) ; : printf( "You are wrong" ) ;) ;

}

Syntax error, ‘;’ before:

(f) main( )

{

int kk = 65 ,ll ;

ll = ( kk == 65 : printf ( "\n kk is equal to 65" ) : printf ( "\n kk is not equal to 65" ) ) ;

printf( "%d", ll ) ;

}

Syntax error

(g) main( )

{

int x = 10, y = 20 ;

x == 20 && y != 10 ? printf( "True" ) : printf( "False" ) ;

}

False