版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
考
试
题
库
程序设计(老师)
题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。
^include<stdlib.h>
ttinclude-stdio.h〃
ttdefineN3
intsum(inta[][N])
(
/**********Program**********/
/**********End**********/
)
main()
{inta[N][N],i,j;
clrscr();
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
{a[i][j]=random(10)+10;
printf(〃%3d〃,a[i][j]);
printf(〃\n〃);
printf(〃============\n〃);
printf(,zsum=%5d\n/z,sum(a));
yzj();
getchO;
yzjO
(
FILE*IN,*OUT;
intm,n;
inti[3][3];
into;
IN二fopen(〃in.dat〃,〃r〃);
if(IN=二NULL)
{printf("ReadFileError");
OUT=fopen("out.dat〃,〃w〃);
if(OUT=NULL)
{printf(z,WriteFileError");
i
for(m=0;m<3;m++)
for(n=0;n<3;n++)
fscanf(IN,〃%d〃,&i[m][n]);
o=sum(i);
fprintf(OUT,/z%d\n/z,o);
fclose(IN);
fclose(OUT);
I
答案:
inti,j,k=0;
for(i=0;i<N;i++)
for(j=N-l-i;j<N;j++)
k=k+a[i][j];
return(k);
1
题目:编写程序,实现矩阵(3行3歹U)的转置(即行列互换)
例如,输入下面的矩阵:
100200300
400500600
700800900
程序输出:
100400700
200500800
300600900
^include"stdio.h"
intfun(intarray[3][3])
(
/**********Prograiii**********/
/**********End**********/
main()
inti,j;
intarray[3][3]={{100,200,300},
{400,500,600),
(700,800,900)};
clrscr();
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf(/,%7d,/,arrayEi][j]);
printf(〃\n〃);
I
fun(array);
printf(''Convertedarray:\n,z);
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d”,array[i][j]);
printf('\n");
)
getch();
NONOO;
}
NONOO
{
inti,j,array[3][3];
FILE*rf,*wf;rf=fopen("in.dat","r");
wf=fopen("out.dat","w");for(i=0;i<3;i++)
for(j=0;j<3;j++)
fscanf(rf,"%d”,&array[i][j]);fun(array);
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
fprintf(wf,"%7d”,arrayLi][j]);fprintf(wf,"\n");
fclose(rf);
fclose(wf);
)
答案:
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j]}
题目:请编写一个函数fun,函数的功能是:统计出若干个学生的平均成绩,最
高
分以及得最高分的人数。例如,输入
10名学生的成绩分别为92,87,68,
56,92,84,67,75,92,66,则输
出平均成绩为77.9,最高分为92,得
最高分的人数为3人。
ttinclude"stdio.h
floatMax=0;
intJ=0;
floatfun(floatarray[],intn)
(
/**********Prograiii**********/
/**********End**********/
)
main()
(
floata[10],ave;
inti=0;
for(i=0;i<10;i++)
scanf(〃%f〃,&a[i]);
ave=fun(a,10);
printf(〃ave=%f\n〃,ave);
printf(〃max=%f\n〃,Max);
printf("Total:%d\n',J);
yzj0;
)
yzj0
(
FILE*IN,*0UT;
floatiIN[10],iOUT;
intiCOUNT;
IN=fopen("8.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(,z8.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
for(iC0UNT=0;iC0UNT<10;iC0UNT++)
fscanf(IN,,z%fz,,&iIN[iCOUNT]);iOUT-fun(ilN,10);
fprintf(OUT,z,%f%f\n〃,iOUT,Max);
fclose(IN);
fclose(OUT);
i
答案:
inti;floatsum=0,ave;
Max=array[0];
for(i=0;i<n;i++)
{if(Max<array[i])Max=array[i];
sum=sum+array[i];}
ave=sum/n;
for(i=0;i<n;i++)
if(array[i]==Max)J++;
return(ave);
题目:编写函数fun求l!+2!+3!+……+n!
的和,在main函数中由键盘输入n值,
并输出运算结果。请编写fun函数。
例如:若n值为20,则结果为
268040729o
#include<stdio.h>
floatfun(intn)
{/**********Prograni**********/
/**********End**********/}main()
{inti,n;
longintresult;
scanf(〃%d〃,&n);
result=fun(n);
printf(〃%ld\n〃,result);
yzj0;}
yzj0
{FILE*IN,*0UT;
inti;
intilN;
longintiOUT;
IN=fopen("l.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(z,l.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<10;i++)
{fscanf(IN,"%d”,&iIN);
iOUT=fun(iIN);
fprintf(OUT,“瓶d\n”,iOUT);
)
fclose(IN);
fclose(OUT);}
答案:inti;
floatf=l,s=0;
for(i=l;i<-n;i++)
{f=f*i;
s=s+f;}
returns;题目:编写函数fun,函数的功能是:从字符串s中删除指定的字符
ttinclude"stdio.h〃
fun(chars[],charc)
{/**********Prograni**********/
/**********End**********/
)
main()
(
staticcharstr口二〃turbocandborlandc++〃;charc='a';
fun(str,c);
printf(z/str=%s\n,z,str);
yzj();
yzj0
FILE*IN,*OUT;
charsIN[80],cIN;
inti;
IN二fopen(〃13・in”,〃r〃);
if(IN=NULL)
{printf(z,PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(/z13.out”,〃w〃);
if(OUT二二NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<10;i++)
fscanf(IN,/z%sz/,sIN);
cIN=getc(IN);cIN=getc(IN);
fun(sIN,cIN);
fprintf(OUT,"%s\n",sIN);
)
fclose(IN);
fclose(OUT);
)
答案:inti,k=0;
for(i=0;s[i]!='\0';i++)
if(s[i]!=c)s[k++]=s[i];
s[k]='\0';
题目:请编写一个函数fun,函数的功能是:求出NXM整型数组的最大元素及
其所在的行坐标及列坐标(如果最大
元素不唯一,选择位置在最前面的一
个)。
例如:输入的数组为:
123
41
56
12189
10112
求出的最大数为18,行坐标为2,列坐标为lottdefineN4
ttdefineM3
#include<stdio.h>
intRow,Col;
main()
(
inta[N][M],i,j,max,row,col;
printf("inputaarray/');
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf(〃/d〃,&a[i][j]);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
printf("%d",a[i][j]);
printf('\n");
)
max=fun(a);
printf(/,max=%d,row=%d,col=%d//,max,Row,Col);
yzj0;
)
intfun(intarray[N][M])
{
/**********Prograni**********/
/**********End**********/
)
yzj0
(
FILE*IN,*0UT;
intiIN[N][M],iOUT,i,j;
IN=fopen("9.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(/z9.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<N;i++)
for(j=0;j<M;j++)
fscanf(IN,[j]);
iOUT=fun(iIN);
fprintf(OUT,,z%d%d%d\n",iOUT,Row,Col);
fclose(IN);
fclose(OUT);
答案:
intmax,i,j;
max=array[0][0];
Row=0;
Col=0;
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
if(max<array[i][j])
{max=array[i][j];
Row二i;
Col=j;}
}
return(max);
题目:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,
并在main函数中输出。请编写fun
函数。
ttinclude"stdio.h〃
intfun(intx[],intn)
/**********Prograiii**********/
/**********End**********/
)
main()
(
inta[10],i,min;
for(i=O;i<10;i++)
scanf(/z%d,z,&a[i]);
for(i=0;i<10;i++)
printf(〃%3d”,a[i]);
printf(〃\n〃);
min=fun(a,10);
printf(〃/d\n〃,min);
yzj0;
yzj()
FILE*IN,*OUT;
intiIN[10],i;
intiOUT,iCOUNT;
IN=fopen(z/4.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(//4.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<10;i++)
{for(iC0UNT=0;iC0UNT<10;iC0UNT++)
fscanf(IN,&iIN[iCOUNT]);
iOUT=fun(iIN,10);
fprintf(OUT,"%d\n”,iOUT);
fclose(IN);
fclose(OUT);
)
答案:
intmin,i;
min=x[0];
for(i=l;i<n;i++)
{if(x[i]<min)min=x[i];}
returnmin;
题目:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在
main函数中输出相应的结论信息。例
如:7是素数,8不是素数。请编写
fun函数。素数是仅能被1和自身整
除的数
ttinclude"stdio.h"
main()
{intm,flag;
printf(z/inputaninteger:z,);
scanf(〃/d〃,&m);
flag=fun(m);
if(flag)
printf(〃%disaprime.\n〃,m);
else
printf(^%disnotaprime.\nz/,m);
yzj();
)
intfun(intn)
{/**********Prograni**********/
/**********End**********/}
yzj0
(
FILE*IN,*OUT;
intilN,iOUT,i;
IN=fopen("5.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(/z5.out",“『);
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<10;i++)
{fscanf(IN,;
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
)
fclose(IN);
fclose(OUT);
)答案:
inti;
intj;
j=1;
for(i=2;i〈n;i++){if(n%i==O)j=0;}
returnj;
题目:编写函数fun其功能是在键盘上输入一个3行3列矩阵的各个元素的值
(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。
ttinclude"stdio.h〃
main()
{inti,j,s,a[3][3];;
for(i=0;i<3;i++)
(
for(j=0;j<3;j++)
scanf(如d",&a[i][j]);}
s=fun(a);
printf("Sum=%d\n”,s);
yzj0;
getchO;}
intfun(inta[3][3])
/**********Prc)grani**********/
/**********End**********/
i
yzj0
(
FILE*IN,*OUT;
intm;
intn;
inti[3][3];
into;
IN=fopenCin.dat〃,〃r〃);
if(IN==NULL)
{printf(z,ReadFileError");
OUT=fopen("out.dat〃,〃w〃);
if(OUT==NULL)
{printf("WriteFileError");
)
for(m=0;m<3;m++)
{for(n=0;n<3;n++)
fscanf(IN,"%d”,&i[m][n]);
)
o=fun(i);
(
fprintf(OUT,z/%d\n/z,o);getchO;
)
fclose(IN);
fclose(OUT);
)
答案:
intsum;
inti,j;
sum=l;
for(i=0;i<3;i++)
sum=sum*a[i]Li];
returnsum;
题目:请编写一个函数fun,函数的功能是:将主函数中输入的字符串反序存
放。
例如:输入字符串〃abcdefg〃,则应输
出〃gfedcba”。
#include<stdio.h>
ttinclude<conio.h>
ttdefineN81
charfun(char*str,intn)
(
/**********Program**********/
/**********End**********/
main()
chars[N];
int1;
clrscr();
printf("inputastring:,/);gets(s);
l=strlen(s);
fun(s,1);
printf(Z/Thenewstringis:");puts(s);
yzj0;
)
yzj0
(
FILE*IN,*OUT;
charsIN[20],*s0UT;
intiLENGTH;
IN=fopen("7.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
0UT=fopen("7.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
fscanf(IN,"%s",sIN);
iLENGTH=strlen(sIN);
sOUT=sIN;
fun(sIN,iLENGTH);
fprintf(OUT,"%s\n”,sOUT);
fclose(IN);
fclose(OUT):
)
答案:
inti,j;
charc;
for(i=0,j=n-l;i<j;i++,j—)
/*或者for(i=0,j=n-l;i<n/2;i++,j--)*/{c=*(str+i);
*(str+i)=*(str+j);
*(str+j)=c;}
题目:请编写一个函数fun,函数的功能是:输入一个字符串,过滤此串,只保留
串中的字母字符,并统计新生成串中
包含的字母个数。例如:输入的字符
串为ab234$df4,新生成的串为
abdfo
ttinclude<stdio.h>
ttinclude<conio.h>
ttdefineN80
main()
(
charstr[N];
ints;
clrscr();
printf("inputastring:zz);gets(str);
printf("Theoriginalstringis:〃);puts(str);
s=fun(str);
printf(z,Thenewstringis:〃);puts(str);
printf(''Thereare%dcharinthenewstring./z,s);
yzj();
fun(char*ptr)
{
/**********Progra田**********/
/**********End**********/
)
yzj0
{
FILE*IN,*OUT;
charsIN[N];
intiOUT;
IN=fopen("10.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(/z10.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
fscanf(IN,"%s”,sIN);
iOUT=fun(sIN);
fprintf(OUT,/z%d%s\n”,iOUT,sIN);
fclose(IN);
fclose(OUT):
)
答案:
inti,j;
for(i=0,j=O;*(ptr+i)!='\O';i++)
if(*(ptr+i)<=,z'&&
*(ptr+i)>='a'*(ptr+i)<='Z'&&*(ptr+i)>='A'){*(ptr+j)=*(ptr+i);
j++;}
*(ptr+j)=\0J;
return(j);
题目:编写函数用选择排序法对数组中的数据进行从小到大的排序。
ttinclude<stdlib.h>
#include<stdio.h>
voidsort(inta[],intn)
(
/**********Prograni**********/
/**********End**********/
I
main()
{inta[13],i;
clrscr();
for(i=0;i<13;i++)
a[i]=random(20)-5;
for(i=0;i<13;i++)
printf(,z%3d/z,a[i]);
printf(〃\n-------------------\n〃);
sort(a,13);
for(i=0;i<13;i++)
printf(,z%3d,z,a[i]);
yzj0;
getchO;
}
yzjO
(
FILE*IN,*0UT;
intn;
inti[10];
into;
IN=fopen(,zin.dat〃,〃r〃);
if(IN=NULL)
{printf("ReadFileError");
}
OUT=fopen(〃out.dat〃,〃w〃);
if(OUT二二NULL)
(printf(z,WriteFileError");
for(n=0;n<10;n++)
{
fscanf(IN,〃%d〃,&i[n]);
}
sort(i,10);
for(n=0;n<10;n++)
fprintf(OUT,〃%d\n〃,i[n]);
fclose(IN);
fclose(OUT);
答案:
inti,j,k,t:
for(i=0;i<n-l;i++)
{k=i;
for(j=i+l;j<n;j++)
if(a[k]>a[j])k=j:
if(k!=i)
{t=a[i];
a[i]=a[k];
a[k]=t;
)
)
题目:编写函数fun,函数的功能是:求一分数序列2/1,3/2,5/3,8/5,13/8,
21/13…的前n项之和。
每一分数的分母是前两项的分母之
和
每一分数的分子是前两项的分子之
和
例如:求前20项之和的值为32.660259。ftinclude"stdio.h
floatfun(intn)
(
/**********Program**********/
/**********End**********/
)
main()
{floaty;
y=fun(20);
printf(〃y二%f\n〃,y);
yzj();
I
yzj0
(
FILE*IN,*0UT;
intilN,i;
floatfOUT;
IN=fopen("30.in","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen(z/30.out","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<10;i++)
{fscanf(IN,"%d”,&iIN);
fOUT=fun(iIN);
fprintf(OUT,fOUT);
)
fclose(IN);
fclose(OUT);
}答案:inti;
floatf1=1,f2=l,f3,s=0;
for(i=l;i<=n;i++)
{f3=fl+f2;
fl=f2;
f2=f3;
s=s+f2/fl;
)
returns;
题目:调用函数fun判断一个三位数是否"
水仙花数”。在main函数中从键盘输
入一个三位数,并输出判断结果。
请编写fun函数。所谓“水仙花数〃是
指一个3位数,其各位数字立方和等
于该数本身。例如,153是一个水仙
花数,因为153=13+53+33。
ttinclude"stdio.h〃
intfun(intn)
/**********Prograiii**********/
/**********End**********/
)
main()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年某科技公司关于5G网络建设服务合同
- 毛皮制品加工企业生产质量管理考核试卷
- 2024年度高校与企业联合培养人才专业共建合作协议书3篇
- 箱体工艺工装课程设计
- 《《巴斯蒂安钢琴教程》与《菲伯尔钢琴基础教程》教材的比较研究》
- 《明代法律文书研究》
- 《汽车减震器气缸缸筒热旋压设备的关键技术研究》
- 《我国保险产品差异化研究》
- 《公司股东会与董事会权力配置问题研究》
- 泰勒课程设计理论的核心
- 国开电大电气传动与调速系统形考任务1-4答案
- 经口内镜下食管肌层切开术的护理配合
- FDMA卫星通信网络系统
- 学校学生心理危机干预实施方案
- 住院医师规范化培训临床实践能力结业考核超声诊断报告评分表
- 2022年甘肃公务员考试《申论》真题套卷(省级卷)
- GB/T 16453.4-2008水土保持综合治理技术规范小型蓄排引水工程
- GB/T 11352-2009一般工程用铸造碳钢件
- 《必修上第二单元大单元教学设计》教案【高中语文必修上册】
- INTERTAN手术操作课件
- 2022年新教科版五年级上册科学知识点(共三套)
评论
0/150
提交评论