}
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
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 #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;i 正确的程序为: 将 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 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);