2021年河北省保定市全国计算机等级考试C语言程序设计_第1页
2021年河北省保定市全国计算机等级考试C语言程序设计_第2页
2021年河北省保定市全国计算机等级考试C语言程序设计_第3页
2021年河北省保定市全国计算机等级考试C语言程序设计_第4页
2021年河北省保定市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

2021年河北省保定市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

2.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系

3.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图

4.设变量已正确定义并赋值,以下正确的表达式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是()。

A.9B.11C.15D.不能确定

6.

7.下列叙述中正确的是()。A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化

8.

9.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图

10.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列B.栈C.队列D.二叉树

11.

12.设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行以下语句后,z的值为______。z=2*(N+Y(5+1));A.出错B.42C.48D.54

13.下列叙述错误的是()。

A.函数名是属于用户标识符,需符合C语言对标识符的规定

B.形参只能是变量

C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名

D.函数中定义的变量可以与其他函数中的变量同名

14.在以下给出的表达式中,与“while(E)”中的“(E)”不等价的表达式是()。

A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)

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

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

16.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

17.如果以链表作为栈的存储结构,则入栈操作时()。

A.必须判别栈是否满B.必须判别栈是否为空C.必须判别栈元素类型D.可不做任何判断

18.C语言规定,程序中各函数之间()

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

19.下列字符串是标识符的是()。

A.aaB.a-classC.intD.LINE1

20.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

二、2.填空题(20题)21.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的【】存储结构。

22.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。

请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

23.有以下程序:

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*f1)(),int(*f2)(),(intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

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

24.软件结构是以【】为基础而组成的一种控制层次结构。

25.在面向对象方法中,允许作用于某个对象上的操作称为【】。

26.以下函数inverse的功能是使一个字符串按逆序存放,请填空。

inverse(charstr[])

{charm;

inti,j;

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

{m=str[i];

str[i]=【】;

【】;

}

}

27.Windows3.X中,所有的系统程序和应用程序都处于【】的集中管理之下。

28.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

29.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

30.若从键盘输入58,则以下程序输出的结果是______。

main{)

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

31.若从键盘输入58,则以下程序的输出结果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

32.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

33.若a的值为1,则表达式!a‖++a的值是______。

34.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

35.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

37.阅读下列程序,则在执行后,程序的运行结果为#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

38.设有定义:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

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

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

#include<stdio.h>

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

三、1.选择题(20题)41.下列说法中不正确的是()。

A.指针是一个变量B.指针中存放的是数值C.指针可以进行加、减等算术运算D.指针变量占用存储空间

42.语句“printf("%d",(a=2)&&(b=-2);”的输出结果是______。

A.无输出B.结果不确定C.-1D.1

43.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序;voidsort(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++)print("%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,

44.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

45.有以下程序#include<stdio.h>main0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是

A.741B.963C.852D.875421

46.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是______。

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

47.程序设计的任务包括()。

A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确

48.在C语言中,下列关于文件操作的叙述正确的是()。

A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有统一规定D.以上全错

49.下列选项中,不属于模块间耦合的是()。A.数据耦合B.标记耦合C.异构耦合D.公共耦合

50.有下列程序:main(){inty=20;do{y--;}while(--y);printf("%d\n",y--);}当执行程序时,输出的结果是()。

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

51.若x和y都是血型变量,x=100,y=200,且有程序片段:printf("%d",(x,y));,则输出结果是______。

A.200B.100C.100200D.输出格式符不够,输出不确定的值

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

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

53.结构化程序设计的3种基本结构是()。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移

54.以下程序的输出结果是()main(){inta=3;printf("%d\n",(a+=a-=a*a));}

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

55.下列关于字符串的说法中错误的是

A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志

B.′\0′作为标志占用存储空间,计入串的实际长度

C.在表示字符串常量的时候不需要人为在其末尾加入′\0′

D.在C语言中,字符串常量隐含处理成以′\0′结尾

56.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

57.下列关于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且各前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

58.下列程序的输出结果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2){s=p[i][j]-'0';printf("%d",s);}}

A.6357B.6135C.1357D.691357

59.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

60.下列变量声明合法的是()。

A.short.a=1.4e-1;

B.doubleb=l+3e2.8;

C.longdo=0xfdaL;

D.float2_aaa=1e-3;

四、选择题(20题)61.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是().

A.编译程序B.操作系统C.教务管理系统D.汇编程序

62.

63.

64.

65.

66.

67.设计软件结构是软件生命周期的()。

A.软件定义期B.软件开发期C.软件维护期D.以上3个都不是

68.以下程序中函数sCmp的功能是返回形参指针sl和s2所指字符串中较小字符串的首地址。

若运行时依次输入:abCd、abba和abC三个字符串,则输出结果是()。

A.abCdB.abbaC.abCD.abCa

69.下列程序的输出结果是()。

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A.3B.3.2C.0D.3.07

70.

71.在结构化分析方法中,数据字典的作用是()。

A.存放所有需要处理的原始数据

B.存放所有处理的结果

C.存放所有程序文件

D.描述系统中所用到的全部数据和文件的有关信息

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

A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.在C的函数中,最好使用全局变量

C.外部变量可以在函数之间传递数据

D.自动变量实质上是一个函数内部的局部变量

73.下列程序的输出结果是()。

inta[5]={2,4,6,8,10},*P,**k;

p=a;k=&p;

printf("%d",*(p++));

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

A.44B.22C.24D.46

74.第

42

若有说明语句

chara[]="Itismine";

char*p="Itismine";

则以下不正确的叙述是

A.a+1表示的是字符t的地址

B.p指向另外的字符串时,字符串的长度不受限制

C.p变量中存放的地址值可以改变

D.a中只能存放10个字符

75.

76.下列定义数组的语句中,正确的是()。

77.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。

A.笛卡儿积B.交C.并D.自然连接

78.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

79.

有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的运行结果是()。

A.AfternoonB.fternoonC.MorningD.orning

80.下列选项不符合良好程序设计风格的是()。

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

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求出以下分数序列的前m项之和。2/1,3/2,5/3,8/5,13/8,21/13,…和值通过函数值返回main()函数。例如,若m=6,则应输出10.007051。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹析下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),它的功能是将ss所指字符串中所有下标为奇数的字母转换为大写字母(若该位置上不是字母,则不转换)。例如,若输入“abc4Efg”,则应输出“aBc4EFg”。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

2.CC。【解析】数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台五个部分组成,可见DB和DBMS都是DBS的组成部分。

3.CN-S图(也被称为盒图或CHAPIN图)、PAD(问题分析图)及PFD(程序流程图)是详细设计阶段的常用工具。E—R图即实体一联系图,是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。

4.A[解析]B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误。C)选项中不能将x+z的值赋给表达式y*5.所以C)错误。

5.B

6.C

7.C栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案为c)。

8.D

9.A【答案】:A

【知识点】:黑盒测试

【解析】:黑盒测试也称功能测试或数据驱动测试,它完全不考虑程序内部的逻辑结构和内部特征,只着眼于程序的外部结构,主要用来检查程序功能是否按照需求规格说明书的规定正常使用。故选A。

10.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。

11.D

12.D

13.C解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。

14.Bwhile语句中条件表达式E的值不为0即真,认为满足条件。这与B选项中表达式的含义正好相反。故本题答案为B选项。

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

16.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

17.D

18.A解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

19.A

\nC语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。int就是表达整型变量类型的标识符,它不能用做变量名和函数名。

\n

20.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。

21.顺序顺序解析:线性表的存储结构主要分为顺序存储结构和链式存储结构。当队列用链式存储结构实现时,就称为链队列;当队列用顺序存储结构实现时,就称为循环表。因此,本题划线处应填入“顺序”。

22.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组strl和str2,并且给str2赋初值“abc&fgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1。在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。

23.44解析:在主函数中调用函数f,函数f有三个参数,形参f1与f2分别是两个指向函数的指针。在f中执行f2(x)-f1(x),实际上是执行了fb(2)-fa(2),故执行i=(fa,fb,2)后i的值为23-22=4。

24.模块模块

25.方法方法解析:在面向对象方法中,方法是指允许作用于某个对象上的各种操作。

26.i++或++istr[j-1]str[j-1]=mi++或++i\r\nstr[j-1]\r\nstr[j-1]=m解析:字符中逆序存放的算法是:将字符串中的第i个字符和第strlen(str)-i个字符交换。然后交换字符串中第i+1个字符和第(strlen(str)-i)-1个字符,故循环变量i的值应改变,且步长为1,所以[18]处应填i++;读程序可知,循环中通过中间变量m交换字符串中的第i个字符和第strlen(str)-i个字符,所以题中第一、二处应分别填写str[j-1]、str[j-1]=m。

27.程序管理器程序管理器

28.输出结果输出结果解析:注意:测试的基本方法和步骤。

29.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

30.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个订语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>4O,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

31.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

32.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

33.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。

34.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

35.概要概要

36.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。

37.D

38.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。

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

40.2424解析:本题关键是while循环。

当i=0时,满足条件:i<7&&11%2==1,执行j=0+11=11,i++,i为1;

当i=1时,满足条件:i<7&&13%2=1,执行j=11+13=24,i++,i为2;

当i=2时,不满足条件:i<7&&14%2==1,循环结束。输出j的值24。

41.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是—个存储单元,而不是一个字节。

42.D

43.C解析:本题中首先定义一个长度为10的一个整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()函数是对具有n个元素的a数组进行从大到小排序。由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3]的地址,即把aa[3]的地址传给了行参数组名a,函数也就是对aa[3]开始的5个元素进行从大到小的摔序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化。Sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。所以4个选项中C正确。

44.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。

45.C解析:本题考查变量的自加“++”和自减“--”问题。当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为852。

46.C解析:简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单向值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。

47.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。

48.B解析:本题考查对文件的操作。文件打开后才可以对文件进行操作,使用结束后要关闭文件。对文件的操作都是顺序读写,即从文件的第一个数据开始,依次进行读写。

49.C解析:模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。注意:评价模块独立性的主要标准,以及对它们的定义和分类。

50.D解析:本题考查do…while循环。当--y是0(即y是0)时结束循环,输出y--是先输出y的值再将y的值减1。

51.A

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

53.BB。【解析】程序的三种基本控制结构包括:顺序、选择和重复(循环),这三种结构就足以表达出各种其他形式的结构。

54.D

55.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。

56.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。

57.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。

58.C解析:本题先将指针P指向二维数组ch[2][5],相当于p[0]='1234',p[1]='5678',通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-\'0\'这条语句是将所要输出的字符转换成相应的十进制数。

59.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

60.A解析:解答本题需了解3个知识点:①标识符是由字母、数字或下画线组成,并且它的第一个字符必须是字母或者下画线;②do是C语言中的一个关键字,不能再用做变量名和函数名:③C语言规定指数形式的实型常量e或E后面的指数必须是整数。

61.C编译程序、操作系统、汇编程序都属于系统软件.只有教务管理系统才是应用软件.因此本题答案为C):

62.A

63.A

64.B

65.B

66.C

67.B本题是对软件设计结构的考查。设计软件结构是软件概要设计阶段进行的,而概要设计属于软件开发期。

68.Bmain函数将输入的三个字符串存在二维数组str中,并通过两次streW函数调用,将最小的一个字符串复制到string中。abcd、abba、abc中最小的字符串为abba。

69.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。注意:格式输出语句printf的使用。

70.B

71.D在c语言中.结构化分析方法中的数据字典的作用是描述系统中所用到的全部数据和文件的有关信息。

72.B解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放;全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存不定的情况下,最好使用全局变量。

73.C

74.D在C程序中,可以用字符数组存放一个字符串,然后输出该字符串,也可以用字符指针指向一个字符串。

题目中用字符数组a[]来存放字符串'Itismine',a为数组名,表示首元素的地址,即字母I的地址。a+1表示数组中第二个元素t的地址,选项A正确。当用字符串指针指向字符串时,只是将字符串的第一个元素的地址赋给指针,当该指针指向其他字符串时,只需将该字符串的第一个元素地址赋给这个指针即可,和字符串的长度没有关系,选项B也是正确的。指针变量的值为元素的地址,和元素具体的值没有关系,当指针指向不同的元素时,存放的地址也会发生改变,故选项C是正确的。数组a初始化时没有指定数组长度,系统自动根据初值个数确定数组长度,题目中只是将10个有效字符存放到数组中,不能说明这个数组只能存放10个字符。

75.B

76.A数组说明的一般形式为:类型说明符

数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。c选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D选项中数组长度为空,所以非法。

77.D自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此根据关系T中的有序组可知关系R与s进行的是自然连接操作,故本题答案为D)。

78.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。

79.A

\n执行fun(a)语句时,P指向的是字符串数组a的第一个字符串“Morning”,p自加1之后,p指向字符串数组a的第2个字符串“Afternoon”。

\n

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

81.(1)错误:proc(intn)

正确:doubleproc(intn)

(2)错误:c=a;a+=b;b+=C;

正确:c=a;a+=b;b=c;

【解析】由main()函数中的proc()函数调用可知,函数proc()的返回值为double型数据。因此,“proc(intn)”应改为“doubleproc(intn)”。根据数列的特点可知,下一项的分子是上一项的分子和分母之和,下一项的分母为上一项的分子。根据数列的这个特点,“c=a;a+=b;b+=c;”应改为“c=a;a+=b;b=c;”。

82.1voidfun(char*ss)2{3inti;4for(i=0;ss[i]!='\\0';i++)/*将ss所指字符串中所有下标为奇数的字母转换为大写字母*/5if(i%2==1&&ss[i]>='a'&&ss[i]<='z')6ss[i]=ss[i]-32;7}本题要求将给定字符串ss中下标为奇数的字母转换为大写字母。需要先判断下标为奇数的字母是否是小写字母,如果是再通过其转换方法进行转换。从C语言的学习中知道,只要将小写字母减去32即转换成大写宇母,将大写字母加上32即换转成小写字母。本程序用if语句实现转换功能。2021年河北省保定市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

2.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系

3.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图

4.设变量已正确定义并赋值,以下正确的表达式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是()。

A.9B.11C.15D.不能确定

6.

7.下列叙述中正确的是()。A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化

8.

9.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图

10.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列B.栈C.队列D.二叉树

11.

12.设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行以下语句后,z的值为______。z=2*(N+Y(5+1));A.出错B.42C.48D.54

13.下列叙述错误的是()。

A.函数名是属于用户标识符,需符合C语言对标识符的规定

B.形参只能是变量

C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名

D.函数中定义的变量可以与其他函数中的变量同名

14.在以下给出的表达式中,与“while(E)”中的“(E)”不等价的表达式是()。

A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)

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

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

16.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

17.如果以链表作为栈的存储结构,则入栈操作时()。

A.必须判别栈是否满B.必须判别栈是否为空C.必须判别栈元素类型D.可不做任何判断

18.C语言规定,程序中各函数之间()

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

19.下列字符串是标识符的是()。

A.aaB.a-classC.intD.LINE1

20.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

二、2.填空题(20题)21.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的【】存储结构。

22.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。

请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

23.有以下程序:

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*f1)(),int(*f2)(),(intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

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

24.软件结构是以【】为基础而组成的一种控制层次结构。

25.在面向对象方法中,允许作用于某个对象上的操作称为【】。

26.以下函数inverse的功能是使一个字符串按逆序存放,请填空。

inverse(charstr[])

{charm;

inti,j;

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

{m=str[i];

str[i]=【】;

【】;

}

}

27.Windows3.X中,所有的系统程序和应用程序都处于【】的集中管理之下。

28.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

29.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

30.若从键盘输入58,则以下程序输出的结果是______。

main{)

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

31.若从键盘输入58,则以下程序的输出结果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

32.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

33.若a的值为1,则表达式!a‖++a的值是______。

34.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

35.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

37.阅读下列程序,则在执行后,程序的运行结果为#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

38.设有定义:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

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

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

#include<stdio.h>

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

三、1.选择题(20题)41.下列说法中不正确的是()。

A.指针是一个变量B.指针中存放的是数值C.指针可以进行加、减等算术运算D.指针变量占用存储空间

42.语句“printf("%d",(a=2)&&(b=-2);”的输出结果是______。

A.无输出B.结果不确定C.-1D.1

43.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序;voidsort(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++)print("%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,

44.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

45.有以下程序#include<stdio.h>main0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是

A.741B.963C.852D.875421

46.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是______。

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

47.程序设计的任务包括()。

A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确

48.在C语言中,下列关于文件操作的叙述正确的是()。

A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有统一规定D.以上全错

49.下列选项中,不属于模块间耦合的是()。A.数据耦合B.标记耦合C.异构耦合D.公共耦合

50.有下列程序:main(){inty=20;do{y--;}while(--y);printf("%d\n",y--);}当执行程序时,输出的结果是()。

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

51.若x和y都是血型变量,x=100,y=200,且有程序片段:printf("%d",(x,y));,则输出结果是______。

A.200B.100C.100200D.输出格式符不够,输出不确定的值

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

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

53.结构化程序设计的3种基本结构是()。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移

54.以下程序的输出结果是()main(){inta=3;printf("%d\n",(a+=a-=a*a));}

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

55.下列关于字符串的说法中错误的是

A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志

B.′\0′作为标志占用存储空间,计入串的实际长度

C.在表示字符串常量的时候不需要人为在其末尾加入′\0′

D.在C语言中,字符串常量隐含处理成以′\0′结尾

56.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

57.下列关于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且各前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

58.下列程序的输出结果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2){s=p[i][j]-'0';printf("%d",s);}}

A.6357B.6135C.1357D.691357

59.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

60.下列变量声明合法的是()。

A.short.a=1.4e-1;

B.doubleb=l+3e2.8;

C.longdo=0xfdaL;

D.float2_aaa=1e-3;

四、选择题(20题)61.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是().

A.编译程序B.操作系统C.教务管理系统D.汇编程序

62.

63.

64.

65.

66.

67.设计软件结构是软件生命周期的()。

A.软件定义期B.软件开发期C.软件维护期D.以上3个都不是

68.以下程序中函数sCmp的功能是返回形参指针sl和s2所指字符串中较小字符串的首地址。

若运行时依次输入:abCd、abba和abC三个字符串,则输出结果是()。

A.abCdB.abbaC.abCD.abCa

69.下列程序的输出结果是()。

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A.3B.3.2C.0D.3.07

70.

71.在结构化分析方法中,数据字典的作用是()。

A.存放所有需要处理的原始数据

B.存放所有处理的结果

C.存放所有程序文件

D.描述系统中所用到的全部数据和文件的有关信息

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

A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.在C的函数中,最好使用全局变量

C.外部变量可以在函数之间传递数据

D.自动变量实质上是一个函数内部的局部变量

73.下列程序的输出结果是()。

inta[5]={2,4,6,8,10},*P,**k;

p=a;k=&p;

printf("%d",*(p++));

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

A.44B.22C.24D.46

74.第

42

若有说明语句

chara[]="Itismine";

char*p="Itismine";

则以下不正确的叙述是

A.a+1表示的是字符t的地址

B.p指向另外的字符串时,字符串的长度不受限制

C.p变量中存放的地址值可以改变

D.a中只能存放10个字符

75.

76.下列定义数组的语句中,正确的是()。

77.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。

A.笛卡儿积B.交C.并D.自然连接

78.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

79.

有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的运行结果是()。

A.AfternoonB.fternoonC.MorningD.orning

80.下列选项不符合良好程序设计风格的是()。

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

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求出以下分数序列的前m项之和。2/1,3/2,5/3,8/5,13/8,21/13,…和值通过函数值返回main()函数。例如,若m=6,则应输出10.007051。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹析下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),它的功能是将ss所指字符串中所有下标为奇数的字母转换为大写字母(若该位置上不是字母,则不转换)。例如,若输入“abc4Efg”,则应输出“aBc4EFg”。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

2.CC。【解析】数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台五个部分组成,可见DB和DBMS都是DBS的组成部分。

3.CN-S图(也被称为盒图或CHAPIN图)、PAD(问题分析图)及PFD(程序流程图)是详细设计阶段的常用工具。E—R图即实体一联系图,是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。

4.A[解析]B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误。C)选项中不能将x+z的值赋给表达式y*5.所以C)错误。

5.B

6.C

7.C栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案为c)。

8.D

9.A【答案】:A

【知识点】:黑盒测试

【解析】:黑盒测试也称功能测试或数据驱动测试,它完全不考虑程序内部的逻辑结构和内部特征,只着眼于程序的外部结构,主要用来检查程序功能是否按照需求规格说明书的规定正常使用。故选A。

10.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。

11.D

12.D

13.C解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。

14.Bwhile语句中条件表达式E的值不为0即真,认为满足条件。这与B选项中表达式的含义正好相反。故本题答案为B选项。

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

16.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

17.D

18.A解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

19.A

\nC语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。int就是表达整型变量类型的标识符,它不能用做变量名和函数名。

\n

20.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。

21.顺序顺序解析:线性表的存储结构主要分为顺序存储结构和链式存储结构。当队列用链式存储结构实现时,就称为链队列;当队列用顺序存储结构实现时,就称为循环表。因此,本题划线处应填入“顺序”。

22.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组strl和str2,并且给str2赋初值“abc&fgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1。在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。

23.44解析:在主函数中调用函数f,函数f有三个参数,形参f1与f2分别是两个指向函数的指针。在f中执行f2(x)-f1(x),实际上是执行了fb(2)-fa(2),故执行i=(fa,fb,2)后i的值为23-22=4。

24.模块模块

25.方法方法解析:在面向对象方法中,方法是指允许作用于某个对象上的各种操作。

26.i++或++istr[j-1]str[j-1]=mi++或++i\r\nstr[j-1]\r\nstr[j-1]=m解析:字符中逆序存放的算法是:将字符串中的第i个字符和第strlen(str)-i个字符交换。然后交换字符串中第i+1个字符和第(strlen(str)-i)-1个字符,故循环变量i的值应改变,且步长为1,所以[18]处应填i++;读程序可知,循环中通过中间变量m交换字符串中的第i个字符和第strlen(str)-i个字符,所以题中第一、二处应分别填写str[j-1]、str[j-1]=m。

27.程序管理器程序管理器

28.输出结果输出结果解析:注意:测试的基本方法和步骤。

29.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

30.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个订语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>4O,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

31.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

32.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

33.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。

34.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

35.概要概要

36.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。

37.D

38.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。

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

40.2424解析:本题关键是while循环。

当i=0时,满足条件:i<7&&11%2==1,执行j=0+11=11,i++,i为1;

当i=1时,满足条件:i<7&&13%2=1,执行j=11+13=24,i++,i为2;

当i=2时,不满足条件:i<7&&14%2==1,循环结束。输出j的值24。

41.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是—个存储单元,而不是一个字节。

42.D

43.C解析:本题中首先定义一个长度为10的一个整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()函数是对具有n个元素的a数组进行从大到小排序。由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3]的地址,即把aa[3]的地址传给了行参数组名a,函数也就是对aa[3]开始的5个元素进行从大到小的摔序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化。Sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。所以4个选项中C正确。

44.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。

45.C解析:本题考查变量的自加“++”和自减“--”问题。当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为852。

46.C解析:简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单向值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。

47.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。

48.B解析:本题考查对文件的操作。文件打开后才可以对文件进行操作,使用结束后要关闭文件。对文件的操作都是顺序读写,即从文件的第一个数据开始,依次进行读写。

49.C解析:模

温馨提示

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

评论

0/150

提交评论