好文档 - 专业文书写作范文服务资料分享网站

《C语言程序设计》课后习题答案(第四版)谭浩强23019

天下 分享 时间: 加入收藏 我要投稿 点赞

printf(\scanf(\

if ((n<=12) && (n>=1))

printf(\else

printf(\return 0; }

8-19-1

#include

#define NEWSIZE 1000 //指定开辟存区的最大容量 char newbuf[NEWSIZE]; //定义字符数组newbuf

char *newp=newbuf; //定义指针变量newp,指向可存区的始端

char *new(int n) //定义开辟存区的函数new,开辟存储区后返回指针

{if (newp+n<=newbuf+NEWSIZE) // 开辟区未超过newbuf数组的大小 {newp+=n; // newp指向存储区的末尾 return(newp-n); // 返回一个指针,它指向存区的开始位置 } else

return(NULL); // 当存区不够分配时,返回一个空指针 }

8-19-2

#include

#define NEWSIZE 1000 char newbuf[NEWSIZE];

char *newp=newbuf;

void free(char *p) //释放存区函数 {if (p>=newbuf && p< newbuf + NEWSIZE) newp=p; } 8-20

#define LINEMAX 20 /*定义字符串的最大长度*/ int main() {int i;

char **p,*pstr[5],str[5][LINEMAX];

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

pstr[i]=str[i]; /*将第i个字符串的首地址赋予指针数组 pstr 的第i个元素*/ printf(\ for (i=0;i<5;i++)

scanf(\ p=pstr; sort(p);

printf(\ for (i=0;i<5;i++)

printf(\}

sort(char **p) /*冒泡法对5个字符串排序函数*/ {int i,j;

char *temp; for (i=0;i<5;i++) {for (j=i+1;j<5;j++)

{if (strcmp(*(p+i),*(p+j))>0) /*比较后交换字符串地址*/ {temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } } }

return 0; } 8-21

#include int main()

{void sort(int **p,int n);

int i,n,data[20],**p,*pstr[20]; printf(\ scanf(\ for (i=0;i

pstr[i]=&data[i]; //将第i个整数的地址赋予指针数组 pstr 的第i个元素 printf(\ for (i=0;i

scanf(\ p=pstr; sort(p,n);

printf(\ for (i=0;i

printf(\ \

printf(\ return 0; }

void sort(int **p,int n) {int i,j,*temp;

for (i=0;i

{if (**(p+i)>**(p+j)) //比较后交换整数地址 {temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } } } }

第9章用户自己建立数据类型293 9.1定义和使用结构体变量293 9.1.1自己建立结构体类型293 9.1.2定义结构体类型变量 295

9.1.3结构体变量的初始化和引用297 9.2使用结构体数组300 9.2.1定义结构体数组300

9.2.2结构体数组的应用举例301 9.3结构体指针303

9.3.1指向结构体变量的指针303 9.3.2指向结构体数组的指针304

9.3.3用结构体变量和结构体变量的指针作函数参数306 9.4用指针处理链表309 9.4.1什么是链表 309

9.4.2建立简单的静态链表310 9.4.3建立动态链表311 9.4.4输出链表315 9.5共用体类型317

9.5.1什么是共用体类型317 9.5.2引用共用体变量的方式318 9.5.3共用体类型数据的特点319 9.6使用枚举类型323

9.7用typedef声明新类型名326 习题330

9-1-1

#include struct

{ int year; int month; int day; }date; int main() {int days;

printf(\

scanf(\ switch(date.month)

{ case 1: days=date.day; break; case 2: days=date.day+31; break; case 3: days=date.day+59; break; case 4: days=date.day+90; break; case 5: days=date.day+120; break; case 6: days=date.day+151; break; case 7: days=date.day+181; break; case 8: days=date.day+212; break; case 9: days=date.day+243; break; case 10: days=date.day+273; break; case 11: days=date.day+304; break; case 12: days=date.day+334; break; }

if ((date.year %4== 0 && date.year % 100 != 0

||date.year % 400 == 0) && date.month >=3) days+=1;

printf(\ return 0; }

9-1-2

#include struct

{ int year; int month; int day; }date; int main() {int i,days;

int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; printf(\

scanf(\

days=0;

for(i=1;i

if((date.year%4==0 && date.year0!=0 || date.year@0==0) && date.month>=3) days=days+1;

printf(\ return 0; }

9-2-1

#include struct y_m_d { int year; int month; int day; }date; int main()

{ int days(struct y_m_d date1); printf(\

scanf(\

printf(\ }

int days(struct y_m_d date1) {int sum;

switch(date1.month)

{case 1: sum=date1.day; break; case 2: sum=date1.day+31; break; case 3: sum=date1.day+59; break; case 4: sum=date1.day+90; break; case 5: sum=date1.day+120; break; case 6: sum=date1.day+151; break; case 7: sum=date1.day+181; break; case 8: sum=date1.day+212; break; case 9: sum=date1.day+243; break; case 10: sum=date1.day+273; break; case 11: sum=date1.day+304; break; case 12: sum=date1.day+334; break; }

if ((date1.year % 4 == 0 && date1.year % 100!=0|| date1.year % 400 == 0) && date1.month >=3) sum+=1;

《C语言程序设计》课后习题答案(第四版)谭浩强23019

printf(\scanf(\if((n=1))printf(\elseprintf(\return0;}8-19-1#include#defineNEWSIZE1000//指
推荐度:
点击下载文档文档为doc格式
87azb13lxw6x2111f20r4n7xz5ee5l00bm8
领取福利

微信扫码领取福利

微信扫码分享