二级C语言笔试试题Word文档下载推荐.docx
《二级C语言笔试试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级C语言笔试试题Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
(12)C语言中用于结构化程序设计的三种基本结构是( )。
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
(13)在一个C程序中( )。
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
(14)下列叙述中正确的是( )。
A)C语言中既有逻辑类型也有集合类型
B)C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D)C语言中既没有逻辑类型也没有集合类型
(15)下列关于C语言用户标识符的叙述中正确的是
A)用户标识符中可以出现在下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
(16)若有以下程序段(n所赋的是八进制数)
intm=32767,n=032767
printf("
%d,%o/n"
m,n);
执行后输出结果是( )。
A)32767,32767
B)32767,032767
C)32767,77777
D)32767,077777
(17)下列关于单目运算符++、--的叙述中正确的是( )。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
(18)若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
%X\n"
m);
A)0X0
B)0x0
C)0
D)0XABC
(19)有以下程序段
intm=0,n=0;
charc='
a'
;
scanf("
%d%c%d"
&
m,&
c,&
n);
printf("
%d,%c,%d\n"
m,c,n);
若从键盘上输入:
10A10<
回车>
,则输出结果是:
( )。
A)10,A,10
B)10,a,10
C)10,a,0
D)10,A,0
(20)有以下程序
main()
{inti;
for(i=0;
i<
3;
i++)
switch(i)
{case1:
%d"
i);
case2:
default:
}
}
A)011122
B)012
C)012020
D)120
(21)有以下程序
{inti=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
(22)有以下程序
{inta=5,b=4,c=3,d=2;
if(a>
b>
c)
%d\n"
d);
elseif((c-1>
=d)==1)
d+1);
else
d+2)
A)2
B)3
C)4
D)编译时有错,无结果
(23)有以下程序
{intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<
7&
p[i]%2){k=k+p[i];
i++;
}
k);
A)58
B)56
C)45
D)24
(24)有以下程序
{inti=0,s=0;
do{
if(i%2){i++;
continue;
i++;
s+=i;
}while(i<
7);
s);
A)16
B)12
C)28
D)21
(25)有以下程序
{inti=10,j=1;
%d,%d\n"
i--,++j);
A)9,2
B)10,2
C)9,1
D)10,1
(26)有以下程序
{chara,b,c,*d;
a='
\'
b='
\xbc'
c='
\0xab'
d="
\017"
print("
%c%c%c\n"
a,b,c,*d);
编译时出现错误,以下叙述中正确的是( )。
A)程序中只有a='
;
语句不正确
B)b='
语句不正确
C)d="
\0127"
D)a='
和c='
语句都不正确
(27)有以下程序
intfl(intx,inty)
{returnx>
y?
x:
y;
intf2(intx,inty)
y:
x;
{inta=4,b=3,c=5,d,e,f;
d=f1(a,b);
d=f1(d,c);
e=f2(a,b);
e=f2(e,c);
f=a+b+c-d-e;
d,f,e);
A)3,4,5
B)5,3,4
C)5,4,3
D)3,5,4
(28)有如下程序
voidf(intx,inty)
{intt;
if(x}
{inta=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
a,b,c);
D)4,3,5
(29)若有以下定义和语句
#include
inta=4,b=3,*p,*q,*w;
p=&
a;
q=&
b;
w=q;
q=NULL;
则以下选项中错误的语句是( )。
A)*q=0;
B)w=p;
C)*p=a;
D)*p=*w;
(30)有以下程序
int*f(int*x,int*y)
{if(*x<
*y)
returnx;
returny;
{inta=7,b=8,*p,*q,*r};
A)7,8,8
B)7,8,7
C)8,7,7
D)8,7,8
(31)有以下程序
{char*s[]={"
one"
"
two"
three"
},*p;
p=s[1];
%c,%s\n"
*(p+1),s[0]);
A)n,two
B)t,one
C)w,one
D)o,two
(32)有以下程序
{intx[8]={8,7,6,5,0,0},*s;
s=x+3
s[2]);
A)随机值
B)0
C)5
D)6
(33)以下能正确定义数组并正确赋初值的语句是( )。
A)intN=5,b[N][N];
B)inta[1][2]={{1},{3}};
C)intc[2][]={{1,2},{3,4}};
D)intd[3][2]={{1,2},{34}};
(34)有以下程序
{intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
{printf("
m[k][i]);
A)456
B)258
C)369
D)789
(35)以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
#defineN10
voidarrin(intx[N])
{inti=0;
while(iscanf("
);
在下划线处应填入的是( )。
A)x+i
B)&
x[i+1]
C)x+(i++)
D)&
x[++i]
(36)有以下程序
{chars[]="
\n123\\"
strlen(s),sizeof(s));
A)赋初值的字符串有错
B)6,7
C)5,6
D)6,6
(37)阅读以下函数
fun(char*s1,char*s2)
while(s1[i]==s2[i]&
s2[i]!
='
\0'
)i++;
return(s1[i]==&
s2{i}!
=='
);
此函数的功能是( )。
A)将s2所指字符串赋给s1
B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
(38)以下叙述中正确的是( )。
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
(39)设有如下说明
typedefstruct
{intn;
charc;
doublex;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是
A)STDtt[2]={{1,'
A'
62},{2,'
B'
75}};
B)STDtt[2]={1,"
A"
62},2,"
B"
75};
C)structtt[2]={{1,'
},{2,'
}};
D)structtt[2]={{1,"
62.5},{2,"
75.0}};
(40)有以下程序
{union{unsignedintn;
unsignedcharc;
}u1;
ul.c=`A`;
%c\n"
u1.n);
执行后输出结果是( )。
A)产生语法错
B)随机值
C)A
D)65
(41)有以下程序
{charstr[]="
xyz"
*ps=str;
while(*ps)ps++;
for(ps--;
ps-str>
=0;
ps--)puts(ps);
执行后的输出结果是( )。
A)yzB)zC)zD)x
xyzyzyzxy
xyzxyz
(42)有以下程序
{inta[][3]={{1,2,3},{4,5,0}},{*pa}[3],i;
pa=a;
for(i=0;
if(i<
2)pa[1][i]=pa[1][i]-1;
elsepa[1][i]=1;
a[0][1]+a[1][1]+a[1][2]);
A)7
B)6
C)8
D)无确定值
(43)有以下程序
voidfun(int*a,inti,intj)
if(i{t=a[i];
a[i]=a[j];
a[j]=t;
fun(a,++i,--j);
{inta[]={1,2,3,4,5,6},i;
fun(a,0,5)
6;
a[i]);
A)654321
B)432156
C)456123
D)123456
(44)有以下程序
main(intarge,char*argv[])
{intn,i=0;
while(arv[1][i]!
{n=fun();
printf(%d\n"
n*argc);
intfun()
{staticints=0;
s+=1;
returns;
假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行
exam123<
则运行结果为( )。
A)6
B)8
C)3
D)4
(45)以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是( )。
A)main() B)main
{int*p;
{int*p;
fun(p);
fun(&
p);
} }
intfun(int*p) intfun(int**p)
{ints;
s;
} {ints;
*p=&
C)#include D)#include
main() main()
fun(&
fun(p);
} }
intfun(int**p) intfun(int*p)
{*p=(int*)malloc
(2);
} {p=(int*)malloc(sizeo(int));
(46)若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是( )。
A)typedefSTPchar*s;
B)typedef*charSTP;
C)typedefstp*char;
D)typedefchar*STP;
(47)设有如下定义
structss
{charname[10];
intage;
charsex;
}std[3],*p=std;
下面各输入语句中错误的是( )。
A)scanf("
(*p).age);
B)scanf("
%s"
std.name);
C)scanf("
%c"
std[0].sex)
D)scanf("
(p->
sex));
(48)设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是( )。
A)10101001
B)10101000
C)11111101
D)01010101
(49)以下叙述中不正确的是( )。
A)C语言中的文本文件以ASCⅡ码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
(50)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
{FILE*fout;
charch;
fout=fopen('
abc.txt'
'
w'
ch=fgetc(stdin);
while(ch!
#'
)
{fputc(ch,fout);
ch=fgetc(stdin);
fclose(fout);
出错的原因是( )。
A)函数fopen调用形式错误
B)输入文件没有关闭
C)函数fgetc调用形式错误
D)文件指针stdin没有定义
二、填空题(每空2分,共20分)
请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。
(1)用十六进制绘存储器中的字节地址进行编号,若地址编号从000到FFFF,则该存诸器的容量为【1】KB。
(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。
若使用COPY命令,则完整的命令为【2】。
(3)E-mail地址由用户和域名两部分组成,这两部分的分隔符为【3】。
(4)假设在当前盘当前目录下有一个可执行程序USER.EXE。
现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件OUT.DAT中,则完整的DOS命令为【4】。
(5)在DOS环境下,表示打印机的设备文件名为【5】。
(6)若有语句
inti=-19,j=i%4;
j);
则输出结果是 【6】 。
(7)若有程序
{inti,j;
i=%d,j=%d"
i,&
j);
i=%d,j=%d\n"
i,j);
要求给i赋10,给j赋20,则应该从键盘输入 【7】 。
(8)若有以下程序
{intp,a=5;
if(p=a!
=0)
p);
p+2);
执行后输出结果是 【8】 。
(9)若有以下程序
{inta=4,b=3,c=5,t=0;
if(aif(aprintf("
%d%d%d\n"
执行后输出结果是【9】。
(10)若有以下程序
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
4;
{for(j=0;
j<
j++)
{if(a[i][j]<
0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
执行后输出的结果是 【10】 。
(11)若有以下程序