admin 管理员组

文章数量: 887021


2024年1月4日发(作者:数据库原理及应用中国人民大学)

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

1=>flag

当flag=1时

输出选择信息

ch=getchar()

实例2

实例3

得到大写字符:ch=toupper(ch)

ch=='F'

调用函数print

返回:return

定义宏代换:10=>N

-1=>k

0=>n

当!(n>0&&(k>0&&k<=65536))时

输出显示信息

scanf("%ld%ld",&k,&n)

若数据错误,输出错误信息

调用随机数子函数生成随机数

输出随机数

原始进制赋值:1=>k,0=>xb,0=>x1,0=>x2

得到初始值:xa,a,b

当x1!=0时

x2+(x1%10)*k=>x2

x1/10=>x1

a/10=>a

实例4

„Y‟=>yes

当toupper(yes)=='Y'时

0=>count

产生随机数:number

输入guess值

当guess!==number时

当1

给出判断信息

15次退出

输入yes值

实例5

0=>i

当i

a=30*sin(i*N)

0=>j

当j

j==40

是 否

实例6

输入初始范围:xmin,xmax

得到最大值与最小值:fmax,fmin

当fmin*fmax>0时

当fabs(fmax-fmin)>=1e-5时

(xmin+xmax)/2=>xmid

fun(xmid)=>fmid

fmid*fmin<0

是 否

xmid=>xmax

fmid=>fmax

xmid=>xmin

fmid=>fmin

输出结果

实例7

主函数main()

当ch==‟Y‟

得到盘子数

调用递归函数hanoi解题

得到继续键值给ch

ch的大写值=>ch

„Y‟ =>ch

递归函数hanoi

实例8

n>0

是 否

递归调用hanoi(n-1,a,c,b)

显示移盘信息move

递归调用hanoi(n-1,c,b,a)

当i<(N-1)

a[i]=2*i+1

i++

2=>a[0]

i=1

i=1

实例9

当i<(N-1)

a[i]!=0

是 否

j=i+1

当j

a[j]%a[i]==0

是 否

a[j]=0

j++

i=0,j=0

当i

a[i]!=0

是 否

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

a[i]!=0

是 否

printf("n")

i++

2=>a[0]

i=1

当i<(N-1)

a[i]=2*i+1

i++

i=1

当i<(N-1)

a[i]!=0

实例10

当i

i=>k i+1=>j

当j

a[j]

是 否

j=>k

0=>i

实例11

实例12

当i<=n时

1=>j

当j

a[i-1][j-1]+a[i-1][j]=>a[i][j]

j++

i++

0=>i

2=>i

0=>find 0=>first (n-1)=>last

交互得到查找值k

(first+last)/2=>half

k==a[half]

是 否

输出找到信息

1=>find

k>a[half]

是 否

half+1=>first half-1=>last

实例13

0=>j

当i

0=>j

当j

0=>a[i][j]

j++

N/2=>j

1=>a[0][j]

2=>k

实例14

当i<5时

‘B‟=>xwei[i], 1=>j

当j<5时

j!=i

是 否

„C‟=>xwei[j], 1=>k

„A‟=>xwei[0], 1=>i

实例15

当i<4时

0=>j

当j<13时

a[i]=>s[2*j+26*i],b[j]=>s[2*j+26*i+1]

j++

i++

0=>i

图15-2 流程图

实例16

得到原始字符串,标志信息数组置初值‘-’, 0=>i

当i

str[0][i]=='0'

是 否

i=>j

(j

str[1][i]=='0'

是 否

i=>j

str[0][i]!=str[1][i])

实例17

实例18

得到字符串:gets(p)

当*p!='0'时

(*p>='A')&&(*p<='Z')

up

++

(*p>='a')&&(*p<='z')

low

++;

*p==' '

space

++;

图18-2 流程图

当*p!='0'&&(*p>='0')&&(*p<='9')时

k=*(p++)-48;

number=10*number+k;

return number;

digit++other++;

实例19

当i

i++

0=>i

0=>flag

0=>j

当j

实例20

实例21

实例22

0=>i

当i

i+1=>j

当j

strcmp(*(p+i),*(p+j))>0

是 否

pstr=*(p+j); *(p+j)=*(p+i);

*(p+i)=pstr;

j++

i++

(b-a)/N=>h

((*fun)(a)+(*fun)(b))/2.0=>s

1=>i

当i<=N时

printf("nInputdata(name,number,sex(m/w),

s+(*fun)(a+i*h)=>s

score)of studene[%d]:n",n+1);

i++

gets(student[n].name);

return (s*h)

gets(numstr);

student[n].number=atol(numstr);

student[n].sex=getchar();

getchar();

实例23

实例24

函数new

head=>p1,head=>p2

开辟空间:p=(struct student *)malloc(LENGTH);

gets(numstr);p->number=atol(numstr); gets(p->name);

p->number>0

是 否

head==NULL

显1=>flag

head=>*p

当p!=NULL&&flag==1时

p->key==k

是 否

0=>flag p->next=>p

flag==0

是 否

p->count++; head=>p

head=(struct number *)malloc(LENGTH);

head->key=k; head->count=1; head->next=p;

函数list

实例25

atol(gets(numstr))=>k

head==NULL

是 否

head->number==k

是 否

p1=head;

head=

head=>p1

当p1->number!=k&&p1->next!=NULL时

p->numbernumber

是 否

head==p1

是 否

head=p;

p>next

=p1;

n++;

p2>nextp->number==p1->number

是 否

strcpy p1>next==NULL

是 否

p1->next=p;

p>next=NULL;

n++;

=p; (p1>name,p>next p->name);

=p1;

n++;

图25-2 流程图

实例26

实例27

另外三种赋值

k=RED

当k<=BLACK时

k!=i&&k!=j

是 否

printf("%-4d",++n);

当i<=BLACK时

j=RED

当j<=BLACK时

i!=j

是 否

另外三种赋值

i=RED

当i

gets(info[i].name);

scanf("%d",&info[i].age); getchar();

info[i].sex=getchar();getchar();

info[i].job=getchar();getchar();

根据职业不同选择单位类型输入数据

0=>i

实例28

循环右移

实例29

1=>flag

(fp1=fopen("","r"))==NULL

是 否

输出信息:文件打不开

flag=0;

fclose(fp1);

当i<16时

bit=(k&number)?1:0;

printf("%d",bit);

i==7

是 否

printf("--");

k>>=1;

printf("(2)n");

b=number>>n

a=number<<(16-n);

number=a|b;

return (number);

进制转换显示

k=0x8000;

printf(" %04x(16) t",number);

实例30

写新记录

实例78

k=n*sizeof(struct student);

打开文件

文件指针移动到指定地点

gets(numstr); =atol(numstr);

定义变量x ,y, z

gets();

for (x=0 ; x<=100 ; x++)

gets(numstr); =atof(numstr);

fwrite(&stud,sizeof(struct student),1,fp);

for ( y=0 ; y<=100 ; y++)

n++;

z=100-x-y

15x+9y+z=300

T F

打印x ,y ,z

实例79

n=0

x 从apple变到 pear

y 从apple变到 pear

x≠y

T F

z从apple变到 pear

z ≠x和z≠y

T F

For (loop =1 ;loop<=3 ;loop++)

loop

1 2 3

pri=x pri=y pri=z

pri

apple arange banana pineapple pear

x=1, y=18

打印 打印 打印 打印 打印

apple arrange banana pineapple pear

n=n+1

y >0

输出制法的总数

实例

80

x=2*(x+1)

y--

打印x

实例81

输入a,b

m=a ,n=b

a

a ,b 交换

c=a%b

c!=0

a=b, b=c , c=a%b

输出最大公约数和最小公倍数

实例82

定义数组a[3][18], s[18]

输入三个字符串

a[0]>a[1]

交换a[0] 和a[1]

a[0]>a[2]

交换a[0] 和a[2]

a[1]>a[2]

实例83

交换a[1] 和a[2]

输出三个字符串a[0] , a[1] , a[2]

定义符号常量N为10

输入N名学生的学号和成

绩并给数组num和st

表达式1 x=1

x<=N

sum=sum+st[x]

x++

ave=sum/N 打印ave

表达式1 x=1

x<=N

St[x]>=ave

打印num[x] , st[x]

x++

实例84

定义数组a[11], 整型变量 x ,y ,z

a[y]>a[y+1]

输入数组给a[1]到a[11]

x=1

x<=9

y=1

交换a[y]和a[y+1]的位置

y++

y<=10-x

x++

实例85

输出a[1]到a[10]

定义数组a[11],变量l,h,m及指针变量p

输入数据给a[1]到a[10],输入要找的数 x

l=1 ; h=10 ; p=a

当l<=h

m=( l+h)/2

x= =*(p+m)

T F

用break结束 x>*(p+m)

T F

循环 l=m+1 h=m-l

T l<=h F

打印数的位置 打印无此数

实例86

定义长整型变量a b ,和整型变量 x

a=1 ,b=1

for ( x=1 ; x<=20 ; x++)

输出 a , b

T x%2= =0 F

回车

a=b+a

b= a+b

实例87

输入数据给数组a[3][4]

for (x=0; x<=2; x++)

p=0

for (y=1; y<=3; y++)

a[x][y]>a[x][p]

T F

P=y

交换a[x][0] 和a[x][p]

输出数据

实例88

实例89

定义变量a, b, c, x =0

while (x<5)

a=rand( )%100

b=rand( )%100

F a+b>100 T

任意输入c值

continue

c= =a+b

T F

打印回答正确 打印回答错误

x++ x=0

程序结束

a=b, b=c , c=a%b

输出最大公约数

c!=0

a ,b 交换

a

m=a ,n=b

输入a,b

c=a%b

实例91

定义浮点型变量 a,b,c,p,x1,x2,realpart,imagepart

任意输入三个浮点型数

T a= =0 &&b= =0 F

打印散 a= =0 &&b!=0

无穷多解 T F

或无解

a!=0

T F

p= b-4ac

打印单根

x=-c/b p<0

T F

打印两虚根 打印两实根

2

实例92

定义整型变量le, nu , ot, x

定义字符型变量及数组 c, t[100]

x, le, nu, ot 都赋值为0

while ( (c=getchar( ))!=‟n‟)

t[x]=c

(„a‟<=t[x]&&t[x]<=‟z‟)||

(„A‟<=t[x]&&t[x]<=‟Z‟)

T F

„0‟<=t[x]&&t[x]<=‟9‟

T F

++le

++nu ++ot

x++

输出le , nu, ot

实例93

定义字符型数组ch[20],整型变量i,j=1浮点型函数(*f)()

任意输入字符串

T !strcmp(ch,”sin”) F

T !strcmp(ch, “cos”) F

f=sin

!strcmp(ch,”tan”)

T F

f=cos

f=tan j=0

j= =0

T F

打印 input error 输出三角函数值

实例94

定义整型数组变量a[N1][N2],max,min,i,j,row1,row2,column1,column2, (*ap)[4]

ap=a row1=row2=column1=column2=0

for( i=0; i

for( j=0; j

任意输入字符串放到二维数组中

max=min=a[0][0]

for( i=0; i

for( j=0; j

max< *(*(ap+i)+j)

T F

max= *(*(ap+i)+j) ; row1=i;

column1=j;

min> *(*(ap+i)+j)

T F

min> *(*(ap+i)+j) ;row2=j;

column2=j

打印最大值和最小值及它们所在的行与列

实例95

定义符号常量N 20

定义浮点型a[N] *p temp p=a

for (i=0; i

任意输入20个数存放在数组中

for (i=0; i

for (j=i+1; j

*(p+i)<*(p+j)

T F

交换这两个值

for (i=0; i

i%5= =0

T F

输出回车和排序后的数列

实例96

定义整型变量n

定义浮点型变量e, p

给浮点型变量赋值 e=p=1.0

for ( n=1; n<=10 ;n++)

p=p*n

e=e+1.0/p

打印输出e的值

实例97(1)

定义变量k ,n 并为它们赋值 n=0 ; k=2 ;

while (n< 15)

isprime(k)&&isprime(k+1)

T F

n=n+1

打印k, k+2

k=k+1

实例97(2)

定义变量并给其赋值k=2,j=1

while ((k<=a/2)&&j)

a%k= =0

T F

j=0 k=k+1

return( j )

实例98

定义整型变量i,j

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

for(j=0;j<4-i;j++)

printf(" ")

for(j=0;j

printf("*")

printf("n")

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

for(j=0;j<4-i;j++)

printf(" ")

for(j=0;j

printf("*")

printf("n")

实例99

定义字符型变量c

任意输入字符型变量&c

while (c !=‟#” )

c>='A'&&c<='Z'

T F

c>='a'&&c<='z'

c=c+32 T F

c=c-32

任意输入字符型变量&c

实例100

定义整型变量a, k

任意输入一个整数

a>0&&a<1000

F T

打印出输入的数

这是一个超

出范围的数 打印 is group of

for(k=1;k<=a;++k)

a%k= =0

T F

打印出来k


本文标签: 实例 数组 输入 应用 输出