c语言上机大题.docx
- 文档编号:25311587
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:278
- 大小:58.26KB
c语言上机大题.docx
《c语言上机大题.docx》由会员分享,可在线阅读,更多相关《c语言上机大题.docx(278页珍藏版)》请在冰豆网上搜索。
c语言上机大题
一、程序设计共113题(共计1130分)
第1题(10.0分)题号:
390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数求1~100中奇数的平方和。
结果为166650.000000。
------------------------------------------------*/
#include
voidwwjt();
floatsum(intn)
{
/**********Program**********/
/**********End**********/
}
答案:
----------------------
floats=0;
inti;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
----------------------
第2题(10.0分)题号:
320
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include
voidwwjt();
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);
wwjt();
}
intfun(inta[3][3])
{
/**********Program**********/
/**********End**********/
}
voidwwjt()
{
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分)题号:
324
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。
(n是偶数)
------------------------------------------------*/
#include
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intt;
into;
intc;
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);
}
答案:
----------------------
intsum,i;
sum=0;
for(i=2;i<=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
----------------------
第4题(10.0分)题号:
345
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
将两个两位数的正整数a、b合并形成一个整数放在c
中。
合并的方式是:
将a数的十位和个位数依次放在
c数的千位和十位上,b数的十位和个位数依次放在
c数的个位和百位上。
例如:
当a=45,b=12。
调用该函数后,c=4251。
------------------------------------------------*/
#include
voidwwjt();
voidfun(inta,intb,long*c)
{
/**********Program**********/
/**********End**********/
}
main()
{
inta,b;
longc;
printf("inputa,b:
");
scanf("%d%d",&a,&b);
fun(a,b,&c);
printf("Theresultis:
%ld\n",c);
wwjt();
}
voidwwjt()
{
FILE*rf,*wf;
inti,a,b;
longc;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++)
{
fscanf(rf,"%d,%d",&a,&b);
fun(a,b,&c);
fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);
}
fclose(rf);
fclose(wf);
}
答案:
----------------------
*c=a/10*1000+a%10*10+b/10+b%10*100;
----------------------
第5题(10.0分)题号:
366
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一组数中大于平均值的数的个数。
例如:
给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
------------------------------------------------*/
#include
voidwwjt();
intfun(inta[],intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
inta[10]={1,3,6,9,4,23,35,67,12,88};
inty;
y=fun(a,10);
printf("y=%d\n",y);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN[10],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(j=0;j<10;j++)
{
for(i=0;i<10;i++)
fscanf(IN,"%d",&iIN[i]);
iOUT=fun(iIN,10);
}
fprintf(OUT,"%d\n",iOUT);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,k=0;
floats=0,ave;
for(i=0;i s+=a[i]; ave=s/n; printf("%f",ave); for(i=0;i if(a[i]>ave)k++; returnk; ---------------------- 第6题(10.0分)题号: 355 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 对长度为8个字符的字符串,将8个字符按降序排列。 例如: 原来的字符串为CEAedcab,排序后输出为edcbaECA。 ------------------------------------------------*/ #include #include #include voidwwjt(); voidfun(char*s,intnum) { /**********Program**********/ /**********End**********/ } main() { chars[10]; printf("输入8个字符的字符串: "); gets(s); fun(s,8); printf("\n%s",s); wwjt(); } voidwwjt() { 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,8); fprintf(wf,"%s",a); fprintf(wf,"\n"); } fclose(rf); fclose(wf); } 答案: ---------------------- inti,j; chart; for(i=0;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} ---------------------- 第7题(10.0分)题号: 44 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求出二维数组周边元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 -------------------------------------------------*/ #defineM4 #defineN5 #include voidwwjt(); intfun(inta[M][N]) { /**********Program**********/ /**********End**********/ } main() { inta[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; inty; y=fun(a); printf("s=%d\n",y); wwjt(); } voidwwjt() { FILE*IN,*OUT; intiIN[M][N],iOUT; inti,j,k; IN=fopen("14.IN","r"); if(IN==NULL) {printf("PleaseVerifyTheCurrerntDir..itMayBeChanged"); } OUT=fopen("14.out","w"); if(OUT==NULL) {printf("PleaseVerifyTheCurrentDir..itMayBeChanged"); } for(k=0;k<10;k++) {for(i=0;i for(j=0;j fscanf(IN,"%d",&iIN[i][j]); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 答案: ---------------------- ints=0; inti,j; for(i=0;i s=s+a[i][0]+a[i][N-1]; for(j=1;j s=s+a[0][j]+a[M-1][j]; returns; ---------------------- 第8题(10.0分)题号: 339 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 判断整数x是否是同构数。 若是同构数,函数返回1; 否则返回0。 x的值由主函数从键盘读入,要求不大 于100。 说明: 所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。 例如: 输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。 ------------------------------------------------*/ #include voidwwjt(); intfun(intx) { /**********Program**********/ /**********End**********/ } main() { intx,y; printf("\nPleaseenteraintegernumbers: "); scanf("%d",&x); if(x>100) { printf("dataerror! \n"); exit(0); } y=fun(x); if(y) printf("%dYES\n",x); else printf("%dNO\n",x); wwjt(); } voidwwjt() { FILE*IN,*OUT; intn,t; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(t=0;t<5;t++) { fscanf(IN,"%d",&n); o=fun(n); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- intk; k=x*x; if((k%10==x)||(k%100==x)) return1; else return0; ---------------------- 第9题(10.0分)题号: 383 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 用函数实现字符串的复制,不允许用strcpy()函数。 ------------------------------------------------*/ #include voidwwjt(); voidcopy(charstr1[],charstr2[]) { /**********Program**********/ /**********End**********/ } main() { voidcopy(); charc1[40],c2[40]; gets(c1); copy(c1,c2); puts(c2); wwjt(); } voidwwjt() { FILE*IN,*OUT; chari[100]; charo[100]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } fscanf(IN,"%s",i); copy(i,o); fprintf(OUT,"%s\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- inti; for(i=0;str1[i]! ='\0';i++) str2[i]=str1[i]; str2[i]='\0'; ---------------------- 第10题(10.0分)题号: 310 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 计算并输出给定整数n的所有因子之和(不包括1与 自身)。 注意: n的值不大于1000。 例如: n的值为855时,应输出704。 ------------------------------------------------*/ #include voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } main() { printf("s=%d\n",fun(855)); wwjt(); } voidwwjt() { FILE*IN,*OUT; intiIN,iOUT,i; 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); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 答案: ---------------------- ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; ---------------------- 第11题(10.0分)题号: 354 /*------------------------------------------------ 【程序设计】 ---------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机