2022-2023年浙江省嘉兴市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2022-2023年浙江省嘉兴市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2022-2023年浙江省嘉兴市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2022-2023年浙江省嘉兴市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2022-2023年浙江省嘉兴市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩29页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2022-2023年浙江省嘉兴市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

2.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

3.

4.顺序结构的本质特点是()。

A.数据元素存储在地址连续的内存空间

B.数据元素紧邻

C.数据元素在内存中的相对位置表示数据之间的逻辑关系

D.不使用指针

5.

6.下面不正确的字符赋值或赋初值的方式为()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

7.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][2]的值是()

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

8.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树

A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子

9.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()。

A.O(1)B.O(n)C.O(n2)D.O(nlog2n)

10.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

11.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序运行后的输出结果是A.6B.7C.5D.8

12.以下选项中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

13.设文件指针fp已定义,执行语句“fP=foPen(“file”,“w”);”后,下列针对文本文件file操作叙述的选项中正确的是()。

A.只能写,不能读B.写操作结束后可以从头开始读C.可以在原有内容后追加写D.可以随意读和写

14.下列4个关于C语言的结论中错误的是()。

A.可以用do…while语句实现的循环一定可以用while语句实现

B.可以用for语句实现的循环一定可以用while语句实现

C.可以用while语句实现的循环一定可以用for语句实现

D.do…while语句与while语句的区别仅是关键字“while”出现的位置不同

15.写出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波兰表达式()。

A.a(b-c*d)*+e-(f/g(h+i*j-k)*)

B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)

C.a(bcd*-)*+e-(fg/hij*+k-*)

D.abcd*-*e+fg/hij*+k-*-

16.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()

A.'a'&&'b'

B.a<=b

C.a‖b+c&&b-c

D.!(a-b)&&(!c‖1)

17.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内

B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C.在循环体内使用break语句和continue语句的作用相同

D.break语句只能用于switch语句体中

18.有以下程序:

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

A.357B.753C.369D.751

19.一个模块直接调用的下层模块的数目称为模块的()。

A.扇入数B.扇出数C.宽度D.作用域

20.若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值()。

A.0B.1C.12D.6

二、2.填空题(20题)21.关系操作的特点是______操作。

22.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>。则输出结果是______。

#include<stdio,h>

main()

{

chara,b;

a=geCchar();scanf("%d“,&b);

a=a-'A'+‘0';b=b*2;

printf('%c%c\n",a,b);

}

23.设有下列宏定义:#defineA2

#defineBA+3

则执行赋值语句;t=B*2;t为int型变量后的值是______。

24.面向对象的模型中,最基本的概念是对象和______。

25.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。

26.设x、y、z均为int型变量,请写出描述"x或y中至少有一个小于z"的表达式______。

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

28.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

2223445666677899101010

删除后,数组中的内容应该是:

2345678910。

请填空。

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

for(i=1;i<n;i++)

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

29.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。

voidfunc(intx,inty,【】z)

{*z=x+y;}

30.表示条件;10<x<100或x<0的C语言表达式是【】。

31.Jackson方法是一种面向【】的结构化方法。

32.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。

33.数据元素之间______的整体称为逻辑结构。

34.下面程序的输出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

fov(i=1;i<4;i++)

k+=arr[i]+i;

printf("%d\n",k);}

35.有以下程序

main()

{intx=1,y=1,z=1;

y=y+z;x=x+y;

printf("%d",x<y?y:x);

printf("%d",x<y?x++:y++);

printf("%d",x);

printf("%d",y);

}

运行结果是【】

36.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

程序运行后的输出结果是【】。

37.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。

38.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。

39.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间______的信息。

40.若有以下程序:

main()

{intp,a=5;

if(p=a!=0)

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

else

printf("%d\n",p+2);

执行后的输出结果是【】。

三、1.选择题(20题)41.下面程序的运行结果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

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

A.abcB.34C.a34D.a34bc

42.整型变量x和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______。

A.X‖YB.X|YC.X&YD.XY

43.下列是合法的用户自定义标识符的是()。

A._w1B.3_xyC.intD.LINE-3

44.设有如下说明:typedefstruct{intn;charc;doublex;)STD;则以下选项中,能正确定义结构体数组并赋初值的语句是()。

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,"A",62},2,"B",75};

C.stmctt[2]={{1,'A'),{2,'B'}};

D.structt[2]={{1,"A",62.5),{2,"B",75.0}};

45.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}执行后输出结果是()。

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

46.若a、b、c、d都是血型变量且都已经正确赋初值,则下列不正确的赋值语句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

47.在一棵二叉树上第8层的结点数最多是_______。

A.8B.16C.128D.256

48.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

49.有如下定义structperson{charname[9];intage;};structpersonclass[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};根据上述定义,能输出字母M的语句是

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0));

50.若有说明:int*p,m=5,n;以下正确的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

51.下面程序的输出结果是()。#defineSQR(X)2*X+1main(){inta,b,C;a=3;b=2;C=1;a*=SQR(b+c)/SQR(b+c);printf("%d",a);}

A.3B.18C.21D.24

52.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下叙述中正确的是()。

A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,程序出错D.程序运行时产生出错信息

53.有以下程序:main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序运行后的输出结果是

A.3B.6C.9D.2

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

A.随机选取测试数据

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

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

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

55.下列可用于C语言用户标识符的一组是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

56.以下程序的输出结果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

A.0B.29C.31D.无定值

57.以下描述中正确的是()。

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

58.以下程序中与语句k=a>b?(b>c?1:0):0;功能等价的是

A.if((a>b)&&(b>c))k=1;elsek=0;

B.if((a>b)‖(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=1;elsek=0;

D.if(a>b)k=1;elseif(b<c)k=1;

59.开发大型软件时,产生困难的根本原因是()

A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重

60.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

四、选择题(20题)61.以下不合法的数值常量是()。

A.8.0E0.5B.lelC.0llD.0xabcd

62.

63.

64.

65.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

66.

67.有以下程序:

执行时输入:aBeDefG##<;回车>;,则输出结果是()。

A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh

68.

69.有以下程序

#include<stdio.h>

voidfun(ints[])

{staticintj=0;

do

s[j]+=s[j+1];

while(++j<2);

}

main()

{

intk,a[10]={1,2,3,4,5};

for(k=1;k<3;k++)fun(a);

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

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

}

程序的运行结果是

A.34756B.23445

C.35745D.12345

70.有以下程序程序的运行结果是()。

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

71.一个关系中属性个数为1时,称此关系为()。

A.对应关系B.单一关系C.一元关系D.二元关系

72.

73.

74.

75.以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:()

76.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

77.选出下列标识符中不是合法的标识符的是()。

A.hot_doB.cat1C._priD.2ab

78.有以下程序

main()

{inta[3][2]={0},(*ptr)[2],i,j;

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

{ptr=a+i;scanf("%d",ptr);ptr++;}

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

{for(j=0;j<2;j++)printf("%2d",a[i][j]);

printf("\n");

}

}

若运行时输入123<回车>,则输出结果为

79.有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是()。

A.自然连接B.并C.交D.差

80.若有以下程序段:

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

A.16B.8C.4D.2

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将ss所指字符串中所有下标为奇数的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}

参考答案

1.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。

2.A本题中,首先创建一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同.的变量。分别给a、b、c所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量

3.B

4.C

5.D

6.C

7.D

8.B

9.B

10.C本题考查三目运算符a<b?a:c<d?c:d也可写成a<b?a:(c<d?c:d),所以根据优先级,先算括号内的,c小于d为真取C的值,再看a小于b为假,所以取C的值。

11.A本题考查的是数组和函数。sum()函数接收一个int型数组作参数,也可以把它看作是一个int型指针,语句a[0]=a[*1)+a(比的意思就是将参数指针指向内容的前一个元素和后一个元素的值相加放到指针所指的位置.因此,主函数中调用sum(&a[2]);的意思就是让a[2]=a[1]+a[3];,所以最后输出的结果是6。应该选择A。

12.DA选项中整型常量应表示为1200,数字中不能包含逗号。B选项中E后面的指数必须为整数。C选项中转义字符以“\\”开始,若要表示字符“\\”,应写为“\\\\”。故本题答案为D选项。

13.A以“w”方式打开文件时只能写,不能读。故本题答案为A选项。

14.D解析:本题考查几个循环语句的关系。①do…while语句、while语句、for语句所实现的循环可以相互替代;②do…while语句和while语句的区别是do…while语句至少执行一次。

15.D

16.D

17.A本题主要考查的知识点是:break和IContinue语句。break语句可以用于swhitCh或循环体内,作用是跳/出switCh或循环体。Continue语句只能用于循环体内,作用是结束当前循环,进入下次循环。故本题中只有选项A)是正确的。

18.A本题考查的是for循环与二维数组的定义和引用。当定义二维数组的初始化列表只使用一重花括号时,其中的每个值依次代表从第l行的第1个元素起,直到第l行满,接着代表第2行、第3行……的每一个元素。程序中的循环将循环3次,循环变量i的值分别是0、1、2,所以3次循环中输出的数分别是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后输出的结果为357。故应该选择A)。

19.B扇入数是指调用一个给定模块的模块个数。扇出数是指由一个模块直接调用的其他模块数,即一个模块直接调用的下层模块的数目。本题答案为B选项。

20.A

21.集合集合

22.1B1B解析:在C语古中,字符型变量可以看作整型变量来对待,与整型所不同的是字符型变量在内存中只占1个字节,而整型是2个字节.字符型变量中所有的数值是它所表示字符的ASCII码值.ASCII码中的一些相关字符是顺序排列的,如'0',的ASCII码值为48,'1'为49以此类推一直到'9';'A'的ASCII码值为65,'B'为66以此类推一直到'Z'。本题程序首先定义了两个字符型变量a和b,然后分别使用getchar()和scanf()函数读取输入的字符'B'和十进制整数33到a和b中,因为a-'A'+'0'等于,'B'-'A'+'0'='1'+'0'='1',而b*2等于33*2=66'A'+1='B'。所以最终输出的结果是:1B。

23.88解析:本题考查带参数的宏定义及相关运算.运算过程为:t=B*2=A+3*2=2+3*2=8。

24.类类

25.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。

26.X<Z||y<zX<Z||y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即X<Z或y<z,是“或”的关系。

27.因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。\r\n\r\n

28.!=returnj!=,returnj解析:本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。

29.int*int*解析:从题中代码可知:z应该是一个整型指针,因此应填int*。

30.(x>10&&x<100)||x<0

31.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。

32.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。

33.逻辑关系逻辑关系

34.1212解析:本题通过第一个for循环将数组arr[0]=arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12:

35.3233

36.33解析:i=1时,f(1)=1,j=j+f(1)=0+1=1;i=2时,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此时循环结束,程序运行后的输出结果是3。

37.先进后出先进后出解析:队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。

38.黑箱黑箱解析:本题考查了软件测试中的黑箱测试。黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。

39.前后件关系前后件关系解析:在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。

40.11解析:本题考查C语言中的if-else语句。if语句中的条件表达式p=a!=0是一个赋值语句,将关系表达式a!=0的结果赋值给变量p。因a=5,所以a!=0的结果为1,即p=1,条件为真,所以执行if后面的语句printf('%d\\n',p),输出结果为1。

41.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。

42.D解析:“‖”为或运算符,当其左右表达式中只要一个为非零则整个表达式的值1。|是按位或,&是按位与,^是按位异或,这三位运算符是按值的二进制位来比较的。

43.A解析:C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)中的int是C语言的关键字。

44.A解析:本题定义了一个结构体类型并自定义类型名为STD,用户自定义类型后,就可以利用它进行变量与数组的定义。定义的方法,与C语言中其他类型的定义完全一样,定义结构型数组并赋初值时,每个元素用一对{和}括起来,字符型元素用,括起来,选项A、B、C、D中只有选项A符合条件。所以,A选项为所选。

45.A解析:在C语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。由程序可以看出函数f(a,i,j)为一递归函数,其功能是当i<j时,将数组中的元素a[i]和a[j]交换,然后再调用函数f(a,i+1,j-1),将数组中a[i+1]和a[j--]交换,这样一直递归到数组下标i=j,可见该递归函数的作用是使数组中首尾元素依次互换。主函数中定义了一个长度为5的数组aa并初始化,然后调用f(a,0,4),将数组a中的元素依次互换,故最后for循环输出的数组aa中各元素的值为5、4、3、2、1,所以,4个选项中选项A符合题意。

46.A解析:C语言规定,赋值号的右边可以是一个赋值表达式,因此选项C)、选项D)正确;在选项B)中,a++是一个自加1的表达式,a被重新赋值,因此它是一个合法的赋值表达式;在选项A)中,a+d是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。

47.C解析:根据二叉树的性质1:二叉树第k(k>1)层上,最多有2k-1个结点。于是第8层的结点数最多是27=128。

48.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。

49.D解析:这是一个给结构体数组赋初值的问题。它的赋初值过程与上述二维数组赋初值很相似。只是这里的大括号中的初始值没有按行给出(也即没有用大括号分开来),在这种情况下,初始值将按数组的各个元素在内存中的存放次序逐个逐个地赋给各元素。现在结构体数组的各个元素在内存中的存放次序是这样的:class[0].name,class[0].age,class[1].name,class[1].age…,由此可以知道,包含字母‘M’的字符串'Mary'赋值给了元素class[2].name,则与字符‘M’先相对应的表达式是class[2].name[0]。

50.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

51.C解析:以b+c代替参数x,a*=a*(2*b+c+1/2*b+c+1)=3*(2*2+1+1/2*2+1+1)=21。

52.B解析:(a1,a2)是一个逗号表达式,它的值为a2的值即m,以字符格式输出表达式的值即输出小写字母m。

53.B解析:主函数中首先定义了一个3行3列的二维数组,定义了一个整型变量指向它,直接通过for循环给数组的每一个元素赋值,使得a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][l]=5、a[1][2]=6、a[2]10]=7、a[2][1]=8、a[2][2]=9。所以,4个选项中选项B符合题意。

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

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

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

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

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

55.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

56.C解析:函数fun的形参是简单变量,main函数中调用fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数fun后a的值不发生变化,即a=31。

57.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。

58.A解析:三目运算表达式的规则为如果“?”前面的表达式的值为真,则取“:”前的表达式的值,否则,取“:”后面表达式的值。分析题目中给出的表达式可知,如果a>b和b>c同时成立,k=1,否则k=0。

59.A开发大型软件时,产生困难的原因有很多,如需求难以捕捉、员工水平有限、工作安排不太合理、进度控制难以把握、系统开发时间有限等元素,但这些都不是根本的原因,根本的原因是大系统的复杂性。

60.D解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。

61.AA选项中E后面的指数必须为整型数据,所以A错误。c选项中011表示的是八进制常量,0xabcd表示的是十六进制常量。

62.C

63.D

64.C

65.BB项的格式应该为scanf("%1d*%d%1f",&x,&y,&z);

66.B

67.C循环的作用是将输入的字符串转化为大写,9etchar()每次读入一个字符,putchar()每次输出一个字符,当遇到#字符结束。putchar(++C),表示将字符变量C加1后输出。因此,输入aBcDefG##,得到的结果是BCDEFGH。故答案为c选项。

68.B

69.C在本题中,首先定义了一个fun函数,函数中的形参是一个数组,该函数中首先定义了一个静态整型变量j并赋了初值,注意,静态变量的作用域是整个程序,而非该函数。从该函数的程序段不难

温馨提示

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

评论

0/150

提交评论