2022年辽宁省朝阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2022年辽宁省朝阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2022年辽宁省朝阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2022年辽宁省朝阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2022年辽宁省朝阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2022年辽宁省朝阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在位运算中,操作数每左移两位,其结果相当于()。

A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4

2.折半查找的时间复杂性为()

A.O(n2)B.O(n)C.O(nlogn)D.O(logn)

3.fgetc函数的作用是从指定文件读入—个字符,该文件的打开方式必须是______。

A.只读B.追加C.读或读写D.以上均正确

4.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序运行的结果是()。A.1,2,3,4,5,6,7,8,9,0,

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

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

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

5.已有定义int(*q)(),指针q可以()。

A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型

6.有以下程序段:charc1,c2;for(c=‘0’,c2=‘9’;c1<c2;c1++,c2--)printf(“%c%c”,c1,c2);程序段的执行结果是()。

A.0123456789B.0918273645C.0123498765D.9876543210

7.对线性表进行二分法检索,其前提条件是()。

A.线性表以顺序方式存储,并按关键码值排好序

B.线性表以顺序方式存储,并按关键码的检索频率排好序

C.线性表以链式方式存储,并按关键码值排好序

D.线性表以链式方式存储,并按关键码的检索频率排好序

8.允许对队列进行的操作有()。

A.对队列中的元素排序B.取出最近进队的元素C.在队头元素之前插入元素D.删除队头元素

9.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

10.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

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

12.有以下程序:

运行时,若输入123450<;回车>;,则输出结果是()。

A.66656B.6566456C.66666D.6666656

13.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,?,pn,若p1=n,则pi为()。

A.iB.n-iC.n-i+1D.不确定

14.

15.有以下函数:intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函数的功能是()。

A.将y所指字符串赋给x所指存储空间

B.查找x和y所指字符串中是否有‘\0’

C.统计x和y所指字符串中最前面连续相同的字符个数

D.统计x和y所指字符串中相同的字符个数

16.软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.软件设计C.可行性研究和计划制定D.需求分析

17.有以下函数:intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函数的功能是()。

A.将y所指字符串赋给x所指存储空间

B.查找和y所指字符串中是否有"\0'

C.统计x和y所指字符串中最前面连续相同的字符个数

D.统计x和y所指字符串中相同的字符个数

18.在一个C程序中

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函数必须出现在固定位置

19.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是()。

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

20.若有以下定义和语句:#include<stdio.h>charsl[10]=“abcd!”,*s2=“\nl23\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的运行结果是()。

A.107B.105C.55D.58

二、2.填空题(20题)21.若从键盘输入24,则以下程序输出的结果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=C;c=t;

if(a<c&&b<c)t=b;b=a;a=t

printf("%d%d%d\n",a,b,c);

}

23.以下程序的输出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

24.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

25.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。

structstud

{charnum[6];

ints[4];

doubleave;

}a,*p;

26.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

27.关键字ASC和DESC分别表示【】的含义。

28.以下函数的功能是删除字符串s中的所有数字字符。请填空。

voiddele(char*s)

{

intn=0,i;

for(i=0,s[i];i++)

if(【】)

s[n++]=s[i];

s[n]=【】;

}

29.以下函数把b字符串连到a字符串的后面,并返回a中新字符串的长度,请填空。

strcen(chara[],charb[])

{

intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

returnnum;

}

30.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。

31.函数pi的功能是根据以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

请在下面的函数中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

32.若变量n的值为24,则print函数共输出【】行,最后一行有【】个数。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))printf("\n");

}

printf("\n");

}

33.若用0至9之间不同的三个数构成一个三位数,下面程序将统计出共有多少种方法。请填空。

#include<stdio.h>

main()

{inti,j,k,count=0;

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

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

if(【】)continue;

elsefor(k=0;k<=9;k++)

if(【】)count++;

printf("%d",count);}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

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

}

35.设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。

36.软件开发环境是全面支持软件开发全过程的______的集合。

37.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。

38.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

39.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是【】。

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

三、1.选择题(20题)41.若有以下定义:structfink{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;

42.以下选项中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

43.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

44.在结构化程序设计中,模块划分的原则是()。

A.各模块应包括尽量多的功能

B.各模块的规模应尽量大

C.各模块之间的联系应尽量紧密

D.模块内具有高内聚度,模块间具有低耦合度

45.有以下程序:voidswapl(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5),b[2]={3,5};swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}程序运行后的输出结果是()。

A.3553B.5335C.3535D.5353

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

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

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

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

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

47.下面各被调用函数首部书写正确的是()

A.voidsub(floatx;floaty);

B.voidsub(floatx,y)

C.voidsub(floatx,floaty)

D.voidsub(floatx,floaty);

48.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。

A.if(a>B)&&(b>C))k=1;elsek=0;

B.if((a>B)||(b>C))k=1;elsek=0;

C.if(a<=B)k=0;elseif(b<=C)k=1;

D.if(a>B)k=1;elseif(b>C)k=1;elsek=0;

49.下述程序向文件输出的结果是_______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%d%5.of%c%d",58,76273.0,'-'2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件为二进制文件而不可读

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

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

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

main()

{inti=1,j=2,k=3;

if(i++==1&&(++j=3‖k++==3))printf("%d%d%d\n",i,j,k);

}

A.123B.234C.223D.233

52.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

53.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5

54.以下程序的运行结果是()。#include<stdio.h>main(){inta=3,b=4,c=8,d=4,m=1,n=3;printf("%d\n",(m=a>B)&&(n=c>D));}

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

55.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

56.下面函数intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}的功能是_______。

A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串yD.将字符串x连接到字符串y后面

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

58.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

59.已知i、j、k为iht型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。

A.scanf("%d%d%d",&i,&j,&k);

B.scanf("%d,%d,&d",&i,&i,&k);

C.scanf("%2d%2d%2d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

60.下列属于C语言语句的是______。

A.printf("%d\n",a)

B.#include<stdio.h>

C.a=b;b=c;c=a;

D./*thisisaprogram*/

四、选择题(20题)61.

62.有以下程序:

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

A.zB.0C.元素eh[5]的地址D.字符Y的地址

63.

以下程序的输出结果是()。

#defineM(x,y,z)x*y+z

main()

{inta=l,b=2,c=3;

printf("%d\n",m(a+b.b+c,c+a));

}

A.19B.17C.15D.12

64.有下列程序:

fun(intx,inty)

{staticintm=0,i=2;

i+=++rn;m=ixy;returnm;

}

main

{intj=l,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j.m);printf(”%d\n”,k);

}

执行后的输出结果是()。

A.5.5B.5,11C.11,11D.11,5

65.

66.软件需求分析一般应确定的是用户对软件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

67.

68.当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。

A.k%2B.k%2==1C.(K%2)!=0D.!k%2==1

69.下列关于栈的描述中错误的是()。

A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针

70.

71.

有下列程序:

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]-\0)%2)num=1O*num+p

[j][j]-0;

j+=2;

}

}

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

}

程序执行后的输m结果是()。

A.35B.37C.39D.3975

72.设有栈S和队列Q,其状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素则进入队列Q,若6个元素出队列的顺序是a2,a3,a4,a6,a5,a1,则栈的容量至少是

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

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

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名识意”

C.用户所定义的标识符中,大、小写字母代表不同标识

D.用户所定义的标识符必须以字母或下划线开头

74.

75.有以下程序:

voidf(int*x,int*y)

{int*t;

t=x;x=y;y=t;*x=*y;

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p>q)

{f(p,q);p++;q--}

for(i=0;i<8;i++)printf("d,",a[i]);

}

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

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

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

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

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

76.下列叙述中正确的是()。A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能

B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件

C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少

D.数据库系统独立性较差,而文件系统独立性较好

77.HTTP协议的GET请求方法可以获取()类型的数据。

A.HTML文档B.图片C.视频D.以上都可以

78.以下程序段中,与语句“k—a>b?(b>c?1:O):0;”功能相同的是()。

A.if(a>b)(b>c)k=1;elsek=0;

B.if((a>b)‖(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b>c)k=1;

D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:

79.对于存储同样的一组数据元素而言().

A.顺序结构比链接结构易于扩充空间

B.顺序结构与链接结构相比,更有利于对元素进行插入、删除运算

C.顺序结构占用整块空间,而链接结构不要求整块空间

D.顺序结构比链接结构多占存储空间

80.有以下程序:

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

A.1,2,3,0,0,0,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str数组中,形成一个新的字符串。

例如,str1中的字符串为fshADfg,str2中的字符串为sdAEdi,则str中的字符串应为sshEdig。

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

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

试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:使字符串中前部的*号不得多余m个;若多余m个,则删除多余的*号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为****A*BC*DEF*G****,若m的值为2,删除后,字符串中的内容则应当是**A*BC*DEF*G****;若m的值为4,则字符串中的内容仍为****A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用c语言提供的字符串函数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.D解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的n次幂,右移n位相当于除以2的n次幂。

2.D

3.D解析:fgetc函数是指从指定的文件读入—个字符,该文件必须是以读或读写方式打开的。fgetc函数的调用形式为:ch=fgetc(fp);。

4.Dfun函数的功能是对数组a[]的元素从大到小进行排序。

5.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。

6.B程序定义两个字符变量c1和c2。for循环中,首先为c1赋值‘0’,为c2赋值‘9’,接着判断c1和C2的大小。由于字符变量可以作为整型数处理,数字字符的ASCII值按字面数值的大小顺序连续递增,因此c1小于c2成立,执行循环体输出“09”,再将c1自增1,c2自减1后,执行下一轮循环,直到c1=‘5’,c2=‘4’时,c1<c2不成立,循环终止。最终程序段输出:0918273645。故本题答案为B选项。

7.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。

8.D

9.C解析:要计算一个复杂的表达式时,首先要弄明白表达式中所有运算符的优先级与结合性,本题中所涉及的运算符中,->的优先级最高,*和++的优先级相同,但其结合性为从右至左。所以选项A等价于*pt->y)也就是pt所指向的结构体的成员指针变量y所指向的内容。从前面的程序段不难看出,pt指向结构体数组c的首地址,也就是指向它的第1个元素,在它的第1个元素中,指针变量y又被初始化为指向控型数组a的首地址,即指向数组a的第1个元素。故选项A中的表达式的值为a[0],也就是1。选项B中表达式的值就是c[0].x,即10。根据优先级和结合性,选项C中的表达式等价于++(pt->x),由于是前缀++,所以整个表达式的值为pt->x的值加1,故为11。而选项D中,++是后缀形式,所以(pt++)的值还是pt的原值,即等于pt->x的值10。故应该选择C。

10.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

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

12.Bswitch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个e·*后面的常量表达式的值相等,就执行此ca*后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有ca$e后面的常量表达式都不等,则执行default后面前语句。然后退出。所以输入l时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。

13.C

14.A

15.C本题中由循环条件可知,遇到‘\\0’或x与y所指的字符不相等时循环结束。所以函数的功能是统计x和y所指字符串中最前面连续相同的字符个数。故本题答案为C选项。

16.D\n通常,将软件产品从提出、实现、使用维护到停止使用、退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。软件生命周期的主要活动阶段为:可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。

\n需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。

\n软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。

\n软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。

\n软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。

\n运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。

\n本题答案是D)。

\n

17.C本题中由循环条件可知遇到“0或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。

18.B解析:一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项A、选项C和选项D均不正确。所以,B选项为所选。

19.C

20.Cstrlen函数返回字符串的长度。求字符串长度时,遇到结束标识‘\\0’为止,但是长度不包括结束标识。字符数组s1的后5个元素没有赋值,都为‘\\0’,即“abcd!”后为‘\\0’,所以“strlen(s1)”的值为5。字符指针s2所指向的字符串中,“\\n”为转义字符,代表换行符,是1个字符,“\\\\”也为转义字符,代表“\\”,也是1个字符,其后为字符串结束标识‘\\0’,所以“strlen(s2)”的值也为5。故本题答案为C选项。

21.242424

22.4599

23.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(str1)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe

24.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

25.22

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

27.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。

28.s[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigis[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigi解析:从一个字符串中删除某字符的力‘法是从字符串的第一个字符开始一一判断该字符是否是要被删除,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断s[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'||s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志\\0。

29.\0'n++

30.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

31.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由题面中提供的计算pi的公式可知;在第i项其值为1/(i*i),考虑到运算结果为浮点数,故必须要将1转化为浮点数或采用1.0/(i*i)的形式。故本题应填1.0/(i*i)或其等效形式。

32.5454解析:语句if(!(i%5))printf('\\n');实现每5个数输出一行,因为n的值为24,所以共输出5行,最后一行有4个数。

33.i==jk!i&&k!ji==j\r\nk!i&&k!j解析:本题用双重for循环写了一段0~9之间不同的3个数构成一个三位数的程序,因为要求三位数各个位数的数不能相同,所以第一个空if语句的条件应为i==j,即当两个位数上的数相同的时候,不再执行下面的操作,转去执行for循环的下一次循环。第二个空,需要判断第三位上的数不能与其他两位的数相同。

34.101091101091解析:for(表达式1;表达式2:表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环:第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。

35.00解析:二维数组中当某行一对花括号内的初值个数小于该行中元素的个数时,系统将自动给该行后面的元素补初值0,由此可见数组a[1][2]=0。

36.软件工具软件工具解析:软件开发环境是各类软件开发工具的集合体。

37.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。

38.封装封装

39.x>5||x<-5或abs(x)>5x>5||x<-5或abs(x)>5解析:要使整数x的绝对值大于5,则x大于5或x小于-5,用C语言表示即为:x>5||x<-5或者abs(x)>5。

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

41.D解析:本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。

42.C解析:C语言中字符常量是以单引号括起来的单个字符,或为以“\\”与三位八进制数值或两位十六进制数值代替单个字符。

43.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。

44.D解析:本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:

(1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。

(2)模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。

(3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。

经过上述分析,本题的正确答案是选项D。

45.D解析:函数swapl的形参是数组名,在调用时应将数组名,即数组的首地址,作为实参传递给形参,形参所指向内容的改变可以带回到实参,因此调用函数swap1是将元素a[0]和a[1]互换。函数swap2的形参是指针变量,在调用时将b[0]、b[1]的值传递给它,形参内容改变也可以带回到实参,b[0]和b[1]的内容也进行了交换。所以输出为5353。

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

47.C

48.A解析:“a>b?(b>c?1:0):0”的求解顺序是:先判断a>b是否为真,如果为真,则执行b>c?1:0,如果b>c为真,则(b>c?1:0)的值为1,从而整个表达式返回1,否则整个表达式返回0;如果a仁b,则表达式返回0。因此功能等价的语句应为if((a>b)&&(b>c)k=1;elsek=0;。

49.C解析:fprintf函数工作时,多个数据间不会自动加分隔符,选项A错误;浮点数的输出格式是“%5.of”表明其小数部分输出0位,即没有输出,所以选项B也是错误的。

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

51.D解析:本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“‖”。自增运算符“++”,出现在变量之前(如题中的++n),表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后(如题中的n++),表示先使用变量的值进行运算,再使变量的值加1。当逻辑与运算符'&&'两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符'‖'左边的运算对象为真时,其值就为真,不用计算其右边的运算对象的值。所以根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时,i的值等于3,所以表达式++j==3成立,即表达式的值为¨由于1与任何数都为进行或(‖)运算,结果都为1,因此k=3;最后计算“&&”之前的表达式,i++是先运算后自加,因此运算时i为1,所以i+==1成立,自加1后i=2。if语句的条件为真即'1',所以输出i、j、k的值分别是2,3,3。

52.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

53.C解析:这是一个逗号表达式,它的值应为表达式y=x+3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。

54.A解析:逻辑与(&&)运算符的功能是:当“&&”运算符两边的运算对象均为1时,整个表达式的值为1,否则为0。因为a=3<b=4,即m=0,所以整个表达式的值为0。

55.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

56.A解析:本题的考查点是while()循环语句。本题首先要注意的是对*y++的运算,由于++和*为同—优先级别,且结合方向为自右向左,因此它相当于*(y++)。由于++在y的右侧是“后加”,因此先对y的原值进行*运算,然后使y的值改变。

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

58.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。

59.A解析:scanf函数中格式控制后面应为变量地址列表,因此选项C和选项D都错误,选项B中“&d”是指针变量d的地址,与题目不符。由题目可知指针变量d中存放的是变量c的地址,所以正确答案为选项A。

60.C解析:在C语言中,一个完整的C语句必须在语句末尾出现分号,分号是C语句的必要组成部分。本题答案为C。

61.A

62.A本题考查的是指向数组的指针。本题中定义了一个字符串数组和指针,并将指针pc指向该数组的首地址,执行输出语句printf(”%c\n”,*(pc+5));。语句中的

*(pc+5)指的就是pc[5]的值,所以最后输出的结果为z。

63.D

\nM(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。

\n

64.B

\n变量m和i声明为局部静态变量,因此第1次调用fun函数后,局部静态变量m和i的值为5和3,第l次调用结束时,它们的值不变,第2次调用时,m和i的初始值分别为5和3,在执行“i+=m+1”后,i的值为9,因此,最终m的值为11。

65.C

66.DD。【解析】软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,使用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。

67.D

68.D本题主要考查if语句的条件表达式。在本题的四个选项中给出了四个不同的条件表达式,题目要求找出其中一个意思与其他三个不同的表达式。

选项A的表达式k%2的功能是对变量k进行取余运算,如果运算结果为假,表示变量k能被2整除,如果运算结果为真,表示k不能被2整除。

选项B的表达式k%2==1的功能是对变量k进行取余运算,并判断结果等于1,如果运算结果为假,表示k%2的运算结果为0,即k能被2整除;如果运算结果为真,表示k%2的运算结果为1,即k不能被2整除。

选项C的表达式(k%2)!=0的功能是对变量k进行取余运算,并判断结果不等于0,如果运算结果为假,表示k%2的运算结果0,即k能被2整除;如果运算结果为真,表示k%2的运算结果为1,即k不能被2整除。

选项D的表达式!k%2==1等价于(!k)%2==1,其功能是先对变量k进行逻辑非运算,然后将运算结果对2进行取余运算,再判断其结果是否等于1。这与前面三个选项的意思完全不同,因此本题的正确答案选D。

69.B

\n栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,因此具有记忆作用,栈可以采用顺序存储,也可以采用链式存储。

\n

70.B

71.D

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

\n

72.C本题主要考查栈和队列的基本特性。栈是限定仅在表尾进行插入和删除操作的线性表,而队列则只允许在队尾进行插入操作,在队头进行删除操作。栈对数据元素的操作具有先进后出的特点,而队列对数据元素的操作具有先进先出的特点。

本题要求对栈和队列一起操作,将出栈S的元

温馨提示

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

评论

0/150

提交评论