二级C语言笔试-149
(总分100,考试时间90分钟)
一、选择题
在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1. 以下选项中不合法的标识符是
A. ptint B. FOR
C. &a D. _00
2. 下面程序中有错误的行是(每行程序前面的数字表示行号)
1 main()
2
3 int a[3]=1;
4 int i;
5 scanf("%d",&
A. ;
& 3. 阅读下面程序段,则执行后的结果为
#inclide"stdio.h"
main()
int m=4,n=2,k;
k=fun(m,n);
printf("%d\n",k);
fun(int m,int n)
return(m*m*m-n*n*n);
A. 64 B. 8
C. 56 D. 0
4. 以下合法的十六进制数是
A. 0x B. 0x4de
C. 0x1h D. oX77
5. 下面程序的运行结果是
#include<stdio.h>
main()
static char a[]="Languagef" ,b[]="programe";
char *p1,*p2; int k;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));
A. gae B. ga
C. LanSuage D. 有语法错
6. 下列叙述中正确的是
A. 在面向对象的程序设计中,各个对象之间具有密切的联系
B. 在面向对象的程序设计中,各个对象都是公用的
C. 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D. 上述三种说法都不对
7. 以下定义语句中正确的是
A. int a=b=0;
B. char A=65+1,b='b';
C. float a=1,*b=&a,*c=&b;
D. double a=0.0;b=1.1;
8. 主程序调用findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是
#include<stdio.h>
findmax(int*s,int t,int*k)
int p;
for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])( );
main()
int a[10],i,k;
for(i=0;i<10;i++)scanf("%d",&a[i]);
findmax(a,10,&k);
printf("%d%d\n" ,k,a[k]);
A. k=p B. *k=p
C. k=p-s D. *k=p-s
9. 结构化程序设计方法的3种基本控制结构中不包括
A. 循环结构 B. 递归结构
C. 顺序结构 D. 选择结构
10. 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和
A. 编码设计 B. 测试阶段
C. 运行阶段 D. 物理设计
11. 定义如下变量和数组:
int i;
int x[3][3]=1,2,3,4,5,6,7,8,9;
则下面语句的输出结果是( )。
for(i=0; i<3; i++)
printf("%d",x[i][2-i]);
A. 1 5 9 B. 1 4 7
C. 3 5 7 D. 3 6 9
12. 如果需要打开一个已经存在的非空文件“Demo”进行修改,下面选项中正确的是
A. fp=fopen("Demo","r");
B. fp=fopen("Demo","ab+");
C. fp=fopen("Demo","w+");
D. fp=fopen("Demo","r+");
13. 以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
abs(int x)
if(x>=0)return x;
else return-x;
main()
int y,z,(*p)(int x)=abs;
scanf(" %d" ,&y);
z=( *p)(y);
——;
A. printf("%d%d\n",&p,z)
B. Printf("%d%d\n",p,z)
C. printf("%d%d\n",*p,z)
D. printf("%d%d\n",p,*z)
14. 设已执行预编译命令#include<string.h>,以下程序段的输出结果是
char s[]=" an apple" ;
printf("%d\n",strlen(s));
A. 7 B. 8
C. 9 D. 10
15. x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是
A. INPUTx、y、z;
B. scanf("%d%d%d",&x,&y,&z);
C. scanf("%d%d%d",x,y,z);
D. read("%d%d%d",&x,&y,&z);
16. 下述程序的输出结果是
#include<stdio.h>
void main()
int a[5]=2,4,6,8,10;
int*p=a,**q=&p;
printf("%d,",*(p++));
pfintf("%d",**q);
A. 4,4 B. 2,2
C. 4,5 D. 2,4
17. 软件工程的出现是由于
A. 程序设计方法学的影响 B. 软件产业化的需要
C. 软件危机的出现 D. 计算机的发展
18. 下面程序段的输出为
#nclude"stdio.h"
main()
printf("%d\n",12<<2);
A. 0 B. 47
C. 48 D. 24
19. 在数据管理技术的发展过程中,可实现数据共享的是
A. 人工管理阶段 B. 文件系统阶段
C. 数据库系统阶段 D. 系统管理阶段
printf函数的作用是向终端20. 以下叙述正确的是
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和swish语句体内使用break语句
C. 在循环体内使用break语句或continue语句的作用相同
D. 从多层循环嵌套中退出时,只能使用goto语句
21. 设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
else y=1;
该语句所表示的含义是
22. 有三个关系R、S和T如下: R
B C D
a 0 k1
b 1 n1
S
B C D
f 3 h2
a 0 k1
n 2 x1
T
B C D
a 0 k1
由关系R和S通过运算得到关系T,则所使用的运算为
A. 并 B. 自然连接
C. 笛卡尔积 D. 交
23. 请阅读以下程序:
#include<stdio.h>
main()
int x=1,y=0,a=0,b=0;
switch(x)
case 1:
switch(y)
case 0:a++;break;
case 2:
a++,b++;break;
printf("a=%d,b=%d\n",a,b);
上面程序的输出结果是
A. a=2,b=1 B. a=1,b=1
C. a=1,b=0 D. a=2,b=2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论