2021-2022年四川省广安市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021-2022年四川省广安市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021-2022年四川省广安市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021-2022年四川省广安市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021-2022年四川省广安市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021-2022年四川省广安市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列选项不符合良好程序设计风格的是()。

A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计原则是高耦合、高内聚

2.在下面的一维数组定义中,哪一个有语法错误()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];

3.具有20个结点的二叉树,其深度最多为_______。

A.4B.5C.6D.20

4.能在O(1)时间内访问线性表的第i个元素的结构是()

A.顺序表B.单链表C.单向循环链表D.双向链表

5.已知广义表的表头为A,表尾为(B,C),则此广义表为________

A.(A,(B,C))B.(A,B,C)C.(A,B,C)D.((A,B,C))

6.若有定义“intk=7,x=12;”,则以下表达式值为3的是()。

A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5

7.

8.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

D.scanf("%d%s",b,&c);

9.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。

cb='b';

k=10;

printf("%X,%o,”,ch,ch,k);

printf("k=%%d\n",k);A.A.因变量类型与格式描述符的类型不匹配,输出无定值

B.输出项与格式描述符个数不符,输出为0值或不定值

C.62,142,k=%d

D.62,142,k=%10

10.

11.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

12.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接选择排序C.快速排序D.二路归并排序

13.程序运行后的输出结果是()。

A.m=4

B.m=2

C.m=6

D.m=5

14.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45

15.下面叙述中错误的是()。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debug

D.软件测试应严格执行测试计划,排除测试的随意性

16.下列关于栈的描述中错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针

17.下列叙述中正确的是()。

A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式

B.实型变量中允许存放整型数

C.若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变

D.在C程序中,求余算符“%”两边的类型相同时才能进行运算

18.下列程序的输出结果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=4:a=c++:b++;return(a):main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1):printf("%d\n",c);}A.4B.7C.6D.5

19.下列程序段中完全正确的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

20.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

二、2.填空题(20题)21.【】是数据库设计的核心。

22.某二叉树中度为2的节点有18个,则该二叉树中有()个叶子节点。

23.函数调用语句:“fgets(buf,n,fp);”从fp指向的文件中读入,n个字符放到buf字符数组中,函数返回值为______。

24.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

25.以下程序运行后的输出结果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

26.以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));}

27.以下程序的输出结果是______。

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

printf("%d,%d\n",a,b);

}

28.以下程序运行后的输出结果是______。

main()

{inta=1,b=2,c=3;

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

29.以下程序段的输出结果是【】。

inti=9;

printf("%o\n",i);

30.如果两个8位二进制数00010101与01000111相加,其结果用十进制表示为【】。

31.以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{inta,b,c;

a=25;b=025;e=0x25;

prinff("%d%d%d\n",a,h,c);

}

32.以下程序运行后的输出结果是【】。

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

33.下面程序的运行结果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

34.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。

35.汇编程序和编译程序翻译的目标程序需经【】连接成可执行的程序。

36.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);}

37.下列程序的运行结果是______。

main()

{inti,a[10];

a[0]=a[1]=1;

for(i=2;i<5;i++)

a[i]=a[i-2]+a[i-1];

for(i=0;i<5;i++)

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

38.C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。

39.若有定义inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。

40.阅读下列程序,则程序的输出结果为______。

#include"stdio.h"

struetty

{intdata;

charc;};

main()

{streettya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

三、1.选择题(20题)41.支持数据库各种操作的软件系统叫做

A.数据库管理系统B.文件系统C.数据库系统D.操作系统

42.有以下程序:#include<stdio.h>main(){intm,n,p;seanf("m=%dn=%dp=%d",&m,&n,&p)printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则下列选项中正确的输入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

43.用黑盒技术测试用例的方法之一为

A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试

44.分析下列程序:#include<stdio.h>main(){int*p1,*p2,*p;inta=6,b=9;p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("%d,%d",*p1,*p2);printf("%d,%d",a,b);}程序的输出结果为()。

A.9,66,9B.6,99,6C.6,96,9D.9,69,6

45.以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项

#include<stdlib.h>

structnode

{chardata;structnode*next;};

(48)CreatList(char*s),

{structnode*h,*p,*q;

h=(structnode*)malloc(sizeof(structnode));

p=q=h;

while(*s!="\0")

{p=(structnode*)malloc(sizeof(structnode));

p->data=(49);

q->next=p;

q=(50);

s++;

}

p->next="\0";

returnh;

}

main()

{charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

46.关掉计算机的电源后,其中存储的数据立即丢失的存储器是()

A.软盘B.硬盘C.ROMD.RAM

47.若有定义:“inta[2Ⅶ3];”则对a数组的第i行第j列元素的正确引用为()

A.**(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

48.以下数组定义中错误的是______。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6)};

C.intx[][3]={{1,2,3},{4,5,6}};

D.mtx[2][3]={1,2,3,4,5,6};

49.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

50.以下程序执行后x的值是()。#include<stdio.h>main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==m);printf("%d",x);}

A.252B.1C.0D.运行时出错,x无定值

51.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

52.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);retumy-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

53.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是()。

A.地址传递B.值传递C.由实参传给形参,并由形参传回给实参D.由用户指定传递方式

54.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

55.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合

56.关于指针概念,下列说法中,不正确的是______。

A.一个指针变量只能指向同一类型的变量

B.一个变量的地址称为该变量的指针

C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中

D.指针变量可以由整数赋值,不能用浮点数赋值

57.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

58.下列程序的运行结果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.angC.programD.有语法错

59.有下列程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序运行后的输出结果是()。

A.1B.2C.3D.4

60.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序运行后的输出结果是______。

A.15B.16C.12D.59

四、选择题(20题)61.

62.

有如下程序:

main

{inta=2,b=-1.c=2;

if(a<0)if(b<0)c=0;

elsec++;

printf("%d\n",c);

}

该程序的输出结果是()。

A.0B.1C.2D.3

63.有以下程序

#include<stdio.h>

main()

{unsignedchara;

a=4^6;

printf("%d,\n",a);

}

程序的运行结果是

A.4,B.2,

C.2D.4

64.设变量已正确定义并赋值,以下正确的表达式是()。

A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0

65.

66.有以下程序:

#include<stdio.h>

main()

{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;

for(i=0;i<3;i++)

for(j=1;j<=i;j++)t+=b[i][b[j][i]];

printf("%d\n",t);

}

程序运行后的输出结果是()。

A.1B.3C.4D.0

67.有以下程序

#include<stdio.h>

main()

{chara[3O],b[30];

scanf("%S",a);

gets(b);

printf("%s\n%s\\n",a,b);

}

程序运行时若输入:

howareyou?Iamfine<回车>

则输出结果是()。

A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

68.在软件开发中,需求分析阶段可以使用的工具是()。A.N—s图B.DFD图C.PAD图D.程序流程图

69.负责数据库中查询操作的数据库语言是()。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

70.(57)下列叙述中,不属于软件需求规格说明书的作用的是______。

A.便于用户、开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据

C.作为确认测试和验收的依据

D.便于开发人员进行需求分析

71.计算机能直接执行的程序是()。

A.源程序B.目标程序C.汇编程序D.可执行程序

72.面向对象方法中,不属于对象基本特点的是()。

A.标识唯一性B.分类性C.封装性D.一致性

73.

74.面向对象方法中,继承是指()。

A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制

75.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。

A.20B.0或35C.15D.16

76.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.c语言中的文件是流式文件,因此只能顺序存取数据

77.

78.结构化程序设计主要强调的是()。

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

79.

80.

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:判断字符ch是否与sir所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),该函数的功能是使变量h的值保留两位小数,并对第3位进行四舍五入(规定h的值为正数)。若h的值为1234.567,则函数返回1234.570000;若h的值为1234.564,则函数返回1234.560000。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.D在程序设计中,对于软件设计中的模块设计要保证高内聚和低耦合,源程序要有文档说明,同时对程序中数据的说明要规范化。而goto语句破坏程序的结构,要尽量避免使用。所以选项D不正确。

2.C

3.D

4.A

5.B

6.A选项A中,表达式“x%=k”结果为5,表达式“k%=5”结果为2,5-2结果为3;选项B中,“k%=5”结果为2,“x%=2”结果为0;选项C中,“k%5”结果为2,“k-k%5”结果为5,“x%5”结果为2;选项D中,“k%5”结果为2,“k-k%5”结果为5,x%5结果为2。故本题答案为A选项。

7.D

8.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。

9.C第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。①“%x”和“%0”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或0);②printf函数中格式说明符之前插入的任何字符都原样输出;③格式说明与输出项的个数,也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。

10.A

\r\n

11.A

12.C

13.C[解析]第一次外循环的值为1.第一次内循环的值为3.不满足条件执行m*=j即m的值为3;第二次的值为2.不满足条件执行m*=*j,即m的值为6;第三次的值为1.不满足条件执行m*=j,即m的值仍为6.第二次外循环的值为2.j的值为3.满足条件,执行break语句,跳出循环。

14.A函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。

15.A软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。故答案为A选项。

16.B栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。

17.D选项A,在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式,右边也不得出现表达式;选项8中,整型变量中只能存放整型数,但实型变量中能存放实型数,也能存放整型数;选项C,表达式a=b的意思是把变量b的值赋给变量a,从而覆盖a中原来值;选项D,要求取余运算符"%"两边的类型均为整型。

18.Dstatic变量是局部度量,函数无法修改,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中C的值为5。

19.CA选项中,没有对指针进行初始化,属于无效指针,并且在“scanf(“%d”,&p);”中无须再进行取地址操作;B选项中,没有对指针进行初始化,属于无效指针;D选项中,语句“*p=&k;”书写错误,应为“P=&k;”。故本题答案为C选项。

20.C

21.数据模型数据模型

22.19

23.buf的首地址buf的首地址解析:考查fgets()函数的功能,fgets()函数用来从文件中读入字符串。调用格式为:fgets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fgets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。

24.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

25.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。

26.structst或exstructst或ex解析:结构体类型数据,其数据成员各自占据不同的存储空间,整个结构体变量所占存储单元的字节数为每一个数据成员所占的存储空间的和。注意:共用体变量所占存储单元字节数的计算。

27.21

28.11解析:本题是一个陷阱题。在if语句的判断表达式中,使用的不是逻辑运算符==而是赋值运算符=,使该表达式返回的结果正好相反。如果是c==a,则结果为假。但是c=a则是将a赋给c,且表达式的结果是赋值之后的c的值,因此结果为1是真.故最后输出c的值1。

29.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。

30.92

31.252137252137解析:程序中变量a、b、c分别为十进制、八进制、十六进制的数25,按%d格式输出,a的输出值为25;b=025转换为十进制数(b=2*8+5=16+5=21)输出;c=0x25转换为十进制数(c=2*16+5=32+5=37)输出。输出结果为252137。

32.1515解析:程序通过递归调用实现求数组aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。

33.x=11x=11解析:在对无符号数的右移是高位补0。

34.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。

35.装配程序装配程序

36.k-1k,-1解析:颠倒一个字符串中的字符,就是首尾对应的元素两两交换。简单地可用两个游标变量i和j,i是前端元素的下标,j是后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[j]。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1)。每次交换后,i增1,j减1。继续交换的条件是str[i]位于str[j]的前面,即i<j。字符串末元素的下标是它的长度减1,所以在第二个空框处应填入-1。程序为了交换str[i]和str[j],使用了变量k,该变量应在程序的变量定义部分中一起定义,所以在第一个空框处应填入k。

37.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。

38.顺序结构顺序结构解析:结构化程序有3种摹本结构,即顺序结构、选择结构(包括if语句和switch语句)和循环结构(包括for语句、while语句、do…while语句)。

39.00解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a[0][1]、a[0][2]、a[0][3]。

40.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。

41.A解析:数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等操作。所以答案为A。

42.A解析:程序中的输入函数scanf('m=%dn=%dP=%d',&m,&n,&p);要求在输入数据时,要输入'm='、'n='、'p='字符中,且中间不能含有空格,所以选项A)正确。

43.A解析:黑盒测试主要方法有等价值划分法,边界值分析法。错误推测法、因果图法等。白盒测试的主要方法有逻辑覆盖、基本路径测试循环覆盖等。因此只有A属于黑盒测试。

44.A解析:通过p1=&a,p2=&b分别将a、b的地址赋给指针p1、p2,接着执行if语句,发现a<b成立,则通过交换p1、p2的值,即交换a、b所在存储单元的地址,但是a、b的值并没有发生变化。

45.C

46.D

47.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有5种:①a[i][j];②*(a[i]+j);⑧*(*(a+i)+j);④*(a[i][j];⑤*(&a[0][0]+3*i+j)。

48.B解析:二维数组赋初值时,第一个维数即行数可以省略,但是列数不能省略。因此选项A、C正确。选项D是按数据在二维数组中的顺序初始化。在选项B中,列维数的初始化格式跟定义的维数不一致,为错误选项。

49.A解析:选项A将变量x的地址赋绐指针变量pb,使pb指向x‘选项B是烙x的值当作地址赋给指针pb,pb指向一个地址等于x值的内存单元;选项c将x的地址赋给指针pb指向的地址等于x的内存单元。

50.C解析:指针变量m和z分别指向整型变量y,i,所以这两个指针变量中存储的地址是不同的,变量x接受的是一个关系运算结果0(因为m和z两个地址是不同的),所以x为0。

51.C解析:静态局部变量在编译时赋初值,即只赋初值一次,在程序运行时它已有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值并返回主函数。

52.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

53.B解析:本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参.

54.D本题主要考查软件的测试。软件测试的主要目的体现在下面几个方面。

(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

软件测试的效率是指利用更少的成本创造更多的价值,提供软件测试效率的方法有很多,如制定一个合理的详细的测试计划,了解测试项目的业务需求,集中对付那些错误群集的程序等。而选项A所描述的随机选取测试数据是不能保证提高测试效率的,选项B描述的取一切可能的输入数据作为测试数据显然不能提高测试效率,反而使工作量加大,降低测试效率。

55.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。因此本题的正确答案是D。

56.D

57.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。

58.A解析:本题考查指针的用法,if(*(p1+k)==*(p2+k))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

59.B解析:本题考查switch语句。第一个switch语句,因为a=6,a%2=0,所以执行case0.将m加1,遇到break语句跳出switch语句,结束循环。

60.A解析:自增运算符“++”放在变量之前表示在使用变量之前,先使变量的值加1;放在变量之后表示在使用变量之后,再使变量的值加1。语句p=s;使指针p指向字符串s的首地址,第一次输出语句先输出字符'1',指针p再往后移一位,指向字符'5'的地址,第二个输出语句,同样先输出字符'5',指针p再往后移一位,指向字符'9'的地址。

61.C

62.C

\nelse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。

\n

63.B本题主要考查位运算。“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或。该操作通常用来使一个数中某些指定位翻转,而另一些位保持不变,操作时,它的两对应位相同结果为0,不同则为1。

本题中,首先将十进制数4和6转换为二进制数,分别为00000100和00000110,然后对其进行按位异或运算,得到的结果为00000010,转换为十进制数是2,在对其进行输出时需要注意输出的格式,在输出的结果后面添加了一个逗号,因此,最后程序输出的结果是“2,”,本题的正确答案是B。

64.A?B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论