程序题.docx

上传人:b****9 文档编号:26151487 上传时间:2023-06-17 格式:DOCX 页数:42 大小:21.05KB
下载 相关 举报
程序题.docx_第1页
第1页 / 共42页
程序题.docx_第2页
第2页 / 共42页
程序题.docx_第3页
第3页 / 共42页
程序题.docx_第4页
第4页 / 共42页
程序题.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

程序题.docx

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

程序题.docx

程序题

/*------------------------------------------------

【程序设计】

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

功能:

输入n个数,并求出小于平均值的数的个数。

------------------------------------------------*/

#include"stdio.h"

intaverage_num(inta[],intn)

{

/*********Begin**********/

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

}

main()

{

intn,a[100],i,num;

voidTestFunc();

scanf("%d",&n);

for(i=0;i

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

num=average_num(a,n);

printf("thenumis:

%d\n",num);

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<5;n++)

{

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

}

o=average_num(i,5);

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

fclose(IN);

fclose(OUT);

}

【参考代码】

inti,sum=0,k=0;

doubleaverage;

for(i=0;i

sum=sum+a[i];

average=sum*1.0/n;

for(i=0;i

if(average>a[i])k++;

return(k);

===============

/*------------------------------------------------

【程序设计】

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

功能:

从字符串中删除指定的字符。

同一字母的大、小写

按不同字符处理。

例如:

若程序执行时输入字符串为:

turbocandborlandc++

从键盘上输入字符:

n,则输出后变为:

turbocadbo

rladc++,如果输入的字符在字符串中不存在,则字

符串照原样输出。

------------------------------------------------*/

#include"stdio.h"

voidfun(chars[],charc)

{

/*********Begin**********/

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

}

voidTestFunc()

{

FILE*IN,*OUT;

chari[200];

/*charo[200];*/

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

if(IN==NULL)

{

printf("ReadFileError");

}

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

if(OUT==NULL)

{

printf("WriteFileError");

}

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

fun(i,'n');

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

fclose(IN);

fclose(OUT);

}

main()

{

staticcharstr[]="turbocandborlandc++";

charch;

printf("原始字符串:

%s\n",str);

printf("输入一个字符:

");

scanf("%c",&ch);

fun(str,ch);

printf("str[]=%s\n",str);

TestFunc();

}

【参考代码】

char*q=s;

for(;*q;q++)

if(*q!

=c)*(s++)=*q;

*s=0;

===============

/*--------------------------------------------------------

【程序改错】

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

功能:

依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

例如:

输入ab12c3d,则输出123。

注意:

不得增行或删行,也不得更改程序的结构!

------------------------------------------------------*/

#include"stdio.h"

/**********ERROR**********/

voidfun(chars)

{

inti,j;

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

='\0';i++)

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

/**********ERROR**********/

s[j]=s[i];

/**********ERROR**********/

s[j]="\0";

}

main()

{

charitem[80];

printf("\nEnterastring:

");

gets(item);

printf("\n\nThestringis:

\"%s\"\n",item);

fun(item);

printf("\n\nThestringofchangingis:

\"%s\"\n",item);

}

【参考答案】

voidfun(char*s)

voidfun(chars[])

voidfun(chars[80])

【参考答案】

s[j++]=s[i];

{s[j]=s[i];j++;}

【参考答案】

s[j]='\0';

/*------------------------------------------------------

【程序改错】

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

功能:

读入一个整数m(5≤m≤20),函数rnd获得m个随机整数,

函数sortpb将这m个随机整数从小到大排序。

例如:

若输入整数7,则应输出:

3101728323647。

------------------------------------------------------*/

#include"conio.h"

#include"stdio.h"

sortpb(intn,inta[])

{

/**********ERROR**********/

inti,j,p;

for(j=0;j

{

p=j;

for(i=j+1;i

/**********ERROR**********/

if(a[p]>a[j])p=i;

/**********ERROR**********/

if(p==j)

{

t=a[j];

a[j]=a[p];

a[p]=t;

}

}

}

doublernd()

{

statict=29,c=217,m=1024,r=0;

r=(r*t+c)%m;return((double)r/m);

}

getarr(intn,int*x)

{

inti;

for(i=1;i<=n;i++,x++)*x=(int)(50*rnd());

}

putarr(intn,int*z)

{

inti;

for(i=1;i<=n;i++,z++)

{

printf("%4d",*z);

if(!

(i%10))printf("\n");

}

printf("\n");

}

main()

{

intaa[20],n;

printf("\nPleaseenteranintegernumberbetween5and20:

");

scanf("%d",&n);

getarr(n,aa);

printf("\n\nBeforesorting%dnumbers:

\n",n);putarr(n,aa);

sortpb(n,aa);

printf("\nAftersorting%dnumbers:

\n",n);putarr(n,aa);

}

【参考答案】

inti,j,p,t;

【参考答案】

if(a[p]>a[i])p=i;

【参考答案】

if(p!

=j)

/*-------------------------------------------------------

【程序填空】

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

功能:

计算矩阵a的下三角(包含主对角线)元素之积,矩阵的

行、列数和元素值均由键盘输入。

-------------------------------------------------------*/

#defineM10

#include"stdio.h"

intmain()

{

inti,j,n,a[M][M];

longs=1;

scanf("%d",&n);

/***********FILL***********/

for(_________)

for(j=0;j

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

for(i=0;i

/***********FILL***********/

for(j=0;_______;j++)

/***********FILL***********/

s=_________;

printf("%ld\n",s);

return0;

}

【参考答案】

i=0;i

i=0;i

【参考答案】

j<=i

i>=j

【参考答案】

s*a[i][j]

a[i][j]*s

/*-------------------------------------------------------

【程序填空】

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

题目:

本程序的功能是从10个数中找出其中的最大值,完善程序。

-------------------------------------------------------*/

#include"stdio.h"

main()

{

inta[10],i,*pmax;

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

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

/***********FILL***********/

pmax=_____;

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

if(a[i]>*pmax)pmax=&a[i];

/***********FILL***********/

printf("%d",_____);

}

【参考答案】

pmax=&a[0]

pmax=a

【参考答案】

*pmax

/*------------------------------------------------

【程序设计】

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

功能:

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

自身)。

注意:

n的值不大于1000。

例如:

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

------------------------------------------------*/

#include"stdio.h"

intfun(intn)

{

/*********Begin**********/

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

}

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

}

main()

{

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

TestFunc();

}

【参考代码】

ints=0,i;

for(i=2;i

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

returns;

/*------------------------------------------------------

【程序设计】

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

功能:

删去一维数组中所有重复的数,只保留不同的数。

数组中的数已按由小到大的顺序排列,

函数返回删除后数组中数据的个数。

例如:

一维数组中的数据是:

2223445666677899101010。

删除后,数组中的内容应该是:

2345678910。

注意:

请勿改动主函数main和其它函数中的任何内容。

------------------------------------------------------*/

#include"stdio.h"

#defineN80

intfun(inta[],intn)

{

/*********Begin**********/

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

}

main()

{

voidTestFunc();

inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;

printf("Theoriginaldata:

\n");

for(i=0;i

n=fun(a,n);

printf("\n\nThedataafterdeleted:

\n");

for(i=0;i

printf("\n\n");

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

inta[N];

intn;

inti;

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

if(IN==NULL)

{

printf("ReadFileError");

}

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

if(OUT==NULL)

{

printf("WriteFileError");

}

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

for(i=0;i

n=fun(a,n);

for(i=0;i

fclose(IN);

fclose(OUT);

}

【参考代码】

inti,j=1,k=a[0];

for(i=1;i

if(k!

=a[i])

{

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

k=a[i];

}

a[j]=0;

/*------------------------------------------------------

【程序改错】

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

函数fun的功能是:

求1到20的阶乘的和。

--------------------------------------*/

#include"stdio.h"

main()

{

intn,j;

floats=0.0,t=1.0;

for(n=1;n<=20;n++)

{

/**********ERROR**********/

s=1;

for(j=1;j<=n;j++)

/**********ERROR**********/

t=t*n;

/**********ERROR**********/

s+t=s;

}

printf("jiecheng=%f\n",s);

}

【参考答案】

t=1;

t=1.0;

【参考答案】

t=t*j;

t*=j;

t=j*t;

【参考答案】

s=s+t;

s+=t;

s=t+s;

/*------------------------------------------------------

【程序改错】

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

功能:

实现两个字符串的连接。

例如:

输入dfdfqe和12345时,则输出dfdfqe12345.

------------------------------------------------------*/

#include"stdio.h"

main()

{

chars1[80],s2[80];

voidscat(chars1[],chars2[]);

gets(s1);

gets(s2);

scat(s1,s2);

puts(s1);

}

voidscat(chars1[],chars2[])

{

inti=0,j=0;

/**********ERROR**********/

while(s1[i]=='\0')i++;

/**********ERROR**********/

while(s2[j]=='\0')

{

/**********ERROR**********/

s2[j]=s1[i];

i++;

j++;

}

/**********ERROR**********/

s2[j]='\0';

}

【参考答案】

while(s1[i]!

='\0')i++;

while(s1[i])i++;

while(s1[i]!

=NULL)i++;

while(s1[i]!

=0)i++;

【参考答案】

while(s2[j]!

='\0')

while(s2[j])

while(s2[j]!

=NULL)

while(s2[j]!

=0)

【参考答案】

s1[i]=s2[j];【参考答案】

s1[i]='\0';

s1[i]=NULL;

*(s1+i)='\0';

s1[i]=0;

/*-------------------------------------------------------

【程序填空】

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

功能:

打印以下图形。

*****

*****

*****

*****

*****

-------------------------------------------------------*/

#include"stdio.h"

main()

{

chara[5][9]={""};

inti,j;

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

/***********FILL***********/

for(j=i;_____;j++)

a[i][j]='*';

/***********FILL***********/

for(_____;i<5;i++)

{

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

/***********FILL***********/

printf("%c",_____);

/***********FILL***********/

_____;

}

}

【参考答案】

j

i+5>j

j<=i+4

i+4>j

【参考答案】

i=0

【参考答案】

a[i][j]

【参考答案】

printf("\n")

/*-------------------------------------------------------

【程序填空】

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

功能:

计算n门课程的平均分。

例如:

若有5门课程的成绩是:

90.5,72,80,61.5,55

则函数的值为:

71.80。

-------------------------------------------------------*/

#include

floatfun(float*a,intn)

{

inti;

floatave=0.0;

/***********FILL***********/

for(i=0;________;i++)

ave=ave+a[i];

ave=ave/n;

/***********FILL***********/

_________;

}

intmain()

{

floatscore[30]={90.5,72,80,61.5,55},aver;

/***********FILL***********/

aver=fun(_______,5);

printf("\nAvera

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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