C考試題庫程序設(shè)計(jì)_第1頁
C考試題庫程序設(shè)計(jì)_第2頁
C考試題庫程序設(shè)計(jì)_第3頁
C考試題庫程序設(shè)計(jì)_第4頁
C考試題庫程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

程序設(shè)計(jì)(老師)

題目:用函數(shù)求一個(gè)N階方陣右下三角元素的和(包括副對角線上的元素)。

^include<stdlib.h>

ttinclude-stdio.h〃

ttdefineN3

intsum(inta[][N])

(

/**********Program**********/

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

)

main()

{inta[N][N],i,j;

clrscr();

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

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

{a[i][j]=random(10)+10;

printf(〃%3d〃,a[i][j]);

printf(〃\n〃);

printf(〃============\n〃);

printf(,zsum=%5d\n/z,sum(a));

yzj();

getchO;

yzjO

(

FILE*IN,*OUT;

intm,n;

inti[3][3];

into;

IN二fopen(〃in.dat〃,〃r〃);

if(IN=二NULL)

{printf("ReadFileError");

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

if(OUT=NULL)

{printf(z,WriteFileError");

i

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

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

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

o=sum(i);

fprintf(OUT,/z%d\n/z,o);

fclose(IN);

fclose(OUT);

I

答案:

inti,j,k=0;

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

for(j=N-l-i;j<N;j++)

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

return(k);

1

題目:編寫程序,實(shí)現(xiàn)矩陣(3行3歹U)的轉(zhuǎn)置(即行列互換)

例如,輸入下面的矩陣:

100200300

400500600

700800900

程序輸出:

100400700

200500800

300600900

^include"stdio.h"

intfun(intarray[3][3])

(

/**********Prograiii**********/

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

main()

inti,j;

intarray[3][3]={{100,200,300},

{400,500,600),

(700,800,900)};

clrscr();

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

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

printf(/,%7d,/,arrayEi][j]);

printf(〃\n〃);

I

fun(array);

printf(''Convertedarray:\n,z);

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

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

printf("%7d”,array[i][j]);

printf('\n");

)

getch();

NONOO;

}

NONOO

{

inti,j,array[3][3];

FILE*rf,*wf;rf=fopen("in.dat","r");

wf=fopen("out.dat","w");for(i=0;i<3;i++)

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

fscanf(rf,"%d”,&array[i][j]);fun(array);

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

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

fprintf(wf,"%7d”,arrayLi][j]);fprintf(wf,"\n");

fclose(rf);

fclose(wf);

)

答案:

inti,j,t;

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

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

{t=array[i][j];

array[i][j]=array[j][i];

array[j]}

題目:請編寫一個(gè)函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)出若干個(gè)學(xué)生的平均成績,最

分以及得最高分的人數(shù)。例如,輸入

10名學(xué)生的成績分別為92,87,68,

56,92,84,67,75,92,66,則輸

出平均成績?yōu)?7.9,最高分為92,得

最高分的人數(shù)為3人。

ttinclude"stdio.h

floatMax=0;

intJ=0;

floatfun(floatarray[],intn)

(

/**********Prograiii**********/

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

)

main()

(

floata[10],ave;

inti=0;

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

scanf(〃%f〃,&a[i]);

ave=fun(a,10);

printf(〃ave=%f\n〃,ave);

printf(〃max=%f\n〃,Max);

printf("Total:%d\n',J);

yzj0;

)

yzj0

(

FILE*IN,*0UT;

floatiIN[10],iOUT;

intiCOUNT;

IN=fopen("8.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(,z8.out","w");

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

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

fscanf(IN,,z%fz,,&iIN[iCOUNT]);iOUT-fun(ilN,10);

fprintf(OUT,z,%f%f\n〃,iOUT,Max);

fclose(IN);

fclose(OUT);

i

答案:

inti;floatsum=0,ave;

Max=array[0];

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

{if(Max<array[i])Max=array[i];

sum=sum+array[i];}

ave=sum/n;

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

if(array[i]==Max)J++;

return(ave);

題目:編寫函數(shù)fun求l!+2!+3!+……+n!

的和,在main函數(shù)中由鍵盤輸入n值,

并輸出運(yùn)算結(jié)果。請編寫fun函數(shù)。

例如:若n值為20,則結(jié)果為

268040729o

#include<stdio.h>

floatfun(intn)

{/**********Prograni**********/

/**********End**********/}main()

{inti,n;

longintresult;

scanf(〃%d〃,&n);

result=fun(n);

printf(〃%ld\n〃,result);

yzj0;}

yzj0

{FILE*IN,*0UT;

inti;

intilN;

longintiOUT;

IN=fopen("l.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(z,l.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);}

答案:inti;

floatf=l,s=0;

for(i=l;i<-n;i++)

{f=f*i;

s=s+f;}

returns;題目:編寫函數(shù)fun,函數(shù)的功能是:從字符串s中刪除指定的字符

ttinclude"stdio.h〃

fun(chars[],charc)

{/**********Prograni**********/

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

)

main()

(

staticcharstr口二〃turbocandborlandc++〃;charc='a';

fun(str,c);

printf(z/str=%s\n,z,str);

yzj();

yzj0

FILE*IN,*OUT;

charsIN[80],cIN;

inti;

IN二fopen(〃13?in”,〃r〃);

if(IN=NULL)

{printf(z,PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(/z13.out”,〃w〃);

if(OUT二二NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

fscanf(IN,/z%sz/,sIN);

cIN=getc(IN);cIN=getc(IN);

fun(sIN,cIN);

fprintf(OUT,"%s\n",sIN);

)

fclose(IN);

fclose(OUT);

)

答案:inti,k=0;

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

if(s[i]!=c)s[k++]=s[i];

s[k]='\0';

題目:請編寫一個(gè)函數(shù)fun,函數(shù)的功能是:求出NXM整型數(shù)組的最大元素及

其所在的行坐標(biāo)及列坐標(biāo)(如果最大

元素不唯一,選擇位置在最前面的一

個(gè))。

例如:輸入的數(shù)組為:

123

41

56

12189

10112

求出的最大數(shù)為18,行坐標(biāo)為2,列坐標(biāo)為lottdefineN4

ttdefineM3

#include<stdio.h>

intRow,Col;

main()

(

inta[N][M],i,j,max,row,col;

printf("inputaarray/');

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

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

scanf(〃/d〃,&a[i][j]);

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

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

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

printf('\n");

)

max=fun(a);

printf(/,max=%d,row=%d,col=%d//,max,Row,Col);

yzj0;

)

intfun(intarray[N][M])

{

/**********Prograni**********/

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

)

yzj0

(

FILE*IN,*0UT;

intiIN[N][M],iOUT,i,j;

IN=fopen("9.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(/z9.out","w");

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

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

fscanf(IN,[j]);

iOUT=fun(iIN);

fprintf(OUT,,z%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<N;i++)

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

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

{max=array[i][j];

Row二i;

Col=j;}

}

return(max);

題目:從鍵盤為一維整型數(shù)組輸入10個(gè)整數(shù),調(diào)用fun函數(shù)找出其中最小的數(shù),

并在main函數(shù)中輸出。請編寫fun

函數(shù)。

ttinclude"stdio.h〃

intfun(intx[],intn)

/**********Prograiii**********/

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

)

main()

(

inta[10],i,min;

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

scanf(/z%d,z,&a[i]);

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

printf(〃%3d”,a[i]);

printf(〃\n〃);

min=fun(a,10);

printf(〃/d\n〃,min);

yzj0;

yzj()

FILE*IN,*OUT;

intiIN[10],i;

intiOUT,iCOUNT;

IN=fopen(z/4.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(//4.out","w");

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

{for(iC0UNT=0;iC0UNT<10;iC0UNT++)

fscanf(IN,&iIN[iCOUNT]);

iOUT=fun(iIN,10);

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

fclose(IN);

fclose(OUT);

)

答案:

intmin,i;

min=x[0];

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

{if(x[i]<min)min=x[i];}

returnmin;

題目:從鍵盤輸入一個(gè)大于3的整數(shù),調(diào)用函數(shù)fun判斷其是否素?cái)?shù),然后在

main函數(shù)中輸出相應(yīng)的結(jié)論信息。例

如:7是素?cái)?shù),8不是素?cái)?shù)。請編寫

fun函數(shù)。素?cái)?shù)是僅能被1和自身整

除的數(shù)

ttinclude"stdio.h"

main()

{intm,flag;

printf(z/inputaninteger:z,);

scanf(〃/d〃,&m);

flag=fun(m);

if(flag)

printf(〃%disaprime.\n〃,m);

else

printf(^%disnotaprime.\nz/,m);

yzj();

)

intfun(intn)

{/**********Prograni**********/

/**********End**********/}

yzj0

(

FILE*IN,*OUT;

intilN,iOUT,i;

IN=fopen("5.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(/z5.out",“『);

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

{fscanf(IN,;

iOUT=fun(iIN);

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

)

fclose(IN);

fclose(OUT);

)答案:

inti;

intj;

j=1;

for(i=2;i〈n;i++){if(n%i==O)j=0;}

returnj;

題目:編寫函數(shù)fun其功能是在鍵盤上輸入一個(gè)3行3列矩陣的各個(gè)元素的值

(值為整數(shù)),然后輸出主對角線元素的積,并在fun()函數(shù)中輸出。

ttinclude"stdio.h〃

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);

yzj0;

getchO;}

intfun(inta[3][3])

/**********Prc)grani**********/

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

i

yzj0

(

FILE*IN,*OUT;

intm;

intn;

inti[3][3];

into;

IN=fopenCin.dat〃,〃r〃);

if(IN==NULL)

{printf(z,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,z/%d\n/z,o);getchO;

)

fclose(IN);

fclose(OUT);

)

答案:

intsum;

inti,j;

sum=l;

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

sum=sum*a[i]Li];

returnsum;

題目:請編寫一個(gè)函數(shù)fun,函數(shù)的功能是:將主函數(shù)中輸入的字符串反序存

放。

例如:輸入字符串〃abcdefg〃,則應(yīng)輸

出〃gfedcba”。

#include<stdio.h>

ttinclude<conio.h>

ttdefineN81

charfun(char*str,intn)

(

/**********Program**********/

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

main()

chars[N];

int1;

clrscr();

printf("inputastring:,/);gets(s);

l=strlen(s);

fun(s,1);

printf(Z/Thenewstringis:");puts(s);

yzj0;

)

yzj0

(

FILE*IN,*OUT;

charsIN[20],*s0UT;

intiLENGTH;

IN=fopen("7.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

0UT=fopen("7.out","w");

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

}

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

iLENGTH=strlen(sIN);

sOUT=sIN;

fun(sIN,iLENGTH);

fprintf(OUT,"%s\n”,sOUT);

fclose(IN);

fclose(OUT):

)

答案:

inti,j;

charc;

for(i=0,j=n-l;i<j;i++,j—)

/*或者for(i=0,j=n-l;i<n/2;i++,j--)*/{c=*(str+i);

*(str+i)=*(str+j);

*(str+j)=c;}

題目:請編寫一個(gè)函數(shù)fun,函數(shù)的功能是:輸入一個(gè)字符串,過濾此串,只保留

串中的字母字符,并統(tǒng)計(jì)新生成串中

包含的字母個(gè)數(shù)。例如:輸入的字符

串為ab234$df4,新生成的串為

abdfo

ttinclude<stdio.h>

ttinclude<conio.h>

ttdefineN80

main()

(

charstr[N];

ints;

clrscr();

printf("inputastring:zz);gets(str);

printf("Theoriginalstringis:〃);puts(str);

s=fun(str);

printf(z,Thenewstringis:〃);puts(str);

printf(''Thereare%dcharinthenewstring./z,s);

yzj();

fun(char*ptr)

{

/**********Progra田**********/

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

)

yzj0

{

FILE*IN,*OUT;

charsIN[N];

intiOUT;

IN=fopen("10.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(/z10.out","w");

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

iOUT=fun(sIN);

fprintf(OUT,/z%d%s\n”,iOUT,sIN);

fclose(IN);

fclose(OUT):

)

答案:

inti,j;

for(i=0,j=O;*(ptr+i)!='\O';i++)

if(*(ptr+i)<=,z'&&

*(ptr+i)>='a'*(ptr+i)<='Z'&&*(ptr+i)>='A'){*(ptr+j)=*(ptr+i);

j++;}

*(ptr+j)=\0J;

return(j);

題目:編寫函數(shù)用選擇排序法對數(shù)組中的數(shù)據(jù)進(jìn)行從小到大的排序。

ttinclude<stdlib.h>

#include<stdio.h>

voidsort(inta[],intn)

(

/**********Prograni**********/

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

I

main()

{inta[13],i;

clrscr();

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

a[i]=random(20)-5;

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

printf(,z%3d/z,a[i]);

printf(〃\n-------------------\n〃);

sort(a,13);

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

printf(,z%3d,z,a[i]);

yzj0;

getchO;

}

yzjO

(

FILE*IN,*0UT;

intn;

inti[10];

into;

IN=fopen(,zin.dat〃,〃r〃);

if(IN=NULL)

{printf("ReadFileError");

}

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

if(OUT二二NULL)

(printf(z,WriteFileError");

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

{

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

}

sort(i,10);

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

fprintf(OUT,〃%d\n〃,i[n]);

fclose(IN);

fclose(OUT);

答案:

inti,j,k,t:

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

{k=i;

for(j=i+l;j<n;j++)

if(a[k]>a[j])k=j:

if(k!=i)

{t=a[i];

a[i]=a[k];

a[k]=t;

)

)

題目:編寫函數(shù)fun,函數(shù)的功能是:求一分?jǐn)?shù)序列2/1,3/2,5/3,8/5,13/8,

21/13…的前n項(xiàng)之和。

每一分?jǐn)?shù)的分母是前兩項(xiàng)的分母之

每一分?jǐn)?shù)的分子是前兩項(xiàng)的分子之

例如:求前20項(xiàng)之和的值為32.660259。ftinclude"stdio.h

floatfun(intn)

(

/**********Program**********/

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

)

main()

{floaty;

y=fun(20);

printf(〃y二%f\n〃,y);

yzj();

I

yzj0

(

FILE*IN,*0UT;

intilN,i;

floatfOUT;

IN=fopen("30.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

0UT=fopen(z/30.out","w");

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

{fscanf(IN,"%d”,&iIN);

fOUT=fun(iIN);

fprintf(OUT,fOUT);

)

fclose(IN);

fclose(OUT);

}答案:inti;

floatf1=1,f2=l,f3,s=0;

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

{f3=fl+f2;

fl=f2;

f2=f3;

s=s+f2/fl;

)

returns;

題目:調(diào)用函數(shù)fun判斷一個(gè)三位數(shù)是否"

水仙花數(shù)”。在main函數(shù)中從鍵盤輸

入一個(gè)三位數(shù),并輸出判斷結(jié)果。

請編寫fun函數(shù)。所謂“水仙花數(shù)〃是

指一個(gè)3位數(shù),其各位數(shù)字立方和等

于該數(shù)本身。例如,153是一個(gè)水仙

花數(shù),因?yàn)?53=13+53+33。

ttinclude"stdio.h〃

intfun(intn)

/**********Prograiii**********/

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

)

main()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論