电大《C++语言程序设计》第1234次作业及答案参考必考重点.docx
《电大《C++语言程序设计》第1234次作业及答案参考必考重点.docx》由会员分享,可在线阅读,更多相关《电大《C++语言程序设计》第1234次作业及答案参考必考重点.docx(24页珍藏版)》请在冰豆网上搜索。
电大《C++语言程序设计》第1234次作业及答案参考必考重点
电大《C++语言程序设计》第1、2、3、4次作业及答案
第一次作业
一、写出下列每个程序运行后的输出结果
1.#include
voidmain()
{
intx=5;
switch(2*x-3)
{
case4:
printf("%d",x);
case7:
printf("%d",2*x+1);
case10:
printf("%d",3*x-1);break;
default:
printf("%s","default\n");
}
printf("%s\n","switchend.");
}
2.#include
voidmain()
{
inti,s=0;
for(i=1;i<=6;i++)
s+=i*i;
printf("s=%d\n",s);
}
3.#include
voidmain()
{
inti,s1=0,s2=0;
for(i=0;i<10;i++)
if(i%2)s1+=i;
elses2+=i;
printf("%d%d\n",s1,s2);
}
4.#include
voidmain()
{
intn=10,y=1;
while(n--){y++;y++;}
printf("y=%d\n",y);
}
5.#include
voidmain()
{
intf,f1,f2,i;
f1=f2=1;
printf("%d%d",f1,f2);
for(i=3;i<=10;i++){
f=f1+f2;
printf("%d",f);
if(i%5==0)printf("\n");
f1=f2;
f2=f;
}
printf("\n");
}
6.#include
#include
voidmain()
{
inti,n;
for(n=2;n<=20;n++){
inttemp=(int)sqrt(n);//sqrt(n)求出n的平方根并取整
for(i=2;i<=temp;i++)
if(n%i==0)break;
if(i>temp)printf("%d",n);
}
printf("\n");
}
7.#include
#include
constintM=20;
voidmain()
{
inti,c2,c3,c5;
c2=c3=c5=0;
for(i=1;i<=M;i++){
if(i%2==0)c2++;
if(i%3==0)c3++;
if(i%5==0)c5++;
}
printf("%d%d%d\n",c2,c3,c5);
}
8.#include
#include
constintM=20;
voidmain()
{
inti,s;
for(i=1,s=0;i<15;i++){
if(i%2==0||i%3==0)continue;
printf("%d",i);
s+=i;
}
printf("%d\n",s);
}
参考答案:
1、答案:
1114switchend.
2、答案:
s=91.
3、答案:
2520.
4、答案:
y=21.
5、答案:
11235
813213455
6、答案:
235711131719
7、答案:
1064
8、答案:
157111337
第二次作业
一、根据下列每个题目要求编写程序
1.编写一个函数,函数头格式为“voidfun4(char*a,intb[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。
2.编写一个函数,函数头格式为“doubleMean(doublea[M][N],intm,intn)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程是采用变量v存放平均值。
3.编写一个递归函数“intFF(inta[],intn)”,求出数组a中所有元素n个元素之积并返回。
4.编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+……+1/n>5的最小n值。
5.编写一个主函数,求满足不等式22+42+……+n2<1000的最大n值,假定分别用i和s为取偶数值和累加值的变量,并限定使用do循环编程。
6.编写一个主函数,计算并输出n!
的值,其中n值由键盘输入。
参考答案:
1、答案:
#include
voidfun4(char*a,intb[]){
do{
if(*a>='0'&&*a<='9')b[*a-48]++;
}while(*a++);
}
/*voidmain()
{
char*a="122333444499888";
intb[10]={0};
fun4(a,b);
for(inti=0;i<10;i++)
printf("%d",b[i]);
}*/
2、答案:
#include
constintM=2,N=3;
doubleMean(doublea[M][N],intm,intn){
doublev=0;
for(inti=0;ifor(intj=0;jv+=a[i][j];
returnv/(m*n);
}
/*voidmain()
{
doublea[2][3]={1,2,3,4,5,6};
printf("%lf\n",Mean(a,2,3));
}*/
3、答案:
#include
intFF(inta[],intn){
intmul=1;
if(n==1)mul*=a[0];
elsemul=a[n-1]*FF(a,n-1);
returnmul;
}
/*voidmain()
{
inta[6]={1,2,3,4,5,6};
printf("%d\n",FF(a,6));
}*/
4、答案:
#include
voidmain()
{
doublesum=0;
intn=1;
while(true)
{
if(sum+1/(double)n>5)break;
else
sum+=1/(double)n;
n++;
}
printf("%d,%lf\n",n,sum);
}
5、答案:
#include
voidmain()
{
ints=0,i=2;
do
{
s+=i*i;
if(s+(i+2)*(i+2)>=1000)break;
elsei+=2;
}while(true);
printf("i=%d,s=%d",i,s);
}
6、答案:
#include
voidmain()
{
ints=0,n;
printf("请输入n的值:
");
scanf("%d",&n);
for(inti=1;i<=n;i++)
s=s*i;
printf("n=%d,s=%d",n,s);
}
第三次作业
一、写出下列每个程序运行后的输出结果
1.程序代码:
#include
voidSB(charch){
switch(ch){
case'A':
case'a':
printf("WW");break;
case'B':
case'b':
printf("GG");break;
case'C':
case'c':
printf("PP");break;
default:
printf("BB");break;
}
}
voidmain(){
chara1='b',a2='C',a3='f';
SB(a1);SB(a2);SB(a3);SB('A');
printf("\n");
}
2.程序代码:
#include
#include
doubleSD(inta,intb,charop){
doublex;
switch(op){
case'+':
x=a+b;break;
case'-':
x=a-b;break;
case'*':
x=a*b;break;
case'/':
if(b)x=(double)a/b;elseexit
(1);break;
default:
{printf("运算符错!
\n");exit
(1);}
}
returnx;
}
voidmain(){
intx=20,y=8;
printf("%3.2lf",SD(x,y,'-'));
printf("%3.2lf",SD(x,y,'*'));
printf("%3.2lf\n",SD(x+y,y,'/'));
}
3.程序代码:
#include
voidWF(intx,inty){
x=x+y;
y=x+y;
printf("subs:
x,y=%d,%d\n",x,y);
}
voidmain(){
intx=18,y=23;
printf("main:
x,y=%d,%d\n",x,y);
WF(x,y);
x=2*x;
printf("main:
x,y=%d,%d\n",x,y);
}
4.程序代码:
#include
#include
voidfun(charss[]);
voidmain(){
chars[15]="567891234";
fun(s);
printf("%s\n",s);
}
voidfun(charss[]){
inti,n=strlen(ss);
for(i=0;icharc=ss[i];
ss[i]=ss[n-1-i];
ss[n-1-i]=c;
}
}
5.程序代码:
#include
voidInsertSort(inta[],intn)
{
inti,j,x