Let Us C Solution

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 16

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 startin
g of variable name 422 invalid all numeric characters population in 2006 invalid
space between variable name over time invalid space between variable name mindo
vermatter valid FLOAT invalid C keyword hELLO valid queue valid teamsvictory inva
lid special character in variable name Plot # 3 invalid special character # in v
ariable 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 vari
able 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; prin


tf( "%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) Pe
ter Norton (4) Martin Richards (b) C can be used on (1) Only MS-DOS operating sy
stem (2) Only Linux operating system (3) Only Windows operating system (4) All t
he 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) Fraction
al form only (2) Exponential form only (3) ASCII form only (4) Both fractional a
nd exponential forms (e) A character variable can at a time store (1) 1 characte
r (2) 8 characters (3) 254 characters (4) None of the above (f) The statement ch
ar ch = Z would store in ch (1) The character Z (2) ASCII value of Z (3) Z along w
ith the single inverted commas (4) Both (1) and (2) (g) Which of the following i
s 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 t
he correct hierarchy of arithmetic operators in C (1) **, * or /, + or (2) **, *
, /, +, (3) **, /, *, +, (4) / or *, - or + (l) In b = 6.6 / a + 2 * n; which op
eration will be performed first? (1) 6.6 / a (2) a + 2 (3) 2 * n (4) Depends upo
n 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 statemen
ts 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 insert
ed within a variable name (o) If a is an integer variable, a = 5 / 2 ; will retu
rn 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) Non
e 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 consta
nt in C must have: (1) At least one digit (2) At least one decimal point (3) A c
omma along with digits (4) Digits separated by commas (u) A character variable c
an 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) K
eywords 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 b
e 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 = 30
0, 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 ; pri
ntf ( "\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 pri
ntf( "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 = 1
2 ; 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 i
s 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 ta
ble:
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 stu


dents 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" ) ; el
se printf ( "\nBennarivo" ) ; }
Bennarivo

(f) main( ) { int a = 40 ; if ( a > 40 && a < 45 ) printf ( "a is greater than 4
0 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 eagl
e 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 ( "\nHav
e 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 da
y" ) ; } 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 B
ye") ) ;

}
Welcome
[H] Point out the errors, if any, in the following programs: (a) main( ) { int t
ag = 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( "Yo
u 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 er
ror

(g) main( ) { int x = 10, y = 20 ; x == 20 && y != 10 ? printf( "True" ) : print


f( "False" ) ; }
False

You might also like