C-Primer-Plus(第五版)全书源代码_第1页
C-Primer-Plus(第五版)全书源代码_第2页
C-Primer-Plus(第五版)全书源代码_第3页
C-Primer-Plus(第五版)全书源代码_第4页
C-Primer-Plus(第五版)全书源代码_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

//chapter01

/*

#include<stdio.h>

intmain(void)

(

intdogs;

printf("Howmanydogsdoyouhave?\n");

scanf(n%dn,Sdogs);

nn

printf(Soyouhave%ddog(s)!\nzdogs);

return0;

)

*/

/////////////////////////////////////////////////////////

/////////

/////////////////////////////////////////////////////////

IIIlliIII

//chapter02

//fathm_ft.c一一converts2fathomstofeet

/★

#include<stdio.h>

intmain(void)

intfeetzfathoms;

fathoms=2;

feet=6*fathoms;

printf("Thereare%dfeetin%dfathoms!\nn,feet,

fathoms);

nn

printf(YesAIsaid%dfeet!\n,6*fathoms);

return0;

)

*/

/////////////////////////////////////////////////////////

/////////

/*

#include<stdio.h>

intmain(void)//asimpleprogram

(

intnum;//defineavariablecallednum

num=1;//assignavaluetonum

printf(nIamasimplen);//usetheprintf()function

printf("computer.\nn);

printf("Myfavoritenumberis%dbecauseitis

first.\nn,num);

return0;

)*/

/////////////////////////////////////////////////////////

/////////

//two_func.c-aprogramusingtwofunctionsinonefile

/*

#include<stdio.h>

voidbutler(void);//ISO/ANSICfunctionprototyping

intmain(void)

(

printf("Iwillsummonthebutlerfunction.\n");

butler();

printf("Yes.BringmesometeaandwriteableCD-ROMS.\n");

return0;

)

voidbutler(void)//startoffunctiondefinition

{

printf("Yourang,sir?\n");

)

*/

/////////////////////////////////////////////////////////

/////////

/////////////////////////////////////////////////////////

/////////

//chapter03数据和C

/*

//altnames.c一一portablenamesforintegertypes

#include<stdio.h>

#include<inttypes.h>//supportsportabletypesthe

systemdoesn*tcontaintheheaderfile

intmain(void)

(

intl6_tmel6;//mel6a16-bitsignedvariable

mel6=4593;

printf("First,assumeintl6_tisshort:n);

printf("mel6=%hd\n",mel6);

printf("Next,let1snotmakeanyassumptions.\nn);

printf("Instead,usea\"macro\nfrominttypes.h:n);

printf("mel6=%"PRIdl6”\n",mel6);

return0;

)

*/

/////////////////////////////////////////////////////////

/////////

/*

//bases.c一一prints100indecimal,octal,andhex

#include<stdio.h>

intmain(void)

intx=100;

printf("dec=%d;octal=%o;hex=%x\n",x,x,x);

printf("dec=%d;octal=%#o;hex=%#x\nn,x,x,x);

//%#十六进制前显示Ox//八进制数前显示。

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/*

//charcode.c-displayscodenumberforacharacter

#include<stdio.h>

intmain(void)

(

charch;

printf(nPleaseenteracharacter.\nn);

n

scanf("%cr&ch);

printf("Thecodefor%cis%d.\n",ch,ch);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

*

//printl,c-displayssomepropertiesofprintf()

#include<stdio.h>

intmain(void)

intten=10;

inttwo=2;

printf("Doingitright:n);

n

printf(%dminus%dis%d\n",ten,2rten-two);

printf("Doingitwrong:");

printf("%dminus%dis%d\nn,ten);//forgot2arguments

return0;

)

*

/////////////////////////////////////////////////////////

/////

/*print2.c-moreprintf()properties*/

*

#include<stdio.h>

intmain(void)

unsignedintun=3000000000;//systemwith32-bitint

shortend=200;//and16-bitshort

longbig=65537;

longverybig=12345678908642;

//c也可以使用前缀h来表示short类型。

〃因此%1«1显示一个十进制的short整型。%ho为八进制形式。

n

printf(un=%uandnot%d\n",unrun);

nn

printf(end=%hdand%d\n,endzend);

printf(nbig=%ldandnot%hd\nn,big,big);

printf(nverybig=%lldandnot%ld\n”,verybig,verybig);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/*showf_pt.c——displaysfloatvalueintwoways*/

/*

#include<stdio.h>

intmain(void)

(

floataboat=32000.0;

doubleabet=2.14e9;

longdoubledip=5.32e-5;

printf("%fcanbewritten%e\nn,aboat,aboat);

printf("%fcanbewritten%e\n",abet,abet);

n

printf("%fcanbewritten%e\nrdip,dip);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/*toobig.c-exceedsmaximumintsizeonoursystem*/

/*

#include<stdio.h>

intmain(void)

(

inti=2147483647;

unsignedintj=4294967295;

nn

printf(%d%d%d\nzi,i+lzi+2);

printf(n%u%u%u\nn,j,j+1,j+2);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/*typesize.c一一printsouttypesizes*/

/*

#include<stdio.h>

intmain(void)

(

//c99providesa%zdspecifierforsizes

printf("Typeinthasasizeof%ubytes.\n",sizeof(int));

//4bytes

printf("Typecharhasasizeof%ubytes.\nn,

sizeof(char));//1bytes

printf(nTypelonghasasizeof%ubytes.\nn,

sizeof(long));//4bytes

n

printf("Typedoublehasasizeof%ubytes.\nr

sizeof(double));//8bytes

return0;

)

*/

/////////////////////////////////////////////////////////

11III

/////////////////////////////////////////////////////////

/////

//chapter04字符串的格式化输入/输出

//defines.c一一usesdefinedconstantsfromlimit.handfloat.

//thisisuseful,youcanknowsomelimitsofthesystem

/*

#include<stdio.h>

#include<limits.h>//integerlimits

#include<float.h>//floating-pointlimits

intmain(void)

(

printf(nSomenumberlimitsforthissystem:\nn);

printf("Biggestint:%d\nn,INT_MAX);

printf(nSmallestlonglong:%lld\n",LONG_MIN);

printf("Onebyte=%dbitsonthissystem.\nn,CHAR_BIT);

printf("Largestdouble:%e\nn,DBL_MAX);

printf("Smallestnormalfloat:%e\nn,FLT_MIN);

printf("floatprecision=%ddigits\n"rFLT_DIG);

nn

printf(floatepsilon=%e\nzFLT_EPSILON);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/★flags.c--illustratessomeformattingflags★/

/*

#include<stdio.h>

intmain(void)

nn

printf(%x%X%#x\n,31z31,31);

nn

printf(**%d**%d**%d**\nz42,42,-42);

printf("**%5d**%5.3d**%05d**%05.3d**\nn,6,6,6,6);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/*floatcnv.c一一mismatchedfloating-pointconversions*/

/*

#include<stdio.h>

intmain(void)

(

floatnl=3.0;

doublen2=3.0;

longn3=2000000000;

longn4=1234567890;

printf("%.Ie%.Ie%.Ie%.le\nn,nl,n2,n3,n4);

printf(n%ld%ld\nn,n3,n4);

printf(n%ld%ld%ld%ld\nn,nl,n2,n3,n4);

return0;

}

*/

/////////////////////////////////////////////////////////

/////

//floats.c-somefloating-pointcombinations

/*

#include<stdio.h>

intmain(void)

(

constdoubleRENT=3852.99;//const-styleconstant

printfRENT);

printf("*%e*\n",RENT);

printf("*%4.2f*\n",RENT);

printf("*%3.1f*\n",RENT);//take

carehere

printf("*%10.3f*\n",RENT);

printf("*%10.3e*\n",RENT);

printf("*%+4.2f*\n",RENT);

printf("*%010,2f*\n",RENT);

return0;

)

*/

/////////////////////////////////////////////////////////

/////

/*intconv.c一一somemismatchedintegerconversions★/

/*

#include<stdio.h>

#definePAGES336

#defineWORDS65618

intmain(void)

(

shortnum=PAGES;

shortmnum=S;

printf(nnumasshortandunsignedshort:%hd%hu\nn,num,

num);

printf(n-numasshortandunsignedshort:%hd%hu\nn,

mnum,

mnum);

printf("numasintandchar:%d%c\n",num,num);

printf("WORDSasint,short,andchar:%d%hd%c\n",

WORDS,WORDS,WORDS);

return0;

)

*/

/////////////////////////////////////////////////////////

////

/*longstrg.c一一printinglongstrings*/

/*

#include<stdio.h>

intmain(void)

//takecareofthisprogram

(

printf("Here'sonewaytoprintan);

printf("longstring.\n");

printf("Here1sanotherwaytoprinta\

longstring.\nn);

printf("Here1sthenewestwaytoprinta”

nlongstring.\nn);//ANSIC

return0;

)

*/

/////////////////////////////////////////////////////////

////

/*praisel.c--usesanassortmentofstrings*/

/*

#include<stdio.h>

#definePRAISEnWhatasupermarvelousname!n

intmain(void)

charname[40];

printf("What1syourname?\n");

scanf(n%sH,name);

printf("Hello,%s.%s\nn,name,PRAISE);

H

printf("Hello,%s.%s\nrname,"verygood");

//takecareofhere

return0;

)

*/

/////////////////////////////////////////////////////////

IIII

/★praise2.c*/

/*

#include<stdio.h>

#include<string.h>//providesstrlen()prototype

#definePRAISEnWhatasupermarvelousname!n

intmain(void)

(

charname[40];

printf("Whatfsyourname?\n");

scanf(n%sn,name);

printf("Hello,%s.%s\nn,name,PRAISE);

printf(nYournameof%dlettersoccupies%dmemory

n

cells.\nr

strlen(name)rsizeofname);

printf("Thephraseofpraisehas%dletters”,

strlen(PRAISE));

printf(nandoccupies%dmemorycells.\n",sizeofPRAISE);

return0;

)

*/

/////////////////////////////////////////////////////////

////

/*printout.c一一usesconversionspecifiers*/

/*

#include<stdio.h>

#definePI3.141593

intmain(void)

(

intnumber=5;

floatespresso=13.5;

intcost=3100;

nn

printf(The%dCEOsdrank%fcupsofespresso.\nrnumberz

espresso);

n

printf("Thevalueofpiis%f.\nrPI);

printf(nFarewell!thouarttoodearformy

possessing,\nn);

printf(n%c%d\nn,*$1,2*cost);

return0;

)

*/

/////////////////////////////////////////////////////////

Illi

/*prntval.c一一findingprintf()1sreturnvalue★/

/*

#include<stdio.h>

intmain(void)

(

intbph2o=212;

intrv;

rv=printf("%dFiswater1sboilingpoint.\nn,bph2o);

nn

printf(Theprintf()functionprinted%dcharacters.\nr

IIfindingprintf()1sreturnvalue==howmanycharacters

printed

rv);

return0;

)

*/

/////////////////////////////////////////////////////////

////

/*skip2.c一一skipsoverfirsttwointegersofinput*/

/*

#include<stdio.h>

intmain(void)

(

intn;

printf("Pleaseenterthreeintegers:\nn);

scanf(n%*d%*d%d”,&n);

//*meansskip

printf(nThelastintegerwas%d\n",n);

return0;

)

*/

/////////////////////////////////////////////////////////

Illi

/*strings.c一一stringformatting*/

/*

#include<stdio.h>

#defineBLURB"Authenticimitation!n

intmain(void)

(

printf(n/%2s/\nn,BLURB);

//stilldon'tunderstandclearly

nn

printf(/%24s/\nzBLURB);

printf(n/%24.5s/\nn,BLURB);

printf(n/%-24.5s/\nn,BLURB);

return0;

)

*/

//////////////////////////////////////////

/*varwid.c一一usesvariable-widthoutputfield*/

/*

#include<stdio.h>

intmain(void)

(

unsignedwidth,precision;

intnumber=256;

doubleweight=242.5;

printf(nWhatfieldwidth?\nn);

scanf("%d",fiwidth);

printf(nThenumberis:%*d:\nn,width,number);

printf(nNowenterawidthandaprecision:\nn);

//stilldon'tunderstandclearly

scanf("%d%d"r&width,fiprecision);

printf("Weight=%*.*f\nn,width,precision,weight);

//%*.*f%24.5swhatdoesismean?

printf("Done!\n");

return0;

)

*/

111111111111111111111111111111111111111111

/*width.c--fieldwidths*/

/*

#include<stdio.h>

#definePAGES931

intmain(void)

{

printf("*%d*\n",PAGES);//stillwillprint931

printf("*%2d*\n",PAGES);//stillwillprint

931

printf("*%10d*\n",PAGES);

printf("*%-10d*\n",PAGES);

return0;

)

*/

//////////////////////////////////////////

/////////////////////////////////////////////////////////

Illi

//chapter05运算符、表达式和语句

/*add_one.c一一incrementing:prefixandpostfix*/

/*

#include<stdio.h>

intmain(void)

(

intultra=0,super=0;

while(super<5)

{

super++;

++ultra;

printf("super=%d,ultra=%d\n",superrultra);

)

return0;

)

*/

///////////////////////////////////////

/*addemup.c一一fourkindsofstatements*/

/*

#include<stdio.h>

intmain(void)//findssumoffirst20integers

intcountrsum;

intnum=O;

count=0;

sum=0;

while(count++<20)//youshouldtakecare

of

{

num++;

sum=sum+count;

printf(ncount=%dsum=%d\nn,count,sum);

)

printf("thetimeofloopis%d\n",num);

return0;

)

*/

/////////////////////////////////////////////////////////

/////////////

/*bottles.c一一countingdown*/

/*

#include<stdio.h>

#defineMAX10

intmain(void)

intcount=MAX+1;

while(——count>0){

printf(n%dbottlesofspringwateronthewall,”

n%dbottlesofspringwater!\nn,count,count);

printf("Takeonedownandpassitaround,\nn);

n

printf("%dbottlesofspringwater!\n\nrcount-1);

)

return0;

)

*/

/////////////////////////////////////////////////////////

/////////////

/*shoesl.c一一convertsashoesizetoinches*/

/*

#include<stdio.h>

#defineADJUST7.64

#defineSCALE0.325

intmain(void)

(

doubleshoe,foot;

shoe=9.0;

foot=SCALE*shoe+ADJUST;

printf("Shoesize(men1s)footlength\nn);

printf(n%10.If%15.2finches\nn,shoe,foot);

return0;

)

*/

///////////////////////////////////////////////////////

/*shoes2.c——calculatesfootlengthsforseveralsizes*/

/*

#include<stdio.h>

#defineADJUST7.64

#defineSCALE0.325

intmain(void)

(

doubleshoe,foot;

printf(nShoesize(men*s)footlength\nn);

shoe=3.0;

while(shoe<18.5)

(

foot=SCALE*shoe+ADJUST;

printf(n%10.If%15.2finches\nn,shoe,foot);

shoe=shoe+1.0;

)

printf(nIftheshoefits,wearit.\nn);

return0;

)*/

/////////////////////////////////////////////////////////

/////////////

/*golf.c——golftournamentscorecard*/

/*

#include<stdio.h>

intmain(void)

(

intjane,tarzan,cheeta;

cheeta=tarzan=jane=68;

printf(ncheetatarzanjane\nn);

printf("Firstround

score%4d%8d%8d\nn,cheeta,tarzan,jane);

return0;

)

*/

///////////////////////////////////////////////

/*squares.c一一producesatableoffirst20squares*/

/*//havefun,you

canlearnmuch

#include<stdio.h>

intmain(void)

intnum=1;

while(num<21)

{

printf(n%4d%6d\nn,num,num*num);

num=num+1;

)

return0;

)

*/

///////////////////////////////////////////////

/*wheat.c——exponentialgrowth*/

/*//棋盘赠大

米,国王傻眼啦

#include<stdio.h>

#defineSQUARES64//squaresonacheckerboard

#defineCROP1E15//USwheatcropingrains

intmain(void)

(

doublecurrent,total;

intcount=1;

printf("squaregrainstotaln);

printf("fractionof\nn);

printf("addedgrainsn);

printf("UStotal\nn);

total=current=1.0;//startwithonegrain

printf(n%4d%13.2e%12.2e%12.2e\nn,count,current,

total,total/CROP);

while(count<SQUARES)

(

count=count+1;

current=2.0*current;

//doublegrainsonnextsquare

total=total+current;//updatetotal

printf("%4d%13.2e%12.2e%12.2e\nn,count,current,

total,total/CROP);

)

printf("That1sall.\nH);

return0;

)

*/

///////////////////////////////////////////////

/*divide.c——divisionswehaveknown*/

/*

#include<stdio.h>

intmain(void)

printf("integerdivision:5/4is%d\nn,5/4);

printf("integerdivision:6/3is%d\n\6/3);

printf("integerdivision:7/4is%d\n\7/4);

printf(nintegerdivision:7/-4

7/-4);//print-1

printf("integerdivision:-7/4

-7/4);//print-1

printf("floatingdivision:7./4.is%1.2f\n”,7./4.)

printf("mixeddivision:7./4is%1.2f\n“,7./4);

printf(nmixeddivision:-7./4is%1.2f\nn,-7./4);/

print-1.75

printf("mixeddivision:7./-4is%1.2f\nH,7./-4)

//print-1.75

printf("mixeddivision:-7・/-4is%1.2f\nn,

-7・/-4);

return0;

)

*/

///////////////////////////////////////////////

//sizeof.c——usessizeofoperator

//usesC99%zmodifier一一try%uor%luifyoulack%zd

//%zdon11work

/*

#include<stdio.h>

intmain(void)

intn=0;

size_tintsize;

intsize=sizeof(int);

printf(nn=%d,nhas%ubytes;allintshave%ubytes.\nn,

n,sizeofnzintsize);

return0;

)

*/

///////////////////////////////////////////////

/*post_pre.c——postfixvsprefix*/

/*

#include<stdio.h>

intmain(void)

(

inta=1,b=1;

intaplus,plusb;

aplus=a++;

plusb=++b;

printf("aaplusbplusb\nn);

printf("%ld%5d%5d%5d\n"ra,aplus,b,plusb);//2

122

return0;

)

*/

///////////////////////////////////////////////

/*convert.c一一automatictypeconversions*/

/*

#include<stdio.h>

intmain(void)

(

charch;

inti;

floatfl;

fl=i=ch=1C1;

n

printf("ch=%c,i=%d,fl=%2.2f\n,chfi,fl);

ch=ch+1;

i=fl+2*ch;

fl=2.0*ch+i;

printf(nch=%c,i=%d,fl=%2.2f\nn,ch,i,fl);

ch=5212205.17;//print-

stillconfused

printf("Nowch=%c\nn,ch);

return0;

)*/

///////////////////////////////////////////////

/*pound.c一一definesafunctionwithanargument

/*

#include<stdio.h>

voidpound(intn);

intmain(void)

(

inttimes=5;

charch=1!1;//ASCIIcodeis33

floatf=6.0;

pound(times);

pound(ch);//charautomatically->int

pound((int)f);//castforcesf->int

return0;

)

voidpound(intn)

while(n——>0)

printf(n#n);

printf(n\nn);

)

*/

///////////////////////////////////////////////

///////////////////////////////////////////////

//chapter06C控制语句:循环

/*summing.c--sumsintegersenteredinteractively*/

/*

#include<stdio.h>

intmain(void)

(

longnum;

longsum=0L;

intstatus;

printf("Pleaseenteranintegertobesummedn);

printf(H(qtoquit):n);

status=scanf(n%ldn,&num);

while(status==1)//==means"isequalton

(

sum=sum+num;

printf("Pleaseenternextinteger(qtoquit):n);

status=scanf(n%ldn,&num);

)

n

printf("Thoseintegerssumto%ld.\nrsum);

return0;

)

*/

///////////////////////////////////////////////

/*t_and_f.c-一trueandfalsevaluesinC*/

/*

#include<stdio.h>

intmain(void)

(

inttrue_val,false_val;

true_val=(10>2);

false_val=(10==2);

printf("true=%d;false=%d\nn,true_val,false_val);

return0;

)

*/

///////////////////////////////////////////////

//boolean.c——usinga_Boolvariable

/*

#include<stdio.h>

intmain(void)

(

longnum;

longsum=OL;

intinput_is_good;

printf("Pleaseenteranintegertobesummedn);

printf(0(qtoquit):n);

input_is_good=(scanf(n%ldn,&num)==1);

while(input_is_good)

{

sum=sum+num;

printf("Pleaseenternextinteger(qtoquit):n);

n

input_is_good=(scanf(0%ldr&num)==1);

)

printf("Thoseintegerssumto%ld.\n",sum);

return0;

}

*/

///////////////////////////////////////////////

//sweetiel.c一一acountingloop

/*

#include<stdio.h>

intmain(void)

constintNUMBER=22;

intcount=1;//initialization

while(count<=NUMBER)//test

(

printf(nBemyValentine!\nn);//action

count++;

)

printf(nthetimeofloopis%d\nn,一一count);

return0;

)

*/

///////////////////////////////////////////////

//sweetie2.c一一acountingloopusingfor

/*

#include<stdio.h>

intmain(void)

(

constintNUMBER=22;

intcount;

for(count=1;count<=NUMBER;count++)

printf(nBemyValentine!\nn);

nn

printf(thetimeofloopIs%d\nr一一count);

return0;

)

*/

//////////////////////////////////////////////

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论