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

}

b10=b/10; b1=b;

*c = a10 * 1000 + b1 * 100 + a1 *10 + b10;

五、调试和测试结果(请写出上机内容1的输出结果)

1(1) 输出结果为:8,7,7,8 (2) 6

(3) (1)x=10 y=20

(2)x=20 y=10

(4) 【1】 int *p 【2】 &a[i] 【3】 p[i] 输入:1 2 3 4 5 6 输出: 1 2 3 4 5 6

实验九 指针、函数和数组综合程序设计

设计流程(算法描述)

(请写出上机内容2中的算法描述)

五、程序清单 i=0 1.已知一个整型数组a[5],其各元素值为4,6,8,10,12。使用指针编程求数组元

当 素之积。 *(x+i)= =y T #include int main(void) i=i+1 F return 1 {

return 0 int a[]={4,6,8,10,12},sum; int *p; sum=1;

for(p=a;p

printf(\ return 0; }

2.定义函数int f(char *x, char y)判断x所指的字符串中是否包含字符y,若是则函数返回1,否则返回1。 int f(char *x, char y) {

char *p;

for(p=x;*p!='\\0';p++)

if(*p == y) { }

printf(\return 1; sum *= *p;

return 0; }

3.定义函数void f(float x, int *y, float *z)将x的整数部分存于y所指的存储单元,x的小数部分存于x所指的存储单元。

void f(float x, int *y, float *z) {

*y=(int)x;

*z=x - *y; }

六、调试和测试结果

测试结果正确

实验十 结构体

四、程序清单

(请写出上机内容1的源程序和上机内容2中的函数) 1、上机内容1的源程序

#include #include

#define FORMAT \struct student {

int num;

char name[20]; int age;

char sex; }; main()

{ void input(struct student stu[] ); void stat(struct student stu[]); struct student stu[4]; int i;

input(stu);

for(i=0;i<4;i++)

{ printf(FORMAT,stu[i].num,stu[i].name,stu[i].age,stu[i].sex); }

stat(stu); }

void input(struct student stu[]) {int i;

for(i=0;i<4;i++)

{scanf(\getchar();

scanf(\getchar();

scanf(\getchar();

scanf(\getchar();} }

void stat(struct student stu[]) {int i,c=0,boy=0,girl=0; for(i=0;i<4;i++) {

if(stu[i].age<18) c+=1; if(stu[i].sex=='m') boy++; else girl++; }

printf(\printf(\

}

2、

void fun(struct STREC *a) { int i; a->ave=0; for(i=0;iave+=a->s[i]; a->ave/=N; } 3、改错题

正确的程序为:

将 printf(\%-20s , M\\n\,*p.num, *p.name, p.sex, p.age); 改为:printf(\, p->.num, p->name, p->sex,

p->age);

实验十一 共用体、位运算和文件

四、程序清单

(请写出上机内容2中的程序源代码)

(1) 求100以内能同时被3和5整除的自然数,分别将它们输出到显示器屏幕

和x.txt文件中。

(2)用程序读出上述x.txt文件中的数据,将它们输出到屏幕,并求它们的和。 #include #include #include int main(void) { int i,sum; FILE *fd;

char s[10],*p,ch;

if( (fd=fopen(\ { } else {

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

if( (i%3 ==0) && (i%5 == 0) ) {

printf(\

printf(\exit(0);