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.下列程序的输出结果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

2.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

3.以下程序的输出结果是().A.A.2222B.2468C.222D.246

4.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;

A.10B.20C.40D.30

5.有以下程序:#include<stdlo.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dat","w+")for(i=1;i<6;i++){fprintf(fp."%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp."%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);

A.00B.12345C.14D.1

6.数组A[5][6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,下标从1开始,则元素A[5][5]的地址是()。

A.1175B.1180C.1205D.1120

7.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序执行后的输出结果是()。A.35B.37C.39D.3975

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

A.在C程序中,每行中只能写一条语句

B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C.在C程序中,无论是整数还是实数,都能被准确无误地表示

D.在C程序中,%是只能用于整数运算的运算符

9.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A.A.有零个输入或多个输入B.高效性C.有穷性D.确定性

10.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序执行后的输出结果是()。A.7B.3C.2D.0

11.以下数据结构中,()是线性结构。

A.有向图B.栈C.线索二叉树D.B树

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

A.算术运算符中不包含“=”运算符

B.模运算符“%”是c语言基本的算术运算符

C.算术运算符中只有“*”、“/”优先级高于关系运算符

D.自加和自减运算符只能用于变量,而不能用于常量或表达式

13.下列选项中,不是一个算法的基本特征的是()。

A.完整性B.可行性C.有穷性D.拥有足够的情报

14.if语句的基本形式是“if(表达式)语句”,以下关于“表达式”值的叙述中正确的是()。

A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值

15.串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符

16.用树形结构表示实体之间联系的模型的是

A.关系模型B.网状模型C.层次模型D.以上三个都是

17.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

18.

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

A.一个C程序中可以包含多个不同名的函数

B.一个C程序只能有一个主函数

C.C程序在书写时,有严格的缩进要求,否则不能编译通过

D.C程序的主函数必须用main作为函数名

20.

二、2.填空题(20题)21.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;______;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

22.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。

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

main

{

inna=b=c=5:

if(c=a+b)

printf("yes\n);

else

printf("no\n);

}

24.以下程序的功能是根据输入的"y"("Y")与"n"("N"),在屏幕上分别显示出"ThisisYES."与"ThisisNO."。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

25.以下条件表达式可计算:1+|a|的值,请填空。

a>=0?【】:【】

26.在宏定义#definePI3.14159中,用宏名PI代替一个______。

27.用指针法求出数组元素中最大者和最小者。

intmax,min;

voidmax_min_value(array,n)

intarray[],n;

{【】;

max=min=*array;

for(【】;p<array+n;p++)

if(*p>max)max=*p;

elseif(*p<min)min=*p;

}

main()

{inti,number[20],*p;

p=number;

printf("输入20个数据:\n");

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

【】;

max_min_value(p,10);

printf("max=%-10dmin=%d\n",max,rain);

}

28.在关系模型中,二维表的行称为______。

29.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。

30.以下程序的定义语句中,x[1]的初值是(),程序运行后输出的内容是()。#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1],printf("q%d”,p[i][0]);}printf("\n");}

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

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

32.C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。

33.执行下列语句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

34.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于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);

}

35.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。

main()

{

intfindbig(int,int,int);

int(*f)(),x,yz,z,big;

f=【】;

scanf("%d%d%d",&X,&y,&z);

big=(*f)(x,y,z);

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

}

36.以下程序从终端输入一行字符放在s数组中,输入以回车符作为结束,函数fun统计存放在s数组中每个数字字符的个数。形参ch指向s数组,形参n给出了s数组中字符的个数。在acc数组中用下标为0的元素统计字符“0”的个数,下标为1的元素统计字符“1”的个数,…。请填空。

#include<stdio.h>

voidfun(int*,char*,int);

main()

{chars[80],c;intacc[10],i=0;

printf("Entercharacters:\n");

while((c=getchar())!='\n')s[【】]=c;

fun(【】);

for(i=0;i<10;i++)printf("%c:%d\n",'0'+i,acc[i]);

printf("\n\n");

}

voidfun(int*a,char*ch,intn)

{inti,d;

for(i=0;i<10;i++)a[i]=【】;

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

{d=【】;a[d]++;}

}

37.有以下程序:

#include<stdio.h>

main()

{intt=1,i=5;

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

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

}

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

38.下面程序的运行结果是【】。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;

sub(s,7,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,inttl,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

39.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

printf("i=%d,j=%d\n",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入上【】。

40.算法的执行过程中,所需要的存储空间称为算法的【】。

三、1.选择题(20题)41.在具有n(n>1)个结点的完全二叉树中,结点i(2i>n)的左孩子结点是______。

A.2iB.2i+1C.不存在D.2i-1

42.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

43.在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0‖E<0)C.(E==0)D.(E!=0)

44.以下选项中,能用作数据常量的是()。

A.18B.11C.0.800.5D.25L

45.现有如下程序段#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

46.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

47.下列数据结构中,按先进后出原则组织数据的是()。

A.循环队列B.栈C.顺序表D.循环链表

48.以下程序的输出结果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

49.数据库设计的根本目标是要解决()。

A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护

50.下面程序的输出结果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

51.下列选项中,不是一个算法的基本特征的是()。

A.完整性B.可行性C.有穷性D.拥有足够的情报

52.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;执行该程序段后,k的值是______。A.3B.2C.1D.0

53.数据的存储结构是指______。

A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据

54.设有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是

A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相同

C.s数组长度和p所指向的字符串长度相等

D.*p与s[0]相等

55.下列选项中,不属于模块间耦合的是()

A.内容耦合B.异构耦合C.控制耦合D.数据耦合

56.已知char**S,下面正确的语句是()。

A.s="ABCDEF";B.*s="ABCDEF";C.**s="ABCDEF";D.*s='A';

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

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

58.在单链表中,增加头结点的目的是______。

A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现

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

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

60.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机中的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

四、选择题(20题)61.

62.最初的计算机编程语言是()。

A.机器语言B.汇编语言C.高级语言D.低级语言

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

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

64.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

65.设“intx=2,y=1;”,则表达式(!x||Y--)的值是()。

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

66.有以下程序语句,正确的是()。

chara,b,c*d;

A)a=′56′;B)b=′\xbc′;

C)c=′\0xab′;D)d=′\0127′;

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

A.143B.197C.33D.28

68.下列数据结构中,属于非线性结构的是A.循环队列B.带链队列C.二叉树D.带链栈

69.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。

A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错

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

A.在栈中只能插入数据,不能删除数据

B.在栈中只能删除数据,不能插入数据

C.栈是先进后出(FILO.的线性表

D.栈是先进先出(FIFO.的线性表

71.

72.有以下程序

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*z++);}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);

prt(&a,&b,&c);

}

程序的输出结果是

73.

74.有以下程序:

#include<stdio.h>

intfun

{staticintx=1;

x+=1;returnX;

}

main

{inti,S=1;

for(i=1;i<=S;i++)s+=fun;

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

}

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

A.11B.21C.6D.120

75.有如下程序:main(){intx=23;do{printf(”%d”,x--);}while(!x);}该程序的执行结果是()。A.321B.23C.不输出任何内容D.陷入死循环

76.

有下列程序:

#include<stdio.h>

main

{intx=0;

inty=0;

while(x<7&&++v)

{y--;

x++;}

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

}

程序的输出结果是()。

A.0,7B.7,7C.0,6D.1,6

77.

78.对于一个正常运行的C程序,以下叙述中正确的是()。A.程序的执行总是从main函数开始

B.程序的执行总是从程序的第一个函数开始,在main函数结束

C.程序的执行总是从main函数开始,在程序的最后一个函数中结束

D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

79.

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

A.C程序对预处理命令行的处理是在程序执行的过程中进行的

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

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

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。

例如,若输入“Ab,cD”,则输出“AB,CD”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!

六、程序设计题(1题)82.请编写一个函数,用来删除字符串中的所有*。例如,输入abc*de*f*gh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C本题考查for循环及if语句。当执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,break跳出循环,执行下列的printf语句。

2.C

3.D

4.A执行x=x-=x-x语句可写成x=x-(x-x),可看出结果为10,故八选项正确。

5.D解析:在for循环中用fpfinff(fp,'%d',i);将循环变量的值1~5输出到fp指向的文件data.dat中,输出3个数后换行。执行rewind(fP)使文件指针重新返回到文件的开头,再执行fscanf(fp,'%d%d',&k,&n)将磁盘文件中的前两个数输入给变量k,n,并将其输出到屏幕上。

6.D

7.D执行第一次for循环时,用表达式p[i][J]!=\o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-\o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。

8.D

9.B

10.C在函数funlintx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun(x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。

11.B

12.C

13.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。

14.Dif语句中的表达式可以是任意合法的数值,如常量、变量表达式。故本题答案为D选项。

15.B

16.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。

17.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

18.D

19.C【答案】C

【知识点】C程序的函数

【解析】C程序必须有且只有一个主函数main()。一个C程序可以包含多个不重名的子函数。C程序在书写时没有严格的缩进要求,语句前的缩进随意。

20.D

21.

22.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。

23.yesyes解析:if...else构造了一种二路分支选择,是一种最基本的选择结构。本题中,if后面括号里的表达式为c=a+b为真(即c=1+3=4为真);所以,执行s1,即执行prinff('yes\\'),最后输出yes。

24.getchargetchar解析:考查了字符可以作为整型变量来对待,参与操作。题中要求根据输入的字符调用函数YesNo来判断输入的字符是y(Y)还是n(N),字符的输入可用字符输入函数getchar。函数YesNo用来判断一个字符是y(Y)还是n(N),主要用了一个switch多分支结构来比较输入字符与字符\ue008'y',\ue009'Y'、,'n','N'是否相等来实现的。

25.1+a1-a1+a\r\n1-a解析:因为题目中求的是1+|a|的值,即1和a的绝对值之和。所以根据数学中求绝对值的规则,当a>=0时,绝对值取本身,当a<0时,绝对值取相反数,再结合条件运算符的计算规则可得到本题的答案为a>=0。注意:逗号表达式的求值规则。

26.字符串字符串解析:本题考查字符替换格式:#define标识符字符串。

27.int*pp=array+1p=numberint*p\r\np=array+1\r\np=number解析:函数max_min_value()中用到了指针变量p,显然应在第一个空格处填int*p。函数max_min_value()中的for循环逐一把数组中的元素与max和min的当前值进行比较。max和rain的初值是数组的第1个元素值,第1次比较应与第2个元素比较,即array+1。第二个空格处应填p=array+1。主函数main()中的指针变量p首先指向数组number的第1个元素,当第1个for循环结束时,它指向数组的最后一个元素。若这时将p作为实参传给被调用函数,形参array[]数组的首址将是number口数组的最后元素的地址,而number[]数组的前n-1个元素不能参加比较,这将引起计算出错。因此,在调用max_min_value()函数之前,应将指针p指向number[]数组首址,即在第三个空格应填写p=umber。

28.元组元组解析:在关系型数据库中,用二维表来表示关系,二维表的表名即关系名,二维表的行称为关系的元组,二维表的列,称为关系的属性。

29.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。

30.2246822468解析:p为指向数组的指针变量,数组x[1]为数组x[]的第二个元素,值为2;进入for循环i=0时,p[0]=&x[1]…直到循环完毕,指针分别指向数组x[]中的第2、4、6、8个元素,所以第二个空白处应填2468。

31.12101812,10,18解析:本题定义了3个整型变量x、y、z,并分别用十进制数、八进制数、十六进制数为它们赋值。然后以十进制整型输出这3个变量。八进制数012的十进制表示为10,十六进制数0x12的十进制表示为18。此外输出函数格式控制中的“,”原样输出。

32.顺序结构顺序结构解析:结构化程序有3种摹本结构,即顺序结构、选择结构(包括if语句和switch语句)和循环结构(包括for语句、while语句、do…while语句)。

33.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。

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

35.findbigfindbig解析:本题首先定义了一个指向函数的指针变量f,如果希望让它指向某个函数,只需把函数名赋给该指针变量即可。所以本题的空白处应该填入函数名findbig。

36.i++accsi0ch[i]-'0'

37.00解析:本题是计算5*4*3*2*1*0的值,结果为0。

38.abcdefglkjihabcdefglkjih解析:本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。

39.i=10j=20i=10,j=20解析:该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以本题中应该原样输入i=,j=,后面分别给变量10和20,故空格处应该填入i=10,j=20。

40.空间复杂度空间复杂度解析:算法执行时所需要的存储空间,称为算法的空间复杂度。

41.C解析:完全二叉树中叶子结点一定在最后一层或两层。n个结点的完全二叉树中,其层数最多为log2n+1。结点i与双亲的关系是i≠1时,i的双亲是trunc(i/2)。结点i与子女的关系是:若2i≤n,则i的左孩子是标号2i的结点,若2i>n,则不存在左孩子;若2i+1≤n,则i的右孩子是标号2i+1的结点,若2i+1>n,则该结点不存在右孩子。

42.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.

43.B解析:在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项B)中表达式E>0‖E<0是一个逻辑表达式。

44.D

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

46.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。

47.B解析:循环队列是队列的一种顺序存储结构,队列是以先进先出为原则组织数据的一种特殊线性表,选项A错误;栈是以先进后出为原则组织数据的一种特殊线性表,选项B正确;顺序表是线性表的顺序存储结构,选项C错误;循环链表是一般线性表的一种链式存储结构,选项D错误。

48.B解析:本题函数的功能是计算并输出一个二维数组对角线及对角线下面的元素之和。

49.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享本身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。因此,数据库设计的根本目标是要解决数据共享问题。

50.C解析:此题考查了指针引用一维数组元素的方法。*p+9因为运算符“*”的优先级高于“+”,所以输出结果为p指向的元素1,然后加9,值为10。

51.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。

52.B解析:本题考查的知识点是条件表达式.条件运算符?:是C语言中唯一的三目运算符,它的规则是先计算左边运算分量,如果为“真”(非0),则返回中间运算分量的值,否则返回右边运算分量的值。本题中因为a<b为“真”,所以第1个条件表达式的值为b的值2,所以k=2。然后又因为k>c为“假’,所以第2个表达式的值为k的值2。所以本题应该选择B。

53.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。

54.D解析:考查的是字符指针和字符数组的区别。选项A)中,s为数组名,是一个常量地址,而指针p为一个字符变量,不能说两者完全相同,所以选项A)错误。选项B)和C)的说法都不严谨,只有选项D)的说法正确。

55.B\nB)【解析】耦合可以分为下列几种,它们之间的耦合度由高到低排列:

\n内容耦合——若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。

\n公共耦合——若一组模块都访问同一全局数据结构,则称为公共耦合。

\n外部耦合——若一组模块都访问同一全局数据项,则称为外部耦合

\n控制耦合——若一模块明显地把开关量、名字等信息送入另一模块控制另一模块的功能,则称为控制耦合。

\n标记耦合——若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。

\n数据耦合——若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,则这两个模块为数据耦合。

\n直接耦合——若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强。

\n

56.C解析:“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s='ABCDEF'语法错误。“**s”和“s”一样;“*s”是指变量地址,不能给其赋字符串。

57.A\r\n二分法又叫折半(对分)查找法,只适合于顺序存储的有序表(是指线性表中的元素按值非递减排列)。二分法的基本思想是:设有序线性表的长度为n,被查元素为X,则二分查找的方法如下:

将X与线性表的中间项进行比较:若中间项的值等于x,则说明找到,查找结束;若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找;若X大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找、这个过程-直进行到查找成功或于表长度为0,(说明线性表中没有这个元素为止)顺序存储的线性袁在计算机中-般用一个-维数组来表示,在数组中我们可以通过数组名和下标来对数组中的任意一个元素进行访问,而在链表(不管是有序还是无序)中,要对元素进行访问必须从表头结点开始,顺着链条一个一个结点进行搜索,因此选项A正确

58.A\nA。【解析】头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。

\n

59.B解析:a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。注意:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C++语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。注意:C++语言赋值语句的运用,

60.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

61.D

62.A计算机编程语言有三类,机器语言,汇编语言,高级语言。最初的编程语言是机器语言。

63.B解析:a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。注意:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+

温馨提示

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

评论

0/150

提交评论