二级C语言真题2真题无答案.docx

上传人:b****1 文档编号:10346942 上传时间:2023-05-25 格式:DOCX 页数:20 大小:27.90KB
下载 相关 举报
二级C语言真题2真题无答案.docx_第1页
第1页 / 共20页
二级C语言真题2真题无答案.docx_第2页
第2页 / 共20页
二级C语言真题2真题无答案.docx_第3页
第3页 / 共20页
二级C语言真题2真题无答案.docx_第4页
第4页 / 共20页
二级C语言真题2真题无答案.docx_第5页
第5页 / 共20页
二级C语言真题2真题无答案.docx_第6页
第6页 / 共20页
二级C语言真题2真题无答案.docx_第7页
第7页 / 共20页
二级C语言真题2真题无答案.docx_第8页
第8页 / 共20页
二级C语言真题2真题无答案.docx_第9页
第9页 / 共20页
二级C语言真题2真题无答案.docx_第10页
第10页 / 共20页
二级C语言真题2真题无答案.docx_第11页
第11页 / 共20页
二级C语言真题2真题无答案.docx_第12页
第12页 / 共20页
二级C语言真题2真题无答案.docx_第13页
第13页 / 共20页
二级C语言真题2真题无答案.docx_第14页
第14页 / 共20页
二级C语言真题2真题无答案.docx_第15页
第15页 / 共20页
二级C语言真题2真题无答案.docx_第16页
第16页 / 共20页
二级C语言真题2真题无答案.docx_第17页
第17页 / 共20页
二级C语言真题2真题无答案.docx_第18页
第18页 / 共20页
二级C语言真题2真题无答案.docx_第19页
第19页 / 共20页
二级C语言真题2真题无答案.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

二级C语言真题2真题无答案.docx

《二级C语言真题2真题无答案.docx》由会员分享,可在线阅读,更多相关《二级C语言真题2真题无答案.docx(20页珍藏版)》请在冰点文库上搜索。

二级C语言真题2真题无答案.docx

二级C语言真题2真题无答案

二级C语言真题2017年09月-

(2)

(总分100,考试时间90分钟)

一、选择题

1.下列叙述中错误的是______。

A.向量是线性结构

B.非空线性结构中只有一个根节点没有前件

C.非空线性结构中只有一个终节点没有后件

D.只有一个根节点和一个叶子节点的结构必定是线性结构

2.设顺序表的长度为40,对该表进行冒泡排序。

在最坏情况下需要的比较次数为______。

A.820B.780

C.40D.41

3.设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。

则后序序列为______。

A.DGHEBIJFCAB.JIHGFEDCBA

C.GHIJDEFBCAD.ABCDEFGHIJ

4.设表的长度为n。

在下列算法中,最坏情况下时间复杂度最高的是______。

A.堆排序B.希尔排序

C.有序链表查找D.循环链表中寻找最大项

5.数据流图(DFD)中的有向箭头(→)表示______。

A.控制流B.数据流

C.输入流D.输出流

6.下面不属于结构化程序设计风格的是______。

A.程序结构良好B.程序的易读性

C.不滥用goto语句D.程序的执行效率

7.软件测试的目的是______。

A.避免程序中的错误B.修改程序中的错误

C.发现程序中的错误D.发现和修改程序中的错误

8.能够减少相同数据重复存储的是______。

A.记录B.字段

C.文件D.数据库

9.数据库管理系统(DBMS)是______。

A.系统软件B.硬件系统

C.一个完整的数据库应用系统D.既包括硬件也包括软件的系统

10.在关系模式A(S,SN,D)和B(D,CN,NM)中,关系A的主键是S,关系B的主键是D,则属性D在关系A中称为______。

A.超键B.主键

C.候选键D.外键

11.以下叙述正确的是______。

A.C程序的执行是从源文件的开头,一行一行向下执行,每行都会被执行到

B.对于只包含表达式语句的程序段,执行顺序与书写顺序一致

C.C程序的执行一定是从主函数开始,从主函数结束

D.每个C源文件都应当有一个主函数

12.以下选项中不是C语言数据类型的是______。

A.intB.float

C.charD.string

13.若有如下定义和语句:

doublex=1.5;

x++;

则以下叙述中正确的是______。

A.变量x经自增1运算后的值是2.5

B.x是实型变量,不可以做自增1运算

C.变量x经自增1运算后的值是1.6

D.变量x经自增1运算后的值是2.0

14.若有程序段:

inta,b;chard;

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

若想把12输入给变量a,字符"k"输入给变量d,34输入给变量b,程序运行时正确的输入是______。

A.12"k"34B.12k34

C.12k34D.12"k"34

15.以下不能定义为用户标识符的是______。

A.sizeofB.Main

C._D._int

16.以下说法正确的是______。

A.C语言中的常量是指在程序运行过程中经常被改变数据类型的量

B.C语言中的常量是指在程序运行过程中经常被改变值的量

C.C语言中的常量是指在程序运行过程中经常被用到的变量

D.C语言中的常量是指在程序运行过程中其值不能被改变的量

17.有以下程序:

#include<stdio.h>

main()

{

inti,x,k=0,m;

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

{

scanf("%d",&x);

x/=10;

switch(x)

{

case0:

case1:

case2:

k++;m=1;

default:

k++;m=2;

case3:

k++;m=3;

case4:

k++;m=4;

}

}

printf("%d,%d",k,m);

}

程序运行时输入:

35205240106<回车>,则输出结果是______。

A.5,2B.13,4

C.15,2D.5,4

18.有如下程序:

#include<stdio.h>

main()

{

inti;

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

putchar("K"-i);

}

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

A.012B.KLM

C.LMND.KJI

19.对于循环语句:

for(i=0;i<=10;i++){;}下面各选项中叙述错误的是______。

A.省略i++,可引起无限循环

B.省略i<=10,可引起无限循环

C.省略i=0,可引起无限循环

D.圆括号()内三个表达式都省略,可引起无限循环

20.有以下程序:

#include<stdio.h>

main()

{inti=0,j=0,x=0;

while(i<2)

{x++;

for(;j<=3;j++)

{if(j%2)continue;

x++;

}

x++;i++;

}

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

}

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

A.x=5B.x=4

C.x=6D.x=8

21.以下叙述中错误的是______。

A.while语句的循环体至少会被执行一次

B.break语句只能在循环体内和switch语句体内使用

C.执行continue语句时将跳过本次循环体中余下尚未执行的语句

D.在C语言中有3种可以构成循环结构的循环语句:

while、do…while和for

22.有下列程序:

#include<stdio.h>

main()

{inta=7,i;

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

{if(a>13)break;

if(a%2){a+=3;continue;}

a=a+4;

}

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

}

程序执行后的输出结果是______。

A.3,18B.3,14

C.4,18D.2,10

23.有如下程序:

#include<stdio.h>

voidchange(int*array,intlen)

{

for(;len>=0;len--)

array[len]+=2;

}

main()

{

inti,array[6]={1,2,3};

change(array,5);

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

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

}

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

A.1,2,0,0,0,B.3,4,5,6,7,

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

24.有以下程序:

#include<stdio.h>

intf1(inta)

{returna*3;}

intf2(int*b)

{return*b*5;}

main()

{

intx=3,y=5;

printf("%d,%d\n",f1(x),f2(&y));

}

程序的运行结果是______。

A.9,125B.9,25

C.3,15D.3,45

25.设有定义:

inta[10],*p=a,k;

以下为数组a的10个元素依次读入数据的程序段中错误的是______。

A.for(k=0;k<10;k++)scanf("%d",p++);

B.for(k=0;k<10;k++)scanf("%d",a+k);

C.for(k=0;k<10;k++)scanf("%d",a++);

D.for(;p-a<10;p++)scanf("%d",p);

26.有下列程序:

#include<stdio.h>

voidfun(inta[],intn,intflag)

{inti=0,j,t;

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

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

if(flag(a[i]<a[j]):

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

{t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{intc[10]={7,9,10,8,3,5,1,6,2,4},i;

fun(c,10,1);

fun(c,5,0);

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

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

}

程序执行后的输出结果是______。

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

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

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

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

27.若函数fun定义如下

fun(void)

{

doubled;

longt=rand();

d=t*0.618;

returnd;

}

则函数返回值的类型是______。

A.voidB.double

C.intD.long

28.运算符[]内的数据类型只能是______。

A.int和charB.float

C.doubleD.char

29.若有定义语句:

intx[][3]={1,2,3,4,5,6};,则以下选项中与该语句等价的是______。

A.intx[][3]={{1,2,3},{4,5},{6}};

B.intx[][3]={{1,2},{3,4},{5,6}};

C.intx[][3]={{1},{2,3},{4,5,6}};

D.intx[][3]={{1,2,3},{4,5,6}};

30.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{charstr[][10]={"One","Three","Five"},*p=str[0];

printf("%s,",p+10);

printf("%d\n",strlen(p+=10));

}

执行后的输出结果是______。

A.Three,4B.出错

C.Three,5D.Five,5

31.有以下程序:

#include<stdio.h>

main()

{chara[5][10]={"China","beijing","very","welcome","you"};

char*p[5];inti;

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

{p[i]=*(a+i);

printf("%s",p[i]);

printf("%c",*p[i]);

}

}

程序执行后的输出结果是______。

A.wwyyB.ChinaCbeijingb

C.**ewD.welcomewyouy

32.有如下程序:

#include<stdio.h>

#include<string.h>

main()

{

chara[]="THIS\0",*b="OK\0\0";

printf("%d,%d,%d,%d",strlen(a),sizeof(a),strlen(b),sizeof(b));

}

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

A.4,6,2,4B.4,4,4,1

C.6,5,2,1D.6,4,2,4

33.有以下程序:

#include<stdio.h>

main()

{charca[3][5]={"A","BB","CCC"};

char*pa[3]={"a","bb","ccc"};

printf("%d,%d\n",sizeof(ca[0]),sizeof(pa[0]));

}

程序的运行结果是______。

A.7,4B.3,5

C.5,4D.2,2

34.有如下程序:

#include<stdio.h>

#include<string.h>

main()

{

char*str="0\n0123\4":

printf("%d",strlen(str));

}

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

A.3B.6

C.8D.7

35.有以下程序:

#include<stdio.h>

inta[5]={7,10,3};

intn=3;

int*p=a;

voidmain()

{

inti;

inta[2]={1,0};

for(i=0;a[i];i++)

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

for(i=0;a[i];i++)

{

inta[3]={100,200,300};

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

}

printf("\n");

}

程序的运行结果是______。

A.1100B.10100200300

C.1100200300D.1100200

36.有以下程序:

#include<stdio.h>

voidmain()

{charch[7]={"43ab21"};

inti,s=0;

for(i=0;ch[i]>="0"&&ch[i]<="9";i+=2)

s=10*s+ch[i]-"0";

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

}

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

A.48B.12ba34

C.4321D.4

37.有以下程序:

#include<stdio.h>

main()

{intx=3,y=5,z1,z2;

z1=x^y;z2=x+y;

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

}

程序执行后的输出结果是______。

A.9,8B.8,8

C.35,8D.6,8

38.有以下程序:

#defineOut(n)n%2==0"%c":

"%d"

#include<stdio.h>

main()

{

intx;

for(x=65;x<69;x++)

printf(Out(x),x);

}

程序的运行结果是______。

A.65867DB.A66C68

C.65666768D.ABCD

39.有如下程序:

#include<stdio.h>

streetperson

{

charName[10];

intAge;

};

main()

{

structpersonroom[4]={{"Zun",11},{"Liu",10},{"He",12},{"Zhao",13}};

printf("%s:

%d",(room+3)->Name,(room+1)->Age);

}

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

A.Liu:

10B.Zun:

12

C.Zhao:

10D.He:

11

40.有如下代码

#include<stdio.h>

structnode

{

charid;

structnode*next;

}a={"A"},b={"B"},c={"C"},*p=&a,*pt;

main()

{

p->next=&b:

p=p->next;

p->next=&c;

p=p->next;

p->next=NULL;

p=&a;

}

若代码经运行后形成下图所示的数据结构:

则以下可以删除中间节点b的正确选项是______。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

二、程序填空题

1.下列给定程序中,函数fun的功能是:

将S所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为“def35adh3kjsdf7”,执行后结果为“defadhkjsdf3537”。

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

注意:

部分源程序给出如下。

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

试题程序:

#include<stdio.h>

voidfun(char*s)

{

inti,j=0,k=0;

chart1[80],t2[80];

for(i=0;s[i]!

="\0";i++)

if(s[i]>="0"&&s[i]<="9")

{

t2[j]=s[i];

______;

}

else

{

t1[k++]=s[i];

}

t2[j]=0;

t1[k]=0;

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

______;

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

s[k+i]=t2[i];

}

main()

{

chars[80]="ba3a54j7sd567sdffs";

pfintf("\nTheoriginalstringis:

%s\n",s);

fun(s);

pfintf("\nTheresultis:

%s\n",s);

}

三、程序修改题

1.下列给定程序中函数fun的功能是:

用冒泡法对6个字符串按由小到大的顺序进行排序。

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

注意:

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

试题程序:

#include<stdlib.h>

#include<string.h>

#include<conio.h>

#include<stdio.h>

#defineMAXLINE20

fun(char*pstr[6])

{

inti,j;

char*p;

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

{

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

for(j=i+1,j<6,j++)

{

if(strcmp(*(pstr+i),(pstr+j))>0)

{

p=*(pstr+i);

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

*(pstr+i)=pstr+j;

*(pstr+j)=p;

}

}

}

}

voidmain()

{

inti;

char*pstr[6],str[6][MAXLINE];

system("CLS");

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

pstr[i]=str[i];

printf("\nEnter6string(1stringateachline):

\n");

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

scanf("%s",pstr[i]);

fun(pstr);

printf("Thestringsaftersorting:

\n");

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

printf("%s\n",pstr[i]);

}

四、程序设计题

(共24分)

1.编写函数fun,其功能是:

求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串“123412132”,输入字符为“1”,则输出3。

注意:

部分源程序给出如下。

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

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineM81

intfun(char*ss,charc)

{

}

voidmain()

{

chara[M],ch;

system("CLS");

printf("\nPleaseenterastring:

");

gets(a);

printf("\nPleaseenterachar:

");

ch=getchar();

printf("\nThenumberofthecharis:

%d\n",fun(a,ch));

}

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2