【基础知识题】
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) 通过 scanf 和 printf
语句; (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++; } |