2012年9月计算机等级考试二级C考前全真模拟试卷(九)
-
一棵二叉树第八层(根结点为第一层)的结点数最多为个
-
关系数据模型由关系数据结构、关系操作集合和3大要素组成
-
技术是将数据和行为看成是一个统一的整体,是一个软件成分,即所谓的对象。
-
在数据库的三级模式体系结构中,外模式与概念模式之间的映像,实现了数据库的独立性。
-
的目的是检查模块是否正确的组合在一起,是否能够实现规格说明文档对产品功能的要求。
-
已有定义:float x=5.5;则表达式:x=(int)x+2的值为。
-
对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0
int fun2(int x)
{if(x%2==0);
return 0;}
main()
{int n;
scanf("%d",&n);
ifprintf("even\n");
else printf(odd\n");}
-
从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
main()
{ float s,gmax,gmin;
scanf("%f,"&s)
gmax=s;gmin=s;
while
{if(s>gmax)gmax=s;
ifgmin=s;
scanf("%f",&s);}
printf("gmax=%f\ngmin=%f\n"gmax,gmin);}
-
以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算,请填空。
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
#include "math.h"
double fun(double x){ return();}
main()
{double x,y1,y2;
printf("Enter x:"); scanf("%1f,&x);
y1=fun(8+x);
y2=fun();
printf("y1=%1f,y2=%1f\n",y1,y2);
}
-
以下程序运行后的输出结构是。
main()
{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("\n");
}
}
-
以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char*s,char*t)
{while(*s++=);}
main()
{ char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",strl);
}
-
以下程序运行后的输出结果是。
main()
{ char s[]="GEFDCBA";
int p=6;
While(s[p]!=’D’)
{ printf("%c",p);
p=p-1; }
}
-
下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。
#include
#include
void strcpy2(char *s,char *t)
{char *p=;
while(*s++=*t++);
s=s-1;
while(=*p++);
}
main()
{char str1[100]="abcd",str2[]="efgh";
strcpy2(str1,str2); printf("%s\n",strl);
}
-
以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。
#include
#include
main()
{ char s[80],d[80]; int i,j;
gets(s);
for(i=j=0;s[i]!=’\0’;i++)
if() {d[j]=s[i];j++}
d[j]=’\0’;
puts(d);
}
-
以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main()
{int i,a[20],sun,counr;
sum=count=0;
for(i=0;i<20;i++) scanf("%d",);
for(i=0;i<20;i++)
{ if(a[i]>0)
{coutnt++;
sum+=();
}
}
printf(“sum=%d,count=%d\n,sum,count);
}
-
最初的计算机编程语言是( )。
- A.机器语言 B.汇编语言 C.高级语言 D.低级语言
-
专门的关系运算不包括下列的( )运算。
- A.连接运算 B.选择运算 C.投影运算 D.并运算
-
“年龄在18~25之间”这种约束是属于数据库当中的( )。
- A.原子性措施
- B.一致性措施
- C.完整性措施
- D.安全性措施
-
下列叙述中正确的是( )。
- A.程序执行的效率与数据的存储结构密切相关
- B.程序执行的效率只取决于程序的控制结构
- C.程序执行的效率只取决于所处理的数据量
- D.以上三种说法都不对
-
软件生命周期中所花费用最多的阶段是( )。
- A.详细设计 B.软件编码 C.软件测试 D.软件维护
-
不能实现函数之间数据传递的是( )。
- A.全局变量 B.局部变量 C.函数接口 D.函数返回值
-
下列叙述中正确的是( )。
- A.软件交付使用后还需要进行维护
- B.软件一旦交付使用就不需要再进行维护
- C.软件交付使用后其生命周期就结束
- D.软件维护是指修复程序中被破坏的指令
-
结构化程序设计所规定的三种基本控制结构是( )。
- A.for、while、switch
- B.输入、输出、处理
- C.顺序结构、选择结构、循环结构
- D.主程序、子程序、函数
-
下列描述中正确的是( )。
- A.软件工程只是解决软件项目的管理问题
- B.软件工程主要解决软件产品的生产率问题
- C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
- D.软件工程只是解决软件开发中的技术问题
-
下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是( )。
- A.选择 B.连接 C.投影 D.并
-
已知long i=32768;执行语句printf(“%d”,i);屏幕显示( )。
- A.-1 B.-32768 C.1 D.32768
-
下列不属于C语言关键字的是( )。
- A.default
- B.register
- C.enum
- D.external
-
设以下变量均为int类型,则值不等于7的表达式是( )。
- A.(x=y=6,x+y,x+1)
- B.(x=y=6,x+y,y+1)
- C.(x=6,x+1。y=6,x+y)
- D.(y=6,y+1,x=y,x+1)
-
已知int i=10;表达式“20-0<=i<=9”的值是( )。
- A.0 B.1 C.19 D.20
-
已知:char a;int b;float c;double d;执行语句“c=a+b+c+d;”后,变量c的数据类型是( )。
- A.int B.char C.float D.double
-
已知int i=1;执行语句while(i++<4);后,变量i的值为( )。
- A.3 B.4 C.5 D.6
-
已知int x=(1,2,3,4);变量x的值是( )。
- A.1 B.2 C.3 D.4
-
对字符数组s赋值,不合法的一个是( )。
- A.char s[]="Beijing"
- B.char s[20]={"Beijing"}
- C.char s[20];s="Beijing"
- D.char s[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}
-
在下列结论中,只有一个是错误的,它是( )。
- A.C语言允许函数的递归调用
- B.C语言中的continue语句,可以通过改变程序的结构而省略
- C.有些递归程序是不能用非递归算法实现的
- D.C语言中不允许在函数中再定义函数
-
一个函数内有数据类型说明语句如下:
double x,y,z(10)
关于此语句的解释,下面说法正确的是( )。
- A.z是一个数组,它有10个元素
- B.z是一个函数,小括号内的10是它的实参的值
- C.x是一个变量,小括号内的10是它的初值
- D.语句中有错误,因为“z(10)”应该为“z[10]”
-
若程序中定义了以下函数:
double myadd(double a,double b)
{ return(a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。
- A.double myadd(double a, b)
- B.double myadd(double ,double )
- C.double myadd(double b,double a)
- D.double myadd(double x,double y)
-
有以下程序:
main()
{ int x=0,y=5,z=3;
while(z- ->0&&++x<5?x:y--)y=y-1
Printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是( )。
- A.3,2,0 B.3,2,-1 C.4,3,-1 D.3,-1,-2
-
设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
if(a if(c==d) y=0;
Else y=1;
该语句所表示的含义是( )。
- A. B.
- C. D.
-
下面程序的输出结果是( )。
main()
{ int a,b;
scanf("%2d%3d",&a,&b);
printf("a=%d b=%d\n",a,b);
}
- A.a=12 b=34
- B.a=123 b=45
- C.a=12 b=345
- D.语句有错误
-
有以下程序:
main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i++];i++}
Printf("%d\n",k);
}
执行后输出的结果是( )。
- A.57 B.39 C.24 D.11
-
有以下程序段
int n,t=1,s=0;
Scanf("%d",&n);
do{ s=s+t;t=t-2; }while(t!=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是( )。
- A.任意正奇数
- B.任意负偶数
- C.任意正偶数
- D.任意负奇数
-
以下程序的输出结果是( )。
main()
{ int a=1;
char c=’a’;
float f=2.0;
Printf("%d\n",(!(a==0),f1=0&&c==’A’));
}
- A.0 B.1 C.2 D.3
-
以下程序运行后的输出结果是( )。
main()
{int a=2,b=3,c;
c=a;
if(a>b)c=1;
else if(a==b)c=0;
else c=-1;
printf("%d\n",c);}
- A.1 B.3 C.-1 D.0
-
有以下程序
main()
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",(++p)[i]);
}
程序运行后的输出结果是( )。
- A.012 B.135 C.234 D.345
-
有以下程序:
void f(int *x,int *y)
{ int *t;
t=x; x=y ;y=t; *x=*y;
}
main()
{ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p>q)
{ f(p,q);p++;q--}
for(i=0;i<8;i++)printf("d,",a[i]);
}
程序运行后的输出结果是( )。
- A.8,2,3,4,5,6,7,1,
- B.5,6,7,8,1,2,3,4,
- C.1,2,3,4,5,6,7,8,
- D.8,7,6,5,4,3,2,1,
-
以下程序运行后的输出结果是( )。
f(int a)
{ int b=0;static int c=3;
b++;c++;
return(a+b+c);
}
main()
{ int a=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
- A.789 B.678 C.567 D.876
-
以下程序运行后的输出结果是( )。
#include
main()
{ int i;
for (i=1;i<=5;i++)
switch(i%5)
{case 0:printf("*");break;
case 1:printf("#");break;
default:printf("\n");
case 2:printf("&");
}
}
- A. B.#& C.#& D.& *  
-
以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#define N 10
void main(int __________)
{ int i=0;
while(i
scanf("%d",x+(i++));
}
- A.*x B.x[N] C.x D.&x
-
写出下列程序段的输出结果( )。
main()
{int x=5; int y=10;
printf("%d\n",x++);
printf("%d\n",++y); }
- A.5 B.6 C.6 D.5 10 &
-
有以下程序:
main()
{ char s[]="\n123\\";
printf("%d.%d\n",strlen(s),sizeof(s));
}
执行后输出结果是( )。
- A.赋初值的字符串有错 B.6,7 C.5,6 D.6,6
-
以下叙述中错误的是( )。
- A.全局变量的作用域一定比局部变量的作用域范围大
- B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
- C.全局变量的生存期是整个程序的运行期间
- D.静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值
-
下面程序的输出结果是( )。
#inclde
#define SUB(X,Y)(X)*Y
main()
{ int a=3,b=4;
printf("%d\n",SUB(a++,b++));
}
- A.12 B.15 C.16 D.20
-
以下程序的输出结果是( )。
main()
{ char*s="12134211";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ case’1’:v1++;
case’3’:v3++;
case’2’:v2++;
defaule:v4++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);
}
- A.v1=4,v2=2,v3=1,v4=1
- B.v1=4,v2=9,v3=3,v4=1
- C.v1=5,v2=8,v3=6,v4=1
- D.v1=4,v2=7,v3=5,v4=8
-
设有如下说明
typedef struct
{ int number; char class;double score;}student;
则以下选项中,能正确定义结构体数组并赋初值的语句是( )。
- A.student tt[2]={{189,’A’,62},{190,’B’,75}};
- B.student tt[2]={189,’"A",62,190,"B",75};
- C.struct tt[2]={{189,’A’},{190,’B’}};
- D.struct tt[2]={{189,"A",62.5},{190,"B",75.0}};
-
有以下程序:
int fun()
{ static int s=0;
s+=1;
return s;
}
main(int argc,char *argv[])
{ int n,i=0;
while(argv[1][i]!=’\0’)
{ n=fun();i++;}
printf("%d\n",n*argc);
}
假设程序经编译、链接后生成可执行文件exam.exe,若键入以下命令:exam123<回车>,则运行结果为( )。
- A.6 B.8 C.3 D.4
-
有以下程序:
struct s
{ int x,y; }data[2]={10,100,20,200};
main()
{ struct s *p=data;
printf("%d\n",(++p)->x);
}
程序运行后的输出结果是( )。
- A.10 B.11 C.20 D.21
-
有以下程序:
main()
{ union
{ char ch[2];
Int d;
} s;
s.d=0x4321;
printf("%x,%x\n",s.ch[0],s.ch[1]);
}
在16位编译系统上,程序执行后的输出结果是( )。
- A.21,43
- B.43,21
- C.43,00
- D.21,00
-
设有以下语句:
Typedef struct TT
{char c; int a[4];}CIN;
则下面叙述中错误的是( )。
- A.不可以用TT定义结构体变量
- B.TT是结构体标识名
- C.可以用CIN定义结构体变量
- D.CIN是struct TT类型的变量
-
有以下程序:
point(char*p) { *p=’d’; }
main()
{ char b[4]={’a’,’b’,’c’,’d’},*p=b;
Point(p); printf("%c\n",*p);
}
程序运行后的输出结果是( )。
- A.a B.b C.c D.d
-
下列关于结构型、共用型、枚举型的定义语句中,正确的是( )。
- A.struct ss{int x}
- B.union uu{int x;}xx=5;
- C.enum ee{int x};
- D.struct{int x;};
-
如果将主文件型指针fp指向的文件内部指针置于文件尾,正确的语句是( )。
- A.feof(fp);
- B.rewind(fp);
- C.fseek(fp,OL,0);
- D.fseek(fp,OL,2);
-
下面程序的输出结果为( )。
struct st
{ int x;
int*y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={ 50,&dt[0],60,&dt[1],
70,&dt[2],80&dt[3]};
main()
{ p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
- A.10 B.50 C.51 D.60 20 60 &
-
有以下程序:
#include
main()
{ FILE*fp; int i,k=0,n=0;
fp=fopen("d1.dat","wb+");
for(i=1;i<4;i++) fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fseek(fp,1L,SEEK_SET);
fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n);
fclose(fp);
}
执行后输出结果是( )。
- A.1 2 B.123 0 C.1 23 D.230
-
下面程序运行后的输出结果是( )。
struct abc
{
int a,b,c;
}
main()
{
struct abc s[2]={{1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
- A.5 B.6 C.7 D.8