(1)根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
(2)设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为
A)12 B)13
C)14 D)15
(3)在下列几种排序方法中,要求内存量最大的是
A)插入排序
B)选择排序
C)快速排序
D)归并排序
(4)下列叙述中,不属于结构化程序设计方法的主要原则的是
A)自顶向下
B)由底向上
C)模块化
D)限制使用goto语句
(5)下列不属于软件调试技术的是
A)强行排错法
B)集成测试法
C)回溯法
D)原因排除法
(6)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为
A)PAD图 B)N-S图
C)结构图 D)数据流图
(7)软件复杂性度量的参数包括
A)效率
B)规模
C)完整性
D)容错性
(8)下列叙述中,不属于数据库系统的是
A)数据库
B)数据库管理系统
C)数据库管理员
D)数据库应用系统
(9)数据库系统的核心是
A)数据库
B)数据库管理系统
C)数据模型
D)软件工具
(10)视图设计一般有3种设计次序,下列不属于视图设计的是
A)自顶向下 B)由外向内
C)由内向外 D)自底向上
(11)下列常数中不能作为C语言常量的是
A)0xabc
B)2.5e-0.2
C)32
D)0747
(12)设int型的数据长度为2个字节,则unsigned int 类型数据的取值范围是
A)-127~128
B)0~255
C)0~65535
D)0~32768
(13)已知int t=6,s;则执行语句s=(++t)+(t++);后,s的值是
A)12
B)13
C)14
D)15
(14)已知int x=6,y=2,z;则执行表达式z=x=x》y后,变量z的值为
A)0
B)1
C)4
D)5
www.lexue88.com
(15)已知int i,a;执行语句i=(a=3,a++,--a,a+4,a+5,++a);后,变量i的值为
A)2
B)3
C)4
D)5
(16)下列说法中正确的是
A)一个C程序是从命令行开始执行的
B)C程序中有些执行语句不用分号(;)结束
C)分号不是C语句的一部分,是C语句之间的分隔符
D)命令行必须用“#”开头,最后不能加“;”号,命令行不是C程序中的语句
(17)已知int x=2;执行语句x*=x+=++x;后,x的值是
A)16
B)26
C)36
D)46
(18)已知int a=20,b=5;则执行以下语句后的输出结果是
printf(“%d\n”,a%=(b%=2));
A)0
B)1
C)2
D)3
(19)现有以下程序段
#include 《stdio.h》
main()
{ int a,b,c;
scanf(“a=%*d%d,b=%d%*d,c=%d”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c); }
若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是
A)a=10]20,b=20]30,c=40《CR》
B)20,30,40《CR》
C)a=20,b=30,c=40《CR》
D)a=10]20,b=30]20,c=40《CR》
[注]: “]”表示空格,《CR》表示回车
(20)已知int x=5,y=3;则表达式(x||y)&&78的结果为
A)1
B)0
C)5
D)78
(21)有如下程序段
#include “stdio.h”
main()
{int a=10,b=50,c=30;
a=a》30?1:2;
b=b》30?1:2;
c=c》30?1:2;
printf(“%d,%d,%d\n”,a,b,c);}
则执行结果为
A)2,1,2
B)1,2,1
C)1,1,2
D)2,1,1
(22)阅读如下程序段
#include “stdio.h”
main()
{ int a=45,b=40,c=50,d;
d=a》30?b:c;
switch(d)
{ case 30 : printf(“%d,”,a);
case 40 : printf(“%d,”,b);
case 50 : printf(“%d,”,c);
default : printf(“#”);}}
则输出的结果是
A)40,50,
B)50,#
C)40,#
D)40,50,#
(23)若有定义int k=10;则下列程序的输出结果为
do{
printf(“%d”,k--); } while(!k);
A)9
B)10
C)10987654321
D)没有输出
(24)阅读下列程序段,则程序的输出结果是
#include “stdio.h”
main()
{ int a=10,b=10,k;
for(k=0;a》8;b=++k)
printf(“%d,%d,”,a--,--b);
printf(“\n”);}
A)10,10,10,0,
www.lexue88.com
B)10,9,9,0,
C)10,10,9,1,
D)9,9,9,1,
(25)下列程序的运行结果是
#include “stdio.h”
main()
{int a,b,m;
for(a=5;a》=1;a--)
{ m=0;
for(b=a;b《=5;b++)
m=m+a*b;}
printf(“%d\n”,m);}
A)30
B)15
C)20
D)10
(26)有字符串如下,“\n\\\407as1\”\xabc“,则字符串的长度为
A)6
B)7
C)8
D)9
(27)阅读下面程序段
#include ”stdio.h“
main()
{ char c;
c=(′z′-′a′)/2+′A′;
putchar(c);}
输出结果为
A)M
B)N
C)O
D)Q
(28)下列说法中不正确的是
A)C语言规定,不能在一个函数的内部再定义函数
B)在没有声明函数返回值类型的情况下,C默认的函数返回值类型为int型
C)函数的类型可以是整型、实型、字符型,但不能是指针型
D)函数可以没有形参,但函数名后的一对圆括号不能省略
(29)现有如下程序,则程序的输出结果为
#include ”stdio.h“
int f(int a,int b)
{int c;
if(a》0&&a《10)c=(a+b)/2;
else c=a*b/2;
return c;}
main()
{ int a=8,b=20,c;
c=f(a,b);
printf(”%d\n“,c);}
A)随机数
B)80
C)28
D)14
(30)阅读如下程序段,则程序段的执行后的输出结果为
#include ”stdio.h“
main()
{ char c;
int i;
char count();
int p(char);
for(i=0;i《30;i++)c=count();
p(c);}
char count()
{ char str=′A′;
str+=1;
return(str);}
p(char c)
{putchar(c);
putchar(′\n′);}
A)A
B)B
C)a
D)b
(31)阅读如下程序段,则执行后的结果为
#include ”stdio.h“
main()
{int a,*p,*q,**w;
p=&a;
q=&a;
w=&p;
*p=5%6;
*q=5;
**w=3;
printf(”%d\n“,a);}
A)无确定值
B)1
C)5
D)3
(32)现有定义int a=10,*p=&a;则不能使a的内容增1的语句是
A)*p++;
B)*p=*p+1;
C)++*p;
D)*p+=1;
(33)现有下列程序段
#include ”stdio.h“
void JFT(int *a,int *b,int *c,int *d,int *e)
{int i,j,k,m;
for(i=0;i《*a;i++)
for(j=0;j《*b;j++)
for(k=0;k《*c;k++)
for(m=0;m《*d;m++)*e++;}
main()
{int a=10,b=10,c=10,d=10,e=0;
JFT(&a,&b,&c,&d,&e);
printf(”%d\n“,e);}
则程序段的输出结果是
A)10000
B)1000
C)10001
D)0
(34)已知:int c[5][6];则对数组元素引用不正确的是
A)c[0+2][2*1]
B)c[1][3]
C)c[4-2][0]
D)c[5][2]
(35)以下能对二维数组c进行正确的初始化的语句是
A)int c[3][]={{3},{3},{4}};
B)int c[][3]={{3},{3},{4}};
C)int c[3][2]={{3},{3},{4},{5}};
D)int c[][3]={{3},{},{3}};
(36)阅读下列程序段,则程序段实现的功能是
#include ”stdio.h“
main()
{ int k[10];
int j;
for(j=0;j《10;j++)
scanf(”%d“,&k[j]);
for(j=9;j》=0;j--)
printf(”%d,“,k[j]);}
A)输入10个数据的顺序输入并输出
B)输入10个数据的逆序存放
C)输入10个数据的逆序输出
D)以上叙述均错误
(37)阅读程序,则执行后的结果为
#include ”stdio.h“
main()
{int i,m,n;
for(i=0;i《3;i++)
{m=test1();
n=test2();}
printf(”%d,%d\n“,m,n);}
test1()
{ int x=0;
x++;
return x;}
test2()
{static int x=0;
x++;
return x;}
A)1,1
B)1,3
C)3,1
D)3,3
(38)以下关于宏替换叙述中,错误的是
A)宏替换占用编译时间
B)替换文本中可以包含已定义过的宏名
C)宏名可以由+号组成
D)宏替换只能是字符替换
,2017计算机二级考试C语言考前密卷九tag: 计算机等级考试,计算机等级考试试题,全国计算机等级考试试题,计算机等级考试