全球第三、欧洲第一的大半导体企业意法半导体软件试题
      
          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(
      
          ........
      
          }
      
          ..........
      
          Here, the function argument “ 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) 
      sub-nodes. 
      
      
      
          Please complete the following incomplete solution. 
      
          #include
      
          #include
      
          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          denode (      ); 
      
          ;
      
          leaf = NULL; 
      
          }
      
          return subtree; 
      
          }
      
          else { 
      
          for ( i=0; i                               
      
          }
      
          return subtree; 
      
          }
      
          }
      
          main()
      
          {
      
          .........
      
          struct tree *root = NULL; 
      
          root = dtree (root, h, w) ; // h and w are integers get from input 
      
          .........
      
          }
      
      
应天故事汇(gsh.yzqz.cn)

下一章 回目录