顺序结构程序设计练习题.docx
《顺序结构程序设计练习题.docx》由会员分享,可在线阅读,更多相关《顺序结构程序设计练习题.docx(22页珍藏版)》请在冰豆网上搜索。
![顺序结构程序设计练习题.docx](https://file1.bdocx.com/fileroot1/2023-1/21/504db9ac-faa0-45fc-920d-fb10e2e92a82/504db9ac-faa0-45fc-920d-fb10e2e92a821.gif)
顺序结构程序设计练习题
C语言练习题总汇
一、单选题:
【顺序结构程序设计】
1.己知intk,m=1;执行语句k=—m++;后k得值就是(A ).(提示:
负号与自加运算符同级,结合方向从右向左)
A)—1 B) 0 C)1D)2
2.若有定义intx=4;则执行语句x + =x* =x+ 1;后,x得值为(C)。
A)5B)20 C)40 D)无答案
3.若有定义:
float a=3、0,b=4、0,c=5、0;则表达式1/2*(a+b+c)得值为(C).
A)6、0 B)6 C)0、0 D)无答案
4.以下程序段得输出结果就是( C)。
(提示:
a当约束过严时,约束失效。
按自由格式输出.)
inta=1234;
printf(”%2d\n",a);
A)12 B)34 C)1234 D)提示出错,无结果
5、下列程序段得输出结果就是(C)。
int a=1234;
floatb=123、456;
doublec=12345、54321;
printf("%2d,%3。
2f,%4.1f”,a,b,c);
A)无输出 B)12,123、46,12345。
5 C)1234,123、46,12345、5D)1234,123、45,1234、5
6、设x,y均为整型变量,且x=8,y=5,则以下语句得输出结果就是(D)。
printf("%d,%d\n",x—-,++y);
A)8,5 B)7,5 C)7,6 D)8,6
7、以下程序得输出结果就是( A).
int main()
{inta=20,b=10;
printf("%d,%%d\n",a+b,a—b); }
A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确 (%%d中第一个%后面得表示字符)
8。
下列程序得运行结果就是(A)。
intmain()
{floatx=2、5;
int y;
y=(int)x;
printf("x=%f,y=%d”,x,y); }
A)x=2、500000,y=2B)x=2、5,y=2 C)x=2,y=2D)x=2、500000,y=2、000000
9、以下程序得输出结果就是(A).
int main()
{charc=‘z’;
printf("%c",c-25);}
A)a B)z C)z-25 D)y (字母共有26个,而z就是最后一个)
10.下面程序得输出结果就是(C)。
intmain()
{doubled=3、2;
intx=1、2,y;
y=(x+3、8)/5、0;
printf(”%d\n",d*y);}
A)3 B) 3.2 C)0 D) 3、07
11、下面程序得输出结果就是( C)。
(提示:
输出时无定界符)
int main()
{int k=17;
printf(”%d,%o,%x\n",k,k,k);}
A)17,17,17 B)17,021,0x11 C)17,21,11D)17,0x11,021
12。
下列程序执行后得输出结果就是(C).
intmain()
{charx=OxFFFF;
printf("%d\n",x—-);}
A)-32767 B)FFFE C)-1 D)=—32768
13、printf(”a\bre\’hi\’y\\\bou\n");得输出结果就是(C)。
A)a\bre\’hi\'y\\\bou B)a\bre\’hi\’y\bou
C)re'hi’you D)abre'hi’y\bou
14。
有定义语句:
int x,y;若要通过scanf(”%d,%d”,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中错误得就是(A).
A)11〈空格>12<回车〉 ﻩﻩﻩﻩﻩB)11,<空格>12<回车>
C)11,12<回车>ﻩﻩﻩD)11,〈回车>12<回车>
15.有以下程序段:
intm=0,n=0;
charc=‘a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10 〈回车>,则输出结果就是(A)。
A)10,A,10B)16,a,10 C)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〈回车〉2<空格>3<回车>D)1<空格>2〈回车〉3<回车〉
17、a,b,c被定义为int型变量,若从键盘给a, b,c输入数据,正确得输入语句就是(D)
A)inputa,b,c;B)read("%d%d%d”,&a,&b,&c);C)scanf(”%d%d%d”,a,b,c);D)scanf("%d%d%d”,&a,&b,&c);
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”,&a,&b,&c);
C)scanf("%d%d%d",&a,&b,&c); D)scanf("i=%dj=%d,k=%d”,&a,&b,&c);
19、执行下程序时输入:
123<空格>456<空格>789<回车>,输出结果就是(D)。
intmain()
{chars;
intc,i;
scanf("%c”,&c);
scanf("%d”,&i);
scanf("%c”,&s);
printf("%c,%d,%c\n”,c,i,s);}
A)123,456,789 B)1,456,789C)1,23,456,789D)1,23,
20、已定义c为字符型变量,则下列语句中正确得就是( C)。
A)c='97' B)c=“97“ C)c=97 D)c=“a”
21、以下程序得功能就是:
给r输入数据后计算半径为r得圆面积s。
程序在编译时出错.
#include〈stdio、h>
voidmain()
{
ﻩintr;
ﻩfloat s;
scanf(”%d",&r);
ﻩs=p*r*r;
ﻩprintf("s=%f\n”,s);
}
出错得原因就是().
A)注释语句书写位置错误
B)存放圆半径得变量r不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积得赋值语句中使用了非法变量
答案:
D
22、有以下程序
#include 〈stdio、h〉
void main( )
{
int m=12,n=34;
ﻩprintf(”%d%d”,m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后得输出结果就是()。
A)12353514B)12353513ﻩC)12343514ﻩD)12343513
答案:
A
23、数字字符0得ASCII值为48,若有以下程序
#include〈stdio、h>
voidmain( )
{
chara='1',b='2';
printf("%c,",b++);
printf(”%d\n",b—a);
}
程序运行后得输出结果就是______。
A)3,2B)50,2C)2,2D)2,50
答案:
C
24、有以下程序
#include〈stdio、h>
voidmain()
{
ﻩchar c1=’1',c2='2';
ﻩc1=getchar( );c2=getchar( );putchar(c1); putchar(c2);
}
当运行时输入:
a<回车〉后,以下叙述正确得就是______.
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍就是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
答案:
A
25、
【选择结构程序设计】
1、有变量说明语句inta,b ,c;,顺序执行下面语句:
a=b=c=1;
++a||++b&&++c;
那么,变量b得值应就是(B)
A.2 B。
1 C.0 D.3
2、有变量说明int a=3;,则表达式a〈1&&--a>1得运算结果与a得值应该就是( B )
A.0与2 B.0与3 C.1与2D.1与3
3、设inta=3,b=4,c=5;,下列表达式得值不为1得就是( A )。
A)a+b>c&&b==c B)a||b+c&&b-c
C)!
(a〉b)&&!
c||1 D)!
(a+b)+c—1&&b+c/2
4、#include<stdio、h>
intmain()
{
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=10 B、 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
a:
cc:
d得值就是(A)。
(A)1 (B)2 (C)3 (D)4
6、若x与y代表整型数,以下表达式中不能正确表示数学关系|x—y|<10得就是(C)。
A)abs(x-y)<10 B)x—y〉-10&&x-y〈10C)!
(x—y)<-10||!
(y—x)〉10 D)(x-y)*(x-y)<100
7、若有定义:
int a=7;f1oatx=2、5,y=4、7;则表达式x+a%3*(int)(x+y)%2/4得值就是( A).
A) 2、5 B)2.7 C) 3、5 D)4、7
8、若有定义与语句:
int s,p;
s=p=5;p=s++,++p,p+2,p++; 则执行语句后p得值就是(C)
A)9 B)8 C)7 D)6
9、若有定义:
int a,b;则表达式a=4,b=3,a+b+2,a++,a+b+2得值为(C )。
A) 12 B)11 C)10 D)无答案
10、己知intk=10, m=3,n;则下列语句得输出结果就是(B)。
printf("%d\n”,n=(k%m,k/m));
A)2B)3 C)4 D)5
11、设x与y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y;得功能就是( )。
A)把x与y按从大到小排列 B) 把x与y按从小到大排列
C)无确定结果 D)交换x与y中得值
答案:
D
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)0 B)1 C)2 D)3
答案:
D
13、若x、a、b、c均 为int型变量,则执行表达式x=(a =4,b = 8,c=12)后,x得值为_______。
A)4 B)8 C)12 D)24
答案:
C
14、以下程序得输出结果就是_______.
#include〈stdio、h〉
void main()
{
ﻩinta=-1,b=4,k;
ﻩk=(++a〈0)&& (b +=5);
printf(”%d%d%d\n", k, a, b );
}
A)104 B)103 C)003 D)004
答案:
D
15、下列运算符中,结合方向为自左向右得就是( )。
(A)?
:
(B),(C)+= (D)++
答案:
(B)
16、下列运算符中优先级最高得就是( )
A)!
B)% C)-=D)&&
答案:
(A)
17、有以下程序
#include <stdio、h〉
voidmain()
{
int m=3,n=4,x;
x=—m++;
ﻩx=x+8/++n;
printf("%d\n”,x);
}
程序运行后得输出结果就是( )。
A)3 B)5 C)-1D)—2
答案:
D
18、
【循环结构练习题】
1、下面有关for循环得正确描述就是( )
A.for循环只能用于循环次数已经确定得情况
B。
for循环就是先执行循环体语句,后判定表达式
C。
在for循环中,不能用break语句跳出循环体
D。
for循环体语句中,可以包含多条语句,但要用花括号括起来
答案:
D
2、对于for(表达式1;;表达式3)可理解为()
A.for(表达式1:
1;表达式3)
B。
for(表达式1;1;表达式3)
C。
for(表达式1;表达式1;表达式3)
D。
for(表达式1;表达式3;表达式3)
答案:
B
3、以下正确得描述就是()。
A。
continue语句得作用就是结束整个循环得执行
B.只能在循环体内与switch语句体内使用break语句
C.在循环体内使用break语句或continue语句得作用相同
D。
从多层循环嵌套中退出时,只能使用goto语句
答案:
B
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;
答案:
C
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<=10);
C。
i=1;s=1; D。
i=1;s=0;
do{s=s*i; do{ s=s*i;
i++; i++;
}while(i<=10); }while(i<=10);
答案:
C
6、下面程序得运行结果就是().
#include
intmain()
{ inty=10;
do{y--;}
while(--y);
printf("%d\n”,y—-);}
A。
-1 B.1 C。
8 D.0
答案:
D
7、下面程序得运行结果就是()。
#include<stdio、h>
intmain()
{int num=0;
while(num〈=2)
{num++;
printf(”%d\n”,num);
}
}
A。
1 B.1 2 C.123 D。
12 3 4
答案:
C
8、若运行以下程序时,从键盘输入3、6 2、4<CR>(表示回车),则下面程序得运行结果就是()。
#include〈math、h〉
#include
voidmain( )
{floatx,y,z;
scanf(“%f%f",&x,&y);
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、500000 B.1.600000 C.2、000000 D。
2、400000
答案:
B
9、有以下程序:
#include 〈stdio、h〉
voidmain( )
{
ﻩinti=0,s=0;
for(;;)
{
ﻩﻩif(i==3||i==5)continue;
ﻩif(i==6) break;
ﻩi++;
s+=i;
};
printf(”%d\n”,s);
}
程序运行后得输出结果就是()。
A)10 B)13 C)21 D)程序进入死循环
答案:
D
10、若有程序段:
for(m=1;m<=100;m++)
{
scanf("%d",&y);
ﻩif(y<0)continue;
ﻩprintf("%3d",m);
}
正确得描述就是( )。
A)当y<0时整个循环结束 B)y〉=0时什么也不输出
C)printf函数永远也不执行 D)最多允许输出100个非负整数
答案:
D
11、下列程序得运行结果就是( )。
#include“stdio、h”
void main()
{inti=23;
do{++i;}
while(i);
printf(“%d”,i);
}
A)23 B)24 C)死循环D)无任何结果
答案:
C
12、
二、填空题
【顺序结构程序设计】
1。
有以下程序:
int main()
{intm,n,p;
scanf(”m=%dn=%dp=%d”,&m,&n,&p);
printf("%d%d%d\n",m,n,p);}
若想从键盘上输入数据,使变量m中得值为123, n中得值为456, p中得值为789,则正确得输入就是
m=123n=456p=789。
2、以下程序段得输出结果就是28 。
intmain()
{inta=2,b=3,c=4;
a*=16+(b++)—(++c);
printf("%d",a);}
3.以下程序段得输出结果就是5 .
int x=17,y=26;
printf(”%d”,y/=(x%=6));
4.下列程序得输出结果为12 。
intmain()
{intx=3,y=5;
printf("%d",x= (x-—)*(--y));}
5、若有以下程序:
int main()
{ chara;
a=‘H’-‘A’+‘0';(‘0','o’)
printf("%c,%d\n",a,a); }
执行后得输出结果就是 7,55 。
6、以下程序段得输出结果就是 261.
void main()
{inta=177;
printf("%o\n",a); }
7、以下程序得输出结果就是 0 (—32767~32767int)。
voidmain( )
{unsigned shorta=65536;intb;
printf(”%d\n”,b=a);}
提示:
当unsigned short与int 均占2个字节时。
8、输入“12345,xyz”,下列程序输出得结果就是 。
intmain()
{intx;chary;
scanf(“%3d%3c”,&x,&y);
printf(“%d,%c”,x,y);}
答案:
123,4
9、以下程序得运行结果就是 。
#include 〈stdio、h>
voidmain()
{
ﻩint i=8,j=9,m,n;
ﻩm=++i;
ﻩn=j++;
printf(”%d,%d,%d,%d\n",i,j,m,n);
}
答案:
9,10,9,9
10、下列程序得输出结果就是 。
#include
voidmain( )
{
ﻩinta=3,b =14, c=5;
c=c+a*a+ b% 5* 10;
ﻩprintf("%o\n” ,c);
}
答案:
66
11、阅读程序,并按给定得输出格式将程序运行结果写在“运行结果:
”之后
#include〈stdio、h>
voidmain()
{
inta,b,c;
a =(b= (c=3)*5)*5;
ﻩprintf(”a=%d,b=%d,c=%d\n”,a,b,c);
}
运行结果就是:
答案:
运行结果就是:
a= 75,b=15,c =3
12、
【选择结构程序设计】
1、以下程序运行得结果就是。
#include <stdio、h〉
voidmain()
{
ﻩinta,b,c;
a=1;b=2;c=3;a=b--<=a||a+b!
=c;
ﻩprintf(”%d,%d",a,b);
}
答案:
1,1
2、以下程序得运行结果就是 .
#includevoidmain()
{
inta,b,c;
ﻩa=b=c=1;
ﻩif(a++||++b)c++;
printf(”%d,%d,%d\n",a,b,c);
}
答案:
2,1,2
3、以下程序得输出结果就是 。
#include
voidmain()
{
intk,i=0,j=2;
ﻩk = i++&&j++;
ﻩprintf(”%d,%d,%d\n", i,j,k);
}
答案:
1,2,0
4、
【循环结构程序设计】
1、若运行以下程序时,从键盘输入ADescriptor↙,则下面程序得运行结果就是 v0=12,v1=4,v2=12 。
#include <stdio、h>
voidmain()
{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;}
}whil