功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1 到3报数),凡报到3的人退出圈子,问最后留下的是原来 第几号的那位。
-------------------------------------------------------*/ #define nmax 50 main() {
int i,k,m,n,num[nmax],*p;
printf(\ scanf(\ p=num;
/***********SPACE***********/ for(i=0;【?】;i++)
/***********SPACE***********/ *(p+i)=【?】; i=0; k=0; m=0;
while(m /***********SPACE***********/ if(【?】!=0) k++; if(k==3) { *(p+i)=0; k=0; m++; } i++; if(i==n) i=0; } /***********SPACE***********/ while(【?】) p++; printf(\} 答案:1). i 第38题 (10.0分) 题号:35 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算并输出high以内最大的10个素数之和,high由主函数传 给fun函数,若high的值为100,则函数的值为732。 -------------------------------------------------------*/ 31 #include int sum = 0, n=0, j, yes; /***********SPACE***********/ while ((high >= 2) && (【?】)) { yes = 1; for (j=2; j<=high/2; j++ ) /***********SPACE***********/ if (【?】) { yes=0; break; } if (yes) { sum +=high; n++; } high--; } /***********SPACE***********/ 【?】; } main ( ) { clrscr( ); printf(\} 答案:1). n<10 或 10>n 2). high%j == 0 或 !(high%j) 第39题 (10.0分) 题号:28 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:将十进制数转换成十六进制数。 -------------------------------------------------------*/ #include \#include \ 3). return sum 或 return (sum) 32 main () { int a,i; char s[20]; printf(\ scanf(\ c10_16(s,a); /***********SPACE***********/ for(【?】;i>=0;i--) printf(\ printf(\} c10_16(char p[],int b) { int j,i=0; /***********SPACE***********/ while (【?】) { j=b; if(j>=0&&j<=9) /***********SPACE***********/ 【?】; else p[i]=j+55; b=b/16; i++; } /***********SPACE***********/ 【?】; } 答案: 1). i=strlen(s)-1 或 i=-1+strlen(s) 2). b>0 或 0 4). p[i]='\\0' 或 p[i]=0 或 p[i]=NULL 或 *(p+i)='\\0' 或 *(p+i)=0 或 *(p+i)=NULL 第40题 (10.0分) 题号:414 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:通过函数的递归调用计算阶乘。 -------------------------------------------------------*/ long power(int n) { long f; if(n>1) 33 /***********SPACE***********/ f=【?】; else f=1; return(f); } main() { int n; long y; printf(\ /***********SPACE***********/ scanf(\【?】); y=power(n); /***********SPACE***********/ printf(\【?】); getch(); } 答案:1). power(n-1)*n 或 power( n - 1 ) * n 或 n*power(n-1) 2). &n 第41题 (10.0分) 题号:454 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c)).其中 ,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带 参数的宏,一个用来求s,另一个用来求area。编写程序, 在程序中用带参数的宏求面积area。 ------------------------------------------------------*/ #include \ /***********SPACE***********/ #【?】 S(x,y,z)(x+y+z)/2 #define AREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z)) main() { float a,b,c,s,area; printf(\ /***********SPACE***********/ scanf(\【?】,&c); if(a+b>c&&b+c>a&&c+a>b) { /***********SPACE***********/ 3). power(n) 或 y 34 s=【?】; /***********SPACE***********/ area=【?】; printf(\ } } 答案:1). Define 2). &b 3). S(a,b,c) 4). AREA(s,a,b,c) 第42题 (10.0分) 题号:6 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序是用选择法对10个整数按升序排序。 -------------------------------------------------------*/ /***********SPACE***********/ 【?】 main() { int i,j,k,t,a[N]; for(i=0;i<=N-1;i++) scanf(\ for(i=0;i /***********SPACE***********/ 【?】; /***********SPACE***********/ for(j=i+1; 【?】;j++) if(a[j] /***********SPACE***********/ if(【?】) { t=a[i]; a[i]=a[k]; a[k]=t; } } printf(\ for(i=0;i<=N-1;i++) printf(\ printf(\} 答案:1). #define N 10 3). j 2). k=i 4). k != i 35