2021-2022年吉林省松原市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2021-2022年吉林省松原市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2021-2022年吉林省松原市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2021-2022年吉林省松原市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2021-2022年吉林省松原市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年吉林省松原市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.结构化程序设计的3种结构是()。

A.顺序结构、选择结构、转移结构

B.分支结构、等价结构、循环结构

C.多分支结构、赋值结构、等价结构

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

2.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%x\n",m);

执行后的输出结果是A.A.0X0

B.0x0

C.0

D.0xABC

3.有以下程序程序执行后的输出结果是()。

A.y=-IB.y=oC.y=lD.while构成无限循环.

4.程序中主函数的名字为()。

A.mainB.MAINC.MainD.任意标识符

5.哈希表的平均查找长度与处理冲突的方法无关()

A.对B.错

6.若有定义“floatx=1.5;inta=1,b=3,c=2;”,则正确的switch语句是()。

A.switch(a+b){ case1:printf(“*\n”); case2+1:printf(“**\n”);}

B.switch((int)x);{ case1:printf(“**\n”); case2:printf(“**\n”);}

C.switch(x){ case1.0:printf(“*\n”); case2.0:printf(“**\n”);}

D.switch(a+b){ case1:printf(“*\n”); casec:printf(“**\n”);}

7.

8.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

9.若有定义:typedefint*(*T[10])[10];Tb;则以下选项中所定义的a与上述定义中的b,其类型完全相同的是()。

A.int*(*a[10][10]);

B.int**a[10][10];

C.int*(a[10])[10];

D.int*(*a[10])[10];

10.有一个100×90的稀疏矩阵,非0元素有10,设每个整型数占2个字节,则用三元组表示该矩阵时,所需的字节数是()。

A.20B.66C.18000D.33

11.fseek函数的正确调用形式是()。

A.fseek(文件指针,起始点,位移量)

B.fseek(文件指针,位移量,起始点)

C.fseek(位移量,起始点,文件指针)

D.fseek(起始点,位移量,文件指针)

12.以下选项中,当x为大于1的奇数时,值为0的表达式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

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

A.C程序总是从第一个函数开始执行

B.在C程序中,被调用的函数必须在main函数中定义

C.C程序总是从main函数开始执行

D.C程序中的main函数必须放在程序的开始部分

14.一个C语言程序总是从()开始执行:

A.主程序B.子程序C.主函数D.第一个函数

15.

16.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接选择排序C.快速排序D.二路归并排序

17.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-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,

18.fscanf函数的正确调用形式是()

A.fscanf(fp,格式字符串,输出表列);

B.fscanf(格式字符串,输出表列,fp);

C.fscanf(格式字符串,文件指针,输出表列),

D.fscanf(文件指针,格式字符串,输入表列);

19.现有二叉搜索树(BST)前序遍历结果序列为abdefgc,中序遍历结果序列为debgfac,请问后序遍历结果序列为()

A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC

20.下面关于编译预处理的命令行中,正确的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

二、2.填空题(20题)21.下列程序的输出结果是16.00,请填空:

main()

}

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

22.软件工程的出现是由于【】。

23.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。

24.当运行以下程序时,输入abcd,程序的输出结果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

25.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

26.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar(

n1=ch1-'0';n2-n1*10+(ch2-'0');

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

}

程序运行时输入:12<回车>,执行后输出结果是______。

27.若有以下程序

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

执行后输出结果是【】。

28.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdatc

{intday;

intmouth;

intyear:

union{intshare1;

floatshare2:

}share;

}a;

29.以下程序的输出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

30.有以下程序

main()

{intt=1,i=5;

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

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

}

执行后输出结果是______。

31.下面程序的功能是输出数组s中最大元素的下标,请填空。

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

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

#include<stdio.h>

main

{intk=4,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

33.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

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

34.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。

35.一个关系表的行称为()。

36.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。

37.下面程序的输出结果是【】。

structaa

{intx,*y;

}*p;

inta[8]={10,20,30,40,50,60,70,80};

structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};

main()

{p=b;

printf(%d",*++p->y);

printf("%d\n",++(p->x));

}

38.软件测试的方法有动态测试、静态测试和【】13种。

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

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%",n[i]);

}

40.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。

三、1.选择题(20题)41.以下选项中,不合法的整型常数是

A.32768B.-56C.3D.0Xaf

42.若有如下程序段;intx=3,y=4,z;floata=2.0;z=y%x/a;则执行后,z中的值是()

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

43.下列描述中,正确的是()

A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构

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

45.请读程序:#include<stdio.h>#include<string.j>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。

A.正数B.负数C.零D.不确定的值

46.有以下程序:intf(intb[][4]){inti,j,s=0;for(j=0j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}执行后的输出结果是()。

A.12B.11C.18D.16

47.若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。

A.p=p->next;s->next=p;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

48.按照“先进后出”原则组织数据的数据结构是()。

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

49.软件测试是保证软件质量的重要措施,它的实施应该是在______。

A.软件运行阶段B.软件开发全过程C.程序编码阶段D.软件设计阶段

50.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序运行后的输出结果是()。

A.0B.1C.-1D.NULL没定义,出错

51.已有定义:.chara[]="xyz",b[]={'x','y','z');,以下叙述中正确的是

A.数组a和b的长度相同B.n数组长度小于b数组长度C.a数组长度大于b数组长度D.以述说法都不对

52.下面不属于软件工程的三个要素的是A.A.工具B.过程C.方法D.环境

53.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

54.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序运行后的输出结果是

A.错误信息B.666C.888D.666,888

55.概要设计是软件系统结构的总体设计,不属于概要设计的是

A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码

56.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

57.以下不能正确计算代数式sm2()值的C语言表达式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

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

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

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

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

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

59.设有定义:#defineSTR"12345";,则以下叙述中正确的是()

A.宏名STR代替的是数值常量12345

B.宏定义以分号结束,编译时一定会产生错误信息

C.宏名STR代替的是字符串"12345";

D.宏名STR代替的是字符串常量"12345"

60.若变量已正确定义,有以下程序段

inta=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!=a)c=b;

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

其输出结果是

A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7

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

以下选项中表达式的值为11的是()。

A.

B.

C.

D.

62.设有如下定义

char*s[2]={"abcd","ABCD"};

则下列说法错误的是

A.s数组元素的值分别是″abcd″和″ABCD″两个字符串的首地址

B.s是指针数组名,它含有两个元素,分别指向字符型一维数组

C.s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素

D.s数组的两个元素中分别存放了字符′a′和′A′的地址

63.下列叙述中错误的是()。A.A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

64.

65.以下选项错误的是

66.

67.

68.有以下程序:

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

A.61B.70C.63D.71

69.有以下程序

70.

71.有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是()。A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);

72.以下选项中,合法的是()。

A.charstr3[]={d,e,b,u,g,\0};

B.charstr4;str4="helloworld";

C.charname[10];name="china";

D.charstrl[5]="pass",str2[6];str2=strl;

73.

74.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

75.

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

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对

77.

78.(14)结构化程序设计主要强调的是()

A.程序的规模

B.程序的易读性

C.程序的执行效率

D.程序的可移植性

79.改变某个元素的文本颜色的CSS属性是()。

A.text—colorB.FgcoiorC.colorD.text—color

80.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。

A.A.A,BB.A,68C.65,66D.65,68

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。例如,若字符串中的内容为****a*bc*def*g。***,删除后,字符串中的内容则应当是****a*bc*def*g。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:

参考答案

1.D结构化程序设计的基本要点:①采用自顶向下、逐步求精的程序设计方法;②任何程序都可由顺序、选择和循环3种基本控制结构构造。

2.C本题考查C语言中的数据输出格式。

题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。

3.A当y为。时,表达式y一才为假,循环结束,最终y的值为一l,所以答案选择A)。

4.A

5.B

6.AB选项中“switch((int)x);”语句中不应该有最后的分号。switch(expr1)中的expr1不能用浮点类型或long类型,也不能为一个字符串,所以C选项错误。case后面必须为常量表达式,所以D选项错误。故本题答案为A选项。

7.D

8.D

9.D“typedefint*(*T[10])[10];”使用typedef定义一种新类型名T,T的类型是二维数组指针,指向10个元素的数组。其中数组元素类型为int*[10],即数组的每个元素又是包含10个元素的数组,数组的元素是整型指针类型。故本题答案为D选项。

10.B

11.B解析:本题考查函数fseek的用法。fseek函数的调用形式为:

fseek(文件指针,位移量,起始点)

“起始点”用0,1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。

“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC和大多数C版本要求位移量是long型数据,这样当文件长度大于64k时不致出现问题。ANSIC标准规定在数字末尾加一个字母L表示long型。

12.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。

13.C解析:C程序是由main函数开始运行,通过main函数调用其他函数,所以,选项A)错误;在C程序中,函数不能嵌套定义,即不能在一个函数中定义另一个函数,选项B)错;C程序总是从main函数开始执行,但main函数不必放在最前面,故选项D)错。

14.C

15.C

16.C

17.A解析:在C语言中所谓函数的递归是在指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用.由程序可以看出函数f(a,i,j)为一递归函数,其功能是i

18.D

19.B

20.D选项A中,int是关键字,不能作为用户标识符;选项B中,两个“#”错误;选项C中两个“#”错误,另外DEFINE大写也是错误的。故本题答案为D选项。

解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b代入,得到16.0=(9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

22.软件危机的出现软件危机的出现

23.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查逻辑表达。年号能被4整除(y%4==0)但不能被100整除(y%100!=0),两者是与的关系,年号能被400整除即y%400==0,与前两项是或的关系。

24.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\\0’在内。因此,函数insert()实现了将字符数组中每个非‘\\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

25.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

26.1212解析:本题考核的知识点是字符类型数据的表示方法和存储形式。字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=ch1-'0'='1'-'0'=49-48=1n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为12。

27.5858解析:本题中处理二维数组元素用了两重循环,外循环变量i表示数组的行,内层循环变量j表示数组的列。在第二重循环中首先判断数组元素的值是否小于0,若是则处理该行的下一个元素;若不是则判断a[i][j]的值是否等于0,若等于0则退出内层循环开始处理下一行;其他情况下,把a[i][j]的值加到变量s中。所以本程序段的功能是把每行值为0的元素前面的所有大于0的元素值加到变量s中。

28.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(A)的值是2+2+2+4=10。

29.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(str1)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe

30.00解析:本题中的for循环共执行了6次,每执行一次将相应i的值相乘,最后当i=-1时停止循环.该for循环执行完后t的值为5*4*3*2*1*0=0,故最后输出I的值为0。

31.k=p;k=p;解析:要找数组中最大元素的下标,首先预设数组首元素下标为临时最大元素的下标,从首元素开始顺序向后继元素逐一比较,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标,直至比较了数组的全部元素后,临时最大元素下标就是数组中最大元素的下标。程序中,变量k用于存储临时最大元素下标,变量p控制顺序比较的循环变量。当发现当前元素s[p]比临时最大元素s[k]更大时,用p更新k。所以在下划线处应填入代码“k=p;”。

32.10211021解析:此题主要考查了变量和函数的存储类别。函数的存储范围是从定义它的位置到文件结束为止,如果想在函数定义之前使用函数,需要先对函数进行声明。静态局部变量的生存期为整个程序的运行期间,作用域却为定义它的函数或局部范围内。

33.77解析:本题考查英文字母ASCII码值的概念。字符参与运算的值是其对应的ASCII码,字符H的ASCII码为72,A的ASCII码为65,0的ASCII码为48,所以a=72-65+48=55,ASCII码值为55的字符是7。

34.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。

35.元组元组解析:一个关系表中的行称为元组,列称为属性。

36.自然连接自然连接解析:在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。

37.3010130101解析:注意地址自增与变量自增的区别。

38.正确性测试正确性测试

39.1371513715解析:本题中数组n有5个元素且初值为0,以下为for循环的执行过程。

第1次循环:循环前i=1,执行循环语句n[1]=n[1-1)*2+1=n[0]*2+1=1,输出1;

第2次循环:循环前i=2,执行循环语句n[2]=n[2-1)*2+1=n[1]*2+1=1*2+1=3,输出3;

第3次循环:循环前i=3,执行循环语句n[3]=n[3-1]*2+1=n[2]*2+1=3*2+1=7,输出7;

第4次循环:循环前i=4,执行循环语句n[4]=n[4-1)*2+1=n[3]*2+1=7*2+1=15,输出15;

所以程序的运行结果为:13715。

40.88解析:在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。

41.A解析:整型数据一般占2个字节,其取值范围是:-32768~+32767,而选项A)超过了整数的取值范围。注意:实型常数的表示方法。

42.C

43.AA)【解析】根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:①有且只有一个根结点;②每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二:叉树是非线性结构。

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

45.A解析:函数strcmp的功能是比较字符串s1和s2,如果s1>s2,则返回个正数:如果s1<s2,则返回负数,否则返回零。由于本题中小写字母b的ASCII码值大于大写字母B,故s1>s2,所以函数的值为正数。

46.D解析:分析程序可知,函数f()中的for循环作用,是将数组前三行中的对角线上的元素,即b[0][0]、b[1][1]、b[2][2]和第一行的第四列元素即b[0][3]累加到变量s中,然后将s的值返回。在主函数中首先定义了一个4行4列的二维数组,接着通过输出语句输出函数f(a)的返回值。调用f(a)的返回值为a[0][0]+a[1][1]+a[2][2]+a[0][3]=1+2+9+4=16。所以,4个选项中选项D符合题意。

47.A解析:在答案A中:p=p->next;s->next=p;p->next=s;s的确已插到了链表的末尾,但它的next却并没有为NULL,而是指向了它的直接前趋p,这样它就不是一个单向链表(单向链表最后一个结点的next指针一定是一个NULL)。

48.BB.【解析】栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元索是最后被插入的元素,也是最后被删除的元素。栈是按先进后出的原则组织数据的。

【知识拓展】“栈”的形式如手枪的弹匣,最后压入的子弹总是最先被弹出,而最先压人的子弹最后才被弹出,也就是“先进后出”。

49.B

50.A解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。

51.C解析:对字符型一维数组在定义时初始化,既可以使用初始化列表,也可以使用字符串常量。不过由于字符串常量会自动在结尾添加\'\\0\'字符做结束标志,所以用字符串常量的初始化列表项个数是字符串的长度加1。因此题目中的chara[]='xyz';等价于chara[]={\'x\',\'y\',\'z\',\'\\0\'};,所以a数组长度大于b数组长度,应该选C。

52.D解析:软件工程包括3个要素,即方法、工具和过程。

53.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

54.B解析:程序中的printf()函数的输出格式部分只说明了一个%d,而输出成员列表却有两个成员a和b,在这里将只输出第一个成员a值为666,所以,4个选项中选项B符合题意。

55.D解析:概要设计是数据库的总体设计,其目的就是要按照需求规格说明书把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系,而设计每个模块的伪代码则属于详细设计。

56.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。

57.A解析:当运算符“/”的左右两边运算分量都是整数的时候,运算结果也是一个整数,如果除不净则舍去小数部分。若两个运算分量有一个是实数,才会返回真正除法上的实数结果。选项A中传递给sin()函数的参数表达式1/2计算出来的结果为整数0,所以不能正确计算出题目要求的值,而其余选项中,除号两边都至少有一个运算分量是实数,故应该选择A。

58.B解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变

温馨提示

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

评论

0/150

提交评论