《C语言程序设计》综合练习题与答案Word格式文档下载.docx
《《C语言程序设计》综合练习题与答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》综合练习题与答案Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。
a++)
for(b=0;
b<
=3;
b++)
c=c+1;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
(2)inti=1;
do{
if(i%10){
i=i+1;
continue;
}
printf(“%5d”,i);
i++;
}While(i<
=50);
(3)intx=2;
there:
x=x+1;
if(x<
6)gotothere;
printf("
x=%d"
x);
Endofprogram."
);
(4)intx=1,y=1;
while(y<
6)
{
x=x*y;
y=y+1;
}
x=%d\n"
(5)inti,j,x[2][2];
for(i=0;
i<
2;
i++){
for(j=0;
j<
j++){
x[i][j]=i十j;
printf("
x[%d][%d]=%d"
i,j,x[i][j]);
printf("
\n"
(6)inta[5]={5,4,3,2,1},i=0,x=0;
whi1e(i<
5)
x=a[i]十x;
x=%d\n"
(7)main()
intx=10,y=20;
result=%d\n"
abc(x,y));
return0;
abc(inta,intb)
intc;
if(b)
{c=a/b+a;
returnc;
}
e1se
(8)main()
intx=10;
inti;
for(i=0;
i++)
printf(“%d”,fun(x));
fun(intx)
staticintZ=3;
Z=Z+x;
returnZ;
(9)main()
inta,b;
a=50;
b=90;
%d\n"
(a,b));
(10)main()
inta[10]={19,23,44,17,37,28,49,36},*P;
P=a;
%d\n"
(P+=3)[3]);
return0;
(11)main()
inti=3,j=2;
char*a="
DCBA"
;
%c%c\n"
a[i],a[j])"
(12)#include<
stdio.h>
fun(intx)
intk;
if(x==0||x==1)return(3);
k=x-fun(x-2);
returnk;
main()
fun(9));
(13)#include<
iostream.h>
voidmyFunc();
voidrnain()
intX=5;
cout<
<
"
\nInmainXis:
"
X;
myFunc();
\nBackinmain,Xis:
voidmyFunc()
intX=8;
\nInmyFunc,localX:
{
cout<
\nInblockinmyFunc,Xis:
intX=9;
\nVerylocal,X:
”<
X;
\nOutofblock,inmyFunc,Xis:
(14)#include<
f(inta[])
inti=0;
while(a[i]<
=10)
printf("
%d"
a[i]);
i++;
main()
inta[]={1,5,10,9,11,7};
f(a+1);
(15)#include<
swap(int*p1,int*p2)
intp;
p=*p1;
*p1=*p2;
*p2=p;
inta=5,b=7,*ptr1,*ptr2;
prt1=&
a;
ptr2=&
b;
swap(ptr1,ptr2)
*ptr1=%d,*ptr2=%d\n"
*ptr1,*ptr2);
a,b);
(16)#include<
voidmain(void)
intx,y=-2,z=0;
if((z=y)<
0)x=4;
elseif(y==0)x=5;
elsex=6;
\t%d\t%d\n"
x,z);
if(z=(y==0))
x=5;
x=4;
if(x=z=y)x=4;
(17)#include<
intfac(intn)
staticintf=1;
f=f*n;
return(f);
inti;
for(i=1;
=5;
%d!
=%d\n"
i,fac(i));
return;
(18)#include<
intf=1;
三、单项选择题
1.一个C程序的执行是从_______。
(A)本程序的main函数开始,到main函数结束
(B)本程序的第一个函数开始,到本程序文件的最后一个函数结束
(C)本程序的main函数开始,到本程序文件的最后一个函数结束
(D)本程序文件的第一个函数开始,到本程序main函数结束
2.一个C语言程序是由__________。
(A)一个主程序和若干个子程序组成
(B)函数组成
(C)若干个过程组成
(D)若干个子程序组成
3.下面选项中,均是不合法的用户标示法的选项是________。
(A)AP_0do
(B)floatla0_A
(C)b-agotoint
(D)_123tempINT
4.以下叙述正确的是_________。
(A)在C程序中,每行中只能写一条语句
(B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整数
(C)在C程序中,如论是整数还是实数,都能被准确无误地表示
(D)在C程序中,%是只能用于整数运算的运算符
5.以下C程序的正确的运行结果是___________。
(注:
表示空格)
main()
{
longy=-43456;
printf("
y=%-8ld\n"
y);
y=%-08ld\n"
y=%08ld\n"
y=%+8ld\n"
(A)y=
-43456(B)y=-43456
y=-
43456y=-43456
y=-0043456y=-0043456
y=-43456y=+
-43456
(C)y=-43456(D)y=
y=-43456y=-0043456
y=-0043456y=00043456
y=
-43456y=+43456
6.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是___。
(A)'
x'
&
'
y'
(B)x<
=y
(C)x||y+z&
y-z(D)!
((x<
y)&
!
z||1)
7.以下运算符中优先级最低的是_______。
(A),(B)&
(C)+(D)!
=
8.以下if语句语法正确的是_______。
(A)if(x>
0)
printf("
%f"
x)
elseprintf("
-x);
(B)if(x>
{x=x+y;
x);
}
(C)if(x>
};
(D)if(x>
x)};
9.以下程序段_____________。
x=-1;
do
{x=x*x;
while(!
x);
(A)是死循环
(B)循环执行二次
(C)循环执行一次
(D)有语法错误
10.执行语句for(i=1;
i++<
4;
);
变量的值是________。
(A)3(B)4(C)5(D)不确定
11.对以下说明语句的正确理解是_________。
inta[10]={6,7,8,9,10};
(A)将5个初值一次赋给a[1]至a[5]
(B)将5个初值一次赋给a[0]至a[4]
(C)将5个初值一次赋给a[6]至a[10]
(D)因为数组长度与初值的个数不相同,所以语句不正确
12.下面程序段的运行结果是____________。
chara[]={'
a'
'
b'
\0'
c'
%s"
c);
(B)ab(C)ab
c(D)abc
13.在C语言中,以下正确的说法是______
(A)实参和与其对应的形参各占独立的存储单元
(B)实参和与其对应的形参占用同一个存储单元
(C)只有当实参和与其对应的形参同名时才占用同一个存储单元
(D)形参是虚拟的,不占用存储单元
14.用数组名作为函数调用的实参,传递给形参的是_____。
(A)数组的首地址
(B)数组第一个元素的值
(C)数组中全部元素的值
(D)数组元素的个数
15.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为____。
(A)自动(auto)(B)静态(static)
(C)外部(extern)(D)寄存器(register)
16.以下叙述中正确的是_________。
(A)在程序的一行上可以出现多个有效的预处理命令行
(B)使用带参的宏时,参数的类型应与宏定义时一致
(C)宏替换不占用运行时间,只占编译时间
(D)以下定义中CR是称为“宏名”的标示符
#defineCR045
17.若有以下宏定义:
#defineN2
#definY(n)((N+1)*N)
则执行语句z=2*(N+Y(5));
后的结果是_________。
(A)语句有错误(B)z=34
(C)z=70(D)z无定值
18.下面程序应能对两个整型变量的值进行交换。
以下正确的说法是______。
main()
{
inta=10,b=20;
(1)a=%d,b=%d\n"
swap(&
a,&
b);
(2)a=%d,b=%d\n"
swap(intp,intq)
intt;
t=p;
p=q;
q=t;
(A)该程序完全正确
(B)该程序有错,只要将语句swap(&
中的参数该为a,b即可
(C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
(D)以上说法都不正确
19.若有定义inta=5;
下面对
(1)和
(2)两个语句的正确解释是____。
(1)int*p=&
(2)*p=a;
(A)语句
(1)和
(2)中的*p含义相同,都表示给指针变量p赋值。
(B)
(1)和
(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
(C)语句
(1)在对p进行说明的同时进行初始化,使p指向a
语句
(2)将变量a的值赋给指针变量p
(D)语句
(1)在对p进行说明的同时进行初始化,使p指向a
语句
(2)将变量a的值赋给*p
20.若已定义chars[10];
则在下面表达式中不表示s[1]的地址的是___。
(A)s+1(B)s++(C)&
s[0]+1(D)&
s[1]
21.编译执行下列程序,结果是:
____________。
#inclucle<
stdiO.h>
inti=6;
y=4;
z=2;
i/y%z);
return0;
(A)显示出错信息,不能执行。
(B)0(C)1(D)2
22.以下程序的输出结果是:
______。
#inclucle<
intx=10,y=10;
%d%d\n"
x--,--y);
retum0;
(A)1010(B)99
(C)910(D)109
23.以下程序的输出结果为:
stdi0.h>
intx=023;
--x);
return0;
(A)18(B)22
(C)23(D)19
24.不能进行++和--运算的数据类型是:
(A)指针(B)double
(C)int(D)long
25.下列字符序列中,不可用作C语言标识符的是:
______
(A)$4568:
’(B)sum
(C)STUD_name(D)basic_12
26.设X的值为3,则表达式(X++)+(X++)+(X++)的值是______。
(A)10(B)6
(C)12(D)9
27.设a=12,b=12345,执行语句printf("
%4d,%4d"
a,b)的输出结果为:
(A)12,123(B)12,12345
(C)12,1234(D)12,123456
28.以下程序的输出结果是:
inti=1,sum=0;
while(i<
10)
sum=sum+1;
i++;
i=%d,sum=%d"
i,sum);
(A)i=10,sum=9(B)i=9,sum=9
(C)i=2,sum=1(D)运行出现错误
29.以下程序的的输出结果为:
inta,b,c,x,y,z;
a=10;
b=2;
c=!
(a%b);
x=!
(a/b);
y=(a<
b)&
(b>
=0);
z=(a<
b)||(b>
c=%d,x=%d,y=%d,z=%d\n"
c,x,y,z);
(A)c=0,x=1,y=l,z=0(B)c=5,x=0,y=l,z=0
(C)c=1,x=0,y=0,z=1(D)c=10,x=2,y=0,z=1
30.执行下列程序段后,xy的值是:
int*pt,xy;
xy=270;
pt=&
xy;
xy=*pt+30;
(A)270(B)240
(C)330(D)300
31.用scanf("
%d,%d,&
b)输人数据时,下面输入法正确的是:
________
(A)123,4(B)1234
(C)123;
4(D)123:
4
32.以下程序的输出结果是:
_______。
point(char*pt);
charb[4]={'
s'
f'
},*pt=b;
point(pt);
%c\n"
*pt);
return0;
point(char*P)
P+=3;
(A)s(B)c
(C)f(D)a
33.标有/**/的语句的执行次数是:
________。
inty,i;
for(i=0;
20;
if(i%2==0)
continue;
y=y+i;
/**/
(A)20(B)19
(C)10(D)9
34.以下程序的输出结果是:
_________。
sub(x,y,z)
intx,y,*z;
*z=y-x;
}
inta,b,c;
sub(10,5,&
a);
sub(7,a,&
sub(a,b,&
c);
%d,%d,%d\n"
a,b,c);
(A)-5,-12,-17(B)-5,-3,-2
(C)-5,-12,-7(D)-5,-2,-7
35.以下程序的输出结果为:
charcl='
c2='
c3='
a%cb%c\tc%c\n"
c1,c2,c3);
(A)abcabcabc(B)aabbcc
(C)abc(D)aaaabb
36.经过以下语句定义后,表达式z+=x>
y?
++x:
++y的值是:
intx=1,y=2,z=3;
(A)2(B)3
(C)6(D)5
37.在下列各m的值中,能使m%3==2&&m%5==3&
m%7==2为真的是:
_____
(A)8(B)23
(C)17(D)6
38.下列语句执行后的结果是:
y=5;
P=&y;
x=*P++;
(A)x=5,y=5(B)x=5,y=6
(C)x=6,y=5(D)x=6,y=6
39.以下程序的输出结果是:
inta[]={1,3,5,7};
{
intn;
int*P=a;
for