c语言习题Word下载.docx
- 文档编号:7960133
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:74
- 大小:69.46KB
c语言习题Word下载.docx
《c语言习题Word下载.docx》由会员分享,可在线阅读,更多相关《c语言习题Word下载.docx(74页珍藏版)》请在冰点文库上搜索。
j<
=i;
j++)
f*=j;
s+=f;
printf("
1!
+...+10!
=%d\n"
s);
return0;
5-9求1-2/3+3/5-4/7+5/9-6/11…..的前20项之和
{
inta,i;
//a:
分子
doubles=0;
=20;
{if(i%2==0)
a=-i;
else
a=i;
s+=1.0*a/(2*i-1);
}
=%.2lf\n"
5-10求数列1,2,3,5,8,13,21,34,…中第25项的值
{inta,b,i,f;
a=1,b=2;
for(i=3;
=25;
{f=a+b;
a=b;
b=f;
f);
5-13输出2000-2100之间所有的闰年,符合以下二者之一的年份为闰年。
1,能被4整除,但不能被100整除
2,能被400整除
要求:
每行输出5项
{intyear,n=0;
for(year=2000;
year<
=2100;
year++)
{
if(year%4==0&
&
year%100!
=0||year%400==0)
{
printf("
%6d"
year);
n++;
if(n%5==0)
printf("
\n"
}}
5-14输出所有的水仙花数,水仙花数是一个三位正整数,每位数字的三次方之和等于该数本身
intx,i,j,k;
for(x=100;
x<
=999;
x++)
i=x/100;
j=x/10%10;
k=x%10;
if(x==i*i*i+j*j*j+k*k*k)
%5d"
x);
5-15输入若干整数,以-1结束,去掉大值和最小值,求平均值
intx,max,min,n=0,sum=0;
输入若干个数,以-1结束:
scanf("
%d"
x);
max=min=x;
while(x!
=-1)
sum+=x;
n++;
if(max<
x)
max=x;
if(min>
min=x;
scanf("
if(n>
2)
printf("
平均值为:
%.1lf\n"
1.0*(sum-max-min)/(n-2));
else
输入的分数个数小于3\n"
输入一行字符,统计英文字母,数字字符,空格和其他字符的个数
intn1=0,n2=0,n3=0,n4=0;
charch;
输入一行字符:
while((ch=getchar())!
='
\n'
)
if(ch>
a'
ch<
z'
||ch>
A'
Z'
n1++;
elseif(ch>
0'
9'
n2++;
elseif(ch=='
'
n3++;
n4++;
英文字母%d个,数字字符%d个,空格%d个,其他字符%d个。
n1,n2,n3,n4);
5-18根据公式/41-1/3+1/5-1/7+…求的近似值,绝对值小于10e-5的项不计算
math.h>
inta=1;
doubleb=1,s=0;
while(abs(a)/b>
=10e-5)
s+=a/b;
a=-a;
b=b+2;
pi=%lf\n"
s*4);
5-21输入一个正整数n,求n是几位数
intn,count=0;
输入一个正整数:
n);
while(n)
n=n/10;
count++;
是%d位数\n"
count);
5-27课本p94页
intn,i,j;
输入行数:
for(i=-n/2;
=n/2;
=abs(i);
"
=n-2*abs(i);
*"
5-28输出100以内所有的质数,每行输出5个
intn,cou=0,i;
for(n=2;
n<
=100;
n++)
for(i=2;
=n-1;
if(n%i==0)
break;
if(i==n)
{
n);
cou++;
if(cou%5==0)
}}
5-29百钱买百鸡问题。
一百个铜钱买了一百只鸡,公鸡一只5钱,母鸡一只3钱,小鸡1钱3只,问,一百只鸡中公鸡、母鸡、小鸡各有多少只
intx,y,z;
for(x=0;
for(y=0;
y<
y++)
for(z=0;
z<
z++)
if(x+y+z==100&
15*x+9*y+z==300)
printf("
公鸡%d个,母鸡%d个,小鸡%d个\n"
x,y,z);
6-1输入10个数到数组t中,求最小值及最小值在数组t中的下标
intt[10],i,mini;
输入10个数:
for(i=0;
10;
t[i]);
mini=0;
if(t[i]<
t[mini])
mini=i;
最小值为:
%d,其下标为:
%d\n"
t[mini],mini);
6-2输入10个数到数组t中,再输入x。
如果有与x相等的数组元素,输出该数组元素的下标,否则,输出-1
intt[10],x,i,flag=0;
输入x:
if(x==t[i])
与x相等的数组元素的下标是:
i);
flag=1;
if(flag==0)
-1\n"
6-3输入10个数到数组t中,按降序排列,输出排序结果
intt[10],i,j,tmp;
for(j=0;
10-i;
if(t[j]<
t[j+1])
{
tmp=t[j];
t[j]=t[j+1];
t[j+1]=tmp;
}
t[i]);
6-6p105页
inti,n,b=0,a[10]={0,10,20,30,40,50,60,70,80,90};
Inputaninteger:
if(a[i]==n)
b=i+1;
if(b==0)
-1"
for(i=0;
if(a[i]==n)
continue;
a[i]);
}
6-7求3行5列二维数组中的最小值,及最小值在数组中行号和列号,并输出
inta[3][5],i,j,mini,minj;
输入3行5列数组:
3;
5;
scanf("
a[i][j]);
mini=minj=0;
if(a[mini][minj]>
a[i][j])
mini=i;
minj=j;
最小值:
%d,最小值行号:
%d,列号:
a[mini][minj],mini,minj);
6-8求3行5列二维数组中每列数组元素的最小值,并输出
inta[3][5],i,j,min;
{
min=a[0][i];
if(min>
a[j][i])
min=a[j][i];
%d列最小值为:
i,min);
}
6-9求3行5列二维数组主对角线(从左下角到右下角)上元素之和
inta[3][3],i,j,sum=0;
输入3行3列数组:
sum+=a[i][i];
主对角线上元素只和为:
sum);
6-11不调用库函数strcpy,将以下数组s1中的字符串复制到数组s2中,并输出数组s2中的字符串
Chars1[80],s2[80];
Gets(s1);
inti=0;
chars1[80],s2[80];
输入一个字符串:
gets(s1);
while(s1[i]!
\0'
s2[i]=s1[i];
i++;
s2[i]='
;
复制的字符串为:
puts(s2);
6-14输出数组s中字符串的字串,字串从s[begin]开始,长度为len。
inti,begin,len;
chars[80];
gets(s);
输入子串的开始位置及长度:
%d%d"
begin,&
len);
for(i=begin;
begin+len;
%c"
s[i]);
7-3输入10个整数,按升序排列,输出排列结果
inta[10],*p,t,i,j;
输入10个整数:
for(p=a;
p<
a+10;
p++)
p);
{p=a+i;
for(j=i+1;
if(*p>
*(a+j))
p=a+j;
t=*p;
*p=*(a+i);
*(a+i)=t;
*p);
7-5不调用库函数strcpy,将p指向的字符串复制到数组s中,并输出s中的字符串。
Chars[10],*p=”Chinese”;
chars[10],*p="
Chinese"
while(*(p+i)!
s[i]=*(p+i);
s[i]='
puts(s);
8-9已知函数头为intgetgcd(intm,intn),函数getgcd的功能:
返回形参m,n的最大公约数
intgetgcd(intm,intn)
intt;
t=m>
n?
n:
m;
while(t)
if(m%t==0&
n%t==0)
break;
t--;
returnt;
inta,b;
请输入两个正整数:
a,&
b);
这两个整数的最大公约数为:
getgcd(a,b));
8-10已知函数头为prime(intn),功能:
如果n是质数,返回1,否则返回0
intprime(intn)
inti,flag=1;
if(n%i==0)
flag=0;
returnflag;
inti,num=0;
if(prime(i)==1)
{printf("
num++;
if(num%5==0)
}}
8-12已知函数头为avg(intn,intt[]),功能:
去掉长度为n的一组数组t中最大值和最小值,计算并返回平均值
intavg(intn,intt[])
inti,max,min,s=0;
max=min=t[0];
n;
s+=t[i];
t[i])
max=t[i];
min=t[i];
return((s-max-min)/(n-2));
inti,a[10];
a[i]);
去掉最高分和最低分后的平均值为:
avg(10,a));
8-14已知函数头为output(introw,intt[][5]),功能:
输出行数为row列数为5的2维数组t中所有的数组元素。
编写并调用函数output,输出3行5列的二维数组;
再次调用函数output,输出4行5列的二维数组
voidoutput(introw,intt[][5])
inti,j;
row;
t[i][j]);
}}
inta[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};
intb[4][5]={{1,3,5,7,9},{2,4,6,8,10},{11,13,15,17,19},{12,14,16,18,20}};
output(3,a);
output(4,b);
8-15已知函数头为getmin(intn,intr[][3]),功能:
计算并返回行数为n列数为3的二维数组t中的最小值
intgetmin(intn,intr[][3])
inti,j,min;
min=r[0][0];
r[i][j])
min=r[i][j];
return(min);
inti,j,a[2][3];
输入2*3个整数:
2;
getmin(2,a));
8-16在main函数中输入两个整数m,n调用函数change,要求函数change调用完成后,整数m的值加5,整数n的值减3,在主函数中输出改变后的m和n
voidchange(int*x,int*y)
*x=*x+5;
*y=*y+3;
intm,n;
输入2个整数:
m,&
change(&
改变后:
%d%d\n"
m,n);
8-17已知函数头及功能如下:
voidinput(intn1,intt1[])//输入n1个整数到一维数组t1
voidsort(intn2,intt2[])//对数组为n2的一位数组t2中的数组元素按升序排列
voidoutput(intn3,intt3[])//输出长度为n3的一维数组t3中的数组元素
voidinput(intn1,intt1[])
inti;
输入%d个整数:
n1);
n1;
t1[i]);
voidsort(intn2,intt2[])
inti,j,temp;
=n2-1;
=n2-1-i;
if(t2[j]>
t2[j+1])
temp=t2[j];
t2[j]=t2[j+1];
t2[j+1]=temp;
}}
voidoutput(intn3,intt3[])
n3;
t3[i]);
intt[10];
input(10,t);
sort(10,t);
output(10,t);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题