c语言程序设计第2部分三写程序.docx

上传人:b****2 文档编号:11777197 上传时间:2023-06-02 格式:DOCX 页数:74 大小:94.85KB
下载 相关 举报
c语言程序设计第2部分三写程序.docx_第1页
第1页 / 共74页
c语言程序设计第2部分三写程序.docx_第2页
第2页 / 共74页
c语言程序设计第2部分三写程序.docx_第3页
第3页 / 共74页
c语言程序设计第2部分三写程序.docx_第4页
第4页 / 共74页
c语言程序设计第2部分三写程序.docx_第5页
第5页 / 共74页
c语言程序设计第2部分三写程序.docx_第6页
第6页 / 共74页
c语言程序设计第2部分三写程序.docx_第7页
第7页 / 共74页
c语言程序设计第2部分三写程序.docx_第8页
第8页 / 共74页
c语言程序设计第2部分三写程序.docx_第9页
第9页 / 共74页
c语言程序设计第2部分三写程序.docx_第10页
第10页 / 共74页
c语言程序设计第2部分三写程序.docx_第11页
第11页 / 共74页
c语言程序设计第2部分三写程序.docx_第12页
第12页 / 共74页
c语言程序设计第2部分三写程序.docx_第13页
第13页 / 共74页
c语言程序设计第2部分三写程序.docx_第14页
第14页 / 共74页
c语言程序设计第2部分三写程序.docx_第15页
第15页 / 共74页
c语言程序设计第2部分三写程序.docx_第16页
第16页 / 共74页
c语言程序设计第2部分三写程序.docx_第17页
第17页 / 共74页
c语言程序设计第2部分三写程序.docx_第18页
第18页 / 共74页
c语言程序设计第2部分三写程序.docx_第19页
第19页 / 共74页
c语言程序设计第2部分三写程序.docx_第20页
第20页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言程序设计第2部分三写程序.docx

《c语言程序设计第2部分三写程序.docx》由会员分享,可在线阅读,更多相关《c语言程序设计第2部分三写程序.docx(74页珍藏版)》请在冰点文库上搜索。

c语言程序设计第2部分三写程序.docx

c语言程序设计第2部分三写程序

三、编程题

考试做题要求:

1、按题目要求编写部分代码,不要改动已经有的代码。

2、在运行时如果遇到死循环,按Ctrl+Break键结束运行。

3、题目做完后必须要有运行结果,没有运行结果没有分。

1:

请编写函数fun,其功能是:

计算并输出下列多项式的值:

 

例如,在主函数中从键盘给n输入8后,输出为:

s=0.662872。

注意:

要求n的值大于1但不大于100。

部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

doublefun(intn)

{

 

}

main()

{intn;doubles;

printf("\nInputn:

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

s=fun(n);

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

NONO();

}

NONO()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

FILE*rf,*wf;intn,i;doubles;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

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

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

s=fun(n);

fprintf(wf,"%lf\n",s);

}

fclose(rf);fclose(wf);

}

2:

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:

函数返回指定学号的学生数据,指定的学号在主函数中输入。

若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。

(用于字符串比较的函数是strcmp)。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

STRECfun(STREC*a,char*b)

{

 

}

main()

{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},

{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},

{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},

{"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}};

STRECh;

charm[10];

inti;FILE*out;

printf("Theoriginaldata:

\n");

for(i=0;i

{if(i%4==0)printf("\n");

printf("%s%3d",s[i].num,s[i].s);

}

printf("\n\nEnterthenumber:

");gets(m);

h=fun(s,m);

printf("Thedata:

");

printf("\n%s%4d\n",h.num,h.s);

printf("\n");

out=fopen("c:

\\test\\out.dat","w");

h=fun(s,"GA013");

fprintf(out,"%s%4d\n",h.num,h.s);

fclose(out);

}

3:

已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。

请编写函数fun,函数的功能是:

找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。

已给出函数的首部,请完成该函数。

注意:

部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

#defineN10

typedefstructss

{charnum[10];ints;}STU;

fun(STUa[],STU*s)

{

 

}

main()

{STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},

{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;

inti;

printf("*****Theoriginaldata*****\n");

for(i=0;i

fun(a,&m);

printf("*****THERESULT*****\n");

printf("Thetop:

%s,%d\n",m.num,m.s);

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*rf,*wf;

STUa[N],m;

inti;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

for(i=0;i<10;i++)fscanf(rf,"%s%d",a[i].num,&a[i].s);

fun(a,&m);

fprintf(wf,"Thetop:

%s,%d\n",m.num,m.s);

fclose(rf);

fclose(wf);

}

4:

请编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

例如,若输入:

17,则应输出:

46891012141516。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(intm,int*k,intxx[])

{

 

}

main()

{

intm,n,zz[100];

printf("\nPleaseenteranintegernumberbetween10and100:

");

scanf("%d",&n);

fun(n,&m,zz);

printf("\n\nThereare%dnon-primenumberslessthan%d:

",m,n);

for(n=0;n

printf("\n%4d",zz[n]);

NONO();

}

NONO()

{

/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。

*/

intm,n,zz[100];

FILE*rf,*wf;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

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

fun(n,&m,zz);

fprintf(wf,"%d\n%d\n",m,n);

for(n=0;n

fprintf(wf,"%d\n",zz[n]);

fclose(rf);

fclose(wf);

}

5:

请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。

例如:

w值为5923,则函数返回923;w值为923则函数返回23。

注意:

部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

unsignedfun(unsignedw)

{

 

}

main()

{unsignedx;

printf("Enteraunsignedintegernumber:

");scanf("%u",&x);

printf("Theoriginaldatais:

%u\n",x);

if(x<10)printf("Dataerror!

");

elseprintf("Theresult:

%u\n",fun(x));

NONO();

}

NONO()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。

*/

unsignedx;

inti;

FILE*rf,*wf;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

for(i=0;i<20;i++){

fscanf(rf,"%u",&x);

fprintf(wf,"%u\n",fun(x));

}

fclose(rf);

fclose(wf);

}

6:

请编写一个函数fun,它的功能是:

比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符串长度相同,则返回第一个字符串。

例如,输入beijingshanghai为回车键),

函数将返回shanghai。

注意:

部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

char*fun(char*s,char*t)

{

 

}

main()

{chara[20],b[20];

printf("Input1thstring:

");

gets(a);

printf("Input2thstring:

");

gets(b);

printf("%s\n",fun(a,b));

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*fp,*wf;

inti;

chara[20],b[20];

fp=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

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

fscanf(fp,"%s%s",a,b);

fprintf(wf,"%s\n",fun(a,b));

}

fclose(fp);

fclose(wf);

}

7:

请编写函数fun,函数的功能是:

实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。

计算结果在main函数中输出。

例如,输入下面的矩阵:

其转置矩阵为:

123147

456258

789369

程序输出:

2610

61014

101418

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(inta[3][3],intb[3][3])

{

 

}

main()/*主程序*/

{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];

inti,j;

fun(a,t);

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

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

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

printf("\n");

}

NONO();

}

NONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

inti,j,k,a[3][3],t[3][3];

FILE*rf,*wf;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

for(k=0;k<5;k++){

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

fscanf(rf,"%d%d%d",&a[i][0],&a[i][1],&a[i][2]);

fun(a,t);

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

for(j=0;j<3;j++)fprintf(wf,"%7d",t[i][j]);

fprintf(wf,"\n");

}

}

fclose(rf);

fclose(wf);

}

8:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

除了尾部的*号之外,将字符串中其它*号全部删除。

形参p已指向字符串中最后的一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

ABCDEFG*******。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(char*a,char*p)

{

 

}

main()

{chars[81],*t;

printf("Enterastring:

\n");gets(s);

t=s;

while(*t)t++;

t--;

while(*t=='*')t--;

fun(s,t);

printf("Thestringafterdeleted:

\n");puts(s);

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*in,*out;

inti;chars[81],*t;

in=fopen("c:

\\test\\in.dat","r");

out=fopen("c:

\\test\\out.dat","w");

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

fscanf(in,"%s",s);

t=s;

while(*t)t++;

t--;

while(*t=='*')t--;

fun(s,t);

fprintf(out,"%s\n",s);

}

fclose(in);

fclose(out);

}

9:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

例如,字符串中的内容为:

****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:

****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:

****A*BC*DEF*G*******。

n的值在主函数中输入。

在编写函数时,不得使用C语言提供的字符串函数。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(char*a,intn)

{

 

}

main()

{chars[81];intn;

printf("Enterastring:

\n");gets(s);

printf("Entern:

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

fun(s,n);

printf("Thestringafterdeleted:

\n");puts(s);

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*in,*out;

inti,n;chars[81];

in=fopen("c:

\\test\\in.dat","r");

out=fopen("c:

\\test\\out.dat","w");

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

fscanf(in,"%s",s);

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

fun(s,n);

fprintf(out,"%s\n",s);

}

fclose(in);

fclose(out);

}

10:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

删除字符串中所有的*号。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

ABCDEFG。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(char*a)

{

 

}

main()

{chars[81];

printf("Enterastring:

\n");gets(s);

fun(s);

printf("Thestringafterdeleted:

\n");puts(s);

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*in,*out;

inti;chars[81];

in=fopen("c:

\\test\\in.dat","r");

out=fopen("c:

\\test\\out.dat","w");

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

fscanf(in,"%s",s);

fun(s);

fprintf(out,"%s\n",s);

}

fclose(in);

fclose(out);

}

11:

请编写函数fun,它的功能是:

求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(int*a,int*n)

{

 

}

main()

{intaa[1000],n,k;

fun(aa,&n);

for(k=0;k

if((k+1)%10==0)printf("\n");

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

NONO();

}

NONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

intaa[1000],n,k;

FILE*fp;

fp=fopen("c:

\\test\\out.dat","w");

fun(aa,&n);

for(k=0;k

if((k+1)%10==0)fprintf(fp,"\n");

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

fclose(fp);

}

12:

函数fun的功能是:

将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:

"ABCDEFG12345",其中字符B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、…都应当删除,其它依此类推。

最后t所指的数组中的内容应是:

"ACEG135"。

注意:

部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

voidfun(char*s,chart[])

{

 

}

main()

{

chars[100],t[100];

printf("\nPleaseenterstringS:

");scanf("%s",s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

chars[100],t[100];

FILE*rf,*wf;

inti;

rf=fopen("c:

\\test\\in.

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2