0% found this document useful (0 votes)
456 views

Let Us C Solution

This document contains solutions to exercises from chapters 1 and 2 of a CS 1090 course. It includes questions on valid/invalid variable names in C, identifying errors in C code statements, evaluating expressions and determining output of programs using if/else, logical and, or operators. Sample programs are provided to demonstrate the use of conditional statements, logical operators and to find their output. Errors in some code snippets are also identified.

Uploaded by

shubham1402
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
456 views

Let Us C Solution

This document contains solutions to exercises from chapters 1 and 2 of a CS 1090 course. It includes questions on valid/invalid variable names in C, identifying errors in C code statements, evaluating expressions and determining output of programs using if/else, logical and, or operators. Sample programs are provided to demonstrate the use of conditional statements, logical operators and to find their output. Errors in some code snippets are also identified.

Uploaded by

shubham1402
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 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