| 全国计算机等级考试 二级C 模拟试题19 |
一、选择题(每题2分,共计70分) |
|
|
|
2.以下哪一个不是队列的基本运算? A、从队尾插入一个新元素 B、从队列中删除第I个元素 C、判断一个队列是否为空 D、读取队头元素的值
|
|
A
B
C
D
|
3.二叉树的先序遍历和中序遍历如下: 先序遍历:ABDFHCEGI 中序遍历:BFHDAEIGC 该二叉树根的右子树的根是____。 A、N B、F C、E D、C
|
|
A
B
C
D
|
4.已知一个有序表(13,20,25,37,48,58,61,78,83,90,101),当二分查找值48的元素时,____次比较后查找成功。 A、1 B、2 C、3 D、4
|
|
A
B
C
D
|
5.面向对象的概念方法是____。 A、用来请求对象执行某些操作。 B、描述对象动态特征的一个操作序列。 C、描述对象静态特性的一个数据项。 D、描述对象动态或者静态特征的某个项目。
|
|
A
B
C
D
|
6.Object-orientde翻译成哪一个术语更为确切? 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.以下叙述中正确的是 A、C程序中注释部分可以出现在程序中任意合适的地方 B、花括号“{”和“}”只能作为函数体的定界符 C、构成C程序的基本单位是函数,所有函数名都可以由用户命名 D、分号是C语言之间的分隔符,不是语句的一部分
|
|
A
B
C
D
|
12.以下选项中可作为C语言合法整数的是 A、10110B B、0386 C、0Xffa D、x2a2
|
|
A
B
C
D
|
13.以下不能定义为用户标识符的是 A、scanf B、Void C、_3com_ D、int
|
|
A
B
C
D
|
14.有如下程序 main() {int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf("%d %d %3.1f %3.1f\n",a,c,f,x) 程序运行后输出结果是 A、1 65 1 6.5 B、1 65 1.5 6.5 C、1 65 1.0 6.5 D、2 65 1.5 6.5
|
|
A
B
C
D
|
15.以下选项中非法的表达式是 A、0<=x<100 B、i=j==0 C、(char)(65+3) D、x+1=x+1
|
|
A
B
C
D
|
16.有如下程序 main() {int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<b); printf("%d,%d\n",k,m); } 程序运行后的输出结果是 A、0,0 B、0,1 C、1,0 D、1,1
|
|
A
B
C
D
|
17.有定义语句:int x,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数据11, 变量y得到数值12,下面四组输入形式中,错误的是 A、11 12<回车> B、11,12<回车> C、11,12<回车> D、11,<回车> 12<回车>
|
|
A
B
C
D
|
18.设有如下程序段 int x=2002,y=2003; printf("%d\n",(x,y)); 则以下叙述中正确的是 A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B、运行时产生错误信息 C、输出值为2002 D、输出值为2003
|
|
A
B
C
D
|
19.设变量x为float型且已赋值,则以下语句中能将X中的数值保留到小数点后两位,并 将第三位四舍五入的是 A、x=x*100+0.5/100.0 B、x=(x*100+0.5)/100.0 C、x=(int)(x*100+0.5)/100.0 D、x=(x/100+0.5)*100.0
|
|
A
B
C
D
|
20.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是 A、if(c<a) x=1; else if (b<a) x=2; else x=3; B、if (a<3) x=3; else if (a<2 )x=2; else x=1; C、if (a<3) x=3; if (a<2) x=2; if (a<1) x=1; D、if (a<b) x=b; if (b<C) x=c; if(c<a) x=a;
|
|
A
B
C
D
|
21.有以下程序 main() {int s=0,a=1,n; scanf("%d",&n); do {s+=1;a=a-2;} while(a!=n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从健盘给n输入的值是 A、-1 B、-3 C、-5 D、0
|
|
A
B
C
D
|
22.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则上述程序段功能等价的赋值语句是 A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c;
|
|
A
B
C
D
|
23.有以下程序 main() {int k=4,n=0; for(;n<k;) {n++; if(n%3!=0) continue; k--;} printf("%d,%d\n",k,n); } 程序运行后的输出结果是 A、1,1 B、2,2 C、3,3 D、4,4
|
|
A
B
C
D
|
24.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10 main() {int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序运行是 A、s=1.0; B、for(n=10;n>1;n--); C、s=s+1/n; D、printf("%6.4f\n",s);
|
|
A
B
C
D
|
25.已定义ch为字符型变量,以下赋值语句中错误的是 A、ch='\'; B、ch=62+3; C、ch=NULL; D、ch='\xaa';
|
|
A
B
C
D
|
26.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A、函数调用可以作为独立的语句存在 B、函数调用可以作为一个函数的实参 C、函数调用可以出现在表达式中 D、函数调用可以作为一个函数的形参
|
|
A
B
C
D
|
27.有如下函数定义: void fun(int n,double x) {......} 若以下选项中的变量都已正确定义赋值,则对函数fun的正确调用语句是 A、fun(int y,double m); B、k=fun(10,12.5); C、fun(x,n); D、void fun(n,x);
|
|
A
B
C
D
|
28.有如下程序 void fun(char *a,char *b) {a=b;(*a)++;} main() { char c1='A',c2='a',*p1,*p2; p1=&c1;p2=&c2;fun(p1,p2); printf("%c%c\n",c1,c2); } A、Ab B、aa C、Aa D、Bb
|
|
A
B
C
D
|
29.若程序中已包含文件stdio.h,以下选项中,正确运用指针变量的程序段是 A、int *i=NULL; scanf("%d",i); B、float *f=NULL; *f=10.5; C、char t='m',*c=&t; *c=&t; D、long *L; L='\0';
|
|
A
B
C
D
|
30.有如下程序 #include <stdio.h> main() {printf("%d\n",NULL);} 程序运行后的输出结果是 A、0 B、1 C、-1 D、NULL没定义,出错
|
|
A
B
C
D
|
31.已定义c为字符型变量,则下列语句中正确的是 A、c='97'; B、c="97"; C、c=97; D、c="a";
|
|
A
B
C
D
|
32.以下不能正确定义二维数组的选项是 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
B
C
D
|
33.以下选项中不能把c1定义成结构体变量的是 A、typedef struct {int red; int green; int blue; } COLOR; COLOR c1; B、struct color c1 {int red; int green; int blue; }; C、struct color {int red; int green; int blue; }c1; D、struct {int red; int green; int blue; }c1;
|
|
A
B
C
D
|
34.以下能正确定义一维数组的选项是 A、int num[]; B、#define N 100 int num[N]; C、int num[0..100]; D、int N=100; int num[N];
|
|
A
B
C
D
|
35.下列选项中正确的语句组是 A、char s[8]; s={"Beijing"}; B、char *s; s={"Beijing"}; C、char s[8]; s="Beijing"; D、char *s; s="Beijing";
|
|
A
B
C
D
|
36.已定义如下函数 fun (int *p) {return *p;} 该函数的返回值是 A、不确定的值 B、形参p中存放的值 C、形参p所指存储单元中的值 D、形参p的地址值
|
|
A
B
C
D
|
37.下列函数定义中,会出现编译错误的是 A、max(int x,int y,int *z) {*z=x>y?x:y;} B、int max(int x,y) {int z; z=x>y?x:y; return z; } C、max(int x,int y) {int z; z=x>y?x:y; return(z); } D、int max(int x,int y) {return(x>y?x:y);}
|
|
A
B
C
D
|
38.有如下程序 #include <stdio.h> #define F(X,Y) (X)*(Y) main() {int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是 A、12 B、15 C、16 D、20
|
|
A
B
C
D
|
39.有如下程序 fun (int a,int b) {if (a>b) return(a); else return(b); } main() {int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 程序运行后输出结果是 A、3 B、6 C、8 D、12
|
|
A
B
C
D
|
40.若有定义:int *p[3];,则以下叙述中正确的是 A、定义了一个基类型为int的指针变量p,该变量具有三个指针 B、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C、定义了一个名为*p的整形数组,该数组含有三个int类型的元素 D、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
|
|
A
B
C
D
|
41.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址 #include <stdio.h> #include <string.h> char *scmp(char *s1,char *s2) {if(strcmp(s1,s2)<0) return(s1); else return(s2); } main() {int i; char string[20],str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为 A、abcd B、abba C、abc D、abca
|
|
A
B
C
D
|
42.有如下程序 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
|
|
A
B
C
D
|
43.有如下程序段 main() {int a=5,*b,**c c=&b;b=&a; ...... } 程序再执行了c=&b;b=&a;语句后,表达式:**c的值是 A、变量a的地址 B、变量b中的值 C、变量a中的值 D、变量b的地址
|
|
A
B
C
D
|
44.有如下程序 #include <string.h> main() {char str[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlen(p+20)); } A、0 B、5 C、7 D、20
|
|
A
B
C
D
|
45.已定义如下函数 fun(char *p2,char *p1) {while((*p2=*p1)!='\0'){p1++;p2++;}} 函数的功能是 A、将p1所指字符串复制到p2所指内存空间 B、将p1所指字符串的地址赋给指针p2 C、对p1和p2两个指针所指字符串进行比较 D、检查p1和p2两个指针所指字符串中是否有'\0'
|
|
A
B
C
D
|
46.有如下程序 main() {int x=3,y=2,z=1; printf("%d\n",x/y&~z); } 程序运行后的输出结果是 A、3 B、2 C、1 D、0
|
|
A
B
C
D
|
47.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A、0 B、1 C、-1 D、一个非0值
|
|
A
B
C
D
|
48.下列关于C语言数据文件的叙述中正确的是 A、文件由ASCII码字符序列组成,C语言只能读写文本文件 B、文件由二进制数据序列组成,C语言只能读写二进制文件 C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
|
|
A
B
C
D
|
49.有如下程序 main() {int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf("%d\n",a[1][2]); } 程序运行后的输出结果是 A、3 B、6 C、9 D、2
|
|
A
B
C
D
|
50.有如下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。 struct node {int data; struct node *next; }*p,*q,*r; data next data next data next ┌──┬─┐ ┌──┬─┐ ┌──┬─┐ →│ │ ┼→│ │ ┼→│ │ ┼→ └──┴─┘ └──┴─┘ └──┴─┘ ↑p ↑q ↑r
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是 A、r->next=q;q->next=r->next;p->next=r; B、q->next=r->next;p->next=r;r->next=q; C、p->next=r;q->next=r->next;r->next=q; D、q->next=r->next;r->next=q;p->next=r;
|
|
A
B
C
D
|
二、填空题(每空2分,共计30分) |
1.数据结构是一门研究非数值计算的程序设计问题中计算机的____以及它们之间的 关系和运算等的学科。
|
| 输入答案,中间不含空格:
|
2.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空) 的一端的方法,称为____。
|
| 输入答案,中间不含空格:
|
| 3.需求分析阶段的最后成果是____,是软件开发中的重要文档之一。
|
| 输入答案,中间不含空格:
|
| 4.每个实体有若干特性,每一个特性称为____。
|
| 输入答案,中间不含空格:
|
| 5.关系代数运算中,传统的集合运算有____、并、交和差。
|
| 输入答案,中间不含空格:
|
6.以下程序运行后的输出结果是____。 main() {int p=30; printf("%d\n",(p/3>0 ? p/10:p%3)); }
|
| 输入答案,中间不含空格:
|
7.以下程序运行后的输出结果是____。 main() {char m; m='B'+32; printf("%c\n",m); }
|
| 输入答案,中间不含空格:
|
8.以下程序运行后的输出结果是____。 main() {int a=1,b=3,c=5; if (c=a+b) printf("yes\n"); else printf("no\n"); }
|
| 输入答案,中间不含空格:
|
9.以下程序运行后的输出结果是____。 main() {int i,m=0,n=0,k=0; for (i=9;i<=11;i++) switch(i/10) {case 0: m++;n++;break; case 10: n++; break; default: k++;n++; } printf("%d %d %d\n",m,n,k); }
|
| 输入答案,中间不含空格:
|
10.执行以下程序后,输出'#'号的个数是____。 #include <stdio.h> main() {int i,j; for (i=1;i<5;i++) for (j=2;j<=i;j++) putchar('#'); }
|
| 输入答案,中间不含空格:
|
11.以下程序的功能是调用函数fun计算:m=1-2+3-4+......+9-10,并输出结果。请填空。 int fun(int n) {int m=0,f=1,i; for (i=1;i<=n;i++) {m+=i*f; f=____; } return m; } main() {printf("m=%d\n",____);}
|
| 输入答案,中间不含空格:
|
| 12.上一题 第 2 空
|
| 输入答案,中间不含空格:
|
13.以下程序运行后的输出结果是____ 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]); } }
|
| 输入答案,中间不含空格:
|
14.以下程序运行后的输出结果是____ main() {int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for (i=0;i<3;i++) for(j=i+1;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"); } }
|
| 输入答案,中间不含空格:
|
15.以下程序运行后输出的结果是____ int a=5; fun(int b) {static int a=10; a+=b++; printf("%d ",a); } main() {int c=20; fun(c); a+=c++; printf("%d\n",a); }
|
| 输入答案,中间不含空格:
|
16.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 ____(double,double); main() {double x,y; scanf("%1f%1f",&x,&y); printf("%1f\n",max(x,y)); } double max(double a,double b) { return(a>b ? a:b);}
|
| 输入答案,中间不含空格:
|
17.以下程序运行后输入:3,abcde<回车>,则输出结果是____ #include <string.h> move(char *str,int n) {char temp; int i; temp=str[n-1] for (i=n-1;i>0;i--) str[i]=str[i-1]; str[0]=temp; } main() {char s[50]; int n,i,z; scanf("%d,%s",&n,s); z=strlen(s); for(i=1;i<=n;i++) move(s,z); printf("%s\n",s); }
|
| 输入答案,中间不含空格:
|
18.以下程序运行后的输出结果是____。 fun(int x) {if (x/2>0) fun(x/2); printf("%d ",x); } main() {fun(6);}
|
| 输入答案,中间不含空格:
|
19.已有定义如下: struct node {int data; struct node *next; }*p 以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。 请填空 p=(struct node *)malloc(____);
|
| 输入答案,中间不含空格:
|
20.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。 例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空 #include <stdio.h> #include <ctype.h> 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); }
|
| 输入答案,中间不含空格:
|
Hi,亲爱的朋友,欢迎光临Passtwo!
您想做点什么呢?
I Want....
热门软件下载
实用电子地图
本站隆重推荐自主开发的VFP上机模拟系统免费下载使用
二级vfp上机模拟系统
|