程序控制结构练习题
(一) 选择题
1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ;如果字符串长度小于5,则输出按方式 。
A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出
C) 右对齐输出该字符串,左补空格 D) 输出错误信息
2.设有说明语句:int a=1,b=0; 则执行以下语句后,输出为( )
switch(a)
{
case 1: switch(b)
{
case 0: printf(“**0**\n”); break;
case 1:printf(“**1**\n”); break;
}
default: printf(“**2**\n”);
}
A)**0** B)**2** C) **0** D)**0**
**1** **2**
**2**
3. 阅读以下程序,当输入数据的形式为:25,13,10<CR>(注:<CR>表示回车),则正确的输出结果为 。
main()
{ int x,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);
}
A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值
4. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 。
main()
{ char ch1,ch2,ch3;
输入语句
printf(“%c%c%c”,ch1,ch2,ch3);
}
输出形式:A B C
输入形式:A B
A) scanf(“%c%c%c”,&ch1,&ch2,&ch3);
B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);
C) scanf(“%c %c %c”,&ch1,&ch2,&ch3);
D) scanf(“%c%c”,&ch1,&ch2,&ch3);
5. 已知ch是字符型变量,下面正确的赋值语句是 。
A) ch=‘a+b’; B) ch=‘\0’; C) ch=‘7’+‘9’; D) ch=5+9;
6. putchar函数可以向终端输出一个 。
A) 整型变量表达式 B) 实型变量值
C) 字符串 D) 字符或字符型变量值
7. 使以下程序的输出结果为4,则a和b应该满足的条件是( )
main()
{ int s,t,a,b;
scanf(“%d%d”,&a,&b);
s=t=1;
if(a>0) s+=1;
if(a>b) t=s+t;
else
if(a==b) t=5;
else t=2*s;
printf(“%d\n”,t);
}
A) A) a>0 并且a<b B) a<0 并且a<b
C) a>0并且a>b D) a<0并且a>b
8.执行语句for(i=1;i++<4; );后变量i的值是______.
a)3 b)4 c)5 d)不定
9.以下正确的描述是_______.
a)continue语句的作用是结束整个循环的执行
b)只能在循环体内和switch语句体内使用break语句
c)在循环体内使用break语句或continue语句的作用相同
d)从多层循环嵌套中退出时,只能使用goto语句
10.下面程序段的运行结果是__________.
int n=0;
while(n++<=2);printf("%d",n);
a)2 b)3 c)4 d)有语法错
11.下面程序的运行结果是____.
#include<stdio.h>
main()
{
int num=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
a)1 b)1 c)1 d)1
2 2 2
3 3
4
12.以下程序段________.
x=-1;
do{
x=x*x;
}
while(!x);
a)是死循环 b)循环执行二次
c)循环执行一次 d)有语法错误
13.若有如下语句
int x=3;
do{printf(""%d\n",x-=2);}while(!(--x));
则上面程序段______.
a)输出的是1 b)输出的是1和-2 c)输出的是3和0 d)是死循环
14.下面程序的运行结果是______.
#include<stdio.h>
main()
{int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
a)-1 b)1 c)8 d)0
函数printf15.若i为整型变量,则以下循环执行次数是_____.
for(i=2;i==0;)printf("%d",i--);
a)无限次 b)0次 c)1次 d)2次
16.设有程序段
int k=10;
while(k=0)k=k-1;
这下面描述中正确的是_________.
a)while循环执行10次 b)循环是无限循环
c)循环体语句以此也不执行 d)循环体语句执行一次
17.语句while(!E);中的表达式!E等价于________.
a)E==0 b)E!=1 c)E!=0 d)E==1
(二) 填空题
1. 以下的输出结果是 。
main()
{ short i;
i=-4;
printf(“\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i);
}
2. 以下的输出结果是 。
main()
{ char c=‘x’;
printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c);
}
3. 以下的输出结果是 。
main()
{ int x=1,y=2;
printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y);
printf(“10 Squared is : %d\n”,10*10);
}
4. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。
a+= ; b=a- ; a-= ;
5. 若x为int型变量,则执行以下语句后的x 值为 。
x=7; x+=x-=x+x;
z=m=0xFFFF
6. 6. 有一输入语句scanf(“%d”,k); 则不能使float类型变量k得到正确数值的原因
是 和 。
7.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束
循环。请填空。
int n=0,c;
c=getchar();
while(____)
{
if(_____)n++;
c=getchar();
}
8.下面程序的功能是用"辗转相除法"求两个正整数的最大公约数。请填空。
#include <stdio.h>
main()
{int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)_______;
r=m%n;
while(r){m=n;n=r;r=______;}
printf("%d\n",n);
}
9.下面程序的运行结果是_________.
#include <stdio.h>
main()
{int a,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d",s);
}
10.下面程序段的运行结果是_________.
i=1;a=0;s=1;
do{a=a+s*i;s=-s;i++;}while(i<=10);
printf("a=%d",a);
11.下面程序段的运行结果是_______.
i=1;s=3;
do{s+=i++;
if(s%7==0)continue;
else ++i;
}while(s<15);
printf("%d",i);
(三)程序设计题
1.求一元二次方程ax2+bx+c=0的根。
2.输入一个表示星期的数字(0表示星期天,1表示星期一,。。。6表示星期六),显示对应的英文单词。
3.已知函数f(x)=3x3-5x2+x-10,输入自变量x,输出函数值f(x)。
4.百钱买百鸡问题。
公鸡值钱五,母鸡值钱三,小鸡三值一,白钱买百鸡,问公鸡、母鸡小鸡各几只?
5.编写一个人口统计算法,1982年我国人口为12亿,如果按照年增长率分别为2%, 1.5%, 1%, 0.5% 计算,各需多少年后,我国人口会翻一番(24亿)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论