1、【程序96题目:计算字符串中子串出现的次数1.程序分析:2.程序源代码:#include string.h#include stdio.hmain()char strl 20,str220,*pl,*p2;int sum=0;printf(please input two stringsn);scanf(%s%s,strl,str2);pl=strl;p2=str2;while(*pl!=0)if(*pl=*p2)while(*p I=*p2&*p2!=0)pl+;p2+;)elsepl+;if(*p2=、0)sum+;p2=str2;)printf(%d,sum);getch();)【程序9
2、7题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。1.程序分析:2.程序源代码:#include stdio.hmain()FILE*fp;char ch,filename10;scanf(%s,filename);if(fp=fopen(filename,w)=NULL)printf(cannot open filen);exit(O);)ch=getchar();ch=getchar();while(ch!=#)fputc(ch,fp);putchar(ch);ch=getchar();fclose(fp);)【程序98题目:从键盘输入一个字符串,将小写字母全部转换成
3、大写字母,然后输出到一个磁盘 文件“test”中保存。输入的字符串以!结束。1.程序分析:2.程序源代码:#include stdio.hmain()FILE*fp;char str 100 filename10;int i=0;if=a&stri=z)stri=stri-32;fputc(strij,fp);i+;fclose(fp);fp=fopen(test,r);fgets(str,strlen(str)+l,fp);printf(%sn,str);fclose(fp);)【程序991题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按 字母顺序排列),输出到一
4、个新文件C中。1.程序分析:2.程序源代码:#include stdio.hmain()FILE*fp;int i,j,n,ni;char c160,t,ch;if(fp=fopen(A,r)=NULL)printf(file A cannot be openedn);exit(O);)printf(n A contents are:n);for(i=0;(ch=fgetc(fp)!=EOF;i+)ci=ch;putchar(ci);fclose(fp);ni=i;if(fp=fopen(B,r)=NULL)printf(file B cannot be openedn);exit(O);)p
5、rintf(n B contents are:n);for(i=0;(ch=fgetc(fp)!=EOF;i+)ci=ch;putchar(ci);)fclose(fp);n=i;for(i=0;in;i+)for(j=i+l;jcj)t=ci;cij=c|jj;cjj=t;printf(n C file is:n);fp=fopen(C,w);for(i=0;in;i+)putc(cij,fp);putchar(ci);)fclose(fp);【程序100题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓 名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均
6、分数存放在磁盘文件“stud”中。1.程序分析:2.程序源代码:#include stdio.hstruct student char num6;char name8;int score3J;float avr;stuL5J;main()int i,j,sum;FILE*fp;/*input*/for(i=0;i5;i+)printf(n please input No.%d score:n,i);printf(stuNo:);scanf(%s,stui.num);printf(name:);scanf(%s,stui.name);sum=0;for(j=0;j3;j+)printf(scor
7、e%d.,j+l);scanf(%d,&stui.scorej);sum+=stui.scorej;)stui.avr=sum/3.0;)fp=fopen(stud,w);for(i=0;i5;i+)if(fwrite(&stui,sizeof(struct student),l,fp)!=l)printf(file write errorn);fclose(fp);)【程序91题目:时间函数举例11.程序分析:2.程序源代码:#include stdio.h#include time.hvoid main()time_t It;/define a longint time varible*/
8、lt=time(NULL);/*system time and date*/printf(ctime();/*english format output*/printf(asctime(localtime();/*tranfer to tm*/printf(asctime(gmtime();/*tranfer to Greenwich time*/【程序92题目:时间函数举例21.程序分析:2.程序源代码:/calculate time*/#include time.h#include stdio.hmain()time_t start,end;int i;start=time(NULL);f
9、or(i=0;i3000;i+)printf(lllllllllln);end=time(NULL);printf(l:The different is%6.3fn,difftime(end,start);)【程序93题目:时间函数举例31.程序分析:2.程序源代码:/calculate time*/#include time.h#include stdio.hmain()clock_t start,end;inti;double var;start=clock();for(i=0;ii)printf(please input a little smallerAn);scanf(%d,&gue
10、ss);elseprintf(please input a little biggerAn);scanf(%d,&guess);)end=clock();b=time(NULL);printf(l:It took you%6.3f secondsn,var=(double)(end-start)/18.2);printf(l:it took you%6.3f secondsnn,difftime(b,a);if(var15)printf(ll You are very clever!llnn);else if(var25)printf(ll you are normal!llnn);elsep
11、rintf(ll you are stupid!llnn);printf(ll Congradulations llnn);printf(The number you guess is%d,i);printf(ndo you want to try it again?(yy.or.n)n);if(c=getch()=y)goto loop;【程序95题目:家庭财务管理小程序1.程序分析:2.程序源代码:/*money management system*/#include stdio.h#include dos.hmain()(FILE*fp;struct date d;float sum,c
12、hm=0.0;int len,i,j=0;int c;char ch4=,chl16J=,chtime12=,chshop16J,chmoney8;pp:clrscr();sum=0.0;gotoxy(l,l);printf(l-1);gotoxy(1,2);printf(I money management system(Cl.O)2000.03 I);gotoxy(l,3);printf(l-1);gotoxy(l,4);printf(l money records I today cost list I);gotoxy(l,5);printf(l-I-1);gotoxy(l,6);pri
13、ntf(l date:-I I);gotoxy(l,7);printf(l I 11 I);gotoxy(l,8);printf(l11);gotoxy(l,9);printf(l thgs:-11);gotoxy(l,10);printf(l 111 I);gotoxy(l,ll);printf(l-11);gotoxy(l,12);printf(l cost:-11);gotoxy(l,13);printf(l 1111);gotoxy(l,14);printf(l-11);gotoxy(l,15);printf(l 11);gotoxy(l,l6);printf(l 11);gotoxy
14、(l,17);printf(l 11);gotoxy(l,18);printf(l 11);gotoxy(l,19);printf(l 11);gotoxy(l,20);printf(l 11);gotoxy(l,21);printf(l 11);gotoxy(l,22);printf(l 11);gotoxy(l,23);printf(l-1);i=0;getdate(&d);sprintf(chtime,%4d.%02d.%02d,d.da_year,d.da_mon,d.da_day);for(;)gotoxy(3,24);printf(Tab _browse cost list Esc
15、 _quit);gotoxy(13,10);printf();gotoxy(13,13);printf();gotoxy(13,7);printf(%s,chtime);j=18;ch0=getch();if(ch0|=27)break;strcpy(chshop,);strcpy(chmoney,);if(ch0=9)(mm:i=O;fp=fopen(home.dat,r+);gotoxy(3,24);printf();gotoxy(6,4);printf(list records);gotoxy(l,5);printf(l-1);gotoxy(41,4);printf();gotoxy(4
16、1,5);printf(I);while(fscanf(fp,%10s%14s%fn,chtime,chshop,&chm)!=EOF)if(i=36)getch();i=0;if(i%36)16)gotoxy(41,4+i-17);printf();gotoxy(42,4+i-17);i+;sum=sum+chm;printf(%10s%-14s%6.lfn,chtime,chshop,chm);gotoxy(l,23);printf(lI);gotoxy(l,24);printf(l I);gotoxy(l,25);printf(l-1);gotoxy(10,24);printf(tota
17、l is%8.1f$,sum);fclose(fp);gotoxy(49,24);printf(press any key to.);getch();goto pp;)else(while(chO!=r)if(j15)len=len+l;j=ll;strcpy(chl,);j=j-2;strncat(ch 1,chtime,len);strcpy(chtime,);strncat(chtime,ch l,len-l);gotoxy(13,7);printf();gotoxy(13,7);printf(%s,chtime);ch0J=getch();if(ch0=9)goto mm;if(ch0
18、=27)exit(l);gotoxy(3,24);printf();gotoxy(13,10);j=0;chO=getch();while(chO!=r)strncat(chshop,ch,1);j+;if(ch0=8)len=strlen(chshop)-1;strcpy(chl,);j=j-2;strncat(ch 1,chshop,len);strcpy(chshop,);strncat(chshop,ch l,len-l);gotoxy(13,10);printf();gotoxy(13,10);printf(%s,chshop);ch0=getch();gotoxy(13,13);j
19、=0;chOJ=getch();while(ch0!=r)if(j6)strncat(chmoney,ch,1);j+;if(ch0=8)len=strlen(chmoney)-1;strcpy(chl,);j=j-2;strncat(ch 1,chmoney,len);strcpy(chmoney,);strncat(chmoney,ch l,len-l);gotoxy(13,13);printf();gotoxy(13,13);printf(%s,chmoney);ch0J=getch();if(strlen(chshop)=0)ll(strlen(chmoney)=0)continue;
20、if(fp=fopen(home.dat,a+)!=NULL);fprintf(fp,%10s%14s%6s,chtime,chshop,chmoney);fputc(n,fp);fclose(fp);i+;gotoxy(41,5+i);printf(%10s%-14s%-6s,chtime,chshop,chmoney);)【程序86题目:两个字符串连接程序1.程序分析:2.程序源代码:#include stdio.hmain()char a=acegikm;char b=bdfhjlnpq;char c80,*p;int i=O,j=O,k=O;while(ai!=0&bj!=0)if(a
21、iJbUD ck=ai;i+;elseck=bj+;k+;)cLk=O;if(ai=O)P=b+j;elsep=a+i;strcat(c,p);puts(c);【程序87题目:回答结果(结构体变量传递)1.程序分析:2.程序源代码:#include stdio.hstruct student int x;char c;)a;main()a.x=3;a.c=a;f(a);printf(%d,%c,a.x,a.c);f(struct student b)b.x=20;b.c=y;【程序88题目:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。1.程序分析:2.程序源代码:ma
22、in()int i,a,n=l;while(n=7)doscanf(%d,&a);while(a50);for(i=l;i=a;i+)printf(*);printf(n);n+;getch();【程序89题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第 二位和第三位交换。1.程序分析:2.程序源代码:main()int a,i,aa4,t;scanf(%d,&a);aa0=a%10;aal=a%100/10;aa2=a%1000/100;aa3=a/1000;for(i=0
23、;i=3;i+)aaiJ+=5;aai%=10;for(i=0;i=0;i-)printf(%d,aai);)【程序90题目:专升本一题,读结果。1.程序分析:2.程序源代码:#include stdio.h#define M 5main()int aM=l,2,3,4,5);inti=0;j=M-l;while(ij)t=*(a+i);*(a+i)=*(a+j);*(a+j)=t;i+;j-;for(i=0;im;i+)printf(%d,*(a+i);【程序81题目:809*?=800*?+9*?+l其中?代表的两位数,8*?的结果为两位数,9*?的结果 为3位数。求?代表的两位数,及80
24、9*?后的结果。1.程序分析:2.程序源代码:output(long b,long i)printf(n%ld/%ld=809*%ld+%ld,b,i,i,b%i);)main()long int a,b,i;a=809;for(i=10;i=1000&b=10000&8*i=100)output(b,i);【程序82题目:八进制转换为十进制1.程序分析:2.程序源代码:main()char*p,s6;int n;p=s;gets(p);n=0;while(*(p)!=0)n=n*8+*p-0;P+;)printf(%d,n);)【程序83题目:求07所能组成的奇数个数。1.程序分析:2.程序
25、源代码:main()(long sum=4,s=4;intj;for(j=2;j=8;j+)/*j is place of number*/printf(n%ld,sum);if(j=2)s*=7;elses*=8;sum+=s;printf(nsum=%ld,sum);【程序84题目:一个偶数总能表示为两个素数之和。1.程序分析:2.程序源代码:#include stdio.h#include math.hmain()int a,b,c,d;scanf(%d,&a);for(b=3;b=a/2;b+=2)for(c=2;csqrt(b)d=a-b;elsebreak;for(c=2;csqr
26、t(d)printf(%d=%d+%dn,a,b,d);【程序85题目:判断一个素数能被几个9整除1.程序分析:2.程序源代码:main()long int m9=9,sum=9;int zi,nl=l,c9=l;scanf(%d,&zi);while(nl!=0)if(!(sum%zi)nl=0;elsem9=m9*10;sum=sum+m9;c9+;)printf(%ld,can be divided by%d 9,sum,c9);)【程序76题目:编写一个函数,输入n为偶数时,调用函数求l/2+1/4+.+l/n,当输入n为奇数时,调用函数1/1+1/3+l/n(利用指针函数)1.程序分
27、析:2.程序源代码:main()#include stdio.h main()float peven(),podd(),dcall();float sum;int n;while(1)scanf(%d,&n);if(nl)break;)if(n%2=0)printf(Even=);sum=dcall(peven,n);)else(printf(Odd=);sum=dcall(podd,n);)printf(%f,sum);float peven(int n)float s;inti;s=l;for(i=2;i=n;i+=2)s+=l/(float)i;retum(s);)float podd(
28、n)int n;float s;inti;s=0;for(i=l;i=n;i+=2)s+=l/(float)i;return(s);)float dcall(fp,n)float(*fp)();int n;(float s;s=(*fp)(n);retum(s);【程序77题目:填空练习(指向指针的指针)1.程序分析:2.程序源代码:main()char*s=man,woman,girl,boy/sister;char*q;int k;for(k=0;k5;k+);/*这里填写什么语句*/printf(%sn,*q);【程序78题目:找到年龄最大的人,并输出。请找出程序中有什么问题。1.程序分
29、析:2.程序源代码:#define N 4#include stdio.hstatic struct man char name20J;int age;personLNJ=li,l8,wang,19,zhang,20,sun,22;main()struct man*q,*p;int i,m=0;p=person;for(i=0;iN;i+)if(mage)q=P+;m=q-age;printf(%s,%d,(*q).name,(*q).age);【程序79题目:字符串排序。1.程序分析:2.程序源代码:main()(char*strl 20,*str220,*str3 20;char swap
30、();printf(please input three stringsn);scanf(%s,strl);scanf(%s,str2);scanf(%s,str3);if(strcmp(str 1,str2)0)swap(strl,str2);if(strcmp(str 1,str3)0)swap(strl,str3);if(strcmp(str2,str3)0)swap(str2,str3);printf(after being sortedn);printf(%sn%sn%sn,strl,str2,str3);)char swap(pl,p2)char*pl,*p2;(char*p20;
31、strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);【程序80题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1.程序分析:2.程序源代码:main()int i,m,j,k,count;for(i=4;i10000;i+=4)count=0;m=i;for(k=0;k5;k+)j=i/4*5+l;i=j;if(j%4=0)count+;el
32、sebreak;)i=m;if(count=4)printf(%dn,count);break;)【程序71题目:编写input。和output。函数输入,输出5个学生的数据记录。1.程序分析:2.程序源代码:#define N 5struct student char num6;char name8;int score4J;stuLN;input(stu)struct student stuJ;for(i=0;iN;i+)printf(n please input%d of%dn,i+l,N);printf(num:);scanf(%s,stui.num);printf(name:);sca
33、nf(%s,stuij.name);for(j=0;j3;j+)printf(score%d.,j+l);scanf(%d,&stuij.scorejj);printf(n);print(stu)struct student stu;inti,j;printf(nNo.Name Scol Sco2 Sco3n);for(i=0;iN;i+)printf(%-6s%-10s,stui.num,stui.name);for(j=0;jn);for(i=0;idata=num;ptr-next=(link)malloc(sizeof(node);if(i=4)ptr-next=NULL;else p
34、tr=ptr-next;ptr=head;while(ptr!=NULL)printf(The value is=%dn,ptr-data);ptr=ptr-next;)【程序73题目:反向输出一个链表。1.程序分析:2.程序源代码:/reverse output a list*/#include stdlib.h#include stdio.hstruct list int data;struct list*next;;typedef struct list node;typedef node*link;void main()link ptr,head,tail;int num,i;tail
35、=(link)malloc(sizeof(node);tail-next=NULL;ptr=tail;printf(nplease input 5 data=n);for(i=0;idata=num;head=(link)malloc(sizeof(node);head-next=ptr;ptr=head;)ptr=ptr-next;while(ptr!=NULL)printf(The value is=%dn,ptr-data);ptr=ptr-next;)【程序74题目:连接两个链表。1.程序分析:2.程序源代码:#include stdlib.h#include stdio.hstruc
36、t list int data;struct list*next;);typedef struct list node;typedef node*link;link delete_node(link pointerjink tmp)if(tmp=NULL)/*delete first node*/return pointer-next;else if(tmp-next-next=NULL)/*delete last node*/tmp-next=NULL;else/delete the other node*/tmp-next=tmp-next-next;return pointer;)voi
37、d selection_sort(link pointer,int num)link tmp,btmp;int i,min;for(i=0;idata;btmp=NULL;while(tmp-next)if(mintmp-next-data)min=tmp-next-data;btmp=tmp;tmp=tmp-next;)printf(40:%dn,min);pointer=delete_node(pointer,btmp);)link create_list(int array,int num)link tmp 1,tmp2,pointer;int i;pointer=(link)mallo
38、c(sizeof(node);pointer-data=array 0;tmpl=pointer;for(i=1;inext=N U LL;tmp2-data=arrayi;tmp 1-next=tmp2;tmp 1=tmp 1-next;return pointer;)link concatenate(link pointeri,link pointer!)link tmp;tmp=pointerl;while(tmp-next)tmp=tmp-next;tmp-next=pointer2;return pointeri;void main(void)int arrl=3,12,8,9,ll
39、;link ptr;ptr=create_list(arr 1,5);selection_sort(ptr,5);【程序75题目:放松一下,算一道简单的题目。1.程序分析:2.程序源代码:main()(int i,n;for(i=l;in2)swap(pointer 1,pointer2);if(nln3)swap(pointerl,pointer3);if(n2n3)swap(pointer2,pointer3);printf(the sorted numbers are:%d,%d,%dn,nl,n2,n3);swap(pl,p2)int*p,*p2;intp;p=*pl;*pl=*p2;
40、*p2=p;)【程序67题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。1.程序分析:谭浩强的书中答案有问题。2.程序源代码:main()(int number 10J;input(number);max_min(number);output(number);)input(number)int number10J;inti;for(i=0;i9;i+)scanf(%d,&numberi);scanf(%d,&number9);max_min(array)int array10J;int*max,*min,k,l;int*p,*arr_end;arr_end=arra
41、y+10;max=min=array;for(p=array+1;p*max)max=p;else if(*p*min)min=p;k=*max;l=*min;*p=array0;array0=l;l=*p;*p=array9;array9=k;k=*p;return;)output(array)int array10J;int*p;for(p=array;parray+9;p+)printf(%d,*p);printf(%dn,array9);【程序68题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数1.程序分析:2.程序源代码:main()int number
42、20,n,m,i;printf(the total numbers is:);scanf(%d,&n);printf(back m:);scanf(%d,&m);for(i=0;in-l;i+)scanf(%d,&numberi);scanf(%d,&numbern-1);move(number,n,m);for(i=0;iarray;p)*P=*(P-1);*array=array_end;m;if(m0)move(array,n,m);【程序69题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。1.程序分析:2.程序
43、源代码:#define nmax 50main()(int i,k,m,n,numnmax,*p;printf(please input the total of numbers:);scanf(%d,&n);p=num;for(i=0;in;i+)*(p+i)=i+l;i=0;k=0;m=0;while(mn-l)(if(*(p+i)!=0)k+;if(k=3)*(P+i)=0;k=0;m+;i+;if(i=n)i=0;while(*p0)p+;printf(%d is leftn,*p);【程序70题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。1.程序分析
44、:2.程序源代码:main()(intlen;char*str20;printf(please input a string:n);scanf(%s,str);len=length(str);printf(the string has%d characters.Jen);)length(p)char*p;(int n;n=0;while(*p!=0)(n+;P+;)return n;)【程序61题目:打印出杨辉三角形(要求打印出10行如下图)1.程序分析:11 11 2 113 3 11 4 6 4 11 5 10 10 5 12.程序源代码:main()int i,j;int a10J10J
45、;printf(n);for(i=0;i10;i+)ai0J=l;aii=l;for(i=2;i10;i+)for(j=l;ji;j+)aiJUJ=ai-lJU-lJ+ai-lJUl;for(i=0;i10;i+)for(j=0;j=i;j+)printf(%5d,aij);printf(n);)【程序62题目:学习putpixel画点o1.程序分析:2.程序源代码:#include stdio.h#include graphics.hmain()int i,j,driversVGA,mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(YELLOW)
46、;for(i=50;i=230;i+=20)for(j=50;j=230;j+)putpixel(i,j,l);for(j=50;j=230;j+=20)for(i=50;i=230;i+)putpixel(i,j,l);【程序63题目:画椭圆ellipse1.程序分析:2.程序源代码:#include stdio.h#include graphics.h#include conio.hmain()int x=360,y=160,driver=VGA,mode=VGAHI;int num=20,i;int top,bottom;initgraph(&driver,&mode,);top=y-3
47、0;bottom=y-30;for(i=0;inum;i+)(ellipse(250,250,0,360,top,bottom);top-=5;bottom+=5;getch();)【程序64题目:利用 ellipse and rectangle lEl 图。1.程序分析:2.程序源代码:#include stdio.h#include graphics.h#include conio.hmain()(int driver=VGA,mode=VGAHI;int i,num=15,top=50;int left=20,right=50;initgraph(&driver,&mode,);for(
48、i=0;inum;i+)ellipse(250,250,0,360,right,left);ellipse(250,250,0,360,20,top);rectangle(20-2*i,20-2*i,l 0*(i+2),10*(i+2);right+=5;left+=5;top+=10;)getch();【程序65题目:一个最优美的图案。1.程序分析:2.程序源代码:#include graphics.h#include math.h#include dos.h#include conio.h#include stdlib.h#include stdio.h#include stdarg.h#
49、define MAXPTS 15#define PI 3.1415926struct PTS int x,y;);double AspectRatio=0.85;void LineToDemo(void)struct viewporttype vp;struct PTS pointsLMAXPTSJ;int i,j,h,w,xcenter,ycenter;int radius,angle,step;double rads;printf(MoveTo/LineTo Demonstration);getviewsettings(&vp);h=vp.bottom-vp.top;w=vp.right-
50、vp.left;xcenter=w/2;/*Determine the center of circle*/y center=h/2;radius=(h-30)/(AspectRatio*2);step=360/MAXPTS;/*Determine#of increments*/angle=0;/*Begin at zero degrees*/for(i=0;iMAXPTS;+i)/*Determine circle intercepts*/rads=(double)angle*PI/180.0;/*Convert angle to radians*/pointsi.x=xcenter+(in
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100