07年4月等级考试二级C语言考前密卷(9)

全国等级考试资料网 2019-01-23 14:13:06 93

(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
(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
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
B)20,30,40
C)a=20,b=30,c=40
D)a=10]20,b=30]20,c=40
[注]: “]”表示空格,表示回车
(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,
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)宏替换只能是字符替换首页 1 2 尾页 相关资料

相关阅读