《C语言程序设计教程》(第三版)李凤霞 主编——第十章习题答案
《C语言程序设计教程》(第三版)李凤霞 主编——第一章习题答案

第一章:程序设计基础知识一、单项选择题1、面向过程的程序设计语言是________。
A)机器语言 B)汇编语言 C)高级语言 D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是_________。
A)设计数据结构和算法B)建立数学模型C)编写程序 D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是_________。
A)枚举法B)递推法 C)分治法 D)排序法4、以下不属于算法基本特征的是__________。
A)有穷性 B)有效性C)可靠性 D)有一个或多各输出5、以下描述中不正确的是___________。
A)程序就是软件,但软件不仅仅是程序。
B)程序是指令的集合,计算机语言是编写程序的工具。
C)计算机语言都是形式化的语言,它有一个语法规则和定义。
D)计算机语言只能编写程序而不能表示算法。
6、下面描述中,正确的是_____________。
A)结构化程序设计方法是面向过程程序设计的主流。
B)算法就是计算方法。
C)一个正确的程序就是指程序书写正确。
D)计算机语言就是编写程序的工具而不是表示算法的工具。
7、下面描述中,不正确的是______________。
A)递归法的关键是必须有一个递归终止的条件。
B)递归算法要求语言具有反复自我调用子程序的能力。
C)对于同一个问题,递推算法比递归算法的执行时间要长。
D)递推算法总可以转换为一个递归算法。
8、N-S图与传统流程图比较,主要优点是_________。
A)杜绝了程序的无条件转移。
B)具有顺序、选择和循环三种基本结构。
C)简单、只管。
D)有利于编写程序。
A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。
(判断条件)2、结构化程序设计是__________应遵循的方法和原则。
(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。
(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。
C语言程序设计(第三版)的习题集库答案.doc

C 语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
#include <stdio.h>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f ”__,&r);scanf(”%d ”,__&h _);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb );}2、输入一个华氏温度,要求输出摄氏温度。
公式为 c=5(F-32)/9输出要求有文字说明,取位2小数。
#include <stdio.h>main(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。
#include <stdio.h>main(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (____x<10_______){ /* 1≤x -10 */_____y=2*x-1_______;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d\n",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}# include "stdio.h" main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=1 && x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。
《C语言程序设计教程》(第三版)李凤霞 主编——第九章习题答案

习题九一、单选题1、已知:int *p,a;则语句"p=&a;"中的运算符"&"的含义是()。
A)位与运算 B)逻辑与运算 C)取指针内容D)取变量地址2、已知:int a,x;则正确的赋值语句是()。
A)a=(a[1]+a[2])/2 B)a*=*a+1; C)a=(x=1,x++,x+2); D)a="goog";3、已知:int a,*p=&a; 则下列函数调用中错误的是()。
A)scanf("%d",&a); B)scanf("%d",p); C)printf("%d",a); D)printf("%d",p);4、main(argc,argv)中形式参数argv的正确说明形式应当为()。
A)char *argv[ ] B)char argv[ ][ ] C)char argv[ ] D)char *argv5、说明语句"int (*p)(); "的含义是()。
A)p是一个指向一维数组的指针变量B)p是一个指针变量,指向一个整型数据C)p是一个指向函数的指针,该函数的返回值是一个整型D)以上都不对6、设有说明int(*ptr)[M];其中的标识符ptr是()。
A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型变量7、已知:double *p[6]; 它的含义是()。
A)p是指向double型变量的指针 B)p是double型数组C)p是指针数组 D)p是数组指针8、已知函数说明语句:void *f(); 则它的含义是()。
A)函数f的返回值是一个通用型的指针 B)函数f的返回值可以是任意的数据类型C)函数f无返回值D)指针f指向一个函数,该函数无返回值9、已知:char s[10],*p=s,则在下列语句中,错误的语句是()。
C程序设计(第三版)习题答案(10章)_谭浩强著(3)_官田

{int *p;
for(p=number;p<number+9;p++)
printf("%d,",*p);
printf("%d\n",*p);
}
10.4
main()
{int number[20],n,m,i;
scanf("%d",&n);
scanf("%d",&m);
for(i=0;i<n:i++)
scanf("%d",&number[i]);
move(number,n,m);
input(number)
int number[10];
{int i;
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
max_min_value(number)
int number[10];
p++;
}
printf("sle=%d,cle=%d,wsp=%d,di=%d,ot=%d\n",sle,cle,wsp,di,ot);
}
10.9
main()
{int a[3][3],*p,i;
*p=number[0];
number[0]=*min;
*min=*p;
*p=number[9];
number[9]=*max;
*max=*p;
return;
《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
C语言程序设计习题答案(第三版)

C语言程序设计(第三版)习题答案习题一一、名词解释(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2(5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10二、简答题1. 设计程序时应遵循哪些基本原则?P4答:正确性、可靠性、简明性、有效性、可维护性、可移植性。
2. 算法具有哪些特点?答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
3. 算法的表示形式有哪几种?答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。
4. 结构化程序设计方法的三种基本结构是什么?答:顺序结构、选择结构和循环结构。
5. 传统流程图与N-S流程图最大的区别是什么?答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。
三、用传统流程图或N-S流程图表示求解以下问题的算法。
1. 从键盘输入10个整数,求出其中的最小数并输出。
2. 求1+2+3+…+100的值。
3. 求10~50的所有素数之和。
4. 求下列分段函数的值。
四、请参照本章例题,编写一个简单的C 程序,输出以下三行信息。
**************************Yangtze University**************************#include <stdio.h>void main(){printf("**************************\n");printf(" Yangtze University\n");printf("**************************\n");}4X-1 (X ≤1) 5(X-1)+6 (1<X<5) 6-3X (X ≥5)习题二一、选择题1~10: B C D C D D B C A A11~20: D A C D B D B A C D二、填空题1.字母 L 或字母 l2. %c(或字符) 、 %d(或整数)3.在程序运行过程中,其值可以在一定的范围内变化的量4.'\0'5.小数形式、指数形式6.关键字、预定义标识符、用户标识符7.字母、数字、下划线、数字8. 189. 2 、 1 、 3010.双精度实数或double11.赋值、逗号、 20 、 20 、 20 、 412. 4 、 4习题三一、选择题1~10: B C C B C C C D C C注:第4题答案D为: 10 22↙33↙二、填空题1. printf 、 scanf2. h3."%5d"4.'\0'5. e 、 E6. 67. s 、 c8. *9. - 、 +10. i三、编程题1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。
C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案第一章习题一、单项选择题1. C2. B3. B4. C5. D6. A7. C8. A二、填空题1. 判断条件2. 面向过程编程3. 结构化4. 程序5. 面向对象的程序设计语言6. 基本功能操作、控制结构7. 有穷性8. 直到型循环结构9. 算法10.可读性11.模块化12.对问题的分解和模块的划分习题一、单项选择题1. B2. D3. C4. B5. A6. A7. B8.C二、填空题1. 主2. C编译系统3. 函数、函数4. 输入输出5. 头6. .OBJ7. 库函数8. 文本第三章习题一、单项选择题1. D2. B3. A5. C6. D7. D8. B9. B10.C11.A12.D13.C14.C15.C16.A17.C18.C19.C20.D21.A22.D23.D24.D,A25.D26.A27.B二、填空题1. 补码2. 30810-±~ ) 308 10 , 15 —6 2. 308 10 -±( ~ ) 308 10 , 1563.逻辑4. 单目,自右向左5. 函数调用6.a或b(题目有错,小括号后面的c<=98改成(c>=97&&c<=98)就可以得到所给的答案了)7.8.65,89第四章习题一、单项选择题1. D2. C3. D4. A5. D6. B7. A8. C9. B10.B二、填空题1.一2.5.1690003.(1)-200 2500(2)i=-200,j=2500(3)2500200=-=ji4.a=98,b=765.000000,c=4321.000000 5. 10025.811.89234,10025.81按Enter键)1.89234,100(按Tab键)25.81(按Tab键)1.892346.0,0,37.38.scanf(" %lf %lf %lf",&a,&b,&c);9.13 13.000000 13.00000010.b=a;a=c;c=b;a=a+b;c=c-b;(对于本题来说,后者的答案更好,不仅使a 与c的值进行交换而且能保持中间变量b的值不发生改变)第五章习题一、单项选择题1. D2. C3. B4. B5. D6. A7. B8. D二、填空题1.非零,零k= =02.k= =03.if(abs(x)>4) Printf(“%d”,x);elseprintf(“error!”);4.if(x%2==1&&( (x>=1)&&(x<=10)||(x>=200&&x<=210))printf("%d",x);5.k=1(原题最后一行漏了个d,如果认为原题正确,则输出k=%。
《C语言程序设计》第三版课后答案

1.5请参照本章例题,编写一个C程序,输出以下信息:************Very Goodj!************解:main(){printf(" ************ \n");printf("\n");printf(" Very Good! \n");printf("\n");printf(" ************\n");}1.6编写一个程序,输入a b c三个值,输出其中最大者。
解:main(){int a,b,c,max;printf("请输入三个数a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("最大数为:%d",max);}第三章3.3 请将下面各数用八进制数和十六进制数表示:(1)10 (2)32 (3)75 (4)-617(5)-111 (6)2483 (7)-28654 (8)21003解:十八十六(10)=(12)=(a)(32)=(40)=20(75)=(113)=4b(-617)=(176627)=fd97-111=177621=ff912483=4663=963-28654=110022=901221003=51013=520b3.5字符常量与字符串常量有什么区别?解:字符常量是一个字符,用单引号括起来。
字符串常量是由0个或若干个字符而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\0'.3.6写出以下程序的运行结果:#include<stdio.h>void main(){char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c %c\n",c4,c5);解:程序的运行结果为:aabb cc abcA N3.7将"China"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母, 例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre". 请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并输出.main(){char c1="C",c2="h",c3="i",c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);}3.8例3.6能否改成如下:#include<stdio.h>void main(){int c1,c2;(原为 char c1,c2)c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}解:可以.因为在可输出的字符范围内,用整型和字符型作用相同. 3.9求下面算术表达式的值.(1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7)(2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5)3.10写出下面程序的运行结果:#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}解:结果: 9,11,9,10第4章4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得到以下的输出格式和结果,请写出程序要求输出的结果如下:a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1='a' or 97(ASCII)c2='B' or 98(ASCII)解:main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y=z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x); printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c' or %d(ASCII)\n",c1,c2);printf("c2='%c' or %d(ASCII)\n",c2,c2);}4.5请写出下面程序的输出结果.结果:575 767.856400,-789.12396267.856400 ,-789.12396267.86,-789.12,67.856400,-789.123962,67.856400,-789.123962 6.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,17777,ffff,-1COMPUTER, COM4.6用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',问在键盘上如何输入?main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d,&a,&b);scanf(" x=%f y=%e",&x,&y);scanf(" c1=%c c2=%c",&c1,&c2);}解:可按如下方式在键盘上输入:a=3 b=7x=8.5 y=71.82c1=A c2=a说明:在边疆使用一个或多个scnaf函数时,第一个输入行末尾输入的"回车"被第二个scanf函数吸收,因此在第二\三个scanf函数的双引号后设一个空格以抵消上行入的"回车".如果没有这个空格,按上面输入数据会出错,读者目前对此只留有一初步概念即可,以后再进一步深入理解.4.7用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=57.8,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f %f",&a,&b,&c1,&c2,&y,&z);解:main(){int a,b;float x,y,z;char c1,c2;scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);}运行时输入:10 20Aa1.5 -3.75 +1.5,67.8注解:按%5d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题十
一、单选题
1~5 DDDCC
6~10 AABDB
11~14 CADC
二、填空题
1、34 12
2、ARRAY a,b,c;
3、1 3
4、a c
5、(*b).day=? b->day=?
5、分析下列程序执行结果。
#include “stdio.h”
main()
{static struct s1
{char c[4],*s;
s1={“abc”,”def”};
static struct s2
{char *cp;struct s1 ss1;
}s2={“ghi”,{“jkl”,”mno”}};
printf(“%c%c\n”,s1.c[0],*s1.s); /*output ab */
printf(“%s%s\n”,s1.c,s1.s); /*output abcdef */
printf(“%s%s\n”,s2.cp,s2.ss1.s); /*output ghimno */
printf(“%s%s\n”,++s2.cp,++s2.ss1.s); /* output hino */
}
6、以下程序的功能是:读入一行字符(如:a,...,y,z),按输入时的逆序建立一个链式的结点序列,即
先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。
#define getnode(type)_________malloc(sizeof(type)) ( (struct node *))
main()
{struct node
{char info;
struct node *link;
}*top,*p;
char c;
top=NULL;
while((c=getchar())______________) (!='\n')
{p=getnode(struct node);
p->info=c;
p->link=top;
top=p;
}
while(top)
{_________________; (p=top)
top=top->link;
putchar(p->info);
free(p);
}
}
7、下面的函数将指针p2所指向的线性链表链接到p1所指向的的链表的末端。
假定p1所指向的链表非空。
#define NULL 0
struct link
{float a;
struct link *next;
};
concatenate(p1,p2)
struct list *p1,*p2;
{if(p1->next==NULL)
p1->next=p2;
else
concatenate(___________,p2); (p->next)
}
8、以下函数create用来建立一个带头结点的单项链表。
新产生的结点总是插入再链表的末尾。
单向链表
的头指针作为函数的返回值。
#include <stdio.h>
struct list
{char data;
struct list *list;
};
struct list *cteate()
{struct list *h,*p,*q;
char ch;
h=___________malloc(sizeof(struct list)); (struct list *)
p=q=h;
ch=getchar();
while(ch!='\n')
{p=____________malloc(sizeof(struct list)); (struct list *)
p->date=ch;
q->next=p;
q=p;
ch=getchar();
}
p->next='\0';
______________; (rerturn h)
}
三、编程题
1、成绩排序。
按学生的序号输入学生的成绩,按照分数由低到高的顺序输出学生的名次、该名次的分数、
相同名次的人数和学号;同名次的学号输出再同一行中,一行最多输出10 个学号。
#include "stdio.h"
struct student
{int n;
int mk;
}
main( )
{int i,j,k,count=0,no;
struct student stu[100],*s[100],*p;
printf("\nPleasse enter mark(if mark<0 is end) \n");
for(i=0;i<100;i++)
{ printf("No.%4d= =',i+1);
scanf("%d",&stu[i].mk);
s[i]=&stu[i];
stu[i].n=i+1;
if(stu[i].mk<=0)break;
for(j=0;j<I;j++)
for(k=j+1;k<=I;k++)
if(s[j]->mk<s[k]->mk)
{p=s[j];s[j]=s[k];s[k]=p;}
}
for(no=1,count=1,j=0;j<I;j++)
{if(s[j]->mk>s[k+1]->mk)
{printf("\nNo.%3d= =%4d%4d:",no,s[j]->mk,count);
for(k=j-count+1;k<=j;k++)
{ptintf("%3d",s[k]->n);
if((k-(j-count))%10= =0&&k!=j)
printf("\n ");
}
count=1;
no++;
}
else count++;
}
}
2、现在有教师(姓名、单位、住址、职称)和学生(姓名、班级、住址、入学成绩)的信息。
请在输入
10名教师和学生的信息后,按姓名进行排序,最后按排序后的顺序进行输出,对于教师要输出姓名、单位、住址和职称,对学生要输出姓名、班级、住址和入学成绩。
请编程实现。
/*p332_2.c*/
#include "string.h"
union dwbj
{char dw[20];
char bj[10];
};
union zcrxcj
{char zhich[10];
float rxcj;
};
struct inf
{int fl;/*0:teacher;1:student*/
char name[20];
union dwbj db;
char addr[30];
union zcrxcj zs;
};
main()
{int i,j;
struct inf info[10];
for(i=0;i<10;i++)
{printf("teacher:input 0;student:input 1\n");
scanf("%d",&info[i].fl);
printf("Input name of teacher or student:\n");
scanf("%s",info[i].name);
printf("Input dept of teacher or class of student:\n");
if(info[i].fl==0)scanf("%s",info[i].db.dw);
else scanf("%s",info[i].db.bj);
printf("Input address:\n");
scanf("%s",info[i].addr);
printf("job of teacher or suc of student\n");
if(info[i].fl==0)scanf("%s",info[i].zs.zhich);
else scanf("%f",&info[i].zs.rxcj);
}
for(i=0;i<10;i++)
{printf("%s,",info[i].name);
if(info[i].fl==0)printf("%s,",info[i].db.dw);
else printf("%s,",info[i].db.bj);
printf("%s,",info[i].addr);
if(info[i].fl==0)printf("%s\n",info[i].zs.zhich);
else printf("%f\n",info[i].zs.rxcj);
}
}。