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

下载本文档

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

文档简介

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

一、单选题(20题)1.利用E-R模型进行数据库的概念设计,可以分成3步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行(),得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

2.设有以下定义:inta=0;doubleb=1.25;charc='A';#defined2则下面语句中错误的是()。

A.a++;B.b++;C.c++;D.d++;

3.根据二叉树的定义可知道二叉树共有种不同形态的二叉树()。

A.3B.4C.5D.7

4.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性

5.

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

A.'a'&&'b'

B.a<=b

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

D.!((a<b)&&!c||1)

7.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}程序执行后,abc.dat文件的内容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

8.语句“printf("akbre"\'hi\'y\\\bou\n")”;的输出结果是()。

A.akbre\'hi\'y'\\\bou

B.a\bre\'hi\\y\bou

C.re'hi'you

D.abre'hi'y\bou

9.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

10.数据的不可分割的基本单位是()。

A.元素B.结点C.数据类型D.数据项

11.

12.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序运行后的输出结果是()。

A.9,18B.8,11C.7,11D.10,14

13.若k是int类型变量,且有以下for语句:for(k=-1;k<O;k++)printf("****\n");下面关于语句执行情况的叙述中正确的是()。、A.循环体执行一次B.循环体执行两次C.循环体一次也不执行D.构成无限循环

14.

15.下面不能正确表示a*b/(c*d)的表达式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

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

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

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

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

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

17.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。A.A.1/2B.1C.2D.4

18.设有数组A[i][j],数组的每个元素长度为3字节,i的值为8,j的值为10,数组从内存首地址BA开始顺序存放,下标从0开始,当以列为主序存放时,元素A[5][8]的存储首地址为()。

A.BA+141B.BA+180C.BA+222D.BA+225

19.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的运行结果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

20.下列不正确的转义字符是()。

A.'\\'B.'\t'C.'\n'D.'088'

二、2.填空题(20题)21.下列程序的功能是输入一个整数,判断其是否是素数,若为素数则输出1,否则输出0。请填空。

#include<stdio.h>

main()

{inti,x,y=1;

scanf("%d",&x);

for(i=2;i<=x/2;i++)

if【】{y=0;break;}

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

}

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

voidsstrcpy(char*s,char*t)

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

main()

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

sstrcpy(str1,str2);

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

}

23.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum,count);

}

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

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

26.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j<=k;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

printf("\n");

}

27.关系数据库管理系统能实现的专门关系运算包括选择、连接和【】。

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

structNode}

intx;

charch;

};

fun(structNode*sn)

}statick=1;

sn->x=20;

Sn->ch='a'+k++;

}

main()

{inti;

staticstructNodest=}10,'a'};

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

fun(&st);

printf("%d,%c\n",st.x,st.ch);

}

29.关系模型的数据操作即是建立在关系上的数据操作,一般有【】、增加、删除和修改四种操作。

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

main()

{inta=177;

printf(“%o\n”,A);

}

31.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。

32.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。

#include<stdio,h>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

prinff("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];'

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

【】=x;

}

}

33.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序运行后的输出结果是()。

34.模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

35.在运算过程中,能够使空表与非空表的运算统一的结构是【】。

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

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

37.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块),其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

38.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

39.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

40.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于【】。

三、1.选择题(20题)41.以下程序的输出结果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,A);}

A.31B.13C.10D.20

42.以下选项中合法的实型常数是

A.5E2.0B.E-3C.2.00E+00D.1.3E

43.设char型变量x中的值为10100111,则表达式(2+x)(-3)的值是

A.10101001B.10101000C.11111101D.1010101

44.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是

A.i-1B.iC.i+1D.4-i

45.设有定义:intn1=0,n2,*P=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

46.下面的关键字中,不能够从循环体中跳到循环体外的是______。

A.gotoB.breakC.returnD.continue

47.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

48.已有定义int(*q)(),指针q可以()。

A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型

49.现有如下程序段

#include"stdio.h"

#include"string.h"

main()

{chara[]="acfijk";/*这里是有序的字符序列*/

charb[]="befijklqswz";/*这里是有序的字符序列*/

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=′\0′&&b[j]!=′\0′)

{if(a[i]<b[j])c[k++]=a[i++];

elseif(a[i]>b[j])c[k++]=b[j++];

else{c[k++]=b[j++];

i++;}}

while(a[i]==′\0′&&b[j]!=′\0′)

c[k++]=b[j++];

while(a[i]!=′\0′&&b[j]==′\0′)

c[k++]=a[i++];

c[k]=′\0′;

puts(c);}

则输出结果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

50.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是

A.struct结构体类型的关键字

B.example是结构体类型名

C.x,y,z都是结构体成员名

D.structex是结构体类型名

51.设有定义语句intx[6]=(2,4,6,8,5,7.),*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A.for(i=0;i<6;i++)printf(“%2d”,*(p++));

B.for(i=0;i<6;i++)printf(“%2d”,*(p+i));

C.for(i=0;i<6;i++)printf(“%2d”,*p++);

D.for(i=0;i<6;i++)printf(“%2d”,*(p)++);

52.有以下程序

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);}

程序运行后的输出结果是

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

53.在软件测试设计中,软件测试的主要目的是

A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误

54.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

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

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

56.数据管理技术随着计算机技术的发展而发展。数据库阶段具有许多特点,但下面列出的特点中,______不是数据库阶段的特点。

A.数据结构化B.数据面向应用程序C.数据共享性高D.数据具有较高的独立性

57.以理对枚举类型名的定义中正确的是______。

A.enuma={one,two,three);

B.enuma{one=9,two=1three};

C.enuma={"one","two","three"};

D.enuma{"one","two"."three"};

58.以下叙述中正确的是A.全局变量的作用域一定比局部变量的作用域范围大

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

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

59.若有以下定义:chars[20]="programming",*ps=s;则不能代表字符o的表达式是_______。

A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

60.执行下列语句后,a和b的值分别为______。inta,b;a=1+b=2+7%-4-'A';

A.-63,-64B.-59,-60C.1,-60D.79,78

四、选择题(20题)61.设intx=7,则~x的值是()。

A.-8B.7C.-1D.1

62.

(19)关系表中的每一横行称为一个()

A.元组

B.字段

C.属性

D.码

63.对如下二叉树进行后序遍历的结果为()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

64.

设变量已正确定义,则以下能正确计算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

65.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为

A.intB.floatC.doubleD.不确定

66.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为()。

A.软件投机B.软件危机C.软件工程D.软件产生

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

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

68.

69.在满足实体完整性约束的条件下()。

A.一个关系中应该有一个或多个候选关键字

B.一个关系中只能有一个候选关键字

C.一个关系中必须有多个候选关键字

D.一个关系中可以没有候选关键字

70.

71.若变量已确定义,则以下语句的输出结果是()。

72.

73.

74.

75.

76.

下述程序的输出结果是()。

#include<stdio.h>

main

{inti;

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

{if(i*i>=20)&&(i*i<=100))

break;

}

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

}

A.49B.36C.25D.64

77.树是结点的集合,它的根结点数目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

78.有以下程序:

程序的运行结果是()。

A.*7

B.*3*5

C.*5

D.*2*6

79.有以下程序

main()

{inti;

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

switch(i)

{case1:printf("%d",i);

case2:printf("%d",i);

default:printf("%d",i);

}

}

程序执行后的输出结果是

A.011122B.012

C.012020D.120

80.设有以下语句:

其中0≤k<5。以下不是对字符串的正确引用的是()。

A.*strpB.strp[k]C.str[k]D.strp

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开触文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是移动字符串中的内容,移动的规则是把第1~m个字符,移动到字符串的最后,把第m+1到最后的字符移动到于符串的前面。例如,字符串中原有的内容为“ABCDEFGHIJK”,m的值为3,移动后,字符串中的内容应该是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.D解析:在概念设计中按照模块的划分画出每个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看看是否有重复和不合理的地方。不能只是进行简单的合并。

2.D解析:本题考核的知识点是在自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算.故选项D是个不正确的语句,所以,4个选项中选项D符合题意。

3.B

4.C

5.C

6.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。

7.B题目中先是将s2字符串写入adc.dat中,然后执行rewind函数将写指针放置于文件开头,写入s1字符串。s1字符串将前5个字符覆盖,所以最终结果为Chinang。故本题答案为B选项。

8.C先输出a、b表示退一格,当执行到:\b后,光标往后退,接着输出re'hi'y\(反斜杠后又加一个反斜杠的意思是要输出一个反斜杠),此时又执行:\b后,\就被ou覆盖。

9.B当n为9时,此时if语句成立,执行n++后,n为10,因此输出n的值为10,故选择B选项。

10.D

11.D

12.D第1次循环,a的值为1,满足条件,执行“b+=a;”与“a+=2;”,则b的值变为3,a的值变为3。执行“a++”,a的值为4,满足条件进入第2次循环,执行完循环体后,b的值为7,a的值为6。执行“a++”,a的值为7,满足条件进入第3次循环,执行完循环体后,b的值为14,a的值为9。执行“a++”,a的值为10。条件不满足,退出循环。故本题答案为D选项。

13.A本题考查简单的for语句,程序中当k<0时循环才执行,所以答案选择A。

14.A

15.A

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

17.B

18.A

19.D解析:本题中fun函数实现了字符串函数strcat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\\0')逐个复制到字符串ss的末尾处。

20.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符:'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。

21.(x%i==0)(x%i==0)解析:为判数x是否是素数,预置变量y的值为1(x可能是素数),然后用2至x/2的整数i测试对x的整除性,若x能被其中的某个整数整除,则x是合数,置y的值为0(即x不是素数),结束循环测试;若循环中i都不能整除x,则x为素数。一般可用求余运算x%i是否等于0来判定i能否整除x,所以程序中的空格处可填(x%i==0)。

22.*t++*t++解析:要使sstrcpy函数实现字符串复制,必须将t字符串中的每个字符逐个复制到s字符串中,可以使用*s=*t;s++;t++,也可以写成*s++=*t++,因此空格处填*t++。

23.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函数中一开始定义了一个长度为20的整型数组,然后通过一个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[i]或a+i,然后再通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于0将其累加到变量sum中,所以第二个空格处应该填入数组元素,所以应该填a或*(a+i)。

24.19

25.99解析:本题的字符串中共有9个字符,它们分别是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示换行,'\\\\'表示反斜杠字符'\\',所以本题的最后输出结果为9。

26.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]

27.投影专门关系运算包括对单个关系进行垂直分解(投影操作)或水平分解(选择操作)和对多个关系的结合(连接操作)等。

28.20c。20,c。解析:函数fun的功能是给结构体指针变量所指的结构体变量的各成员赋值,主函数两次调用函数fun,第一次调用,实参st两个成员的值是20和字符b,调用结束时,静态局部变量k没有释放,值为2:第二次调用,实参st两个成员的值是20和字符c,调用结束时,静态局部变量k没有释放,值为3;因此,输出结果是20和c。

29.查询查询解析:关系模型的数据操作即是建立在关系上的数据操作,一般有查询、增加、删除和修改四种操作。数据查询是指用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。数据增加仅对一个关系而言,在指定关系中插入一个或多个元组。数据修改是在一个关系中修改指定的元组和属性。

30.261261解析:在控制格式符中“o”代表的是将数据按八进制数输出,十进制数的177代表的八进制数是261。

31.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。

32.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的数组a是一个3行4列的二维数组,一维数组b用于存放每行的最大数。在函数fun中,通过二重for循环求每行的最大数,外层for循环用于控制行数,内层for循环用于控制列数,当外层循环执行一次时,内层循环则从一行的4个数中找出最大数x,然后将最大值x赋给数组br,故空格处应填br[i]或*(br+i)。

33.98

34.在进行单元测试时,要用一些辅助模块去模拟与被测模块相联系的其他模块,即为被测模块设计和搭建驱动模块和桩模块。其中,驱动模块相当于被测模块的主程序,它接收测试数据,并传给被测模块,输出实际测试结果;而桩模块是模拟其他被调用模块,不必将子模块的所有功能带入。\r\n\r\n

35.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。

36.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8-20,此时y=8。

37.驱动模块驱动模块解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。

38.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

39.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

40.格式化模型格式化模型解析:层次模型与网状模型属于格式化模型。

41.A解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行该case分支的语句。如果在该语句的后面没有break语句,则按顺序继续执行下一个case分支,直到遇到break语句或switch多分支语句结束,在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。在本题中,因为每个case语句后面都没有break语句,所以,第一轮循环(i==1)执行过后a的值为8,第2轮(i==2)执行过后a的值为16,第3轮(i==3)执行过后a的值为26,第4轮(i==4)执行过后a的值为31,然后执行“i++”语句,这时循环条件为假,循环结束。

42.C解析:在C语言中,实数有两种表示形式:十进制数形式与指数形式。

1)一般形式的实数:小数形式的实数由整数部分、小数点和小数部分组成(必须要有小数点)。

2)指数形式的小数:指数形式的实数由尾数部分、e(E)和指数部分组成(字母e或E的前后必须要有数字,且其后面的指数必须为整数)。选项A中,5E2.0中E后面的2.0不是整数;选项B中,E前面没有数字;选项D中,E后面没有数字。

43.D解析:表达式(2+x)二进制表示为“10101001”,(-3)即把3按位取反得到二进制值为“11111100”,再把这两个二进制按位加(异或),得到结果位“01010101”。

44.B解析:本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个for循环控制空格的输出,第二个for循环控制的输出。而在第i行,输出的第一个元素是num[i][i],所以下划线处应填i。

45.A解析:根据题意,p和q为整型指针,分别指向整型变量n2和n1,选项B是将q赋给p,即p指向n1,选项C是将n1的地址赋给n2,选项D是将n2的值赋给p,均与n2=n1不等价。只有选项A中,*p即n2,*q即n1,*p=*q即等价于n2=n1。

46.B解析:在C语言中,可以用break语句和continue语句跳出本层循环和结束本次循环。goto语句可跳出多层循环,如果在函数的循环体内使用return语句,就会直接结束循环返回函数值。

47.D解析:a是一个2行3列的二维数组,行下标和列下标都是从0开始的,数组中的元素为a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下标最大值为1,列下标最大值为2,因此选项A、B、C都是错误的引用。计算选项D中数组元素的下标后得a[0][0],为正确的引用。

48.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。

49.D解析:这个题目的功能是实现两个有序字符串,合并成一个新的有序的字符串。

50.B解析:本题中,structex是结构体类型名,ex-ample是结构体变量名。

51.D解析:本题考核的知识点是通过指针引用数组的元素。本题中首先定义了一个一维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A、B和选项C满足要求,而在选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。

52.B解析:在main函数中,对f(1)和f(2)的值进行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值为1+2=3

53.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。

54.A解析:结构化程序由3种基本结构组成,即顺序结构、循环结构(包括for语句、while语句及do…\u3000while语句)和选择结构(包括if语句和switch语句)。

55.A

56.B解析:数据的结构化是数据库阶段的重要特征之一。在数据库阶段,数据不再面向应用,而是面向整个系统,数据的共享性高、冗余小、易于扩展。由于数据库三级模式间的两级映像,所以数据具有较高的独立性。

57.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);

说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。

58.B解析:若在函数中定义与全局变量名字相同的局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;静态变量一旦定义,将在整个程序的运行期间都存布,故选项B正确;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。所以,B选项为所选。

59.A解析:ps+2就是s[2]的地址,即存放字符o的地址,所以A是错误的。

60.B

61.A本题主要考查按位求反运算和C语言正负数的表示,“O”代表正数,“1”代表负数;x=7的二进制为00111,第一个0代表正数,~x为11000,第一个l代表负数,值为8。

62.A

63.D解析:后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,道先遍历左子树,然后遍历右子树,最后访问根结点:并且遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。

64.D由i"11的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!一0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项c不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。

65.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。

66.B随着计算机的应用范围日益广泛,传统的软件开发成本难以控制,进度不可预计;软件系统的质量和可靠性很差;软件文档相当缺乏,软件系统不可维护;软件开发生产率很低,软件产品供不应求;软件产品成本十分昂贵且质量低下等特点日益显现,这些成为计算机应用的一个“瓶颈”,于是出现了所谓的“软件危机”。

软件工程是试图用工程化的方法开发软件,从而解决或缓解软件危机而产生的一门学科。它是采用工程化的方法开发和维护软件的工程学科。把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术和

温馨提示

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

评论

0/150

提交评论