2022年黑龙江省伊春市全国计算机等级考试C语言程序设计测试卷(含答案)_第1页
2022年黑龙江省伊春市全国计算机等级考试C语言程序设计测试卷(含答案)_第2页
2022年黑龙江省伊春市全国计算机等级考试C语言程序设计测试卷(含答案)_第3页
2022年黑龙江省伊春市全国计算机等级考试C语言程序设计测试卷(含答案)_第4页
2022年黑龙江省伊春市全国计算机等级考试C语言程序设计测试卷(含答案)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

2022年黑龙江省伊春市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点()。

A.99B.100C.101D.49E.50F.51

2.下列叙述中正确的是()。

A.在switch语句中不一定使用break语句

B.在switch语句中必须使用default语句

C.break语句必须与switch语句中的case配对使用

D.break语句只能用于switch语句

3.若有定义inta=5,b=7;,则表达式a%=(b%2)运算后,a的值为()。

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

4.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的运行结果是()。

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

5.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)当执行程序时,输出的结果是()。A.-1B.1C.4D.0

6.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序执行后输出结果是()。A.n=5B.n=2C.n=3D.n=4

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

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

8.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数是()

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

9.下列程序的输出结果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

10.有以下程序:

A.CDEFB.ABEFC.ABCDD.CDAB

11.

12.有以下程序:#include<stdio.h>#include<string.h>main(){charv[4][10]={“efg”,“abcd”,“mnopq”,“hijkl”},*p[4],*t;inti,j;for(i=0;i<4;i++)p[i]=v[i];for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=p[j];p[j]=t}for(i=0;i<4;i++) printf(“%s”,p[i]);}程序运行后的输出结果是()。

A.efgabcdhijklmnopq

B.abcdefghijklmnopq

C.mnopqhijklefgabcd

D.efgabcdmnopqhijkl

13.下列算法中,()算法用来求图中某顶点到其他顶点所有顶点之间的最短路径。

A.DijkstraB.FloyedC.PrimD.Kruskal

14.表示关系a≤b≤c的C语言表达式为()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

15.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

16.以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

17.下列描述中正确的是______。

A.软件工程只是解决软件项目的管理问题

B.软件工程主要解决软件新产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D.软件工程只是解决软件开发中的技术问题

18.算法能正确地实现预定功能的特性称为算法的()。

A.正确性B.易读性C.健壮性D.高效率

19.两个或两个以上模块之间关联的紧密程度称为()。

A.耦合度

B.内聚度

C.复杂度

D.数据传输特性

20.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。

A.x&&y

B.x<=y

C.x||y+z&&y-z

D.!((x<y)&&!z||1)

二、2.填空题(20题)21.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

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

inti=9;

printf("%o\n",i);

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

#include<stdio,h>

main()

{inta,b,c;

a=10;b:20;c=(a%b<1)‖(a/b>1);

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

}

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

#include<stdio,h>

#include<string,h>

main()

{charch[]="abc".,x[3][4]:inti:

for(i=0;i<3:i++)strcpy(x[i],ch):

for(i=0;i<3:i++)printf("%s",&x[i][i]);

printf("\n")

}

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

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

26.以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

27.下列程序的运行结果是【】。

main()

{inti;

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

f(i);}

f(j)

{intj;

staticinta=1000;

autointk=1;

++k;

printf("%d+%d+%d=%d\n",a,k,j,a+k+j);

a+=10;}

28.有如下程序段:

main(intargc,char*argv[])

{intn,i=0;

while(argv[1][i]!='\0')

{n=fun();i++;}

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

}

intfun()

{staticints=0;

s+=1;

returns;

}

假设程序经编译、连接后生成可执行文件exam,exe,若键入如下命令行:

examl23<回车>

则运行结果为【】。

29.己定义charch='$';inti=l,j;,执行j=!ch&&ii++以后,i的值为【】。

30.以下程序运行结果是【】。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)return(2);

p=x*func(x-1);

return(p);}

main()

{printf("%d\n",func(4));}

31.函数mystrlen(char*s)的功能是求字符串s的长度,请填空。

mystrlen(char*s)

{char*t:

t=s;

while(【】)t++;

return(t-s);

}

32.在面向对象方法中,类之间共享属性和方法的机制称为______。

33.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

34.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

35.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

36.设有以下定义和语句:

inta[3][2]={1,2,3,4,5},*p[3];

p[0]=a[1];

则*(p[0]+1)所代表的数组元素是【】。

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

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

#include<stdio.h>

main()

{inta=1,b=7;

do{

b=b/2;a+=b;

}while(b>1);

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

}

39.有以下程序:

#include<stdio.h>

main()

{intt=1,i=5;

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

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

}

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

40.若有定义:intk;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

三、1.选择题(20题)41.设定义下列结构体,结构体变量p的出生年份赋值正确的语句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;

A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;

42.有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,i=0;while(i++<7)if(p[i]%2)j+=p[i];printf(”%dn",j);}程序运行后的输出结果是______。

A.42B.45C.56D.60

43.以下程序的输出结果是()。#include<stdio.h>intfun(intn,int*s){intf1,f2;if(n==0||n==1)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=f1+f2;}}voidmain(){intx;fun(6,&x);printf("\n%d",x);}

A.7B.13C.9D.10

44.下列司用于C语言用户标识符的一组是______。

A.voiddefineWORD

B.a3_b3_123Car

C.For_abcIFCase

D.2aDOsizeof

45.能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是______。

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=0

46.运行下列程序,若从键盘输入字母“a”,则输出结果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

47.有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序执行后输出结果是

A.n=5B.n=2C.n=3D.n=4

48.若a、b、c、d都是int型变量且都已经正确赋初值,则下列不正确的赋值语句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

49.字符串"\\\"ABCDEF\"\\"的长度是()。

A.15B.10C.7D.8

50.设有如下定义,则执行表达式(nFa>b)&&(n=c>d)后,n的值为______。inta=1,b=2,c=3,d=4,m=2,n=2;

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

51.若有以下定义: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;

52.一个良好的算法由下面的基本结构组成,但不包括______。

A.顺序结构B.选择结构C.循环结构D.跳转结构

53.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。

#include<stdio.h>

main()

{chars1[]="chinese",s2[]="japnese";

inti;

for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

______,

}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

54.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是

A.a^bB.a|bC.a&bD.a<<4

55.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

56.有程序:longfib(intn){if(n<2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%d\n",fib(3));}该程序的输出结果是()

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

57.下列程序的运行结果是()。voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}

A.63B.36C.编译出错D.00

58.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

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

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

60.判断字符串s1是否大于字符串s2,应该使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

四、选择题(20题)61.

62.下列不属于C语言关键字的是()。A.A.default

B.register

C.enum

D.external

63.为了提高软件的独立性,模块之间最好是()。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合

64.

设变量已正确定义,则以下能正确计算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

65.若有定义语句:“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。A.1.9B.1C.2D.2.4

66.

67.

68.以下程序爱中,与语句:69.有以下程序

prt(int*m,intn)

{

inti;

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

m[i]++;

}

main()

{

inta[]={1,2,3,4,5},i;

prt(a,5);

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

printf("%d,",a[i]);

}

程序运行后的输出结果是A.A.1,2,3,4,5,

B.3,4,5,6,7,

C.2,3,4,5,6,

D.2,3,4,5,1,

70.若有定义“intb[8],*p=b;”,则p+6表示()。

A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[o]的值加上6

71.在Internet中,域名服务器的主要功能是实现()的转换。

A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问

72.以下叙述中错误的是()。A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.c语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

73.

有以下程序:

main

{inta=0,b=l0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

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

}

程序输出()。

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错

74.

75.下列叙述中正确的是()。A.顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

76.在C程序中有如下语句:char*func(intx,inty);它是()。

A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的

77.下列可用于C语言用户标识符的一组是

A.void,define,WORDB.a3_b3,_123,Car

C.For,-abc,CaseD.2a,DO,sizeof

78.设有图书(图书编号,书名,第一作者,出版社.、读者(借书证号,姓名,单位,职称.和借阅(借书证号,图书编号,借书日期,还书日期.三张表,则表借阅的关键字(键或码.为()。

A.借书证号,图书编号

B.图书编号,借书日期

C.借书日期,还书日期

D.借书证号,借书日期

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

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

A.自然连接B.差C.交D.并

80.

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是计算正整数m各位上数字的平方和。 例如,输入498,则输出应该是161。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> longproc(10ngm) {//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum); } voidmain {longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n)); }六、程序设计题(1题)82.编写fun()函数,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。

yn+1=cos(yn)

迭代步骤如下:

(1)取y1初值为0.0;

(2)y0=y1,把y1的值赋给y0;

(3)y1=cos(y0),求出一个新的y1;

(4)若y0=y1的绝对值小于0.000001,则执行步骤

(5),否则执行步骤(2);

(5)所求y1就是方程COS(y)-y=0的一个实根,作为函数值返回。

程序将输出结果Result=0.739085。

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

部分源程序给出如下。

试题程序:

参考答案

1.A

2.Adefault语句在switch语句中可以省略,所以B选项错误;switch语句中并非每个case后都需要使用break语句,所以C选项错误;break语句还可以用于for等循环结构中,所以D选项错误。故本题答案为A选项。

3.A解析:本题考查'%'运算符的使用。运算符'%'要求两个运算对象都为整型,其结果是整数除法的余数。本题中表达式ao%=(b%2)等价于a=a%o(b%2)=5%(7%2)=5%1=0。

4.C该程序中“int*p1=&a,*p2=&b,*p=&c;”定义了3个指针变量,并赋值。指针变量p1指向a,p2指向b,p指向c。执行“*p=*p1*(*p2);”语句,给p所指的存储单元c赋值。p1所指的存储单元的值,与p2所指的存储单元b的值相乘,也就是c=a*b,等价于c=1*3=3。故本题答案为C选项。

5.A本题考查do-while循环。当--y是0(即y是o)时结束循环,输出--y,先将y的值减1再输出Y的值。

6.Dcontinue语句的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。

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

8.B

9.A本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。

10.A在函数funl()之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl()之内定义了两个变量a和b,并且分别初始化为字符ˊCˊ和ˊDˊ。

11.C

12.Bmain函数中定义一个二维数组v,另外还定义一个指针数组p。通过for循环,将v的各个行(字符串的首地址)赋给P的对应下标的元素。然后通过嵌套的for循环,为该二维数组中存放的各个字符串进行排序。strcmp函数返回值大于0时(p[i]>p[j])交换两个字符串,所以每一轮内嵌的for循环,都将下标为i的字符串放在最终的排序位置上,即排序规则是按字符串升序排列。字符串排序时,是将两个字符串自左向右逐个字符比较(按字符的ASCII值大小),直到出现不同的字符或遇到‘\\0’为止。排序后,再将v中各个排序后的字符串输出。所以程序输出结果为:abcdefghijklmnopq。故本题答案为B选项。

13.A

14.A解析:本题考查逻辑与运算符&&。在C语言中使用运算符“&&”连接两个表达式,也可以表示逻辑与运算符。在C语言中不允许出现a<=b<=c这种格式。

15.A函数fgete()从文件读入一个字符到指定变量。函数fputc()将指定字符写入审文件中,函数fprinff(),fwrite()均是写入文件操作函数。因此选项B,c。D错误。答案为A选项。

16.C解析:本题考查按位与“&”。因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

17.C解析:软件工程是解决软件项目的管理、软件开发过程中的技术、软件产品的生产率等问题,它的主要思想是强调在软件开发过程中需要应用工程化原则。

18.A

19.A解析:本题考核模块独立性的评价。评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确答案为选项A);二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。

20.D解析:本题考查逻辑运算符的使用。当“&&”的两个运算对象都足逻辑1时,表达式才返回值是1;当“||”的两个运算对象至少有一个是逻辑1时,表达式返回值是1。选项A)中,x和y都是逻辑1,所以返回值是1;选项B)中,x=4<=y=6为逻辑1,所以返回值是1;选项C)中,y+z的值等于14,非0,y-z的值为-2,非0,所以逻辑表达式4||14&&-2的值不为0;选项D)中,x<y为1,!z为0,1&&0为1,0||为1,因此,!1为0。

21.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

22.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。

23.1020010200解析:程序中(a%b<1)||(a/b>1)的运算顺序为先算括号→算术运算符→关系运算符→逻辑运算符。首先计算a%b=10,a/b=0,因为a%b<1为假(0),a/b>1也为假(0),所以整个表达式的结果为假(0),最后输出a,b,c的值为10200。

24.abcbccabcbcc解析:for循环用strcpy函数将字符数组ch的值'abc',分别复制给二维数组x的每一行,然后通过for循环先后打印出以x[0][0],x[1][1],x[2][2]开头的字符串'abe','bc','c',所以输出结果为:abcbcc。

25.21

26.6262解析:本题考查的是宏定义。带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为:6+8*6+8,代入i,j的值得到62。

27.100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147100+2+1=103\r\n110+2+2=114\r\n120+2+3=125\r\n130+2+4=136\r\n140+2+5=147解析:静态局部变量的生存期为整个程序的运行期间,而作用域为定义该变量的函数或局部范围。自动变量的建立和撤销都是由系统自动进行的,所以称为自动变量。自动变量的作用域和生存期都为定义它的局部范围内。对同一函数的两次调用之间,自动变量的值是不保留的。而静态变量则保留。注意:局部变量和全局变量的定义及其作用范围。

28.66解析:本题中命令行输入2个符号串,所以argc=2,argv[0]指向符号串'exam',argv[1]指向符号串'123',while循环的作用是计算argv[1]所指向的字符串的长度,执行完while循环后n=3,所以n*argc=3×2=6。

29.11解析:本题中的ch是一个字符变量,其初始值为'$'(非0值即为真),所以!ch的结果为假,此时&&右边的i++被“短路”,即不会被计算。由此可见,i的值不会改变,故本题应该填1。

30.4848解析:本题主要考查的是函数的递归调用,递归的终止条件是x==0或x==1,然后用已知值逐步递推向上求未知值,直到得到最终的结果。

func(4)=4*func(3);

func(3)=3*func(2);

func(2)=2*func(1);

func(1)=2;

所以func(2)=2*2=4;

func(3)=3*4=12;

fune(4)=4*12=48。

31.*t*t解析:通过while循环扫描字符串,遇到字符‘\\0’结束,并用t统计字符串的长度。

32.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

33.外模式外模式解析:数据库系统的三级模式分别是内模式、概念模式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法;概念模式是数据库系统中全局数据逻辑结构的描述;外模式是用户的数据视图,也就是用户所见到的数据模式。

34.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

35.概念(或概念级)概念(或概念级)

36.a[1][1]a[1][1]解析:p是一个指针数组,p[0]指向数组a[1][0]。*(p[0]+1)代表数组a[1][1]。

37.3131解析:在函数调用时,形参值和改变,不会改变实参的值。

38.55解析:该程序考查do-while循环。循环共进行两次。第一次循环b=3,a=4;第二次循环b=1,a=5。输出a的值为5。

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

40.本题主要考查for循环语句。for循环的增量表达式为逗号表达式,相当于k+=2;,即每次循环后k增加2。第一次循环时,k=2,因此输出##2;第二次循环时k=4,输出##4。此后k=6,不满足循环条件。\r\n\r\n

41.C解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

42.B解析:由循环语句“while(i++<7)if(p[i]%2)j+=P[i];”可知,当“p[i]%2”为真,也就是非0时,累加p[i]d到j上。而“p[i]%2”非0,也就是P[i]为奇数,因此循环是累加数组P[i]={11,12,13,14,15.16,17,18}中,除11外的奇数到j上,输出结果应该是:13+15+17=45。

43.B解析:n=0或n=1是递归的终止条件。然后利用已知值逐步递推求出未知值。注意:通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。

44.B解析:C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,所以排除C和D。C语言坯规定标识符不能为C语言的关键字,从而选项A(void是关键字)是错误的。

45.D解析:逻辑运算符“||”表示或的意思。

46.C解析:首先,getchar函数通过键盘读入字符'a',即c='a',(其实c得到的是字符a的ASCII码值),然后判断if语句的控制条件,发现'a'>='a'&&'a'<='g'成立,则执行下一步列的语句,c=c+4,c得到的是字符e的ASCII码值,退出if语句,通过putchar函数输出字符e。

47.D解析:do…while的结构形式为:do循环体,while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环。由于if(3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4。

48.A解析:C语言规定,赋值号的右边可以是一个赋值表达式.因此选项C)、选项D)正确:在选项B)中,a++是一个自加1的表达式,a被重新赋值,因此它是一个合法的赋值表达式:选项A)中,a+d是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。

49.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。

50.B

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

52.D解析:1966年,Bohra和Jacopini提出了以下三种结构,用这三咱基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。

53.C解析:putchar(s)的功能是把字符s输出到标准输出设备:puts(s1)是把s1指向的字符串输出到标准输出设备。

54.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。

55.C解析:本题中首先定义一个整型变量a并给它赋初值为3,在表达式中,从右开始执行,即先执行“a-=a*a;”等价于a=a-a*a即a=3-3*3=-6,此时a的值为-6,接着执行“a+=a-;”相当于执行a=a+a即a=-6+(-6)=-12,此时a的值为-12。所以,4个选项中选项C符合题意。

56.B

57.B解析:在C语言中,调用函数时是将实参复制一份给形参,所以无论怎么改变形参的值,都不会影响到实参,即传值调用。即使形参是指针变量,也没有改变C语言传值调用这个事实,实参指针也还是复制了一份给形参指针,无论怎么改变形参指针的内容(注意:不是形参指针所指向的内容),也不会影响实参指针的内容。但它们两个现在的值一样,即指向的是同一个内存地址,所以改变形参指针所指向的内容,也就改变了实参指针所指向的内容,C语言就是这样实现传址调用的。本题中fun()函数的形参就是两个指针,但函数中没有任何语句改变这两个指针所指向的内容,只是交换了两个参数的内容,所以该函数不会对传递给它的实参以及实参所指向的内容造成任何影响,故a,b初始化时为3,6,输出结果亦为3和6。应该选择B。

58.D本题主要考查软件的测试。软件测试的主要目的体现在下面几个方面。

(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

软件测试的效率是指利用更少的成本创造更多的价值,提供软件测试效率的方法有很多,如制定一个合理的详细的测试计划,了解测试项目的业务需求,集中对付那些错误群集的程序等。而选项A所描述的随机选取测试数据是不能保证提高测试效率的,选项B描述的取一切可能的输入数据作为测试数据显然不能提高测试效率,反而使工作量加大,降低测试效率。

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

60.C解析:本题考查字符串比较函数strcmp()。调用形式:strcmp(s1,s2),其中s1、s2分别是字符串存储区的首地址。函数功能:比较字符串str1和str2,当str1<str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数(注意:不能使用关系运算符比较两个字符串的大小)。

61.B

62.Dregister声明寄存器变量enum声明枚举类型default开关语句中的“其他”分支

63.D在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。

64.D由i"11的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!一0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n-1),最后计算得到f=(n-1

温馨提示

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

评论

0/150

提交评论