c语言参考答案.doc_第1页
c语言参考答案.doc_第2页
c语言参考答案.doc_第3页
c语言参考答案.doc_第4页
c语言参考答案.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

从10个整数中把最小的数找出来,并与最前面的数对调, 指出最小的数原来的位置。#include void main( ) int i,j,a10,k;for(i=0;i=9;i+) scanf(%d,&ai);j=0;/*假设最小值是第0个元素*/for(i=1;i=9;i+) if(aiaj) j=i;if(j!=0)k=a0;a0=aj;aj=k;printf(min number is:%dn,a0);printf(the position is:%dn, j); #include int f(int a)int i,j,k;j=0;/*假设最小值是第0个元素*/for(i=1;i=9;i+) if(aiaj) j=i;if(j!=0)k=a0;a0=aj;aj=k; return j;void main( ) int i,j,a10;for(i=0;i=9;i+) scanf(%d,&ai);j=f(a);printf(min number is:%dn,a0);printf(the position is:%dn, j); 已知5个数已经按由大到小排好序,请编程使得它们按由小到大排序。(逆序)#include void main( ) int a5=5,4,3,2,1,i,t;for (i=0;i5/2;i+)t=ai;ai=a4-i;a4-i=t;for (i=0;i5;i+)printf(%d,ai);#include void f(int a)int i,t;for (i=0;i5/2;i+)t=ai;ai=a4-i;a4-i=t;void main() int a5=5,4,3,2,1,i;f(a);for (i=0;i5;i+)printf(%d,ai);已知5个整数,已经由大到小排好序,现输入一个数,将其插入到该数组适当位置,使其仍然有序。(定义并初始化、输入、查找、移动、插入)#include void main( ) int a6=20,15,12,8,6;int i,k=9;if(k=0;i-)if(kai)ai+1=ai;else break;ai+1=k;for (i=0;i6;i+)printf(%d ,ai);#include void f(int a,int k)int i;if(k=0;i-)if(kai)ai+1=ai;else break;ai+1=k;void main( ) int a6=20,15,12,8,6;int i;f(a,33);for (i=0;i6;i+)printf(%d ,ai);任输入20个正整数,找出其中素数,并按由小到大排序,打印输出素数,每5个数换一行。#include #include void main( ) int a20,b20,i,j,k,m; for(i=0;i20;i+) scanf(%d,&ai); k=0; for(i=0;i20;i+) for( j=2;jai-1) bk=ai; k+; for(i=0;ik-1;i+)for(j=0;jk-1-i;j+)if(bjbj+1) m=bj; bj=bj+1;bj+1=m; for(i=0;ik;i+) printf(%5d,bi); if(i+1)%5=0)printf(n); #include #include int sushu(int a)int j;int f=1;for( j=2;j=sqrt(a);j+)if(a%j=0) f=0;break; return f;int sushuarray(int a,int b)int k=0;int i;for(i=0;i20;i+)if(sushu(ai)=1) bk=ai; k+; return k;void paixu(int b,int k)int i,j,m;for(i=0;ik-1;i+)for(j=0;jbj+1) m=bj; bj=bj+1; bj+1=m; void main( ) int a20,b20,i,k; for(i=0;i20;i+) scanf(%d,&ai); k=sushuarray(a,b); paixu(b,k); for(i=0;ik;i+) printf(%5d,bi); if(i+1)%5=0)printf(n); 有一个23的矩阵,求每行最小值及每列的最小值。#include void main( ) int a23,b2,c3,i, j;for(i=0;i2;i+) for(j=0;j3;j+) scanf(%d,&ai j);for(i=0;i2;i+) bi=ai0; for( j=1;j3;j+) if(ai jbi) bi=ai j; for(j=0;j3;j+) cj=a0j; for(i=1;i2;i+) if(aijcj) cj=aij; for(i=0;i2;i+)for(j=0;j3;j+)printf(%5d,aij);printf(%5dn,bi); for(i=0;i3;i+) printf(%5d,ci);printf(n);#include void f(int a23,int b2,int c3)int i,j;for(i=0;i2;i+) bi=ai0; for( j=1;j3;j+) if(ai jbi) bi=ai j; for(j=0;j3;j+) cj=a0j; for(i=1;i2;i+) if(aijcj) cj=aij; void main( ) int a23,b2,c3,i, j;for(i=0;i2;i+) for(j=0;j3;j+) scanf(%d,&ai j);f(a,b,c); for(i=0;i2;i+)for(j=0;j3;j+)printf(%5d,aij);printf(%5dn,bi); for(i=0;i3;i+) printf(%5d,ci);printf(n);编一程序,将两个字符串连接起来法一:不用函数#include void main()char a80,b30;int i,j;gets(a);gets(b);for(i=0;ai!=0;i+);for(j=0;bj!=0;j+)ai+=bj;ai=0;puts(a);puts(b);法二:用函数#include void f(char a,char b)int i,j;for(i=0;ai!=0;i+);for(j=0;bj!=0;j+)ai+=bj;ai=0;void main()char a80,b30;gets(a);gets(b);f(a,b); /puts(a);puts(b);任输入十个国家的名字,按由小到大排序。#include #include void main( ) char a1020,b20; int i,j; for (i=0;i10;i+) gets(ai); for (i=0;i9;i+) for (j=0;j0) strcpy(b,aj); strcpy(aj,aj+1); strcpy(aj+1,b); printf(paixu is :n); for (i=0;i10;i+) printf(%sn,ai); #include #include void f(char a1020)int i,j;char b20;for (i=0;i9;i+) for (j=0;j0) strcpy(b,aj); strcpy(aj,aj+1); strcpy(aj+1,b); void main( ) char a1020; int i; for (i=0;i10;i+) gets(ai); f(a); printf(paixu is :n); for (i=0;i10;i+)printf(%sn,ai);有一篇三行文字的文章,每行最多80个字符,编写函数,由实参传递字符串,分别统计文章中大写字母、小写字母、数字、空格及其它字符的个数。分析: 自定义函数需返回多个统计结果,可采用一个专门的数组存放统计结果,并将其作为函数参数,在被调函数中计数。#include void count(char s380, int c5) int i, j; char t; /*用临时变量t提高效率*/ for(i=0; i=A&t=a&t=0&t=9) c2+; else if(t=32) c3+; else c4+; return;void main( ) char str380; static int c5, i; /*c各元素为0*/ void count(char 80, int ); for(i=0; i=2; i+) /*输入三行字串*/ gets(stri); count(str, c); /*实参:两个数组指针*/ for(i=0; i=4; i+) /*输出统计结果*/ printf(%5d, ci);编写以下5函数,实现对一个数组按由小到大排序,并统计排序过程中交换的次数(注意参数、返回值的设计) 打印一个数组 将一个数组复制到另一个数组中 用起泡法实现排序和统计 用选择法实现排序和统计 main() 数组初始化为5,27,10,8,15,7,9,24,3,6 用起泡法 打印原始数组和排序后数组、统计次数 用选择法排序原始数组并统计 打印原始数组和排序后数组、统计次数#include void myprint(int a,int n)int i;printf(n );for(i=0;in;i+) printf(%d ,ai);return;void mycopy(int a,int b,int n)int i;for(i=0;in;i+) bi=ai;return;int qipao(int a,int n)int i,j,x=0,t;for(i=0;in-1;i+) for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;x+;return x;int xuanze(int a,int n)int i,j,x=0,k,t;for(i=0;in-1;i+) k=i;for(j=i+1;jn;j+)if(ajak)k=j;if(k!=i)t=ai;ai=ak;ak=t;x+;return x;void main()int a10=5,27,10,8,15,7,9,24,3,6,b10,p,q;/int a10=1,2,3,4,5,6,7,10,9,8,b10,p,q; 测试数据,运行验证,看结果是多少mycopy(a,b,10);printf(nthe source array is: );myprint(a,10);p=qipao(a,10);printf(nqipao the array is: );myprint(a,10);printf(nqipao= %dn ,p);printf(nthe source array is: );myprint(b,10);q=xuanze(b,10);printf(nxuanze array is: );myprint(b,10);printf(nxuanze= %d n,q);递归,求两个数的最大公约数#include int f(int x,int y)int r,p ;if(x*q)t=p;p=q;q=t;if(*p*k)t=p;p=k;k=t;if(*q*k)t=k;k=q;q=t;printf(n%d%d%d n,a,b,c);printf(n%d%d%d n,*p,*q,*k);读程序写结果 (参数是指针)void f(int *p,int *q,int *k)int * t; /局部变量是指针if(*p*q)t=p;p=q;q=t; /交换的是指针if(*p*k)t=p;p=k;k=t;if(*q*k)t=k;k=q;q=t;printf(n%d%d%d n,*p,*q,*k);/函数内打印 排好序 why?void main()int a=3,b=1,c=2;/int a=3,b=2,c=1;/int a=1,b=2,c=3;int *p,*q,*k,*t;p=&a;q=&b;k=&c;f(p,q,k);printf(n%d%d%d n,a,b,c);printf(n%d%d%d n,*p,*q,*k); / 没有排序 why?读程序写结果#include void f(int *p,int *q,int *k)int t; /局部变量是intif(*p*q)t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论