CPrimerPlus第五版全书源代码.docx
《CPrimerPlus第五版全书源代码.docx》由会员分享,可在线阅读,更多相关《CPrimerPlus第五版全书源代码.docx(90页珍藏版)》请在冰豆网上搜索。
CPrimerPlus第五版全书源代码
//chapter01
/*
#include
intmain(void)
{
intdogs;
printf("Howmanydogsdoyouhave?
\n");
scanf("%d",&dogs);
printf("Soyouhave%ddog(s)!
\n",dogs);
return0;
}
*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//chapter02
//fathm_ft.c--converts2fathomstofeet
/*
#include
intmain(void)
{
intfeet,fathoms;
fathoms=2;
feet=6*fathoms;
printf("Thereare%dfeetin%dfathoms!
\n",feet,fathoms);printf("Yes,Isaid%dfeet!
\n",6*fathoms);
return0;
}
*/
//////////////////////////////////////////////////////////////////
/*
#include
intmain(void)//asimpleprogram
{
intnum;//defineavariablecallednum
num=1;//assignavaluetonum
printf("Iamasimple");//usetheprintf()functionprintf("computer.\n");
printf("Myfavoritenumberis%dbecauseitisfirst.\n",num);return0;
}*/
//////////////////////////////////////////////////////////////////
//two_func.c--aprogramusingtwofunctionsinonefile
/*#include
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
the
#include//supportsportabletypesthesystemdoesn'tcontainheaderfile
intmain(void)
{
int16_tme16;//me16a16-bitsignedvariable
me16=4593;
printf("First,assumeint16_tisshort:
");
printf("me16=%hd\n",me16);
printf("Next,let'snotmakeanyassumptions.\n");printf("Instead,usea\"macro\"frominttypes.h:
");
printf("me16=%"PRId16"\n",me16);
return0;
}
*/
//////////////////////////////////////////////////////////////////
/*
//bases.c--prints100indecimal,octal,andhex
#include
intmain(void)
{
intx=100;
printf("dec=%d;octal=%o;hex=%x\n",x,x,x);
printf("dec=%d;octal=%#o;hex=%#x\n",x,x,x);
//%#十六进制前显示Ox//八进制数前显示o
return0;
}
*/
//////////////////////////////////////////////////////////////
/*
//charcode.c-displayscodenumberforacharacter
#include
intmain(void)
{
charch;
printf("Pleaseenteracharacter.\n");
scanf("%c",&ch);
printf("Thecodefor%cis%d.\n",ch,ch);
return0;
}
*/
//////////////////////////////////////////////////////////////
/*
//print1.c-displayssomepropertiesofprintf()
#include
intmain(void)
{
intten=10;
inttwo=2;
printf("Doingitright:
");
printf("%dminus%dis%d\n",ten,2,ten-two);
printf("Doingitwrong:
");
printf("%dminus%dis%d\n",ten);//forgot2arguments
return0;
}
*/
//////////////////////////////////////////////////////////////
/*print2.c-moreprintf()properties*/
/*
#include
intmain(void)
{
unsignedintun=00;//systemwith32-bitint
shortend=200;//and16-bitshort
longbig=65537;
longverybig=908642;
//C也可以使用前缀h来表示short类型。
//因此%hd显示一个十进制的short整型。
%ho为八进制形式。
printf("un=%uandnot%d\n",un,un);
printf("end=%hdand%d\n",end,end);
printf("big=%ldandnot%hd\n",big,big);
printf("verybig=%lldandnot%ld\n",verybig,verybig);
return0;
}
*/
//////////////////////////////////////////////////////////////
/*showf_pt.c--displaysfloatvalueintwoways*/
/*
#include
intmain(void)
{
floataboat=32000.0;
doubleabet=2.14e9;
longdoubledip=5.32e-5;
printf("%fcanbewritten%e\n",aboat,aboat);
printf("%fcanbewritten%e\n",abet,abet);
printf("%fcanbewritten%e\n",dip,dip);
return0;
}
*/
//////////////////////////////////////////////////////////////
/*toobig.c-exceedsmaximumintsizeonoursystem*/
/*
#include
intmain(void)
{
inti=47;
unsignedintj=95;
printf("%d%d%d\n",i,i+1,i+2);
printf("%u%u%u\n",j,j+1,j+2);
return0;
}
*/
//////////////////////////////////////////////////////////////
/*typesize.c--printsouttypesizes*/
/*
#include
intmain(void)
{
//c99providesa%zdspecifierforsizes
printf("Typeinthasasizeof%ubytes.\n",sizeof(int));//4bytes
printf("Typecharhasasizeof%ubytes.\n",sizeof(char));//1bytesprintf("Typelonghasasizeof%ubytes.\n",sizeof(long));//4bytesprintf("Typedoublehasasizeof%ubytes.\n",sizeof(double));//8bytesreturn0;
}
*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//thisis
//chapter04字符串的格式化输入/输出//defines.c--usesdefinedconstantsfromlimit.handfloat.
useful,youcanknowsomelimitsofthesystem
/*
#include
#include//integerlimits
#include//floating-pointlimits
intmain(void)
{
printf("Somenumberlimitsforthissystem:
\n");printf("Biggestint:
%d\n",INT_MAX);
printf("Smallestlonglong:
%lld\n",LONG_MIN);printf("Onebyte=%dbitsonthissystem.\n",CHAR_BIT);printf("Largestdouble:
%e\n",DBL_MAX);
printf("Smallestnormalfloat:
%e\n",FLT_MIN);printf("floatprecision=%ddigits\n",FLT_DIG);printf("floatepsilon=%e\n",FLT_EPSILON);return0;
}
*////////////////////////////////////////////////////////////////*flags.c--illustratessomeformattingflags*/
/*
#include
intmain(void)
{
printf("%x%X%#x\n",31,31,31);printf("**%d**%d**%d**\n",42,42,-42);printf("**%5d**%5.3d**%05d**%05.3d**\n",6,6,6,6);
return0;
}
*///////////////////////////////////////////////////////////////
/*floatcnv.c--mismatchedfloating-pointconversions*/
/*
#includeintmain(void)
{
floatn1=3.0;
doublen2=3.0;
longn3=00;
longn4=90;printf("%.1e%.1e%.1e%.1e\n",n1,n2,n3,n4);
printf("%ld%ld\n",n3,n4);
printf("%ld%ld%ld%ld\n",n1,n2,n3,n4);
return0;
}
*/
//////////////////////////////////////////////////////////////
//floats.c--somefloating-pointcombinations
/*
#include
intmain(void)
{
constdoubleRENT=3852.99;//const-styleconstant
printf("*%f*\n",RENT);
printf("*%e*\n",RENT);
printf("*%4.2f*\n",RENT);
printf("*%3.1f*\n",RENT);//takecarehereprintf("*%10.3f*\n",RENT);
printf("*%10.3e*\n",RENT);printf("*%+4.2f*\n",RENT);
printf("*%010.2f*\n",RENT);
return0;
}
*/
//////////////////////////////////////////////////////////////
/*intconv.c--somemismatchedintegerconversions*/
/*
#include
#definePAGES336
#defineWORDS65618
intmain(void)
{
shortnum=PAGES;
shortmnum=-PAGES;
printf("numasshortandunsignedshort:
%hd%hu\n",num,
num);
printf("-numasshortandunsignedshort:
%hd%hu\n",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
intmain(void)
{
printf("Here'sonewaytoprinta");
printf("longstring.\n");
printf("Here'sanotherwaytoprinta\
longstring.\n");
printf("Here'sthenewestwaytoprinta"
"longstring.\n");//ANSIC
return0;
}
*/
/////////////////////////////////////////////////////////////
/*praise1.c--usesanassortmentofstrings*/
/*
#include
#definePRAISE"Whatasupermarvelousname!
"
intmain(void)
{
charname[40];
printf("What'syourname?
\n");
scanf("%s",name);printf("Hello,%s.%s\n",name,PRAISE);
printf("Hello,%s.%s\n",name,"verygood");
return0;
}
*/
/////////////////////////////////////////////////////////////
/*praise2.c*/
/*
#include
#include//providesstrlen()prototype
//takecareofthisprogram
//takecareofhere
#definePRAISE"Whatasupermarvelousname!
"intmain(void)
charname[40];printf("What'syourname?
\n");scanf("%s",name);printf("Hello,%s.%s\n",name,PRAISE);printf("Yournameof%dlettersoccupies%dmemorycells.\n",strlen(name),sizeofname);
printf("Thephraseofpraisehas%dletters",strlen(PRAISE));
printf("andoccupies%dmemorycells.\n",sizeofPRAISE);return0;
}
*//////////////////////////////////////////////////////////////
/*printout.c--usesconversionspecifiers*/
/*
#include
#definePI3.141593
intmain(void)
{
intnumber=5;
floatespresso=13.5;
intcost=3100;
printf("The%dCEOsdrank%fcupsofespresso.\n",number,espresso);
printf("Thevalueofpiis%f.\n",PI);printf("Farewell!
thouarttoodearformypossessing,\n");printf("%c%d\n",'$',2*cost);
return0;
}
*//////////////////////////////////////////////////////////////
/*prntval.c--findingprintf()'sreturnvalue*/
/*
#include
intmain(void)
{
intbph2o=212;
intrv;
rv=printf("%dFiswater'sboilingpoint.\n",bph2o);
//finding
printf("Theprintf()functionprinted%dcharacters.\n",printf()'sreturnvalue==howmanycharactersprinted
rv);
return0;
*/
/////////////////////////////////////////////////////////////
/*skip2.c--skipsoverfirsttwointegersofinput*/
/*
#include
intmain(void)
{
intn;
printf("Pleaseenterthreeintegers:
\n");scanf("%*d%*d%d",&n);
skip
printf("Thelastintegerwas%d\n",n);
return0;
}
*/
/////////////////////////////////////////////////////////////
/*strings.c--stringformatting*/
/*
#include
#defineBLURB"Authenticimitation!
"
intmain(void)
{
printf("/%2s/\n",BLURB);
un