精品C语言编程练习60题docxWord下载.docx
- 文档编号:20311767
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:28
- 大小:234.82KB
精品C语言编程练习60题docxWord下载.docx
《精品C语言编程练习60题docxWord下载.docx》由会员分享,可在线阅读,更多相关《精品C语言编程练习60题docxWord下载.docx(28页珍藏版)》请在冰豆网上搜索。
floatfun(intn){}
14.编写函数fun其功能是在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数屮输岀。
intfun(inta[3][3]){}
15.编写函数fun,函数的功能是:
求给定正整数m以内的素数之和。
当m二20时,函数值为77。
intfun(intm){}
16.从键盘上输入任意实数x,求出其所对应的函数值。
z=(x-4)的二次幕(x>
4)
z二x的八次幕(x>
-4)
z=z=4/(x*(x+1))(x>
-10)
z=|x|+20(其他)
floaty(floatx){}
17.编写函数fun,函数的功能是:
求一个四位数的各位数字的立方和
18.编写函数fun,函数的功能是:
求1到100之间的偶数之积。
doublefun(intm){}
19.计算并输出high以内最大的10个素数之和,high由主函数传给fun两数,若high的值为100,则函数的值为732。
20.将一个字符串中的前7个字符复制到一个字符数组中去,不许使用strcpy函数。
练习题:
1:
将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。
小写字母的转换规则同样。
#include<
stdio.h>
main()
{
charc;
while((c=getchar())!
=,\n'
)
if((c>
='
a'
&
cv二'
z'
)||(c>
二'
A'
Z'
))c+=4;
Z&
c<
=T+4)||c>
N)c-=26;
printf(,l%c,\c);
2:
将一个数组屮的元素按逆序存放。
#defineN7main()
staticinta[N]={12,9,16,5/7,2」},k,s;
printf(°
\ntheoriganalarray:
\nM);
for(k=0;
k<
N;
k++)
printf(n%4d\a[k]);
/***********space***********/
N/2;
k++)
s=a[k];
a[k]=a[N-k-l];
/***********VPAQP***********/
a[N-k-l]=s;
}
printf(H\nthechangedarray:
printf(H%4d,\a[k]);
3:
产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。
#include"
stdlib.h”main()
intt;
intij,k;
inta[10];
for(i=0;
i<
10;
i++)
a[i]=nindom(61)+30;
9;
for(j=i+l;
j<
j++)
if(a[k]>
a[j])k=j;
if(k!
=i)
t=a[k];
a[k]=a[i];
a[i]=t;
printf(n%5dn,a[i]);
printf(H\nn);
4:
将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。
main()
charstrl[80],str2[80];
inti,n;
/***********QDApp***********/
gets(slrl);
scanf("
%dn,&
n);
/***********CDApp***********/
for(i=0;
i<
n;
str2[i]=strl[i];
slF2m]=、0:
printf(H%s\nH,str2);
5:
数组名作为函数参数,
floataver(floata[])
1
求平均成绩。
严定义求平均值函数,形参为一浮点型数组名*/
inti;
floatav,s=a[0];
for(i=l;
5;
/***********£
PA「p***********/
s+=a[i];
av=s/5;
returnav;
voidmain()
floatsco[5],av;
printf(M\ninput5scores:
\nn);
/***********QPAQF***********/
scanfC%f;
sco[i]);
av=aver(sco);
printf(Haveragescoreis%5.2f\n,\av);
getch();
}6:
输入数组,最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。
intnumber[10];
input(number);
max_min(number);
output(number);
input(number)
intnumber]10];
/***********SPACE***********/
iv9;
scanf("
%d,"
&
number[i]);
%d"
number[9]);
max_min(array)
intarray[10];
int*max,*min,kj;
intarr_end;
arr_end=array+10;
max二min二array;
for(p=array+1;
p<
arr_end;
p++)
if(*p>
*max)
max=p;
elseif(*p<
*min)
/***********SPACE***********/
min=p;
k=*max;
l=*min;
*p=array[O];
array[0]=l;
*p=array[9];
/***********space***********/
array[9]=k;
k=*p;
return;
output(cirray)
int*p;
for(p=array;
aiTay+9;
printf(”%d,"
*p);
printfC^d^^array⑼);
}7:
输出Fibonacci数列的前15项,要求每行输出5项。
#include<
main()
8:
将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。
#include<
voidstrcopy(char*str1,char*str2,intm)
}main()
inti,m;
gets(strl);
scanf(H%d,\&
m);
strcopy(strl,str2,m);
puts(strl);
puts(str2);
9:
通过函数的递归调用讣算阶乘。
longpower(intn){
longf;
if(n>
l)
f=power(n-l)*n;
else
f=l;
return(f);
intn;
longy;
printf(Minputainteagernumber:
\nu);
/**********KPAQP***********/
scanf(,,%d,\&
y=power(n);
printf(H%d!
=%ld\n,\n,y);
}10:
计算圆周率的近似值。
math.h>
ints;
/***********vpa「f***********/
floatn,pi;
doublet;
t=l;
pi=O;
n=l;
s=l;
while(fabs(t)>
=2e-6)
pi+=t;
n+=2;
s=-s;
t=s/n;
/***********space***********/
piJ4;
printf(npi=%.6f\n,\pi);
11:
删除字符串中的数字字符。
输入字符串:
48CTYP9E6,则输出:
CTYPE。
/***********SPACE***********/voidfun(char*s){
char*p=s;
while(*p)
if((*p>
=rOf)&
(*p<
-9,))p++;
else*s++=*p++;
*s=,\0,;
charitem[100];
printf(n\nEnterastring:
H);
gets(item);
fun(item);
printf("
\nThestring:
\"
%s\"
\n"
item);
}12:
计算并输出500以内最大的10个能被13或17整除的自然数之和。
conio.h>
intfun(intk)
intm=0,mc=0J,n;
严**********space***********/
while(k>
=2&
me<
10)
if(k%13==0||k%17==0)
m=m+k;
mc++;
k—;
/***********SPACE***********/
returnm;
main()
clrscr();
printf(n%d\n\fun(500));
13:
统计一个字符串中的字母、数字.空格和其它字符的个数。
stdio.h"
{charsl[80];
inta[4]={0};
intk;
/***********SPACE***********/voidfun(chars[],intb[]);
gets(sl);
/***********SPACE***********/fun(sl,a);
puts(sl);
for(k=0;
4;
k++)printf(H%4d\a[k]);
voidfun(chars[],inlbfl)
s[i]!
=,\0'
;
if(,a,<
=s[i]&
s[i]<
=,z,||,A,<
=,Z,)b[0]++;
/***********VPAQP***********/
elseif(,0,<
=s[i]&
s[i]<
=,9'
)b[l]卄;
elseif(s[i]=='
'
)b⑵++;
else
b⑶++;
}14:
求两个非负整数的最大公约数和最小公倍数。
intm,n,r5p,gcdjcm;
%d%dM,&
m,&
if(m<
n){p=m,m=n;
n=p;
)p=m*n;
r=m%n;
while(r!
=0)
/***********space***********/
m=n;
n=r;
r=m%n;
gcd=n;
lcm=p/gcd;
printf(ngcd=%d,lcm=%d\n,\gcdjcm);
15:
以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。
inti,n,sum;
sum=0;
n=0;
=300;
if(i%7==0||i%17==0)if(i%2==0)
sum=sum+i;
n++;
printf(u%6dn,i);
严**********SPACE***********/if(n%5==0)printf(H\nH);
printf(H\ntotal=%d,l,sum);
16:
不用第三个变量,实现两个数的对调操作。
inta,b;
scanf(H%d&
b);
printf(,'
a=%d,b=%d\n'
,a,b);
/***********£
PA「p***********/
a=a+b;
b=a-b;
a=a-b;
a=%d,b=%d\n"
a,b);
}17:
找出数组中最大值和此元素的下标,数组元素的值由键盘输入。
#includenstdio.hHvoidmain()
inta[10],*p,*s,i;
scanf(l,%d,\a+i);
for(p=a,s=a;
p-a<
严********^*space***********/if(*p>
*s)s=p;
max=%d,index=%d\n"
*s,s-a);
}18:
输入学生成绩并显示。
#include<
structstudent
charnumberf61;
charname[6];
intscore[3];
}stu[2];
voidoutput(structstudentstu[2]);
inti,j;
2;
i++)
printf(“请输入学生%(1的成绩:
\n”,i+l);
printfC学号:
”);
/***********SPACE***********/
%s"
&
stu[i].number);
print”姓名:
”);
scanf(,,%$,\$tu[i].name);
for(j=0;
3;
printf(H成绩%d.”,j+1);
/***********SPACE***********/scanf("
stu[i].score[j]);
printf(H\nu);
Olltput(stu);
voidoutput(structstudentstu[2])
成绩3\nH);
intij;
printfC学号姓名成绩1成绩2
printf(M%-6s%-6s,\stu[i].number,stu[i].name);
foW=0;
jv3;
printf(H%-8d,\stu[i].score[j]);
printf(n\nn);
19:
计算平均成绩并统计90分以上人数。
intn,m;
floatguide,average;
average=n=m=0;
while(l)
if(n)printf(,,%.2f%d\n,,,average/n,m);
20:
输入三个整数x,y,z,请把这三个数由小到大输出。
21:
三角形的面积为:
area=sqrt(s*(s-a)*(s-b)*(s-c)).M中
,s=(a+b+c)/2,a、b、c为三角形三条边的长。
定义两个带
参数的宏,一个用来求s,另一个用来求area。
编写程序,
在稈序中用带参数的宏求面积areao
#includenmath.hn
#defineS(x,y,z)(x+y+z)/2
#defineAREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z))
floata,b,c,s,area;
printf(na,b,c=n);
scanf(H%f,%f,%f\&
a,&
b、&
c);
if(a+b>
c&
b+c>
a&
c+a>
b)
s=S(abc);
area=AREA(s,a,b,c);
printf(Harea=%f\n,\area);
22:
下血函数为二分法查找key值。
数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。
fun(inta[],intn,intkey)
intlow,high,mid;
low=0;
high=n-l;
PA**********/
while(low<
=high)
mid=(low+high)/2;
if(key<
a[mid])
high=mid-l;
elseif(key>
low=mid+1;
/***********SPACE***********/returnmid;
}return-1;
inta[10]={1,2,3,4,5,6,7,8,9,10};
intb,c;
b=4;
c=fun(a,10,b);
if(c==l)printf("
notfound"
);
position%d\n"
c);
23:
考查字符串数组的应用。
输出26个英文字母。
voidmain(void)
charstring[256];
/***********space***********/
for(i=0;
i<
26;
string[i]=A+i;
string[i]='
\0'
printf(Hthearrarycontains%s\nn,string);
}24:
要求输出如下结果:
b=-la=65535a=65534a=30b=6c=5
intb=-Lc;
unsigneda;
a=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 语言 编程 练习 60 docx
![提示](https://static.bdocx.com/images/bang_tan.gif)