实验参考答案_第1页
实验参考答案_第2页
实验参考答案_第3页
实验参考答案_第4页
实验参考答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

计算机软件基础实验指导书参考程序【1-1】在屏幕上显示你的学号、姓名和专业,分别各占一行显示。#includemain() printf(081n王力n计算机应用n); 【1-2】如何在屏幕上显示下列图形?#includemain() printf(*n); printf( *n); printf( *n); 【2-1】求半径为2.3的圆的周长和面积。#includemain() double r=2.3,l,s,pi=3.142; l=pi*2*r; s=pi*r*r; printf(圆半径=%lf,周长=%lf,面积=%lfn,r,l,s);【2-2】任意输入两个基本整型数,其中一个为正,另一个为负,分别做被除数和除数时,输出它们的余数。#includemain() int a,b; printf(请输入一个正整数和一个负整数:); scanf(%d%d,&a,&b); printf(a=%d,b=%d, a%b =%dn,a,b,a%b); printf(b=%d,a=%d, b%a =%d n,b,a,b%a);改错1题:int a=3;b=5;sum; 改为 int a=3,b=5,sum;改错2题:scanf(“%lf%lf”,x,y);改为:scanf(“%lf%lf”,&x,&y);改错3题:b=x%100;改为:b=x/10%10; c=x/10;改为:c=x%10;【3-1】任意输入一个整数,如果能被3整除,输出此数;否则,输出不是3的倍数。#includemain() int n; printf(请输入整数:); scanf(%d,&n); if(n%3= =0) printf(%dn,n); else printf(不是3的倍数n);【3-2】编写程序,输入x,利用分段函数,计算并输出y值。 y= |x| (x0) y=ex (x0)#include#includemain() double x,y; printf(请输入实数x:); scanf(%lf,&x); if(x=0) y=fabs(x); else y=exp(x); printf(y=%fn,y); /* 或 printf(y=%lfn,y); */改错1题:if x%2!=0 改为 if (x%2!=0)改错2题:if(x!=0); 改为if(x!=0)y=1/x; 改为:y=1.0/x;【4-1】求 1+2+3+.+n的和。#includemain() int i,n,sum=0; printf(请输入n值:); scanf(%d,&n); for(i=1;i=n;i+) sum=sum+i; printf(1+2+3+.+%d=%dn,n,sum);【4-2】求 1-1/3+1/5-1/7+.+1/n的和。#includemain() int i,n,f=-1; double sum=0; printf(请输入n值:); scanf(%d,&n); for(i=1;i=n;i=i+2) sum=sum+f*1.0/i; /* 加数为f*1.0/i */ f= -f; /*求下一个加数的符号值*/ printf(结果为%fn,sum);【4-3】任意输入两个正整数m和n,求m!+n!的值。#includemain() int i,m,n,t1=1,t2=1,sum; printf(请输入m和n的值:); scanf(%d,%d,&m,&n); for(i=1;i=m;i+) t1=t1*i; for(i=1;i=n;i+) t2=t2*i; sum=t1+t2; printf(%d!+%d!=%dn,m,n,sum);改错1题:(1)int i,sum; 改为:int i,sum=0;(2)for(i=1,i=100,i+) 改为 for(i=1;i=100;i+)改错2题:for(i=100;i=999;i+);改为:for(i=100;i=999;i+)【5-1】任意输入一个字符,如果是数字字符,则输出相应的数字,是空格输出它的ASCII码值;否则,原样输出。提示:例:5-0=5#includemain() char ch; ch=getchar(); if(ch=0 & ch=9) printf(%dn,ch-0); else if(ch= = ) printf(%dn,ch); else printf(%cn,ch);/*putchar(ch);*/【5-2】输入n个字符统计其中数字字符、*号和字母的个数。#include main() char ch; /*定义字符型变量*/int i,n,num1=0,num2=0,num3=0; /*i计数变量,其它变量计各类字符的个数*/printf(请输入要统计的字符的个数n的值:);scanf(%d,&n); /*给n赋值*/for(i=1;i=0&ch=a&ch=A&ch=Z) ) num3=num3+1; /*统计字母个数*/printf(共输入%d个字符n,n); printf(数字%d个,*号%d个,字母%dn,num1,num2,num3); /*输出统计结果*/【5-3】输入x,计算并输出分段函数y的值。当x0时y=0当0x10时y=9x/2当x10时y=4.5x-8.5x#include #include main() float x,y; /*定义两个单精度的实型变量*/printf(Enter x:); scanf(%f,&x); /*给单精度变量赋值,格式控制为:%f*/if(x0) y=0;else if(x10) y=9*x/2;else y=4.5*x-8.5*x;printf(nx=%f,y=%fn,x,y);【5-4】任意输入一个数,判断是否是偶数,是,输出yes;否则,输出no。#includemain() int n; /*定义变量*/ printf(请输入n的值:); scanf(%d,&n); /*给变量n赋值*/ if(n%2= =0) printf(yesn); /*偶数输出“yes”*/ else printf(non); /*不是偶数输出“no”*/【5-5】输入10个字符,分别统计空格、回车和其它字符出现的次数。#include main() char ch; int i,n1=0,n2=0,n3=0; /*i循环变量,其它变量用来计数*/printf(请输入10个字符:);for(i=1;i=10;i+) scanf(%c,&ch); /*给ch赋值*/ switch(ch) /*判断字符类型计数*/ case : n1=n1+1; break; /*是空格*/ case n: n2=n2+1;break; /*是回车*/ default : n3=n3+1; 【5-6】任意输入一个数,判断是否是2100之间的数:(1)是,判断是否是3的倍数,是,输出此数;否则,不输出。(2)不是,输出输入错误。#includemain() int n; /*定义变量n为int类型*/ printf(请输入一个数n:); scanf(%d,&n); /*给n赋值*/ if(n=2&n=100) /*判断n在2100之间*/ if(n%3= =0) printf(%dn,n); /*再判断n是否能被3整除*/ else printf(输入错误n); /*n不在2100之间输出“输入错误”*/改错1题:(1)scanf(“%d”, x); 改为:scanf(“%d”, &x);(2)else if(x10) y=x2-x+3; 改为else if(x10) y=x*x-x+3;(3)else y=4x-7; 改为:else y=4*x-7;改错2题:b=1;c=3; 改为:b=1;c=3;【6-1】求1-2+3-4+5的和。#includemain() int f=1,sum=0,i=1; while(i=5) sum+=i*f; f=-f; i+; printf(1-2+3-4+5=%dn,sum);【6-2】#include #include main() double t=1.0/2,a=1,b=1,c=1,d=2,eps,s=0;scanf(%lf,&eps);while(fabs(t)=eps) s=s+t; a=-a; b=b+2; c=c+1; d=d+1; t=a*b/(c*d); printf(%lf,s);【6-3】#include main() int a,s=0;printf(Enter number:); scanf(%d,&a); /*输入第一个数*/while(a0) /*输入数据大于0时,执行循环*/ if(a%2!=0) /*如果输入数据为奇数,求和*/s=s+a;scanf(%d,&a); /*输入一个新数据为下一次循环做准备*/printf(奇数和=%dn,s);改错1题:printf(%d, ,k);k=k-1; 改为: printf(%d, ,k);k=k-1;或printf(%d, ,k), k=k-1;或printf(%d, ,k-);改错2题:while(i=20); 改为:while(i=0 (2)xamin 填空2题:(ch=getchar()!=n【7-1】#include stdio.hmain()int i=1,n,f=1; double sum=0; printf(Enter n:);scanf(%d,&n);do sum+=f*1.0/i;i=i+2; f=-f;while(i=n); /*先执行一次循环体,在判断循环终止条件*/printf(sum=%f,i=%dn,sum,i);【7-2】#include stdio.hmain() int i=0,n,s=0,j; printf(Enter n:); scanf(%d,&n);do j=n%10; s=s+j; n=n/10; i+; /*i用来统计位数*/ while(n); /* while(n)等价于while(n!=0)*/printf(i=%d,s=%dn,i,s); 改错1题:(1)minx 改为xn) ;改为:while(i0); 改为:while(i5);填空1题:t*n/(2*n+1); 填空2题:n%10 填空3题:(1)s/100(2)10*i思考题:程序1结果为sum=0,i=6 循环体一次也没有执行程序2结果为sum=6,i=7 执行了一次循环体【8-1】#include main() int i;for(i=100;i=999;i+) if(i%5=0)printf(%5d,i);【8-2】#include stdio.hmain() double i,sum=0,t=1,n; scanf(%lf,&n); for(i=1;i=n;i+) t=t*i; sum=sum+1.0/t; printf(sum=%fn,sum);【8-3】#include main() int x,s=0;for(x=1; ;x+) /*表达式2省略表示永远为真*/ s=s+x; if(s10) break; printf(%d,s);改错1题:for(n=1;n=30;n+);改为:for(n=1;n=15;n+)改错2题:for(i=1;i=n)改为for(i=1;i=n;)改错3题:if(i= =(i*i)%10&i= =(i*i)%100) 改为:if(i= =(i*i)%10|i= =(i*i)%100)填空1题:n%3= =0 填空2题:m/n思考题3题:结果为:随机数,11思考题4题:100 101;将break改为continue 后结果为:输出100到999之间不能被3整除的数【9-1】#include stdio.hmain() int i,j;for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( );for(j=1;j=2*i-1;j+) printf(*);printf(n);【9-2】#include stdio.h#include math.hmain() int i,j;double sum=0; for(i=100;i=200;i+) for(j=2;ji;j+) if(i%j= =0) sum+=sqrt(i);break;printf(%f,sum);改错1题:for(n=1;n=8;n+;) 改为:for(n=1;n=8;n+)scanf(%f,&score); ave+=score; printf(NO%d:%fn,n,ave);改为: scanf(%f,&score); ave+=score; printf(NO%d:%fn,n,ave/5);改错2题:(1)for(j=1;j=10+i;j+) 改为:for(j=1;j=10-i;j+)(2)for(j=1;j=2*i+1;j+)改为:for(j=1;j=5;j+)填空1题:s=0 填空2题:(1)m+1 (2)i-1【10-1】#include stdio.hvoid star();void fun();void main() star(); star(); fun(); star(); star(); void star() /*定义函数*/ printf(*n); void fun() /*定义函数*/ printf( hellon); 【10-2】#include stdio.hint fac(int m);int fac(int n) int t=1,i;for(i=1;i0) return sqrt(x);else return cos(x);main() float x,y;printf(Enter x:); scanf(%f,&x);printf(n);y=fun(x);printf(y=%fn,y);【10-4】#include stdio.hdouble max(double x,double y,double z); /*函数说明*/void main() double a,b,c;printf(Enter a,b,c:); scanf(%lf,%lf,%lf,&a,&b,&c);printf(he =%.2fn,max(a,b,c);double max(double x,double y,double z) /*对形参分别定义*/ double sum; sum=x+y+z; return sum; 改错1题:int fun(int m)改为:double fun(int m)for (i=2; im; i+)改为:for (i=2; i=m; i+)y += 1/(i*i); 改为:y += 1.0/(i*i);printf(nThe result is %1fn, fun(int n); 改为:printf(nThe result is %1fn, fun(n);改错2题:int max(double x,double y,double z); 改为:double max(double x,double y,double z);double max(double x, y, z)改为:double max(double x, double y, double z)填空1题:(1)countdigit(number,2); (2)long number, int a (3)return n;填空2题:(1)double fun(int m); (2)double (3)return t;【11-1】#include double fun(int n) int i; double t=0,s=0,f=1;for(i=1;i=n;i+)t=1.0/(2*i-1)-1.0/(2*i); s=s+f*t; f= -f; return s;main() int n; double s;printf(nInput n: ); scanf(%d,&n);s=fun(n);printf(ns=%fn,s);【11-2】#include stdio.hint fun(int num);main() int i,m,n;scanf(%d%d,&m,&n);for(i=m;i0) if(fun(x)= =1)sum+=x; printf(Enter x:); scanf(%d,&x); printf(sum=%dn,sum);改错1题:(1)double sum=0,t=1;改为:double sum=1,t=1;(2)for(i=0;i=n;i+)改为: for(i=1;i=n;i+)改错2题:(1)fun(int n) 改为:double fun(int n) (2)return sum改为:return sum;填空1题:此题删除(1)double (2)f1 (3)f2填空2题:(1)999 (2)t/10 (3)x (4)return n;【12-1】fibonacci数列前20项中下标奇数的元素之和(10945)#include stdio.hmain()long f20=1,1;printf(%ld,fun(f,20);long fun(long f ,long n)int i,s=0;for(i=2;in;i+)fi=fi-1+fi-2;for(i=0;in;i+)if(i%2!=0) s=s+fi;return s;【12-2】任意输入10个数,输出其中的最小数;最小数与最后面的数互换后,输出10个数。 #include stdio.hmain()int a10,k,i;for(i=0;i10;i+)scanf(%d,&ai);k=fun(a,10);printf(max=%dn,k);int fun(int a,int n)int i,min;min=a0;for(i=1;iai)min=ai;return min;【12-3】任意输入10个数,输出其中的最小数;最小数与最后面的数互换后,输出10个数。#include stdio.hvoid fun(int a ,int n)int min=a0,p=0,i,t; /*p用来存放最大数的位置*/ for(i=1;iai) min=ai;p=i; t=an-1;an-1=ap;ap=t; /*最大数与最后位置上的数互换*/main()int a10,k,i; printf(输入10个数:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)printf(%d ,ai);printf(n);fun(a,10);printf(输出调换之后的数组:);for(i=0;i10;i+)printf(%d ,ai);改错1题:(1)double fun(int x1000)(2)int i=0,c=0,j=0; double sum=0.0; (3)while (xj!=0) (4)sum/=c;改错2题:(1)int fun(int buffer ,int k)(2)if(bufferi != bufferk-1-i) (3)n=n/10;填空1题:(1) temp=ai;ai=aN-1-i;aN-1-i=temp; (2)printf(%5d, ai);填空2题:(1)break; (2)a j+1=a j;【13-1】定义一个44二维数组b,数组元素值由键盘输入,输出其中的最小值及所在的列下标。#include stdio.hvoid fun(int a44);main() int a44,i,j; printf(给数组元素赋值:n); for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&aij); printf(输出44的矩阵:n); for(i=0;i4;i+) for(j=0;j4;j+) printf(%4d,aij); printf(n); fun(a);void fun(int a44)/*begin*/ int i,j,min=a00,lie=0; for(i=0;i4;i+) for(j=0;jaij) min=aij; lie=j;printf(min=%d,lie=%dn,min,lie); /*end*/【13-2】从键盘上输入一个4行4列的矩阵,然后分别输出主对角线元素最大值和辅对角线元素最小值。#include stdio.h#define N 4void fun(int aN)/*begin*/ int i,min=a0N-1,max=a00; for(i=1;iN;i+) if(maxaii) max=aii; for(i=1;iaiN-1-i) min=aiN-1-i; printf(“max=%d, min=%d,max,min);/*end*/main()int aNN,i,j;printf(给数组元素赋值:n);for(i=0;iN;i+) for(j=0;jN;j+)scanf(%d,&aij);printf(输出44的矩阵:n);for(i=0;iN;i+)for(j=0;jN;j+) printf(%4d,aij);printf(n); fun(a);【13-3】定义一个5行5列的矩阵,要求主对角线和辅对角线元素值为1,其它元素值为0。#include stdio.hvoid fun(int a55)/*begin*/ for(i=0;i5;i+) for(j=0;j5;j+) if(i=j|i+j=4) aij=1; else aij=0; /*end*/main() int a55,i,j; printf(给数组元素赋值:n); fun(a); printf(输出55的矩阵:n); for(i=0;i5;i+) for(j=0;j5;j+) printf(%4d,aij); printf(n); 【13-4】定义一个NN二维数组,并在键盘给数组元素赋值。数组右上半三角元素值全部置成0。#include #include stdlib.h#define N 5void fun(int aNN)/*begin*/ int i,j;for(i=0;iN;i+) for( j=i;jN;j+) aij=0; /*end*/main() int aNN,i,j; printf(产生一个随机的5*5矩阵); for(i=0;iN;i+) for(j=0;jN;j+) aij=rand()%10; printf(输出原数组:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%5d,aij); printf(n); fun(a); printf(输出变化后的数组:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%5d,aij); printf(n); 改错1题:(1)int fun(int a 5,int n) (2)sum+=ai j;(3)sum+=a ji;改错2题:(1)void fun(int a N)(2) ai0=1;aii=1; (3)for(j=1;ji;j+) (4)for(j=0;jj) puts(a); else puts(b);/*end*/main() char a80,b80; int i,j; printf(给字符串a赋值:n); gets(a); printf(给字符串b赋值:n); gets(b); printf(输出原字符串a:n); puts(a); printf(输出原字符串b:n); puts(b); fun(a,b);【14-2】任意输入两个字符串,将第二个字符串连接在第一个字符串的后面。#include stdio.hvoid fun(char a,char b)/*begin*/*找到字符串a结束符位置*/while(ai!=0) i+;for(j=0;b j!=0;j+) ai+=bj;ai=0;/*end*/main() char a80,b80; int i; printf(给字符串赋值:n); gets(a);gets(b); printf(输出原字符串:n); puts(a);puts(b); fun(a,b); 【14-3】假定输入的字符串中只包含字母和*号。编写程序只删除字符串的后面*号。#include stdio.hvoid fun(char a )/*begin*/int n=0; while(an!=0)n+; n-; while(an=*)n-; n+; an=0;/*end*/main() char a80; printf(给字符串赋值:n); gets(a); printf(输出原字符串:n); puts(a); fun(a); printf(输出新的字符串n); puts(a); 改错1题:(1)while(ij) (2)ai=a j (3)a j=ch改错2题:(1)if(i%2 | si%2=0) (2)tk=0;填空1题:(1)upper+ (2)lower+ (3)upper,lower填空2题:(1)ai!=ch (2)a j=0填空3题:(1)s=0 (2)ch-0【15-2】fun函数的功能是给定n个数,统计平均值以上(含平均值)的实数个数。源程序:#include void fun(float x,int n)/*begin*/ int i,m=0; double ,ave=0; for(i=0;in;i+) ave=ave+xi; ave=ave/n; for(i=0;i=ave) m+; printf(“共有%d个n”,m);/*end*/void main()float x100;int n,i;printf(“给n赋值:n”);scanf(“%d”,&n);for(i=0;in;i+)scanf(“%f”,&xi);fun(x,n);【15-3】任意输入一个字符串,使用冒泡法按字符ASCII码值从小到大排序。部分源程序:#include stdio.h#include string.h

温馨提示

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

评论

0/150

提交评论