二级C语言-81
(总分100,考试时间90分钟)
一、选择题
下列各题A、B、C、D四个选项中,只有一个选项是正确的。
1. 下列叙述中正确的是______。
A. 算法的效率只与问题的规模有关,而与数据的存储结构无关
B. 算法的时间复杂度是指执行算法所需要的计算工作量
C. 数据的逻辑结构与存储结构是一一对应的
D. 算法的时间复杂度与空间复杂度一定相关
2. 栈和队列的共同点是______。
A. 都是先进后出        B. 都是先进先出
C. 只允许在端点处插入和删除元素        D. 没有共同点
3. 下列关于队列的叙述中正确的是______。
A. 在队列中只能插入数据        B. 在队列中只能删除数据
C. 队列是先进先出的线性表        D. 队列是先进后出的线性表
4. 下面概念中,不属于面向对象方法的是______。
A. 对象        B. 继承
C. 类        D. 过程调用
5. 软件是指______。
A. 程序        B. 程序和文档
C. 算法加数据结构        D. 程序、数据与相关文档的完整集合
6. 信息隐蔽的概念与下述哪一种概念直接相关______。
A. 软件结构定义        B. 模块独立性
C. 模块类型划分        D. 模块耦合度
7. 下列选项中,不属于模块间耦合的是______。
A. 数据耦合        B. 标记耦合
C. 异构耦合        D. 公共耦合
字符串操作函数puts8. 对于现实世界中事物的特征,在实体——联系模型中使用______。
A. 属性描述        B. 关键字描述
C. 二维表格描述        D. 实体描述
9. 下列数据模型中,具有坚实理论基础的是______。
A. 层次模型        B. 网状模型
C. 关系模型        D. 以上三个都是
10. 关系表中的每一横行称为一个______。
A. 元组        B. 字段
C. 属性        D. 码
11. 下列叙述中错误的是______。
A. 一个C语言程序只能实现一种算法
B. C程序可以由多个程序文件组成
C. C程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C程序文件存在
12. C语言源程序名的后缀是______。
A. .C        B. .exe
C. .obj        D. .cp
13. 以下选项中不能用作C程序合法常量的是______。
A. 1,234        B. "\123"
C. 123        D. "\x7D"
14. 表达式a+=a-=a=9的值是______。
A. 0        B. -9
C. 18        D. 9
15. 若有定义语句:
int x=12,y=8,z;
在其后执行语句
z=0.9+x/y;
则z的值为______。
A. 1        B. 1.9
C. 2        D. 2.4
16. 阅读以下程序
#include <stdio.h>
main()
{ int case;
float printF;
printf("请输入2个数:");
scanf("%d%f",&case,&printF);
printf("%d%f\n",case,printF);
}
该程序在编译时产生错误,其出错原因是______。
A. 定义语句出错,case是关键字,不能用作用户自定义标识符
B. 定义语句出错,pfintF不能用作用户自定义标识符
C. 定义语句无错,scanf不能作为输入函数使用
D. 定义语句无错,printf不能输出case的值
17. 有以下程序
#include <stdio.h>
main()
{
char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是______。
A. 1245        B. 1256
C. 1278        D. 1267
18. 以下选项中,当x为大于1的奇数时,值为0的表达式是______。
A. x%2==0        B. x/2
C. x%2!=0        D. x%2==1
19. 以下选项中与
if(a==1) a=b;
else a++;
语句功能不同的switch语句是______。
A. switch(a==1){case 0:a=b;break;case 1:a++;}
B. switch(a){case 1:a=b;break;default:a++;}
C. switch(a){defauh:a++;break;case 1:a=b;}
D. switch(a==1){case 1:a=b;break;case 0:a++;}
20. 若变量已正确定义,有以下程序段
i=0;
do printf("%d,",i); while(i++);
printf("%d\n",i);
其输出结果是______。
A. 0,1        B. 0,0
C. 1,1        D. 程序进入无限循环
21. 有以下程序
#include <stdio.h>
main()
{ int a=1,b=2,c=3,d=0;
if (a==1 && b++==2)
if(b!=2‖c--!=3)
printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是______。
A. 1,3,3        B. 1,3,2
C. 1,2,3        D. 3,2,1
22. 有以下程序段
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch(n)
{ case 1:
case 3: printf("%d\n",n);break;
case 2:
case 4: printf("%d\n",n); continue;
case 0: exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是______。
A. 当产生的随机数n为0时结束程序运行
B. 当产生的随机数n为4时结束循环操作
C. 当产生的随机数n为1和2时不做任何操作
D. for循环语句固定执行8次
23. 以下叙述中错误的是______。
A. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
B. 用户定义的函数中可以没有return语句
C. 用户定义的函数中若没有return语句,则应当定义函数为void类型
D. 函数的return语句中可以没有表达式
24. 有以下程序
#include <stdio.h>
void fun(char *c,int d)
{ *c=*c+1;
d=d+1;
printf("%c,%c,",*c,d);
}
main()
{ char b="a",a="A";
fun(&b,a);
printf("%c,%c\n",b,a);
}
程序运行后的输出结果是______。
A. b,B,b,A        B. b,B,B,A
C. a,B,B,a        D. a,B,a,B
25. 下列选项中,能正确定义数组的语句是______。
A. #define N 2008int num[N];
B. int num[];
C. int N=2008;int num[N];
D. int num[0..2008];
26. 以下函数实现按每行8个输出w所指数组中的数据
#include <stdio.h>
void fun(int *w,int n)
{ int i;
for(i=0;i<n;i++)
{ ____________
printf("%d",w[i]);
}
printf("\n");
}
在横线处应填入的语句是______。
A. if(i%8==0) printf("\n");
B. if(i/8==0) continue;
C. if(i/8==0) printf("\n");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。