复习题01.docx
《复习题01.docx》由会员分享,可在线阅读,更多相关《复习题01.docx(37页珍藏版)》请在冰点文库上搜索。
复习题01
判断题分析题(2分)
一个C程序的执行是从_A____。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
以下叙述不正确的是。
D
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面(可以前面)
在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为_A___
A)char(8B)char=int<1ongint<=floatC)charD)char=int=longint<=float下面四个选项中,均是不合法的用户标识符的选项是。
C
A)AB)floatC)b-aD)-123
P_01a0gototemp
do_AintINT
A
已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为
A)DB)68C)不确定的值D)C
B
若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num;后sum的值为输出8
A)7B)8C)9D)10
D
若有以下定义,则能使值为3的表达式是:
intk=7,x=12;
A)x%=(k%=5)0B)x%=(k一k%5)2
C)x%=k一k%52D)(x%=k)一(k%=5)
B
printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
B
以下if语句语法正确的是一一一。
A)if(x>0)
printf("%f",x)
elseprintf("%f",--x);
B)if(x>0)
{x=x+y;printf("%f",x);}
elseprintf("%f",-x);
C)if(x>0)
{x=x+y;prinrf("%f",x);};
elseprintf("%f",-x);
D)if(x>0)
{x=x+y;printf("%f",x)}
elseprintf("%f",-x);
elseprintf("%f",-x);
C
以下程序的运行结果是:
main()
{intm=5;
if(m++>5)printf("%d\n",m);
e1seprintf("%d\n",m--);
}
A)4B)5C)6D)7
B
当a=1,b=3,c=5,d=4,执行完下面一段程序后x的值是:
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A)18B)2C)3D)6
B
为了避免在嵌套的条件语句if一else中产生二义性,C语言规定else子句总是与()配对。
A)缩排位置相同的ifB)其之前最近的if
C)之后最近的ifD)同一行上的if
B
请阅读以下程序:
#include
main()
{floata,b
scanf("%f",&a);
if(a<10.0)b=1.0/x;
elseif((a<0.5)&&(a!
=2.0))b=1.0/(a十2.0);
elseif(a<10.0)b=1.0/x;
elseb=10.0;
printf("%f\n",b);
}
若运行时输入2.0(回车),则上面程序的输出结果是:
A)0.000000B)0.500000C)1.000000D)0.250000
C
设有程序段
intk=10;
while(k==0)k=k-1;
则下面描述中正确的是
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
B
有以下程序段
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf("%d",s);
则
A)运行程序段后输出0B)运行程序段后输出1
C)程序段中的控制表达式是非法的D)程序段执行无限次
A
语句while(!
E)中的表达式!
E等价于:
A)E==0B)E!
=1C)E!
=0D)E==1
A
下面程序段的运行结果是
a=1;b=2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
D
下面程序段的运行结果是:
x=y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
A)20,7B)6,12c)20,8D)8,20?
?
?
?
?
?
B
设有程序段
t=0;
while(printf"*"妻"));
{t++;
if(t<3)break
}
面描述正确的是:
A)其中循环控制表达式与0等价B)其中循环控制表达式与'0'等价
C)其中循环控制表达式是不合法的D)以上说法部不对
B
下面程序的功能是将从键盘输入的一对数,由小到大排序输出。
当输入一对相等数时结束循环,请选择填空:
#indude
main()
{inta,b,t;
scanf("%d%d",&a,&b);
while(【1】)
{if(a>b)
{t=a;a=b;b=t;}
printf("%d,%d",a,b);
scahf("%d%d",&a,&b);人
}
【1】A)!
a=bB)a!
=bC)a==bD)a=b
C
下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空:
#include"stdio.h"
main()
{intm=0,n=0;
charc;
while((【1】)!
='\n')
{if(c>='A'&&c<='Z')m++;
if(c>='a'&&c<='z')n++;}
printf("%d\n",mn:
m);}
【1】A)c==getchar()B)getchar()C)c=getchar()D)scanf("%c",c)
C
下面程序的功能是将小写字母变成对应大写字母后的第二个字母。
其中y变成A,z变成B.请选择填空。
#include"stdio.H"
main()
{charc;
while((c=getchar())!
='\n')
{if(c>='a'&&c<='z')
c-=30;
if(c)>='y'&&c<='z')
【2】;}
printf("%c",c)
}
【2】A)c='B'B)c='A'C)c-=26D)c=c+26
B
下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。
#include
main()
{inta,max=0;
scanf("%d",&a)
while(【1】)
{if(maxscanf("%d",&a);}
printf("%d",max);}
【1】A)a==0B)aC)!
a==1D)!
a
C
以下程序段
x=-1;
do
{x=x*x;}
while(!
x);
A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
C
以下描述中正确的是:
A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do一while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
D)do一while循环中,根据情况可以省略while
B
若有如下语句
intx=3;
do{printf("%d\n",x-=2);}while(!
(--x));
则上面程序段
A)输出的是1B)输出的是1和-2
C)输出的是3和0D)是死循环
B
下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。
请选择填空。
#include
main()
{1ongintnum;
scanf("%ld",&num);
do{if(【1】)printf("%ld",num);
scanf("%ld",&num);
}while(!
num==0);}
【1】A)num%100/10B)num/100%10C)num%10/10D)num/10%10
B
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。
请选择填空。
#include
main()
{inti=0,j,k;
do{i++;k=316一13*i;}
while(【1】);j=k/11;
printf("316=13*%d十11*%d",i,j);
}
【1】A)k/11B)k%11C)k/11==0D)k/11==0
D
下面程序的运行结果是:
#indude
main()
{inty=10;
do{y--;}
while(--y);
printf("%d\n",y--);
}
A)一1B)1C)8D)0
D
若运行以下程序时,从键盘输入ADescriptor(CR)表示回车),则下面程序的运行结果是:
#include
main()
{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':
vl+=1;
default:
v0+=1;v2+=1;}
}while(c!
='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11D)v0=12,vl=4,v2=12
B
下面程序的运行结果是:
#include
main()
{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
D
下面有关for循环的正确描述是:
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
B
对for(表达式1;;表达式3)可理解为:
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
B
若i为整型变量,则以下循环执行次数是:
for(i=2;i==0;)printf("%d",i--);
A)无限次B)0次C)1次D)2次
C
以下for循环的执行次数是:
for(x=0,y=0;(y=123)&&(x<4);x++);
A)是无限循环B)循环次数不定C)执行4次D)执行3次
A
以下不是无限循环的语句为:
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;
C
下面程序段的运行结果是:
for(y=1;y<10;)y=((x=3*y,x+1),x-1);
printf("x=%d,y=%d",x,y);
A)x=27,y=27B)x=12,y=13C)x=15,y=14D)x=y=27
D
下面程序段的运行结果是
for(x=3;x<6;x++)printf((x%2)?
("**%d"):
("##%d\n"),x);
A)**3B)##3C)##3D)**3##4
##4**4**4##5**5
**5##5
D
下列程序段不是死循环的是
A)inti=100;
whiLe
(1)
{i=i%100+1;
if(i>100)break;
}
B)for(;;);
C)intk=0;
do{++k;}while(k>=0);
D)ints=36;
while(s)--s;
C
执行语句for(i=1;i++<4;);后变量i的值是
A)3B)4C)5D)不定
D
下面程序的功能是计算:
至50中是7的倍数的数值之和,请选择填空。
#include·
main()
{inti,sum=0;
for(i=1;i<=50;i++)
if([1])sum+=i;
printf("%d",sum);
}
A)(int)(i/7)==i/7
B)(int)i/7==i/7
C)i%7=0
D)i%7==0
B
下面程序的功能是计算1至10之间的奇数之和及偶数之和。
请选择填空;
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
[1];
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11),
}
[1]A)b=i--B)b=i+1C)b=i++D)b=i-1
B
下面程序的运行结果是:
#include
main()
{inti;
for(i=1;i<=5;i++)
switch(i%5)
{case0:
printf("*");break;
case1:
printf("#");break;
default:
printf("\n");
case2:
printf("&");
}
A)#&&&*B)#&C)#D)#&
&&
&&*?
?
?
D
下面程序的运行结果是:
#include
main()
{intx,i;
for(j-1;i<=100;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d",x);
}
}
A)3981日)4284C)2668D)2870
C
下面程序段的功能是计算1000!
的末尾含有多少个零。
请选择填空。
(提示:
只要算出1000!
中含有因数5的个数即可)
for(k=0,m=1;m<=1000;m++)
while(【1】)k++;
【1】A)m%5=0B)m=m%5==0C)m%5==0D)m%5!
=0
D
下面程序的运行结果是:
#include
main()
{inti,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b-->=0)k++;
}
printf("%d,%d",k,b);
}
A)3,-1B)8,-1C)3,0D)8,-2
B
以下正确的描述是。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
D
下面程序段:
for(t=1;t<=100;t++)
{scanf("%d",&x);
if(x<0)continue;
printf("%3d",t);}
A)当x<0时整个循环结束
B)x>=0时什么也不输出
C)printf函数永远也不执行
D)最多允许输出100个非负整数
C
下面程序段:
x=3;
do
{y=x--;
if(!
y){printf("x");continue;}
printf("#");
}while(1<=x<=2);
A)将输出##B)将输出##*
C)是死循环D)含有不合法的控制表达式
C
以下描述正确的是
A)goto语句只能用于退出多层循环
B)switch语句中不能出现continue语句
C)只能用continue语句来终止本次循环
D)在循环中break语句不能独立出现
C
与下面程序段等价的是:
for(n=100;n<=200;n++)
{if(n%3==0)continue;
printf("%4d",n);}
A)for(n=100;(n%3)&&n<=200;n++)printf("%4d",n);
B)for(n=100;(n%3)||n<=200;n++)printf("%4d",n);
C)for(n=100;n<=200;n++)if(n%3!
=0)printf("%4d",n)
D)for(n=100;n<=200;n++)
{if(n%3)printf("%4d",n);
elsecontinue;
break;}
B
下面程序的运行结果是:
#include
main()
{intk=0;
charc='A';
do
{switch(c++)
{case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k=k%2;continue;
case'E':
k=k*10;break;
default:
k=k/3;}
k++;}while(c<'G');
printf("k=%d",k);}
A)k=3B)k=4C)k=2D)k=0
B
若运行以下程序时,从键盘输入3.6,2.4,(表示回车),则下面程序的运行结果是:
#indude
#include
main()
{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;}
elsebreak;}
printf("%f",y);}
A)1.5B)1.6C)2.0D)2.4
B
下面程序的运行结果是:
#include"stdio.h"
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;}
printf("%d\n",a);}
A)7B)8C)9D)10
B
下面程序的运行结果是:
#include"stdio.h"
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf("*");
elsecontinue;
printf("#");
}
printf("$");}
A)**$B)*#*#*#$C)*#*#$D)#*#*$
A
下面程序的运行结果是:
main()
{inti,j,a=0;
for(i=0;i<2;i++)
{for(j=0;j<=4;j++)
{if(j%2)break;
a++;}
a++;}
printf("%d\n",a);
}
A)4B)5C)6D)7
c
在c语言中,引用数组元素时,其数组下标的数据类型允许是__.
A)整型常量B)整型表达式
c)整型常量或整型表达式D)任何类型的表达式
D
以下对一维整型数组a的正确说明是__。
A)inta(10);B)intn=10,a[n];
C)intn;D)#defineSIZE10
scanf("%d",&n);inta[SIZE];
inta[n];
D
若有说明:
inta[10];则对a数组元素的正确引用是__。
A)a[10]B)a[3.5]C)a{5}D)a[10-10]
A
在C语言中,一维数组的定义方式为:
类型说说明符数组名__。
A)[常量表达式]B)[整形表达式]
c)[整型常量]或[整型表达式]D)[整型常量]
C
以下能对一维数组a进行正确初始化的语句是__。
A)inta[10]=(