2021-2022年江西省新余市全国计算机等级考试C语言程序设计_第1页
2021-2022年江西省新余市全国计算机等级考试C语言程序设计_第2页
2021-2022年江西省新余市全国计算机等级考试C语言程序设计_第3页
2021-2022年江西省新余市全国计算机等级考试C语言程序设计_第4页
2021-2022年江西省新余市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年江西省新余市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在面向对象方法中,不属于“对象”基本特点的是A.一致性B.分类性C.多态性D.标识唯一性

2.以下涉及字符串数组、字符指针的程序段中,没有编译错误的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

3.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

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

A.使用三种基本结构构成的程序只能解决简单问题

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

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

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

5.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x一y)(x++):(y++)中的条件表达式(x-y)等价的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)

6.有以下程序:#include<stdio.h>intshow(char*str){while(*str){putchar(*str+1);str++;}return*str+1;}main(){printf(“%d\n”,show(“ABCD”));}程序运行后的输出结果是()。

A.ABCD0B.BCDE0C.BCDE1D.ABCD1

7.下面关于数据库系统中叙述正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

8.

有以下程序:

main

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

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()。

A.i-1B.iC.i+1D.4一i

9.以下选项中非法的表达式是()。

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

10.设栈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

11.数据库的故障恢复一般是由()来执行恢复

A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户

12.若有定义和语句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);则输出结果是()

A.10,10B.10,20C.20,10D.20,20

13.关系数据库的数据及更新操作必须遵循()等完整性规则。

A.实体完整性和参照完整性

B.参照完整性和用户定义的完整性

C.实体完整性和用户定义的完整性

D.实体完整性、参照完整性和用户定义的完整性

14.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是________。

A.23B.26C.33D.36

15.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,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

16.设有定义“intk=0;”,以下选项的4个表达式中与其他3个表达式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

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

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

18.有下列程序:程序执行后的输出结果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0

19.

20.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

二、2.填空题(20题)21.栈中允许进行插入和删除的一端叫做______。

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

23.若x为int类型,请写出与!x等价的C语言表达式______。

24.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

25.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

27.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

29.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

30.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。

31.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}

32.Jackson方法是一种面向【】的结构化方法。

33.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是【】方法。

34.以卜函数sstrcat()的功能是实现宁符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符申为efgh,函数调用后s所指字符串为abcdefgh。请填空。

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=){s++;t++;}

}

35.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

fp=fopen("d1.dat","wb");

for(i=0;i<100;i++)a[i]=i+1;

fwrite(a,sizeof(int),100,fp);

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

for(i=0;i<100;i++)printf("%d\n",b[i]);

}

36.若有如下定义:

intx=2,y=3,z=4;

则表达式!(x=y)||x+z&&y-z的值是【】。

37.软什是程序、数据和______的集合。

38.十进制数111用八位二进制数表示为【】。

39.数据结构包括数据的逻辑结构、数据的【】以及列数据的操作运算。

40.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

2223445666677899101010

删除后,数组中的内容应该是:

2345678910。

请填空。

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

三、1.选择题(20题)41.微机显示器一般有两组引线,它们是()

A.电源线与信号线B.电源线与控制线C.电源线与地线D.控制线与地线

42.在面向对象方法中,实现信息隐蔽是依靠()。

A.对象的继承B.对象的多态C.对象的封装D.对象的分类

43.有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。

A.正整数1~9的累加和B.正整数1~10的累加和C.正整数1~9中奇数之和D.正整数1~10中偶数之和

44.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对

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

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

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

45.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

46.以下scanf函数调用语句中对结构体变量成员的引用不正确的是

structpupil

{charname[20];

intage

intsex;

}pup[5],*p;

p=pup;

A.scanf("%s",pup[0].name);

B.scanf("%d",&pup[0].age);

C.scanf("%dT",&(p->sex));

D.scanf("%d",p->age);

47.若输入12345、abc,程序的输出结果为______。main(){inta;charch;scanf("%3d,%3c",&a,&ch);printf("%d,%c",a,ch);}

A.123,abcB.123,4C.123,aD.12345,abc

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

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

49.执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;

A.8B.7C.6D.5

50.若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

51.下面程序段的运行结果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;pfintf("%d\n",*(p+3));}

A.67B.0C.字符'C'的地址D.字符'C'

52.设intx=10,y=3,z;,以下语句的输出结果是______。printf("%d\n",z=(x%y,x/y));

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

53.下列叙述中错误的是()。

A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

54.以下选项中不属于字符常量的是

A.′C′B.′′C′′C.′\xCC′D.′\072′

55.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}

56.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任意元素a[i][j]在数组中位置的公式为______。

A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1

57.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。

Stmctstu

{inti;

intname;

}st,*p;

p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

58.下列程序执行后的输出结果是voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!”;voidfunc1(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}{inti=0;func1(i);printf("\n");}

A.helloB.helC.hloD.hlm

59.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是

A.startB.endC.startendD.endrt

60.已经定义ch为字符型变量,以下赋值表达式中错误的是______。

A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'

四、选择题(20题)61.若有以下的定义:‘intt[3][2];”,能正确表示t数组元素地址的表达式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

62.

63.有以下程序

64.在下列选项中,没有构成死循环的是

65.

66.一个栈中初始元素依次为A、B、C、D、E。现将元素1、2、3、4、5依次入栈,然后将所有的元素依次出栈,则元素出栈的顺序是

A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA

67.以下程序段

68.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于()。

A.定义阶段B.开发阶段C.维护阶段D.上述三个阶段

69.

70.在数据库管理系统DBMS中,用来定义内模式和外模式等一些数据库管理系统中其他结构的语言为

A.CB.BasicC.DDLD.DML

71.有以下程序

72.有以下程序:

程序的运行结果是()。

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

73.数据流程图(DFD)是()。

A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具

74.在软件开发中,需求分析阶段产生的主要文档是()。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划

75.有以下程序:

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

A.SunDan20044550

B.Penghua20045537

C.LiSiGuo20042580

D.SunDan20041703

76.以下选项中正确的定义语句是()。

77.以下叙述中正确的是(

)。A.C语言中的全部数据类型都是基本类型B.C语言中的全部数据类型都是构造类型C.C语言中的数据类型只有两种,即基本类型和构造类型D.以上都不对

78.

79.有以下程序:

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

A.0B.10C.20D.出错

80.

五、程序改错题(1题)81.已知一个数列从0项开始的前3项为0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数proc的功能是:计算并输出该数列前n项的和sum。n的值通过形参传人。例如,当n=20时,程序的输出结果应为42762.000000。请修改程序中的错误,使它能得到正确结果。注意:不要改动maiil函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}

六、程序设计题(1题)82.

参考答案

1.A对象具有如下特性:标识唯一性、分类性、多态性、封装性、模块独立性。

2.AC语言中,字符指针变量可以直接使用字符串赋值,而字符数组不能直接使用字符串或字符数组赋值,选项B、C、D错误,选项A正确。故本题答案为A选项。

3.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。

4.A使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

5.A条件表达式:x=表达式1,表达式2:表达式3的含义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。在本题中与表达式1:(x-y等价的是(x-y>0)。

6.C函数putchar每次输出一个字符。表达式“*str+1”将对字符加1,因此字符串“ABCD”的每个字符都加1,字符串结束标识‘\\0’也会加1,输出1,结果为BCDE1。故本题答案为C选项。

7.A\n数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据在不同位置出现时应保持相同的值。

\n

8.B

\n本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。

\n

9.A赋值运算符的左边只能是变量,而不能是常量或表达式。

10.D解析:栈是仅在表头和表尾进行插入和删除元素操作的线性表,其特点是“先进后出”。本题中,进栈的过程中可以出栈。选项D中,如果第一个出栈的元素为e3,由于入栈顺序是e1、e2、e3,那么e3出栈后,栈中元素必定有e1和e2,因为e1先入栈,故e1应在e2后出栈,所以选项D是不可能的出栈顺序。

11.CC)【解析】数据库一旦发生故障,需要及时进行故障恢复,并由数据库管理员负责执行故障恢复。

12.D

13.D解析:关系模型中包括关系的数据结构、关系的操纵和关系中的数据约束。关系完整性约束即数据完整性,包括实体完整性、参照完整性和用户自定义完整性。

14.A解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

15.B解析:子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

16.C表达式“++k”是先使得k的值自增1后再使用。表达式“k++”是先取得k的值再将k的值自增1。所以C选项中表达式的值为0,而其他3个选项中表达式的值均为1。故本题答案为C选项。

17.B

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

\n

18.Bif条件表达式“a--‖b--&&--c”使用了逻辑或运算符和逻辑与运算符。因为逻辑与运算符优先级比逻辑或运算符优先级高,所以条件表达式等价于“(a--)‖(b--&&--c)”,自左向右运算,执行“a”,因为a初值为1,所以a--的值为1,执行完后a的值为0;又因为逻辑或运算符的短路原则,当a--的值为1时,条件为真,后面的表达式b--&&--c不执行。程序执行if语句块,输出a、b、c的值为:0,1,1。本题答案为B选项。

19.D

20.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。

21.栈顶栈顶解析:栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。

22.封装封装

23.x==0x==0解析:!x的逻辑意思就是x为非,即x==0。

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

25.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

26.abcfgabcfg解析:本题考查的是字符数组用作函数参数。C语言中数组名可以看作该数组首地址的常量指针、因此可以直接传递给指针类型的参数。本题的主函数调用fun(s,3,strlen(s));后,函数中for循环就是for(i=3;i<strlen(s)-1;i++),即i从3递增到字符数组s的长度-2位置,循环中让s[i]=s[i+2],所以函数fun()实现的功能简单来说就是将字符串s下标为p+2~k范围的字符整体复制到字符串s下标为p~k-2的位置上。在本题中strlen(s)返回s的长度7,所以复制的字符为s[5]~s[7],即'f'、'g','\\0'三个字符,复制到s[3]~s[5],故最终输出的字符串为abcfg(因为s[5]为'\\0',所以后面的字符不会输出)。

27.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。

28.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

29.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。

30.88解析:在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。

31.*ss!='\0'*ss!='\\0'解析:本题考查的是指针的应用。题目要求求出字符串ss中指定字符的个数。分析整个程序,空缺处是检验指针ss是否指向了字符串的末尾,如没有,即执行下面语句,判断指针ss指向的字符是否字符c,若是,i自加1;所以空缺处填入*ss!='\\0',作为循环终止的条件。

32.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。

33.结构化设计结构化设计解析:在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是结构化设计方法。

34.*t*t解析:函数中首先让n=stxlen(s)所以while循环的循环条件表达式中*(s+n)指向字符串s的结束标志'0',处,而该处应该等于字符串t的第1个字符,另外循环体中让s和t指向下一个字符,即s+n和t同时被移动到下一个位置,所以该处应该填*t,即t所指内容.当t指向字符串结束标志'\\0'的时候,整个循环条件表达式的值也为0(“假”)了,循环结束.正好满足将t所指字符串复制到s所指的字符串的尾部。

35.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根据题目要求,在下划线位置应该填入一个能实现二进制读的使用文件方式的参数即可。所以,可以填'rb'或'r+b'或'rb+'。

36.11解析:运算符的优先级次序由高到底是!,算术运算符,&&,||。先运算!(x=y),由于x=3非零,则表达式!(x=y)的值为0。再运算x+z,x+z=3+4=7,非零则运算y-z,y-z=3-4=-1,非零则表达式x+z&&y-z的值为1。0||1=0,则表达式!(x=y)||x+z&&y-z的值是1。

37.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。

38.11011111101111解析:本题通过除2取余法即可求出十进制数111所对应的二进制数1101111。

39.存储结构存储结构解析:数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

40.!=returnj!=,returnj解析:本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。

41.A

42.C解析:通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。

封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,也是面向对象程序设计的基础。

继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。

多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。

经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。正确答案是选项C。

43.D解析:通过for(i=1;i<10;i+=2)可知,i取值为1~10的奇数,即1,3,5,7,9,i+1即为2,4,6,8,10。因此,程序的功能是计算并输出1~10中的偶数之和,s+=i+1就是累加这些偶数。

44.C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。所以选项C)为正确答案。

45.D

46.D解析:考查结构体成员变量的引用方法。可用结构体变量名.数据成员名或者结构体指针->数据成员名两种方法来引用。结构体类型的变量、数组和指针变量的定义。

47.B解析:指定输入数据所占列数之后,系统自动按它截取所需数据,无须分界符。程序中指定整型变量a占3列,输入12345、abc后,系统自动将数据前3列123赋给变量a,而剩余的数据则根据具体情况赋给其他变量或作为多余数据处理。因程序中还需对字符变量ch输入数据,虽然指定输入3列字符,但字符型数据只能有一个字符,因此把剩余的“45、abc”中第1个数据4赋给变量ch,故正确答案为选项B。

48.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

49.D解析:p为指针数组,其元素分别为指向数组a的4个元素的指针。q为指向指针的指针变量,其初值为指针数组p的首地址。所以:表达式*(p[0]+1)+**(q+2)=*(a+3+1)+**(p+2)即是*(a+4)+*(a+1)=a[5]+a[2]=1+4=5。

50.D解析:函数scanf的地址列表应由变量的地址组成。选项A中虽然&p也为地址,但它是指针变量p的地址,该地址的存储单元中只能存放地址值,不能存放整型数据。选项B中*p相当于变量n,所以不能正确读入数据;选项C不正确,因为n为变量名;选项D中p为指针变量,并且值为变量n的地址,所以选项D能够正确读入数据。D为所选。

51.B解析:先定义了一个指向字符型数组str的指针P,指针P指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\\0',所以*(p+3)=0。

52.D

53.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。

54.B解析:在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量,而选项B)是用双引号括起来的字符,表示一个字符串常量。

55.C解析:switch后的括号中只能是整型或字符型表达式,选项A中使用的是浮点型变量x,故不正确。选项B在switch的括号后面多了一个分号,故也不正确。switch的case标号后只能是常量或常量表达式,而不能是变量,所以选项D也不正确。故应该选择C。

56.D解析:a[i][j]的位置应该是第i+1行,第j+1列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。

57.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式即(*p).i和p->i。

58.C解析:函数调用的一般形式为:

函数名(实参列表)

首先调用函数funcl(0),输出st[0]=h。i值变为2,并调用函数func2(2),输出st[2]=l。i值此时变为4,又调用函数funcl(4),输出st[4]=0。此时i值大于等于3,执行完毕。因此,输出结果为hlo。注意:函数调用的一般格式以及函数的返回值。

59.B解析:本题主要考查的是打开文件函数fopen().题目开始定义了一个函数,该函数有两个字符指针型参数,其作用分别用来传入文件名和文件内容。函数首先定义一个文件指针印,然后使用fopen()函数打开参数fn所指定的文件。本题的关键就在于fopen()函数的第2个参数,这个参数指定了文件打开的方式。'w'表示为写而打开一个文本文件,如果文件不存在,则新建一个文件,否则将清空原有文件。接下来函数使用fputs()函数将参数str中的内容写入文件,最后调用fclose()函数关闭文件。在主函数中两次调用该函数,但写入的是同一个文件,故只有最后一次写入有效。所以应该选择B。

60.A解析:反斜杠字符“\\”赋给字符,应该写成ch='\\\\',所以A是错误的。

61.C数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项C中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。

62.D

63.Afor分别输/klt[2][01,till[1],t[0][2]分别为357,答案选择A)。

64.D本题是考查死循环的含义。在编程中,一个无法靠自身的控制终止的循环称为“死循环”。选项A给出的函数主体是while语句,该语句的循环结束条件是i>100,初始i=100,执行完i=i%100+1语句后,i的值变为1,由于不满足循环结束条件,循环执行while,执行完第二次i=i%100+1语句后,i的值变为2,一直循环执行下去,i的值最大只能达到100,永远不会达到结束条件,故选项A是死循环。选项B是一个for循环,它的一般形式为:for(<初始化>;<条件表达式>;<增量>)语句;for循环中的“初始化”、“条件表达式”和“增量”都是选择项,即可以缺省,但“;”不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其他处理时便成为死循环。省略了增量,则不对循环控制变量进行操作。选项C是一个do-while语句,先执行do语句,然后用while后面的语句进行判断。初始时,k=10000,执行完do语句后,k=10001,满足while里的判断语句k>10000,继续执行do-while,因为k的值一直是增大的,故该循环将一直运行下去。D选项是一个while循环,该循环结束的条件是s<=0,该循环初始时s的值为36,每执行一次while循环,将执行--s操作,当s=0时,循环结束。

65.B

66.D栈是具有后进先出(LIFO)性质的线性表,表尾称为栈顶,表头称为栈底。栈的插入和删除操作都是在栈顶执行的,向栈内插入元素的操作称为入栈,从栈内删除元素的操作称为出栈。题目中所给出的栈的初始状态自栈底到栈顶的元素分别为A,B,C,D,E。此时的栈顶元素为E,向栈内插入元素1,2,3,4,5,插入操作结束时,栈内自栈底到栈顶的元素为A,B,C,D,E,1,2,3,4,5,栈顶元素为5。出栈操作是从栈顶开始的,顺序为5,4,3,2,1,E,D,C,B,A。

67.Aseanf中name得至lJLili,Rum得到l001,所以结果选择A)。

68.B解析:软件生命周期由软件定义、软件开发和软件维护三个阶段组成。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发阶段由5个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。选项B正确。

69.A

70.CC语言是一种计算机程序设计语言,常用的C语言IDE(集成开发环境)有MicrosoftVisualC++、BorlandC++、WatcomC++、BorlandC++Builder、GNUDJGPPC++、Lccwin32CCompiler3.1、HighC、TurboC、C-Free、win-tc等。

Basic是一种计算机高级设计语言,常见的有QuickBasic和VisualBasic。

DDL(DataDescriptionLanguage)是数据库模式定义语言的缩写,是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式定义包含该数据库中所有实体的描述定义,包括结构定义、操作方法定义等。DDL描述的模式必须由计算机软件进行编译,转换为便于计算机存储、查询和操纵的格式。

DML(DataManipulationLanguage)是数据操纵语言的缩写,用户通过它可以实现对数据库的基本操作,如对表中数据的查询、插入、删除和修改。

71.A函数fun的功能是返回字符串数组.,各个字符串第一个字母是T的个数,str数组里有2个,所以选择A)。

72.B本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为”j<=i¨,而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为l。

73.CC。【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。

74.BA项错误,可行性分析阶段产生可行性分析报告。C项错误,概要设计说明书是总体设计阶段产生的文档。D项错误,集成测试计划是在概要设计阶段编写的文档。B项正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。

75.B本题考查的是结构体。本程序将结构体数组s的首地址传递给了结构体指针变量P,并在函数f中改变了指针变量P所指向的第二个结构体中的成员变量,这一改变,也就是改变了主函数中s[1]的成员变量,故程序输出的值为Penghua20045537。

76.AB)选项,定义变量不能连等,C)选项b前没有类型名,D)选项类型名与变量名之间不能有逗号,所以A)正确,其余错误。

77.D在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类

78.D

79.CnlaIloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int。)将此存储空间的地址赋给了一个整型的指针变量P。然后执行语句·P=n,使得·p的值为10,并通过return返回此值,即a的值为l0。然后在主函数中输出a+ftm(10)=10+10=20。

80.B

81.(1)错误:for(k=4;k<n;k++)正确:for(k=4;k<=11;k++)(2)错误:s2=S;正确:s2=s;)【解析】题目中要求计算数列前n项的和,包括第n项,因此“for(k=4;k<n;k++)”中的“k<n”应改为“k<=n”;根据C语言的语法规则,for循环体中的多条语句必须在大括号“{”和“}”之间,因此,要在语句s2=s;后加上)。

82.

2021-2022年江西省新余市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在面向对象方法中,不属于“对象”基本特点的是A.一致性B.分类性C.多态性D.标识唯一性

2.以下涉及字符串数组、字符指针的程序段中,没有编译错误的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

3.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

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

A.使用三种基本结构构成的程序只能解决简单问题

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

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

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

5.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x一y)(x++):(y++)中的条件表达式(x-y)等价的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)

6.有以下程序:#include<stdio.h>intshow(char*str){while(*str){putchar(*str+1);str++;}return*str+1;}main(){printf(“%d\n”,show(“ABCD”));}程序运行后的输出结果是()。

A.ABCD0B.BCDE0C.BCDE1D.ABCD1

7.下面关于数据库系统中叙述正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

8.

有以下程序:

main

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

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()。

A.i-1B.iC.i+1D.4一i

9.以下选项中非法的表达式是()。

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

10.设栈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

11.数据库的故障恢复一般是由()来执行恢复

A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户

12.若有定义和语句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);则输出结果是()

A.10,10B.10,20C.20,10D.20,20

13.关系数据库的数据及更新操作必须遵循()等完整性规则。

A.实体完整性和参照完整性

B.参照完整性和用户定义的完整性

C.实体完整性和用户定义的完整性

D.实体完整性、参照完整性和用户定义的完整性

14.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是________。

A.23B.26C.33D.36

15.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,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

16.设有定义“intk=0;”,以下选项的4个表达式中与其他3个表达式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

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

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

18.有下列程序:程序执行后的输出结果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0

19.

20.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

二、2.填空题(20题)21.栈中允许进行插入和删除的一端叫做______。

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

23.若x为int类型,请写出与!x等价的C语言表达式______。

24.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

25.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

27.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

29.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

30.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。

31.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}

32.Jackson方法是一种面向【】的结构化方法。

33.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。详细设计阶段所采用的是【】方法。

34.以卜函数sstrcat()的功能是实现宁符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符申为efgh,函数调用后s所指字符串为abcdefgh。请填空。

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=){s++;t++;}

}

35.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

fp=fopen("d1.dat","wb");

for(i=0;i<100;i++)a[i]=i+1;

fwrite(a,sizeof(int),100,fp);

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

for(i=0;i<100;i++)printf("%d\n",b[i]);

}

36.若有如下定义:

intx=2,y=3,z=4;

则表达式!(x=y)||x+z&&y-z的值是【】。

37.软什是程序、数据和______的集合。

38.十进制数111用八位二进制数表示为【】。

39.数据结构包括数据的逻辑结构、数据的【】以及列数据的操作运算。

40.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

2223445666677899101010

删除后,数组中的内容应该是:

2345678910。

请填空。

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

三、1.选择题(20题)41.微机显示器一般有两组引线,它们是()

A.电源线与信号线B.电源线与控制线C.电源线与地线D.控制线与地线

42.在面向对象方法中,实现信息隐蔽是依靠()。

A.对象的继承B.对象的多态C.对象的封装D.对象的分类

43.有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。

A.正整数1~9的累加和B.正整数1~10的累加和C.正整数1~9中奇数之和D.正整数1~10中偶数之和

44.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对

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

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

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

45.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

46.以下scanf函数调用语句中对结构体变量成员的引用不正确的是

structpupil

{charname[20];

intage

intsex;

}pup[5],*p;

p=pup;

A.scanf("%s",pup[0].name);

B.scanf("%d",&pup[0].age);

C.scanf("%dT",&(p->sex));

D.scanf("%d",p->age);

47.若输入12345、abc,程序的输出结果为______。main(){inta;charch;scanf("%3d,%3c",&a,&ch);printf("%d,%c",a,ch);}

A.123,abcB.123,4C.123,aD.12345,abc

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

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

49.执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;

A.8B.7C.6D.5

50.若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

51.下面程序段的运行结果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;pfintf("%d\n",*(p+3));}

A.67B.0C.字符'C'的地址D.字符'C'

52.设intx=10,y=3,z;,以下语句的输出结果是______。printf("%d\n",z=(x%y,x/y));

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

53.下列叙述中错误的是()。

A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

54.以下选项中不属于字符常量的是

A.′C′B.′′C′′C.′\xCC′D.′\072′

55.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}

56.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任意元素a[i][j]在数组中位置的公式为______。

A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1

57.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。

Stmctstu

{inti;

intname;

}st,*p;

p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

58.下列程序执行后的输出结果是voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!”;voidfunc1(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}{inti=0;func1(i);printf("\n");}

A.helloB.helC.hloD.hlm

59.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是

A.startB.endC.startendD.endrt

60.已经定义ch为字符型变量,以下赋值表达式中错误的是______。

A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'

四、选择题(20题)61.若有以下的定义:‘intt[3][2];”,能正确表示t数组元素地址的表达式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

62.

63.有以下程序

64.在下列选项中,没有构成死循环的是

65.

66.一个栈中初始元素依次为A、B、C、D、E。现将元素1、2、3、4、5依次入栈,然后将所有的元素依次出栈,则元素出栈的顺序是

A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA

67.以下程序段

68.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于()。

A.定义阶段B.开发阶段C.维护阶段D.上述三个阶段

69.

70.在数据库管理系统DBMS中,用来定义内模式和外模式等一些数据库管理系统中其他结构的语言为

A.CB.BasicC.DDLD.DML

71.有以下程序

72.有以下程序:

程序的运行结果是()。

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

73.数据流程图(DFD)是()。

A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具

74.在软件开发中,需求分析阶段产生的主要文档是()。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划

75.有以下程序:

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

A.SunDan20044550

B.Penghua20045537

C.LiSiGuo20042580

D.SunDan20041703

76.以下选项中正确的定义语句是()。

77.以下叙述中正确的是(

)。A.C语言中的全部数据类型都是基本类型B.C语言中的全部数据类型都是构造类型C.C语言中的数据类型只有两种,即基本类型和构造类型D.以上都不对

78.

79.有以下程序:

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

A.0B.10C.20D.出错

80.

五、程序改错题(1题)81.已知一个数列从0项开始的前3项为0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数proc的功能是:计算并输出该数列前n项的和sum。n的值通过形参传人。例如,当n=20时,程序的输出结果应为42762.000000。请修改程序中的错误,使它能得到正确结果。注意:不要改动

温馨提示

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

评论

0/150

提交评论