




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河南省漯河市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
3.以下叙述中错误的是()。
A.使用三种基本结构构成的程序只能解决简单问题
B.结构化程序由顺序、分支、循环三种基本结构组成
C.C语言是-种结构化程序设计语言
D.结构化程序设计提倡模块化的设计方法
4.不带头结点的单链表head为空的判定条件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
5.判定一个顺序栈st(最多元素为MaxSize)为满的条件是()。A.st->top!B.st->top!C.top==-1D.top==MaxSize
6.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性
7.依次插入序列(50,72,43,85,75,20,34,45,65,30)后建立的二叉搜索树中,查找元素30要进行()次元素间的比较。
A.4B.5C.7D.10
8.可用作C语言用户标识符的一组标识符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
9.在一个链式队列中,假设f和r分别为队头和队尾指针,则插入S所指结点的运算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.S->next=rr=s;
D.r->next=f;f=s;
10.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n",i,j);输出的结果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
11.用二分法查找长度为10的、排好序的线性表,查找不成功时,最多需要比较多少次?()
A.3B.4C.5D.6
12.以下叙述中错误的是()。
A.C语言程序在运行过程中的所有计算都以二进制方式进行
B.C语言程序在运行过程中的所有计算都以十进制方式进行
C.所有C语言程序都需要编译、链接无误后才能运行
D.C语言程序中字符变量存放的是字符的ASCII值
13.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表
14.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的运行结果是()。A.*****a*bB.a*bC.a*b****D.ab
15.
16.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
17.定义int*swap()指的是______。
A.—个返回整型值的函数swap()
B.一个返回指向整型值指针的函swap()
C.一个指向函数swap()的指针,函数返回一个整型值
D.以上说法均错
18.
19.若变量已正确定义,有下列程序段: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.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
二、2.填空题(20题)21.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
22.以下scanf函数调用语句中对结构体变量成员的引用不正确的是{charname[20];}pup[5],*p;
23.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。
24.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出结果是【】。
25.用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。
p=(float*)【】;
26.以下程序的输出结果是【】。
#include<stdio.h>
fun()
{staticinta=0;
a+=2;printf("%d",a);}
main()
{intcc;
for(cc=1;CC<4;CC++)fun();
printf("\n");}
27.数据库系统中实现各种数据管理功能的核心软件是______。
28.若输入Ihaveatest.#,则以下程序的运行结果为【】。
#include<stdio.h>
main()
{FILE*fp;
charstr[100],filename[10];
inti=0;
if((fp=fopen("test","w"))==NULL)
{printf("cannotopenthefile!\n");
exit(0);
}
getchar();
gets(str);
while(str[i]!='#')
{if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
}
29.在关系运算中,【】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
30.C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。
31.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。
32.以下程序运行后的输出结果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
33.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
34.下程序的输出结果是【】。
#include<stdio.h>
#defineMAX_COUNT4
voidfun()
main()
{intcount;
for(count=1;count<=MAX_COUNT;coun++)fun();
}
voidfun()
{staicinti;
i+=2;
printf(”%d,i);
}
35.在数据库系统中,实现各种数据管理功能的核心软件称为【】。
36.若有定义inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。
37.下面程序的运行结果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
38.层次模型的典型代表是IBM公司的【】数据库管理系统。
39.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
40.一名学生只能住一间宿舍,一间宿舍可住多名学生,则实体“宿舍”与实体“学生”的联系属于()的联系。
三、1.选择题(20题)41.下列叙述中正确的是()。
A.一个算法的空间复杂度大,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
42.为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定,else子句总是与()配对。
A.缩排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
43.执行语句for(i=1;i++<4;);后变量i的值是______。
A.3B.4C.5D.不定
44.设栈S的初始状态为空,栈的容量为5,若入栈元素的顺序是e1、e2、e3、e4、e5,则出栈元素的顺序不可能是______。
A.e1、e2、e3、e4、e5
B.e5、e4、e3、e2、e1
C.e2、e4、e3、e5、e1
D.e3、e4、e1、e2、e5
45.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
46.设有以下语句typedefstructTT{charc;inta[4];}CIN;则下面叙述中正确的是______。A.可以用TT定义结构体变量
B.TT是struct类型的变量
C.可以用CIN定义结构体变量
D.CIN是structTT类型的变量
47.有以下程序:main(){chars[]="\n123\\";printf(%d,%d\n",strlen(s),sizeof(s));}执行后的输出结果是______。
A.赋初值的字符串有错B.6,7C.5,6D.6,6
48.有以下程序structSTU{charname[10];intnum;intScore;{main(){structStus[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550},{"Penghua",20045;537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[i]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}执行后输出结果是
A.550550B.680680C.580550D.580680
49.下列叙述错误的是()。
A.函数名是属于用户标识符,需符合C语言对标识符的规定
B.形参只能是变量
C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名
D.函数中定义的变量可以与其他函数中的变量同名
50.下面四个选项中,均是不合法的用户标识符的选项是()。
A.AP_0doB.floatla0_AC.b-agotointD._123tempint
51.以下叙述中,正确的是______。
A.do…while语句构成的循环不能用其他语句构成的循环来代替
B.do…while语句构成的循环只能用break语句退出
C.用do…while语句构成的循环,在while后的表达式为非零时结束循环
D.用do…while语句构成的循环,在while后的表达式为零时结束循环
52.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间
53.以下正确的程序段是
A.charstr1[]="12345",str2[]="abcdef";
B.charstr[10],*st="abcde";strcat(str,st);
C.charstr[10]=""。*st="abcde";strcat(str,st);
D.char*st1="12345",*st2="abcde";strcat(st1,st2);
54.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解
55.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据和相关文档的集合
56.执行下面程序的结果是______。main(){intx=2;printf("%d\n",(x--,x<<1,x&&5));}
A.0B.1C.2D.编译时有语法错误,不能执行
57.下列程序的运行结果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
58.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.Printf("%d%d\n",p,*z)
59.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法
A.对象B.数据结构C.数据流D.目标
60.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
A.isupper?
B.′A′<=c<=′Z′
C.′A′<=c&&c<=′Z′
D.c<=(′z′-32)&&(′a′-32)<=c
四、选择题(20题)61.下列描述中正确的是()。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
62.
63.
若变量已正确定义,有以下程序段
i—o;
doprintf("%d,",i);while(i++);
printf("%d",i)
其输出结果是()。
A.0,0B.0,1C.1,1D.程序进入无限循环
64.
65.(35)检查软件产品是否符合需求定义的过程称为______。
A.确认测试
B.集成测试
C.验证测试
D.验收测试
66.
67.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
68.假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
69.
70.若有定义语句:“intx=10;”,则表达式x-=x+x的值为()。
A.-20B.-l0C.0D.10
71.下列叙述中正确的是()。
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
72.
设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n—c>d)运算后,n的值是()n
A.0B.1C.2D.3
73.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
74.已定义:inta=25,b=14,c=19;,以下三目运算符(?:)所构成语句的执行后
a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是
A.***a=25,b=13,c=19B.***a=26,b=14,c=19C.###a=25,b=13,c=19D.###a=26,b=14,c=19
75.以下叙述中错误的是(
)。A.预处理命令行必须位于源文件的开头B.宏替换可以出现在任何一行的开始部位C.宏替换的作用一直持续到源文件结尾D.宏替换不占有程序的运行时间
76.以下关于字符串的叙述中正确的是()。
A.空串比空格打头的字符串小
B.两个字符串中的字符个数相同时才能进行字符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.C语言中有字符串类型的常量和变量
77.学生选课成绩表的关系模式是sc(S#,c#,G),其中S#为学号,c#为课号,G为成绩,检索课号为2且成绩及格的学生学号的表达式为()。
78.若有定义语句:“inta=10;doubleb=3.14;”,则表达式A+a+b值的类型是()。
A.charB.intC.doubleD.float
79.以下不合法的字符常量是()。
A.
B.
C.
D.
80.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序运行后的输出结果是()。
A.-1B.65535C.32767D.-32768
五、程序改错题(1题)81.下列给定的程序中,函数proc的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。
例如,排序前的数据为:1132-5214
则排序后的数据为:-52111432
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#defineM20
voidproc(inta[],intn)
{
inti,j,t,P;
//****found****
for(j=0;j<n-1;j++);
{
p=j;
for(i=j;i<n;i++)
if(a[[i]<a[p])
p=i;
t=a[p];
a[p]=aEj3;
//****found****
a[p]=t;
}
}
voidmain
{
intarr[M]={11,32,-5,2,14},i,m=5;
printf("排序前的数据:");
for(i=0;i<m;i++)
printf("%d",arr[i]);
printf("\n");
proc(arr,m);
printf("排序后的顺序:");
for(i=0;i<m;i++)
printf("%d",arr[i]);
printf("\n");
}
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc,它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。
例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。
试题程序:
#include<stdio.h>
#defineM16
typedefstruct
{
charnum[10];
ints:
}
STREC;
intproc(STREC*a,STREC*b,int1,inth)
{}
voidmain
{
STRECstu[M]={{"GA005",55),{"GA003",96},
{"GA002",80),{"GA004",68),
{"GA001",88},{"GA007",74},
{"GA008",85),{"GA006",89},
{"GA015",90),{"GA013”,53),
{"GA012",66},{"GA014”,82),
{"GA011",73},{"GA017",69),
{"GA018",64),{"GA016",86}};
STRECh[M];
inti,n,low,heigh,t;
printf("Enter2integernumberlow&
heigh:");
scanf("%d%d",&low,&heigh);
if(heigh<low)’
{
t=heigh:
heigh=low;
low=t;
}
n=proc(stu,h,low,heigh);
printf("Thestudent’Sdataout
%d--%d:\n",low,heigh);
for(i=0;i<n;i++)
printf("%S%4d\n",h[i].num,h[i].s);
//输出指定分数范围内的学生记录
printf("\n");
}
参考答案
1.C
2.C解析:静态局部变量在编译时赋初值,即只赋韧值一次,在程序运行时它已有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值并返回主函数。
3.A使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。
4.A
5.D
6.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。
7.B
8.B
9.B
10.B本题考查函数的输出格式。在printf函数,格式说明符中有两个“%”说明;将第1个%后面的字符原样输出,并不输出其对应r的变量值。
11.B
12.BC语言程序在运行过程中的所有计算都以二进制方式进行,所以B选项错误。故本题答案为B选项。
13.A
14.C解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。
15.B
16.Awhile循环的执行过程如下:①计算while后面圆括号中表达式的值。当值为非0时,执行步骤②;当值为0时,执行步骤④。②执行循环体一次。③转去执行步骤①。④退出循环。在选项A中,表达式(ch=get-char)!=N表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选项A为正确答案。
17.B解析:—个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是—个返回整型指针的函数。
18.B
19.B解析:本题考查的是程序结构设计中if语句的应用,当if判断条件成立时就执行其后的相关语句,否则不执行,本题中第一个if条件不成立,故不执行“a=b”,接着执行“c=a”,此时第二个if条件也不成立,故不执行其后语句,最终c的值为3。
20.BC语言中,char型变量的值是其对应字符的ASCII值,可以做比较运算。由于小写字母的ASCII值按字母表的顺序连续递增,因此判断char型变量c是不是小写字母时,判断c的ASCII值是否在’a’和’z’之间,即(c>=’a’)&&(c<=’z’)。本题答案为B选项。
21.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做:n++是先取n的当前值和1做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=<1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3.退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加l,即程序结束后得到n=4,但输出的是3。
22.D
23.物理独立性物理独立性
24.99解析:函数的嵌套调用是在主函数中函数f(f(3,4),f(3,5))的返回值赋给d。函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9,所以输出9。
25.malloc(40)malloc(40)解析:库函数malloc()只有一个参数,就是所需分配内存的字节数,然后返回一个void*指针。本题要求分配40个字节,故直接调用malloc(40)就可以了。
26.246246解析:本题考查了for循环语句的使用,同时静态局部变量的存储和生存其特性也要注意。第一次执行fun()函数时,a=0,所以a+=2=2;第二次执行fun()函数时,a保留着上次制形式的结果2,所以a+=2=4;同理第三次执行fun()函数时,a=6,所以输出结果为246。
27.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
28.IHAVEATEST.
29.选择选择解析:关系运算中,选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
30.顺序结构顺序结构解析:结构化程序有3种摹本结构,即顺序结构、选择结构(包括if语句和switch语句)和循环结构(包括for语句、while语句、do…while语句)。
31.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。
32.45994599解析:要注意每条证语句后面是三条语句,而不是一条语句。执行第一条if语句时,条件表达式不成立,执行a=c;c=t;,此时a=5,c=99;执行第二条if语句时,条件表达式成立,执行t=b;b=a;a=t;交换a,b的值,输出结果为4,5和99。
33.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。
34.2468(若字符间有空格扣1分)2468(若字符间有空格扣1分)
35.数据库管理系统或DBMS数据库管理系统或DBMS解析:数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。
36.00解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a[0][1]、a[0][2]、a[0][3]。
37.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。
38.IMS(informationManagementSystem)
39.x=11x=11解析:在对无符号数的右移是高位补0。
40.一对多一对多解析:在现实世界中事物间的关联称为联系。在概念世界中联系反映了实体集间的一定关系。两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,分别是一对一,一对多和多对多,依据题意,一名学生只能住一间宿舍,一间宿舍可住多名学生,所以实体“宿舍”与实体“学生”的联系属于一对多的联系。
41.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。
42.B解析:本题考查ifelse语句。C语言规定,else总是与它前面的最近的if配对。
43.C解析:for语句中的表达式可以部分或全部省略,但两个“;”不能省略,若3个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当i的值为5的时候,循环终止。
44.D解析:栈是仅在表头和表尾进行插入和删除元素操作的线性表,其特点是“先进后出”。本题中,进栈的过程中可以出栈。选项D中,如果第一个出栈的元素为e3,由于入栈顺序是e1、e2、e3,那么e3出栈后,栈中元素必定有e1和e2,因为e1先入栈,故e1应在e2后出栈,所以选项D是不可能的出栈顺序。
45.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
46.C解析:将题目中的定义语句去掉前面的typedef和后面的CIN(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,TT是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,structTT一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedef,就是一条结构体定义同时声明个结构体变量CIN的语句,因为CIN的前面部分是structTT的完整写法,可以看作是structTT。C语言允许用typedef说明一种新类型名,其语法格式为:
typedef类型名标识符;
以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给structTT的定义一个新的名称CIN。所以,此时的CIN是一个结构体类型,它相当于structTT,即可以和char一样单独用来声明该结构体变量,而TT只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。
47.C解析:本题中定义字符数组s时没有指定数组长度,s初始化后存放的内容为'\\n123\\\\\\0',其中\'\\n\'和\'\\\\\'是转义字符,所以strlen(s)=5,sizeof(s)=6。
48.C解析:本题中首先定义了结构体类型STU,该结构体由一个长度为10的字符数组、两个整型变量num和Score组成。在主函数中,定义了一个长度为5的结构体数组s并赋初值,一个指针数组p和一个指针变量t,接着将数组s中各元素的地址依次赋给指针数组p中的各成员。然后通过两个for循环将数组p按Score的值从小到大的顺序排列。因此最后输出的p[1]->Score的值为550,而数组s[1].Score的值为580。
49.C解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。
50.C解析:C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项C)中goto和int是关键字,b-a中'-'不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。
51.D
52.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。
53.C解析:本题考查了一维字符数组的定义和初始化。选项C中str[10]初始化为空,可以不必进行类似''的空赋值,字符数组若没有进行初始化赋值,默认的字符为空,并且定义完str数组后,应该用“,”分隔而不是“。”,所以选项C错误。
54.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。
55.D解析:软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。
56.B解析:逗号表达式x--,x<<1,x&&5先执行x--,x的值为1,再执行x<<1,表达式的值为2,但x的值仍是1(不是移位赋值表达式),最后执行x&&5,二者均不为0,逻辑与的结果是1。
57.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第二个if语句,先判断条件,发现b<0条件不成立,则执行与其配对的else语句,c+=1,得c=5。
58.B解析:可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。注意:调用函数和被调用函数之间的数据传递。
59.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
60.B解析:在本题中,选项B)实际是先计算关系表达式'\'A\'<=c'的值是0还是1,再比较该值与字符\'Z\'之间的大小关系,显然不能实现题目所要求的功能,而选项A)、C)、D)都可以。
61.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。
62.D\r\n
63.B
\n本题中,变量i的初始值等于0,执行循环体中的语句后,输出i的值为0。while后面括号中表达式i++的值为0,循环结束。此时变量i自加1,所以再次“1”。
\n
64.A
65.A
66.D
67.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
68.A本题考查的是在链表中删除结点的操作。在本题中指针p指向结点a,q指向结点b。要把结点b删除,就应该首先让结点a的指针域指向结点C,即p—next=q—next,也可以写成(*p).next=(Pq).next,然后释放结点b,
free(q):所以,4个选项中,只有A)满足题意。
69.C
70.B表达式x-=x+X可以写成x=x-(x+x),所以X的值为-l0。
71.D栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。故答案为D选项。
72.C
\n因为a>b不成立,故表达式a>b的值为0,即为0赋给m,因此&&左边表达式的值为0,0与任何值&&运算都为0,于是不再计算&&右边表达式的值,所以此时的n仍然为2。
\n
73.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年党章党纪党史党建知识竞赛多项选择题库及答案(共210道题)
- 2025年激光扫描绘图机项目发展计划
- 诊所装修环保保证金协议
- 农业科技节水灌溉技术推广应用策略
- 公司可行性分析报告
- 广汽充电桩 远程
- 垃圾发电采购
- 高速电动汽车充电桩
- 保险行业保险科技创新与风险管理方案
- 智能家电产品开发与生产标准
- 江苏省南京师范大学附属中学树人学校2023-2024学年九年级下学期3月月考数学试卷
- 阿拉伯国家联盟课件
- 油气管道视频监控系统总体设计方案
- 知识产权案件调解实务
- 毫米波集成电路详述
- 打印设备维护服务投标方案
- JGT454-2014 建筑门窗、幕墙中空玻璃性能现场检测方法
- 一定溶质质量分数的氯化钠溶液的配制
- DB5301∕T 24-2019 园林绿化养护规范
- 地坪漆施工合同地坪漆施工合同范本
- 高风险供应商管理程序(经典-专业-建议收藏)
评论
0/150
提交评论