C Primer Plus 第十章程序清单……2015.5.3

本文展示了C Primer Plus第十章中的多个程序实例,这些实例覆盖了数组的定义与使用、指针操作及多维数组等主题,旨在帮助读者理解和掌握C语言中函数与数组的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C Primer Plus 

           第五版

第十章 函数和数组

程序清单10.1
#include<stdio.h>
#define MONTHS 12
int main(void)
{
int days[MONTHS]=


{31,28,31,31,30,31,31,30,31,30,31,31};
int index;
for(index=0;index<MONTHS;index++)
{
printf("Month %d has %2d days\n",index


+1,days[index]);
}
return 0;
}
 
 程序清单10.2
#include<stdio.h>
#define SIZE 4
int main(void)
{
int no_data[SIZE];
int i;
printf("%2s %14s\n","i");
for(i=0;i<SIZE;i++)
{
printf("%2d%14d\n",no_data[i]);
}
return 0;
}


程序清单10.3
 #include<stdio.h>
#define SIZE 4
int main(void)

   int some_data[SIZE]={12,21};
   int i=0;
    for(i=0;i<SIZE;i++)
     printf("%d\n",some_data[i]);
return 0;
}
 
 


程序清单10.4
#include<stdio.h>
int main(void)
{
const int day[ ]={1,2,3,4,5,6,67,12,32};
int index;
for(index=0;index<sizeof(day)/sizeof(day


[0]);index++)
    
    printf("%d\n",day[index]);
    
    
return 0;
}




程序清单10.5
#include<stdio.h>
#define MONTHS 12
int main(void)
{
int days[MONTHS]={31,28,[4]=31,30,31,[5]=8,9,[8]


=10};
int i;
for(i=0;i<MONTHS;i++)
{
printf("%d\n",days[i]);
}
return 0;
}


程序清单 10.6
#include<stdio.h>
#define SIZE 4
int main(void)
{
int value1=44;
int arr[SIZE];
int value2=88;
int i;
printf("value1=%d,value2=%d",value1,value2);
for(i=-1;i<=SIZE;i++)
arr[i]=2*i+i;
for(i=-1;i<7;i++)
 printf("%2d %d\n",i,arr[i]);
 printf("value1=%d,value2=%d",value1,value2);
 return 0;

程序清单10.7  残篇
#include<stdio.h>
#define MONTHS 12
#define YEARS 2
int main(void)
{
const float rain[YEARS][MONTHS]=


{{1,2,3,4,5,6,7,8,9,12,12,3,4},


{1,2,32,4,545,4,64,575,132,232,3}
};
int year,month;
float subtot,total;
printf("Year RAINFALL\n");
for(year=0,total=0;year<YEARS;year++)
{
for(month=0,subto0;month<MONTHS;month++)
su
}
}
程序清单10.8
#include<stdio.h>
 #define SIZE 4
 int main(void)
 {
  short dates[SIZE];
  short *pti;
  short index;
  double bills[SIZE];
  double * ptf;
  pti=dates;
  ptf=bills;
  printf("%23s %10s\n","short","double");
  for(index=0;index<SIZE;index++)
   printf("pointers+%d: %p %10p\n",index,pti


+index,ptf+index);
   return 0;
 }


程序清单10.9
#include<stdio.h>
 #define MONTHS 12
 int main(void)
 {
 
  int  index;
  int days[MONTHS]={1,2,3,4,2,3,4,5,6,12,34,34};
   
  
  for(index=0;index<MONTHS;index++)
   printf("Month has %2d: has  %d\n",index+1,*


(days+index));
   return 0;
 }


程序清单10.10
#include<stdio.h>
 #define SIZE 10
 int sum(int ar[],int n);
 int main(void)
 {
 
  int  index;
  int marbles[SIZE ]={1,2,3,4,2,3,4,5,6,12};
  long answer;
  answer=sum(marbles,SIZE);
  printf("The total number of marbles is %ld.


\n",answer);
  printf("The size of marbles is %2d bytes.


\n",sizeof marbles);
  
    
   return 0;
 }
 int sum(int ar[],int n)
 {
  int i,total=0 ;
  printf("%d   %d\n",i,total);
  for(i=0;i<n;i++)
  total+=ar[i];
  printf("The size of ar is %2d bytes.\n",sizeof 


ar);
  return total;
 }
程序清单10.11
#include<stdio.h>
 #define SIZE 10
 int sum(int *ar ,int *end);
 int main(void)
 {
 
  int  index;
  int marbles[SIZE ]={1,2,3,4,2,3,4,5,6,12};
  long answer;
  answer=sum(marbles,marbles+SIZE);
  printf("The total number of marbles is %ld.


\n",answer);
  printf("The size of marbles is %2d bytes.


\n",sizeof marbles);
  
    
   return 0;
 }
 int sum(int *ar ,int* end)
 {
  int i,total=0 ;
  for(i=0;ar+i<end;i++)
  total+=*(ar+i);
 // printf("The size of ar is %2d bytes.\n",sizeof 


ar);
  return total;
 }


程序清单10.12


#include<stdio.h>
int data[2]={100,200};
int moredata[2]={300,400};
int main(void)
{
int *p1,*p2,*p3;
p1=p2=data;
p3=moredata;
printf(" *p1=%d,    *p2=%d,   *p3=%d


\n",*p1,*p2,*p3);
printf(" *p1++=%d,    *++p2=%d,   (*p3)++=%d


\n",*p1++,*++p2,(*p3)++);
printf(" *p1=%d,    *p2=%d,   *p3=%d


\n",*p1,*p2,*p3);
return 0;
}


10.13
#include<stdio.h>
int main(void)
{
int urn[5]={100,200,300,400,500};
int *ptr1,*ptr2,*ptr3;
ptr1=urn;
ptr2=&urn[2];
printf("ptr1=%p,*ptr1=%d, &ptr1=%p


\n",ptr1,*ptr1,&ptr1);
ptr3=ptr1+4;
printf("ptr1+4=%p,*(ptr4+3)=%d


\n",ptr1,*ptr1,&ptr1);
ptr2--;
printf("ptr2=%p,*ptr2=%d,&ptr2=%p


\n",ptr2,*ptr2,&ptr2);
return 0;
}


10.14
#include<stdio.h>
int main(void)
{
int zippo[4][2]={{2,4},{6,8},{1,3},{5,7}};
printf("zippo=%p  zippo+1=%p  \n",zippo,zippo+1);
printf("zippo[0]=%p  zippo[0]+1=%p  \n",zippo


[0],zippo[0]+1);
printf("zippo[0][0]=%d   \n ",zippo[0][0]);
printf("*zippo[0] =%d    \n",*zippo[0] );
return 0;
 
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值