【基础知识题】
 
 1. 简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。

 2. 在程序设计中,常用下列三种不同的出错处理方式:
 (1) 用exit语句终止执行并报告错误;
 (2) 以函数的返回值区别正确返回或错误返回;
 (3) 设置一个整型变量的函数参数以区别正确返回或某种错误返回。
  试讨论这三种方法各自的优缺点,并编写算法,计算 i!×2i 的值并存入数组 a[0..arrsize-1] 的第 i-1 个分量中(i=1,2,…,n)。假设计算机中允许的整数最大值为 maxint,则当 n>arrsize 或对某个 k(1≤k≤n) 使 k!×2k>maxint 时,应按出错处理。注意选择你认为较好的出错处理方法。

 3. 在程序设计中,可采用下列三种方法实现输出和输入:
 (1) 通过 scanfprintf 语句;
 (2) 通过函数的参数显式传递;
 (3) 通过全局变量隐式传递。
  试讨论这三种方法的优缺点,并编写算法求一元多项式 的值 ,并确定算法中每一语句的执行次数和整个算法的时间复杂度。注意选择你认为较好的输入和输出方法,本题的输入为 (i=0,1,…,n), 和 n,输出为

 4. 设 n 为正整数。试确定下列各程序段中前置以记号 @ 的语句的频度:
 (1) i=1; k=0;
   while ( i<=n-1) {
    @ k += 10 * i;
      i++;
   }

 (2) i=1; k=0;
   do {
    @ k +=10 * i;
      i++;
   } while(i<=n-1);

 (3) i = 1; k = 0;
   while (i<=n-1) {
      i++ ;
     @ k+= 10 * i;
   }

 (4) k=0;
   for( i=1; i<=n; i++) {
    for (j=i ; j<=n; j++)
     @ k++;
   }

 (5) for( i=1; i<=n; i++) {
    for (j=1; j<=i; j++) {
     for (k=1; k<=j; k++)
      @ x += delta;
    }
   }

 (6) i=1; j=0;
   while (i+j<=n) {
    @ if (i>j ) j++ ;
      else i++ ;
   }

 (7) x=n; y=0; // n 是不小于1的常数
   while (x>=(y+1)*(y+1)) {
   @ y++;
   }

 (8) x=91; y=100;
   while (y>0 ) {
   @ if (x>100 ) { x -= 10; y- -; }
     else x++;
   }
 

 
【基础知识题】