2021-2022年安徽省铜陵市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021-2022年安徽省铜陵市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021-2022年安徽省铜陵市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021-2022年安徽省铜陵市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021-2022年安徽省铜陵市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年安徽省铜陵市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.要求通过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);

2.一个有7个顶点的完全三部图,至少有存在几条边()

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

3.以下不构成无限循环的语句或语句组的是()。

A.n=0;do{++n;}while(n<=0);

B.n=0;while(1){n++;}

C.n=10;while(n);{n--;}

D.for(n=0,i=1;i++)n+=i;

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

5.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是()。

A.10,One*Dream!

B.9,One*Dream!

C.9,One*World

D.10,One*World

6.有以下函数:

此函数的功能是()。A.比较p和q所指字符串的大小

B.计算p和q所指字符串的长度差

C.将q所指字符串连接到P所指字符串后面

D.将q所指字符串复制到p所指字符串中

7.一个关系中属性个数为1时,称此关系为()。

A.对应关系B.单一关系C.一元关系D.二元关系

8.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符

9.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是

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)

10.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号只是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P

11.已知a,b均被定义为double型,则表达式:a=5/2的值为()。

A.1B.3C.3.0D.2.5

12.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

13.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合

14.单链表的存储密度()顺序表的存储密度。

A.大于B.等于C.小于D.不能确定

15.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

16.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()。

A.O(0)B.O(1)C.O(n)D.O(n2)

17.

18.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则队头出队的运算是()。

A.q=f->next;f->next=f->next->next;free(q);

B.q=f;f->next=f->next->next;free(q);

C.f->next=f->next->next;q=f->next;free(q);

D.q=f->next->next;f=f->next;free(q);

19.若有定义:inta,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是A.A.35B.3,5C.3;5D.35

20.

二、2.填空题(20题)21.下列程序段的运行结果是______。

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

22.有以下程序片段,请问执行后的输出结果是【】。

intn=10;

while(n>7)

{printf("%d",n--);

}

23.数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像和【】。

24.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间______的信息。

25.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。

26.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

27.以下程序中,函数SumColumMin的功能足:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#defineM2

#defineN4

voidSumColumMm(inta[M][N],int*sum)

{

inti,j,k,s=0;

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

{

k=0;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])

k=j;

s+=【】;

}

【】=s;

}

main()

{

intx[M][n])={3;,5,1,4,1,8,3},s;

SumC01umMm(【】);

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

}

28.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。

请填空。

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*a、b、c能构成三角形*/

elseprintf("NO\n");/*a、b、c不能构成三角形*/

}

29.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。

main()

{inti,a[20],sum,count;

sum=count=0;

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

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

30.下列程序输出的结果是【】。

fun(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=2,m=1,n;

n=fun(k);

n=fun(m);

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

}

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

32.一个模块直接调用的其他模块的模块个数称为______。

33.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

34.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是【】。

35.以下函数用来求出两整数之和,并通过形参将结果传回,请填充完整。

voidfunc(intx,inty,【】z)

{*z=x+y;

}

36.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

37.在软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错直至回归测试的过程称为【】。

38.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。

39.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。

structlink

{chardata;

structlink*next;

}

structlink*p,*first;

|

intcount=0;

p=first;

while(【】)

{

【】;

p=【】;

}

40.为建立如下图所示的存储结构(即每个结点两个域,p是指向结点的指针域,data用以存放整型数),请将定义补充完整。

pdata

a

structlist

{【】;intdata;}a;

三、1.选择题(20题)41.以下有4组用户标识符,其中合法的—组是______。

A.FOR-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

42.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

43.下列数据结构中,属于非线性的是()。

A.线性表B.队列C.树D.栈

44.设有下列二叉树:

对此二叉树后序遍历的结果为

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

45.在嵌套使用if语句时,C语言规定else总是()。

A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近不带else的if配对

D.和之前的第一个if配对

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

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

47.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序运行后的输出结果是()。

A.22B.76C.72D.62

48.设ch是char型变量,其值为A,且有表达式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch。该表达式的值是______。

A.AB.aC.ZD.z

49.在设计程序时,应采纳的原则之一是()。

A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解

50.下面一组中都是C语言关键字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

51.以下叙述不正确的是______。

A.分号是C语言的必要组成部分

B.C程序的注释可以写在句的后面

C.函数是C程序的基本单位

D.主函数的名字不一定用main表示

52.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。

A.模拟现实世界中不同事物之间的联系

B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题

D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

53.字长为32位的计算机是指()

A.该计算机中的CPU有32个寄器

B.该计算机能够处理的最大数不超过232

C.该计算机每秒钟所能执行的指令条数为32MIPS

D.该计算机中的CPU可以相同时处理32位的二进制数

54.在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

55.若有以下定义:structlink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

56.若二维数组a有m列,则在a[i][j]刚前的元素个数为()。

A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1

57.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是——。

A.10234B.12344C.12334D.12234

58.已定义以下函数:fun(Char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是()。

A.将p1所指字符串复制到p2所指内存空间

B.将p1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查p1和p2两个指针所指字符串中是否有'\0',

59.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的运行结果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

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

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

四、选择题(20题)61.在下述程序中,判断条件“i>j”共执行的次数是

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A.4B.7

C.5D.6

62.表达式:(im)((double)9/2)一9%2的值是()。

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

63.设有以下定义:

inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int(*ptr)[3]=a,*p=a[0];

则下列能够正确表示数组元素a【1】【2】的表达式是()。

A.*((*ptr+1)[2])

B.*(*(p+5))

C.(*ptr+1)+2

D.*(*(a+1)+2)

64.数据库系统的三级模式不包括()。

A.概念模式B.内模式C.外模式D.数据模式

65.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

66.

67.

68.以下关于C语言的叙述中,不正确的是

A.C语言中的注释可以夹在变量名或关键字的中间

B.C语言中使用变量必须是先定义后使用

C.C语言表达式运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

69.

70.程序流程图(PFD.中的菱形代表的是()。

A.数据流B.控制流C.加工步骤D.逻辑条件

71.在一个C程序中

A.main函数必须出现在所有的函数之前B.main函数可以在任何地方出现

C.main函数必须出现在所有的函数之后D.main函数必须出现在固定位置

72.

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

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

74.在软件生产过程中,需求信息的给出是______。A.A.程序员B.项目管理者C.软件分析设计人员D.软件用户

75.以下不能正确定义二维数组的选项是A.inta[2][2]={{1},{2}};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4}};

76.有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。

A.(!a==1)&&(!b==0)B.(a<b)&&!cC.D.1E.a&&bF.aG.H.(b+b)&&(c-a)

77.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。

A.数据库系统B.文件系统C.人工管理D.数据项管理

78.设有如下说明

typedefstruct

{intn;

charc;

doublex;

}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是

A.STDtt[2]={{1,’A’,62},{2,’B’,75}};B.STDtt[2]={1,"A",62,2,"B",75};

C.structtt[2]={{1,’A’},{2,’B’}};D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

79.设有定义:

80.

下列程序输出结果是()。

#include<stdio.h>

main

{chara[]={a,b,C,d,e,f,\0).

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d",i,j);

}

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

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

例如,输入opdye,则应输出deopy。

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

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

试题程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

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

参考答案

1.Awhile循环的执行过程如下:①计算while后面圆括号中表达式的值。当值为非0时,执行步骤②;当值为0时,执行步骤④。②执行循环体一次。③转去执行步骤①。④退出循环。在选项A中,表达式(ch=get-char)!=N表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选项A为正确答案。

2.B

3.AA选项中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以while(n)永远为真,进入死循环;D选项中for语句第2个表达式为空,所以没有判断条件,进入死循环。故本题答案为A选项。

4.B

5.A函数“strlen(char*s)”;计算字符串s的长度,不包括‘\\0’在内。p指向数组的第2个元素,因此“Strien(P)=10”,并输出“one*Dream!”。故本题答案为A选项。

6.A函数fun接收两个整型指针变量作为参数,通过while循环,比较p和q对应位上的各个字符,如果字符相同,继续向后比较;否则循环结束,返回第1次对应不同字符的ASCII差值。所以函数fun是对p和q指向的字符串进行比较,其大小是按第1个对应位置上不同字符的ASCII值来比较的。本题答案为A选项。

7.C解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。

8.D[解析]C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。

9.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。

10.Cdoublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。

11.D

12.C

13.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。因此本题的正确答案是D。

14.C

15.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。

16.C

17.D

18.A

19.C解析:在C语言中scanf函数中输入数据时要严格按照所规定的样式输入。

20.B

21.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d”格式输出的,即输出其相应ASCII码值68。

22.1098

23.模式/内模式映像模式/内模式映像解析:映像即一种对应规则,指出映像双方如何进行转换。数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像与模式/内模式映像。

24.前后件关系前后件关系解析:在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。

25.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。

26.a=123b=5

27.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本题定义了一个函数SumColumMin(),该函数有两个参数,第一个参数为数组名,第二个参数为一个指针,用来访问存放数组中每列元素中的最小值的存储空间的变量。所以在主函数中调用SumColunMin()函数,应该将数组x和sam作为实参传给SumColumMin()中的形参,故第20个空格处应该填x,&s。在SumColumMin()函数中用了两重循环,用N记录数组的列,M记录数组的行。内循环共循环了M次,每循环一次将a[k][i]比较a[j][i](当k=0时,a[k][i]第一行第一列的值,然后将该值依次和第一列中的每个值比较,让a[k][i]表示较小的值,那么比较到最后一个元素后a[k][i]就是改列中最小元素的值),让k记录较小值元素的行下标,这样通过M次循环得到每列中的最小元素,然后退出内循环,继续执行该次外循环里的其他语句,即将刚求得第i列的最小值a[k][i]累加到s中,故第一个空格处应该填a[k][i],最后外循环共循环N次,将每列得最小值累加到s中,退出循环,然后让指针sum所指向得存储空间得值为s故第二个空格处应该填*sum。

28.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在逻辑表达式中,如果要同时满足几个条件可以使用逻辑与运算符“&&”,故本题的答案应该为:a+b>c&&a+c>b&&b+c>a或其他等价形式。

29.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函数中一开始定义了一个长度为20的整形数组,然后通过一个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[i]或a+i,然后再通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于0将其累加到变量sum中,所以第二个空格处应该填入数组元素,即应该填a[i]或*(a+i)。

30.6

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

32.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。

33.完整性控制完整性控制

34.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

35.int*int*解析:从函数体中可看出,2是一个指向整型的指针,该函数的形参z是传地址调用。

36.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[i+1]值相加后的值赋予数组b中元素b[i]小即可实现将一个数组的前项和后项之和存入另一数组。

37.校正性维护校正性维护

38.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。

39.p!=NULLcount++(*p).next

40.structlist*nextstructlist*next解析:定义的指针类型变量next也应该是结构体类型的。

41.C解析:C语言的标识符的定义为:以字母或下划线开头的由字母、数字字符、下划线组成的字符串。而且标识符不能与关键字相同。

42.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。

43.C解析:线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。

44.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树->,后序遍历右子树->,访问根结点。按照定义,后序遍历序列是DEBFCA,故答案为D。

45.C

46.A解析:本题考查字符串比较函数strcmp()的应用。strcmp(s1,s2)是中比较函数,当s1>s2时返回值为正数,当s1<s2时返回值为负数,当s1=s2时返回值为零。本题中s1,s2分别表示两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,指针变量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指针变量s2指向的是字符'B'的地址。而在字符串比较中,宁符串大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,字符'B'的ASCII码值为66,字符“b”的ASCII码值为98,所以s1>s2,返回值为正数。

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

48.B

49.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。

50.C解析:C语言中的关键字有32个关键字(参见C语言教程),本题中只有C符合题意。

51.D解析:C语言的程序是由主函数main()开始运行,由主函数来调用其他函数,所以D是错误的。

52.C解析:面向对象的设计方法与传统的面向过程的方法有本质不同。它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。

53.D

54.B数据库应用系统的逻辑设计包括数据库逻辑结构设计、数据库事务概要设计和应用程序概要设计三方面。数据库逻辑结构设计的主要步骤为:将E—R图转换为初始关系模式,对初始关系模式进行优化,检查关系表对数据库事务的支持性,确定关系模式完整性约束,设计基于关系模式的用户视图。

55.D解析:在本题中指针p指向变量a,q指向变量c。要把c插入到变量a和变量b之间,就应该首先让变量a的指针域指向变量c,即(*p).next=q,然后让变量c的指针域指向变量b,即(*q).next=&b。

56.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。

57.C解析:由于用了宏定义a[10]~a[19]均为0。函数fun的功能是把从a[n]到a[m]中的元素依次赋给后面的一个元素。调用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。

58.A解析:fun()函数中声明了两个字符串指针作为形参,在其函数体中用了一个while循环,首先while括号内表达式*p2=*p1是将p1所指的内容赋值到p2所指的存储空间中,然后在判断是否为'\\0',表达式的值为真时,执行循环体,指针p1和p2分别下移一位,当p1指向字符'\\n'时,表达式的值为假,循环结束,故此函数的功能是将p1所指字符串复制到p2所指内存空间中。所以,4个选项中选项A符合题意。

59.D解析:本题中fun函数实现了字符串函数strcat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\\0')逐个复制到字符串ss的末尾处。

60.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。

\n

61.D本题主要要求我们求判断条件“i>j”执行的次数。在本题的程序中,首先定义了四个整型变量,并分别赋初值,然后执行for循环结构,该循环结构中都是缺省语句,那么如果循环体中没有break语句,程序将面临死循环,从后面的程序中我们可以看出,程序中存在一条break语句。

第一次循环时,变量k的值为2,变量i的值被改变为2,而此时变量j的值为10,执行if(i>j)语句,结果为假,不执行break语句,然后改变变量s的值,一次循环结束。

通过对这次循环的分析,我们发现变量k的值一直没被改变,而变量i值的改变与变量k有关,且每循环一次增加2,那么变量i的改变轨迹应该为0,2,4,6,8,10,12,当i等于12时,其值大于j,条件判断语句结果为真,执行break语句,结束循环。从这里我们可以推断出循环执行的次数为6,因此,判断条件“i>j”执行的次数也为6次,本题的正确答案选D。

62.B先将整型数据9强制转换成double型,然后除以2得到的结果与double型保持一致,即为4.5,然后将4.5强制转换成整型数据4,然后计算9%2的值为1,最后计算4一l的值为3,所以选择B选项。

63.Da[1][2]的值为6.*ptr的值为1,*ptr+1=2是一个数组,所以(*ptr+1)[2]表示不正确。P=a,指向1,p+5是指针向后移动5个单元,即指向6,*(p+5)即是6,C项解释同A,

64.D数据库系统的3级模式是概念模式、外模式和内模式。故答案为D选项。

65.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。

66.Afun函数将字符串中的小写字符转换为大写字母,所以答案选择A)。

67.C

68.CA选项指出“C语言中的注释可以夹在变量名或关键字的中间”,该选项是正确的。通常采用/*.....*/作为C语言里的注释符,注释符之间的内容是方便他人理解程序而写的,对编译和运行不起作用。注释可以在程序的任何位置。

B选项“C语言中使用变量必须是先定义后使用”,该选项是正确的。变量先定义后使用是编程语言的语法规则。这样可以让编译器首先知道该定义变量的类型,可以事先为该变量安排好存储空间,不至于最后编译失败。如果预先没有定义,编译器会因为不清楚该变量的类型而导致随意分配内存空间,这样可能导致空间分配过大了浪费或因为空间过小无法存储数据。

C选项“C语言表达式运算符两侧的运算数类型必须一致”,该选项是错误的。C语言允许整型、实型、字符型数据间进行混合运算。在运算时,不同类型的数据要先转换成同一类型,然后进行运算。

D选项“C语言的数值常量中夹带空格不影响常量值的正确表示”,该选项是正确的。空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其他地方出现时,只起间隔作用,编译程序对它们忽略。因此,在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。

69.B

70.D程序流程图是软件设计过程中常用的图形描述工具之一。构成程序流程图的最基本符号有:“→”或“↓”表示控制流,“口”表示加工步骤,“

”表示逻辑条件。

71.B在C语言中,函数是C程序的基本

温馨提示

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

评论

0/150

提交评论