C语言程序设计实验与习题答案.pdf
《C语言程序设计实验与习题答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计实验与习题答案.pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 2程序填空(1)以下程序的功能是计算150之间能被7整除的整数之和。#includevoid main()int i,sum=0;for(i=1;50;i+)if(i%7=0)sum+=i;printf(sum=%dn,sum);(2)下面程序接收来自键盘的输入,直到输入+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。#include void main()char cx;char front=;while(cx=getchar()!=n)if(cx!=)putchar(cx);if(cx=)if(front!=)putchar(cx);fro
2、nt=cx;3程序改错(1)下列程序的功能是求1+3+5+99的和。#include 2 void main()int s,i;10.6f10.6f10.6f10.6f代表个数*/for(i=1;i=9;i+)for(j=0;j=9;j+)for(k=0;k=9;k+)if(i*i*i+j*j*j+k*k*k=1099)/*在所有组合中找出满足指定条件的*/printf(%4d,100*i+10*j+k);n+;if(n%5=0)printf(n);/*表示每行输出 5 个数*/#include#include main()int i,j,k;for(i=1;i=4;i+)/*上三角形有 4
3、行,每循环 1 次输出 1 行*/for(k=1;k=8)*/printf();for(j=1;j=1;i-)/*下面为倒三角形,有 3 行*/for(k=1;k8-(2*i-1)/2);k+)printf();for(j=1;j=0&n0);/*该循环指定有根的区间*/do x0=(x1+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;if(fx0*fx1)1e-5);/*该循环实现二分法求根 */printf(root x=%f,x0);2)程序填空(1)#include void main()int m,n,num1,num2,temp;printf(Input two po
4、sitive integer:n);scanf(%d,%d,&num1,_&num2_);if(num1num2)temp=num1;num1=num2;num2=_temp_;m=num1;n=num2;while(n!=0)temp=_m%n_;m=n;n=temp;printf(The grestest common divisor is%dn,m);printf(The lowest common multiple is%dn,num1*num2/_m_);(2)下面程序是计算表达式1+(1+2)+(1+2+3)+(1+2+3+10)和。#includevoid main()5 int
5、 sum,i,j,t;sum=;for(i=1;i=10;i+)t=0;for(j=1;j=;j+)t=t+j;sum=;printf(1+(1+2)+(1+2+3)+(1+2+3+10)=%dn,sum);0 i sum+t3程序改错(1)下面的程序是求1100之间的素数,并将所有素数按每行10个输出。#include#define 10.3f a10=x;break;ak=x;附:算法简析main()int x,i,j,k;/*感觉似乎 j 定义了没什么作用*/int a11=8,18,28,38,48,58,68,78,88,98;printf(请输入需要插入的一个整数:);scanf(
6、%d,&x);a10=x;/*把 x 放到数据串最末位置*/6 for(i=0;i10;i+)if(xk;i-)/*将插入点以及其后的每个数据后移一个单位(给x 腾位)*/*实例演示腾位8 18 28 38 48 58 68 78 88 98(x)8 18 28 38 38 48 58 68 78 88 98插入点*/ai=ai-1;ak=x;/*将 x 放到插入点位置*/for(i=0;i11;i+)printf(%3d,ai);printf(n);i%7=0|i%11=0n+i%5=03.a.将 continue;改为 break;b.将 i=k-1;改为 j=k-1;c.将 j=k+1;
7、改为 i=k+1;d.将 for(i=0;i10;i+)改为 for(i=0;i9;i+);附:算法简析#include void main()7 int x,i,j,k;int a10=8,18,28,38,48,58,68,78,88,98;printf(请输入需要删除的一个整数:);scanf(%d,&x);i=0;j=9;while(ix)j=k-1;if(akj)printf(需要删除的数不在数组中n);else for(;k9;k+)ak=ak+1;/*挤位,后面的数据向删除点靠拢*/*实例演示挤位(若删除38)删除点8,18,28,38,48,58,68,78,88,988,18
8、,28,48,58,68,78,88,98,98*/for(i=0;i9;i+)/*删除一个数,只剩 9 个,数组最末尾储存的是重复的数据(倒数第二个),故不输出*/printf(%5d,ai);a.将 for(i=0,j=0;i=10;i+)改为for(i=1,j=0;i=0;j+)改为 for(;j=0;j-)4.#include#includeint isprime(int x)int k=sqrt(x);for(;k1;k-)if(x%k=0)return 0;return x;void sort(int a,int x)int i,k,t;for(i=0;ix-1;i+)for(k=
9、i+1;kak)t=ai;ai=ak;ak=t;void main()int num50,prime50,i,n=0,j;printf(PLease input 50 integers:n);for(i=0;i50;i+)scanf(%d,&numi);if(j=isprime(numi)!=0)primen+=j;sort(prime,n);printf(The sorted prime numbers are:n);for(i=0;in;i+)printf(%-5d,primei);#include#includemain()9 char input10,paswor10=password
10、,ch,flag=0;int count=1,i=0;while(count=3)printf(请输入密码:);while(ch=getch()!=13)inputi+=ch;putchar(*);inputi=0;if(strcmp(input,paswor)=0)printf(nn你好!我的主人!);flag=1;break;elseprintf(nn离我远点!);count+;getch();if(flag=0)printf(密码输入三次错误,你不是我的主人!nn 离我远点!nn否则,我很生气,后果很严重!);getch();main()int num10,i,max,min,maxj,
11、minj;printf(Please input the data:n);scanf(%d,&num0);max=min=num0;for(i=1;i10;i+)scanf(%d,&numi);if(maxnumi)min=numi;minj=i;printf(The maximum elements underside is%d,max=%d,maxj,nummaxj);nThe minimum element s underside is%d,min=%d,minj,numminj);#include#includevoid input(int a,int*n)int i;printf(H
12、ow many datas do you want to input);scanf(%d,n);printf(nPlease input%d datas:n,*n);for(i=0;i*n;i+)scanf(%d,&ai);void sort(int a,int n)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jaj)t=ai;ai=aj;aj=t;void menu(int a,int n)int i;gotoxy(1,24);printf(Datas:);for(i=0;i);void find(int a,int n)int x;int low=0,high=
13、n-1,mid;printf(nPLease input a data to be searched:);scanf(%d,&x);while(lowamid)low=mid+1;else high=mid-1;nThis data cant be found in the database!);elseprintf(nThis data is in the position%d,mid);gotoxy(7+3*(mid+1)-2,23);putchar(25);void insert(int a,int n)int x,k,i;printf(nPLease input a data to b
14、e inserted:);scanf(%d,&x);an=x;for(i=0;in;i+)if(xk;i-)ai=ai-1;ak=x;gotoxy(1,24);12 delline();printf(Datas:);for(i=0;i=n;i+)printf(%-3d,ai);void Delete(int a,int n)int x,low,high,mid,i;printf(nPLease input a data to be deleted:);scanf(%d,&x);low=0;high=n-1;while(lowx)high=mid-1;if(amidhigh)printf(The
15、 data to be deleted is not in the database!n);elsefor(;midn-1;mid+)amid=amid+1;gotoxy(1,24);delline();printf(Datas:);for(i=0;i=n-2;i+)printf(%-3d,ai);main()int a50,n=0;char com;input(a,&n);sort(a,n);clrscr();menu(a,n);com=getch();switch(com)case 1:find(a,n);break;case 2:insert(a,n);break;13 case 3:D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 习题 答案
限制150内