1、国家计算机二级(C)89 及答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.设有以下语句 typedef struct TT char c;int a 4;CIN; 则下面叙述中正确的是【 】。 (分数:60.00)A.可以用 TT定义结构体变量B.IT是 struct类型的变量C.可以用 CIN定义结构体变量D.CIN是 struct IT类型的变量2.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:60.00)A.快速排序B.冒泡排序C.直接插入排序
2、D.堆排序3.有以下程序 int f1 (int x,inty)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; pintf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是【 】。(分数:60.00)A.4,3,7B.3,4,7C.52,7D.2,5,74.下列叙述中正确的是【 】。(分数:60.00)A.软件测试的主要目的是发现程序中的错误B.软
3、件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误5.以下不能正确定义二维数组的选项是( )。(分数:60.00)A.int a22=1,2;B.int a 2=1,2,3,4;C.int a22=1,2,3;D.int a2 =1,2,3,4;6.有以下程序 main() int k=5; while(-k)printf(“d“,k-=3); printf(“n“); 执行后的输出结果是【 】。 (分数:60.00)A.1B.2C.4D.死循环7.以下选项中可作为 C语言合法整数的是( )。(分数:60.0
4、0)A.10110BB.0386C.0XffaD.x2a28.若有定义语句:int m =5,4,3,2,1,i=4;,则下面对 m数组元素的引用中错误是(分数:60.00)A.m-iB.m2*2C.mm0D.mmiA.p-nextB.pC.sD.s-next10.有以下程序 void swap(char*X,char,*y) char t; t=*X;*X=* Y;*Y=t; main() char*s1=“abc“,*s2=“123“; swap(s1,s2);printf(“S,sn“,s1,s2); 程序执行后的输出结果是【 】。 (分数:60.00)A.123,abcB.abc,12
5、3C.1bc,a23D.321,cba11.下列关于单目运算符+、-的叙述中正确的是( )。(分数:60.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量C.它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D.它们的运算对象可以是 char型变量、int 型变量和 float型变量12.有以下程序: main( ) char s “Yes/n/No“,*ps=s; puts(ps+4); *(ps+4)=0; puts(s); 程序运行后的输出结果是(选项 D中的第一行是空行)(
6、 )。 (分数:60.00)A.n/No Yes /NoB./No YesC.n/NO Yes /NoD./No Yes13.以下程序的功能是按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ) int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(“%f“,score);sum+=score; ave=sum/4.0; printf(“NO%d:%f/n“,n,ave); 上述程序运行后结果不正确,调试中发现有条语句出现在程序中的位置不正确。这条语句
7、是( )。 (分数:60.00)A.sum=0.0;B.sum+=score;C.ave=sum/4.0;D.printf(“NO%d:%f/n“,n,ave);14.以下叙述中正确的是(分数:60.00)A.全局变量的作用域一定比局部变量的作用域范围大B.静态(static)类别变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值15.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(“%d,%d/n“
8、,k,n); 程序运行后的输出结果是( )。 (分数:60.00)A.1,1B.2,2C.3,3D.4,416.下列对队列的叙述正确的是【 】。(分数:60.00)A.队列属于非线性表B.队列按“先进后出“原则组织数据C.队列在队尾删除数据D.队列按“先进先出“原则组织数据17.有以下程序 #include #include int fun(int n) int *p; p=(int*)malloc(sizeof(int); *p=n; return*p; main() int a: a=fun(10);printf(“%d/n“,a+fun(10); 程序的运行结果是 (分数:60.00)A
9、.0B.10C.20D.出错18.下列关于 C语言用户标识符的叙述中正确的是( )。(分数:60.00)A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头19.以下不能定义为用户标识符的是( )。(分数:60.00)A.scanfB.VoidC._3com_D.int20.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或
10、码)为(分数:60.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩21.以下选项中不能作为合法常量的是【 】。(分数:60.00)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e022.设变量均已正确定义,若要通过 scanf(“dcdc“, for(i=0;i3;i+) for (j=2;j=i;j-) if(xj+1xj) k=xj;xj=xj+1;xj+1=k; for(i=0;i3;i+) for(j=4;j7-i;j+) if(xj+1xj) k=xj;xj=xj+1;xj+1=k; for (i=0;i3;i+) if(xjxj+
11、1) k=xj;xj=xj+1;xj+1=k; for (i=0;i8;i+) printf(“%d“,xi); printf(“/n“); 程序运行后的输出结果是( )。 (分数:60.00)A.75310246B.01234567C.76310462D.1357024624.已有定义:int i,a10,*p;,则合法的赋值语句是( )。(分数:60.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2;25.有以下程序: main( ) unsigned char a,b; a=4|3; b=4 printf(“%d %d/n”,a,b(; 执行后输出结果是( )。 (分
12、数:60.00)A.7 0B.0 7C.1 1D.43 026.以下选项中非法的表达式是( )。(分数:60.00)A.0s2)S;B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S;28.在多媒体计算机系统中,不能用以存储多媒体信息的是( )。(分数:60.00)A.光缆B.软盘C.硬盘D.光盘29.有以下程序 #include main() FILE * fp;int i,a6=l,2,3,4,5,6; fp=fopen(“d3.dat“,“W+b“);fwrite(a,sizeof(int),6,fp); fse
13、ek(fp,sizeof(int)* 3,SEEK_SET);*该语句使读文件的位置指针从文件头向后移动 3个 int型数 据* fread(a,sizeof(int),3,fp);fclose(fp); for(i=0;iA.4,5,6,4,5,6,B.1,2,3,4,5,6,C.4,5,6,1,2,3,D.6,5,4,3,2,1,30.有以下程序: void sort(int a,int n) int i,j,t; for(i=0;in;i+) for(j=i+1;n;j+) if(aiaj) t=ai; ai=aj; aj=t; main() int aa10=1,2,3,4,5,6,7
14、,8,9,10,i; sort(aa+2,5); for(i=0;i10;i+)printf(“%d,“,aa i); printf(“/n“); 程序运行后的输出结果是【 】。 (分数:60.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,10,31.“商品“与“顾客“两个实体集之间的联系一般是【 】。(分数:60.00)A.一对一B.一对多C.多对一D.多对多32.有以下程序: main() int num44=1,2,3,4,5,6,7,8,9,10,1
15、1,12,13,14,15,16,ij; for(i=0;i4;i+) for(j=0;j=i;j+) printf(“%4c“,); for(j=【 】;j4;j+) printf(“%4d“,numij); printf(“/n“); 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是【 】。(分数:60.00)A.i-1B.iC.i+1D.4-i33.在 E-R图中,用来表示实体的图形是【 】。(分数:60.00)A.矩形B.椭圆形C.菱形D.三角形34.以下程序中,能够通过调用函数 fun,使 main函数中的指针变量 p指向一个
16、合法的整型单元的是( )。(分数:60.00)A.main( ) int *p; fun(p); int fun(int *p) int s; p=B.main( ) int *p; fun( int fun(int *p) int s; *p=C.#includestdlib.h main( ) int *p; fun( int fun(int *p) *p=(int*)malloc(2);D.#includestdlib.h main( ) int *p; fun(p); int fun(int *p) p=(int*)malloc(sizeof(int);35.以下叙述中正确的是( )。
17、(分数:60.00)A.局部变量说明为 static存储数,其生存期将得到延长B.全局变量说明为 static存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同36.设有定义语句 int x6=2,4,6,8,5,7,*p=x,i; 要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是( )。 (分数:60.00)A.for(i=0;inext; while( 1) printf(“sn“,P-sub);P= 2; main3 Node *hd; hd=fun4;disp(hd);prinff(“n“); (分数:
18、40.00)填空项 1:_58.设变量 a和 b已正确定义并赋初值。请写出与 a-=a+b等价的赋值表达式 1。(分数:40.00)填空项 1:_59.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:40.00)填空项 1:_60.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:40.00)填空项 1:_61.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 1( double,double); main( ) double x,y; scan
19、f(“%lf%lf“, printf(“%lf/n“,max(x,y); double max(double a,double b) return(ab ? a:b); (分数:40.00)填空项 1:_62. E-mail地址由域名和用户名两部分组成,它们之间用分隔,其中在后面的部分是 1。(分数:40.00)填空项 1:_国家计算机二级(C)89 答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.设有以下语句 typedef struct TT char c;int a 4;CIN; 则下面叙
20、述中正确的是【 】。 (分数:60.00)A.可以用 TT定义结构体变量B.IT是 struct类型的变量C.可以用 CIN定义结构体变量 D.CIN是 struct IT类型的变量解析:在 C语言中,typedef 用于说明一种新的类型名,本题中的 CIN被定义为一种新的类型名,我们可以用它来定义一个结构体变量。2.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:60.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是 n(n-1)/2,堆排序需要比较的次数为 nlog2
21、n。3.有以下程序 int f1 (int x,inty)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; pintf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是【 】。(分数:60.00)A.4,3,7 B.3,4,7C.52,7D.2,5,7解析:函数 f1的功能是返回两个数中比较的值,f2 的功能是返回两个数中比较小的值。 4.下列叙述中
22、正确的是【 】。(分数:60.00)A.软件测试的主要目的是发现程序中的错误 B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误解析:软件测试是为了发现错误而执行程序的过程,且为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序。5.以下不能正确定义二维数组的选项是( )。(分数:60.00)A.int a22=1,2;B.int a 2=1,2,3,4;C.int a22=1,2,3;D.int a2 =1,2,3,4; 解析:6.有以下程序 main() int k=5
23、; while(-k)printf(“d“,k-=3); printf(“n“); 执行后的输出结果是【 】。 (分数:60.00)A.1 B.2C.4D.死循环解析:k 的初始值为 5,当第一次进行 while循环时,k 自减 l变为 4,非 0,执行循环体里的 printf语句,输出 1,此时 k的值变为 1。程序执行第二次循环,k 自减 1变为 0,为假,退出 while循环语句。所以程序的最后结果为 1,即本题的正确答案为选项 A)。7.以下选项中可作为 C语言合法整数的是( )。(分数:60.00)A.10110BB.0386C.0Xffa D.x2a2解析:8.若有定义语句:int
24、 m =5,4,3,2,1,i=4;,则下面对 m数组元素的引用中错误是(分数:60.00)A.m-iB.m2*2C.mm0 D.mmi解析:数组 m下标从 0到 4计算,共 5个元素,选项 C)中 m0=5,再代入 m5中就超出了数组 m的下标范围。因此正确答案为 C。A.p-nextB.p C.sD.s-next解析:10.有以下程序 void swap(char*X,char,*y) char t; t=*X;*X=* Y;*Y=t; main() char*s1=“abc“,*s2=“123“; swap(s1,s2);printf(“S,sn“,s1,s2); 程序执行后的输出结果是
25、【 】。 (分数:60.00)A.123,abcB.abc,123C.1bc,a23 D.321,cba解析:这是一个转换程序:低字节相互转换,高字节不变。“abc“的 ab和“123“的 12相互转化。11.下列关于单目运算符+、-的叙述中正确的是( )。(分数:60.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char型变量和 int型变量,但不能是 float型变量C.它们的运算对象可以是 int型变量,但不能是 double型变量和 float型变量D.它们的运算对象可以是 char型变量、int 型变量和 float型变量 解析:12.有以下程序: main
26、( ) char s “Yes/n/No“,*ps=s; puts(ps+4); *(ps+4)=0; puts(s); 程序运行后的输出结果是(选项 D中的第一行是空行)( )。 (分数:60.00)A.n/No Yes /NoB./No Yes C.n/NO Yes /NoD./No Yes解析:13.以下程序的功能是按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ) int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(“%f“,score);
27、sum+=score; ave=sum/4.0; printf(“NO%d:%f/n“,n,ave); 上述程序运行后结果不正确,调试中发现有条语句出现在程序中的位置不正确。这条语句是( )。 (分数:60.00)A.sum=0.0; B.sum+=score;C.ave=sum/4.0;D.printf(“NO%d:%f/n“,n,ave);解析:本题中 sum用来保存每位学生的总成绩,所以在计算不同学生的总成绩时,应将 sum重新赋值 初值 0,即语句 sum=0.0;,它应在第二个 for语句前执行。14.以下叙述中正确的是(分数:60.00)A.全局变量的作用域一定比局部变量的作用域范
28、围大B.静态(static)类别变量的生存期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量D.未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值解析:15.有以下程序 main( ) int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(“%d,%d/n“,k,n); 程序运行后的输出结果是( )。 (分数:60.00)A.1,1B.2,2C.3,3 D.4,4解析:16.下列对队列的叙述正确的是【 】。(分数:60.00)A.队列属于非线性表B.队列按“先进后出“原则组织数据C.队列在队尾删
29、除数据D.队列按“先进先出“原则组织数据 解析:队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(一),允许删除一端称为队首(front)。队列具有先进先出的特点,它是按“先进先出“的原则组织数据的,故本题答案为 D。17.有以下程序 #include #include int fun(int n) int *p; p=(int*)malloc(sizeof(int); *p=n; return*p; main() int a: a=fun(10);printf(“%d/n“,a+fun(10); 程序的运行结果是 (分数:60.
30、00)A.0B.10C.20 D.出错解析:分配内存空间函数 malloc的调用形式:(类型说明符*)malloc(size)。其功能是在内存的动态存储区中分配一块长度为“size”字节的连续区域,函数的返回值为该区域的首地址。“类型说明符”表示把该区域用于何种数据类型。18.下列关于 C语言用户标识符的叙述中正确的是( )。(分数:60.00)A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线 C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头解析:19.以下不能定义为
31、用户标识符的是( )。(分数:60.00)A.scanfB.VoidC._3com_D.int 解析:20.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC的关键字(键或码)为(分数:60.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:“选课 SC”表是“学生 S”表和“课程 C”表的映射表,主键是两个表主键的组合。21.以下选项中不能作为合法常量的是【 】。(分数:60.00)A.1.234e04B.1.234e0.4 C.1.234e+4D.1.234e0解析:指数形式的
32、实型常量要求字母 e(或 E)之前必需有数字,且 e后面的指数必须为整数,所以本题中选项 B非法。 22.设变量均已正确定义,若要通过 scanf(“dcdc“, for(i=0;i3;i+) for (j=2;j=i;j-) if(xj+1xj) k=xj;xj=xj+1;xj+1=k; for(i=0;i3;i+) for(j=4;j7-i;j+) if(xj+1xj) k=xj;xj=xj+1;xj+1=k; for (i=0;i3;i+) if(xjxj+1) k=xj;xj=xj+1;xj+1=k; for (i=0;i8;i+) printf(“%d“,xi); printf(“/
33、n“); 程序运行后的输出结果是( )。 (分数:60.00)A.75310246 B.01234567C.76310462D.13570246解析:24.已有定义:int i,a10,*p;,则合法的赋值语句是( )。(分数:60.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2; 解析:25.有以下程序: main( ) unsigned char a,b; a=4|3; b=4 printf(“%d %d/n”,a,b(; 执行后输出结果是( )。 (分数:60.00)A.7 0 B.0 7C.1 1D.43 0解析:26.以下选项中非法的表达式是( )。(分数:60
34、.00)A.0s2)S;B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S; 解析:28.在多媒体计算机系统中,不能用以存储多媒体信息的是( )。(分数:60.00)A.光缆 B.软盘C.硬盘D.光盘解析:光缆是传输多媒体信息的通道,不能用以存储多媒体信息。29.有以下程序 #include main() FILE * fp;int i,a6=l,2,3,4,5,6; fp=fopen(“d3.dat“,“W+b“);fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)* 3
35、,SEEK_SET);*该语句使读文件的位置指针从文件头向后移动 3个 int型数 据* fread(a,sizeof(int),3,fp);fclose(fp); for(i=0;iA.4,5,6,4,5,6, B.1,2,3,4,5,6,C.4,5,6,1,2,3,D.6,5,4,3,2,1,解析:首先利用 fwrite函数将数组 a中的数据写到文件中,接着 fseek函数的功能是读文件的位置,指针从文件头向后移动 3个 int型数据,这时文件位置指针指向的是文件中的第 4个 int数据“4“。然后 fread函数将文件 fp中的后 3个数据 4,5,6读到数组 a中,这样就覆盖了数组中原
36、来的前 3项数据。最后数组中的数据就成了4,5,6,4,5,6,故本题答案为 A)。30.有以下程序: void sort(int a,int n) int i,j,t; for(i=0;in;i+) for(j=i+1;n;j+) if(aiaj) t=ai; ai=aj; aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa+2,5); for(i=0;i10;i+)printf(“%d,“,aa i); printf(“/n“); 程序运行后的输出结果是【 】。 (分数:60.00)A.1,2,3,4,5,6,7,8,9,10,B.1
37、,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10, D.1,2,9,8,7,6,5,4,3,10,解析:本题 sort函数的作用是将指定的数由大到小排序。主调函数“sort(aa+2,5);“中的实参 aa+2是指aa2的地址,将其传给了形参 a,使得形参中 a0的值为主函数中 aa2的值,即 3;实参中的 5传绐形参中的 n,在 sort函数中起着限制循环次数的作用,即使得参加排序的只有 5个数,从 aa2到 aa6,所以本题输出的结果是 1,2,7,6,5,4,3,8,9,10,。 31.“商品“与“顾客“两个实体集之间的联系一般是【 】。(分数:60.
38、00)A.一对一B.一对多C.多对一D.多对多 解析:两个实体集之间的联系实际上是实体集间的函数关系,主要有 3种:一对一的联系,一对多的联系,多对多的联系。“商品“与“顾客“两个实体集之间的联系一般是多对多,因为,一种“商品“可以被多个“顾客“购买,而一个“顾客“也可以购买多个“商品“。32.有以下程序: main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,ij; for(i=0;i4;i+) for(j=0;j=i;j+) printf(“%4c“,); for(j=【 】;j4;j+) printf(“%4d“,numij);
39、printf(“/n“); 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是【 】。(分数:60.00)A.i-1B.i C.i+1D.4-i解析:本题程序为二重循环,外循环控制输出数据的行数,内循环控制输出数据的列数。从本题输出的形式来看,程序要求输出的是 4行 4列。 33.在 E-R图中,用来表示实体的图形是【 】。(分数:60.00)A.矩形 B.椭圆形C.菱形D.三角形解析:在 E-R图中,用矩形表示实体集,用椭圆形表示属性,用菱形(内部写上联系名)表示联系。34.以下程序中,能够通过调用函数 fun,使 main函数中的指针
40、变量 p指向一个合法的整型单元的是( )。(分数:60.00)A.main( ) int *p; fun(p); int fun(int *p) int s; p=B.main( ) int *p; fun( int fun(int *p) int s; *p=C.#includestdlib.h main( ) int *p; fun( int fun(int *p) *p=(int*)malloc(2);D.#includestdlib.h main( ) int *p; fun(p); int fun(int *p) p=(int*)malloc(sizeof(int); 解析:35.以
41、下叙述中正确的是( )。(分数:60.00)A.局部变量说明为 static存储数,其生存期将得到延长 B.全局变量说明为 static存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同解析:36.设有定义语句 int x6=2,4,6,8,5,7,*p=x,i; 要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是( )。 (分数:60.00)A.for(i=0;inext; while( 1) printf(“sn“,P-sub);P= 2; main3 Node *hd; hd=fun4;disp(hd);p
42、rinff(“n“); (分数:40.00)填空项 1:_ (正确答案:p!=NULL,p-next)解析:NULL 的 ASCII码的值和O的 ASCII码的值相等,条件到 NULL停止循环。把下一个节点的地址58.设变量 a和 b已正确定义并赋初值。请写出与 a-=a+b等价的赋值表达式 1。(分数:40.00)填空项 1:_ (正确答案:a=-b)解析:a-=a+b 等价于 a=a-(a+b),等价于 a=-b。59.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:4
43、0.00)填空项 1:_ (正确答案:驱动模块)解析:在进行测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块):其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。 60.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:40.00)填空项 1:_ (正确答案:32)解析:根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1,个结点。得到第 6层的结点数最多是 32。 61.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 1( double,double); main( ) double x,y; scanf(“%lf%lf“, printf(“%lf/n“,max(x,y); double max(double a,double b) return(ab ? a:b); (分数:40.00)填空项 1:_ (正确答案:double max)解析:62. E-mail地址由域名和用户名两部分组成,它们之间用分隔,其中在后面的部分是 1。(分数:40.00)填空项 1:_ (正确答案:域名)解析:
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1