电大《C++语言程序设计》第1234次作业及答案.docx
- 文档编号:23652197
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:17
- 大小:113.60KB
电大《C++语言程序设计》第1234次作业及答案.docx
《电大《C++语言程序设计》第1234次作业及答案.docx》由会员分享,可在线阅读,更多相关《电大《C++语言程序设计》第1234次作业及答案.docx(17页珍藏版)》请在冰豆网上搜索。
电大《C++语言程序设计》第1234次作业及答案
电大《C++语言程序设计》第1、2、3、4次作业及答案(总16页)
第一次作业
一、写出下列每个程序运行后的输出结果
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);#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="88";
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;i for(intj=0;j v+=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("%",SD(x,y,'-')); printf("%",SD(x,y,'*')); printf("%\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]="4"; fun(s); printf("%s\n",s); } voidfun(charss[]){ inti,n=strlen(ss); for(i=0;i charc=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } } 5.程序代码: #include<> voidInsertSort(inta[],intn) { inti,j,x; for(i=1;i } 1.程序代码: structStrNode{ charname[15];//字符串域 structStrNode*next;//指针域 }; structStrNode*QB(intn){ structStrNode*f,*p; if(n==0)returnNULL; f=malloc(sizeof(structStrNode)); scanf("%s",f->name); p=f; while(--n){ p=p->next=malloc(sizeof(structStrNode)); scanf("%s",p->name); } p->next=NULL; returnf; } 2.程序代码: structIntNode{ intdata;//结点值域 structIntNode*next;//结点指针域 }; structIntNode*FindMax(structIntNode*f) { structIntNode*p=f; if(! f)returnNULL; f=f->next; while(f){ if(f->data f=f->next; } returnp; } 3.*程序代码: structIntNode{ intdata;//结点值域 structIntNode*next;//结点指针域 }; intCount(structIntNode*f) { intc=0; while(f){ c++; f=f->next; } returnc; } 4.程序代码: structIntNode{ intdata;//结点值域 structIntNode*next;//结点指针域 }; structIntNode*Input(intn) { structIntNode*f,*p; f=malloc(sizeof(structIntNode)); if(n==0)returnNULL; f->next=NULL; printf("从键盘输入%d个整数: ",n); while(n--){ scanf("%d",&(f->data)); p=f; f=malloc(sizeof(structIntNode)); f->next=p; } returnf->next; } 5.程序代码: #include<> #include<> #include<> voidJA(char*fname) { FILE*fout=fopen(fname,"w"); chara[20]; printf("输入若干个字符串,每个字符串长度小于20,字符串end作为结束标志\n"); while (1){ scanf("%s",a); if(strcmp(a,"end")==0)break; fputs(a,fout); fputc('\n',fout); } fclose(fout); } voidmain() { char*p="d: \\xxk\\"; JA(p); } 参考答案: 一、1、答案: 运行结果: wanghua52 wanghua53 2、答案: 运行结果: liouting39 3、答案: 运行结果: def58 二、1、答案: 从标准输入设备读入n-1个人员的信息,依次存到结构数组的a[1]到a[n-1]元素中 2、答案: 创建具有n个structStrNode结点的单向链表并返回其表头结点地址,n为0时返回NULL。 3、答案: 函数功能: 查找单向链表中结点值域最大的结点,并返回其地址。 如链表为空则返回NULL 4、答案: 函数功能: 统计并返回单向链表结点个数 5、答案: 函数功能: 从表尾结点开始,逆序创建具有n个structIntNode结点的单向链表并返回其表头结点地址,n为0时返回NULL 6、答案: 函数功能: 将输入的若干个字符串保存到文本文件d: \xxk\中,每个字符串一行。 输入的单个字符串长度必须小于20,输入字符串end结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+语言程序设计 电大 C+ 语言程序设计 1234 作业 答案