二级C真题 +答案.docx

上传人:b****6 文档编号:3330482 上传时间:2022-11-21 格式:DOCX 页数:15 大小:21.24KB
下载 相关 举报
二级C真题 +答案.docx_第1页
第1页 / 共15页
二级C真题 +答案.docx_第2页
第2页 / 共15页
二级C真题 +答案.docx_第3页
第3页 / 共15页
二级C真题 +答案.docx_第4页
第4页 / 共15页
二级C真题 +答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

二级C真题 +答案.docx

《二级C真题 +答案.docx》由会员分享,可在线阅读,更多相关《二级C真题 +答案.docx(15页珍藏版)》请在冰豆网上搜索。

二级C真题 +答案.docx

二级C真题+答案

真题第一套

一、选择题

(1)下列叙述中正确的题()

A、算法的空间复杂度与算法所处理的数据存储空间有关

B、算法的空间复杂度是指算法程序控制结构的复杂程度

C、算法的空间复杂度是指算法程序中指令的条数

D、压缩数据存储空间不会降低算法的空间复杂度//A

(2)下列各组排序法中,最坏情况下比较次数相同的是()

A、希尔排序与堆排序B、简单插入排序与希尔排序

C、简单选择排序与堆排序D、冒泡排序与快速排序//D

(3)设栈的存储空间为S(1:

50),初始状态为top=50。

现经过一系列正常的入栈与退栈操作后,top=20,则栈中的元素个数为()

A、31B、30C、21D、20//A

(4)某二叉树共有400个结点,其中有100个度为1的结点,则该二叉树中的叶子结点数为()

A、149B、150C、151D、不存在这样的二叉树//D

(5)下面属于“类-对象”主要特征的是()

A、对象一致性B、对象无关性C、类的多态性D、类的依赖性//C

(6)下面不属于需求分析阶段工作的是()

A、需求获取B、可行性研究

C、需求分析D、撰写软件需求规格说明书//B

(7)软件生命周期是指()//D

A、软件的需求分析、设计与实现B、软件的开发与管理

C、软件的实现和维护D、软件产品从提出、实现、使用维护到停止使用退役的过程

(8)在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()

A、内模式B、用户模式C、外模式D、概念模式//D

(9)大学中每个年级有多个班,每个班有多名学生,则实体班级和实体学生之间的联系是()

A、一对多B、一对一C、多对一D、多对多//A

(10)有3个关系R、S和T如下:

RS

A

B

C

a

1

n

b

2

m

c

3

f

d

5

e

A

D

c

4

a

5

e

7

A

B

C

D

A

B

C

D

c

3

f

4

a

1

n

5

T

则由关系R、S得到关系T的操作是()//C

A、交B、投影C、自然连接D、并

(11)以下选项中,合法的C语言常量是()//A

A、1.234B、‘C++’C、“\2.0”D、2Kb

(12)有以下程序:

#include

{ints,t,A=10;

doubleB=6;

s=sizeof(A);

t=sizeof(B);

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

}

在VC6平台上编译运行,程序运行后的输出结果是()

A、4,8B、4,4C、2,4D、10,6//A

(13)关于程序模块化,以下叙述错误的是()//A

A、程序模块化可以提高程序运行的效率B、程序模块化可以提高程序编制的效率

C、程序模块化可以提高程序代码复用率D、程序模块化可以提高调试程序的效率

(14)以下选项中不能在C语言程序中用作用户标识符的是()//A

A、autoB、scanfC、FloatD、_3_14

(15)设有语句:

printf("%2d\n",2010);则以下叙述正确的是()//A

A、程序运行时输出2010B、程序运行时输出20

C、程序运行时输出10D、指定的输出宽度不够,编译出错

(16)以下不属于C语言整型常量的是()//B

A、0LB、-018C、0XaD、200U

(17)有以下程序:

#include

main()

{intx=1,y=0;

if(!

x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

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

}

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

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

(18)若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是()

A、a<>b+cB、ch=getchar()C、a==b+cD、a++//A

(19)有以下程序:

#include

main()

{inta=0,b=0;

for(;a<7;a++)

{if(a%2==0)continue;

b+=a;

continue;

}

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

}

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

A、0B、4C、1D、9//D

(20)有以下程序:

#include

main()

{chara='5',b;

a++;

printf("%d,%d\n",a-'5'+255,b=a-'5');

}

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

A、256,1B、1,256C、255,1D、256,0//A

(21)有以下程序:

#include

main()

{inta=7,b=0;

do{b+=a;a-=1;}while(a--);

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

}

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

A、28,0B、28,1C、16,0D、16,-1//D

(22)有以下程序:

#include

main()

{intx,a=1,b=1;

while

(1)

{scanf("%d",&x);

if(x>0){a*=x;break;}

if(x<0){b*=x;continue;}

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

}

}

程序运行时输入:

-1-2012<回车>,则输出结果是()

A、1,2B、2,2C、-1,1D、-2,1//A

(23)有以下程序:

#include

#defineN4

voidfun(inta[][N],intb[])

{inti;

for(i=0;i

}

main()

{intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;

fun(x,y);

for(i=0;i

printf("%d\n",y[i]);printf("\n");

}

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

A、-3,-1,1,3B、-12,-3,0,0C、0,1,2,3D、-3,-3,-3,-3

(24)有以下程序:

#include

main()

{intx[3][2]={0},i;

for(i=0;i<3;i++)scanf("%d",x[i]);

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);

}

程序运行时输入:

246<回车>,则输出结果是()//D

A、246B、200C、240D、204

(25)有以下程序:

#include

intm1(intx,inty)

{if(x<=y)return2*x+1;

elsereturny;

}

intm2(intx,inty)

{if(x<=y)return2*y+1;

elsereturnx;

}

main()

{inti,t1=10,t2=0;

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

{t1=m1(i,t1);t2=m2(i,t2);}

printf("t1=%dt2=%d\n",t1,t2);

}

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

A、t1=9t2=4B、t1=4t2=9C、t1=9t2=9D、t1=1t2=4

(26)有以下程序:

#include

voidf(int);

main()

{voidf(int);

f(5);

}

voidf(intn)

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

以下叙述中错误的是()//A

A、f函数中不可以出现return语句B、在主函数中,f(5);可以正确调用f函数

C、在主函数后的其他函数可以正确调用f函数D、f函数无返回值,应当定义成void类型

(27)有以下程序:

#include

main()

{inti=3,j=5,*p=&i,*q=&j,**r;

r=&q;

printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,**r);

}

程序运行后输出结果是()//A

A、3,5,3,5,5B、5,3,5,3,5C、3,5,3,5,3D、3,5,3,3,5

(28)以下不能使指针s所指存储单元的值增1的选项是()//C

A、(*s)++;B、*s=*s+1;C、*s++;D、++*s

(29)以下语句中存在语法错误的是()//A

A、charss[6][20];ss[1]="right";B、charss[][20]={"right?

"};

C、char*ss[6];ss[1]="right?

";D、char*ss[]={"right?

"};

(30)有以下程序:

#include

intfun()

{staticintx=1;

x*=2;

returnx;

}

main()

{inti,s=1;

for(i=1;i<=3;i++)s*=fun();

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

}

程序运行后输出结果是()//D

A、30B、10C、0D、64

(31)有以下程序(字符a的ASCII码值为97):

main()

{

char*s={"abc"};

do{printf("%d",*s%10);++s;}while(*s);}

程序运行后输出结果是()//B

A、abcB、789C、7890D、979899

(32)有以下程序:

#include

#include

main()

{

inti,len;

charb[]="WelcomeyoutoBeijing!

";

len=strlen(b);

for(i=0;i

if(b[i]=='')

{strcpy(b,b+i+1);i=0;}

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

}

程序运行后输出结果是()//A

A、Beijing!

B、toBeijing!

C、WelcomeyoutoBeijing!

D、youtoBeijing!

(33)以下关于字符串处理的叙述正确的是()//A

A、进行字符串复制时,目的串的存储空间必须足够大

B、两个字符串进行比较时,短的一个必定比长的一个小

C、计算一个字符串的长度时,应包含串尾的结束标志

D、两个字符串连接时,对存储空间的大小没有要求

(34)有以下程序:

//A

#include

doublefun(intn)

{

staticdoublef=1;

f*=n;

returnf;

}

main()

{

inti;

doubles=0;

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

s+=fun(i);

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

}

程序计算的是()

A、s=1!

+2!

+3!

+4!

+5!

B、s=1+2+3+4+5

C、s=1*2*3*4*5D、s=1!

*2!

*3!

*4!

*5!

(35)下面结构体的定义语句中,错误的是()//A

A、structord{intx;inty;intz;}structorda;B、structord{intx;inty;intz;};structorda;

C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;

(36)有以下程序:

#include

main()

{FILE*fp;inta[10]={1,2,3},i,n;

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

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

fprintf(fp,"\n");

fclose(fp);

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

fscanf(fp,"%d",&n);

fclose(fp);

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

}

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

A、123B、12300C、1D、321

(37)有以下程序:

#include

#defineMUL1(x,y)x*y

#defineMUL2(x,y)(x)*(y)

#defineMUL3(x,y)(x*y)

main()

{intm=2,n=3;

printf("%d,%d,%d\n",MUL1(m,m+n)*2,MUL2(m,m+n)*2,MUL3(m,m+n)*2);}

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

A、10,20,14B、20,20,20C、10,10,10D、14,14,14

(38)有以下程序:

#include

voidfun(inta)

{

if(a>1)fun(a-1);

printf("%d",a);

}

main()

{intq=5;fun(q);printf("\n");}

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

A、12345B、54321C、012345D、543210

(39)以下关于C语言文件的叙述中正确的是()

A、文件由数据序列组成,其类型可以为二进制文件或文本文件

B、文件由记录序列组成,其类型可以为二进制文件或文本文件

C、文件由字符序列组成,其类型可以为二进制文件或文本文件

D、文件由数据序列组成,其类型只能是二进制文件

(40)设有定义和语句(假设shortint型数据占2字节)

shortint*pi,*pj;

pi=pj=(short*)malloc

(2);

则以下叙述正确的是()

A、pi和pj指向了同一个shortint型存储单元

B、pi和pj指向了2个连续的shortint型存储单元的首地址

C、pi和pj分别指向了一个shortint型存储单元

D、pi和pj分别指向了2个shortint型存储单元

二程序填空题

函数fun的功能是:

将一副扑克牌编号为1,2,3,......53,54,以某种特定的方式洗牌,这种方式是将这幅牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,如第一次这样洗牌后的结果为:

1,28,2,29,......53,27,54.两次洗牌后的结果为:

1,41,28,15,2,42...53,40,27,14,54.

程序的功能是:

输出经过n次这样洗牌后的结果。

请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

试题程序:

#include

voidfun(inta[55],intn)

{inti,k;

/********************found**********************/

int【1】[55];

for(i=0;i

{for(k=1;k<=27;k++)

{b[2*k-1]=a[k];

/********************found**********************/

b[【2】*k]=a[k+27];

}

for(k=1;k<=54;k++)

/********************found**********************/

a[k]=【3】;

}

}

main()

{intm,a[55],i;

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

a[i]=i;

printf("请输入洗牌次数:

");

scanf("%d",&m);

fun(a,m);

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

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

printf("\n");}

三程序修改题

给定程序MODI1.C中,函数fun的功能是:

判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。

若是,则输出所有可能的序列,否则输出“不能分解”。

例如:

当输入100时,输出:

100=9+10+11+12+13+14+15+16

100=18+19+20+21+22

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:

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

试题程序:

#include

voidfun(intn)

{intj,b,c,m,flag=0;

for(b=1;b<=n/2;b++)

{

/********************found**********************/

n=m;c=b;

while(m!

=0&&m>=c)

{

/********************found**********************/

m=m-c;c++}

/********************found**********************/

if(m!

=0)

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

for(j=b;j

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

flag=1;

}

}

if(flag==0)

printf("不能分解\n");

}

main()

{intn;

printf("请输入一个整数:

");

scanf("%d",&n);

fun(n);

}

四程序设计题

请编写函数fun,其功能是:

判断t所指字符串中的字母是否连续递增字母序列组成(字符串长度大于等于2)。

例如字符串:

uvwxyz满足要求;而字符串:

uvxwyz不满足要求。

注意:

部分源程序存放在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。

试题程序:

#include

#include

voidNONO();

intfun(char*t)

{

}

main()

{chars[26];

printf("请输入一个字母组成的字符串:

");get(s);

if(fun(s))printf("%s是由连续字母组成的字符串.\n",s);

elseprintf("%s不是由连续字母组成的字符串.\n",s);

NONO();

}

voidNONO()

{

FILE*fp,*wf;

inti;

chars[26],*p;

fp=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

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

{fgets(s,26,fp);

p=strchr(s,'\n');

if(p)*p=0;

if(fun(s))fprintf(wf,"%s\n",s+2);

elsefprintf(wf,"%s\n",strrev(s));

}

fclose(fp);

fclose(wf);

}

 

intfun(char*t)

{intlen=strlen(t);

if(len<2)

{return0;}

charbefore_ch=t[0];

charcurrent_ch;

intflag=1;

for(inti=1;t[i]!

=’\0’;++i)

{current_ch=t[i];

if(before_ch!

=current_ch-1)

{flag=0;

Break;

}

before_ch=current_ch;

}

Returnflag;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1