C语言作业答案doc.docx
- 文档编号:25203206
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:16
- 大小:20.47KB
C语言作业答案doc.docx
《C语言作业答案doc.docx》由会员分享,可在线阅读,更多相关《C语言作业答案doc.docx(16页珍藏版)》请在冰豆网上搜索。
C语言作业答案doc
C语言作业答案
P15三.2.3.4、P555
P36三.1.5.7
P74三
P83三.3.4
第三章作业:
P442.3.4
2、有一个已排好序的数组,今有一个数,要求按原来排序的规律将它插入数组(从小到大排列)中。
#defineN10
main()
{inti,j,n;
inta[N]={l,3,5,7,9,11,13,15,17};
scanf(〃%d〃,&n);
i=0;
while(n>a[i]&&i for(j=N-l;j>i;j—) a[j]=a[j-l]; a[j]=n; for(i=0;i printf(〃%3d〃,a[i]); 3、将数组中的值按逆序重新存放并输出。 main() {inti,a[10];/*定义循环变量i和一维数组a*/ for(i=0;i〈二9;i++) scanf(〃%d〃,&a[i]); for(i=9;i〉二0;i--) printf(zz%d,z,a[i]);/*按照逆序输出*/ printf(〃\n〃); } 4、定义一个一维整形数组a[20】,由键盘随机输入20个2位数,统计其中60~99各值段元素的个数(10个数为一段)。 main() { inta[20],i,nl,n2,n3,n4; nl=n2=n3=n4=0; for(i=0;i<20;i++) {a[i]=rand()%100;printf(〃a[%d]=%d\n〃,i,a[i]);} for(i=0;i<20;i++)if(a[i]>=60&&a[i]<69)nl++; elseif(a[i]>=70&&a[i]<79)n2++; elseif(a[i]>=80&&a[i]<89)n3++; elseif(a[i]>=90&&a[i]<99)n4++; printf(,z\n60~69=%d\n70~79=%d\n80~89=%d\n90~99二%d〃,nl,n2,n3,n4);} 第七章作业: P103三.2.4.6.7.9、 2、统计100以内的所有素数。 要求每行输出5个素数。 voidmain() {inti,j; for(i=2;i<=100;i++) {for(j=2;j〈=sqrt(i);j++) if(i%j==0)break: if(j>sqrt(i))printf("%5d",i): /*是素数*/ } } 4、编程输出「100之间所有完数。 #include〃niath.h〃 main() {intsum,i,j; for(i=2;i<=100;i++) {sum=0; for(j=2;j<=sqrt(i);j++) if(i%j二二0)sum二sum+j+i/j; if(sum二二iT)printf(〃%d“,i);} } 6、编写程序实现: 输入两个整数,输出其最大公约数和最小公倍数。 voidmain() {inta,b,nl,n2,temp; printf(〃inputtwodatas: “); scanf(〃%d%d〃,&a,&b); if(a for(nl=b;nl>l;nl--) if(EL%nl=0&&b%nl=0)break;/*求最大公约数*/ n2二a*b/nl;/*求最小公倍数*/ printf(〃TheGCDis: %d\nnl); printf(z,TheLCMis: %d\n〃,n2);} 7输出「200以内能被7整除但是不能被3整除的数之和。 main() {intn,sum二0; for(n=l;n<=100;n++) { if((n%7==0)&&(n%3! =0)) {printf(〃%d〃,n);sum=sum+n;} } printf(〃\nsum=%d〃,sum); } 9、计算1-1/2+1/3-1/4+-.+1/99-1/100,直到最后一项的绝对值小于10-4为止。 #include〃stdio.h〃 main() { inti二1,s; floatsum=0; whi.le(1.0/i>le~4) {辻(i%2二二0)s二-1; elses=l; suin+二s*(1.0/i); i++;} printf(〃sum=%.4f〃,sum); } 第八章作业P121三.3.4.5 3找出一个二维数组中的鞍点,即该位置上的元素在该行中最大,同时在该列中最小。 也可能不存在鞍点,如果有,打印出其位置和值。 main() { inta[3][4],x,y,i,j,k; intmax,min; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(〃%d〃,&a[i][j]); for(i=0;i<3;i++)/*外循环,行*/ { max=a[i][0];y二0; for(k=l;k<5;k++) if(max {y=k;max=a[i][k];}/*每行找出最大max,和列号y*/min=a[i][y];x=i; for(k二0;k〈3;k++) if(min>a[k][y]) {x=k;min=a[k][y];}/*该列找出最小min,和行号x二k*/ if(i=x)/*如果更新后的行号x和开始的行号相同,则是鞍点*/printf(〃a_[%d][%d]=%disandian\n/z,x,y,a[x][y]); } getch(); } 4.编写程序,产生30个[1,100]中的随机整数到5行6列数组中,任意输入一个正整数k,输出数组中与k大小相差5以内的所有元素。 main() {inti,a[5][6],k,j,m=0,b[30]={0}; for(i=0;i<5;i++) for(j=0;j<6;j++) a[i][j]=rand()%100; printf(〃\na: \n〃); for(i=0;i<5;i++) {for(j=0;j<6;j++) printf(〃%3d〃,a[i][j]); printf(〃\n〃); } printf(〃inputk: 〃); scanf(〃%d〃,&k); printf(〃\nb: \n〃); for(i=0;i<5;i++) for(j=0;j<6;j++) if((k-5)〈二a[i][j]&&a[i][j]〈二(k+5)) {b[m]二a[i][j];m++;} for(i=0;i printf(〃%3d〃,b[i]); getch(); } 5有一篇文章,共有3行文本,每行80个字符。 要求分别统计其中的英文大写字母,小写字母,数字、空格及其他字符的个数。 #defineN80 main() {chara[3][N+l]; intnumxi&oxie,numdaxie,numshuzi,numkong,numother,i,j; printf(〃inputa[3][N]: \n〃); for(i=0;i<3;i++)gets(a[i]); for(i=0;i<3;i++) {numxiaoxie=numdaxie=numshuzi=numkong=numother=0; for(j=0;a[i][j]! 二'\0';j++) {辻(a[i][j]>二'a'&&a[i][j]〈二'z')numxiaoxie++; elseif(a[i][j]>二'A'&&a[i][j]〈二'Z')numdaxie++; elseif(a[i][j]〉二'O'&&a[i][j]〈二'9')numshuzi++; elseif(a[i][j]二二'')numkong++; elsenumother++; } printf(〃\nthe%d: 'a'-'z,=%d,‘A'-'Z'=%d,'O'- 9'=%d,kong=%d,other=%d〃,i+1,numxiaoxie,numdaxie,numshuzi,numkong,numother); } } 第九章作业P150三.3.9 3判读素数的函数,主函数中输入一个数,输出是否是素数。 #include #include isprime(inta) {inti; if(a=l)return0; for(i二2;i〈二sqrt(a);i++) if(a%i=0)tetum0; return1; } main() { intn; scanf(〃%d〃,&n); if(isprime(n))printf(〃%disprime",n); elseprintf(〃%disnotprime",n); getchO;} } 9编程实现: 输入一个自然数n,求组成n3的n个连续奇数。 main() { intn,s二1,zh,ch,i; printf(〃n二〃);scanf&n); for(i二0;i<3;i++)s*二n; if(n%2==l){zh=s/n;ch二zh-(n/2)*2;} else{zh=s/n;ch二zhT-(n/2T)*2;} printf(〃%cT3二〃,n); for(i=0;i if(i==n-l)printf(z/%d\nz/,ch+i*2); elseprintf(〃%d+",ch+i*2); } 第十章作业P180三.2.5 2、编写程序实现将一个一维数组中的数据向右循环移动,移动次数由键盘输入。 如数组各元素为0,1,2,3,4,5,6,7,8,9,10;移动三次后各元素的值依次为8,9,10,0,1,2,3,4,5,6,7. intmain() {inta[ll],n,i,j,*p,t; inttemp; printf(〃inputllnum: \n〃); for(p=a;p printf(〃n: \n〃); scanf(〃%d〃,&n); P=a; for(i=l;i<=n;i++) {t二*(p+10); for(j二9;j〉二0;j—)*(p+j+1)二*(p+j); *p=t; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 答案 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)