学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“高级语言程序设计”习题答案详解(9

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

2007年09月04日    来源:   字体:   打印

  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; }

关闭