当前位置:文档之家› C语言学习100例实例程序

C语言学习100例实例程序

C语言学习100例实例程序
C语言学习100例实例程序

【程序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) /*确保i、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;

bonus=bonus10+(i-1000000)*0.01;

printf("bonus=%d",bonus);

}

==============================================================

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的

结果满足如下条件,即是结果。请看具体分析:

2.程序源代码:

#include "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;

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;

if (x>y)

if(x>z)

if(y>z)

}

【程序6】

题目:用*

1.

2.

main()

{

printf("Hello C-world!\n");

printf(" ****\n");

printf(" *\n");

printf(" * \n");

printf(" ****\n");

}

==============================================================

【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

{

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.程序源代码:

#include "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.程序源代码:

#include "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(" ");

}

}

==============================================================

【程序10】

题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i 控制行,j 来控制列,j 根据i 的变化来控制输出黑方格的个数。

2.程序源代码:

#include "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到这个数),如果能被整除, 则表明此数不是素数,反之是素数。

2.程序源代码: #include "math.h"

main() {

printf("\n");

{ 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 的值,重复执行第一步。

main()

{

int n,i;

{

while(n!=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");

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.程序源代码:

#include "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

}

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;

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[i]);

printf("%d\n",k[n]);

}

}

}

==============================================================

【程序20】

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++)

main(){ int n=1,i; for(i=1;i<10;i++) { n=(n+1)*2; } printf("the total of apple is%d\n",n);

getch();}和本题的函数同样可以实现求桃子的个数main(){ int day,x1=1,x2; day=9 ; while(day>0)

{

x1=(x1+1)*2; day--; } printf("the total is%d\n",x1); getch();}

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】

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.程序源代码:

#include "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;

sum=1;

else

sum=j*fact(j-1);

return sum;

}

==============================================================

【程序27】

题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

1.程序分析:

2.程序源代码:

#include "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 c;

if(n==1) c=10;

else c=age(n-1)+2;

return(c);

}

main()

{ printf("%d",age(5));

}

==============================================================

【程序29】

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

1. 程序分析:学会分解出每一位数,如下解释:

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

【程序31】

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

2.程序源代码:

#include

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.程序源代码:

#include

void main(void)

{

int color;

for (color = 0; color < 8; color++)

{

cprintf("This is color %d\r\n", color);

cprintf("Press any key to continue\r\n");

getch();/*输入字符看不见*/

}

}

============================================================== 【程序33】

题目:学习gotoxy()与clrscr()函数

1.程序分析:

2.程序源代码:

#include

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.程序源代码:

#include

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();/*调用此函数*/

}

============================================================== 【程序35】

题目:文本颜色设置

1.程序分析:

#include

void main(void)

{

int color;

for (color = 1; color < 16; color++)

{

textcolor(color);/*设置文本颜色*/

cprintf("This is color %d\r\n", color);

}

textcolor(128 + 15);

cprintf("This is blinking\r\n");

}

==============================================================

【程序36】

题目:求100之内的素数

1.程序分析:

2.程序源代码:

#include

#include "math.h"

#define N 101

main()

{

int i,j,line,a[N];

for(i=2;i

for(i=2;i

for(j=i+1;j

{

if(a[i]!=0&&a[j]!=0)

if(a[j]%a[i]==0)

a[j]=0;}

printf("\n");

for(i=2,line=0;i

{

if(a[i]!=0)

{printf("%5d",a[i]);

line++;}

if(line==10)

{printf("\n");

line=0;}

}

}

==============================================================

【程序37】

题目:对10个数进行排序

1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,

2.程序源代码:

#define N 10

main()

{int i,j,min,tem,a[N];

/*input data*/

printf("please input ten num:\n");

for(i=0;i

{

printf("a[%d]=",i);

scanf("%d",&a[i]);}

printf("\n");

for(i=0;i

printf("%5d",a[i]);

printf("\n");

/*sort ten num*/

for(i=0;i

{min=i;

for(j=i+1;j

if(a[min]>a[j]) min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem;

}

/*output data*/

printf("After sorted \n");

for(i=0;i

printf("%5d",a[i]);

}

============================================================== 【程序38】

题目:求一个3*3矩阵对角线元素之和

1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

2.程序源代码:

main()

{

float a[3][3],sum=0;

int i,j;

printf("please input rectangle element:\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%f",&a[i][j]);

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf("duijiaoxian he is %6.2f",sum);

}

【程序39】

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

2.程序源代码:

main()

{

int a[11]={1,4,6,9,13,16,19,28,40,100};

int temp1,temp2,number,end,i,j;

printf("original array is:\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("insert a new number:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

{for(i=0;i<10;i++)

{ if(a[i]>number)

{temp1=a[i];

a[i]=number;

for(j=i+1;j<11;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

for(i=0;i<11;i++)

printf("%6d",a[i]);

}

==============================================================

【程序40】

题目:将一个数组逆序输出。

1.程序分析:用第一个与最后一个交换。

2.程序源代码:

#define N 5

main()

{ int a[N]={9,6,5,4,1},i,temp;

printf("\n original array:\n");

for(i=0;i

for(i=0;i

{temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}

printf("\n sorted array:\n");

for(i=0;i

printf("%4d",a[i]);

}

【程序41】

题目:学习static定义静态变量的用法

1.程序分析:

2.程序源代码:

#include "stdio.h"

varfunc()

{

int var=0;

static int static_var=0;

printf("\40:var equal %d \n",var);

printf("\40:static var equal %d \n",static_var);

printf("\n");

var++;

static_var++;

}

void main()

{int i;

for(i=0;i<3;i++)

varfunc();

}

============================================================== 【程序42】

题目:学习使用auto定义变量的用法

1.程序分析:

2.程序源代码:

#include "stdio.h"

main()

{int i,num;

num=2;

for (i=0;i<3;i++)

{ printf("\40: The num equal %d \n",num);

num++;

{

auto int num=1;

printf("\40: The internal block num equal %d \n",num);

num++;

C语言程序设计部分习题及例题参考程序

《C语言程序设计》部分例题及课后习题参考程序1.编程计算如下分段函数: y={2x+3 x≥10 4x 0≤x<10 5x?6 x<0 [参考程序] #include int main() { float x,y; printf("input x:"); scanf("%f",&x); if(x>=10) y=2*x+3; else if(x>=0) y=4*x; else y=5*x-6; printf("y=%.2f\n",y); } 2.编程将从键盘输入的百分制成绩转换为等级分,转换方法如下:90以上(大于或等于90,下同)为A,80分以上为B,70分以上为C,60分以上为D,60分以下,即低于60分为E。[参考程序] #include int main() { float score; char rank; printf("input a score:"); scanf("%f",&score); if(score>100||score<0) { printf("invalid score input\n"); exit(-1); } switch((int)score/10) { case 10: case 9: rank='A';break; case 8: rank='B';break; case 7: rank='C';break;

rank='D';break; default: rank='E'; } printf("%.2f:%c\n",score,rank); return 0; } 3.编程判断以从键盘输入的三个数为边长,是否能构成三角形。 [参考程序] #include int main() { float a,b,c; printf("input a,b,c:"); scanf("%f%f%f",&a,&b,&c); if(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a) printf("(%.2f,%.2f,%.2f)能围成三角形\n",a,b,c); else printf("(%.2f,%2.2f,%.2f)不能围成三角形\n",a,b,c); } 4.编程实现将从键盘输入的一个正整数逆序输出,如输入1234,输出3421 [参考程序] #include int main() { int n; printf("input a number:"); scanf("%d",&n); do { printf("%d",n%10); n/=10; } while(n!=0); return 0; } 5.输入一个1~10范围内的整数,计算该数的阶乘。 [参考程序] #include int main() { int n,s=1,i; printf("input a number(1~10):"); scanf("%d",&n); for(i=2;i<=n;i++) s*=i;

C语言程序设计100例之(15):除法算式

C语言程序设计100例之(15):除法算式 例15 除法算式 问题描述 输入正整数n(2≤n≤68),按从小到大输出所有形如abcde/fghi=n的表达式。其中a~i为1~9的一个排列。 输入格式 每行为一个正整数n (n <= 1500),输入n=0结束。 输出格式 输出满足条件的所有形如abcde/fghi=n的表达式,每个表达式占一行,具体格式参见输出样例。 输入样例 4 20 62 输出样例 15768/3942=4 17568/4392=4 23184/5796=4 31824/7956=4 No Solution! 79546/1283=62 94736/1528=62 (1)编程思路。 本例需要先确定好穷举的思路。虽然题目说a~i为1~9的一个排列,但穷举1~9的所有排列显然没有必要。 可以穷举除数fghi,这是一个4位数,最小可为1234,最大可为9876,然后按fghi*n 计算出abcde,最后判断这9个数字是否不相同。 为判断9个数字是否相同,可以定义一个数组flag[10],其中flag[i]的值表示数字i在算式中出现的次数,显然flag[1]~flag[9]的值全为1才满足要求。 另外,在穷举时进行适当优化。若计算出abcde小于12345,显然除数fghi太小,直接增大除数进行下次穷举;若计算出abcde大于98765,显然除数fghi太大,不再可能找到解,直接退出穷举循环。

(2)源程序。 #include int main() { int n,x,y,i,flag[10],t; while (scanf("%d",&n) && n!=0) { t=0; for (y=1234;y<=9876;y++) { x=y*n; if (x<12345) continue; if (x>98765) break; for (i=0;i<10;i++) flag[i]=0; flag[x/10000]++; flag[x%10000/1000]++; flag[x%1000/100]++; flag[x%100/10]++; flag[x%10]++; flag[y/1000]++; flag[y%1000/100]++; flag[y%100/10]++; flag[y%10]++; for (i=1;i<10;i++) if (flag[i]!=1) break; if (i==10) { printf("%d/%d=%d\n",x,y,n); t++; } } if (t==0) printf("No Solution!\n"); } return 0; } 习题15 15-1 完美立方 问题描述 a3 +b3 + c3 = d3为完美立方等式。例如13 + 63 + 83 =93。编写一个程序,输出100以内的所有四元组(a, b, c, d),使得a3 +b3 + c3 = d3,其中1≤a< b< c< d≤100。 输入格式

C语言程序设计50例(经典收藏)

水仙花 #include void main() { int a,b,c,i; for( i=100;i<1000;i++) { a=i/100; b=i%100/10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) { printf("\n"); } } } 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有

的排列后再去掉不满足条件的排列。 2.程序源代码: #include "stdio.h" #include "conio.h" 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) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } getch(); } 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按1 0%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码:

C语言程序设计实验与习题答案

2.程序填空 (1)以下程序的功能是计算1~50之间能被7整除的整数之和。 #include void main() {int i,sum= 0; for(i=1; 50;i++) if( i%7==0) sum+=i; printf("sum=%d\n",sum); } (2) 下面程序接收来自键盘的输入,直到输入+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #include void main() {char cx; char front=’’; while ( (cx=getchar())!=’\n’) {if (cx!=’’) putchar(cx); if (cx= =’’) if (front!=’’) putchar(cx); front=cx; } } 3.程序改错 (1)下列程序的功能是求1+3+5+…99的和。 #include

void main( ) { int s,i; ★ //int s=0,i; i=1; while(i<=99)s=s+i;★ //{s=s+i;i++;} printf("1+3+5+…99的和是:%d\n",s); } (2)下面程序的功能是输入一个正整数,判断是否是素数,若 为素数输出1,否则输出0。 #include void main() { int i,x,y=0; ★ //y=1 scanf("%d",&x); for(i=2;i<=x/2&&y;i++) if ((x%i)!=0) y=0; ★ //x%i==0 printf("%d\n",y); } 4.设计性实验 (1)题 /* 方法(1)精度控制*/ #include #include

C语言程序设计100个经典例子

经典C语言程序设计100例 1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色 33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数37.对10个数进行排序 38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出 41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法 45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与& 52.学习使用按位或| 53.学习使用按位异或^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出 68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序80.海滩猴子分桃81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数 85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的* 89.数据加密90.专升本一题91.时间函数举例1 92.时间函数举例2 93.时间函数举例3 94.一个猜数游戏95.家庭财务管理小程序96.计算字符串中子串出现的次数 97.输入字符并保存到磁盘98.字符串转换成大写字母并输出保存99.文件操作应用1 100.文件操作应用2 -------------------------------------------------------------------------------- c语言经典100题【实用】

经典C语言程序设计100例

经典C语言程序设计100例 【程序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) /*确保i、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;

《C语言程序设计》题库及答案

《C语言程序设计》题库及答案

《C语言程序设计》复习题库 1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717 2、程序填空:用*号输出字母C的图案。 #include "stdio.h" #include "conio.h" main() { _____________ printf(" *\n"); _____________ _____________ getch(); } 3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!) 答案:1533459

4、/*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ 答案:6591 #include void main() { int total=0, mc=1, k=700; int pm[10],count=0; while( (k>=2) && mc<=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(" %d\n",total);

C语言实用程序设计100例流程图

.. ;. C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1) 实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆实例40六叶图案

.. ;. 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国 实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗 实例76显示蓝天白云图形 实例77百叶窗 第四篇计算机等级考试上机试题(二级)第五篇计算机等级考试上机试题(三级)部分流程图 实例1

大学C语言程序设计(编程题)

C语言程序设计习题(编程题 C语言程序设计习题(编程题 习题1(编程题)[知识点:基础知识编制程序,要求输入整数a和b,若 a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。习题1-参考答案 main() printf("Input a & b:"); if (a*a+b*b>100) printf("%d\n",(a*a+b*b)/100); else printf("%d\n",a+b); } 习题2(编程题)[知识点:基础知识试编 程判断输入的正整数是否既是5又是7的整数倍,若是输出yes,否则输出no。习题2-参考答案 main() printf("Input a:"); if (a%5==0&&a%7==0) printf("yes\n"); else printf("no\n"); } 习题 3(编程题)[知识点:选择结构输入一个整数,判断它能否被3,5,7整 除,并输出以下信息之一: (1)能同时被3,5,7整除 (2)能被其中两 数整除(要指出哪两个)。 (3)能被其中一个数整除(要指出哪一个)。 (4)不能被任何一个整除。习题3-参考答案 main() printf("Input a number:"); if(m%3==0&&m%5==0&&m%7==0) printf("能同时被3,5,7整除 else if((m%3==0&&m%5==0)||(m%3==0&&m%7==0)||(m%5==0&&m%7==0)) {printf("能被其中两数整除 if(m%3==0&&m%5==0) printf("(3,5)"); else if(m%3==0&&m%7==0) printf("(3,7)"); else printf("(5,7)"); else if(m%3==0||m%5==0||m%7==0) {printf("能被其中一个数整除 C语言程序设计习题(编程题if(m%3==0) printf("(3)"); else if(m%5==0) printf("(5)"); else printf("不能被任何一个整除"); } 习题4(编程题)[知识点:选择结构将以下程序段改用非嵌套的if语句实现。 int s,t,m; t=(int)(s/10); {case 10:m=5;break; case 9:m=4;break; case 8:m=3;break; case 7:m=2;break; case 6:m=1;break; default: m=0; 习题4-参考答案 if(s>=100&&s<110) m=5; if(s>=90&&s<100) m=4; if(s>=80&&s<90) m=3; if(s>=70&&s<80) m=2; if(s>=60&&s<70) m=1; 习题5(编程题)[知识点:选择结构用switch编程实现: -1 (x<0) 习题5-参考答案 void main() {float x; printf("Input a x:"); scanf("%f",&x); switch(x<0) {case 1:y=-1;break; case 0:switch(x==0) {case 1:y=0;break; case 0:y=1; } printf("y=%d\n",y); } C语言程序 设计习题(编程题习题6(编程题)[知识点:选择结构将以下程序段改用嵌套的if语句实现。 int s,t,m; t=(int)(s/10); {case:m=5;break; case 9:m=4;break; case 8:m=3;break; case 7:m=2;break; case 6:m=1;break; default: m=0; 习题6-参考答案 if(s>=110&&s<60) m=0 else if(s<110) m=5; else if(s<100) m=4; else if(s<90) m=3; else if(s<80) m=2; else m=1; 习题7(编程题)[知识 点:选择结构编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,- ,*,/(用switch语句实现)。习题7-参考答案 #include

经典C语言程序设计100例5

经典C语言程序设计100例41-50 【程序41】 题目:学习static定义静态变量的用法 1.程序分析: 2.程序源代码: #include "stdio.h" varfunc() { int var=0; static int static_var=0; printf("\40:var equal %d \n",var); printf("\40:static var equal %d \n",static_var); printf("\n"); var++; static_var++; } void main() {int i; for(i=0;i<3;i++) varfunc(); } ----------------------------------------------------------------------------- 【程序42】 题目:学习使用auto定义变量的用法 1.程序分析: 2.程序源代码: #include "stdio.h" main() {int i,num; num=2; for (i=0;i<3;i++) { printf("\40: The num equal %d \n",num); num++; { auto int num=1; printf("\40: The internal block num equal %d \n",num); num++; }

} } ----------------------------------------------------------------------------- 【程序43】 题目:学习使用static的另一用法。 1.程序分析: 2.程序源代码: #include "stdio.h" main() { int i,num; num=2; for(i=0;i<3;i++) { printf("\40: The num equal %d \n",num); num++; { static int num=1; printf("\40:The internal block num equal %d\n",num); num++; } } } ----------------------------------------------------------------------------- 【程序44】 题目:学习使用external的用法。 1.程序分析: 2.程序源代码: #include "stdio.h" int a,b,c; void add() { int a; a=3; c=a+b; } void main() { a=b=4; add(); printf("The value of c is equal to %d\n",c); } ----------------------------------------------------------------------------- 【程序45】 题目:学习使用register定义变量的方法。 1.程序分析:

(完整版)单片机C语言程序设计实训100例-基于8051+PROTEUS仿真毕业论文

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例 第01 篇基础程序设计 01 闪烁的LED * 名称:闪烁的LED 说明:LED按设定的时间间隔闪烁 * #include

while(1) { P0=_crol_(P0,1); P0的值向左循环移动 DelayMS(150); } } 03 8只LED左右来回点亮 * 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果* #include

} } } 04 花样流水灯 * 名称:花样流水灯 说明:16只LED分两组按预设的多种花样变换显示 * #include

C语言趣味程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

C语言程序设计100个简单的经典例子

经典C语言程序设计100例 1、数字排列? 2、奖金分配问题 3、已知条件求解整数 4、输入日期判断第几天 5、输入整数进行排序? 6、用*号显示字母C得图案 7、显示特殊图案 8、打印九九口诀 9、输出国际象棋棋盘 10、打印楼梯并按条件打印笑脸 11、经典兔子问题? 12、判断素数 13、水仙花数问题? 14、正整数分解质因数? 15、学习成绩划分? 16、正整数求其最大公约数与最小公倍数 17、统计英文字母/空格/数字个数? 18、求s=a+aa+aaa+aa、、、a得值19、求解”完数" 20、球体自由落下物理问题 21、猴子吃桃问题 22、乒乓球比赛抽签问题 23、打印菱形图案 24、分数数列求与 25、求1+2!+3!+、、、+20!得与26、利用递归方法求5!?27、将输入字符以相反顺序打印28、岁数问题 29、求解正整数位数? 30、判断回文数 31、星期几猜测游戏 32、改变文本颜色 33、学习gotoxy()与clrscr()函数34、练习函数调用? 35、设置文本颜色? 36、求100之内得素数37、对10个数进行排序? 38、求3*3矩阵对角线元素之 与? 39、数字插入数组重新排序4 0、将一个数组逆序输出 41、static定义静态变量用法 42、使用auto定义变量用法43、 使用static得另一用法 44、使用external得用法 45、使用register定义变量方 法 46、宏#define命令练习(1) 47、宏#define命令练习(2) 48、宏#define命令练习(3) 49、#if#ifdef与#ifnde f得综合应用? 50、#include 得应用练习 51、学习使用按位与&? 52、学习使用按位或| 53、学习使用按位异或^ 54、取一个整数从右端开始得 4~7位。 55、学习使用按位取反~? 56、用circle画圆形 57、学用line画直线 58、用rectangle画方形? 59、画图综合例子1? 60、画图综合例子2 61、打印杨辉三角形? 62、学习putpixel画点? 63、画椭圆ellipse 64、利用ellipseand rectangle画图 65、画个最优美得图案? 66、输入3个数字按大小顺序输 出? 67、输入数组交换元素重新输 出68、多个整数后移位置问题 69、圆圈报数问题 70、计算一个字符串长度 71、编写输入/输出函数 72、创建链表 73、反向输出链表? 74、连接两个链表? 75、算一道简单题目 76、调用函数求1/2+1/4+、、、 +1/n 77、填空练习(指向指针得指针) 78、找到年龄最大得人? 79、字符串排序? 80、海滩猴子分桃 81、已知公式条件求数字 82、八进制转换为十进制 83、求0—7所能组成得奇数个 数84、由两个素数之与表示得 偶数 85、判断一个素数能被几个9整 除 86、两个字符串连接程序 87、结构体变量传递? 88、读取数字得整数值并打印 出该值个数得* 89、数据加密 90、专升本一题 91、时间函数举例1 92、时间函数举例2 93、时间函数举例3 94、一个猜数游戏? 95、家庭财务管理小程序 96、计算字符串中子串出现得次 数 97、输入字符并保存到磁盘98、 字符串转换成大写字母并输出 保存? 99、文件操作应用1? 100、文件操作应用2 ————----—--———---—---——-----—-—-——--——------—--—---——--—--—-—-—--—----———-—-—--- c语言经典100题【实用】

C语言程序设计例子

C语言程序设计例子 题目:输入3个数a,b,c,按大小顺序输出。 1.程序分析:利用指针方法。 2.程序源代码: /*pointer*/ #include "stdio.h" #include "conio.h" main() { int n1,n2,n3; int *pointer1,*pointer2,*pointer3; printf("please input 3 number:n1,n2,n3:"); scanf("%d,%d,%d",&n1,&n2,&n3); pointer1=&n1; pointer2=&n2; pointer3=&n3; if(n1>n2) swap(pointer1,pointer2); if(n1>n3) swap(pointer1,pointer3); if(n2>n3) swap(pointer2,pointer3); printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); getch(); } swap(p1,p2) int *p1,*p2; { int p; p=*p1; *p1=*p2; *p2=p; } 题目:编写input()和output()函数输入,输出5个学生的数据记录。 1.程序分析: 2.程序源代码: #include "stdio.h" #include "conio.h" #define N 5 struct student { char num[6]; char name[8]; int score[4];

}stu[N]; input(stu) struct student stu[]; { int i,j; for(i=0;i

基于51单片机的C语言程序设计

基于51单片机的C语言程序设计实训100例 第 01 篇基础程序设计 01 闪烁的LED /* 名称:闪烁的LED 说明:LED按设定的时间间隔闪烁 */ #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { while(1) { LED=~LED; DelayMS(150); } } 02 从左到右的流水灯 /* 名称:从左到右的流水灯 说明:接在P0口的8个LED 从左到右循环依次点亮,产生走 马灯效果 */ #include #include #define uchar unsigned char #define uint unsigned int

void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { P0=0xfe; while(1) { P0=_crol_(P0,1); //P0的值向左循环移动 DelayMS(150); } } 03 8只LED左右来回点亮 /* 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { uchar i; P2=0x01; while(1)

相关主题
文本预览
相关文档 最新文档