C语言实验报告参考答案 下载本文

}

3.改错题

正确程序为: #include <> main() { }

double n;

printf(\ scanf(\ if(n<0)

printf(\

printf(\

else if(n==0) else

printf(\

六、调试和测试结果

2(1) Enter a and x:5 6

a=5,f(6)= Enter a and x:5 5 a=5,f(5)=

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+3+…+100。 #include<> #include<> int main() {

int i,j,sum; sum = 0;

2232

for (i=1;i<=100;i++) sum += i;

printf(\ sum =0;

for(i=1;i<=100;i++) {

j=pow(i,2); sum +=j; }

printf(\ return 0; }

2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。 #include<> #include<> main() {

int i,j,sum=0;

for(i=2;i<=5000;i++) 改错题

正确的程序为:

#include <> main()

{

int n=1; int find=0; while(!find) {

if(n%5==1 && n%6==5 && n%7==4 && n==10) {

printf(\ find =1; } n++; } }

六、调试和测试结果

1:结果:the sum is:5050

the square sum is:338350 2:结果:6 28 496

实验五 函数和预处理命令

四、设计流程(算法描述)

(请写出上机内容1的算法描述) 利用循环将m乘n次 五、程序清单

1.编写自定义函数long power(int m,int n),计算mn的值。利用此函数编程序实现:从键盘输入两个整数m和n,计算出mn的值。 #include<>

long power(int m,int n) 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);义函数void f(float x, int *y, float *z)将x的整数部分存于y所指的存储单元,x的小数部分存于x所指的存储单元。

当 *(x+i)!=’\\0’ i=0 void f(float x, int *y, float *z) T {

*y=(int)x; return 1 i=i+1 *(x+i)= =y F return 0