全国计算机等级考试考点分析、题解与模拟(二级C)试卷由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“模拟试卷c及参考答案”。
全国计算机等级考试二级笔试试卷 基础知识和C语言程序设计
(考试时间120分钟,满分100分)
一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)在计算机中,一个字节所包含二进制位的个数是 A)2 B)4 C)8 D)16(2)在多媒体计算机中,CD-ROM属于
A)存储媒体 B)传输媒体 C)表现媒体 D)表示媒体(3)在DOS系统中,带有通配符的文件名*.*表示
A)硬盘上的全部文件 B)当前盘当前目录中的全部文件 C)当前盘上的全部文件 D)根目录中的全部文件(4)十六进制数100转换为十进制数为
A)256 B)512 C)1024 D)64(5)能将高级语言编写的源程序转换为目标程序的软件是 A)汇编程序 B)编辑程序 C)解释程序 D)编译程序(6)在Internet中,用于在计算机之间传输文件的协议是 A)TELNET B)BBS C)FTP D)www.daodoc.com_ D)int(14)有以下程序 main()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(15)以下选项中非法的表达式是 A)0a)||(m=a B)11, 12 C)11,12 D)11, 12(18)设有如下程序段: int x=2002, y=2003;printf(“%dn”,(x,y));则以下叙述中正确的是
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为2002 D)输出值为2003(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;(20)有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是 A)if(c1;n--)s=s+1/n;printf(“%6.4fn”,s);} 程序运行后输出结果错误,导致错误结果的程序行是
A)s=1.0;B)for(n=10;n>1;n--)C)s=s+1/n;D)printf(“%6.4fn”,s);(25)已定义ch为字符型变量,以下赋值语句中错误的是 A)ch='';B)ch=62+3;C)ch=NULL;D)ch='xaa';(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 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);(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%cn”,c1,c2);} 程序运行后的输出结果是 A)Ab B)aa C)Aa D)Bb(29)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是 A)int *i=NULL;B)float *f=NULL;scanf(“%d”,i);*f=10.5;C)char t='m', *c=&t;D)long *L;*c=&t;L=' ';(30)有以下程序 #include main(){ printf(“%dn”,NULL);} 程序运行后的输出结果是
A)0 B)1 C)-1 D)NULL没定义,出错
(31)已定义c为字符型变量,则下列语句中正确的是 A)c='97';B)c=“97”;C)c=97;D)c=“a”;(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}};(33)以下选项中不能正确把cl定义成结构体变量的是 A)typedef struct B)struct color cl { int red;{ int red;int green;int green;int blue;int blue;} COLOR;};COLOR cl;C)struct color D)struct { int red;{ int red;int green;int green;int blue;int blue;} cl;} cl;(34)以下能正确定义一维数组的选项是 A)int num[];B)#define N 100 int num[N];C)int num[0..100];D)int N=100;int num[N];(35)下列选项中正确的语句组是
A)char s[8];s={“Beijing”};B)char *s;s={“Beijing”};C)char s[8];s=“Beijing”;D)char *s;s=“Beijing”;(36)已定义以下函数 fun(int *p){ return *p;} 该函数的返回值是
A)不确定的值 B)形参p中存放的值
C)形参p所指存储单元中的值 D)形参p的地址值(37)下列函数定义中,会出现编译错误的是
A)max(int x,int y,int *z)B)int max(int x,y){ *z=x>y ? x:y;} { int z;z=x>y ? x:y;return z;} C)max(int x,int y)D)int max(int x,int y){ int z;{ return(x>y?x:y);} z=x>y?x:y;return(z);}(38)有以下程序 #include #define F(X,Y)(X)*(Y)main(){ int a=3, b=4;printf(“%dn”, F(a++, b++));} 程序运行后的输出结果是 A)12 B)15 C)16 D)20(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(“%dn”, r);} 程序运行后的输出结果是 A)3 B)6 C)8 D)12(40)若有定义:int *p[3];,则以下叙述中正确的是
A)定义了一个基类型为int的指针变量p,该变量具有三个指针
B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素
D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
(41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址 #include #include char *scmp(char *s1, char *s2){ if(strcmp(s1,s2)x));} 程序运行后的输出结果是 A)10 B)11 C)20 D)21(43)有以下程序段 main(){ int a=5,*b,**c;c=&b;b=&a;…… } 程序在执行了c=&b;b=&a;语句后,表达式:**c的值是
A)变量a的地址 B)变量b中的值 C)变量a中的值 D)变量b的地址(44)有以下程序 #include main(){ char str[][20]={“Hello”,“Beijing”},*p=str;printf(“%dn”,strlen(p+20));} 程序运行后的输出结果是 A)0 B)5 C)7 D)20(45)已定义以下函数 fun(char *p2, char *p1){ while((*p2=*p1)!=' '){ p1++;p2++;} } 函数的功能是
A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有' '(46)有以下程序 main(){ int x=3, y=2, z=1;printf(“%dn”,x/y&~z);} 程序运行后的输出结果是 A)3 B)2 C)1 D)0(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A)0 B)1 C)-1 D)一个非0值(48)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(49)有以下程序 main(){ int a[3][3],*p,i;p=&a[0][0];for(i=0;ix));} 程序运行后的输出结果是 A)10 B)11 C)20 D)21(43)有以下程序段 main(){ int a=5,*b,**c;c=&b;b=&a;…… } 程序在执行了c=&b;b=&a;语句后,表达式:**c的值是
A)变量a的地址 B)变量b中的值 C)变量a中的值 D)变量b的地址(44)有以下程序 #include main(){ char str[][20]={“Hello”,“Beijing”},*p=str;printf(“%dn”,strlen(p+20));} 程序运行后的输出结果是 A)0 B)5 C)7 D)20(45)已定义以下函数 fun(char *p2, char *p1){ while((*p2=*p1)!=' '){ p1++;p2++;} } 函数的功能是
A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有' '(46)有以下程序 main(){ int x=3, y=2, z=1;printf(“%dn”,x/y&~z);} 程序运行后的输出结果是 A)3 B)2 C)1 D)0(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A)0 B)1 C)-1 D)一个非0值
(48)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(49)有以下程序 main(){ int a[3][3],*p,i;p=&a[0][0];for(i=0;i
↑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;
二、填空题(每空2分,共40分)
请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。(1)计算机软件分为系统软件与应用软件,UNIX属于 【1】。
(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。若使用TYPE命令,则完整的命令为 【2】。
(3)Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于 【3】。
(4)在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到 【4】 文件夹中。
(5)在Windows环境下,为了进行“添加/删除程序”操作,首先打开 【5】,然后双击其中的相应图标。
(6)以下程序运行后的输出结果是 【6】。main(){ int p=30;printf(“%dn”,(p/3>0 ? p/10 : p%3));}(7)以下程序运行后的输出结果是 【7】。main(){ char m;m='B'+32;printf(“%cn”,m);}(8)以下程序运行后的输出结果是 【8】。main(){ int a=1,b=3,c=5;if(c=a+b)printf(“yesn”);else printf(“non”);}(9)以下程序运行后的输出结果是 【9】。main(){ int i,m=0,n=0,k=0;for(i=9;i main(){ int i,j;for(i=1;ib ? a:b);}(16)以下程序运行后输入:3,abcde,则输出结果是 【17】 #include 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;i0)fun(x/2);printf(“%d ”,x);} main(){ fun(6);}(18)已有定义如下: struct node { int data;struct node *next;} *p;以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。p =(struct node *)malloc(【19】);(19)以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。#include #include main(){ char s[80], d[80];int i,j;gets(s);for(i=j=0;s[i]!=' ';i++)if(【20】){ d[j]=s[i];j++;} d[j]=' ';puts(d);}
答
案
一、选择题
(1)C(2)A(3)B(4)A(5)D(6)C(7)B(8)A(9)C(10)D(11)A(12)C(13)D(14)B(15)D(16)C(17)A(18)D(19)C(20)C(21)B(22)B(23)C(24)C(25)A(26)D(27)C(28)A(29)D(30)A(31)C(32)D(33)B(34)B(35)D(36)C(37)B(38)A(39)D(40)B(41)B(42)B(43)C(44)C(45)A(46)D(47)A(48)D(49)B(50)A
二、填空题
(1)【1】 系统软件
(2)【2】 TYPE B.TXT >> A.TXT(英文字母大小写均可)(3)【3】 基本服务
(4)【4】 回收站(或 “回收站”)
(5)【5】 控制面板(或 控制面板窗口)(6)【6】 3(7)【7】 b(8)【8】 yes(9)【9】 1 3 2(10)【10】 6(11)【11】-f 或 f*-1 或-1*f或 f*(-1)或(-1)*f 【12】 fun(10)(12)【13】 1 3 7 15(13)【14】 1 2 3 0 5 6 0 0 9(14)【15】 30 25(15)【16】 double max(或 extern double max)(16)【17】 cdeab(17)【18】 1 3 6(18)【19】 sizeof(struct node)或 4(19)【20】 s[i]>='0' && s[i]=48 && s[i]
s[i]='0' 或 '9'>=s[i] && '0'=s[i] 或 s[i]=48 或 57>=s[i] && 48=s[i]