山東某大學信息科學與電氣工程學院C語言期末考試試題庫_第1頁
山東某大學信息科學與電氣工程學院C語言期末考試試題庫_第2頁
山東某大學信息科學與電氣工程學院C語言期末考試試題庫_第3頁
山東某大學信息科學與電氣工程學院C語言期末考試試題庫_第4頁
山東某大學信息科學與電氣工程學院C語言期末考試試題庫_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2010年C語言編程題

[選取日期]

2功能:求一分

數(shù)

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

項之和。)

說明:每一分數(shù)的分母是前兩項的分母之for(i=0;i<5;i++)

和,每一分數(shù)的分子是前兩項的分子之和(

例如:求前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功能:從鍵盤上輸入任意實數(shù),求出其所對

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

{f3=fl+f2;應的函數(shù)值。

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功能:實現(xiàn)兩個整數(shù)的交換。)

fclose(IN);

例如:給a和b分別輸入:60和65,輸fclose(OUT);

入為:a=65b=60)

7功能:求一個給定字符串中的字母的個數(shù)。

#include<stdio.h>

#include<conio.h>

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

(intfun(chars[])

/**木木¥*****Pro********¥/構(gòu)數(shù),函數(shù)返回1;否則返回0。x

intI,k=O;的值由主函數(shù)從鍵盤讀入,要求不

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

)說明:所謂“同構(gòu)數(shù)”是指這樣的數(shù),

k++;這個數(shù)出現(xiàn)在它的平方數(shù)的右邊。

returnk;例如:輸入整數(shù)5,5的平方數(shù)是25,5

/**********j^nd¥**不****¥*/是25中右側(cè)的數(shù),所以5是同構(gòu)數(shù)。

}—

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功能:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同

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功能:用輾轉(zhuǎn)相除法求兩個整數(shù)的最大公

if(OUT==NULL)

約數(shù)。(

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門課程的平均值,計算結(jié)

n=m;

m=r;果作為函數(shù)值返回。

r=n%m;例如:若有5門課程的成績是:92,76,

|69,58,88,則函數(shù)的值為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中

)

偶數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。for(n=0;n<5;n++)

例如:當s中的數(shù)為:7654321時,t(

中的數(shù)為: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功能:編寫函數(shù)fun計算下列分段函數(shù)

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功能:編寫函數(shù)用冒泡排序法對數(shù)組中OUT=fopen("out.dat","w");

的數(shù)據(jù)進行從小到大的排序。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;

題月:用函數(shù)求一個階方陣右下三

|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功能:根據(jù)整型形參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功能:編寫函數(shù)fun(str,i,n),從字符串(

str中刪除第i個字符開始的連續(xù)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和待刪字符個數(shù)nfclose(OUT);

的值:\n");}

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

while(i+n-l>strlen(str))18功能:統(tǒng)計出若干個學生的平均成績,

(最高分以及得最高分的人數(shù)。

printf("刪除位置i和待刪字符個數(shù)n的值例如:輸入10名學生的成績分別為92,

錯!請重新輸入i和n的值\n”);87,68,56,92,84,67,75,92,66,則輸

scanf(u%d%d,,,&i,&n);出平均成績?yōu)?7.9,最高分為92,得最高分

)的人數(shù)為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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論