2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}

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

2.现有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}则程序段的输出结果为

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

3.

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

A.可以用关系运算符比较字符串的大小

B.空字符串不占用内存,其内存空间大小是0

C.两个连续的单引号是合法的字符常量

D.两个连续的双引号是合法的字符串常量

5.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0

6.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()。

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

7.在定义inta[3][2]以后,对a的引用正确的是()

A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]

8.下列标识符不是关键字的是()。

A.breakB.charC.SwithchD.return

9.下面算法的时间复杂度为()A.O(1)B.O(n)C.O(n*n)D.O(n!)

10.以下定义语句中正确的是

A.inta=b=0;

B.charA=65+1,b='b';

C.noata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

11.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性

12.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()

A.并运算B.交运算C.差运算D.除运算

13.

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

A.intB.floatC.doubleD.不确定

15.关于排序算法的以下说法,错误的是()

A.归并排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)

B.堆排序平均时间复杂度O(nlogn),最坏时间复杂度O(nlogn)

C.冒泡排序平均时间复杂度O(n^2),最坏时间复杂度O(n^2)

D.快速排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)

16.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

17.有以下程序:#include<stdi0.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

18.下列程序的执行结果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1

19.最坏情况下时间复杂度不是n(n-1)/2的排序算法是()

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

20.若输入“abcdef”、“abdef”,以下程序的输出结果为()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}

A.-1B.0C.abcdefD.abdef

二、2.填空题(20题)21.【】是从二维表列的方向进行的运算。

22.在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【】操作实现窗口的移动。

23.下列程序的输出结果是______。

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

24.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。

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

#include<stdio.h>

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

prinff("%d\n",S(i+j));

}

26.下列程序运行时输入1234567<CR>,则输出结果是______。

#include<stdio.h>

main()

{inta=1,b;

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

}

27.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为______。

28.程序的运行结果为【】。

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

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

}

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

30.下列语句的输出结果是【】。

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

31.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

32.下列程序的输出结果是______。

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

34.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单词链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。[*]

#include<stdio.h>

typedefstructnode/*链表结点结构*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立链表*/

{…}

voiddisp(Node*h)

{Node*

35.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。

36.x、y、x均为int型变量,描述“x、y和z中至少有两个为正数”的表达式是______。

37.若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

38.Windows的空口分为两类,一类是应用程序窗口,另一类是【】窗口。

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

fun(ihtx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

40.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

三、1.选择题(20题)41.在C语言中______。

A.函数定义可以嵌套,但函数调用不能嵌套

B.函数定义不可以嵌套,但函数调用可以嵌套

C.函数定义和调用均不能嵌套

D.函数定义和调用均可以嵌套

42.若有定义:intx=0,*p=&x;则语句printf("%d\n",*p);的输出结果是()。

A.随机值B.0C.x的地址D.p的地址

43.下面程序段的运行结果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

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

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

45.以下叙述正确的是

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和swish语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

46.设x=015,则x=x017的值是()。

A.1111B.11111101C.10D.11000000

47.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

48.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;执行该程序段后,k的值是()。

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

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

A.C程序由函数组成

B.C程序由主函数构成

C.C程序由函数和过程构成

D.在C程序中无论是整数还是实数,都可以正确无误的表示出来

50.下列定义变量的语句中错误的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;

51.软件设计中,有利于提高模块独立性的一个准则是______。A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合

52.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

53.对下述程序,正确的判断是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}

A.有语法错误不能通过编译B.若输入4,5则输出5,6C.若输入5,4则输出4,5D.若输入5,4则输出5,5

54.已有定义:Mtx=3,y=4,z=5;,则表达式!(x/y)+z-1&&y+z/2的值是()。

A.6B.OC.2D.1

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

A.一个逻辑数据结构只能有一种存储结构

B.数据的逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

56.若有如下程序:main(){intx[]={14,32,65,69,78,59},*t;t=x+5;printf("%d\n",*-t);}则程序执行后的输出结果是()。

A.78B.65C.32D.14

57.有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}执行后的输出结果是______。

A.n,twoB.t,oneC.w,oneD.o,two

58.下列程序的执行结果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

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

59.对于基本类型机同的两个指针变量之间,不能进行的动算是()

A.<B.=C.+D.-

60.读程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()。

A.720B.120C.24D.6

四、选择题(20题)61.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:

该语句所表示的含义是()。

A.

B.

C.

D.

62.

63.若变量x,y已正确定义并赋值,以下符号C语言语法的表达式是()。

A)++x,y=x--B)x+1=y

C)x=x+10=x+yD)double(x)/10

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

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

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

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

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

65.下列函数的功能是()

66.下列关于数据流图的描述正确的是()。

A.数据流图是描述数据处理过程的工具

B.数据流图间接支持系统的功能建模

C.数据流图中带箭头的线段表示控制流

D.数据流图是软件详细设计的工具

67.有以下程序:

程序的运行结果是()。

A.10,1B.20,1C.10,2D.20,2

68.

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

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

70.

71.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

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

72.

73.

74.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4

75.设以下变量均为int类型,表达式的值不为7的是A.(x=y=6,x+y,x+1)

B.(x=6,x+1,y=6,x+y)

C.(x=y=6,x+y,y+1)

D.(y=6,y+1,x=y,x+1)

76.

77.用数据流图(DFD.作为描述工具的软件开发阶段是()。

A.可行性分析B.需求分析C.概要设计D.详细设计

78.若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

79.

80.

五、程序改错题(1题)81.给定程序中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符:按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a.所指字符串中的内容为“abcdef9”,b所指字符串中的内容为“1234”时,c所指数组中的内容应“a4b3c2dlef9”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdef9”时,c所指数组中的内容应该为“lg2f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.M名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的带头结点。请编写函数proc(),它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C解析:自增运算符“++”,出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加1。例如题中的“b++”,题中第一条语句先输出字符b的值,此时变量b='2',因此输出值为2;再使b的值加1,b='3',因此第二条语句输出:b-a='3'-'1'=2。

2.D解析:在C语言中,定义一维数组的语句一般形式如下:

类型名数组名[常量表达式];

一维数组的引用形式为:数组名[下标表达式]。count表示能被2整除或被5整除的个数,i则计算有多少个数组元素。

3.A

4.D比较两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。

5.B变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。

6.B解析:通过分析不难写出,f()函数的数学表达式为:

f(n)=1n=l;

f(n)=f(-1)+1n≠1;

在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到j中,j的值为1。第二次i为2,调用f(n),根据递归公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值为3。所以最后输出,i的值为3。

7.D

8.C在C语言中,字母区分大小,所以break、char、return、switch都是C语言中的关键字,而Swithch不是。

9.B

10.B解析:本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和D)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,故选项C)错误。

11.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。

12.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

13.A

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

15.A

16.A本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

17.D第一次执行循环前,a=1,满足a<8,执行循环后,b=3,a=3。执行完a++操作后,a=4。由于a<8,执行第二次循环后,b=7,a=6,执行完a++操作后,a=7。由于a<8,执行第三次循环后,b=14,a=9,执行完a++操作后a=10。此时不满足a<8,跳出循环。

18.A本题主要考查自加减运算符(++,--)的使用。①如果作为前缀变量“++a,--a”,在使用a之前,先使a的值加1或者减1,再使用表达式的值参与运算;②后缀变量“a++,a--”,先使用表达式的值参与运算,在使用a之后,再使i的值加1或者减1。在本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此句后l3-的值是3;表达式c+=-a+++(++b)也可写成C=c+(一a++)+(++b),c=1+(一3)+3=1,此时a=4,b=3。

19.D

20.A

21.投影投影解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交,差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。投影是从二维表的列方向上进行的运算。

22.拖动拖动

23.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。

24.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。

25.8181解析:带参数的宏定义是按#define命令行中指定的字符串从左到右进行替换。本题替换后得到:4*i+j*i+j+1,代入i,j的值得81。

26.本题考查的重点是scanf函数的调用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上场宽,本题中两个变量的场宽都为2,所以输入1234567<CR>后,变量a的值为12。变址b的值为34,从而输出为1234。\r\n\r\n

27.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

28.242036

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

30.31371f3131,37,1f,31解析:此题考查了printf函数的格式字符,题中d是以十进制形式输出,o是以八进制形式输出,x是以十六进制形式输出,u以不带符号的十进制数输出。

31.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。

32.考查ifelse语句,n=4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+fun5(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

33.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。

“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。

本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

34.

35.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。

36.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:题目要求“x、y和z中至少有两个为正数”,即x、y和x这3个数中必须有两个是正数,且这3个数中的哪两个数都有可能是正数,所以它们之间是或的关系。

37.x/y=%dx/y=%d解析:本题考查prinff语句的输出格式。printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf('<格式化字符串>”,<参最表>)其中,格式化字符串包括两部分内容。一部分足正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一

38.文档文档

39.136136解析:本题考查函数的递归调用。函数fun是递归函数,语句fun(6)的调用过程如下:

第1次:调用fun(6),6/2=3>0成立,调用fun(3);

第2次:调用fun(3),3/2=1>0成立,调用fun(1);

第3次:调用fun(1),1/2=0>0不成立,执行语句printf('%d',x);,输出1。

推出fun(3)输出3,fun(6)输出为6。

40.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

41.B解析:函数可以实现嵌套调用,但它的定义不可以嵌套。

42.B解析:本题考查的是指针的运用。语句intx=O,*p=&x;定义7一个int型变量x并初始化为0,同时还定义了一个int型指针p指向变量x。语句ptintf('%d\\n',*p);是按十进制整数格式输出指针p所指向的内容,即x的值0。故本题应该选择B。

43.C在本题中,程序段首先定义了字符型指针变量p,并使其指向一个字符串,然后将指针变量p加3,即使其指向字符串的第四个元素。然后执行输出语句,通过输出语句的输出格式我们可以知道,最后输出的是一个十进制数的整型数值,其输出列表为strlen(strcpy(P,″ABCD″))。这就要求我们了解strlen函数和strcpy函数的作用。

strcpy的调用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串复制到目的地址中,这种复制将覆盖原来的字符串。strcat函数的功能是将源地址的字符串复制到目的地址字符串的后面。

strlen的调用格式是:strlen(字符串地址),其功能是返回字符串中字符的个数。

那么程序中执行strcpy(P,″ABCD″)后指针变量p所指向的字符串为“ABCD”,该字符串中字符的个数为4,那么执行strlen后,程序最终输出的结果是4。因此本题正确的答案是C。

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

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

45.B

46.C解析:本题主要考查按位异或运算,x=015(二进制00001101),017的二进制为000001111,两者异或结果为00000010。

47.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

48.B解析:因为a<b成立,所以条件表达式a<b?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

49.A解析:本题涉及C语言最基本的两个知识点:①C程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;②整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。

50.DC语言规定,变量名必须符合标识符的命名规则。D选项中包含非法字符“$”,所以错误。标识符由字母、数字、下划线组成,且第1个字符必须是字母或者下划线,而不能是数字。大写字母与小写字母被认为是两个不同的字符,所以“For”不是关键字“for”。故本题答案为D选项。

51.C耦合是对一个软件结构内不同模块之间互连程度的度量,耦合度越高,则模块的独立性越差。内聚反映一个模块内各个元素彼此结合的紧密程度。高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。低耦合是指不同软件模块之间通过稳定的接口交互,而不需要关心模块内部的实现。

52.D解析:当k=1时,引用的是二维数组元素w[1][1],值为字符串“FGH”;当k=2时,引用的是数组元素w[2][2],即字符串“KL”;当k=3时,结束程序的执行。注意:字符串数组的定义。

53.A

54.D解析:本题中,&&左边的表达式!(x+y)为!(3+7),结果为假,即为0。再加上2,然后减一,相当于0+5-1=4。左边等于4,&&右边的表达式y+z/2相当于4+5/2为6,所以整个表达式相当于4&&6为真,即为1,所以选项D正确。

55.D解析:数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和在此集合中定义的若干关系来表示。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。但是不同的存储结构的数据的处理效率不同。

56.A解析:执行t=x+5:使指针指向数组元素59,运算符*和--的优先级相同,结合性为自右向左,先计算--t,对t减1,使t指向数组元素78,再计算*t,取该地址单元的值78。

57.C解析:程序定义了一个指针数组s和一个字符型指针变量p。s有3个元素,其中s[0]指向字符串'one,s[1]指向字符串'two',s[2]指向字符串'three',执行p=s[1]后p指向字符串'two',所以*(p+1)=w。

58.A解析:本题主要考查自加运算符(++、--)的使用。①前缀变量“++i、--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算;②后缀变量“i++、i--”,先使用此时的表达式的值参与运算,在使用i之后,再使i的值加1或者减1。本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此语句后a的值是3;表达式c+=-a+++(++b)等价于c=c+(-a++)+(++b),c=1+(-3)+3=1,此时a=4,b=3。

59.C

60.B解析:本题考查函数的调用。函数f的功能是将b[]小的第1到n+1个数组元素的值进行相乘运算,然后返回其结果。由于实参3传给形参n,所以f的返回值为x=2*3*4=5=120。

61.C考查if语句的使用。整个语句都是以a<b为假设的,在a<b的情况下,如果c=d,则y=0;否则y=1。所以答案为选项C)。

62.A

63.A赋值号的左边不能为常量或表达式,所以B,C错误,D项不能进行这样的操作。

64.Cstrcat(s1,s2)函数的功能是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制到s1字符串,要保证sl的容量。

65.A将a数组里元素赋值给b数组,直到数组a的末尾,所以选择A)。

66.A\n数据流图是结构化方法的需求分析工具,是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图中带箭头的线段表示数据流。

\n

67.C数组名的值即为数组首地址,所以P->y可得第一个元素的y值,(++P)→x可得第二个元素的X值。

68.D

69.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。

70.A

71.C解析:软件按功能可以分为:应用软件,系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件、工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的软件。因此选项C教务管理系统属于应用软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等。因此选项A、B、D都属于系统软件。

72.C

73.B

74.C根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。

75.B本题考查逗号表达式的用法。C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:表达式1,表达式2。其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,…,表达式n。它的值为表达式n的值。

76.D

77.B\n结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用数据流图、数据字典、结构化语言、判定树和判定表等工具,来建立一种新的、称为结构化规格说明的目标文档。

\n

78.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

79.D

80.A

81.

82.

【解析】要得到学生的最高分,需要将每一个学生的成绩进行比较。学生的成绩存储在链表中,其结束标志为最后一个结点的next指针即NULL。比较每一个学生的成绩,将最高分返回给主函数。

2021-2022年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}

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

2.现有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}则程序段的输出结果为

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

3.

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

A.可以用关系运算符比较字符串的大小

B.空字符串不占用内存,其内存空间大小是0

C.两个连续的单引号是合法的字符常量

D.两个连续的双引号是合法的字符串常量

5.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0

6.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()。

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

7.在定义inta[3][2]以后,对a的引用正确的是()

A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]

8.下列标识符不是关键字的是()。

A.breakB.charC.SwithchD.return

9.下面算法的时间复杂度为()A.O(1)B.O(n)C.O(n*n)D.O(n!)

10.以下定义语句中正确的是

A.inta=b=0;

B.charA=65+1,b='b';

C.noata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

11.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性

12.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()

A.并运算B.交运算C.差运算D.除运算

13.

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

A.intB.floatC.doubleD.不确定

15.关于排序算法的以下说法,错误的是()

A.归并排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)

B.堆排序平均时间复杂度O(nlogn),最坏时间复杂度O(nlogn)

C.冒泡排序平均时间复杂度O(n^2),最坏时间复杂度O(n^2)

D.快速排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)

16.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

17.有以下程序:#include<stdi0.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

18.下列程序的执行结果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1

19.最坏情况下时间复杂度不是n(n-1)/2的排序算法是()

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

20.若输入“abcdef”、“abdef”,以下程序的输出结果为()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}

A.-1B.0C.abcdefD.abdef

二、2.填空题(20题)21.【】是从二维表列的方向进行的运算。

22.在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【】操作实现窗口的移动。

23.下列程序的输出结果是______。

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

24.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。

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

#include<stdio.h>

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

prinff("%d\n",S(i+j));

}

26.下列程序运行时输入1234567<CR>,则输出结果是______。

#include<stdio.h>

main()

{inta=1,b;

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

}

27.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为______。

28.程序的运行结果为【】。

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

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

}

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

30.下列语句的输出结果是【】。

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

31.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

32.下列程序的输出结果是______。

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

34.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单词链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。[*]

#include<stdio.h>

typedefstructnode/*链表结点结构*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立链表*/

{…}

voiddisp(Node*h)

{Node*

35.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。

36.x、y、x均为int型变量,描述“x、y和z中至少有两个为正数”的表达式是______。

37.若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

38.Windows的空口分为两类,一类是应用程序窗口,另一类是【】窗口。

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

fun(ihtx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

40.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

三、1.选择题(20题)41.在C语言中______。

A.函数定义可以嵌套,但函数调用不能嵌套

B.函数定义不可以嵌套,但函数调用可以嵌套

C.函数定义和调用均不能嵌套

D.函数定义和调用均可以嵌套

42.若有定义:intx=0,*p=&x;则语句printf("%d\n",*p);的输出结果是()。

A.随机值B.0C.x的地址D.p的地址

43.下面程序段的运行结果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

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

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

45.以下叙述正确的是

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和swish语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

46.设x=015,则x=x017的值是()。

A.1111B.11111101C.10D.11000000

47.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

48.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;执行该程序段后,k的值是()。

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

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

A.C程序由函数组成

B.C程序由主函数构成

C.C程序由函数和过程构成

D.在C程序中无论是整数还是实数,都可以正确无误的表示出来

50.下列定义变量的语句中错误的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;

51.软件设计中,有利于提高模块独立性的一个准则是______。A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合

52.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

53.对下述程序,正确的判断是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}

A.有语法错误不能通过编译B.若输入4,5则输出5,6C.若输入5,4则输出4,5D.若输入5,4则输出5,5

54.已有定义:Mtx=3,y=4,z=5;,则表达式!(x/y)+z-1&&y+z/2的值是()。

A.6B.OC.2D.1

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

A.一个逻辑数据结构只能有一种存储结构

B.数据的逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

56.若有如下程序:main(){intx[]={14,32,65,69,78,59},*t;t=x+5;printf("%d\n",*-t);}则程序执行后的输出结果是()。

A.78B.65C.32D.14

57.有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}执行后的输出结果是______。

A.n,twoB.t,oneC.w,oneD.o,two

58.下列程序的执行结果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

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

59.对于基本类型机同的两个指针变量之间,不能进行的动算是()

A.<B.=C.+D.-

60.读程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()。

A.720B.120C.24D.6

四、选择题(20题)61.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:

该语句所表示的含义是()。

A.

B.

C.

D.

62.

63.若变量x,y已正确定义并赋值,以下符号C语言语法的表达式是()。

A)++x,y=x--B)x+1=y

C)x=x+10=x+yD)double(x)/10

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

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

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

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

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

65.下列函数的功能是()

66.下列关于数据流图的描述正确的是()。

A.数据流图是描述数据处理过程的工具

B.数据流图间接支持系统的功能建模

C.数据流图中带箭头的线段表示控制流

D.数据流图是软件详细设计的工具

67.有以下程序:

程序的运行结果是()。

A.10,1B.20,1C.10,2D.20,2

68.

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

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

70.

71.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

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

72.

73.

74.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4

75.设以下变量均为int类型,表达式的值不为7的是A.(x=y=6,x+y,x+1)

B.(x=6,x+1,y=6,x+y)

C.(x=y=6,x+y,y+1)

D.(y=6,y+1,x=y,x+1)

76.

77.用数据流图(DFD.作为描述工具的软件开发阶段是()。

A.可行性分析B.需求分析C.概要设计D.详细设计

78.若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

79.

80.

五、程序改错题(1题)81.给定程序中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符:按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a.所指字符串中的内容为“abcdef9”,b所指字符串中的内容为“1234”时,c所指数组中的内容应“a4b3c2dlef9”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdef9”时,c所指数组中的内容应该为“lg2f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.M名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的带头结点。请编写函数proc(),它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C解析:自增运算符“++”,出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加1。例如题中的“b++”,题中第一条语句先输出字符b的值,此时变量b='2',因此输出值为2;再使b的值加1,b='3',因此第二条语句输出:b-a='3'-'1'=2。

2.D解析:在C语言中,定义一维数组的语句一般形式如下:

类型名数组名[常量表达式];

一维数组的引用形式为:数组名[下标表达式]。count表示能被2整除或被5整除的个数,i则计算有多少个数组元素。

3.A

4.D比较两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。

5.B变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。

6.B解析:通过分析不难写出,f()函数的数学表达式为:

f(n)=1n=l;

f(n)=f(-1)+1n≠1;

在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到j中,j的值为1。第二次i为2,调用f(n),根据递归公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值为3。所以最后输出,i的值为3。

7.D

8.C在C语言中,字母区分大小,所以break、char、return、switch都是C语言中的关键字,而Swithch不是。

9.B

10.B解析:本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和D)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,故选项C)错误。

11.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。

12.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

13.A

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

15.A

16.A本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

17.D第一次执行循环前,a=1,满足a<8,执行循环后,b=3,a=3。执行完a++操作后,a=4。由于a<8,执行第二次循环后,b=7,a=6,执行完a++操作后,a=7。由于a<8,执行第三次循环后,b=14,a=9,执行完a++操作后a=10。此时不满足a<8,跳出循环。

18.A本题主要考查自加减运算符(++,--)的使用。①如果作为前缀变量“++a,--a”,在使用a之前,先使a的值加1或者减1,再使用表达式的值参与运算;②后缀变量“a++,a--”,先使用表达式的值参与运算,在使用a之后,再使i的值加1或者减1。在本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此句后l3-的值是3;表达式c+=-a+++(++b)也可写成C=c+(一a++)+(++b),c=1+(一3)+3=1,此时a=4,b=3。

19.D

20.A

21.投影投影解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交,差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。投影是从二维表的列方向上进行的运算。

22.拖动拖动

23.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。

24.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。

25.8181解析:带参数的宏定义是按#define命令行中指定的字符串从左到右进行替换。本题替换后得到:4*i+j*i+j+1,代入i,j的值得81。

26.本题考查的重点是scanf函数的调用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上场宽,本题中两个变量的场宽都为2,所以输入1234567<CR>后,变量a的值为12。变址b的值为34,从而输出为1234。\r\n\r\n

27.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

28.242036

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

30.31371f3131,37,1f,31解析:此题考查了printf函数的格式字符,题中d是以十进制形式输出,o是以八进制形式输出,x是以十六进制形式输出,u以不带符号的十进制数输出。

31.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。

32.考查ifelse语句,n=4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+fun5(2),n==

温馨提示

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

评论

0/150

提交评论