首 页
·
考试新闻
·
考试书籍
·
网站博客
·
软件下载
·
系统帮助
欢迎光临本站!
做题+继续做题+还是做题=通过二级
全国计算机等级考试 二级C 模拟试题17
一、选择题(每题2分,共计70分)
1.下面叙述正确的是
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
A
B
C
D
2.以下数据结构中不属于线性结构的是
A、队列
B、线性表
C、二叉树
D、栈
A
B
C
D
3.在一颗二叉树上第5层的结点数最多是
A、8
B、16
C、32
D、15
A
B
C
D
4.下面描述中,符合结构化程序设计风格的是
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率
D、不使用goto语句
A
B
C
D
5.下面概念中,不属于面向对象方法的是
A、对象
B、继承
C、类
D、过程调用
A
B
C
D
6.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是
A、可行性分析
B、需求分析
C、详细设计
D、程序编码
A
B
C
D
7.在软件开发中,下面任务不属于设计阶段的是
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.下列模式中,能够给出数据库物理存储结构与物理存取方法的是
A、内模式
B、外模式
C、概念模式
D、逻辑模式
A
B
C
D
11.用C语言编写的代码程序
A、可立即执行
B、是一个源程序
C、经过编译即可执行
D、经过编译解释才能执行
A
B
C
D
12.结构化程序由三种基本结构组成,三种基本结构组成的算法
A、可以完成任何复杂的任务
B、只能完成部分复杂的任务
C、只能完成符合结构化的任务
D、只能完成一些简单的任务
A
B
C
D
13.以下定义语句中正确的是
A、char a='A' b='B';
B、float a=b=10.0;
C、int a=10,*b=&a;
D、float *a,b=&a;
A
B
C
D
14.下列选项中,不能用作标识符的是
A、_1234_
B、_1_2
C、int_2_
D、2_int_
A
B
C
D
15.有以下定义语句
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是
A、a=a+b=b++
B、w%((int)a+b)
C、(c+w)%(int)a
D、w=a=b;
A
B
C
D
16.有以下程序
main()
{int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是
A、3
B、5
C、-1
D、-2
A
B
C
D
17.有以下程序
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是
A、b,b
B、b,c
C、a,b
D、a,c
A
B
C
D
18.有以下程序
main()
{ int m=0256,n=256;
printf("%o %o\n",m,n);
}
程序运行后的输出结果是
A、0256 0400
B、0256 256
C、256 400
D、400 400
A
B
C
D
19.有以下程序
main()
{ int a=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是
A、错误信息
B、666
C、888
D、666,888
A
B
C
D
20.有以下程序
main()
{int i;
for(i=0;i<3;i++)
switch(i)
{ case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
程序运行后的输出结果是
A、022111
B、021021
C、000122
D、012
A
B
C
D
21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
A、abs(x-y)<10
B、x-y>-10&&x-y<10
C、!(x-y)<-10||!(y-x)>10
D、(x-y)*(x-y)<100
A
B
C
D
22.有以下程序
main()
{int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d++ +1);
else
printf("%d",++d +1);
printf("%d\n",d);
}
程序运行后的输出结果是
A、2
B、3
C、43
D、44
A
B
C
D
23.下列条件语句中,功能与其他语句不同的是
A、if(a) printf("%d\n",x); else printf("%d\n",y);
B、if(a==0) printf("%d\n",y); else printf("%d\n",x);
C、if(a!=0) printf("%d\n",x); else printf("%d\n",y);
D、if(a==0) printf("%d\n",x); else printf("%d\n",y);
A
B
C
D
24.有以下程序
main()
{int i=0,s=0;
for(;;)
{
if(i==3||i==5)continue;
if(i==6) break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是
A、10
B、13
C、21
D、程序进行死循环
A
B
C
D
25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
A、for(i=1,p=1;i<=5;i++) p*=i;
B、for(i=1;i<=5;i++) {p=1;p*=i;}
C、i=1;p=1;while(i<=5) {p*=i;i++;}
D、i=1;p=1;do{p*=i;i++;} while(i<=5);
A
B
C
D
26.有以下程序
main()
{char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
print("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是
A、6,5,A,B
B、6,5,65,66
C、6,5,6,5
D、6,5,6,6
A
B
C
D
27.以下能正确定义二维数组的是
A、int a[][3];
B、int a[][3]={2*3};
C、int a[][3]={};
D、int a[2][3]={{1},{2},{3,4}};
A
B
C
D
28.有以下程序
int f(int a)
{return a%2;}
main()
{int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++) d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是
A、9
B、11
C、19
D、21
A
B
C
D
29.若有以下说明和语句
int c[4][5],(*p)[5];
p=c;
能够正确引用c数组元素的是
A、p+1
B、*(p+3)
C、*(p+1)+3
D、*(p[0]+2)
A
B
C
D
30.有以下程序
main()
{int a=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=q;p=q; q=r;
printf("%d,%d,%d,%d\n",*p,*q,a,b);
}
程序运行后的输出结果是
A、8,7,8,7
B、7,8,7,8
C、8,7,7,8
D、7,8,8,7
A
B
C
D
31.s1和s2已正确定义并分别指向两个字符串。若要求:当s1 所指串大于 s2所指串时,执行语句S;
则以下选项中正确的是
A、if(s1>s2)S;
B、if(strcmp(s1,s2))S);
C、if(strcmp(s2,s1)>0)S;
D、if(strcmp(s1,s2)>0)S;
A
B
C
D
32.设有定义语句
int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素的值,不能完成此操作的语句是
A、for(i=0;i<6;i++) print("%2d",*(p++));
B、for(i=0;i<6;i++) print("%2d",*(p+i));
C、for(i=0;i<6;i++) print("%2d",*p++);
D、for(i=0;i<6;i++) print("%2d",*(p)++);
A
B
C
D
33.有以下程序
#include <stdio.h>
main()
{int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d %d \n",*p,*q);
程序运行后的输出结果是
A、运行后报错
B、6 6
C、6 11
D、5 10
A
B
C
D
34.设有以下定义和语句
int a[3][2]={1,2,3,4,5,6},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是
A、a[0][1]
B、a[1][0]
C、a[1][1]
D、a[1][2]
A
B
C
D
35.有以下程序
main()
{char str[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是
A、China
B、Beijing
C、ng
D、ing
A
B
C
D
36.有以下程序
main()
{char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
程序运行后的输出结果是
A、ABCD
BCD
CD
D
B、A
B
C
D
C、B
C
D
D、BCD
CD
D
A
B
C
D
37.在函数调用过程中, 如果函数funA调用了函数funB,函数funB又调用了函数funA,则
A、称为函数的直接递归调用
B、称为函数的间接递归调用
C、称为函数的循环调用
D、C语言中不允许这样的递归调用
A
B
C
D
38.已有定义:int i,a[10],*p;则合法的赋值语句是
A、p=100;
B、p=a[5];
C、p=a[2]+2;
D、p=a+2;
A
B
C
D
39.以下叙述中正确的是
A、局部变量说明为static 存储类,其生存期将得到延长
B、全局变量说明为static 存储类,其作用域将被扩大
C、任何存储类的变量在未赋初值时,其值都是不确定的
D、形参可以使用的存储类说明符与局部变量完全相同
A
B
C
D
40.设有定义语句:char c1=92,c2=92;则以下表达式中值为零的是
A、c1^c2
B、c1&c2
C、~c2
D、c1|c2
A
B
C
D
41.程序中对fun函数有如下说明
void *fun();
此说明的含义是
A、fun 函数无返回值
B、fun 函数的返回值可以是任意的数据类型
C、fun 函数的返回值是无值型的指针类型
D、指针fun指向一个函数,该函数无返回值
A
B
C
D
42.有以下程序
main()
{char s[]="Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
}
程序运行后的输出结果是(选项D中的第一行是空行)
A、n/No
Yes
/No
B、/No
Yes
C、n/No
Yes
/No
D、/No
Yes
A
B
C
D
43.有以下程序
main()
{unsigned int a;
int b=-1;
a=b;
printf("%u",a);
}
程序运行后的输出结果是
A、-1
B、65535
C、32767
D、-32768
A
B
C
D
44.有以下程序
void fun(int *a,int i,int j)
{int t;
if(i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
i++; j--;
fun(a,i,j);
}
}
main()
{int x[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<4;i++)printf("%2d",x[i]);
printf("\n");
}
程序运行后的输出结果是
A、1 2 6 8
B、8 6 2 1
C、8 1 6 2
D、8 6 1 2
A
B
C
D
45.有以下说明和定义语句
struct student
{ int age; char num[8];};
struct student stu[3]={{20,"200401"},{21,"200402"},{19,{"200403"}};
struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是
A、(p++)->num
B、p->num
C、(*p).num
D、stu[3].age
A
B
C
D
46.有以下程序
main()
{int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<8;i++)printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是
A、75310246
B、01234567
C、76310462
D、13570246
A
B
C
D
47.有以下程序
#include <stdio.h>
main()
{FILE *fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt 中原有内容为:good,则运行以下程序后文件f1.txt中的内容为
A、goodabc
B、abcd
C、abc
D、abcgood
A
B
C
D
48.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表
的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。
#include <stdio.h>
struct node
{char data; struct node *next;};
struct node * CreatList(char *s)
{struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{p=(struct node *)malloc(sizeof(struct node));
p->data=___;
q-next=p;
q=___;
s++;
}
p->next='\0';
return h;
}
main()
{char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A、char *
B、struct node
C、struct node *
D、char
A
B
C
D
49.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表
的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。
#include <stdio.h>
struct node
{char data; struct node *next;};
___CreatList(char *s)
{struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{p=(struct node *)malloc(sizeof(struct node));
p->data=___;
q-next=p;
q=___;
s++;
}
p->next='\0';
return h;
}
main()
{char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A、*s
B、s
C、*s++
D、(*s)++
A
B
C
D
50.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表
的各个结点中,请从与下划线处选择出正确的选项。
#include <stdio.h>
struct node
{char data; struct node *next;};
struct node * CreatList(char *s)
{struct node *h,*p,*q;
h=(struct node *)malloc(sizeof(struct node));
p=q=h;
while(*s!='\0')
{p=(struct node *)malloc(sizeof(struct node));
p->data= *s;
q->next=p;
q=___;
s++;
}
p->next='\0';
return h;
}
main()
{char str[]="link list";
struct node *head;
head=CreatList(str);
...
}
A、p->next
B、p
C、s
D、s->next
A
B
C
D
二、填空题(每空2分,共计30分)
1.算法的复杂度主要包括____复杂度和空间复杂度。
输入答案,中间不含空格:
2.数据的逻辑结构在计算机存储空间中的存放形式称为数据的____。
输入答案,中间不含空格:
3.若按功能划分,软件测试的方法通常分为白盒测试方法盒____测试方法。
输入答案,中间不含空格:
4.如果一个工人可管理多个设备,而一个设备只能被一个工人管理,则实体“工人”
和实体“设备”之间存在____关系。
输入答案,中间不含空格:
5.关系数据库管理系统能实现的专门关系运算包括选择、连接、____。
输入答案,中间不含空格:
6.以下程序段的输出结果是____。
int i=9;
printf("%o\n",i);
输入答案,中间不含空格:
7.以下程序运行后的输出结果是____。
main()
{int a,b,c;
a=25;
b=025;
c=0x25;
printf("%d %d %d\n",a,b,c);
}
输入答案,中间不含空格:
8.以下程序运行后的输出结果是____。
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);
}
输入答案,中间不含空格:
9.以下程序运行后的输出结果是____。
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{ case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("%d %d\n",a,b);
}
输入答案,中间不含空格:
10.以下程序运行后的输出结果是____。
main()
{int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int i=0,j=0,s=0;
while(i++<4)
{ if(i==2||i==4)continue;
j=0;
do{ s+=a[i][j];j++; }while(j<4);
}
printf("%d\n",s);
}
输入答案,中间不含空格:
11.以下程序运行后的输出结果是____。
main()
{char a[]="Language",b[]="Programe";
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));
}
输入答案,中间不含空格:
12.以下程序运行后的输出结果是____。
main()
{char a[]="123456789",*p; int i=0;
p=a;
while(*p)
{ if(i%2==0) *p='*';
p++; i++;
}
puts(a);
}
输入答案,中间不含空格:
13.以下程序中,for 循环体执行的次数是____。
#define N 2
#define M N+1
#define K M+1*M/2
main()
{ int i;
for(i=1;i<K;i++)
{...}
...
}
输入答案,中间不含空格:
14.以下程序通过函数SunFun求 f(0)、f(1)、f(2)、f(3) ... f(9)、f(10)
这十一项之和。其中,f(x)=x.x+1,由F函数实现。请填空。
main()
{printf("The sum=%d\n",SunFun(10));}
SunFun(int n)
{int x,s=0;
for(x=0;x<=n;x++)s+=F(____);
return s;
}
F(int x)
{ return (____); }
输入答案,中间不含空格:
15.上一题 第 2 空
输入答案,中间不含空格:
16.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main()
{int i,a[20],sum,count;
sun=count=0;
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);
}
输入答案,中间不含空格:
17.上一题 第 2 空
输入答案,中间不含空格:
18.以下程序中,函数SumColumMin的功能是:求出 M行N列二维数组每列元素中的最小值,
并计算它们的和值。和值通过形参传回主函数输出。请填空。
#define M 2
#define N 4
void SumColumMin(a[M][N],int *sum)
{int i,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=____;
}
____=s;
}
main()
{int x[M][N]={3,2,5,1,4,8,3},s;
SumColumMin(____);
printf("%d\n",s);
}
输入答案,中间不含空格:
19.上一题 第 2 空
输入答案,中间不含空格:
20.上一题 第 3 空
输入答案,中间不含空格:
交卷
Hi,亲爱的朋友,欢迎光临Passtwo! 您想做点什么呢?
I Want....
查询等级考试成绩
下载等级考试模拟题
下载历年计算机二级试题
查找二级考试答案
热门软件下载
实用电子地图
本站隆重推荐自主开发的VFP上机模拟系统免费下载使用
二级vfp上机模拟系统