学习网考试学习资料

Gzu521.com

2007年9月计算机等级考试二级C模拟试题(5)(4)

全国计算机等级考试   点击:次   发布时间:2007-9-13   【字体: 】   来源:Gzu521.com
贵 州 学 习 网

(50)若有下面的说明和定义,则sizeof(struct aa)的值是
struct aa
{ int r1; double r2; float r3;
union uu{char u1[5];long u2[2];}ua;
} mya;
a)30
b)29
c)24
d)22
正确答案:  d

二 、填空题
(1)长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。
正确答案:  1.(n/2)
(2)用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。
正确答案:  1.(层次模型)
(3)类是一个支持集成的抽象数据类型,而对象是类的 【3】 。
正确答案:  1.(实例)
(4)数据流图的类型有 【4】 和事务型。
正确答案:  1.(变换型)
(5)当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。
正确答案:  1.(物理独立性)
(6)使用结构体处理数据的场合是【6】 。
正确答案:  1.(把不同类型的数据作为整体处理。)
(7)有定义char a,b;若想通过&运算符保留a的第3位和第6位的值,则b的二进数应是【7】 。
正确答案:  1.(00100100)
(8)以下程序运行结果是【8】 。
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);
}
正确答案:  1.(k=5)
(9)strcmp函数的功能是【9】 。
正确答案:  1.(字符串的比较)
(10)以下程序段中,错误的行号是【10】 。
① #include <stdio.h>
② main ()
③ { char str [14];str []={" i love china"};
④printf ("%s",str);
⑤ }

正确答案:  1.(3行)

(11)将以下程序写成三目运算表达式是【11】 。
if(a>b)max=a;
else max=b;
正确答案:  1.(max=(a>b)?a:b;)
(12)设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【12】。
考生答案:  1.()
正确答案:  1.(1.000000)
(13)下面程序的功能是输出数组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])【13】
printf("%d\n", k);
}
正确答案:  1.(k=p;)
(14)设有以下定义和语句,则*(*(p+2)+1)的值为【14】。
   int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];
   p=a;
正确答案:  1.(60)
(15)下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。
add(int x, int y,【15】z)
{【16】= x+y; }
正确答案:  1.(int *) 2.(*z)
(16)下面程序的运行结果是【17】。
#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);
}
正确答案:  1.(1000  10)
(17)以下程序的输出结果是【18】。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num%10;num/=10;}
while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
正确答案:  1.(12)
(18)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
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 <stdio.h>
#define n 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i<n;i++)
if(a[j-1]【19】a[i])
a[j++]=a[i];
【20】;
}
main()
{  int a[n]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("the original data :\n");
for(i=0; i<n; i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nthe data after deleted :\n");
for(i=0; i<n; i++)printf("%3d",a[i]);  printf("\n\n");
}
正确答案:  1.(!=) 2.(return j)  

上一页
本文共4页: 第 [1] [2] [3] [4]

责任编辑:gzu521

IT认证分类
计算机软件水平考试
全国计算机等级考试
思科认证
微软认证
ORACLE/CIW认证
Linux认证
JAVA认证
其它认证
分类推荐信息
更多...
大类最新文章
更多...