For the block-structured C code below, indicate the values assigned to w, x, y, and z.
int w, x, y, z; int i = 4; int j = 5; { int j = 7; i = 6; w = i + j; } x = i + j; { int i = 8; y = i + j; } z = i + j;
w = 13, x = 11, y = 13, z = 11.
Repeat Exercise 1.6.1 for the code below.
int w, x, y, z; int i = 3; int j = 4; { int i = 5; w = i + j; } x = i + j; { int j = 6; i = 7; y = i + j; } z = i + j;
w = 9, x = 7, y = 13, z = 11.
For the block-structured code of Fig. 1.14, assuming the usual static scoping of declarations, give the scope for each of the twelve declarations.
Block B1: declarations: -> scope w B1-B3-B4 x B1-B2-B4 y B1-B5 z B1-B2-B5 Block B2: declarations: -> scope x B2-B3 z B2 Block B3: declarations: -> scope w B3 x B3 Block B4: declarations: -> scope w B4 x B4 Block B5: declarations: -> scope y B5 z B5
What is printed by the following C code?
#define a (x + 1) int x = 2; void b() { x = a; printf("%d\n", x); } void c() { int x = 1; printf("%d\n", a); } void main () { b(); c(); }
3
2
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8