二级C语言真题2017年09月-(1)及答案解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级C语言真题2017年09月-(1)及答案解析
二级C语言真题2017年09月-(1)及答案解析
(1/40)单项选择题
第1题
设有一个栈与一个队列的初始状态均为空。
现有一个序列的元素为A,B,C,D,E,F,G,H,先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队列中的元素依次退队。
最后得到的序列为______。
A.A,B,C,D,H,G,F,E
B.D,C,B,A,H,G,F,E
C.A,B,C,D,E,F,G,H
D.D,C,B,A,E,F,G,H
下一题
(2/40)单项选择题
第2题
设某棵树的度为3,其中度为2,1,0的节点个数分别为3,4,15,则该树中总节点数为______。
A.30
B.22
C.35
D.不可能有这样的树
上一题下一题
(3/40)单项选择题
第3题
设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。
则按层次输出(从上到下,同一层从左到右)的序列为______。
A.ABCDEFGHIJ
B.DCHEBIJFCA
C.JIHGFEDCBA
D.GHIJDEFBCA
上一题下一题
(4/40)单项选择题
第4题
设顺序表的长度为16,对该表进行简单插入排序。
在最坏情况下需要的比较次数为______。
A.15
B.60
C.30
D.120
上一题下一题
(5/40)单项选择题
第5题
软件系统总体结构图的作用是______。
A.描述软件系统结构的图形工具
B.描述软件系统的控制流
C.描述软件系统的数据流
D.描述软件系统的数据结构
上一题下一题
(6/40)单项选择题
第6题
不属于对象构成成份的是______。
A.属性
B.规则
C.方法(或操作)
D.标识
上一题下一题
(7/40)单项选择题
第7题
十进制整数设为整数类Ⅰ,则下面属于类Ⅰ的实例的是______。
A.-518
B.0.518
C.518E-2
D..518
上一题下一题
(8/40)单项选择题
第8题
结构化程序设计原则强调的是______。
A.自顶向下
B.可封装性
C.可复用性
D.可恢复性
上一题下一题
(9/40)单项选择题
第9题
违背数据流图(DFD)构造规则的是______。
A.“加工”应既有输入又有输出
B.“数据存储”间有数据流
C.“数据流”应标识数据流名
D.父图子图是指相邻上下两层的数据流图
上一题下一题
(10/40)单项选择题
第10题
关系数据库规范化主要为克服数据库逻辑结构中的插入异常、删除异常以及______。
A.数据丢失的问题
B.结构不合理的问题
C.数据不一致的问题
D.冗余度大的问题
上一题下一题
(11/40)单项选择题
第11题
A.C语言既可以用来编写系统软件,又可以用来编写应用软件
B.机器中只要安装有任一种编译程序,就能对C源程序进行编译
C.若程序中不使用C语言提供的库函数,则可以不运行连接程序
D.调试程序时若发现语法错误,改正后即可直接运行,无需再次编译
上一题下一题
(12/40)单项选择题
第12题
以下说法正确的是______。
A.由3种基本结构组成的结构化程序只能解决一些简单的问题
B.由3种基本结构组成的结构化程序可以解决任何复杂的问题
C.由3种基本结构组成的结构化程序只能解决那些可以结构化的问题
D.由3种基本结构组成的结构化程序只能解决一些数学上有解析解的问题上一题下一题
(13/40)单项选择题
第13题
以下说法正确的是______。
A.C语言标识符中字母、数字和下划线字符必须同时出现
B.C语言标识符中仅出现下划线字符是不允许的
C.C语言标识符中可以出现多个字母、数字和下划线字符
D.C语言标识符中字母、数字和下划线字符不能同时出现
上一题下一题
(14/40)单项选择题
第14题
以下属于C语言标识符的是______。
A._6_
B.#6#
D.
上一题下一题
(15/40)单项选择题
第15题
以下不能作为合法常量的是______。
A.1.234e0
B.1.234e04
C.1.234e+4
D.1.234e0.4
上一题下一题
(16/40)单项选择题
第16题
设有如下语句:
int k=0;
k=printf("OK\n");
A.printf必须作为独立语句出现
B.变量k得到的是输出的可见字符个数2
C.变量k得到的是输出字符的总个数3
D.变量k仍保持初值0
上一题下一题
(17/40)单项选择题
第17题
以下说法正确的是______。
A.赋值语句是一种可执行语句,应当出现在函数的可执行部分
B.赋值语句可以出现在函数中的任意位置
C.赋值语句可以出现在函数外单独执行
D.赋值语句可以出现在源程序中的任意位置
上一题下一题
(18/40)单项选择题
有以下程序:
#include<stdio.h>
main()
{char*s="01234";
while(*(++s)!='\0')
{switch(*s-'0')
{case 0:
case 1: putchar(*s+1);break; case 2: putchar(*s+1);break; case 3: putchar(*s+1); default: putchar(*s+1);break; }
}
}
程序执行后的输出结果是______。
A.22345
B.2345
C.12345
D.23445
上一题下一题
(19/40)单项选择题
第19题
有如下程序:
#include<stdio.h>
main()
{
int i;
for(i=0;i<5;i++)
putchar('9'-i%2);
}
程序运行后的输出结果是______。
A.98989
B.98765
C.'9''8''7''6''5'
D.'98989'
上一题下一题
(20/40)单项选择题
第20题
以下关于switch语句的叙述中正确的是______。
A.所有case的标号都应当是连续的
B.每个case语句标号后面可以没有break语句
C.char型常量不能做case的标号使用
D.default必须放在全部case的最后
上一题下一题
(21/40)单项选择题
第21题
有下列程序:
#include<stdio.h>
main()
{int a=6,i;
for(i=1;i<=3;i++)
{if(a<5)break;
if(a%2){a+=2;continue;}
a=a+4;
}
printf("%d,%d",i,a);
}
程序执行后的输出结果是______。
A.4,9
C.4,18
D.4,2
上一题下一题
(22/40)单项选择题
第22题
有以下程序:
#include<stdio.h>
main()
{
int a=1,b=2,c=3;
char flag;
flag=b>=2 && c<=3;
{
case 1:switch(flag)
{
case 0: printf("**");break;
case 1: printf("%%");break;
}
case 0: switch(c)
{
case 1: printf("$$");break;
case 2: printf("&&");break; default: printf("##"); }
}
printf("\n");
}
程序运行后的输出结果是______。
A.**$$
B.%##
D.**##
上一题下一题
(23/40)单项选择题
第23题
有以下程序:
#include<stdio.h>
void main()
{char*s="\ta\018bc";
for(;*s!='\0';s++)
printf("*");
printf("\n");
}
程序运行后的输出结果是______。
A.******
B.*********
C.*****
D.*******
上一题下一题
(24/40)单项选择题
第24题
以下正确的字符常量是______。
A."AB"
B.'\0AB'
C.'AB'
上一题下一题
(25/40)单项选择题
第25题
有如下程序:
#include<stdio.h>
void fun(int *a, int *b)
{for(;(*a<*b)||(getchar()!='@');) {(*a)++;(*b)--;} }
main()
{int i=0,j=5;
fun(&i,&j);
printf("%d,%d\n",i,j);
}
程序运行时在第一列开始输入:ab@<回车>
则运行结果是______。
A.7,1
B.3,2
C.0,5
D.5,0
上一题下一题
(26/40)单项选择题
第26题
有下列程序:
#include<stdio.h>
void swap(int *a,int *b)
{int *tp;
tp=a;a=b;b=tp;
printf("%d,%d,",*a,*b);
}
main()
{int i=3,j=7,*p=&i,*q=&j;
swap(p,q);
printf("%d,%d",*p,*q);
}
程序执行后的输出结果是______。
A.3,7,7,3
B.7,3,7,3
C.3,7,3,7
D.7,3,3,7
上一题下一题
(27/40)单项选择题
以下关于函数参数的叙述中,错误的是______。
A.实参应与其对应的形参类型一致
B.形参可以是常量、变量或表达式
C.实参可以是常量、变量或表达式
D.形参可以是任意合法数据类型
上一题下一题
(28/40)单项选择题
第28题
以下有关函数的叙述错误的是______。
A.C语言规定,不能在函数的内部定义函数
B.在C语言的函数体中可以有多个return语句
C.在C语言中函数的实参个数可以有多个,各实参之间用分号隔开
D.C语言程序总是从main()函数开始执行
上一题下一题
(29/40)单项选择题
第29题
以下关于指针的说法错误的是______。
A.可以向指针中写入任意数据
B.可以向指针所指内存单元中写入数据
C.指针可以指向与其基类型相同的普通变量
D.可以通过加法运算,使指针指向下一个内存单元
上一题下一题
(30/40)单项选择题
第30题
有以下程序:
#include<stdio.h>
#define SWAT(t,a,b)t=a;a=b;b=t; main()
{int x=6,y=4,z=3,s=0;
if(x<y)SWAT(s,x,y);
if(x<z)SWAT(s,x,z);
if(y<z)SWAT(s,y,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后的输出结果是______。
A.6,4,3
B.3,4,6
C.0,3,4
D.3,0,0
上一题下一题
(31/40)单项选择题
第31题
有以下程序:
#include<stdio.h>
int f(int x[],int n)
{if(n>1)
return f(x,n-1)+x[n-1]*10;
else
return x[0];
}
main()
{ int a[6]={1,2,3,4},y;
y=f(a,4);
printf("%d",y);
}
程序执行后的输出结果是______。
A.91
B.4321
C.1234
D.10
上一题下一题
(32/40)单项选择题
第32题
有如下程序:
#include<stdio.h>
void get_put()
{
char ch;
ch=getehar();
if(eh!='\n')get_put();
putehar(ch);
main()
{
get_put();
}
程序运行时,输入AB12<回车>,则输出结果是______。
A.2100
B.21BA
C.DCBA
D.21AB
上一题下一题
(33/40)单项选择题
第33题
有以下程序:
#include<stdio.h>
#include<string.h>void fun(char *s)
{
int len;
len=strlen(s);
if(len>2)fun(s+2); putchar(*s);
}
void main()
{
char *p="abcdefg":
fun(p);
putchar('\n');
}
程序的运行结果是______。
A.abcdefg
B.gfedcba
C.geca
D.aceg
上一题下一题
(34/40)单项选择题
第34题
有如下程序:
#include<stdio.h>void convert(char ch) {
printf("%c",ch);
if(ch<'5')convert(ch+1);
}
main()
convert('0');
}
程序运行后的输出结果是______。
A.5
B.123456
C.012345
D.01234
上一题下一题
(35/40)单项选择题
第35题
有以下程序:
#include<stdio.h>
int mm;
int func(int a)
{
static int n=3;
int i;
for(i=1; i<a;i++)
n=n*a;
return n;
}
void main()
{
int a;
mm=func(2);
a=func(3);
printf("%d%d\n",mm,a);
}
程序的运行结果是______。
A.6 34
B.9 729
C.3 9
D.6 54
上一题下一题
(36/40)单项选择题
第36题
有以下程序:
#include<stdio.h>
int fun(char *p)
{ if(*p==0)return 0;
fun(p+1);
putchar(*p);
return 0;
}
main()
{ char ch[]="ABCD";
fun(ch);
}
程序运行后的输出结果是______。
A.DCBA
B.BCD
C.ABCD
D.D
上一题下一题
(37/40)单项选择题
第37题
有以下程序:
#include<stdio.h>
int fun(int x, int y)
{
static int m=0,i=2;
i+=m+1;m=i+x+y;
return m;
}
void main()
{int j=1,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d\n",k);
}
程序运行后的输出结果是______。
A.5,5
B.5,11
C.11,11
D.11,5
上一题下一题
(38/40)单项选择题
第38题
有下列程序:
#include<stdio.h>
#include<string.h>
main()
{char a[5][10]={"efg","abcd","mnopq","hijkl","rstuvwxyz"}; char *p[5];
int i,len;
for(i=4;i>=0;i--)
{p[i]=a[i];
len=strlen(p[i]);
printf("%s",p[i]+len-2);
printf("%c",{(p[i]+len-1));
}
}
程序执行后的输出结果是______。
A.fggcddpqqkllyzz
B.yzzkllpqqcddfgg
C.yzyklkpqpcdcfgf
D.fgfcdepqpklkyzy
上一题下一题
(39/40)单项选择题
第39题
有以下程序:
#include<stdio.h>
typedef struct book
{
char name[50];
double price;
}BOOK;
void fun(BOOK *pd,int num,int size);
void main()
{
BOOK data[10]={"photoshop",26.8,"计算机原理",15.00,"数据结构",35.6}; int n=3,m=10;
fun(data,n,m);
printf("%s,%s\n",data[8].name,data[9].name);
}
void fun(BOOK*pd,int num,int size)
{
int i,j,t;
double mx,mn;
mx=mn=pd[0].price;
j=t=0;
for(i=1;i<nun;i++)
{
if(pd[i].price>mx)
{ mx=pd[i].price;j=i;}
if(pd[i].price<mn) {mn=pd[i].price;t=i;}
}
pd[size-2]=pd[j];
pd[size-1]=pd[t];
}
程序的运行结果是______。
A.数据结构,计算机原理
B.计算机原理,数据结构
C.photoshop,计算机原理
D.数据结构,photoshop 上一题下一题
(40/40)单项选择题
第40题
有下列程序:
#include<stdio.h>
#include<string.h>typedef struct stu{
char name[9];
char gender;
int score;
}STU;
void f(STU *a)
{STU c={"Sun",'f,,90},*d=&c;
a=d;
strcpy(a->name,/doc/7316628061.html
);
a->gender=c.gender;
a->score=c.score:
printf("%s,%c,%d,",a->name,a->gender,a->score);
}
main()
{STU a={"Zhao",'m',85};
f(&a);
printf("%s,%c,%d",/doc/7316628061.h tml
,a.gender,a.score);
}
程序执行后的输出结果是______。
A.Zhao,m,85,Sun,f,90
B.Sun,f,90,Sun,f,90
C.Sun,f,90,Zhao,m,85
D.Zhao,m,85,Zhao,m,85
上一题下一题
(1/1)程序填空题
第41题
下列给定程序中已建立一个带头节点的单向链表,链表中的各节点按节点数据域中的数据递增有序链接。
函数fun的功能是:把形参x 的值放入一个新节点并插入链表中,使插入后各节点数据域中的数据仍保持递增有序。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构! 试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 8
typedef struet list
{ int data;
struet list *next;
}SLIST;
void fun(SLIST *h,int x)
{ SLIST *p,*q,%s;
s=(SLIST *)malloe(sizeof(SLIST));
/********found********/
s->data=______;
q=h;
p=h->next;
while(p!=NULL&&x>p->data){
/********found********/
q=______;
p=p->next;
}
s->next=p;
/********found********/
q->next=______;
}
SLIST *creatlist(int *a)
{ SLIST *h,*p,*q;int i;
h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0;i<N;i++)
{q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
}
p->next=0:
return h;
}
void outlist(SLIST *h)
{ SLIST *p;
p=h->next;
if(p==NULL)
printf("\nThe list is NULL!\n");
else
{ printf("\nHead");
do {printf("->%d",p->data);
p=p->next;
}while(p!=NULL);
printf("->End\n");
}
}
main()
{ SLIST *head; int x;
int a[N]={11,12,15,18,19,22,25,29}; head=creatlist(a); printf("\nThe list before inserting:\n"); outlist(head); printf("\nEnter a number:");
scanf("%d",&x);
fun(head,x);
printf("\nThe list after inserting:\n"); outlist(head); }
上一题下一题
(1/1)程序改错题
第42题
下列给定程序中函数fun的功能是:计算正整数nun各位上的数字之积。
例如,若输入252,则输出应该是20。
若输入202,则输出应该是0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<conio.h>
long fun(10ng num)
{
/********found********/
long k;
do
{
k*=num%10;
/********found********/
num\=10;
}while(num);
return(k);
}
main()
{
long n;
printf("\n please enter a number:");
seanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
上一题下一题
(1/1)程序设计题
第43题
编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。
例如,若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
float fun(float *a,int n)
{
}
void main()
{
float score[30]={90.5,72,80,61.5,55},aver;
aver=fun(score,5);
printf("\nAverage score is:%5.2f\n",aver);
}
上一题交卷
交卷
答题卡
答案及解析
(1/40)单项选择题
第1题
设有一个栈与一个队列的初始状态均为空。
现有一个序列的元素为A,B,C,D,E,F,G,H,先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队
列中的元素依次退队。
最后得到的序列为______。
A.A,B,C,D,H,G,F,E
B.D,C,B,A,H,G,F,E
C.A,B,C,D,E,F,G,H
D.D,C,B,A,E,F,G,H
参考答案: D 您的答案:未作答
答案解析:[解析] 栈的特点是先进后出,而队列的特点是先进先出。
前4个元素依次进栈为ABCD,出栈后为DCBA,后4个元素入队列为EFGH,出队列也是EFGH,最后得到的序列为DCBAEFGH。
故D选项正确。
下一题
(2/40)单项选择题
第2题
设某棵树的度为3,其中度为2,1,0的节点个数分别为3,4,15,则该树中总节点数为______。
A.30
B.22
C.35
D.不可能有这样的树
参考答案: D 您的答案:未作答
答案解析:[解析] 在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度,树中的节点数即为树中所有节点的度数之和再加1。
假设度为3的节点数为n,总节点数为m,m=3×n+2×3+1×4+1,叶子节点数15=m-(3+4+n)。
得m=3n+11,2n=11,n无法得到整数,说明不可能存在这样的树。
故答案为D选项。
上一题下一题
(3/40)单项选择题
第3题
设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。
则按层次输出(从上到下,同一层从左到右)的序列为______。
A.ABCDEFGHIJ
B.DCHEBIJFCA
C.JIHGFEDCBA
D.GHIJDEFBCA
参考答案: A 您的答案:未作答
答案解析:[解析] 二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
二叉树的前序遍历序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ,可知该树A为根节点,右子树节点为CFIJ,左子树节点为BDEGH。
从顶向下从左向右依次为ABCDEFGHIJ,A选项正确。
上一题下一题
(4/40)单项选择题
第4题
设顺序表的长度为16,对该表进行简单插入排序。
在最坏情况下需要的比较次数为______。
A.15
B.60
C.30
D.120
参考答案: D 您的答案:未作答
答案解析:[解析] 简单插入排序在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n-1)/2,移动次数为n(n-1)/2。
本题中即16×(16-1)÷2=8×15=120。
故答案为D选项。
上一题下一题
(5/40)单项选择题
第5题
软件系统总体结构图的作用是______。
A.描述软件系统结构的图形工具
B.描述软件系统的控制流
C.描述软件系统的数据流
D.描述软件系统的数据结构
参考答案: A 您的答案:未作答
答案解析:[解析] 软件系统总体结构图是描述软件系统结构的图形工具,它包括软件系统的控制流、软件系统的数据流、软件系统的数据结构等。
故答案为A选项。
上一题下一题
(6/40)单项选择题
第6题
不属于对象构成成份的是______。
A.属性
B.规则
C.方法(或操作)
D.标识
参考答案: B 您的答案:未作答
答案解析:[解析] 一个对象通常可由对象名、属性和操作3部分组成,对象名唯一标识一个对象。
故答案为B选项。