二级C语言真题2真题无答案.docx
- 文档编号:10346942
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:20
- 大小:27.90KB
二级C语言真题2真题无答案.docx
《二级C语言真题2真题无答案.docx》由会员分享,可在线阅读,更多相关《二级C语言真题2真题无答案.docx(20页珍藏版)》请在冰点文库上搜索。
二级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));
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 真题无 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)