2021-2022年湖北省鄂州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021-2022年湖北省鄂州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021-2022年湖北省鄂州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021-2022年湖北省鄂州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021-2022年湖北省鄂州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年湖北省鄂州市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列程序执行后的输出结果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

2.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务

3.设有定义:structcomplex{intreal,unreal;}data1={1,8},data2;则以下賦值语句中错误的是()。

A.data2=(2,6);

B.data2=data1;

C.data2.real=data1.real;

D.data2.real=data1.unreal;

4.有以下程序:#include<stdio.h>#defineF(x,y)(x)*(y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序运行后的输出结果是()。

A.12B.15C.16D.20

5.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()

A.ABCDEB.ECABDC.EACDBD.CDEAB

6.下列关于return语句的叙述中正确的是()。

A.—个自定义函数中必须有一条return语句

B.—个自定义函数中可以根据不同情况设置多条return语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

7.设有定义“intm=1,n=2;”,则以下if语句中,编译时会产生错误信息的是()。

A.if(m>n)m--elsen--;

B.if(m=n){m++;n++;}

C.if(m<0&&n<0){}

D.if(m>0);elsem++;

8.若串S=,software,其子串的数目是()。

A.8B.37C.36D.9

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

A.C语言只接受十进制的数

B.C语言只接受八进制、十进制、十六进制的数

C.C语言接受除二进制之外任何进制的数

D.C语言接受任何进制的数

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

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

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

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

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

11.顺序查找法适合于存储结构为()的线性表。

A.散列存储B.顺序存储或链式存储C.压缩存储D.索引存储

12.以下不正确的叙述是()。

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变

D.当从键盘输入数据时,对整型变量只能输入整型数值,对实型变量只能输入实型数值

13.在“文件包含,预处理语句的使用形式中,当#include后面的文件名用(双引号)括时,寻找被包含文件的方式是()。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索

C.仅仅搜索源程序所在目录

D.仅仅搜索当前目录

14.以下叙述中不正确的是

A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行

C.宏替换不占用运行时间,只占编译时间

D.在以下定义是正确的:#definePI3.1415926;

15.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

16.数据库设计中,用E—R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。

A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

17.下列字符数组初始化语句中,不正确的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

18.已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)

19.若有以下的定义:‘intt[3][2];”,能正确表示t数组元素地址的表达式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

20.函数fread(buffer,size,count,fp)中buffer代表的是()。

A.—个存储区,存放要读的数据项

B.一个整数,代表要读入的数据项总数

C.一个文件指针,指向要读的文件

D.—个指针,指向读入数据要存放的地址

二、2.填空题(20题)21.问题处理方案的正确而完整的描述称为______。

22.模式/内模式映射为数据库提供了【】数据独立性。

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

main()

{

charc1,c2;

for(c1='0',c2='9';c1<c2;c1++,c2--)

printf("%c%c",c1,c2);

printf("\n");

}

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

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}

25.算法的复杂度主要包括时间复杂度和______复杂度。

26.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。

27.有以下程序

intfa(intx){returnx*x;}

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

intf(int(*fl)int(*12)(),intx)

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

main()

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

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

28.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

29.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

30.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。

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

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

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

sstrcpy(str1,str2);

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

}

32.下列程序的输出结果是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);

}

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

#include<stdio.h>

#include<string.h>

char*ss(char*s)

char*p,t;

p=s+1:t=*s:

whilet*p){*(,p-1)=*p;p++;}

*(p-1)=t;

returns:}

main()

{char*p,str[10]="abedefgh";

p=ss(str);printf("%s\n".p):}

34.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n-->1)

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

if(str[i]<str[i+l])

{temp=【】;

str[i]=str[i+l];

【】=temp;

}

printf(【】);

}

35.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

36.若a是int型变量,则下列表达式的值为______。

(a=2*3,a*2),a+4

37.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【】负责数据的模式定义与数据的物理存取构建。

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

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k=N*N*5;printf(”%d\n",k);

}

39.下列程序的运行结果为【】。

main()

{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};

printf("maxvalueis%d\n",maxvalue(3,4,a));

}

maxvalue(m,n,array)

intm,n,array[][4];

{inti,j,max;

max=array[0][0];

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

for(i=0;i<n;j++)

if(max<array[i][j])max=array[i][j];

return(max);

}

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

#include<stdio.h>

unsignedfun6(unslgnednum)

{unsignedk=1;

do{k*=mum%10;num/=10;}

while(num);

returnk;

}

main()

{unsignedn=26;

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

}

三、1.选择题(20题)41.在C语言中,运算对象必须是整型数的运算符是()。

A.%B.\C.%和\D.**

42.完整的计算机存储器应包括______。

A.软盘、硬盘B.磁盘、磁带、光盘C.内存储器、外存储器D.RAM、ROM

43.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

44.下面描述中,不符合结构化程序设计风格的是

A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

B.注重提高程序的可读性

C.模块只有一个人口和一个出口

D.使用goto语句

45.执行以下语句后的输出结果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));

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

46.有以下程序:main(){inti;for(i=1,i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。

A.5B.24C.32D.40

47.有以下程序intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;seanf("%d",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量x输入10,程序的输出结果是

A.55B.54C.65D.45

48.下列数据结构中,能用二分法进行查找的是()

A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表

49.若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是

A.2B.3C.4D.无确定值

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

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

51.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。

A.运行后报错B.66C.611D.510

52.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}

A.5B.4C.6D.不确定

53.若要求从键盘读入含有空格字符的字符串,应使用函数

A.getc()B.gets()C.getehar()D.scanf()

54.设x,y均为int型变量,且x=10,y=3,则printf("%d,%d\n",x-,-y);语句的输出结果是______。

A.10,3B.9,3C.9,2D.10,2}

55.以下程序的输出结果是_______。main(){charst[20]="hello\0\t\\";printf(%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

56.以下四个程序中,完全正确的是()。

A.#include<stdio.h>

B.#include<stdio.h>main();main(){/*programming*/{/*/programming/*/printf("programming!\n");}printf("programming!\n");}

C.#include<stdio.h>

D.include<stdio.h>main()main(){/*/*programming*/*/{/*programming*/printf("programming!\n");}printf("programming!\n");}

57.设有如下定义:inta=4;则计算表达式“a+=a-a*a”后的值是()。

A.0B.-12C.-24D.-8

58.对以下程序段的描述,正确的是()。x=-1;do{x=x*x;}while(!x);

A.是死循环B.循环执行两次C.循环执行一次D.有语法错误

59.在下列叙述中,错误的一条是()

A.scanf()函数可以用来输入任何类型的多个数据

B.数组名作函数参数时,也采用“值传递”方式

C.如果形参发生改变,不会改变主调函数的实参值

D.函数的实参与形参的类型应一致

60.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数

四、选择题(20题)61.以下定义语句中正确的是()。

A.

B.

C.

D.

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

63.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。

A.函数的形参和实参分别占用不同的存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的实参和其对应的形参共占同一存储单元

64.

65.(64)在单链表中,增加头结点的目的是()

A.方便运算的实现

B.使单链表至少有一个结点

C.标识表结点中首结点的位置

D.说明单链表是线性表的链式存储实现

66.(VC++)若有以下定义,则对b数组元素正确的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

67.以下选项中不能用作C程序合法常量的是()。

68.以下叙述中错误的是()。

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

69.以下程序中函数f的功能是:当na9为1时,进行由小到大排序;当na9为0时,进行由大到小排序。

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

A.1,2,3,4,5,6,7,8,9,10,

B.3,4,5,6,7,2,1,8,9,10,

C.5,4,3,2,1,6,7,8,9,10,

D.10,9,8,7,6,5,4,3,2,1,

70.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。

A.文件B.数据库C.字段D.记录

71.

72.有以下程序:

intfun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

执行后的结果是()。A.A.7B.3C.2D.0

73.

74.下列与char*pa[3][5]={"a","bb","ccc"}等价的是()。

A.char(*pa)[][5]={"a","bb","ccc"}

B.char*pa[3][]={"a","bb","ccc"}

C.charpa[3][]={"a","bb","ccc"}

D.都不等价

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

A.软件的开发过程

B.软件的运行维护过程

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

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

76.

77.

78.有三个关系R、S和T如下:

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

A.自然连接B.交C.投影D.并

79.有以下程序:

voidfunl(char*p)

{char*q;

q=P;

while(*q!='\O')

{(*q)++;q++;}

}

main

{chara[]={"Program"),*P;

p=&a[3];funl(p);

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

}

程序执行后的输出结果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program

80.

有以下程序:

main

{inta[]=(2,4,6,8,10},y=0,x,*P;

p=&a[1];

for(x=1;x<3;x++)y+=p[x];

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

}

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

A.10B.11C.14D.15

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

请修改函数proc()中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.请编写函数proc,其功能是:计算并输出下列多项式值。

S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)

例如,若主函数从键盘给n输入20后,则输出为S=0.680803。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。

试题程序:

#includet:stdio.h>

doubleproc(intn)

{

}

voidmain

{

intn;

doubleslim;

printf("\nInputn:");

scanf("%d",&n);

sum=proc(n)。

printf("\ns=%f\n",sum);

}

参考答案

1.C因为x=0xFFFF=11111111,因此当以整型形式输出时对应的数为一1。

2.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。

3.A结构体变量初始化的具体成员值使用花括号标注,选项A错误。故本题答案为A选项。

4.A解析:本题考查带参数的宏定义,参数只是简单的替换而不是求出其值后再替换形式参数。本题中用a++替换X,用b++替换Y,再求(a++)*(b++)的值,即3*4的值,其结果为12。

5.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。

6.B在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值,A选项描述错误。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,C选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,D选项描述错误。故本题答案为B选项。

7.A选项A中,if语句的语句块“m--”后面少了分号,不合法,编译会出错。其他选项都是正确的。故本题答案为A选项。

8.B

9.BC语言可以使用格式控制符“%d”“%u”等接受十进制的数,使用“%o”接受八进制的数,使用“%x”接受十六进制的数。本题答案为B选项。

10.A解析:在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。因此,本题的正确答案为A。

11.B

12.D

13.B#include”文件名”,预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。

14.D解析:带参数的宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。

15.B解析:关系数据库逻辑设计的主要工作是将\ue008E-R\ue009图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

16.CC。【解析】E—R(Entity—Relationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

17.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。

18.B

19.C数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项C中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。

20.Dfread函数用来读二进制文件,其中buffer是数据块的指针,它是内存块的首地址,输入的数据存入此内存中;size表示每个数据块的字节数;count用来指定每读一次读入的数据块个数;fp是文件指针,指向要读的文件。选项A、B、C错误。本题答案为D选项。

21.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。

22.物理物理

23.09182736450918273645解析:题目中为for循环定义了两个字符型循环变量c1和c2,循环开始时分别初始化为字符‘0’和‘9’,然后每次循环结束给c1增1、c2减l,循环条件为c1<c2,即让c1的值依次为‘0’、‘1’、‘2’…,c2的值依次为‘9’、‘8’、‘7’…,直到两个数相遇时结束循环。又因为该循环的循环体每次按字符形式输出c1和c2的值。所以最终的输出结果为:0918273645。

24.99解析:本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。

本题可按部就班地逐步运算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

25.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

26.9999解析:数组的下标是从0开始存放数据的,而不是1,当数组大小为n时,其下标从0开始,到n-1,所以本题的答案为99。

27.44解析:在主函数中调用函数f,函数f有三个参数,形参n与C分别是两个指向函数的指针。在f中执行nf2(x),实际上是执行了fo(2)-fa(2),故执行i=(fa,fb,2)后i的值为2^3-2^2=4。

28.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

29.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。

30.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。

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

解析:本题,已知结果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。

33.bedefghabedefgha解析:函数9,的作用是将指针变量。指向的字符串的首字符移到最后一个位置,其他字符依次前移。其方法是:首先将指针变量p指向字符串s的第2个字符b,然后将首字符保存在字符变量t中;从字符串的第2个字符开始,通过语句*(P-1)=*p;依次前移,直到字符串结束符;最后通过语句*(P-1)=t;将保存在t中的字符放到移动后的字符串末尾,返回main函数并输出,输出结果为bedefsh。

34.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实过程是将相邻两个字符进行比较,如果当前字符小于下一个字符,则通过中间变量temp将字符两两交换,所以第—空应填:str[i],第二空应填str[i+1]最终打印输出得到的字符串str,所以第三空应填'%s',str。

35.“filea.dat”“r”“filea.dat”,“r”解析:考查对文件的操作。fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

36.1010解析:此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以追回值a+4=6+4=10。

37.数据定义语言数据定义语言解析:在数据库管理系统提供的数据定义语言,数据操纵语言和数据控制语言中,数据定义语言负责数据的模式定义与数据的物理存取构建,数据操纵语言负责数据的操纵,包括查询及增、删、改等操作,数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、恢复等功能。

38.5555解析:本题考查的重点是对宏定义的理解。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时.发现该标识符都用该串替换,因此,在语句k=N*N*5将替换成k=M+M*M+M*5后,M被替换成5,从而k=5+5*5+5*5=55。

39.maxvalueis34

40.1212解析:循环语句中,表达式num%10是取num的个位。循环直至num为0结束,这是逐一求出num+进制表示的各位数字,并累乘于变量k中。函数最后返回k,所以程序输出12。

41.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。

42.C

43.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

44.D解析:在结构化程序设计中,应严格控制使用GOTO语句,必要时才可以使用。

45.D

46.C解析:i=30时,条件表达式“i++%5==0”为真,i++后i=31,++i后i=32,即条件表达式“++i%8==0”为真。

47.A解析:本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。

48.DD)【解析】二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。

49.B解析:本题考查二维数组的定义方式。第一维的大小由以下方法判断:①当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;2)当初值的个数不能被第二维的常量表达式的值除尽时,则第一维的划、:所得的商数+1。

50.BB。【解析】设计软件结构,是在软件概要设计阶段进行的,而概要设计属于软件开发期。

51.A解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

52.C

53.B解析:scanf()语句用“空格”区别不同的字符串;getc()与getchar()语句不能用于字符串的读入。

54.D解析:C语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。

55.B解析:C语言中字符串是以'\\0'字符结束的,且strlen()函数计算的是'\\0'字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。

56.B解析:选项A中的main()后面不能直接用分号。选项C中的注释符使用不正确,编译器会把从第一个“/*到第一个*/”之间的当作注释,最后一个“*/”会被作为程序代码去编译。选项D中的include前要加上#表示是预定义语句。

57.D解析:a+=a-a*a等价于a=a+a-a*a=4+4-4*4=-8。

58.C解析:do-while语句的执行过程是:首先执行循环体语句,再判断表达式值的真假。在本题中,表达式的值为假,因此循环体只执行一次。

59.B

60.A解析:aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针\u3000t不断递增,直到t指向字符串结束标志处。当t指向结束标志处时,由于后缀++运算符的原因,它还会被再递增1,所以接卜来的t--;语句让它回到结束标志处。最后返回t-s,因此s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。

61.C解析:选项A中两个变量的定义应当以逗号隔开;选项B中a和b应当分开赋值;选项D中变量类型不相匹配,b应当是指针型变量。

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

63.A本题重点考察的是函数的形参和实参。I在定义函数时函数名后面括弧中的变量名称为“形式参数”l(简称形参),在主调函数中调用一个函数时,函数名后面括弧1中的参数(可以是—个表达式)称为“实际参数”(简称实参)。fC语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。因此A选项正确。

64.Afwrite函数将数组a写入文件,写入两遍,读出后为选项A)的值,所以选择A)。

65.A

66.D这是二维数组,所以A错\r\n数组是从0开始,所以第一个不能有2,第二个不能有3.所以B,C错。

67.A整数不能用逗号隔开,所以A)错误。

68.C解析:在C语言中,除字符数组外,一个数组不能通过数组名对数姐进行整体引用,因此选项A是对的。数组名中存放的是一个地址常量,它代表整个数组的首地址,因此选项B是对的。C语言程序在运行过程中,系统不自动检验数组元素的下标是否越界,因此选项C是错误的。C语官规定可以通过

温馨提示

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

评论

0/150

提交评论