《2022年C语言典型编程例题. .pdf》由会员分享,可在线阅读,更多相关《2022年C语言典型编程例题. .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 典型编程例题一、数列 (阶乘 )问题1、s=1+22+32+202 用 for 循环用 while 循环2、求阶乘20!的值。3、求 1! +2!+ +20!4、输出菲波那契数列前20 个数( 1,1,2, 3,5,8,) 。二、数值型数组1、一维数组的输入和输出2、二维数组的输出#include void main() int i,s=0; for(i=1;i=20;i+) s=s+i*i; printf( “ s=%dn” ,s); #include void main() int i=1,s=0; while(i=20) s=s+i*i;i+; printf( “ s=%dn” ,s
2、); #include void main() int i,t=1; for(i=2;i=20;i+) t=t *i; printf( “ t=%dn” ,t); #include void main() int i,t=1,s=0; for(i=1;i=20;i+) t=t *i; s=s+t; printf( “ s=%dn” ,s); #include void main() int i,a=1,b=1,c; printf( “ %5d, %5d” ,a,b); for(i=1;i=18;i+) c=a+b; a=b;b=c; printf( “ %5d” ,c); printf( “
3、n” ); #include void main() int i,a=1,b=1; for(i=1;i=10;i+) printf( “ %5d, %5d” ,a,b); a=a+b; b=b+a; printf( “ n” ); #include void main() int i,a10; for(i=0;i10;i+) scanf(“ %d” ,&ai); printf( “ n” ); for(i=0;i10;i+) printf ( “ %4d” ,ai); printf( “ n” ); . #include void main() int i,j,a3=1,2,3,4,5,6,7
4、,8,9; for(i=0;i3;i+) for(j=0;j3;j+) printf ( “ %4d” ,aij); printf( “ n” ); . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 2 3、一维数组求和4、二维数组求总和5、二维数组求 各行 的和6、将数组的数列按逆序重新存放并输出。7、一维数组按降序排序(冒泡法)8、一维数组按降序排序(函数,选择法)#include void main() int i,s=
5、0; int a10=5,7,2,4,9,3,6,5,10,20; for(i=0;i10;i+) printf ( “ %4d” ,ai); s=s+ai; printf( “ n sum=%d n” ,s); #include void main() int i,j,s=0; int a3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf( “ n” );for(j=0;j3;j+) printf ( “ %4d” ,aij); s=s+ai j; printf( “ n sum=%d n” ,s); #include void main() int i,j
6、,s; int a3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) s=0; for(j=0;j3;j+) printf ( “ %4d” ,aij); s=s+ai j; printf( “ sum=%d n” ,s); #include void main() int i,j,k,n=10; int x10=5,7,2,4,9,3,6,5,10,1; for(i=0;in;i+) printf (%4d,xi); printf(n); for (i=0;in;i+) for(j=0;jn-1;j+) if(xjxj+1) k=xj;xj=xj+1;xj+1=k; fo
7、r(i=0;in;i+) printf (%4d,xi); printf(n); #include void main() int i,n=10; int a10=5,7,2,4,9,3,6,5,10,1; void sort(int x,int n);for(i=0;in;i+) printf ( “ %4d” ,ai); printf( “ n” ); sort(a,n); for(i=0;in;i+) printf ( “ %4d” ,ai); printf( “ n” ); void sort(int x,int n) int i,j,k,t; for(i=0;in-1;i+) k=i
8、; for(j=i+1;jn;j+) if(xkxj) k=j; t=xi;xi=xk; xk=t; #include void main() int i, t,n=6,a6=1,5,7,13,15,19; for(i=0;in;i+) printf(%5d,ai); printf(n); for(i=0;i n/2;i+) t=ai;ai=an-i-1;an-i-1=t; for(i=0;in;i+) printf(%5d,ai); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
9、 - - - - 第 2 页,共 8 页 - - - - - - - - - 3 9、数据的顺序查找(从键盘输入一个整数,输出与该值相同的数组元素下标)。10、在一组有序的数据中插入数据(输入一个数后,按原来排序的规律将它插入数组中)。11、二维数组转置(使用函数,对给定的44 数组转置,即行列互换)。#include void main() int x, n, t=-1,a10= 10,20,30,40,50,60,70,80,90,100; for(n=0;n10;n+) printf(%5d,an); printf(n 请输入一个数:); scanf(%d,&x); for(n=0;n1
10、0;n+) if(x=an) /找相同数t=n; printf( 相同数下标是%d,t);break; /找到打印并退出循环if(t=-1 ) printf( 没找到相同数); /判断没有找到并输出信息printf(n); #include void main() int n, t,x,k=10; int a11=1,8,9,11,20,25,26,30,58,100,0; for(n=0;nk;n+) printf(%5d,an); printf(n 请输入一个数:); scanf(%d,&x); t=10; for(n=0;nk;n+) if(x=t+1;n-) an=an-1; /后移a
11、t=x; /插入for(n=0;n11;n+) printf(%5d,an); printf(n); #include void main() void fun(int a4); int i,j; int a4=1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16; for(i=0;i4;i+) for(j=0;j4;j+) printf(%5d,aij);printf(n); printf(n); fun(a); for(i=0;i4;i+) for(j=0;j4;j+) printf(%5d,aij);printf(n); void fun(int a4) int
12、 i,j,k; for(i=0;i4;i+) for(j= i+1;j4;j+) k=aij;aij=aji;aji=k; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 4 三、字符数组1、对从键盘输入的一个字符串中的大写英文字母及数字进行计数。2、计算字符长度(使用字符指针、函数)3、删除字符串的部分字符(字符串长度为n,将其左边的k 个字符删除 ,其它字符左移) 。#include void main() char a15
13、;int i,str=0,num=0,x; printf( 请输入一个字符串(=A&x=0&x=9) num+; printf( 字符串包含 %d 个大字字母 n,str); printf( 字符串包含 %d 数字 n,num); #include void main() char str50; int slen(char *a); printf( 请输入一个字符串:); gets(str); printf( 字符串长度为%dn,slen(str); int slen(char *a) int i; for(i=0;ai!=0;i+) ; return i; #include #include
14、 void main() char a20; int i,n,len; printf( 输入一个字符串(20 个):); gets(a); printf(n 删除左边字符数(20):); scanf(%d,&n); len=strlen(a); for(i=0;ilen;i+) if (i=len-n) ai=an+i; else ai=0; printf(n 新字符串: %sn,a); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - -
15、- - 5 4、计算一个字符串中的单词数。5、删除字符串中的某个字符。6、判断一个字符串是否回文。若是回文,输出yes;否则输出no(用指针和函数实现) #include #include void main() void fun(char *p1); char *a=abcffcba; puts(a); fun(a); void fun(char *p1) int n=strlen(p1),i,t=0; char *p2=p1+n-1;/指针 p2 指向最后个字符for(i=0;i n/2;i+, p1+,p2-) if(*p1!=*p2) t=1;break; if(t=0) printf
16、(yes.n); else printf(no.n); #include #include void main() char a=I am a boy.; int n=0,i; for(i=0;(ai!=0);i+) if (ai!= & ai+1= ) n+; if(astrlen(a)-1!= ) n+; printf( 单词数为: %dn,n); #include void main() char a=I am a boy.,b; int i,j; puts(a); printf( 请输入要删除的一个字符:); scanf(%c,&b); for(i=j=0;ai!=0;i+) if (
17、ai!=b) aj+=ai; aj=0; printf(%sn,a); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 6 四、其它类型程序1、求三个数中的最大数(用函数)2、编写两个数交换的函数(用指针)3、递归函数(求Xn的值)。五、使用普通编程、使用函数编程、使用函数和指针编程比较1、一维数组求最大数(普通方法)(用函数)(用函数和指针)#include void main() int max(int x, int y,i
18、nt z); int a,b,c; printf( 请输入三个数a,b,c=?); scanf(“ %d,%d,%d” ,&a,&b,&c); printf( 最大数是: %dn,max(a,b,c); int max(int a, int b, int c) int m; m=ab?a:b; m=mc?m:c; return m; #include void main() void swap(int *x,int *y); int a=5,b=8; swap(&a,&b); printf(%d %dn,a,b); void swap(int *x,int *y)/使用指针传递地址 int t
19、emp; temp=*x; *x=*y; *y=temp; #include void main() float fun1(float x,int n); float x=5.5 ;int n=4; if(fun1(x,n)=0) printf(dataerrorn); else printf(%10.1fn,fun1(x,n); float fun1(float x,int n) float f=0; if(n=0) if(n=0) f=1; else f=fun1(x,n-1)*x; return f; #include void main() int i,n=10,k; int a10=
20、5,7,2,4,9,3,6,5,10,1; for(i=0;in;i+) printf ( “ %4d” ,ai); k=a0; for(i=1;in;i+) if(kai) k= ai;printf( “ n max=%d n ” ,k); #include void main() int i,n=10; int a10=5,7,2,4,9,3,6,5,10,1; int max(int x,int n);for(i=0;in;i+) printf ( “ %4d” ,ai); printf( “ n max=%d n ” ,max(a,n); int max(int x,int n) in
21、t i,k=x0; for(i=1;in;i+) if( kxi) k= xi; return k; #include void main() int i,n=10; int a10=5,7,2,4,9,3,6,5,10,1; int max(*p,int n);for(i=0;in;i+) printf ( “ %4d” ,ai); printf( “ n max=%d n ” ,max(a,n); int max(int *p,int n) int i,k=*p+; for(i=1;in;i+,p+) if(k*p) k=*p; return k; 名师资料总结 - - -精品资料欢迎下载
22、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 7 2、将字符串 逆序 存放(普通方法)(用函数)(用函数和指针)六、向文件 file1.txt 写入一个字符串,然后从文件file1.txt 读出字符串并输出1、逐个写入字符和读出字符(使用 fputc() 、fgetc()函数) #include #include void main() int i; FILE *fp; /定义文件指针 fp char ch,str=sa d67567; if(fp=fopen(fi
23、le1.txt,w)=NULL) printf(can not open filen); exit(0); for(i=0;stri!=0;i+) fputc(stri,fp); /使用 fputc 函数逐个写入字符fp=fopen(file1.txt,r); ch=fgetc(fp); while(ch!=EOF) /EOF 的值是 -1。 (见教材 P353) putchar(ch); ch=fgetc(fp); printf(n); fclose(fp); #include #include void main() int i, n; char t,a= ” I am a boy.” ;
24、 n=strlen(a); puts(a); for(i=0;i n/2;i+) t=ai;ai=an-i-1; an-i-1=t; puts(a); #include #include void main() void fun(char x); char a= ” I am a boy.” ; puts(a); fun(a); puts(a); void fun(char a) int t,i,n=strlen(a); for(i=0;i n/2;i+) t=ai;ai=an-i-1; an-i-1=t; #include #include void main() void fun(char
25、 *p); char a=” I am a boy.” ; puts(a); fun(a); puts(a); void fun(char *p1) int t,i,n=strlen(p1); char *p2=p1+n-1; for(i=0;i n/2;i+,p1+,p2-) t=*p1;*p1=*p2;*p2=t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 8 2、一次写入一个字符串和读出一个字符串(使用 fputs(
26、) 、fgets()函数) #include #include void main() int n; FILE *fp; char ch20,str=abc!67 567ghdf; if(fp=fopen(file1.txt,a+)=NULL) printf(can not open filen); exit(0); fputs(str,fp); fclose(fp); fp=fopen(file1.txt,r); fgets(ch,10,fp); puts(ch); fclose(fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -