| 全国计算机等级考试 历年真题 2007年4月计算机等级考试二级C语言考前密卷(1) |
一、选择题(每题2分,共计70分) |
|
|
|
2.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed B)decab C)deabc D)cedba
|
|
A
B
C
D
|
3.链表不具有的特点是 A)不必事先估计存储空间 B)可随机访问任一元素 C)插入删除不需要移动元素 D)所需空间与线性表长度成正比
|
|
A
B
C
D
|
4.结构化程序设计的3种结构是 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.软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护
|
|
A
B
C
D
|
8.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)C B)Basic C)DDL D)DML
|
|
A
B
C
D
|
9.下列有关数据库的描述,正确的是 A)数据库是一个DBF文件 B)数据库是一个关系 C)数据库是一个结构化的数据集合 D)数据库是一组文件
|
|
A
B
C
D
|
10.下列有关数据库的描述,正确的是 A)数据处理是将信息转化为数据的过程 B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 C)关系中的每一列称为元组,一个元组就是一个字段 D)如果一个关系中的属性或属性组并非该关系的关键字, 但它是另一个关系的关键字,则称其为本关系的外关键字
|
|
A
B
C
D
|
11.以下叙述中正确的是 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点
|
|
A
B
C
D
|
12.C语言中用于结构化程序设计的3种基本结构是 A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue
|
|
A
B
C
D
|
13.C语言中最简单的数据类型包括 A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型
|
|
A
B
C
D
|
14.若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b
|
|
A
B
C
D
|
15.下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof
|
|
A
B
C
D
|
16.C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<=
|
|
A
B
C
D
|
17.若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i; C)a=a++=5; D)a=int(i);
|
|
A
B
C
D
|
18.已知 int t=0; while (t=1) {...} 则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对
|
|
A
B
C
D
|
19.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是 A)10<回车>22<回车>33<回车> B)10.0,22.0,33.0<回车> C)10.0<回车>22.033.0<回车> D)10 22<回车>33<回车>
|
|
A
B
C
D
|
20.有如下程序: main() { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是 A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2
|
|
A
B
C
D
|
21.有以下程序 main() {int i=1,j=1,k=2; if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3
|
|
A
B
C
D
|
22.有如下程序 main() {float x=2.0,y; if(x<0.0)y=0.0; else if(x<10.0)y=1.0/x; else y=1.0; printf("%f\n",y);} 该程序的输出结果是 A)0.000000 B)0.250000 C)0.500000 D)1.000000
|
|
A
B
C
D
|
23.有如下程序: main() {int n=9; while(n>6){n--; printf("%d",n);} } 该程序的输出结果是 A)987 B)876 C)8765 D)9876
|
|
A
B
C
D
|
24.在下列选项中,没有构成死循环的是 A)int i=100; while(1) {i=i%100+1; if(i>100)break; } B)for(;;); C)int k=10000; do{k++;}while(k>10000); D)int s=36; while(s)--s;
|
|
A
B
C
D
|
25.设int x=1,y=1;表达式(!x||y--)的值是 A)0 B)1 C)2 D)-1
|
|
A
B
C
D
|
26.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参
|
|
A
B
C
D
|
27.有以下程序 float fun(int x,int y) {return(x+y);} main() {int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0
|
|
A
B
C
D
|
28.若有以下调用语句,则不正确的fun函数的首部是 main() { … int a[50],n; … fun(n, &a[9]); … } A)void fun(int m, int x[]) B)void fun(int s, int h[41]) C)void fun(int p, int *s) D)void fun(int n, int a)
|
|
A
B
C
D
|
29.fseek函数的正确调用形式是 A)fseek(文件指针,起始点,位移量) B)fseek(文件指针,位移量,起始点) C)fseek(位移量,起始点,文件指针) D)fseek(起始点,位移量,文件指针)
|
|
A
B
C
D
|
30.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是 A)EOF B)-1 C)1 D)NULL
|
|
A
B
C
D
|
31.若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定
|
|
A
B
C
D
|
32.若有说明 int a[3][4];则a数组元素的非法引用是 A)a[0][2*1] B)a[1][3] C)a[4-2][0 ] D)a[0][4]
|
|
A
B
C
D
|
33.设有以下说明语句 struct stu {int a; float b; } stutype; 则下面的叙述不正确的是 A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名
|
|
A
B
C
D
|
34.在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式
|
|
A
B
C
D
|
35.若运行时给变量x输入12,则以下程序的运行结果是 main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y); } A)0 B)22 C)12 D)10(
|
|
A
B
C
D
|
36.以下说法正确的是 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分
|
|
A
B
C
D
|
37.表达式0x13^0x17的值是 A)0x04 B)0x13 C)0xE8 D)0x17
|
|
A
B
C
D
|
38.有以下程序 #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.下列程序执行后的输出结果是 void func(int *a,int b[]) { b[0]=*a+6; } main() {int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); } A)6 B)7 C)8 D)9
|
|
A
B
C
D
|
40.若有下面的程序段: char s[]="china";char *p; p=s; 则下列叙述正确的是 A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等
|
|
A
B
C
D
|
41.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a[],int n) {int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) 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[3],5); 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)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3,
|
|
A
B
C
D
|
42.以下程序的运行结果是 #include "stdio.h" main() {struct date {int year,month,day;}today; printf("%d\n",sizeof(struct date)); } A)6 B)8 C)10 D)12
|
|
A
B
C
D
|
43.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point
|
|
A
B
C
D
|
44.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递 B)单向值传递 C)由实参传形参,再由形参传实参 D)传递方式由用户指定
|
|
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.若执行下述程序时,若从键盘输入6和8时,结果为 main() {int a,b,s; scanf("%d%d",&a,&b); s=a if(a<b) s=b; s*=s; printf("%d",s); } A)36 B)64 C)48 D)以上都不对
|
|
A
B
C
D
|
47.fscanf函数的正确调用形式是 A)fscanf(fp,格式字符串,输出表列); B)fscanf(格式字符串,输出表列,fp); C)fscanf(格式字符串,文件指针,输出表列); D)fscanf(文件指针,格式字符串,输入表列);
|
|
A
B
C
D
|
48.下列关于C语言数据文件的叙述中正确的是 A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
|
|
A
B
C
D
|
49.有以下程序 void ss(char *s,char t) {while(*s) {if(*s= =t)*s=t-'a'+'A'; s++; } } main() {char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); } 程序运行后的输出结果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd
|
|
A
B
C
D
|
50.若以下定义: struct link {int data; struct link *next; } a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构: 指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是: A)a.next=c; c.next=b; B)p.next=q; q.next=p.next; C)p->next=&c; q->next=p->next; D)(*p).next=q; (*q).next=&b;
|
|
A
B
C
D
|
二、填空题(每空2分,共计30分) |
| 1.算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。
|
| 输入答案,中间不含空格:
|
| 2.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 【2】 。
|
| 输入答案,中间不含空格:
|
| 3.在面向对象的程序设计中,类描述的是具有相似性质的一组 【3】 。
|
| 输入答案,中间不含空格:
|
| 4.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 【4】 。
|
| 输入答案,中间不含空格:
|
| 5.数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 3种。
|
| 输入答案,中间不含空格:
|
| 6.设y是int型,请写出y为奇数的关系表达式 【6】 。
|
| 输入答案,中间不含空格:
|
| 7.设int a=5,b=6,表达式(++a==b--)?++a:--b的值是【7】 。
|
| 输入答案,中间不含空格:
|
8.下列程序的输出结果是【8】。 maim () {char b []="Hello you"; b[5]=0; printf ("%s\n",b);}
|
| 输入答案,中间不含空格:
|
| 9.当调用函数时,实参是一个数组名,则向函数传递的是【9】。
|
| 输入答案,中间不含空格:
|
10.以下程序的输出结果是【10】。 int a=1234; printf ("%2d\n",a);
|
| 输入答案,中间不含空格:
|
11.用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句 执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
|
| 输入答案,中间不含空格:
|
12.以下程序的输出结果是【12】。 main() {int a=0; a+=(a=8); printf("%d\n",a);}
|
| 输入答案,中间不含空格:
|
13.(13)函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。 void fun( float *sn, int n) { float s=0.0, w, f=-1.0; int i=0; for(i=0; i<=n; i++) { f=【13】* f; w=f/(2*i+1); s+=w; } 【14】=s;}
|
| 输入答案,中间不含空格:
|
| 14.上一题【14】
|
| 输入答案,中间不含空格:
|
15.14)函数fun的功能是:根据以下公式求p的值,结果由函数值返回。 m与n为两个正数且要求m>n。  例如:m=12,n=8时,运行结果应该是495.000000。 请在题目的空白处填写适当的程序语句,将该程序补充完整。 #include #include float fun (int m, int n) { int i; double p=1.0; for(i=1;i<=m;i++)【15】; for(i=1;i<=n;i++)【16】; for(i=1;i<=m-n;i++)p=p/i; return p;} main () { clrscr(); printf ("p=%f\n",fun (12,8));}
|
| 输入答案,中间不含空格:
|
| 16.上一题【16】
|
| 输入答案,中间不含空格:
|
17.该程序运行的结果是【17】。 #include<conio.h> #include<stdio.h> #define M 100 void fun(int m, int *a, int *n) { int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;} main() { int aa[M],n,k; clrscr(); fun(10,aa,&n); for(k=0;k<n;k++) if((k+1)%20==0)printf("\n"); else printf("%4d",aa[k]); printf("\n");}
|
| 输入答案,中间不含空格:
|
18.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3,请填空。 #include <conio.h> #include <stdio.h> #define M 81 int fun(char *ss, char c) { int i=0; for(; 【18】;ss++) if(*ss==c)i++; return i;} main() { char a[M], ch; clrscr(); printf("\nPlease enter a string: "); gets(a); printf("\nPlease enter a char: "); ch=getchar(); printf("\nThe number of the char is: %d\n", fun(a,ch));}
|
| 输入答案,中间不含空格:
|
19.下面程序把从终端读入的文本(用@作为文本结束标志)输出 到一个名为bi.dat的新文件中,请填空。 #include "stdio.h" FILE *fp; { char ch; if((fp=fopen(【19】))==NULL)exit(0); while((ch=getchar( ))!='@')fputc (ch,fp); fclose(fp);}
|
| 输入答案,中间不含空格:
|
20.设有如下宏定义 #define MYSWAP(z,x,y) {z=x;x=y;y=z;} 以下程序段通过宏调用实现变量a,b内容交换,请填空。 float a=5,b=16,c; MYSWAP(【20】,a,b);
|
| 输入答案,中间不含空格:
|
Hi,亲爱的朋友,欢迎光临Passtwo!
您想做点什么呢?
I Want....
热门软件下载
实用电子地图
本站隆重推荐自主开发的VFP上机模拟系统免费下载使用
二级vfp上机模拟系统
|