C语言程序设计题库.docx
- 文档编号:22990736
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:287
- 大小:58.16KB
C语言程序设计题库.docx
《C语言程序设计题库.docx》由会员分享,可在线阅读,更多相关《C语言程序设计题库.docx(287页珍藏版)》请在冰豆网上搜索。
C语言程序设计题库
━━━━━━━━━━━━━━━━━━
一、程序设计共116题(共计1160分)
━━━━━━━━━━━━━━━━━━
第1题(10.0分)
--------------------------------------------------
功能:
从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)
z=log(x+3)(x>-3)
z=sin(x)/((cos(x)+4)
------------------------------------------------*/
#include
#include
doubley(floatx)
{
/**********Program**********/
/**********End**********/
}
main()
{
floatx;
scanf("%f",&x);
printf("y=%f\n",y(x));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intn;
floati;
doubleo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%f",&i);
o=y(i);
fprintf(OUT,"%ld\n",o);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
doublez;
if(x>10)z=exp(x);
elseif(x>-3)z=log(x+3);
elsez=sin(x)/(cos(x)+4);
return(z);
----------------------
第2题(10.0分)
--------------------------------------------------
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include"stdio.h"
voidmain()
{
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);
yzj();
getch();
}
intfun(inta[3][3])
{
/**********Program**********/
/**********End**********/
}
yzj()
{
FILE*IN,*OUT;
intm;
intn;
inti[3][3];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("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,"%d\n",o);
getch();
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intsum;
inti,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
returnsum;
----------------------
第3题(10.0分)
--------------------------------------------------
功能:
求1到100之间的偶数之积。
------------------------------------------------*/
#include"stdio.h"
doublefun(intm)
{
/**********Program**********/
/**********End**********/
}
voidmain()
{
printf("ji=%f\n",fun(100));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intiIN,i;
doubledOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
dOUT=fun(iIN);
fprintf(OUT,"%f\n",dOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
doubley=1;
inti;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
returny;
----------------------
第4题(10.0分)
--------------------------------------------------
功能:
求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:
输入的数组为:
123
4156
12189
10112
求出的最大数为18,行坐标为2,列坐标为1。
------------------------------------------------*/
#defineN4
#defineM3
#include
intRow,Col;
voidmain()
{
inta[N][M],i,j,max,row,col;
printf("inputaarray:
");
for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i { for(j=0;j printf("%d",a[i][j]); printf("\n"); } max=fun(a); printf("max=%d,row=%d,col=%d",max,Row,Col); getch(); yzj(); } intfun(intarray[N][M]) { /**********Program**********/ /**********End**********/ } yzj() { FILE*IN,*OUT; intiIN[N][M],iOUT,i,j; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i for(j=0;j fscanf(IN,"%d",&iIN[i][j]); iOUT=fun(iIN); fprintf(OUT,"%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 {for(j=0;j if(max {max=array[i][j]; Row=i; Col=j;} } return(max); ---------------------- 第5题(10.0分) -------------------------------------------------- 功能: 编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。 ------------------------------------------------*/ #include voidswap(int*a,int*b) { /**********Program**********/ /**********End**********/ } main() { intx,y,z; scanf("%d%d%d",&x,&y,&z); if(x if(x if(y printf("%3d%3d%3d",x,y,z); yzj(); getch(); } yzj() { FILE*IN,*OUT; intm,n; inti[2]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<3;n++) { for(m=0;m<2;m++) { fscanf(IN,"%d",&i[m]); } swap(&i[0],&i[1]); fprintf(OUT,"%d\n",i[0]); fprintf(OUT,"%d\n",i[1]); } fclose(IN); fclose(OUT); } 答案: ---------------------- intk; k=*a; *a=*b; *b=k; ---------------------- 第6题(10.0分) -------------------------------------------------- 功能: 求一个给定字符串中的数字字母的个数。 ------------------------------------------------*/ #include"stdio.h" intfun(chars[]) { /**********Program**********/ /**********End**********/ } voidmain(void) { charstr[]="Beijing2008"; intk; k=fun(str); printf("k=%d\n",k); yzj(); getch(); } yzj() { FILE*IN,*OUT; charsIN[80]; intiOUT,i; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } fscanf(IN,"%s",sIN); iOUT=fun(sIN); fprintf(OUT,"%d\n",iOUT); fclose(IN); fclose(OUT); } 答案: ---------------------- inti,k=0; for(i=0;s[i]! ='\0';i++) if(s[i]>='0'&&s[i]<='9'') k++; returnk; ---------------------- 第7题(10.0分) -------------------------------------------------- 功能: 对长度为7个字符的字符串,除首、尾字符外,将其 余5个字符按降序排列。 例如: 原来的字符串为CEAedca,排序后输出为CedcEAa。 ------------------------------------------------*/ #include #include #include intfun(char*s,intnum) { /**********Program**********/ /**********End**********/ } voidmain() { chars[10]; clrscr(); printf("输入7个字符的字符串: "); gets(s); fun(s,7); printf("\n%s",s); getch(); NONO(); } NONO() { inti; chara[100]; FILE*rf,*wf; rf=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<3;i++) { fscanf(rf,"%s",&a); fun(a,7); fprintf(wf,"%s",a); fprintf(wf,"\n"); } fclose(rf); fclose(wf); } 答案: ---------------------- inti,j; chart; for(i=1;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} ---------------------- 第8题(10.0分) -------------------------------------------------- 功能: 编写函数fun求1+2+3+...+n的和,在main函 数中由键盘输入n值,并输出运算结果。 请编写fun 函数。 例如: 若n值为2,则结果为3。 ------------------------------------------------*/ #include longfun(intn) { /**********Program**********/ /**********End**********/ } intyzj(); voidmain(void) { intn; longintresult; scanf("%d",&n); result=fun(n); printf("%ld\n",result); yzj(); } intyzj() { FILE*IN,*OUT; inti; intiIN; longintiOUT; IN=fopen("in11.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out11.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<4;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%ld\n",iOUT); } fclose(IN); fclose(OUT); return0; } 答案: ---------------------- inti; longs=0; for(i=1;i<=n;i++) s=s+i; returns; ---------------------- 第9题(10.0分) -------------------------------------------------- 功能: 判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。 ------------------------------------------------*/ #include"stdio.h" #include"conio.h" intfun(intw) { /**********Program**********/ /**********End**********/ } voidmain() { intm; printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%d\n",fun(m)); yzj(); getch(); } yzj() { FILE*IN,*OUT; intc; intt; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); }for(c=1;c<=5;c++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- intk,s=0; do {s=s+(w%10)*(w%10); w=w/10; }while(w! =0); if(s%5==0)k=1; elsek=0; return(k); ---------------------- 第10题(10.0分) -------------------------------------------------- 功能: 求一个四位数的各位数字的立方和 ------------------------------------------------*/ #include"stdio.h" intfun(intn) { /**********Program**********/ /**********End**********/ } voidmain(void) { intk; k=fun(1234); printf("k=%d\n",k); yzj(); } yzj() { FILE*IN,*OUT; intiIN,iOUT,i; IN=fopen("22.in","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("22.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); } 答案: ---------------------- intd,k,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; ---------------------- 第11题(10.0分) -----------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 题库