Sunteți pe pagina 1din 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 teamsvictory 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 ; (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 variable names not according to convention (g) si = principal * rateofinterest * numberofyears / 100 ; correct

[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 23

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 a != 6 && b > 5 a == 9 || b < 3 ! ( a < 10 ) ! ( a > 5 && c ) 5 && c != 8 || !c a != 6 && b > 5 , 1 a == 9 || b < 3 , 0 ! ( a < 10 ), 1 ! ( a > 5 && c ) , 1 5 && c != 8 || !c , 1 Value 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

S-ar putea să vă placă și