2022年c语言讲过的编程题 .pdf
循环1、 编程求 1+22+333+ .前 n 项的和。如:当 n=5 时,和为: 60355。#include #include main() int n,s=0,t=0,i; printf( 请输入 n 的值: ); scanf(%d,&n); for(i=1;i=n;i+) t=10*t+1; 或者 t=(pow(10,i)-1)*10/9 ; s=s+i*t; printf(%d ,s); 2、 阶乘和。如1+2!+3! +。 。 。 。n!. 使用两重循环实现#include main() int i,j,n,jc=1,sum=0; printf( 请输入 n 的值 :); scanf(%d,&n); for(i=1;i=n;i+) jc=1; for(j=1;j=i-1;j+) jc*=j; sum+=jc; printf( 结果为 %d,sum); 或使用一重循环#include main() int i,j,n,jc=1,sum=0; printf( 请输入 n 的值 :); scanf(%d,&n); for(i=1;i=n;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - jc*=j; sum+=jc; printf( 结果为 %d,sum); 3、 使用循环,编程实现F(n)=F(n-1)+F(n-2)的值。#include main() int i=1,j=1,k,c,n; printf( 请输入 n 的值 :); scanf(%d,&n); printf(%d %d ,i,j); for(c=3;c=n;c+) k=i+j; j=i; i=k; printf(%d ,k); 4、 打印 100-999 以内所有满足条件的数,条件为,这个数等于其个位数,十位数,百位数立方和,如153=1*1*1+5*5*5+3*3*3 #include main() int a,b,c,n; for (n = 100;n1000;n+) a = n/100; b = n%100/10; c = n%10; if (n = a*a*a+b*b*b+c*c*c) printf (%dn,n); 5、 编写程序输出下列图形:1 22 333 4444 55555 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 666666 7777777 88888888 999999999 #include main() int i,j,n; printf( 请输入行数 :); scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=i;j+) printf(%d,i); printf(n); 6、请编写一个程序,程序的功能是:打印以下图案 * * * * * * * * * * * * * * * * #include main() int n,i,j; printf( 请输入行数 :); scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(* ); printf(n); 7、 请编写一个程序,程序的功能是:打印以下图案 * * * * * * * * * * * * * * * * * * * * * * * * 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - * #include main() int x,y,z; for(x = -4 ; x = 4 ;x +) for(z = 1 ; z = abs(x) ; z+) printf( ); for(y = 1 ; y = 9-abs(x)*2 ; y+) printf(* ); printf(n); 或者#include stdio.h void main() int i,j,k; char c,d; c=*; d= ; for(i=0;i3) k=6-i; for(j=0;j7;j+) if(j3+k) printf(%c,d); else printf(%c,c); printf(n); 数组名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 1、 使用数组,编程实现F(n)=F(n-1)+F(n-2)的值。#include main() int a20=1,1; int i; for(i=2;i20;i+) ai=ai-1+ai-2; for(i=0;i20;i+) printf(%d ,ai); 2、 从键盘输入一个值,查找数组中这个值出现的次数,并打印出现的位置(即下标)#include #define N 10 main() int aN; int i,count=0,n; printf( 请输入数组元素值:); for(i=0;iN;i+) scanf(%d,&ai); printf( 请输入要找的那个元素的值:); scanf(%d,&n); for(i=0;iN;i+) if(ai=n) count+; printf( 所出现的位置为:%dn,i); printf( 所出现的次数为:%dn,count); 3、 有一个整型数组a10,它的初值分别是:6,5,9,3,8,1,0,4,2 和 7。要求编写程序, 将数组的值按升序排列,并将从键盘输入的一个整数插入到该数组中,保证插入后的数组仍按升序排列。#include #define N 10 main() int a20=43,545,12,32,66,34,23,43,89,90; int n,i,t,j; scanf(%d,&n); for(i=0;iN-1;i+) for(j=i+1;jaj) t=ai; ai=aj; aj=t; for(i=0;in) for(j=N-1;j=i;j-) aj+1=aj; ai=n; break; for(i=0;i=N;i+) printf(%d ,ai); 4、 互换给定数组中的最大数和最小数。如将下面8 个数:5 , 3 , 1 , 4 , 2 , 8 , 9 , 6 变成:5 , 3 , 9 , 4 , 2 , 8 , 1 , 6 #include #define N 8 main() int aN=5,3,1,4,2,8,9,6; int i,max_i,min_i,t,max,min; printf( 交换前元素值为:); for(i=0;iN;i+) printf(%d ,ai); printf(n); max=min=a0; for(i=1;imax) max_i=i; max=ai; if(aimin) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - min_i=i; min=ai; t=amax_i; amax_i=amin_i; amin_i=t; printf( 交换后元素值为:); for(i=0;iN;i+) printf(%d ,ai); printf(n); 5、 不 使 用concat 函 数 , 实 现 字 符 串 的 连 接 操 作 。 如 ” abcdef” ,” 12345” ,连 接 后 得到” abcdef12345”#include main() int i,j; char ch120,ch210; gets(ch1); gets(ch2); for(i=0;istrlen(ch1);i+); for(j=0;jstrlen(ch2);j+) ch1i+j=ch2j; ch1i+j=0; puts(ch1); 6、 统计一行字符串中单词的数量。main() int i,count=0; char ch50; gets(ch); if(ch0!= ) count=1; for(i=1;chi;i+) if(chi-1= &chi!= ) count+; printf(%d,count); 7、 计算一行字符串中最长单词的字符长度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 方法 1:#include main() int maxlen=0,i,len=0; char ch50; gets(ch); for(i=0;chi;i+) if(chi= ) if(lenmaxlen) maxlen=len; len=0; else len+; if(lenmaxlen) maxlen=len; printf(%d,maxlen); 方法 2:#include main() char c50; int i,j,max=0; gets(c); if(c0!= ) for(j=1;cj!= &cj;j+); max=j; for(i=0;ci;i+) if (ci= ) for(j=i+1;cj!= &cj;j+); if(maxj-i) max=j-i-1; if(cj-1= &maxj-i) max=j-i-1; printf(%d,max); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 8、 统计一行字符串中所出现的字母字符、数字字符及其他字符的个数。#include main() char a20; int i,zm=0,sz=0,kg=0,qt=0; /scanf(%s,a); gets(a); for(i=0;ai;i+) if(ai=a&ai=A&ai=0)&(ai=9) sz+; else if(ai= ) kg+; else qt+; printf(%d %d %d %d,zm,sz,kg,qt); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -