《C语言讲义》word版_第1页
《C语言讲义》word版_第2页
《C语言讲义》word版_第3页
《C语言讲义》word版_第4页
《C语言讲义》word版_第5页
已阅读5页,还剩279页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、经典,学习C语言的天堂C语言算法:栈void fun (char *s, char *t) int i, d; /*SPACE*/ d = 【?】; /*SPACE*/ for (i = 0; id; 【?】) ti = si; for (i = 0; id; i+) /*SPACE*/ t【?】 = sd-1-i; /*SPACE*/ t【?】 =0;main() char s100, t100; clrscr(); printf(nPlease enter string S:); scanf(%s, s); fun(s, t); printf(nThe result is: %sn, t)

2、;答案: 1). strlen(s) 2). i+ 或 i=i+1 或 i+=1 或 +i 3). d+i 或 i+d 4). 2*d 或 d*2 或 i+d 或 d+i第124题 (9.0分) 题号:422/*-【程序填空】-功能:文件操作。-*/# include # include void main() /* 定义一个文件指针fp */ /*SPACE*/ 【?】 *fp; char ch, filename10; printf(Please input the name of file: ); scanf(%s, filename); /* 输入字符串并赋给变量filename */

3、 /* 以读的使用方式打开文件filename */ /*SPACE*/ if(fp=fopen(filename, 【?】) = NULL) printf(Cannot open the file.n); exit(0); /* 正常跳出程序 */ /* 关闭文件 */ /*SPACE*/ 【?】;答案: 1). FILE 2). r 3). fclose(fp)第125题 (9.0分) 题号:15/*-【程序填空】-功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作 为终止标记。-*/main() int x,i=0,j=0; float s1=0,s2=0,av1,av2; sca

4、nf(%d,&x); /*SPACE*/ while(【?】) if(x%2=0) s1=s1+x;i+; /*SPACE*/ 【?】 s2=s2+x; j+; /*SPACE*/ 【?】; if(i!=0) av1=s1/i; else av1=0; if(j!=0) /*SPACE*/ 【?】 ; else av2=0; printf(oushujunzhi:%7.2f,jishujunzhi:%7.2fn,av1,av2);答案: 1). x != 0 或 x 2). else 或 else if(x%2=1) 或 else if(x%2!=0) 或 if(x%2) 3). scanf(

5、%d,&x) 4). av2=s2/j第126题 (9.0分) 题号:398/*-【程序填空】-功能:打印出如下图案(菱形) * * * * * *-*/#include main() int i,j,k; /*SPACE*/ for(i=0;【?】;i+) for(j=0;j=4-i;j+) printf( ); /*SPACE*/ for(k=1;k=【?】;k+) printf(*); printf(n); /*SPACE*/ for(【?】;j3;j+) for(k=0;kj+3;k+) printf( ); for(k=0;k5-2*j;k+) printf(*); printf(n

6、); 答案: 1). i=3 或 i=i 或 4i 2). 2*i+1 或 i*2+1 或 1+2*i 或 1+i*2 3). j=0第127题 (9.0分) 题号:447/*-【程序填空】-功能:已知一个数列,它的头两项分别是0和1,从第三项开始以 后的每项都是其前两项之和。编程打印此数,直到某项的 值超过200为止。-*/main() int i,f1=0,f2=1; /*SPACE*/ for(【?】;i+) printf(5%d,f1); /*SPACE*/ if(f1【?】) break; printf(5%d,f2); if(f2200) break; if(i%2=0) prin

7、tf(n); f1+=f2; /*SPACE*/ f2+=【?】; printf(n);答案: 1). i=1 2). 200 3). f1第128题 (9.0分) 题号:461/*-【程序填空】-功能:从键盘输入一个字符串,将小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存。输入的字符串 以!结束。-*/ #include stdio.hmain() FILE *fp; char str100,filename10; int i=0; if(fp=fopen(test,w)=NULL) printf(cannot open the filen); exit(0); pr

8、intf(please input a string:n); gets(str); /*SPACE*/ while(【?】) if(stri=a&stri=z) /*SPACE*/ 【?】; fputc(stri,fp); i+; fclose(fp); /*SPACE*/ fp=fopen(test,【?】); fgets(str,strlen(str)+1,fp); printf(%sn,str); fclose(fp);答案: 1). stri != ! 2). stri=stri-32 或 stri= stri -32 3). r 或 wr 或 wr+第129题 (9.0分) 题号:6

9、25/*-【程序填空】-功能:有一整数数组x(正序排列),判断是否有数组元素xi=i 的情况发生。-*/int index_search(int x, int n) int first = 0; int last = n-1; int middle, index; index = -1; while (first = last) middle = (first + last) / 2; /*SPACE*/ if (【?】) index = middle; break; /*SPACE*/ else if (【?】) last = middle - 1; else first = middle

10、+ 1; return index;#include void main(void) int x = -1, 0, 1, 3, 5, 7, 9, 10; int n = sizeof(x)/sizeof(int); int answer, i; printf(nIndex Search Program); printf(n=); printf(nnGiven Array :); for (i = 0; i = 0) printf(nnYES, x%d = %d has been found., answer, answer); else printf(nnNO, there is no ele

11、ment with xi = i);答案: 1). xmiddle = middle 2). xmiddle middle 或 middlexmiddle 3). answer = index_search(x, n)第130题 (9.0分) 题号:412/*-【程序填空】-功能:写一个函数,求一个字符串的长度,在main函数中输入字 符串,并输出其长度。-*/#include main() int length(char *p); int len; char str20; printf(please input a string:n); scanf(%s,str); /*SPACE*/ le

12、n=length(【?】); printf(the string has %d characters.,len);/*SPACE*/【?】(p)char *p; int n; n=0; while(*p!=0) /*SPACE*/ 【?】; /*SPACE*/ 【?】; return n;答案: 1). str 2). length 或 int length 3). n+ 或 +n 或 n=n+1 或 n+=1 4). p+ 或 +p 或 p=p+1 或 p+=1 二、栈的操作(1)进栈(2)出栈(3)判断栈满(4)判断栈空【attention】凡是对数据的处理据有后进先出的特点,都可以用栈这

13、种数据接哦股进行操作. 三、顺序栈(1)顺序栈:用顺序存储结构表示的栈.(2)顺序栈利用一组连续的存储单元(如数组)存放自栈底到栈顶的数据元素,通常用一维数组设计栈.【约定】top始终指向新数据元素将要存放的位置 1.当top=0时,表示栈空.当栈空时,若要退栈,称作下溢. 2.当top=stacksize时,表示栈满.当栈满时,若还有元素要进栈,栈将溢出,称作上溢. 3.常量stacksize表示栈的最大容量. 4.注意,无论上溢还是下溢,程序中都要显示信息,以便处理.【应用】数制转换、行编辑程序、树的遍历等【例程】利用栈的思想进行数制转换 #include #include #define

14、 STACK_SIZE 10 /*栈的最大容量*/ static int top=0; /*栈中新元素可以存放的位置*/ static int stackSTACK_SIZE=0; /*用一维数组模拟栈*/ /*压栈函数*/ int push(int argc) if(top=STACK_SIZE) printf(stack is fulln); return -1; else stacktop=argc; top+; return 0; /*弹栈函数*/ int pop(void) if(top=0) printf(stack is empty); return -1; else top-;

15、 return stacktop; /*栈为空函数*/ int empty() return (top=0?1:0); /*栈为满函数*/ int full() return (top=STACK_SIZE?1:0); int main(int argc,char *argv) int temp; int ret; int var; int format; printf(需要转换的数:);一、栈的定义(1)栈:限定只能在表的一端进行插入和删除的特殊的线性表(LIFO/FILO).(2)LIFO:last in first out,后进先出 FILO:first in last out,先进后出

16、(3)栈有两端,分别是栈顶(top)和栈底(bottom). top:允许插入和删除的一端. bottom:不允许插入和删除的一端. 假定栈S=(A1,A2,.,An);则A1就是栈底元素,An就是栈顶元素.试卷编号:4514所属语言:Turbo C所属方案:cxtk2第1题程序填空(5.0分)(题号:31)/*-【程序填空】-题目:以下程序的功能:计算并输出500以内最大的10个能被 13或17整除的自然数之和。-*/#include #include /*SPACE*/int fun(【?】 ) int m=0, mc=0, j, n;/*SPACE*/ while (k = 2 & 【?

17、】) /*SPACE*/ if (k%13 = 0 | 【?】) m = m+ k; mc+; k-; /*SPACE*/ 【?】;main ( ) clrscr( ); printf(%dn, fun (500);答案: 1). int k 2). mc mc 3). k%17 = 0 或 k%17 4). return m第2题程序填空(5.0分)(题号:5)/*-【程序填空】-题目:以下程序是用选择法对10个整数按升序排序,程序中有4个空, 填空使程序完整。-*/*SPACE*/【?】 main() int i,j,k,t,aN; for(i=0;i=N-1;i+) scanf(%d,&

18、ai); for(i=0;iN-1;i+) /*SPACE*/ 【?】/*SPACE*/ for(j=i+1; 【?】;j+) if(ajak) k=j;/*SPACE*/ if(【?】)t=ai;ai=ak;ak=t; printf(output the sorted array:n); for(i=0;i=N-1;i+) printf(%5d,ai); printf(n); 答案: 1). #define N 10 2). k=i; 3). jj 4). k!=i第3题程序填空(5.0分)(题号:34)/*-【程序填空】-题目:以下程序的功能:计算并输出high以内最大的10个素数 之和,

19、high由主函数传给fun函数,若high的值为100, 则函数的值为732。-*/#include #include #include int fun( int high ) int sum = 0, n=0, j, yes;/*SPACE*/ while (high = 2) & (【?】) yes = 1; for (j=2; j=high/2; j+ )/*SPACE*/ if (【?】)/*SPACE*/ yes=0; 【?】; if (yes) sum +=high; n+; high-; /*SPACE*/ 【?】;main ( ) clrscr( ); printf(%dn,

20、fun (100);答案: 1). nn 2). high%j=0 3). break 4). return sum 或 return (sum)第4题程序填空(5.0分)(题号:13)/*-【程序填空】-题目:输出100到10000之间的各位数字之和能被15整除的所有数, 输出时每10个一行。-*/main() int m,n,k,i=0; for(m=100;m0) 或 while(0n) 或 while(n!=0) 或 while(0!=N) 4). printf(n)第5题程序填空(5.0分)(题号:11)/*-【程序填空】-题目:以下程序的功能是产生并输出如下形式的方阵。1 2 2

21、2 2 2 13 1 2 2 2 1 43 3 1 2 1 4 43 3 3 1 4 4 43 3 1 5 1 4 43 1 5 5 5 1 41 5 5 5 5 5 1-*/main() int a77; int i,j; for (i=0;i7;i+) for (j=0;j7;j+) /*SPACE*/ if (【?】) aij=1;/*SPACE*/ else if (ij&i+jj&i+j6) aij=3;/*SPACE*/ else if (【?】) aij=4; else aij=5; for (i=0;i7;i+) for (j=0;j7;j+) printf(%4d,aij);

22、/*SPACE*/ 【?】; 答案: 1). i=j|i+j=6 2). aij=2 3). i6 或 ji&i+j6 或 ij&i+6i&i+6j 4). printf(n)第6题程序填空(5.0分)(题号:25)/*-【程序填空】-题目:以下程序的功能是删除一个字符串中的所有数 字字符。-*/#include stdio.hvoid delnum(char *s) int i,j;/*SPACE*/ for(i=0,j=0; 【?】0 ;i+)/*SPACE*/ if(si9)/*SPACE*/ 【?】;j+; sj=0;main () char *item; printf(n input

23、 a string:n); gets(item);/*SPACE*/【?】; printf(n%s,item);答案: 1). si!= 或 *(s+i)!= 2). | 3). sj=si 4). delnum(item)第7题程序填空(5.0分)(题号:6)/*-【程序填空】-题目:以下程序的功能是从键盘上输入一个字符串, 将该字符 串升序排列后输出到文件test.txt中,然后从该文件读 出字符串并显示出来。-*/#includemain() FILE *fp; char t,str100; int n,i,j; if(fp=fopen(test.txt,w)=NULL) printf(

24、cant open this file.n);exit(0); printf(input a string:n); gets(str);/*SPACE*/【?】/*SPACE*/ for(i=0; 【?】 ;i+) for(j=0;jn-i-1;j+)/*SPACE*/if(【?】) t=strj;strj=strj+1;strj+1=t; /*SPACE*/【?】 fclose(fp); fp=fopen(test.txt,r); fgets(str,100,fp); printf(%sn,str); fclose(fp); 答案: 1). n=strlen(str); 2). ii 或 i

25、-1+n 或 ii 或 -1+ni 3). strjstrj+1 或 strj+1strj 4). fputs(str,fp);第8题程序填空(5.0分)(题号:21)/*-【程序填空】-题目:以下程序的功能是打印以下图形。* * * * *-*/ main ( )/*SPACE*/【?】 char a59; int i,j; for (i=0;i5;i+)/*SPACE*/ for(j=i; 【?】;j+) aij=*; for(i=0;i5;i+) for(j=0;j9;j+)/*SPACE*/ printf(%c, 【?】 );/*SPACE*/ 【?】; 答案: 1). static

26、2). jj 3). aij 4). printf(n)第9题程序填空(5.0分)(题号:17)/*-【程序填空】-题目:以下程序的功能是将一个数组中的元素按逆序存放。-*/#define N 7main () static int aN=12,9,16,5,7,2,1,k,s; printf(n the origanal array:n); for (k=0;kN;k+) printf(%4d,ak);/*SPACE*/ for (k=0;kN/2; 【?】 ) s=ak;/*SPACE*/ 【?】 ;/*SPACE*/ 【?】 ; printf(n the changed array:n)

27、; for (k=0;kN;k+)/*SPACE*/ 【?】 (%4d,ak);答案: 1). k+ 或 k=k+1 2). ak=aN-k-1 或 ak=aN-1-k 3). aN-k-1=s 或 aN-1-k=s 4). printf第10题程序填空(5.0分)(题号:15)/*-【程序填空】-题目:以下程序的功能是产生10个30,90区间上的随机整数, 然后对其用选择法进行由小到大的排序。-*/#include stdlib.hmain() int i,j,t,k;/*SPACE*/ 【?】 ; for(i=0;i10;i+) ai=random(61)+30; for(i=0;i9;i

28、+) /*SPACE*/ 【?】; for(j=i+1;jaj 或 ajak 4). i=0;ii;i+ 或 i=0;i=i;i+第11题程序填空(5.0分)(题号:22)/*-【程序填空】-题目:以下程序的功能是求一个二维数组中每行的最大值和每行 的和。-*/#include stdlib.hmain() int a55,b5,c5,i,j,k,s=0; for(i=0;i5;i+) for(j=0;j5;j+) aij=random(40)+20; for(i=0;i5;i+) /*SPACE*/ k=ai0; 【?】 ; for(j=0;j5;j+) /*SPACE*/ if(kaij)

29、 【?】 ; s=s+aij; bi=k;/*SPACE*/ 【?】 ; for(i=0;i5;i+) for(j=0;j5;j+)/*SPACE*/ printf(%5d, 【?】 ); printf(%5d%5d,bi,ci); printf(n); 答案: 1). s=0 2). k=aij 3). ci=s 4). aij第12题程序填空(5.0分)(题号:32)/*-【程序填空】-题目:以下程序的功能如(图1)。-*/#include #include #include /*SPACE*/double f(【?】) /*SPACE*/ 【?】; /*SPACE*/ if (【?】)

30、y=2.0*x*x+3.0*x+4.0; else y=-2.0*x*x+3.0*x-4.0;/*SPACE*/ 【?】;main ( ) clrscr( ); printf(%fn, f(-1.9)+f(5.0);答案: 1). float x 2). double y 3). x=x 4). return y;第13题程序填空(5.0分)(题号:8)/*-【程序填空】-题目:以下程序的功能如(图1)。-*/#include main() int f;/*SPACE*/【?】 float t,pi; t=1;pi=0;f=1;n=1;/*SPACE*/ while(【?】 ) pi=pi+t

31、; n=n+2;/*SPACE*/ 【?】 t=f/n; /*SPACE*/【?】 printf(pi=%10.6fn,pi);答案: 1). float n; 2). fabs(t)1e-6 或 fabs(t)0.000001 或 1e-6fabs(t) 或 0.000001fabs(t) 3). f=-f; 4). pi=pi*4;第14题程序填空(5.0分)(题号:14)/*-【程序填空】-题目:以下程序的功能是分别求出一批非零整数中的偶数、奇数 的平均值,用零作为终止标记。-*/main() int x,i=0,j=0; float s1=0,s2=0,av1,av2; scanf(%

32、d,&x);/*SPACE*/ while(【?】) if(x%2=0) s1=s1+x;i+;/*SPACE*/ 【?】 s2=s2+x;j+;/*SPACE*/ 【?】; if(i!=0) av1=s1/i; else av1=0;/*SPACE*/ if(j!=0) 【?】 ; else av2=0; printf(oushujunzhi:%7.2f,jishujunzhi:%7.2fn,av1,av2);答案: 1). x!=0 2). else 或 else if(x%2=1) 或 else if(x%2!=0) 3). scanf(%d,&x) 4). av2=s2/j第15题程序

33、填空(5.0分)(题号:20)/*-【程序填空】-题目:以下程序的功能是将一个字符串中的前N个字符复制到 一个字符数组中去,不许使用strcpy函数。-*/main ( ) char str180,str280; int i,n;/*SPACE*/ gets(【?】); scanf(%d,&n);/*SPACE*/ for (i=0; 【?】 ;i+)/*SPACE*/ 【?】 ;/*SPACE*/ 【?】 ; printf(%sn,str2);答案: 1). str1 2). ii 或 i=i 3). str2i=str1i 4). str2n=0 或 str2i=0第16题程序填空(5.0

34、分)(题号:1)/*-【程序填空】-题目:已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值, 并将该值存放在数组w中。 程序中有4个空,填空使程序完整。-*/float s30,w6;fun1(float s) int k,i; for(k=2,i=0;i30;i+) /*SPACE*/【?】 k+=2; fun2(float s,float w) float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si;/*SPACE*/【?】 wk=sum/5;/*SPAC

35、E*/ 【?】 k+; main()int i; fun1(s);/*SPACE*/【?】 for(i=0;i30;i+) if(i%5=0) printf(n); printf(%8.2f,si); printf(n); for(i=0;i6;i+) printf(%8.2f,wi);答案: 1). si=k; 2). if(i+1)%5=0) 3). sum=0; 4). fun2(s,w);第17题程序填空(5.0分)(题号:33)/*-【程序填空】-题目:以下程序的功能如(图1)。-*/#include #include /*SPACE*/float fun(【?】, int n) /

36、*SPACE*/ 【?】; float xa=0, s; for (j=0; jn; j+ ) xa += xj/n;/*SPACE*/ 【?】; for (j=0; jn; j+ ) s += (xj-xa)*(xj-xa)/n;/*SPACE*/ 【?】; main ( ) float x100 = 193.199, 195.673, 195.757, 196.051, 196.092,196.596,196.579, 196.763; clrscr( ); printf(%fn, fun (x, 8); 答案: 1). float x 或 float *x 2). int j 3). s

37、 = 0 4). return s第18题程序填空(5.0分)(题号:18)/*-【程序填空】-题目:以下程序的功能是将两个字符串连接为一个字符串,不许 使用库函数strcat。-*/main ( ) char str180,str240; int i,j,k; gets(str1);gets(str2); puts(str1);puts(str2);/*SPACE*/【?】 ; puts(str1);JOIN(s1,s2)char s180,s240; int i,j;/*SPACE*/【?】;/*SPACE*/ for (i=0; 【?】0;i+) s1i+j=s2i;/*SPACE*/

38、s1i+strlen(s1)= 【?】 ; 答案: 1). JOIN(str1,str2) 2). j=strlen(s1) 3). s2i!= 4). 0第19题程序填空(5.0分)(题号:23)/*-【程序填空】-题目:以下程序的功能是对任一整数N(N0),它都可以分解成1 (或-1)和一些质数(素数)因子的形式。如N=150时,可分 解成12355;N=-150时,可分解为-12355。 下边程序能实现这种分解过程。当N=150,输出以下分解结 果:N= 1* 2* 3* 5* 5-*/main() int n,i,j,r; scanf(%d,&n); if (n=0) printf (

39、data error n); exit(0); /*SPACE*/ else if (【?】 ) printf(n=1); else printf(n=-1); n=-n; /*SPACE*/ for(【?】;i0 或 0n 2). i=2 3). r=n%i 4). n=n/i第20题程序填空(5.0分)(题号:29)/*-【程序填空】-题目:以下程序的功能是输入字符串,再输入一个字符,将字符串 中与输入字符相同的字符删除。-*/#include stdio.hvoid fun(char a,char c) int i,j;/*SPACE*/ for(i=j=0; 【?】;i+) if(ai

40、!=c) aj+=ai;/*SPACE*/ 【?】;main() char a20,cc;/*SPACE*/ 【?】; cc=getchar();/*SPACE*/ 【?】; puts(a);答案: 1). ai!=0 2). aj=0 3). gets(a) 或 scanf(%s,a); 4). fun(a,cc)第21题程序填空(5.0分)(题号:450)/*-【程序填空】-题目:一个40磅重的板碎成4块,每块正好是一个整数磅,且用这 4块当砝码能称出140磅的整数重量的物体。编程求这4块 的各自重量。-*/main()int i,j,k,l,p,t1,t2,t3,t4; for(i=1;

41、i38;i+)/*SPACE*/ for(【?】;j38-i;j+)/*SPACE*/ for(k=j;k【?】;k+) l=40-i-j-k; for(p=1;p40;p+) for(t1=-1;t12;t1+) for(t2=-1;t22;t2+) for(t3=-1;t32;t3+) for(t4=-1;t42;t4+)/*SPACE*/ if(【?】=p)goto next; break;/*SPACE*/ next:if(p=【?】) printf(%d,%d,%d,%dn,i,j,k,l); exit(0); printf(error.);答案: 1). j=i 2). 39-i-

42、j 或 39-i-j 3). i*t1+j*t2+k*t3+l*t4 或 i*t1+j*t2+k*t3+l*t4 4). 39第22题程序填空(5.0分)(题号:413)/*-【程序填空】-题目:用circle画圆形。-*/#include graphics.hmain()int driver,mode,i;float j=1,k=1;driver=VGA;mode=VGAHI;/*SPACE*/initgraph(【?】,&mode,);setbkcolor(YELLOW);/*SPACE*/for(i=0;i=25;【?】)setcolor(8);circle(310,250,k);/*S

43、PACE*/k=【?】;j=j+0.3; 答案: 1). &driver 2). i+ 或 +i 或 i=i+1 3). k+j 或 j+k第23题程序填空(5.0分)(题号:430)/*-【程序填空】-题目:计算一元二次方程的根。-*/#include /*SPACE*/#include 【?】main()float a,b,c,disc,x1,x2,realpart,imagpart; scanf(%f%f%f,&a,&b,&c); printf(the equation);/*SPACE*/ if(【?】=1e-6) printf(is not quadraticn); else dis

44、c=b*b-4*a*c; if(fabs(disc)=1e-6) printf(has two equal roots:%-8.4fn,-b/(2*a);/*SPACE*/ else if(【?】) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(has distinct real roots:%8.4f and %.4fn,x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(has complex roots:n); printf(%8.4f=%

45、.4fin,realpart,imagpart); printf(%8.4f-%.4fin,realpart,imagpart); 答案: 1). 2). fabs(a) 3). fabs(disc) 1e-6 或 fabs(disc) 1e-6 或 1e-6fabs(disc)第24题程序填空(5.0分)(题号:431)/*-【程序填空】-题目:计算圆周率的近似值。-*/#include #include main()int s;/*SPACE*/ float n,【?】; double t; t=1;pi=0;n=1;s=1;/*SPACE*/ while(【?】=2e-6) pi+=t;

46、n+=2;s=-s;t=s/n;/*SPACE*/ pi*=【?】; printf(pi=%.6fn,pi); 答案: 1). pi 2). fabs(t) 3). 4第25题程序填空(5.0分)(题号:427)/*-【程序填空】-题目:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3 元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡 各多少只?-*/#include main()int cocks,hens,chicks; cocks=0; while(cocks=19)/*SPACE*/ 【?】=0;/*SPACE*/ while(hens=【?】) chicks=100.

47、0-cocks-hens; if(5.0*cocks+3.0*hens+chicks/3.0=100.0) printf(%d,%d,%dn,cocks,hens,chicks);/*SPACE*/ 【?】; /*SPACE*/ 【?】; ;答案: 1). hens 2). 33 3). hens+ 或 +hens 或 hens=hens+1 4). cocks+ 或 +cocks 或 cocks=cocks+1 或 cocks=cocks+1第26题程序填空(5.0分)(题号:438)/*-【程序填空】-题目:求出二维数组中的最大元素值。-*/#include stdio.hvoid mai

48、n()int a34=1,3,5,7,2,4,6,8,15,17,34,12;/*SPACE*/ printf(max value is %dn,【?】); max_value(m,n,array)/*SPACE*/int m,n,【?】;int i,j,max;max=array00;for(i=0;im;i+) for(j=0;jn;j+)/*SPACE*/ if(maxarrayij)【?】; return(max);答案: 1). max_value(3,4,a) 2). array4 3). max=arrayij第27题程序填空(5.0分)(题号:480)/*-【程序填空】-题目:

49、输出Fibonacci数列的前15项,要求每行输出5项。 Fibonacci数列:1,1,2,3,5,8,13.-*/#include main()/*SPACE*/int 【?】14,i;fib0=1;fib1=1;for (i=2;i15;i+)/*SPACE*/fibi=【?】;for(i=0;i15;i+)printf(%dt,fibi);/*SPACE*/if ( 【?】 ) printf(n);答案: 1). fib 2). fibi-2+fibi-1 或 fibi-2+fibi-1 3). i%5=4第28题程序填空(5.0分)(题号:396)/*-【程序填空】-题目:输入数组,

50、最大的与最后一个元素交换,最小的与第一个元 素交换,输出数组。-*/main() int number10; input(number); max_min(number); output(number); input(number) int number10; int i;/*SPACE*/ for(i=0;【?】;i+) scanf(%d,&numberi); scanf(%d,&number9); max_min(array)int array10;int *max,*min,k,l; int *p,*arr_end; arr_end=array+10; max=min=array; fo

51、r(p=array+1;p*max) max=p;/*SPACE*/ else if(*p*min) 【?】; k=*max; l=*min; *p=array0; array0=l;/*SPACE*/ 【?】; *p=array9;/*SPACE*/ 【?】 k=*p; return;output(array)int array10;int *p;for(p=array;parray+9;p+)printf(%d,*p);printf(%dn,array9);答案: 1). ii 2). min=p 3). l=*p 4). array9=k第29题程序填空(5.0分)(题号:409)/*-

52、【程序填空】-题目:输入数组,最大的与第一个元素交换,最小的与最后一个 元素交换,输出数组。-*/main()int number10;input(number);max_min(number);output(number);input(number)int number10;int i;/*SPACE*/for(i=0;i9;【?】)scanf(%d,&numberi);scanf(%d,&number9);/*SPACE*/max_min(【?】)int array10;int *max,*min,k,l;int *p,*arr_end;/*SPACE*/arr_end=【?】;max=m

53、in=array;for(p=array+1;p*max) max=p;/*SPACE*/else if(【?】) min=p;k=*max;l=*min;*p=array0;array0=l;l=*p;*p=array9;array9=k;k=*p;return;output(array)int array10; int *p;for(p=array;parray+9;p+)printf(%d,*p);printf(%dn,array9);答案: 1). i+ 或 i=i+1 或 +i 2). array 3). array+10 或 10+array 4). *p*p第30题程序填空(5.

54、0分)(题号:467)/*-【程序填空】-题目:输入一个整数n,打印自然数1-n的全排列方案。-*/#include #include #define MAXSIZE 20#define ROTATE(p) int i, temp; temp = permp; for (i = p-1; i = 0; i-) permi+1 = permi; perm0 = temp; void main(void) int permMAXSIZE; int position; int n; int i; char line100; printf(nPermutation by Rotation Method

55、); printf(n=); printf(nnNumber of Elements - ); gets(line); n = atoi(line); for (i = 0; i n; i+) permi = i + 1; position = n - 1; /*SPACE*/ while (【?】) printf(n); for (i = 0; i n; i+)/*SPACE*/ printf(%d , 【?】);/*SPACE*/ position = 【?】; ROTATE(position); while (permposition=position+1 & position!=0)

56、position-; ROTATE(position); 答案: 1). position!=0 2). permi 3). n - 1 或 n-1第31题程序填空(5.0分)(题号:489)/*-【程序填空】-题目:h_sequence 是一组由0和1组成的数列,它定义如下: = 0 = 1 利用函数检测输入的字符串是否是h_sequence数列-*/#include #define YES 1#define NO 0int h_sequence(char x)/*SPACE*/ int length = 【?】; int count; int i; for (count = 1, i =

57、0; count != 0 & i = length;#include void main(void) char line100; printf(nnInput a string of 0 and 1 - ); gets(line);/*SPACE*/ if (【?】 = YES) printf(n* Input is a H sequence *); else printf(n* Input is NOT a H sequence *);答案: 1). strlen(x) 2). count=0 3). h_sequence(line)第32题程序填空(5.0分)(题号:487)/*-【程序

58、填空】-题目:输入一个整数,计算它可能是哪两个整数的平方和,并打印 结果数据。-*/#include /* for I/O functions */#include /* for atoi() */#include /* for sqrt() */void main(void) int given; /* the given number */ int row, column; /* row and column indicators*/ int count; /* number of solutions */ char line100; printf(nRepresenting a Give

59、n Number as the Sum of Two Squares); printf(n=n); printf(nAn Integer Please - ); gets(line); given = atoi(line); printf(nCount X Y); printf(n- - -); row = 1; /* starts from far enough */ column = (int) (sqrt(double) given) + 0.5); count = 0; /* so solution yet */ while (row 0) /* scan down. */ if (r

60、ow*row + column*column = given) /*SPACE*/ 【?】; printf(n%5d%7d%7d, count, row, column); row+; column-; else if (row*row + column*column given)/*SPACE*/ 【?】; else/*SPACE*/ 【?】; if (count = 0) printf(nnSorry, NO ANSWER found.); else printf(nnThere are %d possible answers.,count);答案: 1). count+ 或 +count

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论