编程习题Word格式文档下载.docx
- 文档编号:5601749
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:16
- 大小:20.80KB
编程习题Word格式文档下载.docx
《编程习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《编程习题Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
strcpy(s,str[k]);
strcpy(str[k],str[i]);
strcpy(str[i],s);
}
i++){puts(str[i]);
fprintf(fp,"
%s\n"
str[i]);
fclose(fp);
return0;
12.编程:
将字符串中的第m个字符开始的全部字符复制到另一个字符串。
要求在主函数中输入字符串及m的值并输出复制结果,在被调函数中完成复制。
voidcopy(chars1[],chars2[],intm);
ints[20],t[20],m;
gets(s);
scanf("
%d"
&
m);
copy(s,t,m);
puts(t);
voidcopy(chars1[],chars2[],intm)
s1=s1+m-1;
strcpy(s2,s1);
13.编程:
输出100~300中的素数及素数的个数
math.h>
inti,n,k,count=0;
for(n=100;
n<
=300;
n++)
{
k=sqrt(n);
for(i=2;
=k;
if(n%i==0)break;
if(i>
k){printf("
%d\t"
n);
count++;
}
}
printf("
\n"
素数的个数:
%d\n"
count);
15.有一数列,包含10个数,已按升序排好。
现要求编一程序,从指定位置开始的n个数按逆序重新排列并输出新的完整数列(例:
原数列:
2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20)要求在主函数中输入10个数及指定位置m的值,并输出新的数列,在被调函数中从指定位置开始的n个数按逆序重新排列。
voidnixu(inta[],intm,intn);
inta[10],i,m,n;
10;
i++)scanf("
a[i]);
%d%d"
m,&
n);
nixu(a,m,n);
重排后的数列是:
i++)printf("
a[i]);
voidnixu(inta[],intm,intn)
intt,i,j;
for(i=m-1,j=m+n-2;
j;
i++,j--)
t=a[i];
a[i]=a[j];
a[j]=t;
20.编程:
输入一个无符号整数,输出它的各位数之和并保存到文件“DATA.DAT”中。
unsignedintn,s=0;
data.dat"
不能打开文件\n"
exit(0);
%u"
while(n!
=0)
s+=n%10;
n=n/10;
s=%d\n"
s);
23.有一个3*4的矩阵,找出每行中最大的元素并与第一列交换,输出原矩阵及处理后的矩阵并保存到文件“DATA.DAT”中。
inta[3][4]={{2,5,12,7},{8,10,-1,2},{7,6,5,22}},i,j,max,t;
原来的矩阵:
3;
for(j=0;
4;
printf("
a[i][j]);
printf("
max=0;
for(j=1;
if(a[i][j]>
a[i][max])max=j;
t=a[i][0];
a[i][0]=a[i][max];
a[i][max]=t;
现在的矩阵:
24.函数fun的功能是:
求出
的前n项之和,其结果通过函数值返回main函数。
例如:
在main函数中输入n的值为5,则输出8.391667。
floatfun(intn);
intn;
floats;
s=fun(n);
s=%f\n"
floatfun(intn)
inti;
floats=0,j=2,k=1,m;
for(i=1;
=n;
i++){s+=j/k;
m=j;
j=j+k;
k=m;
returns;
27.函数voidfun(chars[],charch)的功能是:
从字符串s中删除字符ch。
要求:
在main函数中输入字符串s及要删除的字符ch的值,调用fun函数,输出删除了字符ch后的字符串。
从键盘输入cabcdabcdabcxccc和c,输出的结果应该是abdabdabx。
voidfun(chars[],charch)
inti,j=0;
s[i]!
='
\0'
;
if(s[i]!
=ch)s[j++]=s[i];
s[j]='
chars[81],ch;
%c"
ch);
fun(s,ch);
puts(s);
30.函数intispalin(charstr[])的功能是判断字符串str是否为回文,即顺读和逆读都一样的字符串,若是,返回1;
否则返回0。
在main函数中从键盘输入字符串str,调用ispalin函数,输出判断结果。
输入admda,则输出admda:
yes;
输入abcdabc,则输出abcdabc:
No。
charstr[81],flag;
gets(str);
flag=ispalin(str);
if(flag==1)printf("
%s:
yes\n"
str);
elseprintf("
no\n"
intispalin(charstr[])
inti,j;
for(i=0,j=strlen(str)-1;
if(str[i]!
=str[j])return0;
return1;
33.编写函数intprime(intn),功能为判断n是否为素数,若是,返回1;
在main函数中调用函数prime,将2~100以内的所有素数存放到一维数组a中,输出a中的所有元素。
intprime(intn);
inta[50],i,m=0;
=100;
if(prime(i)==1)a[m++]=i;
m;
intprime(intn)
intflag=1,i;
=sqrt(n);
if(n%i==0){flag=0;
break;
returnflag;
35.编程:
从键盘输入6名学生5门课程成绩,分别统计出每个学生的平均成绩并保存到文件“DATA.DAT”中。
floatscore[6][5],average[6],s;
打开文件错误\n"
6;
s=0;
for(j=0;
5;
%f"
score[i][j]);
s+=score[i][j];
average[i]=s/5;
%f\n"
average[i]);
38.编程:
从键盘输入N个字符串,输出其中最长的字符串并保存到文件“DATA.DAT”中。
charstr[N][20];
intm=0,i;
if(fp==NULL){printf("
不能打开文件"
if(strlen(str[i])>
strlen(str[m]))m=i;
最长的字符串是:
"
puts(str[m]);
%s"
str[m]);
39.编写一个函数print,功能为打印学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num、name、score[3]。
在main函数中输入这些记录,调用print函数输出这些记录。
structstudent{
intnum;
charname[10];
floatscore[3];
};
structstudentstu[5];
voidprint();
%d%s%f%f%f"
stu[i].num,stu[i].name,&
stu[i].score[0],&
stu[i].score[1],&
stu[i].score[2]);
print();
voidprint()
%d\t%s\t%f\t%f\t%f\n"
stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
42.函数intfun(inta[],intn,intb[])的功能是:
求出数组a中n个元素的平均值,将大于平均值的元素存入b数组中,函数返回b数组中元素个数。
编写main,通过调用fun,输出大于平均值的元素。
intfun(inta[],intn,intb[])
intave,i,j=0,s=0;
n;
i++)s+=a[i];
ave=s/n;
if(a[i]>
ave)b[j++]=a[i];
returnj;
inta[10],b[10],i,m;
m=fun(a,10,b);
%5d"
b[i]);
45.函数voidmove(inta[],intn,intm)的功能是:
将有n个元素的数组a中前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
编写main,调用move函数,输出变换后的结果。
voidmove(inta[],intn,intm);
inta[10],m,i;
for(i=-0;
move(a,10,m);
%d"
voidmove(inta[],intn,intm)
intt[10],i;
i++)t[i]=a[n-m+i];
n-m;
a[n-1-i]=a[n-m-1-i];
i++)a[i]=t[i];
46.一个10万以内的整数,它加上100后是一个完全平方数,加上268又是一个完全平方数。
编程:
输出满足条件的数。
intn,p,q;
for(n=1;
=100000;
p=sqrt(n+100);
q=sqrt(n+268);
if(n+100==p*p&
&
n+268==q*q)printf("
47.编程:
找出1~99之间的全部同构数并保存到文件“DATA.DAT”中。
同构数是这样一组数:
它出现在平方数的右边。
5是25的右边的数,25是625右边的数,5和25都是同构数。
=99;
if(n*n%10==n||n*n%100==n){printf("
55.编程:
分解质因数,正整数从键盘输入。
输入90,打印出90=2*3*3*5。
intn,i;
%d="
{
while(n%i==0)
n=n/i;
if(n==1)printf("
i);
%d*"
72.函数voidmerge(inta[],intb[],inttemp[],intlen_a,intlen_b)的功能是:
将降序的a和升序的b合并成一个新的升序序列temp。
编写main函数,调用merge函数进行合并,输出合并后的结果。
a中数据为78,42,24,8;
b中数据为1,23,28,79,90;
输出结果为:
1823242842787990
voidmerge(inta[],intb[],intc[],intlen_a,intlen_b);
inta[4]={78,42,24,8},b[5]={1,24,28,79,90},c[9],i;
merge(a,b,c,4,5);
9;
c[i]);
voidmerge(inta[],intb[],intc[],intlen_a,intlen_b)
inti,j,k=0;
for(i=len_a-1,j=0;
i>
=0&
len_b;
)
if(a[i]<
b[j])c[k++]=a[i--];
elseif(b[j]<
a[i])c[k++]=b[j++];
else{c[k++]=a[i--];
c[k++]=b[j++];
if(i<
0)while(j<
len_b)c[k++]=b[j++];
else
if(j==len_b)while(i>
=0)c[k++]=a[i--];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)