收藏 分享(赏)

C语言100题WORD加答案.doc

上传人:hyngb9260 文档编号:7472977 上传时间:2019-05-19 格式:DOC 页数:61 大小:652.50KB
下载 相关 举报
C语言100题WORD加答案.doc_第1页
第1页 / 共61页
C语言100题WORD加答案.doc_第2页
第2页 / 共61页
C语言100题WORD加答案.doc_第3页
第3页 / 共61页
C语言100题WORD加答案.doc_第4页
第4页 / 共61页
C语言100题WORD加答案.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、二级 C 语言 第 1 页 共 61 页1:下列程序的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数组 xx。请编写函数 num(int m,int k,int xx)实现函数的要求 ,最后调用函数 readwriteDAT()把结果输出到文件out.dat 中。例如:若输入 17,5,则应输出:19,23,29,31,37。注意:部分源程序已给出。请勿改动主函数 main()和函数 readwriteDAT()的内容。-类型:素数。void num(int m,int k,int xx) /*标准答案*/int data=m+1;int half,n=0,I; while(1) h

2、alf=data/2;for(I=2;Ihalf)xxn=data;n+;if(n=k)break;data+; 或者:void num(int m,int k,int xx)int i,j,s=0;for(i=m+1;k0;i+)for(j=2;j0;m+)if(isP(m) xxi+=m;k-; 原程序如下:#include #include void readwriteDAT() ;int isP(int m) int i ;for(i = 2 ; i #define MAX 200int aMAX, bMAX, cnt = 0;void jsVal()void readDat() in

3、t i ;FILE *fp ;fp = fopen(“in.dat“, “r“) ;for(i = 0 ; i =index;j-)ch=xxIstrl-1;for(k=strl-1;k0;k-)xxIk=xxIk-1;xxI0=ch;或者:void StrOR(void) int i;char a80,*p;for(i=0;i=0;j-)if(xxij=o) righto=j;break; for(j=righto+1;j=xxi) p1-;memcpy(t1,p1+1,p2-p1);t1p2-p1=0;strcat(t,t1);strcat(t,“ “);if(p1=Aj=0;j-)ppj

4、+1=ppj; pp0=xxlI; k+;I-; strcat(ch,pp);strcpy(pp, “);k=1;if(I=-1)break;while(xxlIz)j=0;j-)ppj+1=ppj; pp0=xxlI; k+; I-;strcat(ch,pp); strcpy(pp,“);k=0;if(I=-1)break;strcpy(xxl,ch);或者:void StrOL(void) int i,j,k,m,n,ll;char yy80;for(i=0; i =0; j-) if(isalpha(xxij) k+;else for(m=1; maaj%1000)data=aaI;aa

5、I=aaj;aaj=data;else if(aaI%1000=aaj%1000)if(aaI#include#includeint aa200,bb10;void jsSort()void main()readDat();jsSort();writeDat();system(“pause“);readDat()FILE *in;int i;in=fopen(“in.dat“,“r“);for(i=0; iaaj)data=aaI;aaI=aaj;aaj=data;二级 C 语言 第 5 页 共 61 页for(I=0;I#include#includeint aa200,bb10;void

6、jsSort()void main()readDat();jsSort();writeDat();system(“pause“);readDat()FILE *in;int i;in=fopen(“in.dat“,“r“);for(i=0; i#include#include#include#include#define MAX 100typedef structchar dm5; /*产品代码*/char mc11; /*产品名称*/ int dj; /*单价*/int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void

7、 WriteDat();void SortDat()void main() memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;char str80,ch11;int i;fp=fopen(“IN.DAT“,“r“);for(i=0;i130|*pf*11%256130);else xxij=p; 原程序如下:#include#include#include#includeunsigned char xx5080;int maxline=0;/*文章的总行数*/int ReadDat

8、(void);void WriteDat(void);void encryptChar()void main()clrscr();if(ReadDat()printf(“数据文件 ENG.IN 不能打开!n007“);return;encryptChar();WriteDat();system(“pause“);int ReadDat(void)FILE *fp;int i=0;unsigned char *p;if(fp=fopen(“eng.in“,“r“)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p)*

9、p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(“ps1.dat“,“w“);for(i=0;i#include #include char xx5080 ;int maxline = 0 ; /* 文章的总行数 */int ReadDat(void) ;void WriteDat(void) ;void SortCharD(void)int I,j,k,strl;二级 C 语言 第 7 页 共 61 页char ch;for(I=0;I=aint maxline = 0 ; /*

10、文章的总行数 */int ReadDat(void) ;void WriteDat(void) ;void ConvertCharA(void) void main() clrscr() ;if(ReadDat() printf(“数据文件 IN.DAT 不能打开!n007“) ;return ;ConvertCharA();WriteDat() ;system(“pause“);int ReadDat(void) FILE *fp ; int i = 0 ; char *p ;if(fp = fopen(“IN.DAT“, “r“) = NULL) return 1 ;while(fgets

11、(xxi, 80, fp) != NULL) p = strchr(xxi, n) ;if(p) *p = 0 ; i+ ;maxline = i ; fclose(fp) ; return 0 ;void WriteDat(void)FILE *fp ; int i ;clrscr() ;fp = fopen(“OUT3.DAT“, “w“) ;for(i = 0 ; i =avoid chg(char*s) main( )char aN;clrscr();printf(“Enter a string : “); gets(a);printf(“The original string is

12、: “); puts(a);chg(a);printf(“The string after modified : “);puts (a);readwriteDAT() ;system(“pause“);void readwriteDAT()int i ;char aN ;FILE *rf, *wf ;rf = fopen(“in.dat“, “r“) ;wf = fopen(“out.dat“, “w“) ;for(i = 0 ; i #include#include#include#include#define MAX 100typedef structchar dm5; /*产品代码*/c

13、har mc11; /*产品名称*/ int dj; /*单价*/int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()void main() memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;二级 C 语言 第 9 页 共 61 页char str80,ch11;int i;fp=fopen(“IN.DAT“,“r“);for(i=0;i0)xy=sel

14、lI; sell I=sellj; sellj=xy;else if(strcmp(sellI.mc,sellj.mc)=0)if(sellI.je#include#include#include#include#define MAX 100typedef structchar dm5; /*产品代码*/char mc11; /*产品名称*/ int dj; /*单价*/int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()void main() memset(sel

15、l,0,sizeof(sell);ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;char str80,ch11;int i;fp=fopen(“IN.DAT“,“r“);for(i=0;iaj)flag=1;else flag=0;break;if (aI%2=0)flag=0;if (flag=1)bcnt=aI; cnt+; for(I=0;Ibj)k=bI;bI=bj;bj=k;二级 C 语言 第 10 页 共 61 页原程序如下:#include #define MAX 200int aMAX, bMAX, cnt = 0

16、;void jsVal()void readDat() int i ;FILE *fp ;fp = fopen(“in.dat“, “r“) ;for(i = 0 ; i bj)k=bI;bI=bj;bj=k;原程序如下:#include #define MAX 200int aMAX, bMAX, cnt = 0;void jsVal()void readDat() int i ;FILE *fp ;fp = fopen(“in.dat“, “r“) ;for(i = 0 ; i 4; 注:这个编程题比二级考得还简单。void StrCharJR(void)int i,j;for(i=0;i

17、4;原程序如下:#include #include #include char xx5080 ;int maxline = 0 ; /* 文章的总行数 */int ReadDat(void) ;void WriteDat(void) ;void StrCharJR(void) void main() clrscr() ;if(ReadDat() printf(“数据文件 IN.DAT 不能打开!n007“) ;return ;StrCharJR() ;WriteDat() ;int ReadDat(void) FILE *fp ;int i = 0 ;char *p ;if(fp = fope

18、n(“IN.DAT“, “r“) = NULL) return 1 ;while(fgets(xxi, 80, fp) != NULL) p = strchr(xxi, n) ;if(p) *p = 0 ;i+ ;maxline = i ;fclose(fp) ;return 0 ;void WriteDat(void) FILE *fp ;int i ;clrscr() ;fp = fopen(“OUT8.DAT“, “w“) ;for(i = 0 ; i #include #include char xx5080 ;int maxline = 0 ; /* 文章的总行数 */int Rea

19、dDat(void) ;void WriteDat(void) ;void ChA(void) void main()clrscr() ;if(ReadDat() printf(“数据文件 IN.DAT 不能打开!n007“) ;return ;ChA() ;WriteDat() ;int ReadDat(void)二级 C 语言 第 12 页 共 61 页FILE *fp ;int i = 0 ;char *p ;if(fp = fopen(“IN.DAT“, “r“) = NULL) return 1 ;while(fgets(xxi, 80, fp) != NULL) p = strch

20、r(xxi, n) ;if(p) *p = 0 ;i+ ;maxline = i ;fclose(fp) ;return 0 ;void WriteDat(void)FILE *fp ;int i ;clrscr() ;fp = fopen(“OUT9.DAT“, “w“) ;for(i = 0 ; i #include#include#includeunsigned char xx5080;int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void encryptChar()void main()clrscr();if

21、(ReadDat()printf(“数据文件 ENG.IN 不能打开!n007“);return;encryptChar();WriteDat();system(“pause“);int ReadDat(void)FILE *fp;int i=0;unsigned char *p;if(fp=fopen(“eng.in“,“r“)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;in

22、t i;fp=fopen(“ps10.dat“,“w“);for(i=0;i#include #include #define N 81int findStr(char *str,char *substr) int n;char *p , *r;n=0;while ( *str ) p=str;r=substr;while(*r)if(*r=*p) r+; p+; else break;if(*r=0)n+;str+; return n;main()char str81,substr3;int n;clrscr();printf(“Enter a string : “); gets(str);

23、printf(“Enter a substring: “); gets(substr);puts(str);puts(substr);n=findStr(str,substr);printf(“n=%dn“,n);ReadWrite();system(“pause“);ReadWrite()char str81,substr3,ch;int n,len,i=0;FILE *rf, *wf ;rf = fopen(“in.dat“, “r“) ;wf = fopen(“out.dat“, “w“) ;while(iint jsvalue(int t) main()int n;n=1000;pri

24、ntf(“n=%d,f=%dn“,n,jsvalue(n);writeDat();writeDat()FILE *in,*out;int i,n,s;in=fopen(“in.dat“,“r“);out=fopen(“out.dat“,“w“);for(i=0;i=0.000001);return x1; 原程序如下:#include #include #include float countvalue()main()clrscr();printf(“实根=%fn“,countvalue();printf(“%fn“,cos(countvalue()-countvalue();writeDat

25、();writeDat()FILE *wf;wf=fopen(“OUT17.DAT“,“w“);fprintf(wf,“%fn“,countvalue();fclose(wf);22:请编写函数 countvalue(),它的功能是:求 n 以内(不包括n)同时能被 3 和 7 整数的所有自然数之和的平方根 s,并作为函数值返回,最后结果 s 输出到文件 out.dat 中。例如若 n 为 1000 时,函数值应为:s=153.909064。注意:部分源程序已给出。请勿改动主函数 main()和输入输出数据函数 progreadwrite()的内容。-double countValue(int

26、 n) /*标准答案*/double xy=0.0;int I;for(I=1;I#include #include double countvalue(int n) /*标准答案*/double xy=0.0;int I;for(I=1;I#include #define MAXNUM 200float xxMAXNUM ;int N= 0 ; /* 文件 IN.DAT 中共有多少个实数 */double aver=0.0;/*平均值*/double sumint=0.0;/*整数部分之和*/double sumdec=0.0;/*小数部分之和*/int ReadDat(void) ;voi

27、d WriteDat(void) ;void Calvalue(void) void main() int i ;clrscr() ;for(i = 0 ; i int jsvalue(int bb)main()int b20,num;num=jsvalue(b);writeDat(num,b);writeDat(int num,int b)FILE *out;int i;out=fopen(“out.dat“,“w“);fprintf(out,“%dn“,num);for(i=0;i=half) return 1;else return 0;或者:int jsvalue(long n)int

28、 i,aa10,j=0,b=1;二级 C 语言 第 16 页 共 61 页while(n) aaj+=n%10;n=n/10; for(i=0;iint jsvalue(long n)main()long m;FILE *out;out=fopen(“out.dat“,“w“);for(m=11;m0) totNum+;data=xxI1;if (data%2=0)totCnt+;totPjz+=xxI;totPjz/=totCnt;或者:void Calvalue(void) int i,k,a,b,c,d;for(i=0;i1;if(k%2=0) totCnt+;totPjz+=xxi;

29、totPjz/=totCnt;原程序如下:#include #include #define MAXNUM 200int xxMAXNUM ;int totNum = 0 ; /* 文件 IN.DAT 中共有多少个正整数 */int totCnt = 0 ; /* 符合条件的正整数的个数 */double totPjz = 0.0 ; /* 平均值 */int ReadDat(void) ;void WriteDat(void) ;void Calvalue(void) void main()int i ;clrscr() ;for(i = 0 ; i 0,则该数满足条件计算平均值 pjz1,

30、且个数 cnt=cnt+1。9812,9-8-1-20)bcnt=aI;cnt+;for(I=0;Ibj)data=bI; bI=bj; bj=data;原程序如下:#include int a300,b300,cnt=0;double pjz1=0.0,pjz2=0.0;jsValue()main()int i;readDat();jsValue();writeDat();for (i=0;i=0 且 ab-cd=0void jsVal()void readDat() int i ;FILE *fp ;fp = fopen(“in.dat“, “r“) ;for(i = 0 ; i =10

31、且 ab-cd=0void jsVal()void readDat() int i ;FILE *fp ;fp = fopen(“in.dat“, “r“) ;for(i = 0 ; i bj)flag=bI;bI=bj;bj=flag;原程序如下:#include #define MAX 200int aMAX, bMAX, cnt = 0;void jsVal()void readDat() int i ;FILE *fp ;fp = fopen(“in.dat“, “r“) ;for(i = 0 ; i #include#include#include#include#define MA

32、X 100typedef structchar dm5; /*产品代码*/char mc11; /*产品名称*/ int dj; /*单价*/int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()void main() memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;char str80,ch11;int i;fp=fopen(“IN.DAT“,“r“)

33、;for(i=0;isellj.je)xy=sellI;sellI=sellj; sellj=xy;原程序如下:#include#include#include#include#include#define MAX 100typedef structchar dm5; /*产品代码*/char mc11; /*产品名称*/ int dj; /*单价*/int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()void main() memset(sell,0,sizeof

34、(sell);二级 C 语言 第 20 页 共 61 页ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;char str80,ch11;int i;fp=fopen(“IN.DAT“,“r“);for(i=0;i#include #include #define MAX 1000int xxMAX,odd=0,even=0;double aver=0.0,totfc=0.0;void WriteDat(void);int ReadDat(void) int i;FILE *fp;if(fp=fopen(“IN.DAT“,“r“)=N

35、ULL) return 1;/* */fclose(fp);return 0;void Compute(void)void main()int i;for(i=0;i=half)cnt+;sum+=I; 或者:int SS(int m) int i,k=1;for(i=2;iint cnt, sum ;void countvalue()void main() cnt = sum = 0 ;countvalue() ;printf(“素数的个数=%dn“, cnt) ;printf(“满足条件素数值的和=%d“, sum) ;writeDAT() ;system(“pause“);writeDA

36、T() FILE *fp ;fp = fopen(“bc10.out“, “w“) ;fprintf(fp, “%dn%dn“, cnt, sum) ;fclose(fp) ;35:某级数的前两项 A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1.下列程序的功能是:要求依次对于整数 M=100,1000 和 10000 求出对应的 n 值,使其满足:Sn=M,这里Sn=A1+A2+.+An,并依次把 n 值存入数组单元 b0,b1和 b2中,请编制jsvalue()函数来实现此功能, 最后调用函数 writeDat()把数组b中的值输出到 out.dat 文件中。注意: 部

37、分源程序存在文件 PROG1.C 文件中。请勿改动主函数 main()和写函数 writeDat()的内容。-void jsvalue() /*标准答案*/int a1=1,a2=1,n=1,an;int sum0,sum;sum0=a1+a2;while(1)an=a1+a2*2;sum=sum0+an;a1=a2; a2=an; n+;if (sum0100) b0=n;if (sum01000) b1=n;if (sum010000) b2=n; break;sum0=sum;jsvalue()int a1=1,a2=1,a12,sn,k=2;sn=a1+a2;while(1)a12=a

38、1+2*a2;if(sn=100) b0=k;if(sn=1000) b1=k;if(sn=10000) b2=k;break;sn=sn+a12;a1=a2;a2=a12;k+;原程序如下:#include int b3;void jsvalue() main()jsvalue();printf(“M=100,n=%dnM=1000,n=%dnM=10000,n=%dn“,b0,b1,b2);writeDat(); writeDat()FILE *fp;fp=fopen(“out.dat“,“w“);fprintf(fp,“%dn%dn%dn“,b0,b1,b2);fclose(fp); 3

39、6:函数 ReadDat()实现从文件 ENG.IN 中读取一篇英文文章,存二级 C 语言 第 22 页 共 61 页入到字符串数组 xx 中;请编制函数 encryptChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,仍存入数组 xx 的对应的位置上,最后调用函数 WriteDat()把结果 xx 输出到文件PS6.DAT 中。替代关系:f(p)=p*11 mod 256 (p 是数组中某一个字符的ASCII 值,f(p)是计算后新字符的 ASCII 值),如果计算后 f(p)值小于等于 32 或 f(p)对应的字符是数字 0 至 9,则该字符不变,否则将 f(p)所对应的字

40、符进行替代。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于 80 个字符。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。-void encryptChar() /*标准答案*/int I;char *pf;for(I=0;I=0int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void encryptChar() void main()clrscr();if(ReadDat()printf(“数据文件 ENG.IN 不能打开!n007“);re

41、turn;encryptChar();WriteDat();system(“pause“);int ReadDat(void)FILE *fp;int i=0;unsigned char *p;if(fp=fopen(“eng.in“,“r“)=NULL) return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(“ps6.dat“,“w“);for(i=0;i=Aint m

42、axline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void encryptChar()void main()clrscr();if(ReadDat()printf(“数据文件 ENG.IN 不能打开!n007“);return;encryptChar();WriteDat();system(“pause“);int ReadDat(void)FILE *fp;int i=0;unsigned char *p;if(fp=fopen(“eng.in“,“r“)=NULL) return 1;while(fgets(xxi,80,fp

43、)!=NULL)p=strchr(xxi,n);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen(“ps7.dat“,“w“);for(i=0;i0)xy=sellI; sellI=sellj; sellj=xy;else if(strcmp(sellI.dm,sellj.dm)=0)if(sellI.jesellj.je)xy=sellI; sellI=sellj; sellj=xy;原程序如下:#include#include#include#include#inclu

44、de#define MAX 100typedef structchar dm5; /*产品代码*/char mc11; /*产品名称*/ int dj; /*单价*/int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()void main() memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat(); void ReadDat()FILE *fp;char str80,ch11;int i;fp=fopen(“

45、IN.DAT“,“r“);for(i=0;ichar xx10011;int yy10;int ReadDat(void);void WriteDat(void);void CountRs(void) int i,j,k;for(i=0;i0) totNum+;thou=xxI/1000;hun=xxI%1000/100;ten=xxI%100/10;data=xxI%10;ab=thou+hun+ten+data;if (ab%2=0)totCnt+;sum=sum+xxI;totPjz=sum/totCnt;或者:void Calvalue(void) int i,k,a,b,c,d;fo

46、r(i=0;i#include #define MAXNUM 200int xxMAXNUM ;int totNum = 0 ; /* 文件 IN.DAT 中共有多少个正整数 */int totCnt = 0 ; /* 符合条件的正整数的个数 */double totPjz = 0.0 ; /* 平均值 */int ReadDat(void) ;void WriteDat(void) ;void Calvalue(void)void main()int i ;clrscr() ;for(i = 0 ; i =1000或者:注:由于有 SIX+SIX+SIX=NINE+NINE 可看出 SIX 的 3 倍必须大于等于 2000(右边是一个四位数字的数可知),因此从 666 开始循环,再由三个数的和是个偶数(右边为一个数的 2 倍可知)可循环时步长为 2。再由 SIX 和 NINE 中有一个共同数字 I 所以得出第一个 if()判断,还有 NINE 中有一共同数字 N 所以得出第二个if()判断。*/void countValue() int i

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报