山东某大学信息科学与电气工程学院C语言期末考试试题库_第1页
山东某大学信息科学与电气工程学院C语言期末考试试题库_第2页
山东某大学信息科学与电气工程学院C语言期末考试试题库_第3页
山东某大学信息科学与电气工程学院C语言期末考试试题库_第4页
山东某大学信息科学与电气工程学院C语言期末考试试题库_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

2010年C语言编程题

[选取日期]

2功能:求一分

序列2/1,3/2,5/3,8/5,13/8,21/13…的前nMayBeChanged'*);

项之和。)

说明:每一分数的分母是前两项的分母之for(i=0;i<5;i++)

和,每一分数的分子是前两项的分子之和(

例如:求前20项之和的值为32.660259。fscanf(IN,"%d",&iIN);

fOUT=fun(iIN);

#include"stdio.h"fprintf(OUT,"%f\nu,fOUT);

floatfun(intn))

(fclose(IN);

/****不*****p「ooi*aIYI**¥*不*****/fclose(OUT);

IntI;)

Floatfl=l,f2=hf3,s=0;

3功能:从键盘上输入任意实数,求出其所对

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

{f3=fl+f2;应的函数值。

Fl=f2;z=e的x次幕(x>10)

F2=f3;z=log(x+3)(x>-3)

S=s+f2/fl;z=sin(x)/((cos(x)+4)

)

Returns;#include<math.h>

#include<stdio.h>

/**********j^nd**********/doubley(floatx)

){

main()/**********Program**********/

(Doublez;

floaty;If(x>10)z=exp(x);

y=fun(20);Elseif(x>-3)z=logz(x+3);

printf("y=%f\nn,y);Elsez=sin(x)/(cos(x)+4);

yzj();Return(z);

}

/********************/

yzj()

{)

HLE*IN,*0UT;main()

intiIN,i;{

floatfOUT;floatx;

IN=fopen(',in.dat,,,,,rn);scanf(H%fH,&x);

if(IN==NULL)printf(Hy=%f\nH,y(x));

(yzj();

printf("PleaseVerifyTheCurrerntDir..It

MayBeChanged11);))

OUT=fopen(Hout.dat,,;,wn);yzj()

if(OUT==NULL)(

FILE*IN,*OUT;

printf("PleaseVerifyTheCurrentDir..Itintn;

floati;)

doubleo;main()

IN=fopen(1,in.dat",',r'');{

if(IN==NULL)chars[10];

(printf("输入8个字符的字符串:");

printf("ReadFileError'*);gets(s);

)fun(s,8);

OUT=fopen(,'out.daf',uwu);printf(H\n%s",s);

if(OUT==NULL)N0N0();

()

printf(HWriteFileError");N0N0()

)(

for(n=0;n<10;n++)inti;

(chara[100];

fscanf(IN/,%f,,&i);FILE*rf,*wf;

o=y(i);rf=fopen(Min.datn,V);

fprintf(OUTJ%ld\n”,o);wf=fopen(Mout.dat",Hwn);

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

fclose(IN);(

fclose(OUT);fscanf(rf,u%su,&a);

)fun(a,8);

fprintf(wf,H%s",a);

4功能:对长度为8个字符的字符串,将8fprintf(wf,”\n");

个字符按降序排列。}

例如:原来的字符串为CEAedcab,排序后fclose(rf);

输出为edcbaECA。fclose(wf);

]

#include<stdio.h>

#include<ctype.h>5功能:用do-while语句求1~100的累计

#include<conio.h>和。

intfun(char*s,intnum)

(#include<stdio.h>

/****¥****¥Pro0「am****¥*****/longintfun(intn)

inti,j;{

chart;/**********Prooram**********/

for(i=0;i<num;i++)inti=l,sum=0;

for(j=i+l;j<num;j++)do

if(s[i]<sU]){

(sum=sum+i;

t=s[i];i++;

s[i]=s|j];)

s[j]=t;While(i<=n);

)returnsum;

/********************//********************/

}intt;

voidmain()t=*a;

{*a=*b;

inti=100;*b=t;

printfC1-100的累加和为:%ld\nM,fun(i));/*****¥******¥*******/

wwjt();)

)main()

wwjtO(

(inta,b;

FILE*IN,*OUT;printf("Entera,b:u);

inti;scanf(',%d%d,\&a,&b);

intilN;fun(&a,&b);

longintiOUT;printf("a=%db=%d\nu,a,b);

IN=fopen("in.datn,"rn);yzjo;

if(IN==NULL))

(yzj()

printf(HPleaseVerifyTheCurrerntDir..It(

MayBeChanged");FILE*IN,*OUT;

)inta,b,n;

OUT=fopen(Hout.dat,,,,,wn);IN=fopen(1,in.dat";'r");

if(OUT==NULL)if(IN==NULL)

((

printf("PleaseVerifyTheCurrentDir..Itprintf("ReadFileError11);

MayBeChanged");}

)OUT=fopen(uout.datu/'wn);

for(i=0;i<5;i++)if(OUT==NULL)

((

fscanf(IN;'%dM,&iIN);printf("WriteFileError");

iOUT=fun(iIN);!

fprintf(OUT,u%ld\nu,iOUT);for(n=0;n<5;n++)

)(

fclose(IN);fscanf(IN,n%d%d",&a,&b);

fclose(OUT);fun(&a,&b);

)fprintf(OUT;'a=%db=%d\nn,a,b);

6功能:实现两个整数的交换。)

fclose(IN);

例如:给a和b分别输入:60和65,输fclose(OUT);

入为:a=65b=60)

7功能:求一个给定字符串中的字母的个数。

#include<stdio.h>

#include<conio.h>

voidfun(int*a,int*b)#include"stdio.h"

(intfun(chars[])

/**木木¥*****Pro********¥/构数,函数返回1;否则返回0。x

intI,k=O;的值由主函数从键盘读入,要求不

for(sliJ>=,a,&&s[i]<=,zlls[i]>=,A,&&s[iJ<=,Z,大于100。

)说明:所谓“同构数”是指这样的数,

k++;这个数出现在它的平方数的右边。

returnk;例如:输入整数5,5的平方数是25,5

/**********j^nd¥**不****¥*/是25中右侧的数,所以5是同构数。

}—

main()#include"stdio.h"

(intfun(intx)

charstr[]=uBestwishesforyou!1';(

intk;/**********Program**********/

k=fun(str);Intk;

printf(Mk=%d\nH,k);k=x*x;

yzj();if((k%10==0)ll(k%100==0))

)return1;

yzj()else

(return0;

FILE*IN,*OUT;/**********]End**********/

charsIN[80];)

intiOUT,i;main()

IN=fopen(⑵.in”,T');(

if(IN==NULL)intx,y;

(printf(n\nPleaseenteraintegernumbers:");

printf("PleaseVerifyTheCurrerntDir..Itscanf(”%d”,&x);

MayBeChanged'*);if(x>100)

){

OUT=fopen(n21.outn,Hwn);printf(udataerror!\nu);

if(OUT==NULL)exit(O);

{)

printf("PleaseVerifyTheCurrentDir..Ity=fun(x);

MayBeChanged");<f(y)

)printf(u%dYES\nH,x);

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

(printf(u%dNO\n",x);

fscanf(IN;'%sn,sIN);yzj();

iOUT=fun(sIN);)

fprintf(OUT,u%d\n';iOUT);yzj()

)(

fclose(IN);FILE*IN,*OUT;

fclose(OUT);intn,t;

|inti[5];

into;

8功能:判断整数x是否是同构数。若是同

IN=fopen(nin.dat";'ru);

if(IN==NULL)

(intn,m,result;

printf(MReadFileError**);scanf(0%d%dH,&n,&m);

)result=gcd(n,m);

OUT=fopen(Mout.dat,\nwn);printf(Hthegcdis%d\n",result);

if(OUT==NULL)yzj();

()

printf(HWriteFileError");yzj()

)(

for(t=0;t<5;t++)FILE*IN,*OUT;

(intm,n;

fscanf(IN,n%dn,&n);inti[2];

o=fun(n);into;

fprintf(OUT,H%d\nM,o);IN=fdpen("in.dat,',"r");

)if(IN==NULL)

fclose(IN);(

fclose(OUT);printfC'ReadFileError1');

Jj\

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

9功能:用辗转相除法求两个整数的最大公

if(OUT==NULL)

约数。(

printf("WriteFileError");

#include<stdio.h>)

intgcd(intn,intm)for(n=0;n<6;n++)

((

/**********Prooj*am*********55t/for(m=0;m<2;m++)

intr,t;(

ilf(n<m)fscanf(IN,"%d",&i[m]);

()

t=n;o=gcd(i[0],i[l]);

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

m=t;)

)fclose(lN);

r=n%m;fclose(OUT);

while(r!=0))

{10功能:计算n门课程的平均值,计算结

n=m;

m=r;果作为函数值返回。

r=n%m;例如:若有5门课程的成绩是:92,76,

|69,58,88,则函数的值为76.599998.

retrun(m);

/********************/#include"stdio.h"

)floatfun(inta[],intn)

main(){

/**木木¥*****Pro********¥/首、尾字符外,将其余5个字符按降序排列。

inti;例如:原来的字符串为CEAedca,排序

floaty=0;后输出为CedcEAa»

for(i=0;i<n;i++)—

y+=a[i];#include<stdio.h>

y=y/n;#include<ctype.h>

returny;#include<conio.h>

/**********]End**********/intfun(char*s,inlnum)

}(

main()/**********oram**********/

(IntI,j;

inta[]={92,76,69,58,88);Chart;

printf("y=%f\n",fun(a,5));For(i=1;i<num-l;i++)

yzj();For(j=^j+l;j<num-l;j++)

}

yzj()

(/**¥*******j^nd**¥*¥****¥/

FILE*IN,*OUT;)

intiIN[10],i,j;main()

floatfOUT;(

IN=fopen(,,in.dat",,,rH);chars[10J;

if(IN==NULL)prinlf("输入7个字符的字符串:");

(gets(s);

printf(nPleaseVerifyTheCurremtDir..Itfun(s,7);

MayBeChanged");printf("\n%sM,s);

)NONO();

OUT=fopen(Mout.datu,uwu);)

if(OUT==NULL)NONO()

((

printf("PleaseVerifyTheCurrentDir..Itinti;

MayBeChanged");chara[100];

}FILE*rf,*wf;

for(j=0;j<5;j++)rf=fopen("in.dat","r");

(wf=fopen(Hout.dat","w");

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

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

fOUT=fun(iIN,5);fscanf(rf,n%s",&a);

fprintf(OUT,"%f\nH,fOUT);fun(a,7);

)fprintf(wf,,,%sH,a);

fclose(IN);fprintf(wf,n\nu);

fclose(OUT);)

|fclose(rf);

fclose(wf);

11功能:对长度为7个字符的字符串,除1

printf(uWriteFileError*');

12功能:从低位开始取出长整型变量s中

)

偶数位上的数,依次构成一个新数放在t中。for(n=0;n<5;n++)

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

中的数为:642。fscanf(IN,n%ldu,&i);

—m=fun(i,t);

#include"stdio.h"fprintf(OUT;'%ld\nM,m);

longfun(longs,longt)}

(fclose(IN);

]**********oram**********/fclose(OUT);

longsl=10;}

s/=10;

t=s%10;13功能:编写函数fun计算下列分段函数

while(s>0)的值:

(x八2+x+6x<0且xW・3

S=s/100;f(x)=xA2-5x+6OWxclO且x#2

t=s%10*sl+t;及xW3

sl=sl*10;xA2-x-l其它

)—

/********************/#include"stdio.h"

)floatfun(floatx)

returnt;(

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

}Prora

main()floaty;

(if(x<0&&!=-3.0)

longs,t,m;y=x*x+x+6;

printf("\nPleaseenters:H);scanf(H%ldu,&s);elseif(x>=0&&x<10.0&&x!=2.0&&x!=3.0)

m=fun(s,t);y=x*x・5*x+6;

printf("Theresultis:%ld\n",m);elsey=x*x-x-l;

yzj();returny;

)/********************/

yzj())

(main()

FILE*IN,*OUT;{

intn;floatx,f;

longprintf("Inputx=n);

IN=fopen("in.dat”,T');scanf(H%r,&x);

if(IN==NULL)f=fun(x);

(printf(Hx=%f,f(x)=%f\n",x,f);

printf(nReadFileError'1);yzj();

))

OUT=fopen(Mout.dat,,;,w");yzj()

if(OUT==NULL)(

FILE*IN,*OUT;

intn;inta[16J,i;

floati;

floato;for(i=0;i<16;i++)

IN=fopen(,'in.dat","r");a[i]=rand()%(30)+15;

if(IN==NULL)for(i=0;i<16;i++)

(printf(u%3du,afil);

printf(MReadFileError'*);printf(M\n---------------------\nM);

)soil(a,16);

OUT=fopen(Hout.dat,V,wn);for(i=0;i<16;i++)

if(OUT==NULL)printf(n%3dn,a[i]);

(yzj();

printf(HWriteFileError1');)

)yzj()

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

(FILE*IN,*0UT;

fscanf(IN;'%r,&i);intn;

o=fun(i);inti[10];

fprintf(OUT,u%f\nM,o);into;

)IN=fopen(nin.datH;'rn);

fclose(IN);if(IN==NULL)

fclose(OUT);(

}printf("ReadFileError");

)

14功能:编写函数用冒泡排序法对数组中OUT=fopen("out.dat","w");

的数据进行从小到大的排序。if(OUT==NULL)

f

\

#include<stdlib.h>printf(uWriteFileError1');

#include<stdio.h>)

voidsort(inta[],intn)for(n=0;n<10;n++)

|(

/**********Program**********/fscanf(IN,u%d';&i[n]);

inti,j,t;)

for(i=0;i<n-l;i++)sort(iJO);

for(j=0;j<n-l;j++)for(n=0;n<10;n++)

if(aU]>aU+l])fprintf(OUT,"%d\n”,i[n]);

{fclose(IN);

t=a[j];fclose(OUT);

a[j]=a[j+l];1

a[j+l]=t;

题月:用函数求一个阶方阵右下三

|15N

/**********]End**********/角元素的和(包括副对角线上的元素)。

f

main()#include<stdlib.h>

(#include"stdio.hu

#defineN3for(n=0;n<3;n++)

intsum(inta[][N])fscanf(IN,u%du,&i[m][n]);

(o=sum(i);

/**********Prooram**********/fprintf(OUT,M%d\n,r,o);

intI,j,k=O;fclose(IN);

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

for(j=N-1;j<N;j++)}

k=k+a[i][j];

10功能:根据整型形参m,计算如下公式

return(k);

/********************/的值:y=sin(m)*10o

)例如:若m=9,则应输出:4.121185

main()—

(#include"stdio.h"

inta[N][N],i,j;#include"math.h"

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

((

for(j=0;j<N:j++)/**¥*******Pro0「am不*********/

(doubley=0;

a[i][j]=rand()%(10)+10;y=sin(m)*10;

printf("%3d",a[i][j]);return(y);

}/********************/

printfC'Xn");)

)main()

printf(n------------------------------==\n");{

printf(Hsum=%5d\nu,sum(a));intn;

yzj();printf(nEntern:");

)scanf(M%dH,&n);

yzj()printf(H\nTheresultis%lf\nn,fun(n));

(yzj();

FILE*IN,*OUT;)

intm,n;yzj()

inti[3][3];(

into;FILE*IN,*0UT;

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

if(IN==NULL)intt;

(floato;

printf("ReadFileError");IN=fopen("in.dat";T);

)if(IN==NULL)

OUT=fopen(Mout.datu,uw°);(

if(OUT==NULL)printf("ReadFileError");

()

printf(HWriteFileError");OUT=fopen(nout.datn,nwu);

)if(OUT==NULL)

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

printf(MWriteFileError");}

)Str[i-l]=,\O,;

for(i=0;i<5;i++)/***¥*¥*****¥****¥***/

(1

fscanf(INJ%d”,&t);yzjO

o=fun(t);(

fprintf(OUT;,%f\n,,,o);FILE*IN,*OUT;

)intn;

fclose(IN);chari[200J;

fclose(OUT);charof200];

)IN=fopen(Min.datM,,,rn);

if(IN==NULL)

17功能:编写函数fun(str,i,n),从字符串(

str中删除第i个字符开始的连续n个字符(注printf("ReadFileError");

意:str⑼代表字符串的第一个字符)。)

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

#include"stdio.h"if(OUT==NULL)

main()(

(printf(uWriteFileError");

charstr(81];)

inti,n;fscanf(IN,"%s",i);

printf("请输入字符串str的值:\n");fun(i,2,8);

scanf("%s",str);fprintf(OUT,n%s\nH,i);

printf("你输入的字符串str是:%s\n",str);fclose(IN);

printf("请输入删除位置i和待删字符个数nfclose(OUT);

的值:\n");}

scanf("%d%d",&i,&n);

while(i+n-l>strlen(str))18功能:统计出若干个学生的平均成绩,

(最高分以及得最高分的人数。

printf("删除位置i和待删字符个数n的值例如:输入10名学生的成绩分别为92,

错!请重新输入i和n的值\n”);87,68,56,92,84,67,75,92,66,则输

scanf(u%d%d,,,&i,&n);出平均成绩为77.9,最高分为92,得最高分

)的人数为3人。

fun(str,i,n);

printf("删除后的字符串str是:%s\n”,str);#include"stdio.h"

yzj();floatMax=0;

)intJ=0;

fun(charstr[],inti,intn)floatfun(floatarray[],intn)

((

/******

温馨提示

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

评论

0/150

提交评论