C语言程序设计第三次作业的部分答案及分析.docx
- 文档编号:11739413
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:9
- 大小:16.77KB
C语言程序设计第三次作业的部分答案及分析.docx
《C语言程序设计第三次作业的部分答案及分析.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第三次作业的部分答案及分析.docx(9页珍藏版)》请在冰豆网上搜索。
C语言程序设计第三次作业的部分答案及分析
三、写出下列每个程序运行后的输出结果
1.#include
voidSB(charch){
switch(ch){
case'A':
case'a':
//相当于if(ch==’A’||ch==’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');//4次调用SB,实际参数分别为b、C、f和A
printf("\n");
}
GGPPBBWW
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,'-'));//以浮点形式输出x和y的差
printf("%3.2lf",SD(x,y,'*'));//以浮点形式输出x和y的积
printf("%3.2lf\n",SD(x+y,y,'/'));//以浮点形式输出x+y和y的商
}//小数点后保留2位。
12.00160.003.50
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);//注意:
调用WF后,x,y不会改变原有的值
x=2*x;
printf("main:
x,y=%d,%d\n",x,y);
}
main:
x,y=18,23
subs:
x,y=41,64
main:
x,y=36,23
4.#include
#include
voidfun(charss[]);
voidmain(){
chars[15]="567891234";
fun(s);
printf("%s\n",s);
}
voidfun(charss[]){
inti,n=strlen(ss);//n记录了字符串的长度9
for(i=0;i charc=ss[i]; ss[i]=ss[n-1-i];//串中字符两两交换。 第一个与最后一个交换, ss[n-1-i]=c;//第二个与倒数第二个交换,… } } 432198765 5.#include voidInsertSort(inta[],intn)//该函数的功能是对a中元素进行插入排序 { inti,j,x; for(i=1;i x=a[i]; for(j=i-1;j>=0;j--)//为x顺序向前寻找合适的插入位置 if(x>a[j])a[j+1]=a[j]; elsebreak; a[j+1]=x; } } voidmain() { inti; inta[6]={20,15,32,47,36,28}; InsertSort(a,6); for(i=0;i<6;i++)printf("%d",a[i]); printf("\n"); } 473632282015 20 15 32 47 36 28 20 15 32 47 36 28 32 20 15 47 36 28 47 32 20 15 36 28 47 36 32 20 15 28 47 36 32 28 20 15 a的变化 6.#include voidmain(){ inta[8]={3,5,7,9,11,13,15,17}; inti,*p=a; for(i=0;i<8;i++){ printf("%5d",*p++); if((i+1)%4==0)printf("\n"); } } 3579 11131517 //将数组a中的元素逐一输出,每行输出4个元素。 7.#include intLA(int*a,intn){ inti,s=0; for(i=0;i s+=a[i]; returns; } voidmain(){ inta[]={5,10,15,20,25,30}; intb=LA(a,4);//将a数组中前4个元素求和 intc=LA(a+2,3);//将a数组中第3个元素起的3个元素求和 printf("%d%d\n",b,c); } 5060 8.#include intLB(int*a,intn){ inti,s=1; for(i=0;i returns; } voidmain(){ inta[]={1,2,3,4,2,4,5,2}; intb=LB(a,4)+LB(&a[3],4);//LB(a,4)=24LB(&a[3],4)=160(4*2*4*5) printf("b=%d\n",b); } b=184 四、写出下列每个函数的功能 1.intWB(inta[],intn,intx){ for(inti=0;i if(a[i]==x)return1; return0e; } 从数组a中顺序查找值为x的元素,若查找成功则返回1,否则返回0。 2.intWC(inta[],intn,intk){ intc=0; for(inti=0;i if(a[i]>=k)c++; returnc; } 统计出数组a中大于等于值为k的元素个数并返回。 3.#include #include #include constintN=10; intff(intx,inty){ intz; printf("%d+%d=",x,y); scanf("%d",&z); if(x+y==z)return1;elsereturn0; } voidmain() { inti,a,b,c=0; srand(time(0));//初始化随机数序列 for(i=0;i a=rand()%20+1;//rand()函数产生0-32767之间的一个随机数 b=rand()%20+1; c+=ff(a,b); } printf("得分: %d\n",c*10); } 让计算机产生出10道操作数为20以内随机整数的加法题供用户计算,每道题10分,计算完成后打印出得分。 4.intfun6(intm,intn,intb=2) { if(m elseif(m%b==0&&n%b==0)returnb*fun6(m/b,n/b,b); elsereturnfun6(m,n,++b); } 一个递归函数过程,求出两个自然数m和n的最小公倍数。 5.#include #include voidLI(intn){ int*a=malloc(n*sizeof(int)); inti; for(i=0;i for(i=n-1;i>=0;i--)printf("%d",*(a+i)); printf("\n"); free(a); } 把从键盘上输入的n个整数按与输入的相反次序显示出来。 6.intLK(doublea[],intn){ doubles=0; inti,m=0; for(i=0;i s/=n; for(i=0;i if(a[i]>=s)m++; returnm; } 求出并返回数组a的n个元素中大于等于平均值的元素个数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第三次 作业 部分 答案 分析