二级C语言笔试
(考试时间120分钟,满分100分)
一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)
(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
(7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有"+"标记表示
A)该文件夹为空 B)该文件夹中含有子文件夹
C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件
(8)在Windows环境下,下列叙述中正确的是
A)在"开始"菜单中可以增加项目,也可以删除项目
B)在"开始"菜单中不能增加项目,也不能删除项目
C)在"开始"菜单中可以增加项目,但不能删除项目
D)在"开始"菜单中不能增加项目,但可以删除项目
(9) 从Windows环境进入DOS方式后,返回Windows环境的命令为
A)QUIT B)WIN C)EXIT D)ESC
(10) 下列叙述中正确的是
A)计算机病毒只感染可执行文件
B)计算机病毒只感染文本文件
C)计算机病毒只能通过软件复制的方式进行传播
D)计算机病毒可以通过读写磁盘或网络等方式进行传播
(11)以下叙述中正确的是
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
(12)以下选项中可作为C语言合法整数的是
A)10110B B)0386 C)0Xffa D)x2a2
(13)以下不能定义为用户标识符的是
A)scanf B)Void C)_3com_ D)int
(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 ",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
(15)以下选项中非法的表达式是
A)0<=x<100 B)i=j==0
C)(char)(65+3) D)x+1=x+1
(16)有以下程序
main()
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a
printf("%d,%d ",k,m);
}
程序运行后的输出结果是
A)0,0 B)0,1 C)1,0D)1,1
(17)有定义语句:int x, y;,若值11,变量y得到数值12,下面四组输入要通过scanf("%d,%d",&x,&y);语句使变量x得到数形式中,错误的是
A)11 12<回车> B)11, 12<回车>
C)11,12<回车> D)11,<回车>
12<回车>
(18)设有如下程序段:
int x=2002, y=2003;
printf("%d ",(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 (c ) if (a<3) x=3;
else if (b lse if (a<2) x=2;
else x=3; else x=1;
C) if (a<3) x=3; D) if (a =b;
if (a<2) x=2; if (b
if (a<1) x=1; if (c<a) x=a;
(21)有以下程序
main()
{ int s=0,a=1,n;
scanf("%d",&n);
do
{ s+=1; a=a-2; }
while(a!=n);
printf("%d ",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是
A)-1 B)-3 C)-5 D)0
(22)若有如下程序段,其中s、a、0)b、c均已定义为整型变量,且a、c均已赋值(c大于
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;
(23)有以下程序
main()
{ int k=4,n=0;
for( ; n
{ n++;
if(n%3!=0) continue;
k--; }
printf("%d,%d ",k,n);
}
程序运行后的输出结果是
A)1,1 B)2,2 C)3,3 D)4,4
(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 ",s);
}
程序运行后输出结果错误,导致错误结果的程序行是
A)s=1.0; B)for(n=10;n>1;n--)
C)s=s+1/n; D)printf("%6.4f ",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%c ",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("%d ",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)inta[][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={"Bei
jing"};
C)char s[8]; s="Beijing"; D)char *s; s="Beijing";
(36)已定义以下函数
fun(int *p)
{ return *p; }
该函数的返回值是
A)不确定的值 B)形参p中存放的值
C)形参p所指存储单元中的值 D)形参p的地址值