2013年计算机等级考试二级C语言备考试题及答案一(2)
二、填空题(每空2分,共计30分)
1.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。
2.用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。
3.类是一个支持集成的抽象数据类型,而对象是类的 【3】 。
4.数据流图的类型有 【4】 和事务型。
5.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。
6.以下程序运行结果是 【6】 。
long fib (int g)
{ switch (g)
{ case 0∶return 0;
case 1∶case2∶return 1;
}
return (fib(g-1)+fib(g-2));
}
main ()
{ long k;
k=fib (5);
printf ("k=%(d\n)",k);
}
7.以下程序段中,错误的行号是 【7】 。
① #include
② main ()
③ { char str [14];str []={" I love China"};
④ printf ("%s",str);
⑤ }
8.将以下程序写成三目运算表达式是 【8】 。
if(a>b)max=a;
else max=b;
9.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为 【9】 。
10.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>s[k]) 【10】
printf("%d\n", k);
}
11.设有以下定义和语句,则*(*(p+2)+1)的值为 【11】 。
int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];
p=a;
12.下面程序的运行结果是 【12】 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
13.以下程序的输出结果是 【13】 。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num;num/=10;} while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
14.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是2 3 4 5 6 7 8 9 10。请填空。
#include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i
for(i=0; i