、程序分析题(本大题共4小题,每小题5分,共20分)1.给出下面程序输出结果。#include<iostream.h>classa{public:virtualvoidprint(){cout<<"aprog..."<<endl;};};classb:publica{};classc:publicb{public:voidprint(){cout<<"cprog..."<<endl;}};voidshow(a*p){(*p).print();}voidmain(){aa;;show(&a);show(&b);show(&c);}答案:aprog...aprog...cprog...[解析]考查多态性的。a类对象调用本身的虚函数,b类因为没有覆写print,所以仍然调用基类的虚函数。而c类重新定义print虚函数,所以调用c类的print。2.给出下面程序输出结果。#include<math.h>#include<iostream.h>#include<iomanip.h>boolfun(longn);voidmain(){longa=10,b=30,l=0;if(a%2==0)a++;for(longm=a;m<=b;m+=2)if(fun(m)){if(l++%10==0)cout<<endl;cout<<setw(5)<<m;}}boolfun(longn){intsqrtm=(int)sqrt(n);for(inti=2;i<=sqrtm;i++)if(n%i==0)returnfalse;returntrue;}答案:111317192329[解析]循环体用来判断n是否是质数的函数,在main函数判断10~30之间质数。3.给出下面程序输出结果。#include<iostream.h>classTest{intx,y;public:Test(inti,intj=0)