程序设计题汇总.docx

上传人:b****6 文档编号:6463135 上传时间:2023-01-06 格式:DOCX 页数:24 大小:20.67KB
下载 相关 举报
程序设计题汇总.docx_第1页
第1页 / 共24页
程序设计题汇总.docx_第2页
第2页 / 共24页
程序设计题汇总.docx_第3页
第3页 / 共24页
程序设计题汇总.docx_第4页
第4页 / 共24页
程序设计题汇总.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

程序设计题汇总.docx

《程序设计题汇总.docx》由会员分享,可在线阅读,更多相关《程序设计题汇总.docx(24页珍藏版)》请在冰豆网上搜索。

程序设计题汇总.docx

程序设计题汇总

1【程序设计】

功能:

将tt数组中的小写字母都改为对应的大写字母,其它字符删除。

例如:

a4bdsk88*,结果:

ABDSK

voidTestFunc();

#include

#include

voidfun(chartt[])

{/*********Begin**********/

inti,j=0;

for(i=0;tt[i];i++)

if(('a'<=tt[i])&&(tt[i]<='z'))

tt[j++]=tt[i]-32;

tt[j]=0;

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

main()

{chartt[81];

printf("\nPleaseenterastring:

");

gets(tt);

fun(tt);

printf("\nTheresultstringis:

\n%s",tt);

TestFunc();}

voidTestFunc()

{ILE*IN,*OUT;

chars[100];

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

if(IN==NULL)

{printf("ReadFILEError");}

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

if(OUT==NULL)

{printf("WriteFILEError");

fgets(s,100,IN);

fun(s);

fprintf(OUT,"%s",s);

fclose(IN);

fclose(OUT)}

2【程序设计】

功能:

删除bb[]数组中所有值为y的元素,函数返回值为删除y后剩余数据的个数。

数组元素中的值和y的值由函数通过键盘输入。

#include"stdio.h"

#include"conio.h"

#defineM20

intfun(intbb[],intn,inty)

{inti,k=0;

for(i=0;i

{

if(bb[i]!

=y)

bb[k++]=bb[i];

}

returnk;

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

voidmain()

{intaa[M],n,y,k;

voidTestFunc();

printf("\n请输入n:

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

printf("\n请输入%d个正整数:

\n",n);

for(k=0;k

scanf("%d",&aa[k]);

printf("输入的源数据为:

\n");

for(k=0;k

printf("%5d",aa[k]);

printf("\n请输入要删除的数:

");scanf("%d",&y);

n=fun(aa,n,y);

printf("删除%d之后数据为:

\n",y);

for(k=0;k

printf("%4d",aa[k]);

printf("\n");

TestFunc();}

voidTestFunc()

{FILE*IN,*OUT;

intn;

inti[10];

into;

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

if(IN==NULL)

{printf("ReadFileError");}

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

if(OUT==NULL)

{printf("WriteFileError");}

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

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

n=fun(i,n,3);

for(o=0;o

{fprintf(OUT,"%d\n",i[o]);}

fclose(IN);

fclose(OUT);}

3【程序设计】

功能:

对任意输入的x,用下式计算并输出y的值。

-1x<0

y=0x=0

1x>0

#include"stdio.h"

intfun(intn)

{/*********Begin**********/

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

voidmain()

{voidTestFunc();

intx,y;

printf("enterx:

");

scanf("%d",&x);

y=fun(x);

printf("x=%d,y=%d\n",x,y);

TestFunc()}

voidTestFunc()

{FILE*IN,*OUT;

inti;

intiIN;

longintiOUT;

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,"%ld\n",iOUT);}

fclose(IN);

fclose(OUT);}

4【程序设计】

功能:

从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。

例如:

7是素数,8不是素数。

请编写fun函数。

素数是仅能被1和自身整除的数。

#include"stdio.h"

#include"math.h"

intfun(intn)

{inti;

intj;

j=1;

for(i=2;i

{if(n%i==0)j=0;}

returnj;}

voidmain()

{voidTestFunc();

intm,flag;

printf("inputaninteger:

");

scanf("%d",&m);

flag=fun(m);

if(flag)

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

else

printf("%disnotaprime.\n",m);

TestFunc();}

voidTestFunc()

{FILE*IN,*OUT;

intiIN,iOUT,i;

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

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}

OUT=fopen("5.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);}

5【程序设计】

请写一函数fun,该函数的功能是:

把数组a中的数按从大到小的顺序排列。

数组的值从主函中输入,排序结果也在主函数中输出。

部分源程序如下:

#include

#defineN10

voidfun(inta[],intn)

{inti,j,t;

for(i=0;i

{for(j=0;j

{if(a[j]

{t=a[j];

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

a[j+1]=t;}}}

}

voidmain()

{inti=0;

inta[N]={45,34,78,38,87,98,23,67,76,56};

FILE*OUT;

fun(a,10);

printf("\n排序后的结果为:

\n");

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

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

printf("\n");

if((OUT=fopen("out.dat","w"))==NULL)

printf("写入文件失败!

");

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

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

fclose(OUT);}

6【程序设计】

功能:

将主函数中输入的字符串反序存放。

例如:

输入字符串"abcdefg",则应输出"gfedcba"。

#include"stdio.h"

#include"string.h"

#include"conio.h"

#defineN81

voidfun(charstr[],intn)

{inti,j;

charc;

for(i=0,j=n-1;i

{c=str[i];

str[i]=str[j];

str[j]=c;}}

voidmain()

{voidTestFunc();

chars[N];

intl;

printf("inputastring:

");gets(s);

l=strlen(s);

fun(s,l);

printf("Thenewstringis:

");puts(s);

TestFunc();}

voidTestFunc()

{FILE*IN,*OUT;

charsIN[20],*sOUT;

intiLENGTH;

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

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}

OUT=fopen("out.dat","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);}

7【程序设计】

功能:

实现两个整数的交换。

例如:

给a和b分别输入:

60和65,输出为:

a=65b=60

#include"stdio.h"

#include"conio.h"

voidfun(int*a,int*b)

{intt;

t=*a;*a=*b;*b=t;}

main()

{inta,b;

voidTestFunc();

printf("Entera,b:

");

scanf("%d%d",&a,&b);

fun(&a,&b);

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

TestFunc();}

voidTestFunc()

{FILE*IN,*OUT;

inta,b,n;

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

if(IN==NULL)

{printf("ReadFileError");}

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

if(OUT==NULL)

{printf("WriteFileError");}

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

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

fun(&a,&b);

fprintf(OUT,"a=%db=%d\n",a,b);}

fclose(IN);

fclose(OUT);}

8【程序设计】

功能:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。

例如:

当a=45,b=12。

调用该函数后,c=2415。

#include"stdio.h"

longfun(inta,intb)

{longc;

inti,j,k,t;

i=a/10;

j=a%10;

k=b/10;

t=b%10;

c=t*1000+100*i+10*k+j;

returnc;

voidmain()

{inta,b;longc;

voidNONO();

printf("Inputa,b:

");

scanf("%d%d",&a,&b);

c=fun(a,b);

printf("Theresultis:

%ld\n",c);

NONO();}

voidNONO()

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

0【程序设计】

功能:

输入一个字符串,过滤此串只保留串中的字母字符,并统计新生成串中包含的字母个数。

例如:

输入的字符串为ab234$df4,新生成的串为abdf。

#include"stdio.h"

#include"conio.h"

#defineN80

voidmain()

{charstr[N];intfun(charptr[]);voidTestFunc();ints;

printf("inputastring:

");gets(str);printf("Theoriginalstringis:

");puts(str);

s=fun(str);printf("Thenewstringis:

");puts(str);

printf("Thereare%dcharin

thenewstring.",s);

TestFunc();}

intfun(charptr[])

{/*********Begin**********/

inti,j;

for(i=0,j=0;ptr[i]!

='\0';i++)

if(ptr[i]<='z'&&ptr[i]>='a'||ptr[i]<='Z'&&ptr[i]>='A')

{ptr[j]=ptr[i];

j++;}

ptr[j]='\0';

return(j);

voidTestFunc()

{FILE*IN,*OUT;

charsIN[N];

intiOUT;

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

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");}

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

if(OUT==NULL)

{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");}

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

iOUT=fun(sIN);

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

fclose(IN);

fclose(OUT);

11【程序设计】

功能:

计算并输出给定整数n的所有因子之和(不包括1与自身)。

注意:

n的值不大于1000。

例如:

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

#include”stdio.h”

intfun(intn)

{ints=0,i;

for(i=2;i

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

returns;

voidmain()

{voidTestFunc();

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

TestFunc();}

voidTestFunc()

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

12【程序设计】、

题目:

用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。

#include"stdlib.h"

#include"stdio.h"

#defineN

intsum(inta[][N])

{/*********Begin**********/

inti,j,k=0;

for(i=0;i

for(j=N-1-i;j

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

return(k);

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

voidmain()

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

voidTestFunc();

for(i=0;i

{for(j=0;j

{a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数

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

printf("\n");}

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

printf("sum=%5d\n",sum(a));

TestFunc();}

voidTestFunc()

{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("WriteFileError");}

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

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

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

o=sum(i);

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

fclose(IN);

fclose(OUT);

13【程序设计】

题目:

用while语句求1~n的累计和。

注意:

请在Begin和End注释行之间填写代码,所有注释语句都不能删除。

#include

voidTestFunc();

intfun(intn)

{/*********Begin**********/

inti=1,sum=0;

while(i<=n)

{sum=sum+i;

i++;}

returnsum;

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

voidmain()

{intsum=0;

sum=fun(100);

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

TestFunc();}

voidTestFunc()

{FILE*IN,*OUT;

inti;

intiIN,iOUT;

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

14【程序设计】

--------------------------------------------------

功能:

从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函输出。

#include"stdio.h"

intfun(intx[],intn)

{intmin,i;

min=x[0];

for(i=1;i

if(x[i]

returnmin;

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

voidmain()

{voidTestFunc();

inta[10],i,min;

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

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

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

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

printf("\n");

min=fun(a,10);

printf("%d\n",min);

TestFunc();}

voidTestFunc()

{FILE*IN,*OUT;

intiIN[10],i;

intiOUT,iCOUNT;

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

if(IN=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1