2022-2023年山东省泰安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2022-2023年山东省泰安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2022-2023年山东省泰安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2022-2023年山东省泰安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2022-2023年山东省泰安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省泰安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少()。

A.1和5B.2和4C.4和2D.5和1

2.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(“d.dat”,“w+b”);for(i=0;i<6;i++)fwrite(&a[i],sizeof(int),1,fp);rewind(fp);fread(&a[3],sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,a[i]);}程序运行后的输出结果是()。

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

3.以下叙述中错误的是()。

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

4.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是()。

A.head(tail(LS))

B.tail(head(LS))

C.head(tail(head(tail(LS)))

D.head(tail(tail(head(LS))))

5.针对简单程序设计,以下叙述的实施步骤顺序正确的是()。

A.确定算法和数据结构、编码、调试、整理文档

B.编码、确定算法和数据结构、调试、整理文档

C.整理文档、确定算法和数据结构、编码、调试

D.确定算法和数据结构、调试、编码、整理文档

6.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序运行所计算的是()。

A.1-1/2!+1/3!-1/5!+1/7!-…

B.1+1/3+1/5+1/7+1/9-…

C.1+1/2+1/3+1/4+1/5-…

D.1-1/3+1/5-1/7+1/9-…

7.以下说法正确的是()。

A.数据项是数据的基本单位

B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

8.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

9.

10.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是()。A.>>2B.|248C.&0248D.<<1

11.对于循环队列,下列叙述中正确的是()。

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

12.C语言中的基本数据类型所占存储空间长度的顺序是()

A.char<=int<=float<=double<=long

B.int<=char<=float<=long<=double

C.int<=long<=float<=double<=char

D.char<=int<=float<=long<=double

13.

14.下列数据结构中,能用二分法进行查找的是()

A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表

15.在深度为5的满二叉树中,叶子结点的个数为()。

A.31B.32C.16D.15

16.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序运行后的输出结果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

17.若有函数voidfun(doublea[]。int*n){…}以下叙述中正确的是()。A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

B.形参a和n都是指针变量

C.形参a是一个数组名,n是指针变量

D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组

18.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个。

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

19.以下对软件特点描述错误的是()。

A.软件的使用存在老化问题B.软件的复杂性高C.软件是一种逻辑实体,具有抽象性D.软件的运行对计算机系统具有依赖性

20.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。

A.2.500000B.2.7500OOC.3.500000D.0.000000

二、2.填空题(20题)21.以下程序运行后的输出结果是()。structNODE{intk;structNODE*link;};main(){structNODEm[5],*p=m,*q=m+4;inti=0:while(p!=q){p->k=++i;p++;q->k=1++;q--;}q->k=i:for(i=0;i<5;i++)printf("%d",m[i].k);printf("\n");}

22.对下列二叉树进行中序遍历的结果为【】。

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

24.已有定义如下:

structnode

{

intdata;

structnode*next;

}*p;

以下语句调用malloc函数,使指针p指向一个具有stmctnode类型的动态存储空间。

请填空。

p=(structnode*)malloc();

25.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=C;c=t;

if(a<c&&b<c)t=b;b=a;a=t

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

}

27.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。

28.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

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

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

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

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

30.软件是程序、数据和【】的集合。

31.以下程序的输出结果是()。

#inciude<stdio.h>

main()

{chars[]="ABCabc";

s[5]='\0';

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

}

32.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

33.数据流图的类型有【】和事务型。

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

main()

{charc='z';

printf("%c",c-25);}

35.执行下列语句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

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

37.下列程序执行后输出的结果是【】。

main()

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

fot(i=0;i<10;i++)art[i]=i;

for(i=1:i<4;i++)k+=arr[i]+i;

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

}

38.若a=10,b=20,则表达式!(a<b)的值是【】。

39.关系表达式x<y<z,用C语言的表达式为【】。

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

#include<stdio.h>

#defineMAX(x,y)(x),(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

三、1.选择题(20题)41.设有定义:intn=0,*p=&n,**q=&p;则下列选项中正确的赋值语句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

42.有以下程序

#include<stdio.h>

main()

{inta[]={1,2,3,4},y,*p=&a[3];

--p;y=*p;printf("y=%d\n",y);

}

程序的运行结果是

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

43.在以下一组运算中,优先级最高的运算符是()

A.<=B.=C.%D.&&

44.有以下定义语句

doublea,b;intw;longc;

若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;

45.数据存储和数据流都是______,仅仅是所处的状态不同。

A.分析结果B.事件C.动作D.数据

46.C语言中用于结构化程序设计的3种基本结构是()。

A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

47.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序:floatsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10),i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序运行后的输出结果是______。

A.1,2,3,4,5,6,7,8,9,10

B.10,9,8,7,6,5,4,3,2,1

C.1,2,3,8,7,6,5,4,9,10

D.1,2,10,9,8,7,6,5,4,3

48.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

49.在下列语句中,其含义为“q为一个指针的函数,该指针指向整型数据”的定义语句是()。

A.int**q;B.int(*q)();C.int*q;D.int*q();

50.有以下程序main(){intx=10,y=10;printf("%d%d\n",x--,--y);}程序运行后的输出结果是()

A.1010B.99C.910D.109

51.有以下程序

intfun(intx[],intn)

{staticintsum=0,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;

}

main()

{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);printf("%d\n",s);

}

程序执行后的输出结果是

A.45B.50C.60D.55

52.关于结构化程序设计原则和方法的描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中所没有的控制结构,应该采用前后一致的方法来模拟

53.(50)

A.p->nextB.pC.sD.s->next

54.下列常数中,不合法的C常量是()

A.-0x3b1B.123e+2.3C.'}'D.6e+7

55.下列程序(注意:ch[0]在低字节,ch[1]在高字节)的输出结果是______。#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}

A.13B.14C.208D.209

56.以下程序的输出结果是()。#include<stdio.h>main(){inta=4,b=3,c=2,d=1;printf("%d",a<b?a:d<c?d:B);}

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

57.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn.k;floatscore.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);}}上述程序运行后结果不正确,调试中发现有—条语句出现在程序中的位置不正确。这条语句是

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf("NO%d:%f\n",n,ave);

58.下列程序的输出结果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

59.算法的时间复杂度是指______。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数

60.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()。

A.for语句中的三个表达式不可以同时省略

B.for语句可以用于循环次数不确定的情况

C.for语句中表达式2可以是关系表达式或逻辑表达式

D.for语句中表达式1和表达式3可以是逗号表达式

四、选择题(20题)61.

62.下列词语中,不属于面向对象方法的是

A.对象、消息B.继承、多态C.类、封装D.过程调用

63.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

64.

下列程序的运行结果是()。

main

{intx=1,y=3,a=0;

while(x++!=(y-=l))

{a+=1;

if(y<x)break;

}

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

}

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

65.以下选项中合法的标识符是()。A.1_2B._12C.2_1D.12__

66.下面属于黑盒测试方法的是()。

A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖

67.

68.有以下程序(strcat函数用于连接两个字符串):

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

A.U-KB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

69.以下叙述中错误的是()。

A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中

D.c语言源程序经编译后生成后缀为.obj的目标程序

70.函数调用strcat(strcpy(str1,str2),str3)的功能是()。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中

71.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。

A.s1的内容更新为abcdefghi

B.s1的内容更新为defghi\0

C.s1的内容更新勾defghiabc\0

D.s1的内容更新为abcdefghi\0

72.下列关于栈的叙述中正确的是()。

A.在栈中只能插入数据,不能删除数据

B.在栈中只能删除数据,不能插入数据

C.栈是先进后出(FILO.的线性表

D.栈是先进先出(FIFO.的线性表

73.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if

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

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

75.以下关于简单程序设计的步骤和顺序的说法中正确的是()。

A.确定算法后,整理并写出文档,最后进行编码和上机调试

B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构

76.

77.以下叙述中错误的是()。

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.全局变量的生存期是整个程序的运行期间

D.静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值

78.

A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;

79.有如下说明

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为9的表达式是

A.*p+9B.*(p+8)C.*p+=9D.p+8

80.有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是()。A.A.235B.0235C.02356D.2356

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是根据整型形参n,计算如下公式的值:

Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)

例如,n中的值为l0,则应输出0.817962。

请修改程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdiOh>

doubleproc(intn)

{

doubley=1.0;

//****found****

intJ=1;.

inti;

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

{

j=-l*j;//****found****

y+=1/(i*i);

}

return(y);

}

voidmain

{

intn=10:

system("CLS"):

printf("\nTheresultis%1f\n",proc(n));

}

六、程序设计题(1题)82.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。

参考答案

1.B

2.D程序首先以读和写二进制文件的方式打开文件d.dat;然后通过for循环,调用fwrite函数将数组a中的各个元素写入d.dat中;接下来调用rewind函数,将文件指针fp重定位到文件的开始位置;再调用fread函数将文件的前3个整数1,2,3读入a[3]开始的位置,所以此时数组a中的元素值分别为:1,2,3,1,2,3。故本题答案为D选项。

3.A函数返回值类型可以是简单类型和结构体类型。

4.C

5.A\nC语言中程序中的步骤实现为:先确定程序中的算法和数据结构,然后进行程序的编码,再进行对程序的调试,最后进行文档的整理和记录。使用这种步骤可以方便程序的编写以及在完成后提高代码的重用性。

\n

6.Dmain函数首先定义整型变量S,初值为1;定义float类型的n、t、Pai,其中n初值为1.0,t初值为1,pai初值为0。while循环判断t的绝对值(fabs为求float类型值的绝对值的函数)是否大于1.0×10-6,若t的绝对值大于1.0×10-6,那么,执行语句“pai+=t;n+=2;s=-s;t=s/n;”,所以每轮循环pai累加“s/n”(其中s是上一轮s的相反数,n是上一轮n累加2的值)。第1轮循环时,pai被赋值为1,s是正数,所以最终pai的计算结果是:1-1/3+1/5-1/7+1/9-…。故本题答案为D选项。

7.D

8.C冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需n-1趟排序,第i趟对从l到n-i个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第l趟比较n-1次,第2趟比较n-2次。依此类推,最后趟比较1次,一共进行n-l趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+…+l,结果为n(n-1)/2。本题的正确答案是选项C。

9.B

10.D124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D。

11.D循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。

12.A

13.C

14.DD)【解析】二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。

15.C解析:二叉树的一个性质是,在二叉树的第k层上,最多有2(k-1)(k>=1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。所以,在深度为5的满二叉树中,所有叶子结点在第5层上,即其结点数为2(k-1)=2(5-1)=16。

16.Dmain函数定义一个二维字符数组a,它包含5个字符串,每个字符串存放在一个长度为10的一维数组中。指针数组P包含5个字符指针元素。for循环中,每次将*(a+i)赋给P[i],再输出P[i]和*P[i]。由于*(a+i)等价于a[i],因此每次都是将下标为i的字符串首地址赋给p[i],再输出该字符串和该字符串的首字符。i=3时,输出字符串“welcome”和首字符“w”;i=4时,输出字符串“you”和首字符“y”。综上,输出结果为welcomewyouy。故本题答案为D选项。

17.B\n本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。

\n

18.D

19.A软件具有以下特点。①软件是一种逻辑实体,具有抽象性。②软件没有明显的制作过程。③软件在使用期间不存在磨损、老化问题。④对硬件和环境具有依赖性。⑤软件复杂性高,成本高。⑥软件开发涉及诸多的社会因素。本题答案为A选项。

20.A

21.13431

22.ACBDFEHGPACBDFEHGP解析:中序遍历方法的递归定义;当二叉树的根不为空时,依次执行如下3个操作:①按中序遍历左子树。②访问根结点。③技中序遍历右子树。根据遍历规则来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问C,接着访问C的右子树,同样按中序遍历C的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树,同样按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此,划线处应填入“ACBDFEHGP”。

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

24.sizeof(structnode)或4sizeof(structnode)或4解析:本题考核的知识点是动态存储分配函数malloc()的用法。C标准规定malloc()函数返回值的类型为void*,函数的调用形式为:malloc(size)。要求aize的类型为unsignedint,所以该空格处应该填sizeof(structnode)或4。

25.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

26.4599

27.黑箱法黑箱法

28.完整性控制完整性控制

29.颠倒一个字符串中的字符,就是首尾对应的元素两两交换。简单地可用两个游标变量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,该变量应在程序的变量定义部分中—起定义,所以在第—个空\r\n\r\n

30.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。

31.ABCabABCab解析:本题中字符数组的初值是“ABCabc”,s[5]='c',然后通过s[5]='\\0'重新给s[5]赋值,在C语言中'\\0'是字符串结束标志,执行s[5]='\\0',其实是将s[5]的值去掉只保留前面的字符。

32.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。

33.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。

34.aa解析:“z”的ASCII码值为122,经过c-25运算后得97,以字符形式输出是a。

35.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。

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

37.1212解析:本题的第一个for循环用于给数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。

38.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。

39.(x<y)&&(y<z)(x<y)&&(y<z)解析:x<y<z的意思是y大于x并且y小于z。在C语言中,表达“并且”用逻辑与运算符“&&”。

40.77解析:本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:<表达式1>?<表达式2>:<表达式3>。“?:”运算符的含义是:先求表达式1的值,如果为真,则求表达式2的值,并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值,并把它作为整个表达式的值。注意,在本题中宏替换时可采用逐步求解,最终为7>6?7:6*10,即t=7>6?7:60,其值为t=7。

41.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。

42.D解析:在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。

43.C

44.C解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。

45.D解析:数据流图有4种成分:源点或终点、处理、数据存储和哦数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。

46.A解析:本题主要考查结构化程序设计的基本结构。结构化程序设计有3种基本结构:顺序结构、选择结构、循环结构。

47.C解析:本题考查数组名作为函数形参的函数调用问题。数组名作函数形参是按地址传递,形参的改变可以传回实参。sort函数的两个形参中一个是数组名,sort函数的功能是对数组元素进行由大到小的排序。主函数调用sort函数时,实参为aa[3]元素的地址和整数5,即sort函数将对数组aa中的元素aa[3]、aa[4]、aa[5]、aa[6]、aa[7]5个元素的值进行由大到小的排序,排序后aa[3]=8、aa[4]=7、aa[5]=6、aa[6]=5、aa[5]=4,而数组aa中其余元素的值不变,因此结果是C。

48.C解析:模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性这两个定性的度量标准。

49.B解析:本题考查的是指针函数。指针函数定义的基本格式为:类型说明符(*函数名)()。其中,类型说明符表示返回的指针值指向的数据类型。

50.D

51.C解析:内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。Fun(a,5)的值是15,再次调用后sum=15,所以Fun(b,4)=45,s=45+15=60。

52.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。

53.B解析:在主函数中,定义了一个结构体型指针变量head,然后将函数CreatList()的返回值赋给指针变量head,从这里可知函数CreatList()的返回值为structnode*类型,所以第48处的空白应该填structnode*,故48题选项C正确;在函数CreatList()中首先定义3个结构体型指针变量h,p和q。然后调用malloc()函数分配了一个结点空间,并让指针h指向它,开始指针p、q和h都指向它,然后调用一个while循环语句,当到达字符串数组s的末尾结束循环,在每次循环中,分配一个结点空间,并让p指向它,然后让该结点的data域的值等于字符串指针s所指的值,因此第49题的正确答案为选项A:接下来让指针q所指结点的next指针指向结点p,然后让指针q指向该指针的所指结点的下一个结点即p,所以第50个空白处应该填p,选择B。故第48题4个选项中选项C符合题意;第49题4个选项中选项A符合题意;第50题4个选项中选项B符合题意。

54.B

55.A

56.A

57.A解析:程序中使用了两层for循环,外层循环的作用是控制人数,循环一次是求一个人的成绩和,然后除以4得到平均成绩。每个人的成绩总和一开始时都必须清0,否则就会出现后面人的总成绩越来越大。“sum=0.0”;应在外层循环中。选项A正确。

58.A解析:转义字符'\\n'表示换行,'\\\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\\0'),函数sizeof()统计字符串所占的字节数。

59.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。

60.A解析:for语句中的3个表达式可以同时省略,但两个;不能省略。所以选项A的说法错误。

61.C

62.D面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。

63.C解析:EOF是文本文件的文件结束标志,NULL是打开文件错误的时候返回值。foef(fp)用来判断文件位置指针是否在文件末尾,文本文件和二进制文件均可以使用此函数。如果遇到文件结束就返回1,否则返回0。

64.D

\n本题考查'drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。

\n

65.B标识符命名规则:标识符必须由字母(a~z或A~z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。因此,本题正确答案为B)。

66.A黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等。白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。

67.C

68.C字符数组a中包含两个‘、O’,遇到第一个‘O’时就表示字符串a结束。字符串处理函数由c吐(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到a的后面,结果放在字符数组a中。连接时将字符串a后的‘、0’取消,只在新串最后保留一个‘、0’。本题相当于将“ABCD”和“IJK”连接。因此C选项正确。

69.Ac语言中的非执行语句不会被编译,不会生成二进制的机器指令,因此A)选项错误。由C语言构成的指令序列称为C源程序,c源程序经过c语言编译程序编译之

温馨提示

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

评论

0/150

提交评论