2021-2022年山东省东营市全国计算机等级考试C语言程序设计_第1页
2021-2022年山东省东营市全国计算机等级考试C语言程序设计_第2页
2021-2022年山东省东营市全国计算机等级考试C语言程序设计_第3页
2021-2022年山东省东营市全国计算机等级考试C语言程序设计_第4页
2021-2022年山东省东营市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年山东省东营市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.有以下程序

intfun1(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);

}

main()

{doublew;w=fun2(1.1,2.0);……}

程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0

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

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列是非线性结构

D.循环队列是一种逻辑结构

4.已知各变量的类型说明如下则以下不符合C语言语法的表达式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

5.有如下程序:

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn(2);

}

main()

{printf("%d\n",fib(3));}

该程序的输出结果是A.A.2B.4C.6D.8

6.以下程序的输出结果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

7.

8.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

9.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于()算法。

A.快速排序B.插入排序C.冒泡排序D.归并排序

10.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

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

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

13.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[5][8]的起始地址为()。

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

14.判断一个栈ST(最多元素为Maxsize)为满的条件是()。

A.ST->top!==-1

B.ST->top==-1

C.ST->top!==Maxsize-1

D.ST->top==Maxsize-1

15.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

16.有以下程序:程序运行后的输出结果是()。A.13442B.13431C.01234D.02431

17.以下能正确定义且赋初值的语句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

18.下列SQL语句中,用于修改表结构的命令式是A.A.Alter

B.Create

C.Update

D.Insert

19.

有以下程序:

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.235B.0235C.02356D.2356

20.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

二、2.填空题(20题)21.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

22.______是数据库应用的核心。

23.若按功能划分,软件测试的方法通常分为______测试方法和黑盒测试方法。

24.数据流图有两种典型的结构形式,它们分别是变换型和【】。

25.下列程序执行输出的结果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(a);

}

main()

{inta=2,i,k;

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

k=f(a++);

printf("%dh",k);

}

26.软件危机的核心问题是【】和软件开发效率低。

27.下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include<stdio.h>

main()

{inti,j;

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

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:case2:return1;

}

return(fib(g-1)+fib(g-2));

}

main()

{longk;

k=fib(5);

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

}

29.下列程序的循环次数是______。

x=2;

do

{x=x*x;}

while(!x);

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

31.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",-i);

}

33.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

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

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

34.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

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

main()

{chars[]=“abcdef”;

s[3]='\0';

printf(“%s\n”,s);

}

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

37.以下程序段中,错误的行号是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}

38.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

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

printf("\n");

}

39.以下程序可以把从键盘上输入十进制数(10ng型)以二到十六进制数的形式输出,请填空。

#include<stdio.h>

main()

{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','

E','F'};

intc[64],d,i=0,base;

longn;

printf("Enteranumber:\n");scanf("%1d",&n);

printf("Enternewbase:\n");scanf("%1d",&base);

do

{c[i]=【】;

i++;

n=n/base;

}while(n!=0);

printf("Theresultis:\n");

for(--i;i>=0;--i)

{d=c[i];

printf("%c",b【】);

}

}

40.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

三、1.选择题(20题)41.各种网络传输介质()

A.具有相同的传输速率和相同的传输距离

B.具有不同的传输速率和不同的传输距离

C.具有相同的传输速率和不同的传输距离

D.具有不同的传输速率和相同的传输距离

42.有以下程序:#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。

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

43.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}运行该程序的输出结果是______。

A.34B.42C.43D.33

44.算法中的每一个步骤都必须是有明确意义的,不允许有模棱两可的解释,也不允许有多义性。算法的这个性质称为______。

A.可行性B.有穷性C.正确性D.确定性

45.以下选项中可作为C语言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

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

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

47.在C语言中,函数调用时()。

A.实参和形参各占独立的存储单元

B.实参和形参共用存储单元

C.由系统自动确定实参和形参是否共用存储单元

D.由用户指定实参和形参是否共用存储单元

48.设有定义:floata=2,B=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是______。

A.(a十B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

49.已有定义inta=-2;和输出语句printf("%81x",a);以下正确的叙述是()。

A.整型变量的输出形式只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据

C.%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的

D.%81x不是错误的格式符,其中数字8规定了输出字段的宽度

50.按照“先进先出”组织数据的数据结构是()。

A.队列B.栈C.双向链表D.二叉树

51.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。

A.n-1B.nC.n+1D.2n

52.设有以下语句charx=3,y=6,z;z=x^y<<2;则z的二进制值是

A.10100B.11011C.11100D.11000

53.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是()。

A.p1:&n;p2=&pl;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;

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

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

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

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

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

55.下列说法错误的是()。

A.下列结构体定义时,占据了5个字节的空间structstudent{intnum;intage;charsex;}

B.结构体的成员名可以与程序中的变量名相同

C.对结构体中的成员可以单独使用,它的作用相当于普通变量

D.结构体可以嵌套定义

56.若有以下定义和语句,则输出结果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);

A.输出abcdB.输出aC.输出abcd口口口口口D.编译不通过

57.以下程序的输出结果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}

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

58.对于下列定义,不正确的叙述是()。uniondata{inta;charb;doublec;}x=y;

A.变量x所占内存的长度等于成员c的长度

B.变量x的地址和它的各成员地址都是相同的

C.可以在定义时对x初始化

D.不能对变量x赋值,故x=y非法

59.数据库系统可分为三级模式,下列选项中不属于数据库三级模式的是

A.抽象模式B.外模式C.概念模式D.内模式

60.x、y和z被定义为int型变量,若从键盘给x、y和z输入数据,正确的输入语句是()

A.INPUTx、y,z;

B.scan{("%d%d%d",&x&y&z);

C.scanf("%d%d%d",x,y,z);

D.read("%d%d%d",&x&y&z);

四、选择题(20题)61.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,0

62.设有以下定义:

inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int(*ptr)[3]=a,*p=a[0];

则下列能够正确表示数组元素a【1】【2】的表达式是()。

A.*((*ptr+1)[2])

B.*(*(p+5))

C.(*ptr+1)+2

D.*(*(a+1)+2)

63.

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

#definef(x)x*x

main

{inta=6,b=2,c;

c=f(a)/f(b);

printf(“%d\n”,c);

}

A.9B.6C.36D.18

65.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。

A.7B.8C.9D.10

66.有以下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intc=20,d=20;

*a=c/3;

b=d/5;}

main()

{inta=3,b=5;

fun(&a,&b);

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

}

程序的运行结果是

A.6,5B.5,6

C.20,25D.3,5

67.有两个关系R和S如下:

则由关系R得到S的操作是()。

A.投影B.交C.选择D.并

68.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

69.

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

voidfunc(int*a,intb[])

{b[0]=*a+b;}main

{inta,b[5];

a=0.b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

A.6B.7C.8D.9

70.

71.设有以下语句:typedefstructTY{charC;inta{41;}CIN;

则下面叙述中正确的是()。

A.CIN是structTr类型的变量

B.TT是struct类型的变量

C.可以用,lr定义结构体变量

D.可以用CIN定义结构体变量

72.软件生命周期是指()。

A.软件的开发过程

B.软件的运行维护过程

C.软件产品从提出、实现、使用维护到停止使用退役的过程

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

73.

74.有以下程序

main()

{inti=010,j=0X10;

pirntf("%d,%d\n",i,j);

}

该程序的输出结果是

A.10,10B.8,10

C.8,16D.10,16

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

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

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

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

D.以上说法都不正确

76.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据和相关文档的集合

77.

78.

79.

80.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从整数l0-55,查找能被3整除且有一位上的数值是5的数,把这些:故放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放位数,a2放十位数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),它的功能是求小于形参n同时能被3与7整除的所有自然数之和的平方根,并将其作为函数值返回。例如,若n为1000时,程序输出应为s=153.909064。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.C

2.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。

3.B本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。

4.A

5.B

6.B第一个for循环的作用是让p指向每行的首地址,第二个for循环的作用是把它指向的字符串输出,故选择B选项。

7.B

8.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

9.B

10.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。

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

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

13.C

14.D

15.C

16.Bmain函数中定义包含5个元素的数组m,每个元素都是NODE类型。指针p指向数组第1个元素,指针q指向数组最后一个元素。while循环使用p、q从首尾向中间遍历,遍历的同时为各个元素赋值。所以第1轮循环,i的值为0,先执行的值为++i,后执行i++的值也为1,m[0].k和m[4].k的值都为1;接着第2轮循环,i的值为2,先执行的值为3,后执行i++的值也为3,m[l].k和m[3].k的值都为3;第3轮循环,p和q指向的都是m[2]元素,指针相同,循环结束,此时i的值为4,即m[2].k赋值为4。综上,程序输出:13431。本题答案为B选项。

17.B解析:本题考查的知识点是变量赋初值.选项A中的语句只能起定义n1的作用,而n2=10是n1的初始值表达式,但因前面没有定义过n2,所以编译会报错“n2未定义”,故不正确。选项B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项C定义的初始值表达式中出现了它自身,某些编译器能通过编译,但f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。

18.A本题主要考查SQL中一些基本的命令。SQL常用的语句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL语言中使用率最高的是Select,这个命令的作用是从表中查找出满足条件的记录。

Insert命令的作用是对数据表进行插入操作。

Update命令的作用是对数据表进行更新操作。

Delete命令的作用是对数据表中的数据进行删除操作。

Create命令的作用是创建数据表。

Alter命令的作用是修改表的结构。

Drop命令的作用是用来删除表,它与Delete的区别是进行Drop操作后,数据表不存在了,而进行Delete操作后,数据表还在,只是数据被删除了。

19.B

\n本题考查分支语句用法加个句号因为变量的初始值分别为k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

\n

20.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

21.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

22.数据库设计数据库设计

23.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法.

24.事务型事务型解析:数据流图中有众多的加工,但必有一个加工是起核心作用的,即中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图的两种典型结构形式:变换型和事务型。

25.88解析:第1次for循环,i=0,调用函数f(2),然后将a的值加1,在f()函数中,变量c为static类型,所以c=8:第2次for循环,i=1,调用函数f(3),然后将a的值加1,调用函数f(3)时,a=c++8,所以k=8。

26.软件质量差软件质量差解析:大约在20世纪60年代末人们在计算机软件的开发和维护过程中,遇到了一系列严重问题,从而认识到软件危机的存在。软件危机的核心问题是软件开发的质量太差和软件系统开发的效率太低。

27.j%3!=0或j%3j%3!=0或j%3解析:题目要求输出100以内能被3整除且个位数为6的所有整数,且通过for循环实现,循环体内j=i*10+6;这也就满足了个位数为6的条件,所以第1个空格填入i<10或i<=9;if语句中的continue说明如果条件不成立则不输出j,所以第2空填j%3!=0或j%3。

28.k=5k=5解析:由题可知fib(0)的值为0,fib(1)和fib(2)的值为1,因此,fib(3)=fib(2)+fib(1)=2;fib(4)=fib(3)+fib(2)=3;fib(5)=fib(4)+fib(3)=5。

29.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。

30.33解析:条件表达式的一般形式为;表达式1?表达式2:表达式3条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。30/3=10>0,所以执行p/10,结果为3。

31.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统—管理与控制。

32.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,轴出结果为3。

33.\0s*p++\\0\r\ns\r\n*p++解析:本题先通过for循环从键盘读入20个字符,然后赋值'\\0'作为字符串结束标志,再使指针p指向字符串的首地址,最后通过while循环对字符串进行扫描并输出。

34.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

35.abcabc解析:字符串的结束标记'\\0',当输出一个存放在字符数组中的字符串时,只需输出到'\\0'为止,而不管其后有什么数据。本题给字符数组s的元素s[3]赋值为'\\0',故只能输出3个字符“abc”。

36.逻辑关系逻辑关系

37.③数组可以在定义时整体赋初值,但不能在赋值语句中整体赋初值。因此,可将第三行改为charstr[14]={"IloveChina!"};

38.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本题题干信息是求能整除x且不是偶数的所有正整数。循环语句中i从1开始且每次增2,所以i始终是奇数,语句,n=j;是记录符合题意的整数的个数。

39.n%base[d]

40.调试调试

41.B

42.A

43.D解析:逗号表达式(++x,y++)的值应该是y++的值,由于y++是先引用后自增,所以y++的值是3。

44.D解析:算法中的每一个步骤都必须是有明确意义的,不允许有模棱两可的解释,也不允许有多义性。算法的这个性质即为算法的确定性。

45.A解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。

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

47.A解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。

在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。

48.B解析:选项B错误,不符合题意。

49.D解析:整型变量的输出形式有:%d,%o,%x,%u等,%x是以十六进制无符号形式输出整数。十六进制数同样也可以像%md一样按%mlx输出指定宽度的长整型数。

50.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。

【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。

51.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。

52.B解析:本题考查两个位运算符。按位异或运算符“”’是双目运算符,其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异或时,结果为1。左移运算符“<<”是双目运算符,其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0,并且“<<”运算符的优先级于“^”。

53.D解析:本题考查指针变量的赋值。选项A)中,p1、p2本身都是地址变量,不能再将p1取地址赋给p2;选项B)中,不能将整型数据直接赋值给指针型数据;选项C)中,*p2代表了一个整型变量,而*p2=p1这个语句试图把一个地址值放入一个整型变量中是错误的;选项D)中指针间的赋值是正确的。

54.C解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。

55.A解析:本题主要考查定义结构体的几个特点:①结构的定义明确了结构的组成形式,定义了一种C语言中没有而用户需要的新的数据类型。与其他的数据类型不同,在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间;②结构体的成员名可以与程序中的变量名相同;⑧结构体中的成员可以单独使用,它的作用相当于普通变量;④结构体可以嵌套定义。

56.D

57.A解析:65536等于2的16次方,而短整型无符号数的取值范围为0~65535,65536已经超出a的存储范围,将截取溢出了的最高第17位,低16位全部为0,因此把a赋值给b,得到的是剩余的16个0,所以b的值为0。

58.C解析:本题主要考查的知识点是联合体的内存使用。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量全部是从低地址方向开始使用内存单元。不能在定义共用体变量时对它初始化。

59.A解析:数据库的三级模式是指概念模式、内模式和外模式,其中外模式又叫子模式,内模式又叫物理模式.所以本题答案为A。

60.B

61.C本题中ff(a=1)b=1;与elsed=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。

62.Da[1][2]的值为6.*ptr的值为1,*ptr+1=2是一个数组,所以(*ptr+1)[2]表示不正确。P=a,指向1,p+5是指针向后移动5个单元,即指向6,*(p+5)即是6,C项解释同A,

63.B

64.C

65.A"\0"表示空字符,strlen函数求得的是不包括字符串结束符\0的长度。故选A。

66.A在本题中,首先定义了一个fun函数,函数中用两个指针变量作为形参,在函数体中,定义了两个整型变量,然后做除法运算,并试图将结果保存到形参中,语句“*a=c/3;”中由于变量c与3都是整型,其运算结果也应该为整型,运算过程中舍去小数部分,得到计算结果为6,并保存到指针变量a指向的存储单元中;语句“b=d/5;”同样是整数运算,其运算结果为4,但很明显,赋值的方法不正确,不能改变指针变量b指向单元的值。

在主函数中,定义了两个整型变量,并分别赋初值,然后调用fun函数,由于函数的形参是指针变量,采用的传值方式是传地址,能实现数据的双向传递,因此,调用函数后,变量a的值变为了6,而变量b的值不变,最后输出的结果是6,5。

67.C四个选项中选择和投影都是对单个表进行运算,其结果都是一个关系。但只有选择运算是选取满足条件的元组,由题图可知,由关系R得到关系S的操作是选择运算。

68.A当执行gets(ss)后,ss数组中的元素为ABC,再执行strcat(ss,"6789"),strcat的作用,是把6789连接到了ss数组后面,执行完后SS数组为ABC6789,故选择A选项。

69.A

\n本题考查函数的调用,从主函数传递到调用函数中,*a的值为0,因此当执行完调用函数后,b[0]的值为6。

\n

70.A

71.D本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

72.C\n通常将软件产品从提出、实现、使用维护到停止使用、退役的过程称为软件生命周期。

\n

73.C

74.C本题主要考查八进制数与十六进制数的十进制输出。做这类题目的关键是对数据进行数制转换。

在程序中,首先定义了两个变量i和j,其中i的初值为一个八进制数10,而j的初值为一个十六进制数10,然后输出它们的十进制数。

一般情况下,八进制数与十进制数的转换通过二进制来实现,即先将八进制数转换为二进制数,然后将二进制转换为十进制数。八进制数的一位对应二进制数的三位,那么将八进制数10转换成二进制应该为001000,再将这个值转换为十进制,即2的三次方,结果为8。

将十六进制数转换为十进制数也可以通过二进制来实现。一位十六进制数对应四位二进制数,转换后为00010000,再将这个值转换为十进制数,即2的四次方,结果为16。

因此本题程序最后输出的结果为8,16。

75.CC【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C。

76.D解析:软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。

77.A

78.A

79.A

80.D解析:选项A,*m=&n错误。选项B,输入

double型,要用%lf或%le,否则数据不能正常输入。

选项C,n是变量,不是指针,scanf("%if",n)错误。

81.

82.1doublefun(intn)doublesum=0.0;inti;for(i=21;i<=n;i++)if((i%3==0)&&(i%7==0))sum+=i;returnsqrt(sum);本题考查算术运算的算法。首先利用一个for循环判断小于n且能同时被3和7整除的整数,并将满足条件的整数累加到sum。之后调用Sqrt()函数计算sum的平方根,并将其作为函数的返回值返回。2021-2022年山东省东营市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.有以下程序

intfun1(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);

}

main()

{doublew;w=fun2(1.1,2.0);……}

程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0

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

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列是非线性结构

D.循环队列是一种逻辑结构

4.已知各变量的类型说明如下则以下不符合C语言语法的表达式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

5.有如下程序:

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn(2);

}

main()

{printf("%d\n",fib(3));}

该程序的输出结果是A.A.2B.4C.6D.8

6.以下程序的输出结果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

7.

8.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

9.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于()算法。

A.快速排序B.插入排序C.冒泡排序D.归并排序

10.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

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

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

13.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[5][8]的起始地址为()。

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

14.判断一个栈ST(最多元素为Maxsize)为满的条件是()。

A.ST->top!==-1

B.ST->top==-1

C.ST->top!==Maxsize-1

D.ST->top==Maxsize-1

15.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

16.有以下程序:程序运行后的输出结果是()。A.13442B.13431C.01234D.02431

17.以下能正确定义且赋初值的语句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

18.下列SQL语句中,用于修改表结构的命令式是A.A.Alter

B.Create

C.Update

D.Insert

19.

有以下程序:

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.235B.0235C.02356D.2356

20.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

二、2.填空题(20题)21.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

22.______是数据库应用的核心。

23.若按功能划分,软件测试的方法通常分为______测试方法和黑盒测试方法。

24.数据流图有两种典型的结构形式,它们分别是变换型和【】。

25.下列程序执行输出的结果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(a);

}

main()

{inta=2,i,k;

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

k=f(a++);

printf("%dh",k);

}

26.软件危机的核心问题是【】和软件开发效率低。

27.下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include<stdio.h>

main()

{inti,j;

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

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:case2:return1;

}

return(fib(g-1)+fib(g-2));

}

main()

{longk;

k=fib(5);

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

}

29.下列程序的循环次数是______。

x=2;

do

{x=x*x;}

while(!x);

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

31.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",-i);

}

33.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

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

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

34.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

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

main()

{chars[]=“abcdef”;

s[3]='\0';

printf(“%s\n”,s);

}

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

37.以下程序段中,错误的行号是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}

38.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

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

printf("\n");

}

39.以下程序可以把从键盘上输入十进制数(10ng型)以二到十六进制数的形式输出,请填空。

#include<stdio.h>

main()

{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','

E','F'};

intc[64],d,i=0,base;

longn;

printf("Enteranumber:\n");scanf("%1d",&n);

printf("Enternewbase:\n");scanf("%1d",&base);

do

{c[i]=【】;

i++;

n=n/base;

}while(n!=0);

printf("Theresultis:\n");

for(--i;i>=0;--i)

{d=c[i];

printf("%c",b【】);

}

}

40.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

三、1.选择题(20题)41.各种网络传输介质()

A.具有相同的传输速率和相同的传输距离

B.具有不同的传输速率和不同的传输距离

C.具有相同的传输速率和不同的传输距离

D.具有不同的传输速率和相同的传输距离

42.有以下程序:#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。

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

43.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}运行该程序的输出结果是______。

A.34B.42C.43D.33

44.算法中的每一个步骤都必须是有明确意义的,不允许有模棱两可的解释,也不允许有多义性。算法的这个性质称为______。

A.可行性B.有穷性C.正确性D.确定性

45.以下选项中可作为C语言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

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

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

47.在C语言中,函数调用时()。

A.实参和形参各占独立的存储单元

B.实参和形参共用存储单元

C.由系统自动确定实参和形参是否共用存储单元

D.由用户指定实参和形参是否共用存储单元

48.设有定义:floata=2,B=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是______。

A.(a十B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

49.已有定义inta=-2;和输出语句printf("%81x",a);以下正确的叙述是()。

A.整型变量的输出形式只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据

C.%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的

D.%81x不是错误的格式符,其中数字8规定了输出字段的宽度

50.按照“先进先出”组织数据的数据结构是()。

A.队列B.栈C.双向链表D.二叉树

51.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。

A.n-1B.nC.n+1D.2n

52.设有以下语句charx=3,y=6,z;z=x^y<<2;则z的二进制值是

A.10100B.11011C.11100D.11000

53.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是()。

A.p1:&n;p2=&pl;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;

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

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

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

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

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

55.下列说法错误的是()。

A.下列结构体定义时,占据了5个字节的空间structstudent{intnum;intage;charsex;}

B.结构体的成员名可以与程序中的变量名相同

C.对结构体中的成员可以单独使用,它的作用相当于普通变量

D.结构体可以嵌套定义

56.若有以下定义和语句,则输出结果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);

A.输出abcdB.输出aC.输出abcd口口口口口D.编译不通过

57.以下程序的输出结果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}

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

58.对于下列定义,不正确的叙述是()。uniondata{inta;charb;doublec;}x=y;

A.变量x所占内存的长度等于成员c的长度

B.变量x的地址和它的各成员地址都是相同的

C.可以在定义时对x初始化

D.不能对变量x赋值,故x=y非法

59.数据库系统可分为三级模式,下列选项中不属于数据库三级模式的是

A.抽象模式B.外模式C.概念模式D.内模式

60.x、y和z被定义为int型变量,若从键盘给x、y和z输入数据,正确的输入语句是()

A.INPUTx、y,z;

B.scan{("%d%d%d",&x&y&z);

C.scanf("%d%d%d",x,y,z);

D.read("%d%d%d",&x&y&z);

四、选择题(20题)61.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,0

62.设有以下定义:

inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int(*ptr)[3]=a,*p=a[0];

则下列能够正确表示数组元素a【1】【2】的表达式是()。

A.*((*ptr+1)[2])

B.*(*(p+5))

C.(*ptr+1)+2

D.*(*(a+1)+2)

63.

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

#definef(x)x*x

main

{inta=6,b=2,c;

c=f(a)/f(b);

printf(“%d\n”,c);

}

A.9B.6C.36D.18

65.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。

A.7B.8C.9D.10

66.有以下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intc=20,d=20;

*a=c/3;

b=d/5;}

main()

{inta=3,b=5;

fun(&a,&b);

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

}

程序的运行结果是

A.6,5B.5,6

C.20,25D.3,5

67.有两个关系R和S如下:

则由关系R得到S的操作是()。

A.投影B.交C.选择D.并

68.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

69.

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

voidfunc(int*a,intb[])

{b[0]=*a+b;}main

{inta,b[5];

a=0.b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

A.6B.7C.8D.9

70.

71.设有以下语句:typedefstructTY{charC;inta{41;}CIN;

则下面叙述中正确的是()。

A.CIN是structTr类型的变量

B.TT是struct类型的变量

C.可以用,lr定义结构体变量

D.可以用CIN定义结构体变量

72.软件生命周期是指()。

A.软件的开发过程

B.软件的运行维护过程

C.软件产品从提出、实现、使用维护到停止使用退役的过程

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

73.

74.有以下程序

main()

{inti=010,j=0X10;

pirntf("%d,%d\n",i,j);

}

该程序的输出结果是

A.10,10B.8,10

C.8,16D.10,16

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

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

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

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

D.以上说法都不正确

76.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据和相关文档的集合

77.

78.

79.

80.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从整数l0-55,查找能被3整除且有一位上的数值是5的数,把这些:故放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放位数,a2放十位数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),它的功能是求小于形参n同时能被3与7整除的所有自然数之和的平方根,并将其作为函数值返回。例如,若n为1000时,程序输出应为s=153.909064。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.C

2.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。

3.B本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。

4.A

5.B

6.B第一个for循环的作用是让p指向每行的首地址,第二个for循环的作用是把它指向的字符串输出,故选择B选项。

7.B

8.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

9.B

10.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。

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

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

13.C

14.D

15.C

16.Bmain函数中定义包含5个元素的数组m,每个元素都是NODE类型。指针p指向数组第1个元素,指针q指向数组最后一个元素。while循环使用p、q从首尾向中间遍历,遍历的同时为各个元素赋值。所以第1轮循环,i的值为0,先执行的值为++i,后执行i++的值也为1,m[0].k和m[4].k的值都为1;接着第2轮循环,i的值为2,先执行的值为3,后执行i++的值也为3,m[l].k和m[3].k的值都为3;第3轮循环,p和q指向的都是m[2]元素,指针相同,循环结束,此时i的值为4,即m[2].k赋值为4。综上,程序输出:13431。本题答案为B选项。

17.B解析:本题考查的知识点是变量赋初值.选项A中的语句只能起定义n1的作用,而n2=10是n1的初始值表达式,但因前面没有定义过n2,所以编译会报错“n2未定义”,故不正确。选项B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项C定义的初始值表达式中出现了它自身,某些编译器能通过编译,但f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。

18.A本题主要考查SQL中一些基本的命令。SQL常用的语句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL语言中使用率最高的是Select,这个命令的作用是从表中查找出满足条件的记录。

Insert命令的作用是对数据表进行插入操作。

Update命令的作用是对数据表进行更新操作。

Delete命令的作用是对数据表中的数据进行删除操作。

Create命令的作用是创建数据表。

Alter命令的作用是修改表的结构。

Drop命令的作用是用来删除表,它与Delete的区别是进行Drop操作后,数据表不存在了,而进行Delete操作后,数据表还在,只是数据被删除了。

19.B

\n本题考查分支语句用法加个句号因为变量的初始值分别为k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

\n

20.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

21.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

22.数据库设计数据库设计

23.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法.

24.事务型事务型解析:数据流图中有众多的加工,但必有一个加工是起核心作用的,即中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在

温馨提示

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

评论

0/150

提交评论