C语言程序设计题库_第1页
C语言程序设计题库_第2页
C语言程序设计题库_第3页
C语言程序设计题库_第4页
C语言程序设计题库_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

floati;

一、程序设计共116题(共计1160分)doubleo;

IN=fopen(nin.dat,,,Mrn);

if(IN==NULL)

第1题(10.0分)(

printf("ReadFileError11);

)

OUT=fopen(,,out.datn,',wn);

功能:从键盘上输入任意实数,求出其所对应if(OUT==NULL)

的函数值。(

z=e的x次皋(x>10)printf(nWriteFileError");

z=log(x+3)(x>-3))

z=sin(x)/((cos(x)+4)for(n=0;n<l0;n++)

|

--------------------------------------------------*/fccanf(IN,',%f,,&i);

o=y(i);

#include<math.h>fprintf(OUT,"%ld\nn,o);

#include<stdio.h>)

fclose(IN);

doubley(floatx)fclose(OUT);

)

答案:---------------

doublez;

if(x>10)z=exp(x);

elseif(x>-3)z=log(x+3);

elsez=sin(x)/(cos(x)+4);

return(z);

/**********End**********/

第2题(10.0分)

main()

(

floatx;

scanf(M%f;&x);功能:在键盘上输入一个3行3列矩阵的各

printf(',y=%f\n",y(x));个元素的值(值

yzj();为整数),然后输出主对角线元素的

getch();积,并在fun()

}函数中输出。

yzj()--------------------------------------------------*/

(

FILE*IN,*OUT;#include"stdio.h"

intn;

voidmain())

(for(m=0;m<3;m++)

inti,j,s,a[3][3];;(

for(i=0;i<3;i4-+)for(n=0;n<3;n++)

(fscanf(IN,,,%d',,&i[m][n]);

forQ=0;j<3;j++))

scanf("%d”,&a[i][j]);o=fun(i);

)(

s=fun(a);fprintf(OUT,,,%d\n,',o);

printf(,,Sum=%d\n,,,s);getch();

yzj();)

getch();fclose(IN);

}fclose(OUT);

)

intfun(inta[3][3])

(答案:---------------

/**********Prcjorarn**********/intsum;

inti,j;

sum=1;

for(i=0;i<3;i++)

sum二sum*a[i][i];

returnsum;

/****¥***********¥**不/

)第3题(10.0分)

yzj()

(功能:求1到100之间的偶数之积。

FILE*IN,*OUT;

intm;--------------------------------------------------*/

intn;

inti[3][3];#include"stdio.hn

into;

IN=fopen(1,in.datH,nr,');doublefun(intm)

if(IN==NULL)(

(

printf(nReadFileError");/**********Proam**********/

)

OUT=fopenCout.dat",“w”);

if(OUT==NULL)

printf("WriteFileError'1);

/字*********E:nd*********¥/

第4题(10.0分)

voidmain()功能:求出NXM整型数组的最大元素及其

(所在的行坐标及

printf("ji=%f\n",fun(100));列坐标(如果最大元素不唯一,选择

yzj();位置在最前面

getch();的一个)。

)例如:输入的数组为:

123

yzj()4156

(12189

FILE*IN,*OUT;10112

intiIN,i;

doubledOUT;求出的最大数为18,行坐标为2,殛

IN=fopen(1,in.dat",,,rH);标为1O

if(IN==NULL)

(--------------------------------------------------*/

printf("PleaseVerifyTheCurrerntDir..It

MayBeChanged");#defineN4

)#defineM3

OUT=fopen(1,out.dat'",',w");#include<stdio.h>

if(OUT==NULL)

(intRow,Col;

printf("PleaseVerifyTheCurrentDir..It

MayBeChanged");voidmain()

)(

for(i=0;i<5;i++)inta[N][M],i,j,max,row,col;

(printf("inputaarray:");

fscanf(IN,M%dn,&iIN);for(i=0;i<N;i++)

dOUT=fun(iIN);for(j=0;j<M;j++)

fprintf(OUT,n%f\nH,dOUT);

)for(i=0;i<N;i++)

fclose(IN);{

fclose(OUT);for(j=0;j<M;j++)

}printf(H%d,\a[i][j]);

答案:---------------printf(n\nn);

doubley=l;)

inti;max=fun(a);

for(i=l;i<=m;i++)

if(i%2==0)y*=i;printf(,,max=%d,row=%d,col=%d,',max,Row,

returny;Col);

getch();intmax,i,j;

yzj();max=array[0][0];

)Row=0;

Col=0;

intfun(intarray[N][M])for(i=0;i<N;i++)

({for(j=0;j<M;j++)

if(max<array|i]|j])

/**********Program**********/{max=array[i][j];

Row=i;

Col=j;}

)

return(max);

/¥******¥*****¥**¥**5j?/第5题(10.0分)

yzj()

(功能:编写函数实现两个数据的交换,在主

FILE*IN,*OUT;函数中输入任

intiIN[N][M],iOUT,ij;意三个数据,调用函数对这三个数据

IN=fopen(1,in.dat'',',r,');从大到小排序。

if(IN==NULL)

(---------------------------------------------*/

printf(MPleaseVerifyTheCurrerntDir..It

MayBeChanged");#include<stdio.h>

)

OUT=fopen(,,out.dat,,,nwn);voidswap(int*a,int*b)

if(OUT==NULL)(

(/**********oram**********/

printf("PleaseVerifyTheCurrentDir..It

MayBeChanged");

)

for(i=0;i<N;i++)

for(j=0;j<M;j++)

fscanf(IN,"%d';&iIN[i][j]);

iOUT=fun(iIN);/*********示E^nd**********/

i

/

fprintf(OUT;f%d%d%d\nu,iOUT,Row,Col);

fclose(IN);main()

fclose(OUT);{

intx,y,z;

答案:scanf("%d%d%d",&x,&y,&z);

if(x<y)swap(&x,&y);k=*a;

if(x<z)swap(&x,&z);*a=*b;

if(y<z)swap(&y,&z);*b=k;

printf(n%3d%3d%3dn,x,y,z);

yzj();

getch();第6题(10.0分)

}

yzj()—

(

FILE*IN,*OUT;功能:求一个给定字符串中的数字字母的个

intm,n;数。

inti⑵;

into;---------------------------------*/

IN=fopen("in.dat",T');

if(IN==NULL)#include"stdio.hn

(

printf("ReadFileError11);intfun(chars[])

)(

OUT=fopen(,,out.dat,,;'wM);

if(OUT==NULL)/*********亭Pro**********/

(

printf(''WriteFileError");

)

fbr(n=0;n<3;n++)

(

for(m=0;m<2;m++)

{/********************/

fscanf(IN,"%dn,&i[m]);

))

swap(&i[0],&i[1]);

fprintf(OUT,"%d\n",i[0]);voidmain(void)

fprintf(OUTJ%d\n”,i[l]);{

}charstr[]=HBeijing2008”;

fclose(IN);intk;

fclose(OUT);k=fun(str);

)printf("k=%d\n",k);

yzj();

getch();

)

答案:---------------yzj()

intk;FILE*IN,*OUT;

charsIN[80];#include<ctype.h>

intiOUT,i;#include<conio.h>

IN=fopen(nin.dat,,,,,rH);

if(IN=NULL)intfun(char*s,intnum)

(

printf("PleaseVerifyTheCurrerntDir.Jt

MayBeChanged'*);

)

OUT=fopen(,,out.dat,,;,wn);

if(OUT==NULL)

(

printf(MPleaseVerifyTheCurrentDir..It

MayBeChanged'1);/********************/

}

fscanf(IN,"%s”,sIN);voidmain()

iOUT=ftin(sIN);{

chars[10];

fprintf(OUT,H%d\nM,iOUT);clrscr();

fclose(IN);printf("输入7个字符的字符串

fclose(OUT);gets(s);

)fun(s,7);

答案:---------------printf(n\n%sn,s);

inti,k=0;getch();

for(i=0;s[i]!=\0,;i++)NONO();

if(s[i]>='0'&&s[i]<=,9")

k++;

returnk;NONO()

第7题(10.0分)inti;

chara[100];

FILE*rf,*wf;

rf=fopen(,,in.datu,"r'1);

wf=fopen(Hout.datn,nwH);

功能:对长度为7个字符的字符串,除首、for(i=0;i<3;i++)

尾字符外,将其(

余5个字符按降序排列。fscanf(rf,n%sn,&a);

例如:原来的字符串为CEAedca排序后输fun(a,7);

出为CedcEAa。fprintf(wf,u%sn,a);

fprintf(wf,"\nn);

------------------------------------------------_*/

#include<stdio.h>fclose(rf);

fclose(wf);intn;

)longintresult;

答案:---------------scanf(n%d'\&n);

inti,j;result=fun(n);

chart;printf(,'%ld\nn,result);

for(i=l;i<num-l;i++)yzj();

for(j=i+1;j<num-l;j++))

if(s[i]<sUJ)

{t=s[i];s[i]=s[j];s[j]=t;}intyzj()

—(

FILE*IN,*OUT;

第8题(10.0分)inti;

intilN;

longintiOUT;

—IN=fopen("inll.dat";,rM);

if(IN==NULL)

功能:编写函数fun求1+2+3+...+n的和,在{

main函printf("PleaseVerifyTheCurrerntDir.Jt

数中由键盘输入n值,并输出运算结MayBeChanged1");

果。请编写fun)

函数。OUT=fopen(noutl

例如:若n值为2,则结果为3。if(OUT==NULL)

(

--------------------------------------------------*/printf('PleaseVerifyTheCurrentDir..It

MayBeChanged1');

#include<stdio.h>)

for(i=0;i<4;i++)

longfun(intn){

(fscanf(IN,n%d",&iIN);

iOUT=fun(iIN);

/**********Prooram不********,/fprintf(OUT;'%ld\nn,iOUT);

)

fclose(IN);

fclose(OUT);

return0;

)

/**********Encl**********/答案:---------------

inti;

)longs=0;

fbr(i=l;i<=n;i++)

intyzj();s=s+i;

voidmain(void)returns;

IN=fopen(',in.dat,V,rM);

第9题(10.0分)if(IN=NULL)

(

printf("ReadFileError");

)

OUT=fopen(',out.dat,\nwn);

功能:判断一个整数w的各位数字平方之和if(OUT==NULL)

能否被5整除,(

可以被5整除则返回1,否则返回0。printf(nWriteFileError'1);

}for(c=l;c<=5;c++)

--------------------------------------------------*/(

fscanf(IN,"%d”,&t);

#include"stdio.hno=fun(t);

#includeuconio.h"fprintf(OUT,"%d\n",o);

j

intfun(intw)fclose(IN);

(fclose(OUT);

/**********Prooram**********/)

答案:---------------

intk,s=0;

do

{s=s+(w%10)*(w%10);

w=w/10;

}while(w!=0);

/¥******************亭/if(s%5==0)k=l;

elsek=0;

)retum(k);

voidmain()

(第10题(10.0分)

intm;

printf(MEnterm:");

scanf(M%d",&m);

printf(n\nTheresultis%d\n",fun(m));

yzj();功能:求一个四位数的各位数字的立方和

getch();

)--------------------------------------------------*/

yzj()#include"stdio.h"

[

\

FILE*IN,*OUT;intfun(intn)

intc;(

intt;

into;/**********Prooram**********/

intd,k,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

)

/不******不***********不/returns;

第11题(10.0分)

voidmain(void)

(

intk;

k=fun(1234);

printf(',k=%d\nu,k);功能:从低位开始取出长整型变量s奇数位

yzj();上的数,依次

构成一个新数放在t中。

例如:当s中的数为:7654321时,t中的数

yzj()为:7531。

(

FILE*IN,*OUT;---------------------------------*/

intiIN,iOUT,i;

IN=fopen(,,22.in,,,Y,);#include"stdio.h"

if(IN==NULL)

(longfun(longs,longt)

printf(HPleaseVerifyTheCurrerntDir..It

MayBeChanged");

)

OUT=fopen(H22.out","w");

if(OUT==NULL)

(

printf('PleaseVerifyTheCurrentDir..It

MayBeChanged");

)

for(i=0;i<10;i++)

(returnt;

fscanf(IN,M%d'\&iIN);)

iOUT=fun(iIN);

fprintf(OUT,n%d\nM,iOUT);voidmain()

){

fclose(IN);longs,t,m;

fclose(OUT);clrscr();

)printf("\nPleaseenters:M);scanf(',%ld,',

答案:---------------&s);

m=fun(s,t);

printf('Theresultis:%ld\n",m);功能:计算并输出给定整数n的所有因子之

getch();和(不包括1与

yzj();自身)。

)注意:n的值不大于1000»

例如:n的值为855时,应输出704。

yzj()

(-----------------------------------------------------*/

FILE*IN,*OUT;

intn;#include"stdio.hM

long

IN=fopen(,,in.dat',,,,r,');intfun(intn)

if(IN==NULL)(

(

printf("ReadFileError");/**********Prooram**********/

1

OUT=fopen(Hout.dat,V,wH);

if(OUT==NULL)

printf(nWriteFileError");

)

fbr(n=0;n<5;n++)/**********JBncl**********/

fscanf(IN,H%ldn,&i);)

m=fun(i,t);voidmain()

fprintf(OUT,"%ld\n”,m);(

printf("s=%d\n",fun(855));

)yzj();

fclose(IN);getch();

fclose(OUT);)

)

答案:---------------yzj()

longsl=10;(

t=s%10;FILE*IN,*OUT;

while(s>0)intiIN,iOUT,i;

{s=s/100;IN=fopen(',in.dat,,,"rn);

t=S%1O*S1+t;if(IN=NULL)

sl=si*10;(

printf(MPleaseVerifyTheCurrerntDir..It

MayBeChanged");

第12题(10.0分)

OUT=fopen("out.dat”w");

if(OUT==NULL)

printf(MPleaseVerifyTheCurrentDir..It

MayBeChanged");

)voidmain(void)

for(i=0;i<5;i++)(

(charstr[]="Bestwishesforyou!1';

fscanf(IN,H%d';&iIN);intk;

iOUT=fiin(iIN);k=fun(str);

fprintf(OUT,u%d\n';iOUT);printf(nk=%d\nn,k);

)yzj();

fclose(IN);getch();

fclose(OUT);)

)

yzj()

答案:---------------{

ints=0,i;FILE*IN,*OUT;

for(i=2;i<n;i++)charsIN[80];

if(n%i==0)s=s+i;intiOUT,i;

returns;IN=fopen(,,in.dat,,,,,rn);

if(IN==NULL)

i

第13题(10.0分)printf("PleaseVerifyTheCurrerntDir..It

MayBeChanged");

)

OUT=fopen("out.dat",nw");

if(OUT==NULL)

功能:求一个给定字符串中的英文字母的个(

数。printf(nPleaseVerifyTheCurrentDir..It

MayBeChanged");

--------------------------------------------------*/)

for(i=0;i<3;i++)

#inckideustdio.hn(

fscanf(IN,M%su,sIN);

intfun(chars[])iOUT=fun(sIN);

(fprintf(OUT,"%d\n”,iOUT);

j

/**********ProQram**********/fclose(IN);

fclose(OUT);

)

答案:---------------

inti,k=0;

for(i=0;s[i]!=\0,;i++)

/**********End**********/if(s[i]>='a,&&s[i]<=,zlls[i]>=,A,&&s[i]<=,Z,)

k++;

returnk;intc;

IN=fopen("in.da「T');

if(IN=NULL)

第14题(10.0分)(

printf(nReadFileError");

)

—OUT=fopen("out.dat",“w");

if(OUT==NULL)

功能:能计算从1开始到n的自然数的和,(

n由键盘输入,printf("WriteFileError");

并在main()函数中输出。)

fbr(c=1;c<=5;c++)

-----------------------------------------*/(

fscanf(IN;f%d",&t);

#inckide"stdio.h"o=fun(t);

fprintf(OUT;'%d\n",o);

intfun(intn))

(fclose(IN);

/**********Program**********/fclose(OUT);

)

答案:---------------

intsum,i;

sum=0;

fbr(i=l;i<=n;i++)

{sum=sum+i;}

/¥***¥***********¥**5js/return(sum);

)

第15题(10.0分)

voidmain()

(

intm;—

printf("Enterm:");

scanf("%d",&m);功能:请编一个函数voidfun(inttt[M][N],int

printf("\nTheresultis%d\n",fun(m));PP[NJ),

yzj();tt指向一个M行N列的二维数组,

getch();求出二维数组每列

)中最大元素,并依次放入pp所指一

维数组中。二维

yzj()数组中的数已在主函数中赋予。

FILEFNEOUT;*/

intt;

into;#include<conio.h>

#include<stdio.h>for(j=0;j<4;j++)

#defineM3fscanf(rf,n%d",&array[i][j]);

#defineN4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论