重庆自考网 > 复习指导 > 2015年自考“高级语言程序设计”习题答案详解(9)
2014
10-30

2015年自考“高级语言程序设计”习题答案详解(9)

2015年自考“高级语言程序设计”习题答案详解(9)

3.2 填充题
1.结构化程序设计规定的三种基本结构是________结构,选择结构和_______结构。
「解」结构化程序设计的三种基本控制结构是顺序结构、选择结构和循环结构。
2.若有定义“int a=25,b=14, c=19;”,以下语句的执行结果是______.
if a++<=25&&b——<=2&&c++)
prinif(“***a=%d,b=%d,c=%d\n”, a,b,c);
else printf(“###a=%d,b=%d,c=%d\n”, a, b,c);
「解」问题所给的if语句中,条件a++<=25&&b——<=2&&c++是先求逻辑与的第一个运算分量,它是一个关系式,关系成立。接着判定第二个逻辑与运算分量,又是一个关系式,由于变量b的值是14,b不小于等于2,运算分量的关系式不成立,导致if语句的条件为假,执行else部分。在求且语句的条件时,计算了2个逻辑与分量,使变量a的值增了1,变量 b的值被减了1.所以输出内容是:###a=26,b=13,c=19.
3.以下两条if语句可合并成一条if语句为_____________.
if(a<=b) x=1;
else y=2;
if(a>b)printf(“****y=%d\n” ,y);
else printf( “####x=%d\n” ,x);
「解」在以上两条if语句中,两个条件刚巧相反。若将前一个if语句的第一个成分语句与第二个if语句的第二个成分语句合并;第一个if语句的第二个成分语句与第二个if语句的第一个成分语句合并,写成一条if语句如下:
if(a<=b){x=1;printf(“####x=%d\d,x);}
else{ y=2; printf(“****y=%d\n”,y);}
4.设 i,j,k均为 int型变量,则执行完下面的for语句后,k的值为_______.
for(i=0,j=10;i<=j;i++,j——)k=i+j;
「解」该 for语句以i为0、j为10初始化,循环条件是 i<=j,每次循环后 i增 1、j减 1,循环体是将 i与j的和赋给 k.这样变量 k将保存的是最后一次赋给它的值。一次循环后 i为 l.j为 9,二次循环后 i为 2.j为 8,……,五次循环后 i为 5.j为 5,继续第六次循环,将 i与 j的和10存于 k后,i为 6、j为 4,结束循环。所以循环执行后 k为10.
5.下列程序的功能是输入一个整数,判断是不是素数,若为素数输出1,否则输出0,请为程序填空。
main()
{int i,X,y=1;
scanf(“%d”,&x);
for(i=2;i =x/2;i++)
if________________ { y=0; break; }
printf(“%d\n”,y);
}
「解」为判数x是否是素数,预置变量y的值为1(x可能是素数),然后用循环,用2至x/2的整数i测试对X的整除性,若能被其中的某个整数整除,则X是合数,置y的值为0(不是素数),结束测试循环。若都不能整除,则X为素数。i能否整除X,可用求余运算X%i等于0来判定。所以程序中的空框可填 X% i==0.测试 X为素数的代码可写成:
y=l;
for( i=2; i<=x/2; i++)
if(x%i==0){ y=0; bleak; }

最后编辑:
作者:重庆自考网