顺序结构程序设计练习题Word格式.docx
《顺序结构程序设计练习题Word格式.docx》由会员分享,可在线阅读,更多相关《顺序结构程序设计练习题Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
10.下面程序的输出结果是(C)。
intmain()
{doubled=3.2;
intx=1.2,y;
y=(x+3.8)/5.0;
%d\n"
d*y);
}
A)3B)3.2C)0D)3.07
11.下面程序的输出结果是(C)。
输出时无定界符)
{intk=17;
%d,%o,%x\n"
,k,k,k);
A)17,17,17B)17,021,0x11C)17,21,11D)17,0x11,021
12.下列程序执行后的输出结果是(C)。
{charx=OxFFFF;
,x--);
A)-32767B)FFFEC)-1D)=-32768
13.printf("
a\bre\'
hi\'
y\\\bou\n"
);
的输出结果是(C)。
A)a\bre\'
y\\\bouB)a\bre\'
y\bou
C)re'
hi'
youD)abre'
14.有定义语句:
intx,y;
若要通过scanf("
%d,%d"
&
x,&
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中错误的是(A)。
A)11<
空格>
12<
回车>
B)11,<
C)11,12<
D)11,<
15.有以下程序段:
intm=0,n=0;
charc=‘a'
;
scanf("
%d%c%d"
m,&
c,&
n);
%d,%c,%d\n"
m,c,n);
若从键盘上输入:
10A10<
,则输出结果是(A)。
A)10,A,10B)16,a,10C)10,a,0D)10,A,0
16.若变量已正确说明为int类型,要通过语句scanf("
%d%d%d"
a,&
b,&
c);
给a赋值1,b赋值2,c赋值3,不正确的输入形式是(B)。
A)1<
2<
3<
B)1,2,3<
C)1<
D)1<
17.a,b,c被定义为int型变量,若从键盘给a,b,c输入数据,正确的输入语句是(D)
A)inputa,b,c;
B)read("
%d%d%d"
C)scanf("
a,b,c);
D)scanf("
18.已知a,b,c为int型变量,若从键盘输入:
1,2,3<
,使a的值为1,b的值为2,c的值为3,以下选项中正确的输入语句是(B)。
A)scanf("
%2d,%2d,%2d"
,a,b,c);
B)scanf("
%d,%d,%d"
C)scanf("
%d%d%d"
i=%dj=%d,k=%d"
19.执行下程序时输入:
123<
456<
789<
,输出结果是(D)。
{chars;
intc,i;
scanf("
,&
c);
%d"
i);
s);
%c,%d,%c\n"
,c,i,s);
A)123,456,789B)1,456,789C)1,23,456,789D)1,23,
20.已定义c为字符型变量,则下列语句中正确的是(C)。
A)c='97'B)c=“97“C)c=97D)c=“a”
21.以下程序的功能是:
给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
#include<
stdio.h>
voidmain()
{
intr;
floats;
r);
s=p*r*r;
s=%f\n"
s);
出错的原因是()。
A)注释语句书写位置错误
B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
答案:
D
22.有以下程序
voidmain()
intm=12,n=34;
%d%d"
m++,++n);
%d%d\n"
n++,++m);
程序运行后的输出结果是()。
A)12353514B)12353513C)12343514D)12343513
A
23.数字字符0的ASCII值为48,若有以下程序
chara='
1'
b='
2'
%c,"
b++);
b-a);
程序运行后的输出结果是______。
A)3,2B)50,2C)2,2D)2,50
C
24.有以下程序
charc1='
c2='
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
当运行时输入:
a<
后,以下叙述正确的是______。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
25.
【选择结构程序设计】
1.有变量说明语句inta,b,c;
,顺序执行下面语句:
a=b=c=1;
++a||++b&
&
++c;
那么,变量b的值应是(B)
A.2B.1C.0D.3
2.有变量说明inta=3;
则表达式a<
1&
--a>
1的运算结果和a的值应该是(B)
A.0和2B.0和3C.1和2D.1和3
3.设inta=3,b=4,c=5;
下列表达式的值不为1的是(A)。
A)a+b>
c&
b==cB)a||b+c&
b-c
C)!
(a>
b)&
!
c||1D)!
(a+b)+c-1&
b+c/2
4.#include<
{
inta,b,c;
a=10;
b=50;
c=30;
if(a>
b)a=b;
b=c;
c=a;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
程序的输出结果是(C)。
A.a=10,b=50,c=10B.a=10,b=50,c=30
C.a=10,b=30,c=10D.a=50,b=30,c=50
5.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a<
b?
a:
c<
d?
c:
d的值是(A)。
(A)1(B)2(C)3(D)4
6.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<
10的是(C)。
A)abs(x-y)<
10B)x-y>
-10&
x-y<
10C)!
(x-y)<
-10||!
(y-x)>
10D)(x-y)*(x-y)<
100
7.若有定义:
inta=7;
f1oatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是(A)。
A)2.5B)2.7C)3.5D)4.7
8.若有定义和语句:
ints,p;
s=p=5;
p=s++,++p,p+2,p++;
则执行语句后p的值是(C)
A)9B)8C)7D)6
9.若有定义:
inta,b;
则表达式a=4,b=3,a+b+2,a++,a+b+2的值为(C)。
A)12B)11C)10D)无答案
10.己知intk=10,m=3,n;
则下列语句的输出结果是(B)。
,n=(k%m,k/m));
A)2B)3C)4D)5
11.设x和y均为int型变量,则以下语句:
x+=y;
y=x-y;
x-=y;
的功能是()。
A)把x和y按从大到小排列B)把x和y按从小到大排列
C)无确定结果D)交换x和y中的值
12.设inti=2,j=3,k=4,a=4,b=5,c=3;
则执行表达式(a=i<
j)&
(b=j>
k)&
(c=i,j,k)后,c值是()。
A)0B)1C)2D)3
13.若x、a、b、c均为int型变量,则执行表达式x=(a=4,b=8,c=12)后,x的值为_______。
A)4B)8C)12D)24
14.以下程序的输出结果是_______。
inta=-1,b=4,k;
k=(++a<
0)&
(b+=5);
printf("
%d%d%d\n"
k,a,b);
A)104B)103C)003D)004
15.下列运算符中,结合方向为自左向右的是()。
(A)?
:
(B),(C)+=(D)++
(B)
16.下列运算符中优先级最高的是()
A)!
B)%C)-=D)&
(A)
17.有以下程序
intm=3,n=4,x;
x=-m++;
x=x+8/++n;
x);
A)3B)5C)-1D)-2
18.
【循环结构练习题】
1.下面有关for循环的正确描述是()
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来
2.对于for(表达式1;
表达式3)可理解为()
A.for(表达式1:
1;
表达式3)
B.for(表达式1;
C.for(表达式1;
表达式1;
D.for(表达式1;
表达式3;
B
3.以下正确的描述是()。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
4.下面程序段不是死循环的是()。
A.intI=100;
B.for(;
;
);
while
(1)
{I=I%100+1;
if(I>
100)break;
C.intk=0;
D.ints=36;
do{--k;
}while(s);
while(k>
=0);
--s;
5.以下能正确计算1*2*3*……*10的程序是()。
A.do{i=1;
s=1;
B.do{i=1;
s=0;
s=s*i;
s=s*i;
i++;
i++;
}while(i<
=10);
}while(i<
C.i=1;
D.i=1;
do{s=s*i;
do{s=s*i;
i++;
6.下面程序的运行结果是()。
{inty=10;
do{y--;
while(--y);
y--);
A.-1B.1C.8D.0
7.下面程序的运行结果是()。
#include<
{intnum=0;
while(num<
=2)
{num++;
num);
A.1B.12C.123D.1234
8.若运行以下程序时,从键盘输入3.62.4<
CR>
(<
表示回车),则下面程序的运行结果是()。
math.h>
{floatx,y,z;
scanf(“%f%f”,&
z=x/y;
while
(1)
{if(fabs(z)>
1.0)
{x=y;
y=z;
z=x/y;
else
break;
printf(“%f\n”,y);
A.1.500000B.1.600000C.2.000000D.2.400000
9.有以下程序:
inti=0,s=0;
for(;
)
{
if(i==3||i==5)continue;
if(i==6)break;
s+=i;
};
A)10B)13C)21D)程序进入死循环
10.若有程序段:
for(m=1;
m<
=100;
m++)
if(y<
0)continue;
%3d"
m);
正确的描述是()。
A)当y<
0时整个循环结束B)y>
=0时什么也不输出
C)printf函数永远也不执行D)最多允许输出100个非负整数
11.下列程序的运行结果是()。
#include“stdio.h”
{inti=23;
do{++i;
while(i);
printf(“%d”,i);
A)23B)24C)死循环D)无任何结果
12.
二、填空题
1.有以下程序:
{intm,n,p;
m=%dn=%dp=%d"
m,&n,&
p);
%d%d%d\n"
,m,n,p);
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是
m=123n=456p=789。
2.以下程序段的输出结果是28。
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
,a);
3.以下程序段的输出结果是5。
intx=17,y=26;
,y/=(x%=6));
4.下列程序的输出结果为12。
{intx=3,y=5;
,x=(x--)*(--y));
5.若有以下程序:
{chara;
a=‘H’-‘A’+‘0’;
(‘0’,’o’)
%c,%d\n"
,a,a);
执行后的输出结果是7,55。
6.以下程序段的输出结果是261。
voidmain()
{inta=177;
%o\n"
}
7.以下程序的输出结果是0(-32767~32767int)。
{unsignedshorta=65536;
intb;
b=a);
提示:
当unsignedshort和int均占2个字节时。
8.输入“12345,xyz”,下列程序输出的结果是。
intmain()
{intx;
chary;
scanf(“%3d%3c”,&
printf(“%d,%c”,x,y);
123,4
9.以下程序的运行结果是。
inti=8,j=9,m,n;
m=++i;
n=j++;
%d,%d,%d,%d\n"
i,j,m,n);
9,10,9,9
10.下列程序的输出结果是。
inta=3,b=14,c=5;
c=c+a*a+b%5*10;
c);
66
11.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:
”之后
inta,b,c;
a=(b=(c=3)*5)*5;
a=%d,b=%d,c=%d\n"
a,b,c);
运行结果是:
a=75,b=15,c=3
1.以下程序运行的结果是。
voidmain()
a=1;
b=2;
c=3;
a=b--<
=a||a+b!
=c;
a,b);
1,1
2.以下程序的运行结果是。
a=b=c=1;
if(a++||++b)c++;
%d,%d,%d\n"
2,1,2
3.以下程序的输出结果是。
intk,i=0,j=2;
k=i++&
j++;
i,j,k);
1,2,0
4.
【循环结构程序设计】
1.若运行以下程序时,从键盘输入ADescriptor↙,则下面程序的运行结果是v0=12,v1=4,v2=12。
{charc;
intv0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case’a’:
case’A’:
case’e’:
case’E’:
case’i’:
case’I’:
case’o’:
case’O’:
case’u’:
case’U’:
v1+=1;
default:
v0+=1;
v2+=1;
}while(c!
=’\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
2.下面程序的运行结果是8,-2。
{inti,b,k=0;
for(i=1;
i<
=5;
i++)
{b=i%2;
while(b-->
=0)k++;
printf(“%d,%d”,k,b);
3.下面程序的运行结果是8,22。
{inta,b;
for(a=1,b=1;
a++)
{if(b>
=20)break;
if(b%3==1){b+=3;
continue;
b-=5;
printf(“%d,%d\n”,a,b);
4.下面程序的运行结果是x=8。
{inti,j,x=0;
for(i=0;
2;
{x++;
for(j=0;
j<
=3;
j++)
{if(j%2)continue;
x++;
printf(“x=%d\n”,x);
5.下面程序的运行结果是*#*#