Ⅰ 《c语言实例精粹第二版》《C语言经典编程282例》《C语言程序开发范例宝典》推荐哪一本

都不推荐。推荐K&R《c语言程序设计》

Ⅱ 做完c语言经典编程282例 计算机什么水平

只能说是学习了基本的语言和开发方法, 有大量 C 的高级用法(比如函数指针) 以及软件设计(大规模的程序设计思路), 还有系统相关的(比如POSIX库,多进程,多线程,信号), 还有算法, 数据结构等等需要学习呢. 的确是万里长征走完一步, 与您共勉

Ⅲ 《C语言实例精粹第二版》《C语言经典编程282例》推荐哪一本

两年了还看这个。。。。换吧。。。
《C和指针》,《C专家编程》,看看国外的书吧。。。不是国内的书可以比拟的

Ⅳ C语言经典编程282例,求这本书的PDF或是其他文档的文件,在线等,高分奖励!!!

21天学通C语言(PDF) 已发送,请查收,不过貌似不是电子工业出版社出版的,比较遗憾的是这个PDF版不太清楚,你就凑合一下吧~~

Ⅳ C语言经典编程282例的图书详细信息

印次:1-1
印刷日期:2011-12-30

Ⅵ 求C语言经典编程282例,求这本书的PDF或是其他文档的文件,我邮箱[email protected]

【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
2.程序源代码
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k)
printf("%d,%d,%d\n",i,j,k);
}
}
【程序2】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
2.程序源代码:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#i nclude "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
}
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default: printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
2.程序源代码:
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d %d\n",x,y,z);
}
【程序6】
题目:用*号输出字母C的图案。
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
2.程序源代码:
#i nclude "stdio.h"
main()
{
printf("Hello C-world!\n");
printf(" ****\n");
printf(" *\n");
printf(" * \n");
printf(" ****\n");
}
【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
1.程序分析:字符共有256个。不同字符,图形不一样。
2.程序源代码:
#i nclude "stdio.h"
main()
{
char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);}
【程序8】
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
2.程序源代码:
#i nclude "stdio.h"
main()
{
int i,j,result;
printf("\n");
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
【程序9】
题目:要求输出国际象棋棋盘。
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
2.程序源代码:
#i nclude "stdio.h"
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf(" ");
printf("\n");
}
}
【程序10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
2.程序源代码:
#i nclude "stdio.h"
main()
{
int i,j;
printf("\1\1\n");/*输出两个笑脸*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");/*控制输出,每行四个*/
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
}
}
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
2.程序源代码:
#i nclude "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}
【程序13】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.程序源代码:
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
【程序14】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:
/* zheng int is divided yinshu*/
main()
{
int n,i;
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{ printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d",n);}
【程序15】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
60分以下的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
2.程序源代码:
main()
{
int score;
char grade;
printf("please input a score\n");
scanf("%d",&score);
grade=score>=90? 'A': (score>=60? 'B':'C');
printf("%d belongs to %c",score,grade);
}
【程序16】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
【程序17】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.

2.程序源代码:
#i nclude "stdio.h"
main()
{char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
printf("all in all:char=%d space=%d digit=%d
others=%d\n",letters,
space,digit,others);
}
【程序18】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
2.程序源代码:
main()
{
int a,n,count=1;
long int sn=0,tn=0;
printf("please input a and n\n");
scanf("%d,%d",&a,&n);
printf("a=%d,n=%d\n",a,n);
while(count<=n)
{
tn=tn+a;
sn=sn+tn;
a=a*10;
++count;
}
printf("a+aa+...=%ld\n",sn);
}
【程序19】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数。
1. 程序分析:请参照程序<--程序14.
2.程序源代码:
main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i {
if((j%i)==0)
{n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
for(i=0;i printf("%d,",k);
printf("%d\n",k[n]);
}
}
}
【程序20】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
1.程序分析:见下面注释
2.程序源代码:
main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
printf("the total of road is %f\n",sn);
printf("the tenth is %f meter\n",hn);
}
其他的等整理出来再发! :) :)
【程序21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1.程序分析:采取逆向思维的方法,从后往前推断。
2.程序源代码:
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("the total is %d\n",x1);
}
==============================================================
【程序22】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
三队赛手的名单。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
2.程序源代码:
main()
{
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{ if(i!=k&&j!=k)
{ if(i!='x'&&k!='x'&&k!='z')
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
==============================================================
【程序23】
题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重
for循环,第一层控制行,第二层控制列。
2.程序源代码:
main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}
==============================================================
【程序24】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
2.程序源代码:
main()
{
int n,t,number=20;
float a=2,b=1,s=0;
for(n=1;n<=number;n++)
{
s=s+a/b;
t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/
}
printf("sum is %9.6f\n",s);
}
==============================================================
【程序25】
题目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加变成了累乘。
2.程序源代码:
main()
{
float n,s=0,t=1;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf("1+2!+3!...+20!=%e\n",s);
}
==============================================================
【程序26】
题目:利用递归方法求5!。
1.程序分析:递归公式:fn=fn_1*4!
2.程序源代码:
#i nclude "stdio.h"
main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf("\40:%d!=%d\n",i,fact(i));
}
int fact(j)
int j;
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
==============================================================
【程序27】
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
1.程序分析:
2.程序源代码:
#i nclude "stdio.h"
main()
{
int i=5;
void palin(int n);
printf("\40:");
palin(i);
printf("\n");
}
void palin(n)
int n;
{
char next;
if(n<=1)
{
next=getchar();
printf("\n\0:");
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
==============================================================
【程序28】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
第四人的岁数,依次类推,推到第一人(10岁),再往回推。
2.程序源代码:
age(n)
int n;
{
int c;
if(n==1) c=10;
else c=age(n-1)+2;
return(c);
}
main()
{ printf("%d",age(5));
}
==============================================================
【程序29】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
2.程序源代码:
main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld
%ld\n",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld
%ld\n",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld
%ld\n",e,d,c);
else if (d!=0) printf("there are 2, %ld
%ld\n",e,d);
else if (e!=0) printf(" there are
1,%ld\n",e);
}
==============================================================
【程序30】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
1.程序分析:同29例
2.程序源代码:
main( )
{
long ge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("this number is a huiwen\n");
else
printf("this number is not a huiwen\n");
}
【程序31】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
2.程序源代码:
#i nclude <stdio.h>
void main()
{
char letter;
printf("please input the first letter of
someday\n");
while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/
{ switch (letter)
{case 'S':printf("please input second letter\n");
if((letter=getch())=='a')
printf("saturday\n");
else if ((letter=getch())=='u')
printf("sunday\n");
else printf("data error\n");
break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getch())=='u')
printf("tuesday\n");
else if ((letter=getch())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}
==============================================================
【程序32】
题目:Press any key to change color, do you want to
try it. Please hurry up!
1.程序分析:
2.程序源代码:
#i nclude <conio.h>
void main(void)
{
int color;
for (color = 0; color < 8; color++)
{
textbackground(color);/*设置文本的背景颜色*/
cprintf("This is color %d\r\n", color);
cprintf("Press any key to continue\r\n");
getch();/*输入字符看不见*/
}
}
==============================================================
【程序33】
题目:学习gotoxy()与clrscr()函数
1.程序分析:
2.程序源代码:
#i nclude <conio.h>
void main(void)
{
clrscr();/*清屏函数*/
textbackground(2);
gotoxy(1, 5);/*定位函数*/
cprintf("Output at row 5 column 1\n");
textbackground(3);
gotoxy(20, 10);
cprintf("Output at row 10 column 20\n");
}
==============================================================
【程序34】
题目:练习函数调用
1. 程序分析:
2.程序源代码:
#i nclude <stdio.h>
void hello_world(void)
{
printf("Hello, world!\n");
}
void three_hellos(void)
{
int counter;
for (counter = 1; counter <= 3; counter++)
hello_world();/*调用此函数*/
}
void main(void)
{
three_hellos();/*调用此函数*/
}

Ⅶ C语言经典编程282例的前言

学会站在巨人的肩膀上!
软件开发的终极目标是完成满足用户需求的软件。一个软件往往包含复杂的功能,作为一名程序员,需要在有限的时间内实现它们,这对于新手而言并不容易。为什么富有开发经验的程序员编程效率非常高呢?答案就是他们做过类似的程序,适当修改以前的代码,就可以满足现在的要求。因此,如何快速积累编程经验就成了新手的当务之急。显然,单单依靠项目来积累编程经验是非常慢的。
本书图文并茂、难易并举,汇集了282个日常开发中应用广泛的实例,内容涵盖了C语言编程的方方面面。每个实例分为实例说明、实现过程和技术要点3部分进行讲解。通过对本书的学习,不仅能快速掌握相关知识点,还可以逐步提升编程能力。
本书内容
本书以C语言的基础知识结构为框架,给出了每部分知识中可能遇到的疑难问题或开发技巧。本书共分17章,主要包括初识C语言、简单的C程序、算法入门、常用数据类型、运算符与表达式、数据输入与输出函数、选择和分支结构程序设计、循环结构、数组、函数编程基础、指针、常用数据结构、位运算操作符、存储管理、预处理和函数类型、文件读写、图形图像处理。
为了更清晰地阐述问题和给出问题的解决方案,本书设置了以下栏目。
* 实例说明:详细描述本实例的用途,并给出实例的运行结果图。
* 实现过程:逐步讲解如何解决本实例的问题,并给出关键代码、注意事项等。
* 技术要点:对本实例使用的关键技术进行总结,方便日后使用。
本书特色
* 贴近应用。本书精选的实例都真正来自开发一线。以实例形式进行讲解,使其更容易被读者接受。
* 横向链接。本书知识框架与《C语言开发入门及项目实战》一书相对应,可以在学习完《C语言开发入门及项目实战》一书的基础上使用本书,以提高自己的技能。
* 解析透彻。本书对每个问题的相关知识进行细致地讲解,并进行知识拓展,使读者不仅知其然而且知其所以然。
* 授人以渔。本书在讲解技术的同时,还注重对读者能力的培养,使读者掌握分析问题与解决问题的能力。
本书配套资源
本书提供了内容丰富的配套资源,包括源程序、素材,以及模块库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。
第1种方式:
(1)登录清华大学出版社的网站,在网页右上角的搜索文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜索”按钮。
(2)找到本书后单击超链接,在该书的网页下侧单击“网络资源”超链接,即可下载。
第2种方式:
访问本书的新浪微博C语言图书,找到配套资源的链接地址进行下载。
读者人群
本书非常适合以下人员阅读:
? C语言编程行业的开发人员
? 有一定语言基础,想进一步提高技能的人员
? 大中专院校的老师和学生
? 即将走向工作岗位的大学毕业生
? 相关培训机构的老师和学员
? C语言编程爱好者

Ⅷ C语言经典编程282例的目录

第1章 初识C语言 1
实例001 第一个C语言程序 2
实例002 一个完整的C语言程序 2
实例003 输出名言 3
实例004 用TC 2.0打开文件 4
实例005 计算正方形的周长 5
第2章 简单的C程序 6
实例006 输出一个正方形 7
实例007 输出一个三角形 8
实例008 一个简单的求和程序 9
实例009 求10! 10
实例010 3个数由小到大排序 11
实例011 猴子吃桃 13
实例012 阳阳买苹果 14
第3章 算法入门 15
实例013 任意次方后的最后三位 16
实例014 计算某日是该年的第几天 16
实例015 婚礼上的谎言 18
实例016 百元买百鸡 19
实例017 打渔晒网问题 20
实例018 判断三角形的类型 22
实例019 直接插入排序 23
实例020 希尔排序 25
实例021 冒泡排序 26
实例022 快速排序 27
实例023 选择排序 28
实例024 归并排序 29
实例025 二分查找 31
实例026 分块查找 32
实例027 哈希查找 34
实例028 斐波那契数列 37
实例029 哥德巴赫猜想 38
实例030 尼科彻斯定理 39
第4章 常用数据类型 41
实例031 数值型常量的使用 42
实例032 字符型变量的使用 42
实例033 求100~200之间的素数 43
实例034 利用#输出三角形 44
实例035 十进制转换为二进制 45
实例036 n进制转换为十进制 46
实例037 小球下落问题 48
实例038 巧分苹果 49
实例039 老师分糖果 50
实例040 IP地址形式输出 51
实例041 特殊的完全平方数 52
实例042 一数三平方 54
实例043 求等差数列 55
实例044 亲密数 56
实例045 自守数 57
第5章 运算符与表达式 60
实例046 求二元一次不定方程 61
实例047 可逆素数 63
实例048 判断闰年 64
实例049 黑纸与白纸 65
实例050 阿姆斯特朗数 67
实例051 最大公约数和最小公倍数 67
实例052 求一元二次方程的根 69
实例053 自然对数的底e的计算 70
实例054 满足abcd=(ab+cd)2的数 70
实例055 整数加减法练习 71
实例056 判断整倍数 73
实例057 阶梯问题 73
实例058 乘积大于和的数 74
实例059 求各位数之和为5的数 75
第6章 数据输入与输出函数 77
实例060 使用字符函数输入/输出字符 78
实例061 输出相对的最小整数 79
实例062 将小写字母转换为大写字母 80
实例063 水池注水问题 80
实例064 用*号输出图案 81
实例065 输出一个字符的前驱字符 82
实例066 求学生总成绩和平均成绩 83
实例067 回文素数 84
第7章 选择和分支结构程序设计 86
实例068 判断偶数 87
实例069 判断字母是否为大写 88
实例070 检查字符类型 89
实例071 求最低分和最高分 90
实例072 模拟自动售货机 91
实例073 计算工资 93
实例074 平方和值判断 94
实例075 加油站加油 95
实例076 简单计算器 97
第8章 循环结构 98
实例077 使用while语句求n! 99
实例078 使用while为用户提供
菜单显示 100
实例079 一元钱的兑换方案 102
实例080 特殊等式 103
实例081 打印乘法口诀表 104
实例082 平方和运算的问题 105
实例083 求从键盘中输入字符的个数 106
实例084 打印杨辉三角 108
实例085 求总数问题 109
实例086 彩球问题 110
实例087 新同学年龄 112
实例088 灯塔数量 113
实例089 计算12+22+…+102 114
实例090 循环显示随机数 115
实例091 卖西瓜 116
实例092 银行存款问题 117
实例093 统计不及格的人数 118
实例094 猜数字游戏 119
第9章 数组 123
实例095 求各元素之和 124
实例096 使用二维数组保存数据 125
实例097 计算字符串中有多少个单词 126
实例098 不使用strcpy()函数实现
字符串复制功能 127
实例099 逆序存放数据 129
实例100 相邻元素之和 130
实例101 选票统计 131
实例102 使用数组统计学生成绩 132
实例103 查找数组中的最值 134
实例104 判断一个数是否存在数组中 135
实例105 求二维数组对角线之和 136
实例106 模拟比赛打分 137
实例107 矩阵的转置 139
实例108 设计魔方阵 141
实例109 字符升序排列 142
实例110 在指定位置插入字符 144
实例111 删除字符串中的连续字符 146
实例112 统计各种字符个数 147
实例113 字符串替换 148
实例114 回文字符串 150
实例115 字符串加密和解密 151
实例116 对调最大数与最小数位置 153
第10章 函数编程基础 155
实例117 输出两个数中的最大值 156
实例118 判断素数 157
实例119 递归解决年龄问题 158
实例120 递归解决分鱼问题 159
实例121 小数分离 160
实例122 求任意数的n次幂 161
实例123 固定格式输出当前时间 163
实例124 设计函数计算学生平均身高 164
实例125 求数组元素中的最小值 165
实例126 打印1~5的阶乘 166
实例127 求最大公约数和最小公倍数 167
实例128 求直角三角形的斜边 168
实例129 相对的最小整数 169
实例130 当前时间转换 170
实例131 显示程序运行时间 171
实例132 显示当前日期及时间 172
实例133 设置DOS系统日期 173
实例134 设置DOS系统时间 174
实例135 读取并设置BIOS的时钟 175
实例136 任意大写字母转小写 176
实例137 字符串复制到指定空间 176
实例138 查找位置信息 177
实例139 复制当前目录 179
实例140 产生唯一文件 180
实例141 不同亮度显示 181
实例142 字母检测 182
实例143 建立目录 183
实例144 删除目录 184
实例145 对数组进行升序和降序排序 185
实例146 设置组合键 187
实例147 获取当前日期与时间 188
实例148 获取当地日期与时间 189
实例149 获取格林尼治平时 190
实例150 设置系统日期 191
实例151 获取BIOS常规内存容量 193
实例152 读/写BIOS计时器 194
实例153 获取CMOS密码 195
实例154 获取Ctrl+Break消息 197
实例155 鼠标中断 198
实例156 设置文本显示模式 200
实例157 显卡类型测试 204
实例158 获取系统配置信息 206
实例159 访问系统temp中的文件 209
实例160 控制扬声器声音 210
实例161 获取Caps Lock键状态 211
实例162 获取环境变量 212
实例163 贪吃蛇游戏 213
实例164 五子棋游戏 219
实例165 弹力球游戏 227
第11章 指针 235
实例166 使用指针实现整数排序 236
实例167 指向结构体变量的指针 237
实例168 使用指针输出数组元素 238
实例169 使用指针查找数列中的
最大值和最小值 240
实例170 使用指针的指针输出字符串 241
实例171 使用指向指针的指针对
字符串排序 242
实例172 使用返回指针的函数查找
最大值 244
实例173 使用指针连接两个字符串 245
实例174 用指针实现逆序存放数
组元素值 247
实例175 用指针数组构造字符串数组 248
实例176 用指针函数输出学生成绩 249
实例177 寻找相同元素的指针 251
实例178 查找成绩不及格的学生 252
实例179 使用指针实现冒泡排序 254
实例180 输入月份号并输出英文月份名 255
实例181 使用指针插入元素 256
实例182 使用指针交换两个数组
中的最大值 257
实例183 输出二维数组有关值 259
实例184 输出二维数组任一行
任一列值 260
实例185 将若干字符串按照字母
顺序输出 262
实例186 用指向函数的指针比较大小 263
实例187 寻找指定元素的指针 265
实例188 字符串的匹配 266
第12章 常用数据结构 269
实例189 比较计数 270
实例190 找出最高分 271
实例191 信息查询 272
实例192 候选人选票程序 274
实例193 计算开机时间 276
实例194 取出整型数据的高字节数据 277
实例195 使用共用体存放学生和
老师信息 278
实例196 使用共用体处理任意类型数据 279
实例197 输出今天星期几 281
实例198 创建单向链表 282
实例199 创建双向链表 284
实例200 创建循环链表 287
实例201 使用头插入法建立单链表 289
实例202 双链表逆序输出 291
实例203 约瑟夫环 293
实例204 创建顺序表并插入元素 294
实例205 合并两个链表 296
实例206 单链表节点逆置 298
实例207 应用栈实现进制转换 300
实例208 用栈实现行编辑程序 303
实例209 用栈设置密码 306
实例210 括号匹配检测 310
实例211 用栈及递归计算多项式 313
实例212 链队列 315
实例213 循环缓冲区问题 318
实例214 简单的文本编辑器 321
第13章 位运算操作符 326
实例215 使二进制数特定位翻转 327
实例216 将输入的数左移两位并输出 327
实例217 编写循环移位函数 328
实例218 取出给定16位二进制数
的奇数位 330
实例219 取一个整数的后四位 331
实例220 求一个数的补码 332
实例221 普通的位运算 333
实例222 整数与0异或 334
第14章 存储管理 335
实例223 使用malloc()函数分配内存 336
实例224 调用calloc()函数动态分
配内存 337
实例225 为具有3个数组元素的
数组分配内存 338
实例226 为二维数组动态分配内存 338
实例227 商品信息的动态存放 340
第15章 预处理和函数类型 341
实例228 用不带参数的宏定义求
平行四边形面积 342
实例229 使用宏定义实现数组值
的互换 343
实例230 编写头文件包含圆面积的
计算公式 344
实例231 利用宏定义求偶数和 345
实例232 利用文件包含设计输出模式 346
实例233 使用条件编译隐藏密码 347
第16章 文件读写 349
实例234 关闭所有打开的文件 350
实例235 同时显示两个文件的内容 352
实例236 创建文件 353
实例237 格式化读写文件 355
实例238 创建临时文件 357
实例239 成块读写操作 358
实例240 随机读写文件 360
实例241 以行为单位读写文件 362
实例242 查找文件 364
实例243 重命名文件 364
实例244 删除文件 366
实例245 删除文件中的记录 367
实例246 文件内容复制 369
实例247 错误处理 370
实例248 合并两个文件信息 373
实例249 统计文件内容 375
实例250 读取磁盘文件 376
实例251 将数据写入磁盘文件 378
实例252 显示目录内同类型文件 379
实例253 文件分割 382
实例254 文件加密 384
实例255 自毁程序 386
实例256 明码序列号保护 388
实例257 非明码序列号保护 389
实例258 恺撒加密 391
实例259 RSA加密 394
实例260 获取当前磁盘空间信息 396
实例261 DES加密 398
实例262 获取系统配置信息 403
实例263 获取寄存器信息 405
第17章 图形图像处理 407
实例264 绘制直线 408
实例265 绘制矩形 409
实例266 绘制表格 411
实例267 绘制立体窗口 412
实例268 绘制椭圆 414
实例269 绘制圆弧线 415
实例270 绘制扇区 417
实例271 绘制空心圆 418
实例272 绘制箭头 419
实例273 绘制正弦曲线 420
实例274 绘制彩带 421
实例275 绘制黄色网格填充的椭圆 423
实例276 绘制红色间隔点填充的
多边形 424
实例277 绘制五角星 425
实例278 颜色变换 427
实例279 彩色扇形 428
实例280 输出不同字体 429
实例281 相同图案的输出 431
实例282 设置文本及背景颜色 433