湖北省计算机二级C语言考试.docx
《湖北省计算机二级C语言考试.docx》由会员分享,可在线阅读,更多相关《湖北省计算机二级C语言考试.docx(20页珍藏版)》请在冰豆网上搜索。
湖北省计算机二级C语言考试
1、计算机在实现工业自动化中的应用主要是进行(A)
A、实时控制B、数据处理
C、数值计算D、人工智能
2、计算机的主频指的是(D)
A、硬盘读写速度,用Hz表示
B、软盘读写速度,用Hz表示
C、显示器输出速度,用MHz表示
D、时钟频率,用MHz表示
3、复制活动窗口的信息到剪贴版,只需按下(C)键即可
A、[Alt+Esc]B、[Ctrl+Shift]
C、[Alt+PrintScreen]D、[PrintScreen]
4、计算机中ROM的意思是(B)
A、磁盘存储器B、只读存储器
C、随机存储器D、光盘存储器
5、在运行某程序时,如果存储器容量不够,可通过(D)来解决。
A、把软盘换成硬盘
B、把磁盘换成高密度磁盘
C、扩大硬盘容量
D、增加一个扩充存储卡(内存条)
6、在Windows,控制面板是以(B)的形式存在的
A、一个普通文件B、一个系统文件夹
C、一个系统文件D、几个系统文件集合在一起
7、微型计算机存储器系统中的Cache是(B)
A、只读存储器
B、高速缓冲存储器
C、可编程只读存储器
D、可檫除可再编程只读存储器
8、一般主存储器和外存储器的区别在于(C)
A、主存储器容量大,速度快,造价高;外存储器容量小,速度慢,造价低
B、主存储器容量小,速度慢,造价低;外存储器容量大,速度快,造价高
C、主存储器容量小,速度快,造价高;外存储器容量大,速度慢,造价低
D、区别仅仅是因为一个在计算机里,一个在计算机外
9、在智能ABC输入法中,将“计算机”编码输入为“jsuanj”,这属于(C)
A、全拼输入B、简拼输入
C、混拼输入D、智能输入
10、在Windows98的MS-DOS窗口中,按(B)键,可以在全屏幕与窗口方式之间切换。
A、[Alt+Shift]B、[Alt+Enter]
C、[Alt+F8]D、[Ctrl+Shift]
11、二进制数1010100.100对应的十六进制数为(C)
A、52.8B、52.6C、54.8D、54.6
12、在3.5英寸软盘上有一个可移动滑块的透光孔是用于(B)
A、防霉保护B、写保护
C、读保护D、驱动定位
13、在Windows98中,不同驱动器之间的文件移动,应使用的操作为(C)
A、鼠标直接拖曳
B、[Ctrl+鼠标拖曳]
C、[Shift+鼠标拖曳]
D、选定要移动的文件按[Ctrl+C],然后打开目标文件夹按[Ctrl+V]
14、在Windows环境下,人们主要在鼠标选择方式下操作计算机,Windows提供(C)界面。
A、鼠标和键盘B、显示器
C、图形用户D、字符用户
15、在Windows98的资源管理器中,查找文件或文件夹的操作是通过菜单(C)来实现的。
A、文件B、编辑C、工具D、查看
16、若以下变量均为整型且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(B)
A、7B、8C、9D、10
17、判断char型变量C1是否为大写字母的正确表达式是(C)
A、’A’<=C1<=’Z’
B、(C1>=’A’)&(C1<=’Z’)
C、(C1>=’A’)&&(C1<=’Z’)
D、(’A’<=C1)AND(’Z’>=C1)
18、下列程序段的运行结果是(C)
charc[]=“\t\v\\\owill\n”
printf(“%d”,strlen©);
A、14B、3C、9
D、字符串中有非法字符,输出值不确定
19、若有说明:
charc=’9’,*sp1,*sp2;以下均正确的一组赋值语句是(A)
A、sp1=&c;sp2=sp1;B、sp1=&c;sp2=&sp1;
C、sp1=&c;sp2=*sp1;D、sp1=&c;*sp2=*sp1;
20、根据定义和数据的输入方式,输入语句的正确形式为(B)。
已有定义:
floatf1,f2;
数据的输入方式:
4.523.5
A、scanf(“%f,%f”,&f1,&f2);
B、scanf(“%f%f”,&f1,&f2);
C、scanf(“%f3.2%2.1f”,&f1,&f2);
D、scanf(“%3.2f%2.1f”,&f1,&f2);
21、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)
A、7B、8C、6D、2
22、判断字符串s1是否大于字符串s2,应当使用(D)
A、if(s1>s2)B、if(strcmp(s1,s2))
C、if(strcmp(s2,s1)>0)D、if(strcmp(s1,s2)>0)
23、当定义一个结构体变量时系统分配给它的内存是(D)
A、结构体第一个成员所需的内存量
B、结构体最后一个成员所需的内存量
C、结构体成员中占内存量最大者所需的容量
D、结构体中各成员所需内存量的总和
24、没有说明:
doubley=0.5,z=1.5;intx=10;则能够正确使用C语言库函数的赋值语句是(D)
A、z=ln(y)+abs(y);
B、y=log10(y)+pow(y);
C、z=sqrt(y-z);
D、x=(int)(atan2((double)x,y)+exp(y-0.2));
25、若运行以下程序时,从键盘输入2473,则下面程序的运行结果是(A)
#include
voidmain(void)
{intc;
while((c=getchar())!
='\n')
switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;}
printf("\n");
}
A、668977 B、668966
C、66778777 D、6688766
26、建立函数的主要目的之一是(B)
A、提高程序的执行效率B、提高程序的可读性
C、减少程序的篇幅D、减少程序文件所占内存
27、若有以下说明和语句,则对结构体变量std中成员id的引用方式不正确的是(B)
structwork
{intid;
intname;
}std,*p;
p=&std;
A、std.idB、*p.id
C、(*p).idD、p->id
28、下列运算符中优先级最高的是(B)
A、
=
29、对for(表达式1;;表达式3)可理解为(B)
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
30、C语言规定,函数返回值的类型是由(D)
A、return语句中的表达式类型所决定的
B、调用该函数时的主调函数类型所决定
C、调用函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定
31、以下对枚举类型名ee的定义中正确的是(A)
A、enumee{A,B,C,D};
B、enumee{‘A’,’B’,’C’,’D’}
C、enumee={A,B,C,D}
D、enumee={‘A’,’B’,’C’,’D’}
32、在C语言中,十进制的47可等价地写为(D)
A、2fB、02fC、57D、057
33、若运行时给变量x入12,则以下程序的运行结果是(A)
voidmain(void)
{intx,y;
scanf(“%d”,&x);
y=x>12?
x+10:
x-12;
printf("%d\n",y);
}
A、0B、22C、12D、10
34、对两个数组a和b进行如下的初始化:
chara[]=”ABCDEF”;
charb[]={‘A’,’B’,’C’,’D’,’E’,’F’}
则以下叙述正确的是(D)
A、a与b数组完全相同
B、a与b长度相同
C、a中存放字符串,b中存放字符
D、a数组比b数组长度长
35、凡是函数中未指定存储类别的局部变量,其隐含的存储类别是(A)变量
A、自动(auto)B、静态(static)
C、外部(extern)D、寄存器(register)
36、若有以下定义和说明,以下不能将文件内容读入数组x中的语句(组)是(C)
structss
{
intn;
floatx;
}x[30];
FILE*fp;
A、for(i=0;i<10;i++)/\fread(&x[i],sizeof(structss),1L,fp);
B、for(i=0;i<10;i++)/\fread(&x[i],sizeof(structss),2L,fp);
C、for(i=0;i<10;i++)/\fread(x[i],sizeof(structss),1L,fp);
D、for(i=0;i<10;i++)/\fread(x,sizeof(structss),1L,fp);
37、以下C程序正确的运行结果是(C)
voidmain(void)
{longy=-43456;
printf("y=%-81d\n",y);
printf("y=%-081d\n",y);
printf("y=%081d\n",y);
printf("y=%+81d\n",y);
}
A、y=_-43456y=-_43456y=-0043456y=-43456
B、y=-43456y=-43456y=-0043456y=_-43456
C、y=-43456y=-43456y=-0043456y=-43456
D、y=_-43456y=-43456y=00043456y=+43456
38、以下程序的输出结果是(B)
voidmain(void)
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf("y=%d\n",z);
}
A、3B、2C、1D、0
39、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,则选择(D)
#include
voidmain(void)
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(())
printf("%d",i);
A、i%9=5B、i%9!
=5C、(i-5)%9!
=0D、i%9==5
40、下述对C语言字符数组的描述中错误的是(C)
A、字符数组可以存放字符串
B、字符数组的字符可以整体输入输出
C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D、可以用关系运算符对字符数组中的字符进行比较
41、下面程序的功能是从键盘输入一行字符,统计其中有多少单词,单词之间用空格分隔。
请选择填空(C)
#include
voidmain(void)
{chars[80],c1=‘’,c2;
inti=0,num=0;
get(s);
while(s[i]!
=’\0’)
{c2=s[i];
if(i>0)c1=s[i-1];
if((l))num++;
i++;
}
printf("Theseare%dwords.\n",num);
}
A、c1==’’&&c2==’’
B、c1!
=’’&&c2==’’
C、c1==’’&&c2!
=’’
D、c1!
=’’&&c2!
=’’
42、若有宏定义#definez(x,y)x*y,则执行以下程序段后,z的值为(B)
intz;
z=z(3+5,4);
A、32B、23C、17D、20
43、当说明一个共同体变量时系统分配给它的内存是(C)
A、共同体第一个成员所需的内存量
B、共同体最后一个成员所需的内存量
C、共同体成员中占内存量最大者所需的容量
D、共同体中各成员所需内存量的总和
44、设有以下结构体类型数组的定义,且数组mini的10个元素都已赋值,若要将这些元素写到文件fp中,以下不正确的形式是(B)
^structabc^{^inta;charb;floarc[4];^}^mini[10];
A、fwrite(mini,10*sizeof(structabc),1,fp)
B、fwrite(mini,5*sizeof(structabc),5,fp)
C、for(i=0;i<10;i++)
fwrite(mini,sizeof(structabc),1,fp)
D、fwrite(mini,sizeof(structabc),10,fp)
45、函数fgets(string,m,fp)的作用是(D)
A、从fp所指向的文件中读取长度不超过m的字符串,存入由指针string指向的内存区域
B、从fp所指向的文件中读取长度为m字符串,存入由指针string指向的内存区域
C、从fp所指向的文件读取m个字符串,存入由指针string指向的内存区域
D、从fp所指向的文件读取长度不超过m-1的字符串,存入由指针string指向的内存区域
46、微机主存有ROM和RAM,计算机突然停电后,存储的信息就会丢失的是(RAM)
47、字符的ASCII编码在机器中的表示方法准确地描述应是使用八位二进制代码,最高位为(0)
48、与十进制数254等值的二进制数是(11111110)
49、在Windows98的操作过程中,光标所指的图标称为(活动)图标
50、在Windows98中,要查找所有的DOC文档文件,应在“查找”对话框“名称和位置”标签的“名称”文本框中输入(*doc)
51、根据以下函数关系,对输入的每个x值,计算出相应的y值。
xy
x<00
0<=x<10x
10<=x<1010
20<=x<40-0.5+20
程序:
voidmain(void)
{intx,c,m;
floaty;
scanf(“%d”,&x);
if(x<0)c=-1;
elsec=(x/10);
switch(c)
{case-1:
y=0;break;
case0:
y=x;break;
case1:
y=10;break;
case2:
case3:
y=-0.5*x+20;break;
default:
y=-2;
}
if(y!
=-2)printf("y=%f",y);
elseprintf("error\n");}
52、下面程序的功能是统计从键盘输入的字符中的数字字符个数,用换行符‘\n’结束循环,请使用字符型数据填空。
intn=0,c;
c=getchar();
while(c!
=’\n’)
{if(c>=’0’&&c<=’9’)n++;
c=getchar();
}
53、将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,含有switch语句的程序段:
ints,t,m;
…
t=(int)(s/10);
switch(t)
{case10:
m=5;break;
case9:
m=4;break;
case8:
m=3;break;
case7:
m=2;break;
case6:
m=1;break;
default:
m=0;
}
含有非嵌套if语句的程序段:
ints,m;
if((s<110)&&(s>=100))
m=5;
if(s<100&&s>=90)m=4;
if(s<90&&s>=80)m=3;
if(s<80&&s>=70)m=2;
if(s<70&&s>690)m=1;
if((s<60)||(s>109))
(m=0);
54、打印100以内个位数为6且能被3整除的所有数。
voidmain(void)
{inti,j;
for(i=0;(i<10);i++)
{j=i*10+6;
if(j%3!
=0)continue;
printf(“%d”,j);
}
}
55、以下程序实现输出x,y,z三个数中的最大者
voidmain(void)
{intx=4,y=6,z=7;
int(u,v);
if(x>y)u=x;
elseu=y;
if(u>z)v=u;
elsev=z;
prinf(“v=%d”,v);
}
56、假设a数组中的数据已按又小到大的顺序存放,以下程序可把a数组中相同的数据删除只剩一个,然后以每行4个数据的格式输出a数组。
#defineM10
main()
{inta[M],i,j,n;
for(i=0;iscanf(“%d”,a+i);
n=i=M-1;
while(i>=0)
{if(*(a+i)==*(a+i-1))
{for(j=(i);j*(a+j)=*(a+j+1);
n--;
}
i--;
}
for(i=1;i{printf(“%4d”,*(a+i-1));
if(i%4==0)printf(“\n”);
}
printf(“\n”);
}
57、下面程序的功能是从三个红球,五个白球,六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。
#include
voidmain(void)
{inti,j,k;
printf(“\nhongbaihei\n”);
for(i=1;i<=3;i++)
for((j=1);j<=5;j++)
{k=8-i-j;
if(k>-1&&k<7)
printf(“%3d%3d%3d\n”,i,j,k);
}
}
58、设有三人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名、年龄,请在空白处填入正确内容。
staticstructman
{charname[20];
intage;
}person[]={“li-ming”,18,“wang-hua”,19,“zhang-ping”,20};
main()
{inti,j,max,min;
max=min=person[0].age;
for(i=1;i<3;i++)
if(person[i].age>max)(max=person[i].age);
elseif(person[i].agefor(i=0;i<3;i++)
if(person[i].age!
=max&&person[i].age!
=min)
{printf(“%s%d\n”,person[i].name,person[i].age);
break;
}
}
59、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。
#include
voidmain(void)
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf(“arraya:
\n”);
for(i=0;i<=1;i++)
{for(j=0;(j<=2);j++)
{printf(“%5d”,a[i][j]);
(b[j][i]=a[i][j]);
}
printf(“\n”);
}
printf(“arrayb:
\n”);
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)printf(“%5d”),b[i][j]};
printf(“\n”);
}
}
60、下面程序以每行4个数据的形式输出a数组,
a[0]存放输入的第1个数据,
#defineN20
voidmain(void)
{inta[N],I;
for(i=0;ifor(i=0;i{if((i%4==0))(printf(“\n”));
printf(“%3d”,a[i]);
}
printf(“\n”);
}
61、请读程序;
#include
voidmain(void)
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;}
case2:
a++;b++;break;}
printf(“a=%d;b=%d”,a,b);
}
上面程序的运行结果是(a=2;b=1)
62、以下程序段的运行结果是(5,25)
#include
voidff1()
{externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
voidmain(void)
{inta=7,b=5;
x=a-b;
y=a+b;
ff1();
printf(%d,%d\n”,x,y);
}
63、若有定义:
doublex[3][5];则x数组中行下标的下限为(0),列下标的上限为4。
64、若有以下定义和语句,
int*p[3],a[9],i;
for(i=0;i<3;i++)p[i]=&a[3*i];
则*p[0]引用的是数组元素(a[0])
65、已知字母a的ASCII码为十进制数97;且设ch为字符型变量,则表达式ch=’a’+’8’-‘3’的值为(102)
66、若有定义:
inta[3][2]={2,4,6,8,10,12};
则*(a[1]+1)的值是(8)
67、C语言所提供的基本数据类型包括(用汉字描述):
单精度型,双精度型,(整),字符和枚举。
68、若有定义:
inta[3][5],i,j;且(则a[i][j]的地址可用五种形式表示,它们是:
(1)&a[i][j]
(2)a[i]+j
(3)*(a+j)+j