第2章 C语言程序设计结构选择题Word文档格式.docx
《第2章 C语言程序设计结构选择题Word文档格式.docx》由会员分享,可在线阅读,更多相关《第2章 C语言程序设计结构选择题Word文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
![第2章 C语言程序设计结构选择题Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/3/53bc98d2-fd62-49e2-a9f5-275835be421c/53bc98d2-fd62-49e2-a9f5-275835be421c1.gif)
c=getchar();
d=getchar();
%c%c%c%c\n"
a,b,c,d);
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:
回车也是一个字符)1234则输出结果是
A)12
B)1234
C)123
D)1234
(7)若变量已正确定义为int型,要通过语句scanf("
%d,%d,%d"
a,&
b,&
c);
给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(注:
□代表一个空格符)
A)□□□1,2,3
B)1,□□□2,□□□3
C)1,2,3
D)1□2□3
(8)设变量均已正确定义,若要通过scanf("
%d%c%d%c"
a1,&
c1,&
a2,&
c2);
语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是(注:
□代表空格字符)
A)10□X20□Y
B)10□X20□Y
C)10X20Y
D)10□X□20□Y
(9)设有定义:
inta;
floatb;
执行scanf("
%2d%f"
&
语句时,若从键盘输入876543.0则a和b的值分别是
A)876和543.0
B)87和6.0
C)87和543.0
D)76和543.0
(10)若有定义:
inta,b;
通过语句scanf("
%d;
%d"
能把整数3赋给变量a,5赋给变量b的输入数据是
A)3,5
B)35
C)3;
5
D)35
(11)若有定义inta;
doublec;
程序运行时输入:
345能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是
A)scanf("
%d%lf%lf"
B)scanf("
%d%f%lf"
C)scanf("
%d%f%f"
D)scanf("
%lf%lf%lf"
(12)设有定义:
doublea,b,c;
若要求通过输入分别给a、b、c输入1、2、3,输入形式如下(注:
此处□代表一个空格)□□1.0□□2.0□□3.0则能进行正确输入的语句是
a,b,c);
%f%f%f"
%5.1lf%5.1lf%5.1lf"
(13)以下叙述中正确的是
A)当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改
B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C)空语句就是指程序中的空行
D)复合语句在语法上包含多条语句,其中不能定义局部变量
(14)以下叙述中正确的是
A)在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B)在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C)在printf函数中,各个输出项只能是变量
D)使用printf函数无法输出百分号%
(15)以下叙述中正确的是
A)在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
B)只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
C)scanf函数中的字符串,是提示程序员的,输入数据时不必管它
D)复合语句也被称为语句块,它至少要包含两条语句
(16)有以下程序
#include
inta1,a2;
charc1,c2;
%d,%c,%d,%c"
a1,c1,a2,c2);
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:
12,a,34,b则正确的输入格式是(以下□代表空格,代表回车)
A)12□a□34□b
B)12,a,34,b
C)12a34b
D)12□a34□b
(17)有以下程序
charc1,c2,c3,c4,c5,c6;
%c%c%c%c"
c2,&
c3,&
c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
%c%c\n"
c5,c6);
程序运行后,若从键盘输入(从第1列开始)12345678则输出结果是
A)1256
B)1278
C)1245
D)1267
(18)若有定义语句:
doublex,y,*px,*py;
执行px=&
x;
py=&
y;
正确的输入语句是
%f%f"
&
x,&
y);
%lf%le"
px,py);
%lf%lf"
x,y);
(19)以下程序段完全正确的是
A)intk,*p=&
k;
scanf("
p);
B)int*p;
C)int*p;
p);
D)intk,*p;
*p=&
(20)若在定义语句:
inta,b,c,*p=&
c;
接着执行以下选项中的语句,则能正确执行的语句是
%d%d%d"
p);
(21)有以下程序段
intj;
floaty;
charname[50];
%2d%f%s"
j,&
y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为
A)55566.0
B)7777.0
C)566.0
D)566777.0
(22)有以下程序段
charname[20];
intnum;
name=%snum=%d"
name,&
num);
当执行上述程序段,并从键盘输入:
name=Lilinum=1001后,name的值为
A)name=Lili
B)Lilinum=
C)name=Lilinum=1001
D)Lili
(23)有以下程序
inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
%d,%d,%d,%d\n"
程序输出
A)0,0,0,3
B)1,1,2,0
C)编译有错
D)0,1,2,0
(24)有以下程序
intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
y);
程序运行后的输出结果是
A)2
B)0
C)1
D)3
(25)若变量已正确定义,在if(W)printf("
k);
中,以下不可替代W的是
A)ch=getchar()
B)a==b+c
C)a<
>
b+c
D)a++
(26)有以下程序段
inta,b,c;
a=10;
b=50;
c=30;
if(a>
b)a=b,b=c;
c=a;
a=%db=%dc=%d\n"
a,b,c);
程序的输出结果是
A)a=10b=50c=30
B)a=10b=30c=10
C)a=10b=50c=10
D)a=50b=30c=50
(27)设有定义:
inta=1,b=2,c=3;
以下语句中执行效果与其它三个不同的是
A)if(a>
b)c=a;
a=b;
b=c;
B)if(a>
b){c=a,a=b,b=c;
}
C)if(a>
b)c=a,a=b,b=c;
D)if(a>
b){c=a;
(28)if语句的基本形式是:
if(表达式)语句,以下关于“表达式”值的叙述中正确的是
A)必须是整数值
B)必须是正数
C)可以是任意合法的数值
D)必须是逻辑值
(29)有如下嵌套的if语句if(a<
b)
if(a<
c)k=a;
elsek=c;
else
if(b<
c)k=b;
以下选项中与上述if语句等价的语句是
A)k=(a<
b)?
((bc)?
b:
B)k=(a<
c)?
C)k=(a<
a:
D)k=(a<
((a<
c):
((b<
(30)有以下计算公式
y=
(x≥0)
(x<
0)
若程序前面已经在命令行中包含math.h文件,不能够正确计算上述公式的程序段是
A)y=sqrt(x);
if(x<
0)y=sqrt(-x);
B)if(x>
=0)y=sqrt(x);
elsey=sqrt(-x);
C)if(x>
D)y=sqrt(x>
=0?
x:
-x);
(31)有以下程序#includemain(){intx;
x);
=3);
elseif(x!
=10)printf("
x);
}程序运行时,输入的值在哪个范围才会有输出结果
A)不等于10的整数
B)大于3或等于10的整数
C)小于3的整数
D)大于3且不等10的整数
(32)有以下程序
inta=1,b=2,c=3,d=0;
if(a==1&
&
b++==2)
if(b!
=2||c--!
=3)
%d,%d,%d\n"
elseprintf("
A)1,3,2
B)1,2,3
C)1,3,3
D)3,2,1
(33)下列条件语句中,输出结果与其他语句不同的是
A)if(a==0)printf("
elseprintf("
B)if(a==0)printf("
C)if(a!
=0)printf("
D)if(a)printf("
(34)若有以下程序
inta=1,b=2,c=3,d=4;
if((a=2)||(b=1))c=2;
if((c==3)&
(d=-1))a=5;
a,b,c,d);
A)2,1,2,-1
B)2,2,2,4
C)5,1,2,-1
D)1,2,3,4
(35)若有以下程序
inta=1,b=2,c=3,d=4,r=0;
if(a!
=1);
elser=1;
if(b==2)r+=2;
else;
if(c!
=3)r+=3;
if(d==4)r+=4;
r);
A)10
B)6
C)7
(36)若有以下程序
if((a=2)&
(b=1))c=2;
if((c==3)||(d=-1))a=5;
B)2,2,2,4
C)1,2,3,4
D)5,1,2,-1
(37)若有以下程序
elser=1;
=3);
r+=3;
A)7
B)10
C)6
(38)以下叙述中正确的是
A)if语句只能嵌套一层
B)不能在else子句中再嵌套if语句
C)if子句和else子句中可以是任意的合法的C语句
D)改变if-else语句的缩进格式,会改变程序的执行流程
(39)有以下程序
intx=1,y=0,a=0,b=0;
switch(x){
case1:
switch(y){
case0:
a++;
break;
case1:
b++;
case2:
case3:
a=%d,b=%d\n"
程序的运行结果是
A)a=2,b=2
B)a=1,b=1
C)a=1,b=0
D)a=2,b=1
(40)若有定义:
floatx=1.5;
inta=1,b=3,c=2;
则正确的switch语句是
A)switch(a+b){case1:
printf("
*\n"
);
case2+1:
**\n"
B)switch((int)x);
{case1:
case2:
C)switch(x){case1.0:
case2.0:
D)switch(a+b){case1:
casec:
(41)下列叙述中正确的是
A)在switch语句中必须使用default
B)break语句必须与switch语句中的case配对使用
C)在switch语句中,不一定使用break语句
D)break语句只能用于switch语句
(42)有以下程序
intk=5,n=0;
do{
switch(k){
case3:
n+=1;
k--;
default:
n=0;
case4:
n+=2;
n);
while(k>
0&
n<
5)}
运行以后的输出结果是
A)0235
B)235
C)02356
D)2356
(43)以下选项中与if(a==1)a=b;
elsea++;
语句功能不同的switch语句是
A)switch(a==1){case0:
break;
a++;
B)switch(a){case1:
default:
C)switch(a){default:
D)switch(a==1){case1:
case0:
(44)有以下程序
#include
intx=1,y=0,a=0,b=0;
switch(x){
switch(y)
{case0:
a=%d,b=%d\n"
a,b);
}
A)a=1,b=1
B)a=1,b=0
C)a=2,b=1
D)a=2,b=2
(45)若以下选项中的变量a,b,y均已正确定义并赋值,则语法正确的switch语句是
A)switch(a*a+b*b){default:
case3:
y=a+b;
case2:
y=a-b;
B)switch(a+b){case1:
case3:
case0:
case4:
C)switch(a+9){casea:
caseb:
D)switcha*b{case10:
(46)以下程序段中,与语句:
k=a>
b?
(b>
c?
1:
0):
0;
功能相同的是
A)if((a>
b)||(b>
c))k=1;
elsek=0;
B)if(a<
=b)k=0;
elseif(b<
=c)k=1;
C)if((a>
b)&
(b>
b)k=1;
elseif(b>
c)k=1;
(47)关于“while(条件表达式)循环体”,以下叙述正确的是
A)循环体的执行次数总是比条件表达式的执行次数多一次
B)条件表达式的执行次数与循环体的执行次数一样
C)条件表达式的执行次数总是比循环体的执行次数多一次
D)条件表达式的执行次数与循环体的执行次数无关
(48)有以下程序
inty=10;
while(y--);
y=%d\n"
程序执行后的输出结果是
A)y=0
B)y=-1
C)y=1
D)while构成无限循环
(49)有以下程序
intk=5;
while(--k)
k-=3);
\n"
执行后的输出结果是
B)4
D)死循环
(50)有以下程序
y);
程序执行后的输出结果是
B)y=1
C)y=-1
(51)有以下程序
voidmain()
{
ints;
s);
while(s>
{
switch(s)
s+5);
s+4);
s+3);
default:
s+1);
运行时,若输入123450,则输出结果是
A)66656
B)6566456
C)66666
D)6666656
(52)有以下程序
inta=7;
while(a--);
printf("
a);
A)0
B)1
C)-1
D)7
(53)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是
A)(E>
0||E<
B)(!
E==0)
C)(E!
=0)
D)(E==0)
(54)要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是
A)while(ch=getchar()='
N'
)printf("
%c"
ch);
B)while(ch=getchar()==”N”)printf("
C)while((ch=getchar())!
='
D)while((ch=getchar())=='
(55)若有以下程序
inta=-2,b=0;
while(a++)
++b;
%d,%d