二级C语言-610_真题-无答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二级C语言-610
(总分100,考试时间90分钟)
一、选择题
1. 下列叙述中正确的是______。

A. 栈与队列都只能顺序存储
B. 循环队列是队列的顺序存储结构
C. 循环链表是循环队列的链式存储结构
D. 栈是顺序存储结构而队列是链式存储结构
2. 算法空间复杂度的度量方法是______。

A. 算法程序的长度
B. 算法所处理的数据量
C. 执行算法所需要的工作单元
D. 执行算法所需要的存储空间
3. 设有栈S和队列Q,初始状态均为空。

首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为______。

A. DEFXYZABC
B. FEDZYXCBA
C. FEDXYZCBA
D. DEFZYXABC
4. 某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为______。

A. EFGDCBA
B. DCBEFGA
C. BCDGFEA
D. DCBGFEA
5. 软件生命周期是指______。

A. 软件产品从提出、实现、使用、维护到停止使用、退役的过程
B. 软件的需求分析、设计与实现
C. 软件的开发与管理
D. 软件的实现和维护
6. 通常软件测试实施的步骤是______。

A. 集成测试、单元测试、确认测试
B. 单元测试、集成测试、确认测试
C. 确认测试、集成测试、单元测试
D. 单元测试、确认测试、集成测试
7. 下面不属于对象的主要特征的是______。

A. 惟一性
B. 多态性
C. 可复用性
D. 封装性
8. 数据库设计中,描述数据间内在语义联系得到E—R图的过程属于______。

A. 逻辑设计阶段
B. 需求分析阶段
C. 概念设计阶段
D. 物理设计阶段
9. 在数据库系统中,用于对客观世界中复杂事物的结构及它们之间的联系进行描述的是______。

A. 概念数据模型
B. 逻辑数据模型
C. 物理数据模型
D. 关系数据模型
10. 有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是______。

A. .并
B. 投影
C. .交
D. 选择
11. 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是______。

A. 三种基本结构不可以嵌套使用
B. 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移
C. 选择结构是根据不同的条件执行不同分支中的语句
D. 循环结构是根据条件决定是否重复、重复执行多少次循环体语句
12. 在C语言中,以下选项中不能正确表示10×1000之值的是______。

A. 1.0E4.0
B. 1.E4
C. 10E3
D. 1.0e4
13. 以下选项中,合法的C语言常量是______。

A. 21.84
B. "CPP"
C. "\1.0
D. 2MB
14. 有以下程序:
#include<stdio.h>
main()
{
int x=010, y=10;
printf("%d,%d\n",++x,y--);
}
程序运行后的输出结果是______。

A. 10,9
B. 11,10
C. 010,9
D. 9,10
15. 若有定义:int a; float b; double c;,程序运行时输入:a=1,b=2,c=3<回车>,能把值1输入给变量a、值2输入给变量b、值3输入给变量c的输入语句是______。

A. scanf("a=%d,b=%f,c=%lf",&a,&b,&c);
B. scanf("%d%f%lf",&a,&b,&c);
C. scanf("a=% d,b=% lf,c=%lf",&a,&b,&c);
D. scanf("a=%d,b=% f,c=%f",&a,&b,&c);
16. 有如下程序:
#include<stdio.h>
main()
{
int a=0, b=1;
if(a++&&b++)
printf("T");
else
printf("F");
printf("a=%d,b=%d\n",a,b);
}
程序运行后的输出结果是______。

A. Ta=1,b=2
B. Fa=0,b=2
C. Fa=1,b=1
D. Ta=0,b=1
17. 以下不是合法C语言转义字符的是______。

A. "\c"
B. "\a"
C. "\b"
D. "\r"
18. 有以下程序:
#include<stdio.h>
main()
{
char ch="B";
while(ch<"E")
{
pfintf("%d",ch-"A");
ch++;
}
printf("\n");
}
程序运行后的输出结果是______。

A. 123
B. ABC
C. abc
D. 012
19. 以下能够实现计算5!的程序段是______。

A. int fac=1,k=0;do{k++;fac*=k;}while(k<5);
B. int fac=0,k=1;do{fac*=k;k++;}while(k<5);
C. int fac=1,k=1;do{k++;fac*=k;}while(k<=5);
D. int fac=1,k=0;do{fac*=k;k++;}while(k<5);
20. 有以下程序:
#include<stdio.h>
main()
{
int x=0x13;
if(x=0x12)printf("True");
printf("False\n");
}
程序运行后的输出结果是______。

A. True
B. TrueFalse
C. False
D. TrueFalseTrue
21. 有以下程序段:char c1,c2,c3;scanf("%c%c%c",&c1,&c2,&c3);若要给c1、c2、c3分别赋值字母A、B、C,则以下对输入形式的描述正确的是______。

A. 字母A、B、C之间可以用空格分隔
B. 字母A、B、C之间不能有分隔符
C. 字母A、B、C之间可以用回车符分隔
D. 字母A、B、C之间可以用Tab键分隔
22. 有以下程序:
#include<stdio.h>
main()
{
printf("%d\n",NULL);
}
程序运行后的输出结果是______。

A. 0
B. 变量无定义,输出不确定
C. -1
D. 1
23. 以下关于函数的叙述中正确的是______。

A. 函数调用必须传递实参
B. 函数必须要有形参
C. 函数必须要有返回值
D. 函数形参的类型与返回值的类型无关
24. 有以下程序:
#include<stdio.h>
void fun(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
if(i%3==0)
a[i]-=n;
else
a[i]+=n;
}
}
main()
{int c[5]={6,7,8,9,10},i;
fun(c,5);
for(i=0;i<5;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行后的输出结果是______。

A. 1,12,13,4,15,
B. 10,9,8,7,6,
C. 1,7,13,9,15,
D. 10,12,8,4,6,
25. 以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划线处。

#include<stdio.h>
main()
{
int a[10],i=0;
while(i<10)scanf("%d",______);

}
A. a+(i++)
B. &a[i+1]
C. a+i
D. &a(i++)
26. 有以下程序:
#include<stdio.h>
int*f(int*s,int*t)
{if(*s<*t)
*s=*t;
return s;
}
main()
{int i=3,j=5,*p=&i,*q=&j,*r;
r=f(p,q);
printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);
}
程序的运行结果是______。

A. 5,5,5,5,5
B. 3,5,5,5,5
C. 5,3,3,3,5
D. 3,5,3,5,5
27. 有如下程序:
#include<stdio.h>
#include<string.h>
main()
{
printf("%d\n",strlen("0\t\nA011\1"));
}
程序运行后的输出结果是______。

A. 8
B. 9
C. 7
D. 10
28. 若有定义:char*ps[]={"aa","bb","cc","dd"};,则以下叙述正确的是______。

A. *ps[0]是字符"a"
B. *ps[0]是字符串"aa"
C. ps[0]是字符"a"
D. ps是字符串"aa"
29. 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是______。

A. char*str,name[10];str="Hello World";
B. char*str,name[10];name="Hello World";
C. char str1[10]="prog.c",str2[10];str2=str1;
D. char head_line[];head_line="== == == == == == =";
30. 有如下程序:
#include<stdio.h>
void get_put()
char ch;
ch=getchar();
if(ch!="\n")get_put();
putchar(ch);
}
main()
{
get_put();
}
程序运行时,输入ABCD<回车>,则输出结果是______。

A. DCDC
B. DCBA
C. BABA
D. ABCD
31. 若有以下程序段:
char str[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4];
int i;
for(i=0;i<4;i++)strp[i]=str[i];
则以下错误引用字符串的选项是(其中0≤k<4)______。

A. *strp
B. str[k]
C. strp[k]
D. strp
32. 有以下程序:
#include<stdio.h>
main()
{int findmax(int,int,int),m;
m=findmax(a,b,c);
}
int findmax(int x,int y,int z)
{…}
则以下叙述正确的是______。

A. 在main函数中声明了findmax函数
B. 在main函数中定义了findmax函数
C. 在main函数中两次调用了findmax函数
D. 在main函数内、外重复定义了findmax函数
33. 有如下程序:
#include<stdio. h>
int sum(int*array,int len)
if(len==0)
return array[0];
else
return array[0]+sum(array+1,len-1);
}
main()
{
int array[5]={1,2,3,4,5};
int res=sum(array,4);
printf("%d\n",res);
}
程序运行后的输出结果是______。

A. 15
B. 10
C. 8
D. 1
34. 若有定义:typedef int*T: T a[20];
则以下与上述定义中a类型完全相同的是______。

A. int*a[20];
B. int(*a)[20];
C. int a[20];
D. int**a[20];
35. 有以下程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{char*p1,*p2;
p1=p2=(char*)malloc(sizeof(char)*10);
strcpy(p1,"malloc");
strcpy(p2,p1+1);
printf("%c%c\n",p1[0],p2[0]);
}
程序的运行结果是______。

A. aa
B. ma
C. am
D. mm
36. 有如下定义:
struct
{int mum;
char name[10];
struct
{int y;int m;int d;}birth;
}s,*ps=&s;
以下对内嵌结构体成员的引用形式错误的是______。

A. ps->birth.y
B. birth.y
C. ps.birth.y
D. (*ps).birth.y
37. 有以下程序;
#include<stdio.h>
#define N 2
#define M N+1
#define MUN (M+1)*M/2
main()
{
printf("%d\n",MUN);
}
程序运行后的输出结果是______。

A. 8
B. 9
C. 5
D. 6
38. 有如下程序:
#include<stdio.h>
struct pair
{
int first,second;
};
struct pair get_min_max(int*array,int len)
{
int i;
struct pair res;
res.first=array[0];
res.second=array[0];
for(i=1;i<len;i++)
{
if(array[i]<res.first)
res.first=array[i];
if(array[i]>res.second)
res.second=array[i];
}
return res;
}
main()
{
int array[5]={9,1,3,4};
struet pair min_max=get_min_max(array,5)
printf("min=%d,max=%din",min_max.first,min_max.second); }
程序运行后的输出结果是______。

A. min=1,max=9
B. min=0,max=9
C. min=1,max=4
D. min=0,max=4
39. 有以下程序:
#include<stdio.h>
main()
{int c,d;
c=13&5;d=10&&5;
printf("%d,%d\n",c,d);
}
程序的运行结果是______。

A. 5.1
B. 1,1
C. 18,1
D. 13,1
40. 有以下程序段:
FILE*fp;
if((fp=fopen("test.txt","w"))==NULL)
{printf("不能打开文件!");
exit(0);}
else
printf("成功打开文件!");
若文件test.txt已存在,则以下叙述正确的是______。

A. 程序运行后,文件test.txt中的原有内容将全部消失
B. 程序运行时,会因文件存在而出错
C. 对文件test.txt进行写操作后,可以随机进行读取
D. 对文件test.txt写入的内容总是被添加到文件尾部
二、程序填空题
1. 给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。

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

注意:
部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!
[试题源程序]
#include<stdlib.h>
#include<stdio.h>
#define N 20
void fun(int*a)
{int i,x,n=0;
x=rand()%20;
/***********found**********/
while(n<______)
{for(i=0;i<n;i++)
/***********found**********/
if(x==a[i])
______;
/***********found**********/
if(i==______)
{a[n]=x;n++;}
x=rand()%20;
}
}
main()
{int x[N]={0},i;
fun(x);
printf("The result:\n");
for(i=0;i<N;i++)
{printf("%4d",x[i]);
if((i+1)%5==0)printf("\n");
}
printf("\n\n");
}
三、程序修改题
1. 下列给定程序中,函数fun的功能是:实现两个整数的交换。

例如,给a和b分别输入60和65,输出为:a=65 b=60。

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

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

[试题源程序]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
/***********found**********/
void fun(int a,b)
{
int t;
/***********found**********/
t=b;b=a,a=t;
}
void main()
{
int a,b;
system("CLS");
printf("Enter a,b:");
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d b=%d\n",a,b);
}
四、程序设计题
1. 编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方
根,并作为函数值返回。

例如,若n为1000时,程序输出应为:s=153.909064。

注意:
部分源程序在文件PROG1.C中。

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

[试题源程序]
#include<math.h>
#include<stdio.h>
double fun(int n)
{
}
main()/*主函数*/
{void NONO();
printf("s=%f\n",fun(1000));
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/
FILE*fp,*wf;
int i,n;
double s;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d",&n);
s=fun(n);
fprintf(wf,"%f\n",s);
}
fclose(fp);
fclose(wf);
}。

相关文档
最新文档