1、二级 C语言笔试-128 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.数据的完整性是指数的正确性、有效性和_。(分数:2.00)A.可维护性B.独立性C.安全性D.相容性2.下列程序执行后输出的结果是_。int d=l;fun(int p)int d=5;d+=p+;printf(“%d,“,d);main()int a=3;fun((分数:2.00)A.;5puts(s);6strcpy(s,“hello“);7printf(“%3S/n“,s);(分数:2.00)A.没有错B.第 1行有错C.第 6行有错D.第 7行有错4.下面是对宏
2、定义的描述,不正确的是_。(分数:2.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运算求值D.宏替换只不过是字符替代而已5.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:2.00)A.分析结果B.事件C.动作D.数据6.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。(分数:2.00)A.2B.3C.4D.57.以下程序段的输出结果是_。main()char s110,s210,s310;scanf(“%s“,s1);gets
3、(s2);gets(s3);puts(s1);puts(s2)puts(s3)输入数据如下:(此处CR代表回车符)aaaCRbbbCR(分数:2.00)A.aaabbbB.aaabbbC.aaa/0bbb/0D.aaabbb8.能将高级语言程序转换成目标语言程序的是_。(分数:2.00)A.调试程序B.解释程序C.编译程序D.编辑程序9.下列程序的输出结果是_。main()int i=3;switch(i)case 1:case2:printf(“%d“,i)case3:case4:break;default:printf(“OK“);(分数:2.00)A.0B.3C.OKD.没有任何输出10
4、.以下程序输出的结果为_。main()char*alpha6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“;char*p;int i;p=alpha;for(i=0,i4;i+)prntf(“%s“,pi);(分数:2.00)A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM11.下面程序的输出结果是_。#inc1udestdio.hmain()char*p=“BOOL“,“OPK“,“H“,“SP“;int i;for(i=3;i=0;i-,i-)prinf(“%c“,*pi);print(“/n“)(分数:1.00
5、)A.SOB.SPC.SPOPKD.SHOB12.下列程序的执行结果是_。#lnCludestdio.hunion unint i;char c2;void main()union un x;x.c0=10x.cl=1;printf(“/n%d,x.i);(分数:1.00)A.266B.11C.265D.13813.在软件开发过程中,软件结构设计是描述_。(分数:1.00)A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程14.对于 n个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:1.00)A.n-1B.nC.n+1D.2n15.可以在 C语言中用做用户标识
6、符的是_。(分数:1.00)A.voiddefine WORDB.as_b3_123IfC.for -abccasD.2cDoSIG16.下述函数功能是_。int fun(char*x)char*y=x;while(*y+)retumy-x-1;(分数:1.00)A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x连接到字符串 y后面17.在数据结构中,从逻辑可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构18._是构成 C语言程序的基本单位。(分数:1.00)A.函数B.过程C.子
7、程序D.子例程19.请读程序段:char str=“ABCD“,*p=strprint(“%d/n“,*(p+4);程序段的输出结果是_。(分数:1.00)A.68B.OC.字符D的地址D.不确定的值20.若有定义:int a410;,则以下选项中对数组元素 aij引用错误的是_。 (o=i4,0=j=10(分数:1.00)A.*(a=+SQR(k+1);printf(“%d/n“,(分数:2.00)A.;i3;i+)print(“%d“,mki);(分数:2.00)A.456B.258C.369D.78923.已知字母 A的 ASCII码值是 65,字母 a的 ASCII码值是 97,以下程
8、序_。main()char a=A;int b=20;pxintf(“%d,%o“,(a=a+a,a+b,b) ,a+a-A,b);(分数:2.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141D.输出结果为 20,141,2024.定义 int*swap()指的是_。(分数:2.00)A.个返回整型值的函数 swap()B.一个返回指向整型值指针的函 swap()C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错25.若一个名部变量的定义形式为 static int x;,那么,其中 static的作用应该是_。(分
9、数:2.00)A.将变量存储在静态存储区B.使变量 X可以由系统自动初始化C.使 x只能在本文件内引用D.使 x的值可以永久保留26.以下程序的输出结果是_。#includestdio.hvoid prt(int*x,int*y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);int a=10,b=40,c=20;main()prt((分数:2.00)A.11,42,3112,22,41B.11,41,2012,42,20C.11,21,40 11,21,41D.11,41,2112,42,2227.模块本身的内聚是模块独立性的重要性度量因素之。在 7类内聚中,
10、具有最强内聚的项是_。(分数:2.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚28.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。A.希尔排序B.冒泡排序C.插入排序D.选择排序29.C语言库函数 fgets(str,n,fp)功能是_。(分数:2.00)A.从中指向的文件中读取长度 n的字符串存入 int指向的内存B.从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存C.从 fp指向的文件中读到 n个字符串存入 str指向的内存D.从 str读取至多 n个字符到文件 fp30.若进栈序列为 1,2,3,4,进栈过程中可
11、以出栈,则下列不可能的个出栈序列是_。(分数:2.00)A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,131.下面语句的输出结果是_。printf(“%d、n“,strlen(“/t/“/065/xff/n“);(分数:2.00)A.14B.8C.5D.输出项不合法,无正常输出32.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;(分数:2.00)A.example.x=10B.example v2.x=10C.example.x=10D.struct example v2=10;33.下述程序文件输出的结果是_。#
12、ineludestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);fprintf(fp,“%d5.of%c%d“,58,76273.0,-,2278);fclose(fp);(分数:2.00)A.58 76273-2278B.5876273.000000-2278C.5876273-2278D.因文件为二进制文件而不可读34.设有以下语句:char strl=“string“,str28,*str,*str4=“string“;则_不是对库函数的正确调用。(分数:2.00)A.strcpy(strl,“HELLO1“);B.strcpy(str2,“HEL
13、LO2“);C.strcpy(str3,“HELLO3“);D.strcpy(str4,“HELLO4“);35.下列程序的输出结果是_。#define A 100main()int i=0,sum=0;do if(i(i/2)*2)continue;sum+=i;while(+i(分数:2.00)A.;print(“%d/n“,sum);A) 2500B.2050C.4D.036.已知下面的程序段,正确的判断是_。#define A3#define B((分数:2.00)A.(A+1)*a)int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌套定义B.X=93C.)X=81D.程
14、序错误,宏定义不允许有参数37.关系代数运算是以_为基础的运算。(分数:2.00)A.关系运算B.谓词运算C.集合运算D.代数运算38.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。struct 1inkchar data;node;(分数:2.00)A.B.C.D.39.已知小写字母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是_。main()unsigned int a=31,b=66;pfintf(“%c/n,a|b);(分数:2.00)A.66B.98C.bD.B40.请读程序:#includestdio.h#includest
15、ring.hmain()char*s1=“AbCdEf“,*s2=“aB“;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(分数:2.00)A.正数B.负数C.零D.不确定的值二、填空题(总题数:12,分数:30.00)41.对于长度为 n的顺序存储的线性表,当随机插入和删除个元素时,需平均移动元素的个数为 【1】 。(分数:2.00)填空项 1:_42.注释说明了程序的功能,它分为 【2】 注释和功能性注释。(分数:2.00)填空项 1:_43.软件测试中路径覆盖测试是整个测试的基础,它是对软件 【3】 进行测试。(分数:2.00)填空项 1
16、:_44.数据库技术的主要特点为数据的集成性、数据的高 【4】 和低冗余性、数据独立性和数据统 管理与控制。(分数:2.00)填空项 1:_45.数据元素之间 【5】 的整体称为逻辑结构。(分数:2.00)填空项 1:_46.若 x和 y都是 double型变量,且 x的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x)的值为 【6】 。(分数:2.00)填空项 1:_47.没有 char,a,b;,若要通过 aint fun(int x,int y)int m=3;return(x*y-m);main()int a=7,b=5;Printf(“%d/n“,fun(a,
17、b)/m);(分数:2.00)填空项 1:_49.下列执行后输出的结果是 【9】 。main()intarr10,i,k=0for(i=0;i10;i+)atri=ifor(i=1,i4;i+) k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_50.下面程序有两个 printf语句,如果第一个 printf语句输出的是 194,则第二个 printf语句的输出结果是 【10】 main()int a10=1,2,3,4,5,6,7,8,9,0,*p;p=aprintf(“%x/n“,p);printf(“%x/n“,p+9);(分数:2.00)填空项 1:
18、_51.函数 de1ete(s,i,n)的作用是从字符串 s中删除从笫 i个字符开始的 n个字符,请填空。void de1ete(chars,int i,int n)int j,k,length=O;whi1e(slength)【11】 -i;j=i;if( 【12】 )k=i+n;if(i+n=length)whi1e(klength)sj+=sk+;sj=/0; (分数:4.00)填空项 1:_52.下述函数统计字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。int word(char*s)int num=0,flag=0;while(*s)if( 【13】 =“) flag=
19、0;else if 【14】 flag=1;num+return 【15】 ;(分数:6.00)填空项 1:_二级 C语言笔试-128 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.数据的完整性是指数的正确性、有效性和_。(分数:2.00)A.可维护性B.独立性C.安全性D.相容性 解析:评析 数据模型的完整性规则是始定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。2.下列程序执行后输出的结果是_。int d=l;fun(int p)int d=5;d+=p
20、+;printf(“%d,“,d);main()int a=3;fun((分数:2.00)A.;5puts(s);6strcpy(s,“hello“);7printf(“%3S/n“,s);(分数:2.00)A.没有错B.第 1行有错 C.第 6行有错D.第 7行有错解析:评析 字符串复制函数 strcpy包含在头文件 string.h中,因此,程序中的第 1行文件包含命令是错误的。4.下面是对宏定义的描述,不正确的是_。(分数:2.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运算求值 D.宏替换只不过是字符替代
21、而已解析:评析 宏替换实质上就是字符替代,它不可能进行计算,故 C错误。带参数的宏与函数相比,宏在程序编之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。5.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:2.00)A.分析结果B.事件C.动作D.数据 解析:评析 数据流图有 4种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。6.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。(分数:2.00)A.2B.3C.4 D.5解
22、析:评析 二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或右边子表按相同的方法继续查找。本题中,与 11比较的关键码分别为 15,8, 10,12 四个。7.以下程序段的输出结果是_。main()char s110,s210,s310;scanf(“%s“,s1);gets(s2);gets(s3);puts(s1);puts(s2)puts(s3)输入数据如下:(此处CR代表回车符)aaaCRbbbCR(分数:2.00)A.aaabbbB.aaabbb C.aaa/0bbb/0D.aaabbb解析:评析 scanf 是标准输入函数,在输入字符串 aa
23、a时,实际的内容为“aaa/0”,“/0”是由系统自动加入的;gets 的功能是从终端读入行字符,即直读到换行符为止,并由系统自动以“/0”代替换行符。8.能将高级语言程序转换成目标语言程序的是_。(分数:2.00)A.调试程序B.解释程序C.编译程序 D.编辑程序解析:评析 用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由 O和 1组成的二进指令,所以高级语言必须先用种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。9.下列程序的输出结果是_。main()int i=3;switch(i)case 1:case2:printf(“%d“,i)case3:case4
24、:break;default:printf(“OK“);(分数:2.00)A.0B.3C.OKD.没有任何输出 解析:评析 在题中,i 的值为 3,由于“case 3:”后面没有 break语句,所以继续向下执行“case 4”后面的语句,由于“case 4:”后面的语句为 break强行退出 switch语句,所以,本题没有任何输出。10.以下程序输出的结果为_。main()char*alpha6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“;char*p;int i;p=alpha;for(i=0,i4;i+)prntf(“%s“,pi);(分数:2.
25、00)A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOP D.AEIM解析:评析 alpha0指向“ABCD的首地址;alpha1指向“EFGH的首地址;alpha2指向“IJKL”的首地址,依此类推。当初行 p=alpha后,p 指向指针数组 alpha的首地址。for 循环中输出了4个字符串。11.下面程序的输出结果是_。#inc1udestdio.hmain()char*p=“BOOL“,“OPK“,“H“,“SP“;int i;for(i=3;i=0;i-,i-)prinf(“%c“,*pi);print(“/n“)(分数:1.00)A.SO B.SPC.SP
26、OPKD.SHOB解析:评析 p0存放的是“BOOL/0”的首地址;p1存放的是“OPk/0”的首址等。在 printf语句中输出的*pi表示 pi字符串中的第一个字符。在 for循环中,i 的初值为 3,那么输出的第个字符为“S”,接着两次 i-,则输出的值为*p1,即字符“O”,所以本题的输出为 SO。12.下列程序的执行结果是_。#lnCludestdio.hunion unint i;char c2;void main()union un x;x.c0=10x.cl=1;printf(“/n%d,x.i);(分数:1.00)A.266 B.11C.265D.138解析:评析 由于本题定
27、义的是共用体,所以成员表列中的整型变量 x与字符数组 c共占用同个存储单元,且此存储单元为 2 个字节,通常 c0位于低字节,c1位于高字节,所以 x.i的值为 266。13.在软件开发过程中,软件结构设计是描述_。(分数:1.00)A.数据存储结构B.软件体系结构 C.软件结构测试D.软件控制过程解析:评析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。14.对于 n个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:1.00)A.n-1B.nC.n+1 D.2n解析
28、:评析 在 n个结点的单向链表(无表头结点)中,每个结点都有个指针单元(即指针域),加上头指针,至少需要 n+1个指针单元。15.可以在 C语言中用做用户标识符的是_。(分数:1.00)A.voiddefine WORDB.as_b3_123If C.for -abccasD.2cDoSIG解析:评析 C 语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项 a中 void,C 中 for都为关键字,D 中 2c以字母开头。16.下述函数功能是_。int fun(char*x)char*y=x;while(*y+)re
29、tumy-x-1;(分数:1.00)A.求字符串的长度 B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x连接到字符串 y后面解析:评析 在函数体内定义字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。17.在数据结构中,从逻辑可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构解析:评析 逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间对的关系,非线性结构表示数据元素之间对多或多对的关系。18._是构成 C语言程序的基本单位。(分数:1
30、.00)A.函数 B.过程C.子程序D.子例程解析:评析 C 程序是由函数构成的。个 C源程序至少包含个 main函数,也可以包含个 main函数和若干个其他函数,因此,函数是 C程序的基本单位。19.请读程序段:char str=“ABCD“,*p=strprint(“%d/n“,*(p+4);程序段的输出结果是_。(分数:1.00)A.68B.O C.字符D的地址D.不确定的值解析:评析 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上个字符串结束标志/0,故指向字符数组的指针 p的*(p+4)的值为/0。由于/0的编码值就是 0,所以本题输出为 0。20.若有定义:int a410
31、;,则以下选项中对数组元素 aij引用错误的是_。 (o=i4,0=j=10(分数:1.00)A.*(a=+SQR(k+1);printf(“%d/n“,(分数:2.00)A.;i3;i+)print(“%d“,mki);(分数:2.00)A.456B.258C.369 D.789解析:评析 根据二维数组的定义得出:m00=1,m011=4,m022=7,m10=2,m11=5,m12=8,m20=3,m21=6, m22=9,所以本题的输出是第 3行的值 m20,m22,即 369。23.已知字母 A的 ASCII码值是 65,字母 a的 ASCII码值是 97,以下程序_。main()ch
32、ar a=A;int b=20;pxintf(“%d,%o“,(a=a+a,a+b,b) ,a+a-A,b);(分数:2.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141 D.输出结果为 20,141,20解析:评析 本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即 20。然后以八进制的形式输出a+a-A的值为 97对应的八进制数 141,由于最后个表达式 b没有对应输出格式的输出项表列就不会输出。24.定义 int*swap()指的是_。(分数:2.00)A.个返回整型值的函数 swap()B.一个返回指向整型值指针的函 sw
33、ap() C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错解析:评析 个函数可以带回个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是个返回整型指针的函数。25.若一个名部变量的定义形式为 static int x;,那么,其中 static的作用应该是_。(分数:2.00)A.将变量存储在静态存储区B.使变量 X可以由系统自动初始化C.使 x只能在本文件内引用 D.使 x的值可以永久保留解析:评析 事实上,无论有无 Static修饰,外部变量都具有 A、B 和 C三种特性。作为种修饰,static仅是
34、限制此类型外部变量的引用范围 C只能在定义它的文件范围内使用。26.以下程序的输出结果是_。#includestdio.hvoid prt(int*x,int*y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);int a=10,b=40,c=20;main()prt((分数:2.00)A.11,42,3112,22,41B.11,41,2012,42,20 C.11,21,40 11,21,41D.11,41,2112,42,22解析:评析 由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。27.模块本身的内聚是模块独立性的
35、重要性度量因素之。在 7类内聚中,具有最强内聚的项是_。(分数:2.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚 解析:评析 内聚性是个模块内部各元素间彼此结合的紧密程度的度量。内聚共有 7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚,时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。28.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。A.希尔排序 B.冒泡排序C.插入排序D.选择排序解析:评析 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。29.C语言库函数 fgets(str,n,fp)功能是_
36、。(分数:2.00)A.从中指向的文件中读取长度 n的字符串存入 int指向的内存B.从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存 C.从 fp指向的文件中读到 n个字符串存入 str指向的内存D.从 str读取至多 n个字符到文件 fp解析:评析 fgets 函数的作用是从指定的文件读入个字符串。fgets(str,n,fp);中的 n为要求得到的字符的个数,但只从 fp指向的文件输入 n-1个字符,然后在最后加个“/0”字符,因此得到的字符串共有 n个字符。30.若进栈序列为 1,2,3,4,进栈过程中可以出栈,则下列不可能的个出栈序列是_。(分数:2.00)A
37、.1,4,3,2B.2,3,4,1C.3,1,4,2 D.3,4,2,1解析:评析 栈是种后进先出表,选项 C中,先出栈的是 3,说明此时栈内必然有 1,2,由于 1先于2进栈,所以 1不可能在 2之前出栈,故选项 C这种出栈序列是不可能的。31.下面语句的输出结果是_。printf(“%d、n“,strlen(“/t/“/065/xff/n“);(分数:2.00)A.14B.8C.5 D.输出项不合法,无正常输出解析:评析 在 C语言中,以“/”开头的字符均为转义字符,其中“/”后可跟 13 位八进制数或在“/”后跟字母 x及 12 位十六进制数,以此来代表个特定的字符。32.若有以下结构体
38、定义,则_是正确的引用或定义。struct exampleint x;int y;v1;(分数:2.00)A.example.x=10B.example v2.x=10C.example.x=10D.struct example v2=10; 解析:评析 在定义结构体变量时,不能只用结构体名 example或关键字 struct进行定义,必需要用结构体类型名 struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。33.下述程序文件输出的结果是_。#ineludestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);f
39、printf(fp,“%d5.of%c%d“,58,76273.0,-,2278);fclose(fp);(分数:2.00)A.58 76273-2278B.5876273.000000-2278C.5876273-2278 D.因文件为二进制文件而不可读解析:评析 fprintf 函数工作时,多个数据间不会自动加分隔符,选项 A错误;浮点数的搞出格式是“%5.0f”表明其小数部分输出 0位,即没有输出,所以选项 B也是错误的。34.设有以下语句:char strl=“string“,str28,*str,*str4=“string“;则_不是对库函数的正确调用。(分数:2.00)A.strc
40、py(strl,“HELLO1“);B.strcpy(str2,“HELLO2“);C.strcpy(str3,“HELLO3“); D.strcpy(str4,“HELLO4“);解析:评析 C 语言中 strcpy(stl,st2);,其两个参数均为字符指针或字符数组,选项 C中的目的串指针str3没有指向具体有效的存储单元,故是错误的调用。35.下列程序的输出结果是_。#define A 100main()int i=0,sum=0;do if(i(i/2)*2)continue;sum+=i;while(+i(分数:2.00)A.;print(“%d/n“,sum);A) 2500 B
41、.2050C.4D.0解析:评析 本题程序的功能是求 1到 99之间(包括 1和 99)所有奇数之和。程序中的 while循环的终止条件为+i=100,在 while 循环体内,如果 i是偶数,则执行 continue,跳过这一次循环,执行下次循环,否则求和。最后输出的值是 1到 99 之间(包括 1和 99)所育奇数之和(1+99)*50/2=2500。36.已知下面的程序段,正确的判断是_。#define A3#define B((分数:2.00)A.(A+1)*a)int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌套定义B.X=93C.)X=81 D.程序错误,宏定义不允许
42、有参数解析:评析 本题的宏定义是合法的,宏定义展开为 3*(3+(A+1)*a)=3*(3+(7+1)*3)=8137.关系代数运算是以_为基础的运算。(分数:2.00)A.关系运算B.谓词运算C.集合运算 D.代数运算解析:评析 关系代数运算是以关系代数作为运算对象的组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。38.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。struct 1inkchar data;node;(分数:2.00)A.B.C.D. 解析:评析 在单向链表中,由于每个结点需要存储下
43、个结点的地址,且下个结点的数据类型与前个结点的数据类型完全相同,故应为 strect link*next。39.已知小写字母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是_。main()unsigned int a=31,b=66;pfintf(“%c/n,a|b);(分数:2.00)A.66B.98C.b D.B解析:评析 位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有个为 1,该位的结果值为 1。最后以字符型输出,98 对应的字符“b”。40.请读程序:#includestdio.h#includestring.hmain()char*s
44、1=“AbCdEf“,*s2=“aB“;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(分数:2.00)A.正数 B.负数C.零D.不确定的值解析:评析 函数 strcmp的功能是比较字符串 s1和 s2,如果 sls2,N0 则返回个正数;如果sls2,则返回负数,否则返回零。由于本题中小写字母 b的 ASCII码值大于大写字母 B,故 sls2;所以函数的值为正数。二、填空题(总题数:12,分数:30.00)41.对于长度为 n的顺序存储的线性表,当随机插入和删除个元素时,需平均移动元素的个数为 【1】 。(分数:2.00)填空项 1:_
45、(正确答案:n/2)解析:评析 删除个元素,平均移动的元素个数为(n-l+n-2+0)/n=(n-1)/2;插入个元素,平均移动元素个数为(n+n-1+n-2+1)/n=(n+1)/2;所以总体平均移动元素个数为 n/2。42.注释说明了程序的功能,它分为 【2】 注释和功能性注释。(分数:2.00)填空项 1:_ (正确答案:序言性)解析:评析 注释一般分为序言性注释和功能性注释。43.软件测试中路径覆盖测试是整个测试的基础,它是对软件 【3】 进行测试。(分数:2.00)填空项 1:_ (正确答案:结构)解析:评析 路径测试是白盒测试方法中的种,它要求对程序中的每条路径最少检查次,目的是对
46、软件的结构进行测试。44.数据库技术的主要特点为数据的集成性、数据的高 【4】 和低冗余性、数据独立性和数据统 管理与控制。(分数:2.00)填空项 1:_ (正确答案:共享性)解析:评析 数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统管理与控制。45.数据元素之间 【5】 的整体称为逻辑结构。(分数:2.00)填空项 1:_ (正确答案:逻辑关系)解析:评析 数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数据的组织形式。46.若 x和 y都是 double型变量,且 x的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x)的值为 【6】 。(分数:2.00)填空项 1:_ (正确答案:8.000000)解析:评析 fab
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1