C语言各章习题答案Word格式文档下载.docx
《C语言各章习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言各章习题答案Word格式文档下载.docx(37页珍藏版)》请在冰点文库上搜索。
12、在c语言中,要求运算数必须是整型的运算符是:
A)/B)++C)!
=d)%
13、若有以下定义,则能使值为3的表达式是:
intk=7,x=12;
A)x%=(k%=5)B)x%=(k-k%5)
C)x%=k-k%5d)(x%=k)-(k%=5)
14、设以下变量均为int类型,则值不等于7的表达式是:
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)
c)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)
15、已知ch是字符型变量,下面正确的赋值语句是:
A)ch='
123'
;
b)ch='
\xff'
C)ch='
\08'
D)ch=”\”;
16、设x、y均为float型变量,则以下不合法的赋值语句是:
A)++x;
b)y=(x%2)/10;
C)x*=y+8D)x=y=0;
17、下列语句中符合C语言语法的赋值语句是
A)a=7+b+c=a+7;
B)a=7+b++=a+7;
C)a=3=7+b,b++,a+7D)a=7+b,c=a+7;
18、下面程序的输出是
A)0B)1c)3D)不确定的值
{intx=10,y=3;
%d\n"
y=x/y);
19、若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是
A)1B)2c)2.0D)2.5
20、设变量a是整型,f是实型,I是双精度型,则表达式10+‘a’+I*f值的数据类型是
A)intB)floatc)doubleD)不确定
答案:
1A2D3D4C5B6A7B8A9A10A11C12D13D14C15B16B17D18C19C20C
第4章
1)若x为float型变量,则以下语句___b______。
x=213.82631;
%4.2f\n"
x);
输出格式描述符的域宽不够,不能输出
输出为213.83
C)输出为213.82
D)输出为-213.82
2)若k为int型变量,则以下语句___________。
k=8567;
|%-6d|\n"
k);
A)输出格式描述符不合法
B)输出为|008567|
c)输出为|8567|
D)输出为|-08567|
3)若k为int型变量,则以下语句___________。
k=-8567;
|%6D|\n"
a输出为|%6D|
输出为|-8567|
格式描述符不合法,输出无定值
输出为|-8567|
4)若a为float型变量,b为unsigned型变量,则以下输入语句是合法的__________。
A)scanf("
%6.2f%d"
&
a,&
b);
B)scanf("
%f%n"
c)scanf("
%f%d"
D)scanf("
%f%3.2f"
5)若已定义a,b为整型变量,用scanf(”%d%d”,&
语句输入a、b的值时,不可以用_________作为输入的分隔符。
a),B)空格C)回车D)Tab
6)若a为整型变量,a=-2L;
printf("
,a);
则以下语句:
[]
A赋值不合法b输出值为-2C输出为不确定值D输出值为2
BCACAB
1、判断char型变量ch是否为大写字母的正确表达式是:
)'
<=ch<='
Z'
B)(ch<='
)&
&
(ch>='
)
c)(ch>='
(ch<='
)D)('
<=ch)AND('
z'
>=ch)
2、已知x=43,ch='
,y=0;
则表达式(x>=y&
ch<'
B'
&
!
y)的值是:
A)0B)语法错c)1D)“假”
3、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是:
A)A%2==1B)!
(A%2==0)c)!
(A%2)D)A%2
4、执行以下语句后a的值为【1】,b的值为【2】
inta,b,c;
a=b=c=1;
++a||++b&
++c
[1]A)错误B)0c)2D)1
[2]a)1B)2C)错误D)0
5、已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是
if(x>
y)
z=x;
x=y;
y=z;
A)x=10,y=20,z=30b)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
6、若w=1,x=2,y=3,z=4,则条件表达式w<
x?
w:
y<
z?
y:
z的值是
A)4B)3C)2d)1
7、执行以下程序段后,变量a,b,c的值分别是
intx=10,y=9;
a=(--x==y++)?
--x:
++y;
b=x++;
c=y;
A)a=9,b=9,c=9b)a=8,b=8,c=10
C)a=9,b=10,c=9D)a=10,b=11,c=10
8、执行以下程序段后的输出结果是
intw=3,z=7,x=10;
%d\n"
x>
10?
x+100:
x-10);
w++||z++);
!
w>
z);
w&
A)0B)1c)0D)0
1111
1100
1110
9、判断char型变量ch是否为大写字母的正确表达式是:
A)'
10、已知x=43,ch='
11、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
12、inta=1,b=2,c=3,d=4,m=2,n=2,则执行:
(m==a>b)&
(n==c>d)后n的值为:
A)1b)2C)3D)4
13、判断char型变量c1是否为小写字母的正确表达式为:
a'
<=c1<='
z’B)(c1>=a)&
(c1<=z)
C)('
>=c1)||('
<=c1)d)(c1>='
)&
(c1<='
14、以下不正确的:
if语句形式是:
A)if(x>y&
x!
=y);
B)if(x==y)x==y;
c)if(x!
=y)scanf("
%d"
x)elsescanf("
%d"
y);
if(x<y){x++;
y++;
答案1C2C3C4CA5B6D7B8C9C10C11C12B13D14C
第5章
1、下面程序段的运行结果是:
a=1;
b=2;
c=2;
while(a<b<c)
{t=a;
a=b;
b=t;
c――}
%d,%d,%d"
,a,b,c)
a)1,2,0B)2,1,0C)1,2,1D)2,1,1
2、下面程序段的运行结果是:
x=y=0;
while(x<15)y++,x+=++y;
%d,%d"
,y,x);
A)20,7B)6,12C)20,8d)8,20
3、下面程序的功能是将从键盘输入的一对数,由小到大排序输出
当输入一对相等数时结束循环选择
#include<stdio.h>
{inta,b,t;
scanf("
%d%d"
,&
b)
while([1])
{if(a>b)
{t=a;
a=b;
b=t;
%d,%d\n"
,a,b)
scanf("
a,&
b);
A)!
a=bb)!
(a=b)C)a==bD)a=b
4、下面程序的运行结果是
{inta=1,b=10
do
{b―=a;
a++;
}while(b――<
0)
printf(“a=%d,b=%d\n”,a,b);
A)a=3,b=11b)a=2,b=8C)a=1,b=1D)a=4,b=9
5、若i为整型变量,循环执行次数是:
for(i=2;
i==0;
)printf("
,i――);
A)无限次b)0次C)1次D)2次
6、以下不是无限循环的语句为:
a)for(y=0,x=1;
x>++y;
x=i++)i=x
B)for(;
;
x++=i);
C)while
(1)(x++;
)
D)for(i=10;
;
i――)sum+=i
7、下面程序的运行结果是
{inti,j,x=0
for(i=1;
i<
=3;
i++)
{x++;
for(j=0;
j<=3;
j++)
{if(j%2)continue;
x++;
x++;
i++;
printf(“x=%d\n”,x)
A)x=4b)x=8C)x=6D)x=12
1A2D3B4B5B6A7B
综合练习
第1题下列程序段运行后,变量x的值是[]。
int
a,b,c,x;
a=b=c=0;
x=35;
if(!
a)
x--;
else
if(b)x++
if(c)
x=3;
x=4;
A)33B)34c)4D)35
第2题下列程序段中,do-while循环的循环体执行的次数是[]。
i=1;
do
{
i*=2;
}
while
(i<
100);
A)0次B)6次c)7次D)8次
第3题C在语言中,while和do-while循环的主要区别是[]。
a)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
第4题下列程序的输出结果是[]
{inti,j;
floats;
for(i=6;
i>
4;
i--)
{s=0.0;
for(j=i;
j>
3;
j--)
s=s+i*j;
printf(“%f\n”,s);
}
A90.000000b45.000000
C135.000000D60.000000
第5题下列叙述中,正确的是[]。
A)continue语句的作用是结束整个循环的执行
b)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
第6题设x和y均为int型变量,则执行下面的循环后,x的值为[]。
for(y=1,x=1;
=50;
y++)
{if(x>
=10)break;
if(x%2==1)
{x+=5;
continue;
x-=3;
A)4B)6C)8d)10
第7题下列程序段的运行结果是:
a=1;
b=2;
c=2;
while(a<
b<
c)
{t=a;
a=b;
b=t;
c--;
printf(“%d,%d,%d”,a,b,c);
a)1,2,0B)2,1,0C)1,2,1D)2,1,1
第8题下列程序段的运行结果是:
x=y=0;
while(x<
12)
{y++;
x+=++y;
printf(“%d,%d”,y,x);
A)5,12B)8,20C)3,11d)6,12
第9题若i为整型变量,循环执行次数是:
for(i=2;
i==0;
)
printf(“%d”,i--);
A)无限次b)0次C)1次D)2次
第10题以下不是无限循环的语句为:
Afor(y=0,x=1;
x>
x=i++)
i=x;
for(;
x++=i)
while
(1)
for(i=10;
i--)
sum+=i;
CCABBDADBA
第6章
错误的说明语句是____d________。
A)charword[]={’T’,’u’,’r’,’b’,’o’,’\0’};
B)charword[]={”Turbo\0”};
C)charword[]=”Turbo\0”;
D)charword[]=’Turbo\0’;
2)要说明一个有10个int元素的数组,应当选择语句____a______。
A)inta[10];
B)inta[2,5];
C)inta[];
D)int*a[10];
3)合法的数组说明语句是____d______。
A)inta[]=”string”;
B)inta[5]={0,1,2,3,4,5};
C)chara=”string”;
D)chara[]={0,1,2,3,4,5};
4)以下对一维整型数组a正确的说明是____d_____。
A)inta(10);
B)intn=10,a[n];
C)intn;
scanf(”%d”,&
n);
inta[n];
D)#defineSIZE10
inta[SIZE];
5)若有以下语句,则正确的描述是____b_____。
charx[]=”12345”;
chary[]={’1’,’2’,’3’,’4’,’5’};
A)x数组和y数组的长度相同
B)x数组长度大于y数组的长度
C)x数组长度小于y数组的长度
D)x数组等价于y数组
6)调用strlen(”abcd\0ef\0g”)的返回值是____a______。
A)4B)5C)8D)9
7)已知:
charstr[]=”ab\n\012\\\””则执行语句:
printf(”%d”,strlen(str));
的结果是_______c__。
A)3B)4C)6D)12
8)已知:
charstr1[10],str2[10]={”books”};
则在程序中能够将字符串”books”赋给数组str1的正确语句是____d_____。
A)str1={”books”};
B)strcpy(str1,str2);
C)str1=str2;
D)strcpy(str2,str1);
9)已知:
charstr1[20]=”abcde”,str2[20]=”xyz”;
则执行语句:
printf(”%d”,strlen(strcpy(str1,str2)));
输出结果是______d___。
A)9B)3C)5D)8
10)已知:
inta[10];
则对a数组元素的正确引用是__b_______。
A)a[10]
B)a[3.5]
C)a(5)
D)a[10-10]
11)若二维数组a有m列,则在a[I][j]前的元素个数为:
b
A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1
12)定义如下变量和数组:
intk;
inta[2][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是:
a
for(k=0;
k<
3;
k++)printf(“%d”,a[k][2-k]);
A)357B)369C)159D)147
13)下面程序运行结果是:
c
mian()
{inta[6];
for(i=1,i<
6;
{a[i]=9*(i-2+4*(i>
3))%5;
printf(“%2d”,a[i]);
A)-40404B)-40403C)-40443D)-40440
1D2A3D4D5B6A7C8B9B10D11B12A13C
第7章
1、函数调用语句f((el,e2),(e3,e4,e5));
中参数的个数是【】。
A)1B)2C)4D)5
2、对C语言函数的有关描述中,正确的是【】。
A)调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参
B)C函数既可以嵌套定义,又可以递归调用
C)函数必须有返回值,否则不能定义成函数
D)C程序中,有调用关系的所有函数必须放在同一个源程序文件中
3、决定C语言中函数返回值类型的是【】。
A)return语句中的表达式类型
B)调用该函数的主调函数类型
C)调用函数时临时指定的类型
D)定义函数时在函数首部中所指定的类型(若缺省,则隐含为int型)
4、当调用函数时,实参是一个数组名,则函数传送的是【】。
A)数组的长度B)数组的首地址
C)数组每个元素的地址D)数组每个元素中的值
5、以下说法不正确的是【】
A)在不同函数中可以使用相同名字的变量
B)形式参数是局部变量
C)在函数内定义的变量只在本函数内有效
D)在函数内复合语句中定义的变量在本函数范围内有效
6、C语言中,函数的隐含存储类型是【】
A)autoB)staticC)externD)无存储类别
7、在C语言中,使用时才占用内存的变量存储类型为【】:
A)static和auto
B)register和auto
C)static和register
D)static和extern
8、以下函数声明,正确的是【】
voidplay(vara:
integer,varb:
integer)
intplay(inta,b)
voidplay(inta,intb)
D)floatplay(inta,b,floatc)
9、执行下述程序的输出结果是【】
func(intx)
{
staticinta=3;
a+=x;
return(a);
}
main()
intk=2,m=1,n;
n=func(k);
n+=func(m);
n);
A)8B)9C)11D)14
10、以下程序的正确运行结果是:
{inta=2,i;
for(i=0;
i++)
printf(“%4d”,f(a));
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
A)777
B)71013
C)7911
D)789
11、执行下述程序的输出结果是【】
intfunc(intu,intv);
main()
inta=24,b=16,c;
c=func(a,b);
c);
intfunc(intu,intv)
{
intw;
while(v)
{w=u%v;
u=v;
v=w;
return(u);
A)6B)7C)8D)9
12、以下程序运行后,输出结果是【】:
#include<
stdio.h>
func(inta,intb)
staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
intk=4,m=1,p;
p=func(k,m);
%d,"