2014年3月计算机等级考试二级C考前内部押题卷
-
汇编程序的功能是将汇编语言所编写的源程序翻译成由【】组成的目标程序。
-
在面向对象方法中,类之间共享属性和操作的机制称为【】。
-
数据的逻辑结构有线性结构【】两大类
-
若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法
-
【】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。
-
若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句【】。
-
以下程序运行后的输出结果是【】。
main()
{int a,b,c;
a=97;
b=097;
c=0x97;
printf("%d %d %d\n",a,b,c);
}
-
设有如下程序:
main()
{int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为【】。
-
以下程序运行后的输出结果是【】。
main()
int p[7]={11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7&&p[i]%2! =1) j+=p[i++];
printf("%d\n",j);
}
-
以下程序运行后的输出结果是【】。
main()
{int i=10,j=0;
do
{j=j+i;i--;}
while(i>2);
printf("%d\n",j);
}
-
以下程序运行后输出结果是【】。
int a=30,b=40;
void fun(int x,int y)
{ int z;
z=(x>y)?x:y;
a=z+10;
b=z+20;
}
main()
{
printf("a=%d,b=%d\n",a,b);
fun(a,b);
prinf("a=%d,b=%d\n",a,b);
}
-
以下程序运行后的输出结果是【】。
main()
{int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
-
下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。
main()
{ int i,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
if(【】)continue;
else for(k=0;k<=9;k++)
if(【】)count++;
printf("%d",count);
}
-
以下ispeime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。
int isprime(int a)
{int i;
for(i=2;i<=a/2;【】)
if(a%i= =0) return(0);
【】;
}
-
以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。
main()
{
int i,a[20],sum,count;
sum=count=【】;
for(i=0; i<20;i++)scanf("%d",【】);
for(i=0; i<20;i++)
{
if(a[i]>0)
{ count++;
sum+=【】;
}
}
printf("sum=%d.count=%d\n",sum,count);
}
-
若变量n中的值为24,则pint函数共输出【】行。
void pint(int n,int aa[])
{ int i;
for(i=1; i<=n; i++)
{ printf("%6d",aa[i]);
if(!(i%5))printf("\n");
}
printf("\n");
}
-
对于算法的每一步,指令必须是可执行的。算法的( )要求算法在有限步骤之后能够达到预期的目的。
- A)可行性 B)有穷性
- C)正确性 D)确定性
-
下列叙述中错误的是( )。
- A)一种数据的逻辑结构可以有多种存储结构
- B)数据的存储结构与数据处理的效率无关
- C)数据的存储结构与数据处理的效率密切相关
- D)数据的存储结构在计算机中所占的空间不一定是连续的
-
最简单的交换排序方法是( )。
- A)快速排序 B)选择排序
- C)堆排序 D)冒泡排序
-
在结构化程序设计方法中,下面内聚性最弱的是( )。
- A)逻辑内聚 B)时间内聚
- C)偶然内聚 D)过程内聚
-
在深度为7的满二叉树中,叶子结点的个数为( )。
- A)32 B)31
- C)64 D)63
-
在结构化方法中,软件功能分解属于下列软件开发中的阶段是()。
- A.详细设计
- B.需求分析
- C.总体设计
- D.编程调试
-
结构化程序设计的主要特征是( )。
- A)封装和数据隐藏 B)集成和重用
- C)数据和处理数据的过程分离 D)把数据和处理数据的过程看成一个整体
-
概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()
- A)把软件划分成模块 B)确定模块之间的调用关系
- C)确定各个模块的功能 D)设计每个模块的伪代码
-
在数据库管理系统的层次结构中,处于最上层的是( )。
- A)应用层 B)语言翻译处理层
- C)数据存取层 D)数据存储层
-
以下叙述中错误的是()。
- A)C语言是高级语言
- B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
- C)C语言产生的目标程序后缀名为OBJ
- D)C语言中的函数不可以单独进行编译
-
数据库关系模型中可以有三类完整性约束,下列选项中不属于三类完整性约束的是()。
- A)实体完整性规则 B)参照完整性规则
- C)对象完整性规则 D)用户自定义完整性规则
-
以下符号C语言语法的实型常量是( )。
- A)1.2E0.5 B)3.14159E
- C)5E-3 D)E15
-
下列定义变量的语句中正确的是( )。
- A)int _int; B)double 3int_;
- C)char for; D)float US&;
-
若变量x,y已正确定义并赋值,以下符号C语言语法的表达式是( )。
- A)++x,y=x-- B)x+1=y
- C)x=x+10=x+y D)double(x)/10
-
以下不能定义为用户标识符的是()。
- A)Main B)_0
- C)_int D)sizeof
-
下列关于C语言的叙述错误的是( )。
- A)大写字母和小写字母的意义相同
- B)不同类型的变量可以在一个表达式中
- C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
- D)同一个运算符号在不同的场合可以有不同的含义
-
有以下程序:
main()
{
int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是()。
- A)12353514 B)12353513
- C)12343514 D)12343513
-
如果int
- a=1,
- b=2,
- c=3,
- d=4;则条件表达式“aA)1 B)2
- C)3 D)4
-
已知int a=15,执行语句a=a<<2以后,变量a的值是( )。
- A)20 B)40
- C)60 D)80
-
已知:int x,y;double z;则以下语句中错误的函数调用是( )。
- A.scanf("%d,%1x,%1e",&x,&y,&z);
- B.scanf("%1d*%d&1f",&x,&y,&z);
- C.scanf("%x%*d%o",&x,&y);
- D.scanf("%x%o%6.2f",&x,&y,&z);
-
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。
main()
/* Beginning */
{ int r; float s;
scanf("%d",&r);
s=*PI*r*r; printf("s=%f\n",s);
}
若想纠正错误,应该( )。
- A)更改注释语句书写位置 B)存放圆半径的变量r应该定义为整型
- C)输出语句中不能加“s=” D)给计算面积的PI变量赋值
-
已定义c为字符型常量,则下列语句中正确的是( )。
- A)c=′97′ B)c="97"
- C)c=97 D)c="a"
-
以下程序的输出结果是()。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b║!c;
printf("%d\n",d);
}
- A)1 B)0
- C)非0的数 D)-1
-
有以下程序:
main()
{
char a[7]= "a0\OaO\0";int i,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是()。
- A)2 2 B)7 6
- C)7 5 D)6 2
-
有以下程序语句,正确的是( )。
char a,b,c*d;
- A)a=′56′; B)b=′\xbc′;
- C)c=′\0xab′; D)d=′\0127′;
-
有以下程序:
void main()
{
int i=10,j=1;
printf("%d,%d\n",2*i--,++j*2);
}
执行后输出的结果是()。
- A)20,4 B)10,2
- C)20,1 D)10,4
-
设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是()。
- A)*p=*q; B)p=q;
- C)*p=&n1; D)p=*q;
-
设变量已正确定义,则以下能正确计算f=n!的程序段是( )。
- A)f=0; B)f=1;
- for(i=1;i<=n;i++) f*=i; for(i=1;i
- C)f=1; D)f=1;
- for(i=n;i>1;i++) f*=i; for(i=n;i>=2;i--) f*=i;
-
已有定义:char a[]="xyz",b[]={′x′,′y′,′z′};,以下叙述中正确的是( )。
- A)数组a和b的长度相同 B)a数组长度小于b数组长度
- C)a数组长度大于b数组长度 D)上述说法都不对
-
在C语言中,要求运算数必须是整型的运算符是( )。
- A)% B)/
- C)< D)!
-
以下叙述中错误的是( )。
- A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
- B)数组名代表的是数组所占存储区的首地址,其值不可改变
- C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界的出错信息”
- D)可以通过赋初值的方式确定数组元素的个数
-
C语言提供的合法的数据类型关键字是( )。
- A)Double B)short
- C)integer D)Char
-
以下不能正确定义二维数组的选项是()。
- A)int a[2][2]={{1},{2}}; B)int a[][2]={1,2,3,4};
- C)int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}};
-
以下能正确定义一维数组的选项是( )。
- A)int num[]; B)#define N 100
- int num[N]
- C)int num[0..100]; D)int N=100
- int num[N]
-
有以下程序:
#include
main()
{ char c1=′1′,c2=′2′;
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:a<回车>后,以下叙述正确的是( )。
- A)变量c1被赋予字符a,c2被赋予回车符
- B)程序将等待用户输入第2个字符
- C)变量c1被赋予字符a,c2中仍是原有字符2
- D)变量c1被赋予字符a,c2中将无确定值
-
有以下程序:
void main()
{ int k=0,n=0;
while(k<5)
{ switch(k)
{ default: break;
case 1:n+=k;
case 2:
case 3:n+=k;
}
k++;
}
printf("%d\n",n);
}
程序运行后的输出结果是( )。
- A)0 B)4
- C)6 D)7
-
有以下程序:
fun(int a,int b)
{ a++;b++;
if(a>b) return(a);
else return(b);
}
void
main()
{ int x=3,y=8,z=6,r;
r=fun(fun(x,y++),2*z);
printf("%d\n",r);
}
程序运行后的输出结果是( )。
- A.13 B.6
- C.8 D.12
-
若有下面说明和定义:
struct test
{ int m1;char m2;float m3;
union uu(char u1[5];int u2[2];)ua;
}myaa;
则sizeof(struct test)的值是( )。
- A)20 B)16
- C)14 D)9
-
下面程序的输出结果是()。
#include
main()
{ int a[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};
int i,j,n;
n=9;
i=n/5;
j=n-i*5-1;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
执行后输出结果是( )。
- A.a[1][3]=6
- B.a[1][3]=-3
- C.a[1][3]=2
- D.不确定
-
以下程序的输出结果是( )。
#define f(x) x*x
main()
{ int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
- A.9 B.6
- C.36 D.18
-
设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则下列不能正确执行的语句是( )。
- A.k=*p1+*p2 B.p2=k
- C.p1=p2 D.k=*p1*(*p2)
-
有以下程序段:
main()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了“c=&b; b=&a;”语句后,表达式“**c”的值是( )。
- A.变量a的地址 B.变量b中的值
- C.变量a中的值 D.变量b的地址
-
有以下程序:
main()
{ char *p[]={"3697","2584"};
int i,j; long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!=’\0’)
{ if((p[i][j]-’0’)%2= =0)num=10*num+p[i][j]-’0’;
j+=2;
}
}
printf("%d\n",num);
}
程序执行后的输出结果是( )。
- A.35 B.37
- C.39 D.28
-
下面程序的输出结果是( )。
#include "string.h"
fun(char*w,int n)
{ char t,*s1,*s2;
s1=w; s2=w+n-1;
while(s1
{ t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{ static char p[]="1234567";
fun(p,strlen(p));
printf("%s",p);
}
- A.7654321 B.1717171
- C.7171717 D.1711717
-
有如下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是( )。
- A.*p+9
- B.*(p+8)
- C.*p+=9
- D.p+8
-
以下叙述中正确的是()。
- A)C程序中的#include和#define行均是C语句,只是语法不同
- B)除赋值运算符外,逗号运算符的优先级最低
- C)C程序中,j++;是赋值语句
- D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算
-
若有以下定义:int t[3][2];能正确表示t数组元素地址的表达式是( )。
- A)&t[3][2] B)t[3]
- C)t[1] D)*t[2]
-
若有以下说明和语句:
sturct st
{ int n;char *ch;};
struct st a[3]={5, "abc",7, "def",9, "ghk"},*p=a;
则值为6的表达式是( )。
- A)p++->n B)p->n++
- C)(*p).n++ D)++p->n
-
有定义如下:
struct sk
{ int a;
float b;
}data,*p;
如果p=&data;则对于结构变量data的成员a的正确引用时( )
- A)(*).data.a B)(*p).a
- C)p->data.a D)p.data.a
-
有以下程序:
main()
{ int a[3][3],*p,i;
p=&a[1][1];
for(i=0;i<4;i++) p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是()
- A)3 B)6
- C)9 D)2