c语言整理Word文件下载.docx
《c语言整理Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言整理Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
由小到大输出:
printf("
a[i]);
return(0);
2选择法排序(字符,整数,实数,字符串)
inti,j,t,k;
{t=i;
for(j=i+1;
if(a[t]>
a[j])t=j;
if(t!
=i)
{k=a[i];
a[i]=a[t];
a[t]=k;
3编写一函数,从实参传来一个字符串,分别统计其中数字、大写字母、小写字母和其它字符的个数,输入输出在main函数中完成
intletter,digit,space,other;
{voidcount(charstr[]);
chartext[80];
inputstring:
gets(text);
string:
"
puts(text);
letter=0;
digit=0;
space=0;
other=0;
count(text);
\nletter:
%d\ndigit:
%d,\nspase:
%d,\nother:
%d\n"
letter,digit,space,other);
voidcount(charstr[])
{inti;
str[i]!
='
\0'
;
{if((str[i]>
a'
&
str[i]<
z'
)||(str[i]>
A'
Z'
))
letter++;
elseif(str[i]>
0'
9'
)
digit++;
elseif(str[i]==32)
space++;
else
other++;
4用一函数inv将一个字符串的字符逆序排列。
输入输出在main函数中完成。
#include<
string.h>
{voidinv(charstr[]);
inv(text);
inversestring:
%s/n"
text);
return(0);
voidinv(charstr[])
{chart;
inti,j;
for(i=0,j=strlen(str);
(strlen(str)/2);
i++,j--)
{t=str[i];
str[i]=str[j-1];
str[j-1]=t;
5求200之内的素数的和。
从屏幕输出结果
{inti,sum=0,j;
for(i=2;
200;
{for(j=2;
i;
if(i%j==0)break;
if((j+1)>
i)sum=sum+i;
sum);
6从屏幕输入一行字符,将所有的大写字母转换为小写字母,所有的小写字母转换为大写字母,其它字符不变,从屏幕输出结果
{chara[80];
inti;
请输入一串字符串"
gets(a);
a[i]!
{if(a[i]>
a[i]<
{a[i]=a[i]+32;
continue;
if(a[i]>
a[i]=a[i]-32;
puts(a);
7有一字符串,把其中的字母a和A去掉,成为一个新字符串。
原字符串从键盘输入。
{chara[40]="
adfAKJIKJaga"
charb[40];
inti,j=0;
{if(a[i]!
{b[j]=a[i];
j++;
b[j]='
%s\n"
b);
8求Fibonacci数列的前30项的和。
从屏幕输出结果。
Fibonacci数列为:
F
(1)=1,(n=1)
F
(2)=1,(n=2)
F(n)=F(n-2)+F(n-1),(n>
=3)
{inta=1,b=1,c,sum=2,i;
30;
{c=b;
b=a+b;
a=c;
sum=sum+b;
Fibonacci数列的前30项的和:
9从键盘输入一个大于2的整数,判断是否是素数。
要求用函数处理
{intf(intx);
inta;
请输入一个数"
a);
if(f(a))
%d是素数\n"
a);
elseprintf("
%d不是素数\n"
intf(intx)
{inti,c=0;
x/2;
if(x%i==0)break;
if((i+1)>
x/2)
c=1;
return(c);
10求两个数的最大公约数和最小公倍数。
{inthmax(intx,inty);
inthmin(intx,inty);
inta,b,m,n;
请输入两个数:
%d%d"
a,&
b);
m=hmax(a,b);
n=hmin(a,b);
\n最大公约数是:
m);
\n最小公倍数是:
n);
return0;
inthmin(intx,inty)
{intn,term;
if(x<
y)
{term=x;
x=y;
y=term;
while(y!
=0)
{term=x/y;
n=x;
return(n);
inthmax(intx,inty)
{inthmin(intx,inty);
intm,p;
p=x*y;
m=p/hmin(x,y);
return(m);
11自己编写一个函数,将两个字符串连接起来,要求在main函数中输入输出
#include<
intmain()
{voidf(charx[],chary[]);
chara[80],b[40];
请输入两串字符串\n"
gets(b);
f(a,b);
voidf(charx[],chary[])
{inti,n,m;
n=strlen(x);
m=strlen(y);
m+1;
x[n+i]=y[i];
12打印水仙花数(课本习题)
{inti,m,n,p,s;
水仙花数:
for(i=100;
1000;
{m=i%10;
n=i/10%10;
p=i/100%10;
s=m*m*m+n*n*n+p*p*p;
if(i==s)
%5d"
i);
13打印杨辉三角形的前10行
{inta[10][10],i,j;
{a[i][0]=1;
a[i][i]=1;
{for(j=1;
i-1;
a[i][j]=a[i-1][j-1]+a[i-1][j];
{for(j=0;
i+1;
a[i][j]);
14从一个5×
5的二维数组中找最大值(或最小值)并输出
{inta[5][5],i,j,max,min;
5;
%3d"
a[i][j]);
{max=a[0][0];
min=a[0][0];
{if(max<
a[i][j])
max=a[i][j];
if(min>
min=a[i][j];
最大值:
max);
最小值:
min);
15求N个整数的平均数(或和、或最小值、或最大值)。
N个整数从键盘输入
#defineN10
{inta[N],sum,average,max,min,i;
N;
max=a[0];
min=a[0];
sum=0;
{sum=sum+a[i];
if(max<
a[i])
max=a[i];
if(min>
min=a[i];
average=sum/N;
sum=%d\naverage=%d\nmax=%d\nmin=%d\n"
sum,average,max,min);
16编写一个函数,求一个正整数各个位的数字的和。
如485的各个位数的和:
4+8+5=17。
在main函数中输入输出
{intsum(intx);
inta,m;
请输入一个整数:
m=sum(a);
%d各位数之和:
a,m);
intsum(intx)
{inti,t,m=0;
i=x%10;
t=x/10;
while(t!
{m=m+i;
i=t%10;
t=t/10;
m=m+i;
}17把一个字符串中所有的字母(或数字)都去掉,产生一个新字符串,输出
{chara[80],b[40];
请输入字符串:
{if(a[i]<
'
1'
||a[i]>
去除数字后的字符串:
18从键盘输入年份,输出是否是闰年。
编写一个函数处理,main函数输入输出
{intf(inty);
inty;
请输入一个年份:
y);
if(f(y))
是闰年\n"
不是闰年\n"
intf(inty)
{if(y%4!
=0||y%100==0&
y%400!
elsereturn1;
19求任意5×
5二维数组的主次两对角线各个元素之总和
{inta[5][5],i,j,sum=0;
{for(j=0;
{if(i==j||i+j==4)
sum=sum+a[i][j];
主次元素之和:
204×
4的二维数组转置,要求从终端输入输出数组
{inta[4][4],b[4][4],i,j;
请输入数组:
4;
scanf("
%4d"
b[j][i]=a[i][j];
输出数组:
{printf("
b[i][j]);
return0;
所有题目不要求用指针处理,但可能要求用函数处理。