07年4月等级考试二级C语言考前密卷(6)
一、选择题
(1)循环链表的主要优点是
A)不再需要头指针了
B)从表中任一结点出发都能访问到整个链表
C)在进行插入、删除运算时,能更好的保证链表不断开
D)已知某个结点的位置后,能够容易的找到它的直接前件
(2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
A)ABCED B)DCBEA
C)DBCEA D)CDABE
(3)n个顶点的强连通图的边数至少有
A)n-1 B)n(n-1)
C)n D)n+1
(4)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的
A)安全性 B)一致性
C)可理解性 D)合理性
(5)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的
A)抽象和信息隐蔽 B)局部化和封装化
C)内聚性和耦合性 D)激活机制和控制方法
(6)软件开发的结构化生命周期方法将软件生命周期划分成
A)定义、开发、运行维护
B)设计阶段、编程阶段、测试阶段
C)总体设计、详细设计、编程调试
D)需求分析、功能定义、系统设计
(7)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是
A)路径的集合 B)循环的集合
C)目标的集合 D)地址的集合
(8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A)特定的数据模型 B)数据无冗余
C)数据可共享 D)专门的数据管理软件
(9)数据库设计包括两个方面的设计内容,它们是
A)概念设计和逻辑设计
B)模式设计和内模式设计
C)内模式设计和物理设计
D)结构特性设计和行为特性设计
(10)实体是信息世界中广泛使用的一个术语,它用于表示
A)有生命的事物 B)无生命的事物
C)实际存在的事物 D)一切事物
(11)以下说法错误的是
A)一个算法应包含有限个步骤
B)在计算机上实现的算法是用来处理数据对象的
C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现
D)算法的目的是为了求解
(12)下列选项中不是结构化程序基本结构的是
A)顺序结构
B)跳转分支结构
C)选择结构
D)循环结构
(13)已知int k,m=1;执行语句k=-m++;后,k的值是
A)-1
B)0
C)1
D)2
(14)已知int m;float k;正确的语句是
A)(int k)%m
B)int(k)%m
C)int(k%m)
D)(int)k%m
(15)下面各选项中,均是C语言标识符的选项组是
A)33 we auto
B)_23 me _3ew
C)_43 3e_ else
D)ER -DF 32
(16)已知int k;float m=-3;执行语句k=m%2;后,变量k的值是
A)-1
B)0
C)1
D)语句有错误
(17)不能进行++和--运算的数据类型为
A)指针
B)整型
C)长整型
D)常量
(18)已知int k=10,m=3,n;则下列语句输出结果是
printf("%d\n",n=(k%m,k/m));
A)2
B)3
C)4
D)5
(19)已知int a;float b;所用的scanf调用语句格式为:
scanf("a//%d,b=%f",&a,&b);
为了将数据3和25.08分别赋给x和y,正确的输入应当是
A)3,25.08
B)a=3,b=25.08
C)a//3,b=25.08
D)a//3
(20)当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是
A)m=k=n
B)(m=k)&&(n=k)
C)(m=k)||(n=k)
D)(k=m)&&(n=k)
(21)下列程序的运行结果是
#include "stdio.h"
main()
{ int x=-9,y=5,z=8;
if(x
else z+=1;
printf("%d\n",z);}
A)6
B)7
C)8
D)9
(22)现有定义int k=1;则执行语句while(++k<4);后,k的值为
A)4
B)5
C)6
D)8
(23)以下程序的运行结果为
#include "stdio.h"
main()
{int m,n;
for(m=0,n=10;m
A)6,7
B)7,6
C)9,7
D)7,9
(24)阅读下列程序,程序的输出结果是
#include "stdio.h"
main()
{
int m,n;
float k;
for(m=6;m>2;m--)
{ k=0;
for(n=m;n>1;n--)
k=k+m*n;
}
printf("%f\n",k);
}
A)5.000000
B)15.000000
C)25.000000
D)35.000000
(25)下列程序的输出结果是
#include "stdio.h"
main()
{int i,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A)a=4,b=4
B)a=4,b=5
C)a=5,b=4
D)a=5,b=5
(26)下列选项可以正确表示字符型常量的是
A)′\r′
B)"a"
C)"\897"
D)296
(27)下面对C语言的描述中,正确的是
A)函数一定有返回值,否则无法使用函数
B)C语言函数既可以嵌套定义又可以递归调用
C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
(28)阅读下面程序段,则执行后的结果为
#include "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
(29)阅读下面程序段,则执行后输出的结果是
#include "stdio.h"
main()
{ char fun(char,int);
char a=′A′;
int b=13;
a=fun(a,b);
putchar(a);}
char fun(char a,int b)
{char k;
k=a+b;
return k;}
A)A
B)M
C)N
D)L
(30)编写求两个双精度数之和的函数,选项中正确的是
A)double add(double a,double b)
{double s;
s=a+b;
return s; }
B)double add(double a,b)
{double s;
s=a+b;
return (s);}
C)double add(double a double b)
{double s;
s=a+b;
returns;}
D)double add(a,b)
{double a,b,s;
s=a+b;
return (s);}
(31)已知int a;则下面的说明指针变量p的语句正确的是
A)int p=&a
B)int *p=a
C)int *p=&a
D)int *p=*a
(32)已知char **t;则变量t是
A)指向char变量的指针
B)指向指针的char变量
C)指向指针的指针
D)以上说法都不对
(33)阅读下面程序,执行后的结果为
#include "stdio.h"
void fun(int *a,int *b)
{ int k;
k=5;
*a=k;
*b=*a+k;}
main()
{ int *a,*b,x=10,y=15;
a=&x;
b=&y;
fun(a,b);
printf("%d,%d\n",*a,*b);}
A)10,15
B)5,15
C)5,10
D)15,10
(34)阅读下面程序,在程序执行后的结果为
#include "stdio.h"
int *fun(int *a,int *b)
{ int m;
m=*a;
m+=*b-3;
return(&m);}
main()
{int x=21,y=35,*a=&x,*b=&y;
int *k;
k=fun(a,b);
printf("%d\n",*k);}
A)53
B)21
C)35
D)14
(35)已知int a[10];则对a数组元素的正确引用是
A)a[10]
B)a
C)a+5
D)a[10-10]
(36)在C语言中,一维数组的定义方法为
类型说明符 数组名
A)[常量表达式]
B)[整型常量]
C)[整型变量]
D)[整型常量]或[整型表达式]
(37)阅读下列程序,则运行结果为
#include "stdio.h"
fun()
{ static int x=5;
x++;
return x;}
main()
{ int i,x;
for(i=0;i<3;i++)
x=fun();
printf("%d\n",x);}
A)5
B)6
C)7
D)8
(38)下列程序的输出结果是
#include "stdio.h"
#defineM(x,y)x%y
main()
{ int a,m=12,n=100;
a=M(n,m);
printf("%d\n",a--);}
A)2
B)3
C)4
D)5首页 1 2 尾页