返回首页

欢迎光临本站!    

做题+继续做题+还是做题=通过二级
全国计算机等级考试 二级C 模拟试题18

一、选择题(每题2分,共计70分)

1.数据的存储结构是指
A、数据所占的存储空间量
B、数据的逻辑结构在计算机中的表示
C、数据在计算机中的顺序存储方式
D、存储在外存中的数据
A       B       C       D      
2.下列关于栈的叙述中正确的是
A、在栈中只能插入数据
B、在栈中只能删除数据
C、栈是先进先出的线性表
D、栈是先进后出的线性表
A       B       C       D      
3.树最适合用来表示____。
A、有序数组元素
B、无序数组元素
C、元素之间具有分支层次关系的数据
D、元素之间无联系的数据
A       B       C       D      
4.堆(Heap)是____。
A、完全二叉树
B、线性表
C、二叉排序树
D、平衡二叉树
A       B       C       D      
5.对建立良好的程序设计风格,下面描述正确的是
A、程序应简单、清晰、可读性好
B、符号名的命名只要符合语法
C、充分考虑程序的执行效率
D、程序的注释可有可无
A       B       C       D      
6.软件需求分析阶段的工作,可以分为四个方面需求获取,需求分析,编写需求规格说明
书,以及
A、阶段性报告
B、需求评审
C、总结
D、以上都不正确
A       B       C       D      
7.在软件的结构化设计(SD)方法中,一般分为总体设计和详细设计两个联合体其中
总体设计主要是建立
A、软件结构
B、软件流程
C、软件模型
D、软件模块
A       B       C       D      
8.下面所列各项,哪些属于数据库技术的研究领域?
Ⅰ.数据库管理系统软件的研制 Ⅱ.数据库设计
Ⅲ. 数据库理论 Ⅳ.操作系统
A、Ⅰ和Ⅱ
B、Ⅰ和Ⅲ
C、Ⅰ、Ⅱ和Ⅲ
D、全部
A       B       C       D      
9.用树形结构来表示实体之间联系的模型称为
A、关系模型
B、层次模型
C、网状模型
D、数据模型
A       B       C       D      
10.设关系R和关系S具有相同的属性个数,且相应的属性取自同一个域,则

{t|t∈R∧非t∈S} t是元组变量

其结果关系是
A、R∪S
B、R-S
C、R∩S
D、R-(R-S)
A       B       C       D      
11.一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是____
A、有零个或多个输入
B、有零个或多个输出
C、有穷性
D、可行性
A       B       C       D      
12.以下叙述中正确的是____
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C、C源程序经编译形成的二进制代码可以直接运行
D、C语言中的函数不可以单独进行编译
A       B       C       D      
13.以下符合C语言语法的实型常量是____
A、1.2E0.5
B、3.14159E
C、.5E-3
D、E15
A       B       C       D      
14.以下4组用户定义标识符中,全部合法的一组是____
A、_main
enclude
sin
B、If
-max
turbo
C、txt
REAL
3COM
D、int
k_2
_001
A       B       C       D      
15.若以下选项中的变量已正确定义,则正确的赋值语句是____
A、x1=26.8%3;
B、1+2=x2;
C、x3=0x12;
D、x4=1+2=3;
A       B       C       D      
16.设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是____
A、a++;
B、b++;
C、c++;
D、d++;
A       B       C       D      
17.设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 1/2((a+b)h) 计算结果
不相符的是____
A、(a+b)*h/2
B、(1/2)*(a+b)*h
C、(a+b)*h*1/2
D、h/2*(a+b)
A       B       C       D      
18.有以下程序
main( )
{
int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是____
A、10,01
B、02,12
C、102,10
D、02,10
A       B       C       D      
19.以下4个选项中,不能看作一条语句的是____
A、{;}
B、a=0,b=0,c=0;
C、if(a>0);
D、if(b==0) m=1;n=2;
A       B       C       D      
20.设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是____
A、scanf("%d",pa);
B、scanf("%d",a);
C、scanf("%d",&pa);
D、scanf("%d",*pa);
A       B       C       D      
21.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是____
A、if((a>b)&&(b>c)) k=1;
else k=0;
B、if((a>b)||(b>c)) k=1;
else k=0;
C、if(a<=b) k=0;
else if(b<=c)k=1;
D、if(a>b) k=1;
else if(b>c) k=1;
else k=0;
A       B       C       D      
22.有以下程序
main( )
{ char k; int i;
for(i=1;i<3;i++)
{ scanf("%c",&k);
switch(k)
{ case '0': printf("another\n");
case '1': printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是____
A、another
number
B、another
number
another
C、another
number
number
D、number
number
A       B       C       D      
23.有以下程序
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是____
A、3,2,0
B、3,2,-1
C、4,3,-1
D、5,-2,-5
A       B       C       D      
24.有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是____
A、自然数1~9的累加和
B、自然数1~10的累加和
C、自然数1~9中奇数之和
D、自然数1~10中偶数之和
A       B       C       D      
25.有以下程序
main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
printf("n=%d\n",n);
}
程序执行后的输出结果是____
A、n=5
B、n=2
C、n=3
D、n=4
A       B       C       D      
26.若程序中定义了以下函数
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);
A       B       C       D      
27.有以下程序
char fun(char x , char y)
{ if(x<y) return x;
return y;
}
main( )
{ int a='9',b='8',c='7';
printf("%c\n",fun(fun(a,b),fun(b,c)));
}
程序的执行结果是____
A、函数调用出错
B、8
C、9
D、7
A       B       C       D      
28.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是____
A、p=1;
B、*q=2;
C、q=p;
D、*p=5;
A       B       C       D      
29.有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是____
A、1,2,3
B、3,1,2
C、1,3,2
D、2,3,1
A       B       C       D      
30.有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是____
A、5
B、6
C、8
D、9
A       B       C       D      
31.有以下程序
main( )
{ char a[]="abcdefg",b[10]="abcdefg";
printf("%d %d\n",sizeof(a),sizeof(b));
}
执行后输出结果是____
A、7 7
B、8 8
C、8 10
D、10 10
A       B       C       D      
32.有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(a); swap2(b[0],b[1]);
printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);
}
其输出结果是____
A、5 3 5 3
B、5 3 3 5
C、3 5 3 5
D、3 5 5 3
A       B       C       D      
33.有以下程序
void sum(int *a)
{ a[0]=a[1];}
main( )
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--) sum(&aa[i]);
printf("%d\n",aa[0]);
}
执行后的输出结果是____
A、4
B、3
C、2
D、1
A       B       C       D      
34.有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};
printf("%d\n",f(a));
}
执行后的输出结果是____
A、12
B、11
C、18
D、16
A       B       C       D      
35.有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给a数组输入字符串的语句是____
A、gets(a)
B、gets(a[0])
C、gets(&a[0]);
D、gets(b);
A       B       C       D      
36.有以下程序
main( )
{ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
执行后输出结果是____
A、2
B、3
C、4
D、5
A       B       C       D      
37.有以下程序
int a=2;
int f(int *a)
{return (*a)++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
执行后输出结果是____
A、10
B、9
C、7
D、8
A       B       C       D      
38.有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是____
A、28
B、22
C、16
D、4
A       B       C       D      
39.设有以下语句
typedef struct S
{ int g; char h;} T;
则下面叙述中正确的是____
A、可用S定义结构体变量
B、可以用T定义结构体变量
C、S是struct类型的变量
D、T是struct S类型的变量
A       B       C       D      
40.有以下程序
struct STU{
char name[10];
int num;
};
void f1(struct STU c)
{ struct STU b={"LiSiGuo",2042};
c=b;
}
void f2(struct STU *c)
{ struct STU b={"SunDan",2044};
*c=b;
}
main( )
{ struct STU a={"YangSan",2041},b={"WangYin",2043};
f1(a);f2(&b);
printf("%d %d\n",a.num,b.num);
}
执行后的输出结果是____
A、2041 2044
B、2041 2043
C、2042 2044
D、2042 2043
A       B       C       D      
41.有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf("%d %d\n",a,b);
}
执行后输出结果是____
A、7 0
B、0 7
C、1 1
D、43 0
A       B       C       D      
42.下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(" ");
for(j=1;j<=_______;j++) printf("*");
printf("\n");
}
}
在下划线处应填入的是____
A、i
B、2*i-1
C、2*i+1
D、i+2
A       B       C       D      
43.有以下程序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i<n-1;i+=2)
for(j=i+2;j<n;j+=2)
if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++) printf("%d,",aa[i]);
printf("\n");
}
其输出结果是____
A、1,2,3,4,5,6,7,8,9,10,
B、10,9,8,7,6,5,4,3,2,1,
C、9,2,7,4,5,6,3,8,1,10,
D、1,10,3,8,5,6,7,4,9,2,
A       B       C       D      
44.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是____
A、char s[10]="abcdefg";
B、char t[]="abcdefg",*s=t;
C、char s[10];s="abcdefg";
D、char s[10];strcpy(s,"abcdefg");
A       B       C       D      
45.有以下程序
#include <string.h>
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
printf("%d\n",len);
}
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
执行后输出结果是____
A、14
B、12
C、8
D、6
A       B       C       D      
46.有以下程序
void f(int a[],int i,int j)
{ int t;
if(i<j)
{ t=a[i]; a[i]=a[j]; a[j]=t;
f(a,i+1,j-1);
}
}
main( )
{ int i,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++) printf("%d,",aa[i]); printf("\n");
}
执行后输出结果是____
A、5,4,3,2,1,
B、5,2,3,4,1,
C、1,2,3,4,5,
D、1,2,3,4,5,
A       B       C       D      
47.有以下程序
struct STU
{ char name[10];
int num;
int Score;
};
main( )
{ struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},
{"wangYin",20043,680},{"SunDan",20044,550},
{"Penghua",20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{ t=p[i];p[i]=p[j];p[j]=t;}
printf("%d %d\n",s[1].Score,p[1]->Score);
}
执行后输出结果是____
A、550 550
B、680 680
C、580 550
D、580 680
A       B       C       D      
48.有以下程序
#include <stdlib.h>
struct NODE{
int num;
struct NODE *next;
};
main( )
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf("%d\n",sum);
}
执行后的输出结果是____
A、3
B、4
C、5
D、6
A       B       C       D      
49.有以下程序
#include <stdio.h>
main( )
{ FILE *fp; int i,k=0,n=0;
fp=fopen("d1.dat","w");
for(i=1;i<4;i++) fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
执行后输出结果是____
A、1 2
B、123 0
C、1 23
D、0 0
A       B       C       D      
50.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
#include <stdio.h>
main( )
{ FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);
/*从文件中读取sizeof(int)字节的数据到变量b中*/
fclose(fp);
printf("%d\n",b);
}
执行后输出结果是____
A、2
B、1
C、4
D、3
A       B       C       D      

二、填空题(每空2分,共计30分)

1.在完全二叉树顺序存储中,若结点I有左子女,则其左子女是结点____。
输入答案,中间不含空格:
2.快速排序方法在要排序的数据____情况下最不利于发挥其长处。
输入答案,中间不含空格:
3.____是为了发现错误而执行程序的过程。
输入答案,中间不含空格:
4.三级结构以____、中间层和外层三个不同层次描述数据库,分别称为内模式、模式和
外模式。
输入答案,中间不含空格:
5.联系是指____之间的相互联系。
输入答案,中间不含空格:
6.已知字符 A 的 ASCII 码值为65,以下语句的输出结果是:____。
char ch='B';
printf("%c %d",ch,ch);
输入答案,中间不含空格:
7.有以下语句段
int n1=10,n2=20;
printf("____",n1,n2);
要求按以下格式输出 n1 和 n2 的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
输入答案,中间不含空格:
8.有以下程序
main()
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf("%d\n",t);
}
执行后输出结果是____。
输入答案,中间不含空格:
9.有以下程序
main()
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x);
执行后输出结果是____。
输入答案,中间不含空格:
10.有以下程序
#include <stdio.h>
main()
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-'0'; n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是____。
输入答案,中间不含空格:
11.有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y; }
main()
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出结果是____。
输入答案,中间不含空格:
12.函数 fun 的功能是计算 X^n
double fun(double x,int n)
{ int i; double y=1;
for(i=1;i<=n;i++)y=y*x;
return y;
}
主函数中已正确定义 m、a、b 变量并赋值,并调用 fun 函数计
算:m=a^4+b^4-(a+b)^3。实现这一计算的函数调用语句为____。
输入答案,中间不含空格:
13.下面 rotate 函数的功能是:将 n 行 n 列的矩阵A 转置为 A’,例如:
| 1 2 3 4 | |1 5 9 13|
| 5 6 7 8 | |2 6 10 14|
当 A =| 9 10 11 12 | 则 A’= |3 7 11 15| 请填空。
|13 14 15 16 | |4 8 12 16|
#define N 4
void rotate(int a[][N])
{ int i,j,t;
for(i=0;i<N;i++)
for(j=0;____;j++)
{ t=a[i][j];
____;
a[j][i]=t;
}
}
输入答案,中间不含空格:
14.上一题 第 2 空
输入答案,中间不含空格:
15.以下sstrcpy()函数实现字符串复制,即将 t 所指字符串复制到 s 所指内存空间中,
形成一个新字符串 s 。请填空。
void sstrcpy(char *s,char *t)
{ while(*s++=____); }
main()
{ char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
输入答案,中间不含空格:
16.以下程序的运行结果是:____
#include <string.h>
char *ss(char *s)
{ return s+strlen(s)/2; }
main()
{ char *p,*str="abcdefgh";
p=ss(str); printf("%s\n",p);
}
输入答案,中间不含空格:
17.下面程序的运行结果是:____。
int f(int a[],int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main()
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf("%d\n",s);
}
输入答案,中间不含空格:
18.以下程序中给指针p 分配三个 double 型动态内存单元,请填空。
#include <stdio.h>
main()
{ double *p;
p=(double *)malloc(____);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);

}
输入答案,中间不含空格:
19.以下程序的运行结果是____。
#include <string.h>
typedef struct student{
char name[10];
long sno;
float score;
}STU;
main()
{ STU a={"Zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf("%ld %s\n",d.sno,p->name);
}
输入答案,中间不含空格:
20.以下 sum 函数的功能是计算下列级数之和。
S=1+x+x^2/2!+x^3/3!+…+x^n/n!
请给函数中的各变量正确赋初值。
double sum(double x,int n)
{ int i; double a,b,s;
____
for(i=1;i<n;i++)
{ a=a*x; b=b*i; s=s+a/b;}
return s;
}
输入答案,中间不含空格:
交卷

Hi,亲爱的朋友,欢迎光临Passtwo! 您想做点什么呢?

I Want....

热门软件下载

实用电子地图

本站隆重推荐自主开发的VFP上机模拟系统免费下载使用

二级vfp上机模拟系统 通过二级

Valid XHTML 1.0 Transitional

Valid CSS!