c语言程序设计期末复习题.docx
《c语言程序设计期末复习题.docx》由会员分享,可在线阅读,更多相关《c语言程序设计期末复习题.docx(19页珍藏版)》请在冰豆网上搜索。
c语言程序设计期末复习题
钦州学院期末考试参考答案
1.运行下面的程序,其输出是(
B
)
#include
voidmain()
{inti=1;
while(i<19)
if(i++%5!
=3)
continue;
else
printf(
%d“
”,i);}
A)257911131517
B)3
6
9
12
15
18
C)4
9
14
19
D)3
8
13
17
19
2.设
x、y均为整型变量,且
x=10,y=3,则以下语句的输出结果是
(D
)
printf("%d,%d\n",x--,--y
);
A)10,3
B)9,3
C)9,2
D)10,2
3.以下选项中,当
x为大于
1的奇数时,值为
0的表达式
(D
)
A)x%2==1
B)x/2
C)x%2!
=0
D)x%2==0
4.若有以下语句
intx[]={2,4,6,8,10,12},*ptr;
ptr=x;
则对数组元素的正确引用为(B)
A)x
B)x[6]
C)*(--ptr)
D)*(++ptr)
5.以下程序的输出结果是
(
D
)。
#include
voidmain()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(xif(y==20)
if(ok1)a=1;
else
if(ok2)
a=10;
printf("%d\n",a);}
A)1
B)0
C)-1
D)值不确定
6.以下程序的运行结果是(C
)。
第1
页共2页
钦州学院期末考试参考答案
#include
voidmain()
{intm=5;
if(m++>5)
printf("%d\n",m);
else
printf("%d\n",m);}
A)4
B)5
C)6
D)7
7.执行以下语句后
b的值为
(
C
)。
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);
A)5B)0C)6D)1
8.下面程序的运行结果是(C)。
voidmain(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A)-1B)1C)8D)0
9.有以下程序
#include
#include
voidmain()
{charp[20]={,a?
?
b?
?
c?
?
d?
},q[]=”abc”,r[]=”abcd”;
strcpy(p+strlen(q),r);
strcat(p,q);
printf("%d%d",sizeof(p),srlen(p));}
程序运行后的输出结果是:
(
B
)
A)30
10
B)20
9
C)20
11
D)30
11
10.在调用函数时,如果实参是变量名,它与对应形参之间的数据传递方式是
:
(
C)
A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参D)传递方式由用户指定
11.下面程序运行后,其输出是:
(D)
#includevoidmain()
{inti,j,k;
intfunc();
i=1,j=2,k=3;
printf(“%d”,func((j+=k,j++),(i,i++,i++)));}
intfunc(intx,inty)
{intz;
z=x%y;
return(z);}
第2页共2页
钦州学院期末考试参考答案
A)2B)0C)1D)3
12.下面程序运行后,其输出是:
(B)
#include
intx,y;
one()
{inta,b;
a=25,b=10;
x=a-b;
y=a+b;}
main()
{inta,b;
a=9,b=5;
x=a+b;
y=a-b;
one();
printf(
“%d,%d
”,x,y);}
A)14,4
B)14,35
C)15,35
D)15,4
13.以下程序中函数
f的功能是:
当
flag
为1时,进行有由小到大排序;当
flag
为0时,进行由大到小排序。
#includevoidmain()
{voidf(intb[],intn,intflag);
inta[10]={5,4,3,2,1,6,7,8,9,10};
inti;
f(&a[2],5,0);
f(a,5,1);
for(i=0;i<10;i++)
printf("%d,",a[i]);}
voidf(intb[],intn,intflag)
{inti,j,t;
for(i=0;ifor(j=0;jif(flag?
b[j]>b[j+1]:
b[j]
{t=b[j];
b[j]=b[j+1];
b[j+1]=t;}}
程序运行后的输出结果是:
(A
)
A)1,2,3,4,5,6,7,8,9,10,
B)3,4,5,6,7,8,2,1,9,10,
C)3,4,5,6,7,8,9,10,2,1,
D)3,4,5,6,7,8,9,2,1,10,
14.有以下程序
voidf(intb[])
第3页共2页
钦州学院期末考试参考答案
{inti;for(i=1;i<6;i++)b[i]*=2;}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++)
printf(“%d,”,a[i]);}
程序运行后的输出结果是:
()
A)1,4,6,8,10,12,14,8,9,10,
B)1,2,6,8,10,12,7,8,9,10,
C)1,2,3,4,10,12,14,16,9,10,
D)1,2,6,8,10,12,14,16,9,10,
15.以下错误的定义语句是:
(
)
A)int
x[][3]={{0},{1},{1,2,3}};
B)int
x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C)int
x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D)int
x[][3]={1,2,3,4};
16.运行下面的程序,其输出是()
main()
{inta[]={2,4,6,8,10},y=1,x,*p;p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf(“%d”,y);}
A)17
B)18
C)19
D)20
17.有如下程序
inta[10]={1,2,3,4,5,6,7,8,9,10}
;
int*p=&a[3],b;b=p[5];则b的值是:
(
B)
A)5
B)6
C)9
D)8
18.以下程序的输出结果是(A)
unionmyun
{struct{intx,y,z;}u;intk;}a;
main(){a.u.x=4;a.u.y=5;a.u.z=6;printf("%d\n",a.u.x);}
A)4
B)5
C)6
D)0
19.凡是在函数中未指定存储类别的变量,其隐含的存储类别是:
(
C)
第4
页共2页
钦州学院期末考试参考答案
A)自动B)静态C)外部D)寄存器
数组
1.以下函数用来在w数组中插入x。
n所指向的存储单元中存放w数组中字符个数。
w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。
请填空。
voidfun(char*w,charx,int*n)
{inti,p;p=0;w[*n]=x;
while(x>w[p])p++;
for(i=*n;i>p;i--)w[i]=【1】;
w[p]=x;++*n;}
2.以下程序的输出结果是【2】。
#include
void
swap(int
*a,
int
*b)
{int*t;
t=a;
a=b;
b=t;}
main(){int
i=2,j=5,*p=&i,*q=&j;
swap(p,q);
printf("%d
%d\n",*p,*q);}
3.以下程序的功能是:
求出数组
x中各相邻两个元素的和依次存放到
a数组中,然后
输出。
请填空。
#includemain()
{intx[10],a[9],i;
for(i=0;【3】;i++)scanf("%d",&x[i]);
for(i=1;i<10;i++)a[i-1]=x[i]+【4】;
for(i=0;【5】;i++)printf("%d",a[i]);
printf("");}
4.以下程序是选出能被
3整除且至少有一位是
5的两位数
打印出所有这样
的数及其个数。
请在【】内填入正确内容。
sub(intk,intn)
{inta1,a2;a2=【6】;a1=k-【7】;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{printf("%d",k);n++;returnn;}
elsereturn-1;}
main(){intn=0,k,m;for(k=10;k<=99;k++)
{m=sub(k,n);if(m!
=-1)n=m;}printf("\nn=%d",n);}
5.已有定义:
charc=?
?
;inta=1,b;(此处c的初值为空格字符),执行
b=!
c
第
5
页共
2
页
钦州学院期末考试参考答案
&&a;后b的值为【8】。
6.若有定义:
intk:
,以下程序段的输出结果是【9】。
for(k=2;k<6;k++,k++)printf("##%d",k);
7.以下程序中函数fun的功能是:
统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。
请填空。
#include
#defineN3
typedefstruct
{intnum;charnam[10];charsex;}SS;
intfun(SSperson[])
{inti,n=0;
for(i=0;iif(【10】=='M')n++;
returnn;}
main()
{SSW[N]={{1,"AA",'F'},{2,"BB",'M'},{3,"CC",'M'}};
intn;n=fun(W);printf("n=%d\n",n);}
编程题:
1.用递归方法求n!
。
(P156例题7.7)
2.有一个3*4的二维数组a,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号。
(P123例题6.5)
第6页共2页