c语言009Word文档格式.docx
《c语言009Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言009Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
x=-m++;
x=x+8/++n;
printf("
%d\n"
x);
}
程序运行后的输出结果是D
A.3B.5C.-1D.-2
17.有以下程序
{chara=’a’,b;
print("
%c,"
++a);
%c\n"
b=a++);
程序运行后的输出结果是A
A.b,bB.b,cC.a,bD.a,c
18.有以下程序
{intm=o256,n=256;
%o%o\n"
m,n);
程序运行后的输出结果是C
A.o2560400B.0256256C.256400D.400400
19.有以下程序
main()
{inta=666,b=888;
printf("
a,b);
}
程序运行后的输出结果是B
A.错误信息B.666C.888D.666,888
20.有以下程序
{inti;
for(i=0;
i<
3;
i++)
switch(i)
{
case0:
printf("
%d"
i);
case2:
default:
A.022111B.021021C.000122D.012
21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<
10的是C
A.abs(x-y)<
10B.x-y>
-10&
&
x-y<
10
C.@(x-y)<
-10||!
(y-x)>
10D.(x-y)*(x-y)<
100
22.有以下程序
{inta=3,b=4,c=5,d=2;
if(a>
b)
if(b>
c)
d+++1);
else
++d+1);
d);
A.2B.3C.43D.44
23.下列条件语句中,功能与其他语句不同的是D
A.if(a)printf("
elseprintf("
y);
B.if(a==0)printf("
C.if(a!
=0)printf("
D.if(a==0)printf("
24.有以下程序
{inti=0,x=0;
for(;
;
)
{if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
s);
A.10B.13C.21D.程序进入死循环
25.若变量已正确定义,要求程序段完成求5!
的计算,不能完成此操作的程序段是B
A.for(i=1,p=1;
=5;
i++)p*=i;
B.for(i=1;
i++){p=1;
p*=i;
C.i=1;
p=1;
while(i<
=5){p*=i;
i++;
D.i=1;
do{p*=i;
}while(i<
=5);
26.有以下程序
{chara,b,c,d;
scanf("
%c,%c,%d,%d"
&
a,&
b,&
c,&
d);
%c,%c,%c,%c\n"
a,b,c,d);
若运行时从键盘上输入:
6,5,65,66<
回车>
。
则输出结果是C
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
27.以下能正确定义二维数组的是A
A.inta[][3];
B.inta[][3]=2{2*3};
C.inta[][3]={};
D.inta[2][3]={{1},{2},{3,4}};
28.有以下程序
intf(inta)
{return2;
}
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;
=f(s[1]);
i++)d+=s[i];
A.9B.11C.19D.21
29.*若有以下说明和语句,intc[4][5],(*p)[5];
p=c;
能正确引用c数组元素的是D
A.p+1B.*(p+3)C.*(p+1)+3D.*(p[0]+2))
30.有以下程序
{inta=7,b=8,*p,*q,*r;
p=&
q=&
b;
r=p;
p=q;
q=r;
%d,%d,%d,%d\n"
*p,"
q,a,b);
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
31.s12和s2已正确定义并分别指向两个字符串。
若要求:
当s1所指串大于s2所指串时,执行语句S;
则以下选项中正确的是D
A.if(s1>
s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,s1)>
0)S;
D.if(strcmp(s1,s2)>
0)S;
32.设有定义语句:
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是D
A.for(i=0;
6;
i++)printf("
%2d"
*(p++));
B.for(i=0;
*(p+i));
C.for(i=0;
*p++);
D.for(i=0;
(*p)++);
33.有以下程序
#include
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
%d%d\n"
*p,*1);
A.运行后报错B.66C.611D.510
34.*有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1.所代表的数组元素是C
A.a[0][1]B.a[1][0]C.a[1][1]D.a[1][2]
35.有以下程序
main(.
{charstr[][10]={"
China"
"
Beijing"
},*p=str;
%s\n"
*p+10);
程序运行后的输出结果是B
A.ChinaB.BejingC.ngD.ing
36.*有以下程序
{chars[]="
ABCD"
*p;
for(p=s+1;
p }
A.ABCDB.AC.BD.BCD
BCDBCCD
CDCDD
DD
37.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则B
A.称为函数的直接递归调用B.称为函数的间接递归调用
C.称为函数的循环调用D.C语言中不允许这样的递归调用
38.已有定义:
inti,a[10],*p;
则合法的赋值语句是D
A.p=100;
B.p=a[5];
C.p=a[2]+2;
D.p=a+2;
39.以下叙述中正确的是A
A.局部变量说明为static存储数,其生存期将得到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
40.*设有定义语句:
charc1=92,c2=92;
则以下表达式中值为零的是A
A.c1^c2B.c1&
c2C.~c2D.c1|c2
41.*程序中对fun函数有如下说明:
void*fun();
此说明的含义是:
C
A.fun函数无返回值
B.fun函数的返回值可以是任意的数据类型
C.fun函数的返回值是无值型的指针类型
D.指针fun指向一个函数,该函数无返回值
42.*有以下程序
{chars[]="
Yes\n/No"
*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
A.n/NoC./NoC.n/NOD.YesYesYes/No
/No/NoYes
43.有以下程序
main().
{unsignedinta;
intb=-1;
a=b;
%u"
a);
A.-1B.65535C.32767D.-32768
44.*有以下程序
voidfun(int*a,inti,intj)
{intt;
if
(1)
{t=a[i];
a[i]=a[j];
a[j]=t;
j--;
fun(a,i,j);
{intx[]={2,6,1,8},i;
fun(x,0,3);
4;
x[i]);
\n"
);
A.1268B.8621C.8162D.8612
45.*有以下说明和定义语句
structstudent
{intage;
charnum[8];
structstudentstu[3]={{20,"
200401"
},{21,"
200402"
},{10\9,"
200403"
}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是D
A.(p++)->
numB.p->
numC.(*p).numD.stu[3].age
46.有以下程序
main()
{intx[]={1,3,5,7,2,4,6,0},i,j,k;
for(j=2;
j>
=i;
j--)
if(x[j+1]>
x[j]){k=x[j];
x[j]=x[j+1];
x[j+1]=k;
for(j=4;
j<
7-i;
j++)
x[j]){k=x[j];
if(x[j]>
x[j+1]){k=x[j];
8;
程序运行后的输出结果是:
A
A.75310246B.01234567C.76310462D.13570246
47.*有如下程序
{FILE*fp1;
fp1=fopen("
f1.txt"
w"
fprintf(fp1,"
abc"
fclose(fp1);
若文本文件f1.txt中原有内容为:
good,则运行以上程序后文件f1.txt中的内容为C
A.goodabcB.abcdC.abcD.abcgood
48~50.以下程序的功能是:
建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。
stuctnode
{chardata;
structnode*next;
(48)CreatList(char*s)
{structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(structnode));
p=q=h;
while(*s!
=’\0’)
{p=(structnode*)malloc(sizeof(structnode));
p->
data=(49);
q->
next=p;
q=(50);
s++;
next=’\0’;
returnh;
{charstr[]="
linklist"
structnode*head;
head=CreatList(str);
...
(48)A.char*B.structnodeC.structnode*D.charC
(49)A.*sB.sC.*s++D.(*s.++A
(50)A.p->
nextB.pC.sD.s->
nextB
二、填空题:
(每空2分,共40分)
1.1.在64位高档微机中,CPU能同时处理___8__个字节的二进制数据。
2.E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分是_域名______
3.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。
为了移动窗口,则要用鼠标拖动__标题栏___
4.计算机软件分为系统软件和应用软件,UNIX系统属于__系统软件______。
5.在Windows环境下,为了将屏幕内容存入剪贴板,应按___PEINTSCREEN_____键。
6.以下程序段的输出结果是__11___
inti=9;
%o\n"
7.以下程序运行后的输出结果是_252137______。
{inta,b,c;
a=25;
b=025;
c=0x25;
%d%d%d\n’,a,b,c);
8.以下程序运行后的输出结果是___24___。
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
7&
p[i]%2==1){j+=p[i++];
j);
9.以下程序运行后的输出结果是____21___。
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
break;
case1:
b++;
case2:
10.以下程序运行后的输出结果是____92___。
{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<
4)
if(i==2||i==4)continue;
j=0;
do{s+=a[i][j];
j++;
}while(j<
4);
11.以下程序运行后的输出结果是__gae___。
{chara[]="
Language"
b[]="
Programe"
char*p1,*p2;
intk;
p1=a;
p2=b;
for(k=0;
k<
=7;
k++)
if(*p1+k.==*(p2+k))printf("
%c"
*(p1+k));
12.以下程序运行后的输出结果是_*2*4*6*8*______。
123456789"
inti=0;
p=a;
while(*p)
{if(i%2==0)*p=’*’;
p++;
puts(a);
13.以下程序中,for循环体执行的次数是__4___。
#defineN2
#defineMN+1
#defineKM+1*M/2
for(i=1;
K;
) {...}
14.通过函数求f(x)的累加和,其中f(x)=x2+1
{printf("
Thesum=%d\n"
SunFun(10));
SunFun(intn)
{intx,s=0;
for(x=0;
x<
=n;
x++)s+=f(___x_____);
returns;
f(intx)
{return___x*x+1_________;
15.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
请填空。
{inti,a[20],sun,count;
suum=count=0;
20;
i++)scanf("
__&
a[i]___);
fro(i=0;
{if(a>
0)
{count++;
sum+=__a[i]____;
sum=%d,count=%d\n"
sum,count);
16.以下程序中,函数
sumColumM的功能是:
求出M行N列二维数组每列元素中的最小值,并计算它们的和值。
和值通过形参传回主函数输出。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
N;
{k=0;
for(j=1;
M;
if(a[k][i]>
a[j][i])k=j;
s+=___a[k][i]____;
*sum=s;
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(___x,&
s____);
2004年9月二级C笔试答案
选择题
1-5CDABC 6-10BABAC 11-15BCCDC
16-20DACBC 21-25CADDB 26-30ACADC
31-35DDACB 36-40DBDAA 41-45CBBCD
46-50ACCAB
填空题
1.8 2.域名 3.标题栏 4.系统软件 5.PEINTSCREEN
6.11 7.252137 8.24 9.21 10.92 11.gae
12.1*3*5*7*9 13.4 14.xx*x+1 15.&
a[i]a[i] 16.a[k][i]*sumx,&
s