c語言282
Ⅰ 求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例對於備考計算機二級c語言真的有用嗎
當然有用了,而且用處很大,昨晚這282例你對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
Ⅳ 尋找貪吃蛇c++的代碼
貪吃蛇游戲C語言源代碼學習
源代碼下載地址為:www.clang.cc
閱讀學習了源代碼,並做了簡單的注釋和修改,裡面只用了鏈表數據結構,非常適合C語言入門者學習閱讀。
程序可在VS2013下編譯運行。
Ⅳ Error:(282, 26) 警告: '_' 用作標識符 (Java SE 8 之後的發行版中可能不支持使用 '_' 作為標識符)
1.#operator not followed by macro argument name
"#"運算符後無宏變元名。在基做笑宏定義中,"#"用於標志一宏變元是一個串,因此,在"#"後面必須要跟隨一個宏變元名。
2.'xxxxxxxx'not an argument
'xxxxxxxx'不是函數參數。在原程序中將該表識符定義為一個函數,但他沒有在函數表中出現。
3.Ambiguous symbol 'xxxxxxxx'
二義性符號'xxxxxxxx'。兩個或兩個以上結構的某一域名相同,但它們的遍移、類型不同,因此,在變數或表達式中用該域但未帶結構名時,,就會產生二義性。在這種情況下,需要修改域名,或在引用時加上結構名。
4.Argument # missing name
參數#名丟失。參數名已脫離用於定義函數的函數原型。C語言規定,如果函數以原型定義,該函數必須包含所有的函數名。
5.Argument list error
參數表語法錯誤。C語言規定,函數調用的各參數之間必須以逗號分隔,並以右括弧結束,若源文件中含有一個其後不是逗號也不是右括弧的參數,則會出現本錯誤。
6.Array bounds missing
數組的界限符「]」丟失。在源文件中定義了一個數組,但此數組沒有以右方括弧結束,則會出現本錯誤。
7.Arraysize too large
數組長度太長。定義的數組太長,可用內存不夠。
8.Assembler statement too long
匯編語句太長。C語言規定,內部匯編語句最長不能超過480位元組。
9.Bad configuration file
配置文件不準確。TURBOC.CFG配置文件中包含不是合適命令行選擇項的非注釋文字。C語言規定,配置文件命令選擇項必須以一短橫線開始。
10.Bad file name formart in include directive
包含指令中文件名格式不正確。包含文件名必須用雙引號或尖括弧括起來,否則將出現本錯誤。如果使用了宏,則產生的擴展文本也不正確。
11.Bad ifndef directive syntax
ifdef指令語法錯誤。#ifdef必須以單個標識符作為該指令的體。
12.Bad ifndef directive syntax
ifndef指令語法錯誤。#ifndef必須以單個標識符作為該指令的體。
13.Bad undef directive syntax
undef指令語法錯誤。#undef必須以單個標識符作為該指令的體。
14.Bad file size syntax
位欄位長語法錯誤。一個位欄位長必須是在1-16位的常量表達式。
15.Call of non-function
調用未定義的函數。正被調用的函數未定義,通常是由於不正確的函數聲明或函數名拼寫錯所造成
16.Cannot modify a const object
不能修改一個常量對象。對定義為常量的對象進行不合法的操作(如對常量進行賦值)會產生此錯誤。
17.Case outside of switch
Case 出現在Switch的外面。編譯程序發現Case語句在switch的外面,通常是由於括弧不匹配所造成。
18.Case statement missing
Case語句漏掉。Case語句必須搏含包含一個以冒號結束的常量胡備表達式。可能的原因是丟了冒號或在冒號前多了別的符號。
19.Cast syntax error
Cast語法錯誤。可能在Cast中包含了一些不正確的符號。
20.Character constant too long
字元常量太長。
21.Compound statement missing
復合語句漏掉。編譯程序掃描到源文件末尾時,為發現結束大括弧,通常是由於大括弧不匹配造成。
22.Conflicting type modifiers
類型修飾符沖突。對同一指針只能定義一種變址修飾符(如near或far);而對於同一函數也只能給出一種語言修飾符(如cdecl、pascal或interrupt)
23.constant expression repuried
要求常量表達式。數組的大小必須是常量,本錯誤通常是由於#define常量的拼寫錯誤造成。
24.could not find file 'xxxxxxxx'
找不到文件'xxxxxxxx'。編譯程序找不到命令行上給出的文件。
25.declaration missing
說明漏掉「;」。在源文件中包含了一個struct或union域聲明,但後面漏掉了分號(;)。
26.declaration needs type or storage class
說明必須給出類型或存儲類。如以下說明是錯誤的:i,j;
27.declaration syntax error
說明出現語法錯誤。在源文件中,某個說明丟失了某些符號或有多餘的符號。
28.default outside of switch
defaul在switch 外出現。這個錯誤通常是由於括弧不匹配造成。
29.define directive needs an identifer
define指令必須要一個標識符。#define後面的第一個非空格符號必須是一個標識符,若編譯程序發現一些其他字元,則出現本錯。
30.division by zero
除數為零。在源文件中的表達式中出現除數為零的情況。
31.do statement must have while
do語句中必須要有while
32.do-while statement missing(、)、;
do-while語句中漏掉"(、)、;"
33.plicate case
case的情況不唯一。switch語句中每個case必須有一個唯一的常量表達式。
34.enum synatx error
enum域法出現錯誤。enum說明的標識符表的格式不對。
35.enumeration constant syntax error
枚舉常量語法錯誤。賦給enum類型變數的表達式值不是常量。
36.error directive:xxxx
error指令:xxxx.源文件處理#error指令時,顯示該指令給出的信息。
37.error writting output file
寫輸出文件出錯。通常是由於磁碟空間不夠造成。
38.expression stntax
表達式語法錯誤。如:在表達式中連續出現兩個操作符、括弧不匹配或缺少括弧、前一語句漏掉了分號等。
39.extra parameter in call
調用時出現多餘參數。在調用一函數時,實際的參數個數多於函數定義中的參數。
40.extea parameter in call to xxxxxxxx
調用「xxxxxx」函數時出現了多餘的參數。其中該函數由原型定義。
41.file name too long
文件名太長。#include指令給出的文件名太長,編譯程序無法處理。DOC下的文件名不能超過64個字元。
42.for statement missing();
for 語句漏掉「();」
43.function call missing)
函數調用缺少「)」。
44.function definition out of place
函數定義位置錯誤。函數定義不能出想在另一函數內。函數內的任何說明,只要以類似於帶一個參數表的函數開始,就被認為是一個函數定義。
45.function doesn't take a vatiable number of argument
函數不接受可變的參數個數。源文件中的某個函數內使用了va-start宏,此函數不能接受可變數量的參數。
46.goto statement missing lable
goto語句缺少標號。在goto關鍵字後必須要有一個標識符。
47.if statement misslng()
if語句缺少「()」
48.illegal character (0xXX)
非法字元串(0xXX)。編譯程序發現輸入文件中有非法字元,已十六進制列印該字元。
49.illegal initialzation
非法初始化。初始化必須是常量表達式後一全局變數extern或static的地址減一常量。
50.illegal octal digit
非法八進制數。編譯程序發現在一個八進制常數包含了非八進制數字元號(如8或9)。
51.illegal pointer subtraction
非法指針相減。這是由於試圖以一個指針變數減去一個指針變數而造成的。
52.illegal structre operation
非法結構操作。結構只能使用「.」、取地址「&」和賦值操作符「=」,或作為函數的參數傳遞。當編譯程序發現結構使用了其他操作符時出現本錯誤。
53.illegal use of floating point
非法的浮點運算。浮點運算操作數不允許出現在移位、按位邏輯操作、條件(?:)、間接(*)以及其他一些操作符中。
54.illegal use of point
非法使用指針。指針只能在加、減、賦值、比較、間接(*)或尖頭(->)操作中使用。
55.improper use of a typedef symbol
typedef符號使用不當。源文件中使用了一個符號,符號變數應在一個表達式中出現。檢查一下此符號的說明和可能的拼寫錯誤。
56.in-line assembly not allowed
不允許內部匯編語句。源文件中包含有直接插入的匯編語句,若在集成環境下進行編譯,這出現本錯誤,必須使用TCC命令行來編譯該文件。
57.incompatible storage class
不相容的存儲類。源文件的一個函數定義使用了extern關鍵字,而只有static(或根本沒有存儲類型)是允許的。
58.incompatible type conversion
不相容的類型轉換。源文件中試圖把一種類型轉換成另一種類型,但這兩種是不相容的,如函數與非函數之間的轉換、一種結構或數組與一種標准類型間轉換、浮點數與指針間轉換。
59.incorrect command line argunent:xxxxx
不正確的命令參數:xxxxxxxx
60.incorrect cinfiguration file argunent:xxxxx
不正確的文件參數:xxxxxx。編譯程序認為該配置文件是非法的,此時可檢查一下前面的短橫線(_)。
61.incorrect number format
不正確的數據格式。編譯程序發現在十六進制數中出現十六進制小數點。
62.incorrect use of default
default的不正確使用。編譯程序發現default關鍵字後缺少分號。
63.initializer syntax error
初始化語法錯誤。初始化過程中缺少或多了一操作符,括弧不匹配,或其他一些不正常情況。
64.invalid indrection
無效的間接運算。間接運算符(*)要求非空指針作為操分量
65.invalid macro argument separator
無效的宏參數分隔符。在宏定義中,各參數必須用逗號分割。編譯程序發現在參數名後面有其他非法字元
66.invalid pointer sddition
無效的指針相加。原程序中試圖將兩個指針相加。
67.invalid use of arrow
箭頭使用錯。在箭頭操作符(->)後必須跟一標識符
68.invalid use of dot
點使用錯。在店操作符(.)後必須跟一標識符
69.lvalue required
請求賦值。賦值符操作的左邊必須是一個地址表達式,包括數值變數、指針變數、結構引用域、間接指針或數組分量。
70.macro argument syntax error
宏參數語法錯誤。宏定義中的參數必須是一個標識符。編譯程序發現所需的參數不是標識符號的字元,則出現本錯誤。
71.mxcro expansion too long
宏擴展太長。一個宏擴展不能多於4096個字元。當宏遞歸擴展自身時,常出現本錯誤。宏不能對自身進行擴展。
72. may compile only one file when an output file name is given
給出的一個輸出文件名時,可能只編譯一個文件。在命令編譯時,若使用-o選擇,則至於需一個輸出文件名。此時,只編譯第一個文件,其他文件被忽略。
73. mismatch number of parameters in definition
定義中參數個數不匹配。定義中的參數和函數原型中提供的信息不匹配。
74. misplaced bresk
break位置錯誤。編譯程序發現break語句的switch語句或循環結構外
75. misplaced continue
continue位置錯。編譯成促發現continue語句在循環結構外
76. misplsced decimal point
十進制小數點位置錯。編譯程序發現浮點常數的指數部分有一個十進制小數點
Ⅵ C語言經典編程282例的圖書簡介
本書以基礎知識為框架,介紹了各部分知識所對應的常用開發實例,並進行了透徹的解析。本書內容包括初識C語言、簡單的C程序、演算法入門、常用數據類型、運算符與表達式、數據輸入與輸出函數、選擇和分支結構程序設計、循環結構、數組、函數編程基礎、指針、常用數據結構、位運算操作符、存儲管理、預處理和函數類型、文件讀寫、圖形圖像處理。
本書所精選的實例都是一線開發人員在實際項目中所積累的,並進行了技術上的解析,給出了詳細的實現過程。通過對本書的學習,能夠提高讀者的開發能力。
本書提供了大量的源程序、素材,提供了相關的模塊庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。
本書內容詳盡,實例豐富,非常適合作為零基礎學習人員的學慣用書和大中專院校師生的學習教材,也適合作為相關培訓機構的師生和軟體開發人員的參考資料。
Ⅶ C語言必須知道的300個問題的目錄
第1章 初識C語言 1
問題1 C語言是如何發展起來的? 2
問題2 什麼是ANSI標准? 2
問題3 C語言編寫程序的優點有哪些? 3
問題4 如何規避C語言的不足之處? 4
問題5 C語言的應用領域有哪些? 5
問題6 什麼是C99標准?與C89標准
相比,C99標准有哪些
新特性? 6
問題7 C語言是C++的子集嗎? 10
問題8 C語言程序的開發過程是
怎樣的? 11
問題9 什麼是編譯程序和解釋程序? 12
問題10 ANSI C的編譯限制有哪些? 13
第2章 一個簡單的C程序 14
問題11 C語言的入口函數是什麼? 15
問題12 C語言程序由哪些部分組成? 16
問題13 如何在Turbo C 2.0中輸入一個
程序? 16
問題14 如何在Visual C++ 6.0中運行
一個C程序? 18
問題15 如何在Visual C++ 2008中運行
一個C程序? 22
問題16 如何提高程序的可讀性? 26
問題17 什麼是關鍵字?C語言的關鍵
字有哪些? 27
問題18 什麼是標識符?使用標識符的
注意事項是什麼? 29
問題19 void關鍵字都有哪些用途? 30
問題20 什麼是匈牙利命名約定?它是否
是好的約定? 31
第3章 演算法入門 33
問題21 為什麼說演算法是程序設計的
靈魂? 34
問題22 演算法的特性有哪些? 34
問題23 如何評價一個演算法的好壞? 35
問題24 演算法的表示方法都有哪些? 36
問題25 演算法的基本結構是什麼? 40
問題26 演算法有哪幾類? 42
問題27 演算法的效率度量方法有哪些? 42
問題28 什麼是演算法的時間復雜度? 43
問題29 什麼是演算法的空間復雜度? 44
問題30 什麼是分治法演算法思想? 45
第4章 常用數據類型 46
問題31 聲明變數和定義變數的區別
是什麼? 47
問題32 在開發時如何決定使用哪種
數據類型? 48
問題33 什麼是常量?如何區分常量
和變數? 48
問題34 各種數據類型所佔的內存是
多少? 49
問題35 字元與字元串的差別有
哪些? 50
問題36 變數是否必須初始化? 51
問題37 為什麼會發岩鋒生數據溢出?如何
避免數據溢出? 52
問題38 局部變數和全局變數能否
重名? 53
問題39 全局變數可不可以定義在可被
多個.C文件包含的頭文件中?
為什麼? 53
問題40 如何引用一個已經定義過的
外部變數? 54
問題41 全局變數和局部變數的存儲
方式有什麼區別? 55
問題42 整型常量的存儲形式是
怎樣的? 55
問題43 整型常量的表示形式有
哪幾種? 56
問題44 使用了沒定義的變數會有什麼
現象? 56
問題45 static關鍵字有什麼作用? 57
問題46 const關鍵字有什麼作用? 59
問題47 const與#define相比有何
優點? 60
問題48 sizeof不是函數嗎? 61
問題49 float類型數如何與0值
比較? 63
問題前棗含50 靜態變數與自動變數的區別
有哪些? 64
第5章 運算符與表達式 66
問題51 運算符的優先順序和結合性是
怎樣的? 67
問題52 如何區分「,」是運算符還是
分隔符? 68
問題53 C語言如何解釋x=a+=b+c? 69
問題54 x=x+1,x+=1,x++,哪個效率
最高? 70
問題55 什麼是運算符的目?怎樣進行
區分? 70
問題56 使用「++」和「--」運算符需要
注意些什麼? 71
問題57 如何理解i+++j? 71
問題58 賦值表達式中什麼是左值和右值?數組名作為左右值時又具有怎樣的意義? 72
問題59 如何確定條件表達式的結果的
數據類型? 73
問題60 「%」運算符是否可以對小數
進行運算? 74
問題61 「/」運算符得慧笑到的結果一定為
整數嗎? 75
問題62 在進行多種數據類型混合運算
的時候,數據類型自動轉換有
哪些規則? 76
問題63 C語言中有哪些簡化的運算
表達式? 77
問題64 使用邏輯表達式需要注意哪
幾點問題? 77
問題65 i++*i++這樣的表達式為什麼
不能得到預期的結果? 78
問題66 a[i]=i++;這樣的代碼正確嗎? 79
問題67 編寫表達式時需要注意
什麼? 79
問題68 如何理解c=a,b;? 80
問題69 為無符號類型變數賦值時,數據
類型應怎樣轉換? 81
問題70 C語言表達式的求值順序總是
按照運算符的結合性保證
「自左至右」或者「自右
至左」嗎? 81
第6章 輸入/輸出函數 83
問題71 函數printf()的基本格式
是什麼? 84
問題72 如何認識printf()函數的格式
字元? 85
問題73 函數printf()的標志有幾種?
如何使用? 91
問題74 如何控制輸出最小寬度? 91
問題75 如何控制輸出精度? 92
問題76 如何控制輸出長度? 93
問題77 如何動態設置輸出寬度和
精度? 94
問題78 printf()函數的返回值是
什麼? 95
問題79 如何理解輸出列表? 96
問題80 函數scanf()的基本格式是
什麼? 96
問題81 scanf()函數的格式字元是
什麼? 97
問題82 使用scanf()函數應注意的問題
是什麼? 100
問題83 scanf()函數的返回值是
什麼? 101
問題84 如何使用getchar()函數? 102
問題85 getch()函數如何使用? 104
問題86 如何應用gets()函數? 104
問題87 如何應用putch()函數? 105
問題88 puts()函數該如何應用? 106
問題89 如何控制多數值的輸入? 107
問題90 如何輸入字元數組? 108
第7章 選擇、分支結構程序設計 110
問題91 5>4>3為什麼不成立——談談
關系表達式的值 111
問題92 =和==如何區分? 112
問題93 什麼叫邏輯短路? 113
問題94 if語句的基本形式有哪些?
如何應用? 114
問題95 浮點數的相等比較是否可以
用==? 116
問題96 關系運算符和數學不等號有
什麼區別? 117
問題97 if語句後面一定不能寫
分號嗎? 118
問題98 這個程序為什麼多執行了好多
語句? 119
問題99 不用關系表達式和邏輯表達式
做條件 120
問題100 怎樣理解復合語句中的
變數? 122
問題101 如何進行if語句的嵌套? 123
問題102 條件運算符「? :」怎樣
應用? 124
問題103 switch語句的基本格式是
什麼? 125
問題104 if語句與switch語句的優缺
點是什麼? 127
問題105 switch語句中的default關鍵字
是否必須? 128
問題106 break關鍵字在switch語句中
應注意什麼? 128
問題107 如何正確判斷if和else的
匹配? 130
問題108 switch和case後的表達式值的
類型是否可以是浮點型? 132
問題109 區段劃分型條件有什麼
技巧? 133
問題110 default必須寫在所有case
之後嗎? 134
第8章 循環結構 136
問題111 循環結構的基本概念是
什麼? 137
問題112 while語句的基本格式是
什麼? 138
問題113 while循環應注意什麼
問題? 139
問題114 for循環語句的基本格式
是什麼? 140
問題115 for語句的三個表達式都是
必須的嗎? 142
問題116 do…while語句的基本格式
是什麼? 144
問題117 分號在循環體中的作用? 146
問題118 while與do…while的
區別? 148
問題119 什麼是循環嵌套? 149
問題120 循環嵌套的結構是
怎樣的? 151
問題121 如何正確使用循環嵌套? 153
問題122 死循環是怎樣產生的? 154
問題123 怎樣提高循環語句的
效率? 156
問題124 continue語句的基本作用
是什麼? 158
問題125 break語句的基本作用是
什麼? 159
問題126 goto語句的基本格式是什麼?
如何使用? 161
問題127 goto語句的缺陷是什麼? 163
問題128 如何選擇循環語句? 165
問題129 如何判定循環結束和提前
結束? 165
問題130 如何避免循環中的初值錯誤
問題? 167
第9章 數組 170
問題131 什麼是數組?其存儲有何
特點? 171
問題132 數組的維數該如何理解? 171
問題133 一維數組是怎樣定義的? 172
問題134 如何引用一維數組元素? 173
問題135 如何初始化一維數組? 174
問題136 如何設計數組的排序
演算法? 175
問題137 如何定義二維數組? 176
問題138 如何引用二維數組元素? 178
問題139 如何初始化二維數組? 179
問題140 如何定義字元數組? 180
問題141 如何初始化字元數組? 180
問題142 如何引用字元數組? 181
問題143 如何進行字元數組的
復制? 182
問題144 如何進行字元數組的
連接? 183
問題145 如何進行字元串的比較? 185
問題146 如何測定字元串的長度? 187
問題147 如何進行字元串大小寫的
相互轉換? 188
問題148 如何計算字元串中有多少個
單詞? 190
問題149 gets()函數和scanf()函數在輸入
字元串時有何區別? 191
問題150 puts()函數和printf()函數在輸出
字元串時有何區別? 192
問題151 數組與指針的區別是什麼? 193
問題152 為什麼作為函數形參的數組和
指針可以互換? 195
問題153 為什麼數組名作參數傳遞給子
函數時,子函數可以改變主
函數中數組的值? 196
問題154 C語言中有動態數組嗎? 197
問題155 如何實現動態二維數組? 199
問題156 strcpy()函數可以復制字元串的
一部分嗎? 201
問題157 字元串和字元數組有什麼
區別? 202
問題158 『 』和「 」有什麼區別? 203
問題159 字元數組佔用內存
怎樣算? 204
問題160 用字元數組和指針兩種方式
定義的字元串有什麼
不同? 204
第10章 函數編程基礎 206
問題161 什麼是函數?如何分類? 207
問題162 如何定義無參函數? 209
問題163 如何定義有參函數? 210
問題164 什麼是空函數?作用是
什麼? 210
問題165 什麼是形參和實參?如何
使用? 211
問題166 如何從函數返回? 213
問題167 函數返回值你了解多少? 214
問題168 如何進行函數的一般
調用? 215
問題169 函數調用的基本方式有幾種?
各是什麼? 216
問題170 函數調用應具備哪些
條件? 216
問題171 如何進行函數的嵌套
調用? 218
問題172 什麼是遞歸調用?如何
實現? 219
問題173 函數如何將數組元素作為
實參? 222
問題174 如何將數組名作為函數
參數? 224
問題175 如何將多維數組名作為函數
參數? 227
問題176 什麼是局部變數? 228
問題177 什麼是全局變數?如何
應用? 229
問題178 存儲方式有哪幾種?分別
是什麼? 232
問題179 如何使用auto關鍵字? 233
問題180 什麼是靜態變數?如何
實現? 236
問題181 什麼是寄存器變數?如何
實現? 238
問題182 如何聲明外部變數? 239
問題183 如何調用編譯後的函數? 240
問題184 如何限定外部變數的使用
范圍? 241
問題185 如何使用函數調用實現對字
符串的統計? 242
問題186 main()函數有什麼作用? 243
問題187 什麼是內部函數? 243
問題188 什麼是外部函數?
怎麼用? 244
問題189 static()函數與普通函數有什麼
區別? 245
問題190 形參和實參有什麼區別? 246
第11章 指針解析 248
問題191 什麼是指針?什麼是指針
變數? 249
問題192 如何創建指針? 250
問題193 如何初始化指針? 251
問題194 如何使用指針? 252
問題195 函數中如何傳遞指針? 254
問題196 指針、數組和地址之間的關系
是什麼? 255
問題197 如何進行指針運算? 256
問題198 如何使用指針操作數組? 258
問題199 如何用指針表示多維
數組? 260
問題200 如何使用指針操作多維
數組? 261
問題201 如何用指針為函數傳遞
數組? 263
問題202 如何用指針表示字元串? 264
問題203 如何使用字元串指針作為函數
參數? 265
問題204 字元數組和字元指針的區別
是什麼? 266
問題205 什麼是指針數組? 267
問題206 如何使用指針數組處理
字元串? 268
問題207 如何將指針數組作為函數的
參數? 269
問題208 什麼是指向指針的指針? 270
問題209 二級指針如何應用於一維
數組? 271
問題210 如何實現二級指針對二維數組
的操作? 272
問題211 二級指針如何操作字元串數組
(指針數組)? 273
問題212 如何理解返回指針的
函數? 275
問題213 什麼是指向函數的指針? 277
問題214 如何用const控制指針? 278
問題215 什麼是「野指針」? 279
問題216 main()函數的指針數組形參
是怎麼回事? 279
問題217 void指針就是空指針嗎?它
有什麼作用? 281
問題218 指針是一種特殊的變數,只能
用來保存地址。這句話
對嗎? 282
問題219 字元指針、浮點數指針以及
函數指針這三種類型的變數
哪個佔用的內存最大?
為什麼? 282
問題220 一個32位的機器,該機器的
指針是多少位? 283
第12章 常用數據結構 284
問題221 空結構體所佔的內存是
多少? 285
問題222 在C語言中,一個結構體可以
包含指向自己的指針嗎? 286
問題223 struct person{...};person a;
為什麼編譯出錯? 287
問題224 怎樣從/向數據文件讀/寫
結構? 289
問題225 枚舉與#define宏的區別有
哪些? 290
問題226 如何看待枚舉類型,枚舉類型
的優點是什麼? 291
問題227 關鍵字typedef的功能是
什麼? 292
問題228 類型定義是否允許嵌套? 294
問題229 typedef與#define宏的相似之處
與不同之處是什麼? 295
問題230 什麼是散列法? 296
問題231 大小端模式對union類型數據
有什麼影響? 297
問題232 如何為聯合體變數賦
初值? 298
問題233 如何證明聯合體變數的所有成員是共享一個內存單元的? 300
問題234 堆和棧的區別是什麼? 301
問題235 舉例說明,什麼是靜態鏈表?
什麼是動態鏈表? 302
問題236 單向鏈表、雙向鏈表和循環鏈
表有什麼區別? 304
問題237 如何在鏈表中的指定位置插入
結點? 305
問題238 如何刪除鏈表中指定位置的
結點? 306
問題239 如何創建一個動態鏈表? 308
問題240 指向結構體數組的指針如何
應用? 310
第13章 位運算操作符 312
問題241 什麼是位運算?位運算符包括
哪些? 313
問題242 移位運算中如何補位? 314
問題243 移位運算符與加減運算符的
優先順序哪個較高? 315
問題244 什麼是循環移位? 316
問題245 什麼是位段?其優點是
什麼? 317
問題246 如何正確使用位段? 318
問題247 數據在計算機中的存儲單位有
哪些?有幾種存儲形式? 320
第14章 存儲管理 322
問題248 與內存息息相關的重要概念
有哪些? 323
問題249 指針指向不合法引起了哪些
內存問題? 324
問題250 內存分配與釋放引起的常見
問題有哪些? 325
問題251 什麼是內存越界?什麼是內存
泄露?二者是如何產生的? 326
問題252 C語言提供了哪些動態內存
分配函數? 327
問題253 malloc()函數與calloc()函數有
什麼區別? 328
問題254 內存耗盡怎麼辦? 328
問題255 動態內存會被自動釋
放嗎? 330
問題256 高位優先與低位優先的不同
之處是什麼? 330
問題257 free()和delete()怎樣處理
指針? 331
問題258 怎樣利用好敏感的內存
資源? 333
第15章 預處理和函數類型 335
問題259 在頭文件中#if、_STDC_等字元
起什麼作用? 336
問題260 如何書寫多條語句宏? 337
問題261 預處理中#和##運算符是什麼
意思? 338
問題262 一個頭文件可以包含另一個頭
文件嗎? 339
問題263 #include<>和#include「」有什麼
區別? 340
問題264 什麼是無參宏定義? 341
問題265 什麼是帶參宏定義? 342
問題266 怎樣寫參數個數可變
的宏? 343
問題267 #pragma預處理的作用
是什麼? 345
問題268 條件編譯的表達形式有
哪些? 346
問題269 如何應用內部函數? 347
問題270 如何應用外部函數? 348
第16章 文件的讀寫操作 351
問題271 各個讀寫操作的區別是
什麼? 352
問題272 C語言文件有哪幾類? 354
問題273 怎樣寫數據文件,使之可以在
不同字大小、位元組順序或浮點
格式的機器上讀入? 355
問題274 能否使用fflush()函數清除多餘
的輸入? 356
問題275 fopen()函數打開文件失敗的
原因是什麼? 357
問題276 為什麼打開文件後要及時
關閉? 358
問題277 文件的打開方式有哪些? 358
問題278 如何正確使用putchar()函數和getchar()函數? 360
問題279 getchar()函數、getch()函數和getche()函數的區別是
什麼? 361
問題280 使用printf()函數和scanf()函數
需要注意什麼? 362
問題281 printf()函數有哪些參數? 363
問題282 scanf()函數的格式控制包括
哪些? 364
問題283 printf()函數和scanf()函數格式
符的修飾符「*」有什麼
作用? 366
問題284 fscanf()函數、fprintf()函數與scanf()函數和printf()函數有什麼
不同? 367
問題285 如何判斷文件的結束? 368
第17章 圖形圖像處理 371
問題286 為什麼在使用圖形函數時要
首先初始化圖形模式? 372
問題287 怎樣初始化圖形模式? 372
問題288 初始化時提示「BGI Error: Graphics not initialized
(use 'initgraph')」怎麼辦? 374
問題289 怎樣利用C語言建立獨立的
圖形運行程序? 375
問題290 TC中有幾個畫線函數?怎麼
使用? 376
問題291 TC中有幾個畫矩形函數?怎麼
使用? 377
問題292 TC中有幾個畫圓函數?怎麼
使用? 379
問題293 如何使用C語言填充封閉
圖形? 380
問題294 TC中有幾個和游標有關的
函數?怎樣使用? 382
問題295 如何在圖形模式下輸出
文本? 383
問題296 背景色、線條顏色和填充顏色
有什麼區別?何時使用? 386
問題297 怎樣記住那麼多的顏色? 387
問題298 線條樣式和填充樣式都有
哪些?怎樣設置? 388
問題299 怎樣復制圖形? 392
問題300 怎樣在C語言中製作
動畫? 394
Ⅷ C語言編程經典282例,陽陽買蘋果
從你提出的疑問看,思路你也沒看懂。
注意程序語句執行的順序,循環體中money+=0.8*n是花錢的累加和,day++是天數:n*=2是計算下一天買蘋果的數量。
初始值n=2,d=0
執行while循環
money+=0.8*n;//第一天花的錢
day++;//1天,看到了吧,買2個蘋果是第1天,而不是第0天
n*=2;//這條語句你也寫錯了。計算第二天買的蘋果數量
n<100,繼續執行循環
money+=0.8*n;//兩天花的錢
day++;//2天
n*=2;//計算第三天買的蘋果數量
n<100,繼續執行,依次類推。
直到n*=2,n=128,不滿足循環條件,退出循環,此時n的值是128沒錯,可是並沒有計入花的錢以及天數。花的錢為5天花錢的總和,天數為5天。
Ⅸ C語言 在1~n個整數求迴文數 個數
#include <stdio.h>
int main(void)
{
int n, x, temp, t, sum = 0, i;
scanf("%d", &i);
//for(n=1;n<i;n++)
for (n = 0;n <= i;n++) //因為如棗沖0也是迴文數..所以應該從零渣殲開始, n<=i,包括自己之內的迴文數
{
temp = 0;
x = n;
do
{
t = x % 10;
temp = temp * 10 + t;
x = x /岩衡 10;
}
while (x > 0);
if (temp == n)
sum++;
}
printf("\n sum=%d\n", sum);
}
1000以內的迴文數
在自然數中,最小的迴文數是0,其次是1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151,161,171,181,191,202,212,222,232,242,252,262,272,282,292,303,313,323,333,343,353,363,373,383,393,404,414,424,434,444,454,464,474,484,494,505,515,525,535,545,555,565,575,585,595,606,616,626,636,646,656,666,676,686,696,707,717,727,737,747,757,767,777,787,797,808,818,828,838,848,858,868,878,888,898,909,919,929,939,949,959,969,979,989,999.