A Test for The C Programming Language I. History 1. C was originally designed for and implemented on the (what) operating system on the DEC PDP-11, by (who) . 2. The most recently approved ANSI/ISO C standard was issued in (when) , and single line comments notation “//” is or isn’t a feature of C89. II. Syntax and Semantics 1. In a runtime C program, auto variables are stored in , static variables are stored in , and function parameters are stored in . a. stack b. heap c. neither stack nor heap 2. The statement “extern int x;” is a , and the keyword extern is used during . a. variable declaration b. variable definition c. compilation time d. runtime 3. There is a complicated declaration: void ( * signal (int, void (*)(int)) ) (int);If a statement “typedef void (*p) (int);” is given, please rewrite this complicated declaration. 4. The following code is a segment of C program. .......... void func(int *p) {...........} .......... main() { int num=0; ......... func(&num); ........ } .......... Here, the function argument “&num” is passed . a. by value b. by reference III. Practice Create a tree, which has h (h>0) layers, and its each node has w (w>0) se complete the following incomplete solution. #include <stdlib.h> #include <string.h> struct tree{ char info; p_sub; //link to sub-nodes}; // allocate memory and initiate void dnode ( struct tree* tmp ) { = malloc( sizeof (struct tree) ); = 0x41; = NULL; } struct tree *dtree (struct tree* subtree, int height, int width) { int i; if ( !subtree ) //if necessary, allocte memory for subtree denode(subtree); if ( height == 1 ) return subtree; else if ( height == 2 ) { struct tree *leaf = NULL; for ( i=0; i<width; i++ ) { denode ( ); ; leaf = NULL;} return subtree;} else { for ( i=0; i<width; i++ ) { } return subtree; } } main() { ......... struct tree *root = NULL;