admin 管理员组文章数量: 1184232
2024年4月21日发(作者:元素中属于常量元素的是什么)
长沙理工大学2010C语言实验报告参考答案
实验一 熟悉C语言程序开发环境及数据描述
四、程序清单
1.编写程序实现在屏幕上显示以下结果:
The dress is long
The shoes are big
The trousers are black
答案:
#include
main()
{
}
2.改错题(将正确程序写在指定位置)
正确的程序为:
#include
main()
{
printf("商品名称 价格n");
printf("TCL电视机 ¥7600n");
printf("美的空调 ¥2000n");
printf("SunRose键盘 ¥50.5n");
printf("The dress is longn");
printf("The shoes are bign");
printf("The trousers are blackn");
}
2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。
答案:
#include
main()
{
int a,b,c,x,y;
a=150;
b=20;
c=45;
x=a/b;
y=a/c;
printf("a/b的商=%dn",x);
printf("a/c的商=%dn",y);
x=a%b;
y=a%c;
printf("a/b的余数=%dn",x);
printf("a/c的余数=%dn",y);
}
4. 设变量a的值为0,b的值为-10,编写程序:当
赋给c。(提示:用条件运算符)
答案:
#include
main()
a>b时,将b赋给c;当a<=b时,将a
{
}
五、调试和测试结果
int a,b,c;
a=0;
b=-10;
c= (a>b) ? b:a;
printf("c = %dn",c);
1.编译、连接无错,运行后屏幕上显示以下结果:
The dress is long
The shoes are big
The trousers are black
3、 编译、连接无错,运行后屏幕上显示以下结果:
a/b的商=7
a/c的商=3
a/b的余数=10
a/c的余数=15
4. 编译、连接无错,运行后屏幕上显示以下结果:
c =-10
实验二 顺序结构程序设计
四、程序清单
1.键盘输入与屏幕输出练习
问题1 D 。
问题2 改printf("%c,%c,%dn",a,b,c);这条语句
改成:printf("%c %c %dn",a,b,c);
问题3 改scanf("%c%c%d",&a,&b,&c);这条语句
改为:scanf("%c,%c,%d",&a,&b,&c);
问题4 改printf("%c,%c,%dn",a,b,c);这条语句
改成:printf("’%c’ ’ %c’ %dn",a,b,c);
2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。
#include
int main()
{
int a,b,c;
printf("Enter a and b:");
scanf("%o%o",&a,&b);
c = a + b;
printf("d:%dn",c);
printf("x:%xn",c);
return 0;
}
2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值:
#include
#include
int main()
{
float a,x,y;
scanf("%f%f",&a,&x);
y = pow(a,5) + sin(a*x) + exp(a*x) + log(a+x);
printf("y=%fn",y);
return 0;
}
3.改错题
正确的程序为:
#include
main()
{
}
五、调试和测试结果
int a,b,c,s;
scanf("%d%d%d",&a,&b,&c);
s=a+b+c;
printf("%d=%d+%d+%dn",s,a,b,c); /*输出s=a+b+c*/
printf("%d+%d+%d=%dn",a,b,c,s); /*输出a+b+c=s*/
2(1) 输入: 12 14
输出:26
1a
2(2) 输入:1 0
输出:2.000000
实验三 选择结构程序设计
四、设计流程(算法描述)
(请写出上机内容2
(2)题
的算法描述)
主要是两两比较,然后得出最大的数
五、程序清单
2(1) 输入整数x和a,计算并输出下列分段函数f(x)的值(保留2位小数),请调用log
函数求自然对数,调用fabs函数求绝对值。
程序为:
#include
#include
main()
{
int x,a;
double y;
printf("Enter a and x:");
scanf("%d%d",&a,&x);
if(fabs(x)!=a)
y=log(fabs((a+x)/(a-x)))/(2*a);
else
y=0;
printf("a=%d,f(%d)=%.2fn",a,x,y);
}
(2)输入a、b、c三个整数,输出最大数。
#include
main()
{
int a,b,c,x;
scanf("%d%d%d",&a,&b,&c);
if(a>=b)
x=a;
else
x=b;
if (x x=c; printf("the max number is:%dn",x); return 0; } 3.改错题 正确程序为: #include main() { } 六、调试和测试结果 double n; printf("Enter n:"); scanf("%lf",&n); if(n<0) printf("n is less than 0n"); else if(n==0) printf("n is equal to 0n"); else printf("n is greater 0n"); 2(1) Enter a and x:5 6 a=5,f(6)=0.24 Enter a and x:5 5 a=5,f(5)=0.00 2(2) 输入:3 2 1 输出:the max number is:3 输入:2 3 1 输出:the max number is:3 输入:1 2 3 输出:the max number is:3 实验四 循环结构程序设计 四、设计流程(算法描述) (请写出上机内容2 的 算法描述) 首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等, 就是完数。 五、程序清单 1.编写程序:求1+2+3+…+100和1 2 +2 2 +3 3 +…+100 2 。 #include #include int main() { int i,j,sum; sum = 0; for (i=1;i<=100;i++) sum += i; printf("the sum is:%dn",sum); sum =0; for(i=1;i<=100;i++) { j=pow(i,2); sum +=j; } printf("the square sum is:%dn",sum); return 0; } 2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000 中的所有完数。 #include #include main() { int i,j,sum=0; for(i=2;i<=5000;i++) //遍历从2到5000的所有数 { sum = 0; for (j=1;j<=i/2;j++) //找出给定整数X的所有因子和 } return 0; } { if(i%j == 0) } if(i == sum) //sum为因子和,如果和i相等,则输出 printf("%d ",i); sum +=j; 3. 改错题 正确的程序为: #include main() { int n=1; int find=0; while(!find) { } } 六、调试和测试结果 if(n%5==1 && n%6==5 && n%7==4 && n%11==10) { } n++; printf("n=%dn", n); find =1; 1:结果:the sum is:5050 the square sum is:338350 2:结果:6 28 496 实验五 函数和预处理命令 四、设计流程(算法描述) (请写出上机内容1的算法描述) 利用循环将m乘n次 五、程序清单 1.编写自定义函数long power(int m,int n),计算 m n 的值。利用此函数编程序实现:从 键盘输入两个整数m和n,计算出 m n 的值。 #include long power(int m,int n)//要返回的是long型 { int i; long s;//因为是要返回的数,所以这里也定义为long型 s=1; for(i=1;i<=n;i++) { } return s; } int main(void) { int m,n; scanf("%d%d",&m,&n); printf("s=%ldn",power ( m,n)); return 0; } 2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数, 并输出结果,两个整数由键盘输入。 s *=m; 1. 源程序如下: int zdgys(int n1,int n2) {int y,i; for(i=n2;i<=1;i--) if(n1%i==0&&n2%i==0) {y=i;break;} return y; } int zxgbs(int n1,int n2) {int y,i; for(i=n1;i<=n1*n2;i++) if(i%n1==0&&i%n2==0) {y=i;break;} return y; } main() {int n1,n2,t; scanf("n1=%d n2=%d",&n1,&n2); if(n1 {t=n1;n1=n2;n2=t;} printf("zdgys=%d zxgbs=%d",zdgys(n1,n2),zxgbs(n1,n2)); } 3、改错题 正确程序如下: #include int fact(int n); int multi(int n); main() {int i; double sum,item,eps; eps=1E-6; sum=1; item=1; for(i=1;item>=eps;i++) {item=fact(i)/multi(2*i+1); sum=sum+item; } printf(“PI=%0.5lfn”,sum*2); return 0; } int fact(int n) {int i; int res=1; for(i=0;i<=n;i++) res=res*i; return res; } int multi(int n) {int i; int res=1; for(i=3;i<=n;i=i+2) res=res*i; return res; } 六、调试和测试结果 1、输入:2 3 输出:s=8 2、 输入:n1=24 n2=16 输出:zdgys=8 zxgbs=48 2. 3、输出结果为: 实验六 数组 四、设计流程(算法描述) (请写出上机内容1的算法描述) 设置两个变量分别指示头和尾。第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到 两变量相遇为止。 五、程序清单 1.编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。 自定义函数void antitone(int a[],int n)实现将数组中的n个数据按逆序存放。 void antitone(int a[],int n) { int i,j; int k; i=0; j=n-1; while(i { k=a[i]; a[i]=a[j]; a[j]=k; i +=1; j -=1; } } 2.已知某数列的前两项为2和3,其后每一项为其前两项之积。编程实现:从键盘输入一 个整数x,判断并输出x最接近数列的第几项? #include #include void Mad(int a[],int n) { int i; a[0]=2; a[1]=3; for(i=2;i { a[i] = a[i-1] * a[i-2]; } } int main(void) { int a[100],x,k1,k2; int i; Mad(a,100);//产生序列 printf("input x:"); scanf("%d",&x); i=0; for(;x>a[i];i++); k1 = abs(x-a[i-1]); k2 = abs(x-a[i]); if(k1>k2) printf(" x 最接近第%d项n",i+1); else printf("x 最接近第%d项n",i); return 0; } 3、源程序如下: #include main() { char c[15]; int i,word=0,num=0,space=0; for(i=0;i<=14;i++) } } scanf("%c",&c[i]); for(i=0;i<=14;i++) { if(c[i]==' ') space++; if(c[i]>='0'&&c[i]<='9') num++; if(c[i]>'a'&&c[i]<'z') word++; printf("字符:%d 数字:%d 空格:%dn",word,num,space); 六、调试和测试结果 1、输入:1 2 3 4 5 输出:5 4 3 2 1 2、输入:110 输出:x 最接近第6项 3、输入:sd234kj64jk mjk 输出:字符:9 数字:5 空格:1 实验七 数组和函数综合程序设计 四、程序清单 (请写出上机内容2、3中源程序) 2、 原程序求得的是下三角形,经改进调试之后的程序为: #include #define N 6 main() { int i,j,sum=0; int a[N][N]={0}; printf("input 5×5 data:n");
版权声明:本文标题:C语言实验报告参考答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713678958a646614.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论