2010C语言实验报告参考答案
- 格式:doc
- 大小:179.50 KB
- 文档页数:29
2010C语言实验报告参考答案
实验一 熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include
main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); }
2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() { printf("商品名称 价格\n"); printf("TCL电视机 ¥7600\n"); printf("美的空调 ¥2000\n"); printf("SunRose键盘 ¥50.5\n"); } 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的商=%d\n",x); printf("a/c的商=%d\n",y);
x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y);
} 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include
main() { int a,b,c;
a=0; b=-10;
c= (a>b) ? b:a; printf("c = %d\n",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,%d\n",a,b,c);这条语句 改成:printf("%c %c %d\n",a,b,c); 问题3 改scanf("%c%c%d",&a,&b,&c);这条语句 改为:scanf("%c,%c,%d",&a,&b,&c); 问题4 改printf("%c,%c,%d\n",a,b,c);这条语句 改成:printf("\’%c\’ \’ %c\’ %d\n",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:%d\n",c); printf("x:%x\n",c);
return 0; } 2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值:
axexaaxay)ln()sin(5 #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=%f\n",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+%d\n",s,a,b,c); /*输出s=a+b+c*/ printf("%d+%d+%d=%d\n",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函数求绝对值。
axax
xaxaaxf0ln2
1
)(
程序为: #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)=%.2f\n",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 (xx=c;
printf("the max number is:%d\n",x); return 0; }
3.改错题 正确程序为: #include main() { double n; printf("Enter n:"); scanf("%lf",&n); if(n<0) printf("n is less than 0\n"); else if(n==0) printf("n is equal to 0\n"); else printf("n is greater 0\n"); } 六、调试和测试结果 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和12+22+33+„+1002。 #include #include
int main() {
int i,j,sum; sum = 0; for (i=1;i<=100;i++) sum += i;
printf("the sum is:%d\n",sum); sum =0; for(i=1;i<=100;i++) { j=pow(i,2); sum +=j; } printf("the square sum is:%d\n",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的所有因子和 { if(i%j == 0) sum +=j;