C语言程序填空(10)

2019-07-29 11:11

在main函数中输入字符串,并输出其长度。 #include main() {

int length(char *p); int len;

char str[20];

printf(\scanf(\

/***********SPACE***********/ len=length(【?】);

printf(\}

/***********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 功能:求两个非负整数的最大公约数和最小公倍数。 main() {

int m,n,r,p,gcd,lcm; scanf(\if(m

/***********SPACE***********/ while(【?】 ) {

/***********SPACE***********/

m=n;n=r; 【?】; }

/***********SPACE***********/ gcd=【?】; lcm=p/gcd;

/***********SPACE***********/ printf(\【?】); }

答案:1). r != 0 或 r

2). r=m%n 或 r=m-m/n*n;3). n 4). gcd,lcm 或 n,lcm

功能:百马百担问题:有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小马各多少匹? #include main() {

int hb,hm,hl,n=0;

/***********SPACE***********/ for(hb=0;hb<=100;hb+=【?】) /***********SPACE***********/ for(hm=0;hm<=100-hb;hm+=【?】) {

/***********SPACE***********/

hl=100-hb-【?】;

/***********SPACE***********/ if(hb/3+hm/2+2*【?】==100) { n++;

printf(\3,hm/2,2*hl); } }

printf(\getch(); }

答案:1). 3;2). 2;3). hm;4). hl 功能:计算平均成绩并统计90分以上人数。main() {

int n,m;float grade,average;

/***********SPACE***********/ average=n=m=【?】; while(1)

{

/***********SPACE***********/ 【?】(\if(grade<0) break; n++;

average+=grade;

/***********SPACE***********/ if(grade<90)【?】; m++; }

if(n) printf(\}

答案:1). 0;2). scanf;3). continue

功能:已定义一个含有30个元素的数组s,函数fun1的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序每五个元素求一个平均值, 并将该值存放在数组w中。

float s[30],w[6]; fun1(float s[]) {

int k,i;

for(k=2,i=0;i<30;i++) {

/***********SPACE***********/ 【?】 ; k+=2; } }

fun2(float s[],float w[]) {

float sum=0.0; int k,i;

for(k=0,i=0;i<30;i++) {

sum+=s[i];

/***********SPACE***********/ 【?】; {

w[k]=sum/5;

/***********SPACE***********/ 【?】 ; k++; }

} }

main() { int i; fun1(s);

/***********SPACE***********/ 【?】;

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

if(i%5==0) printf(\printf(\}

printf(\for(i=0;i<6;i++)

printf(\}

答案:1). s[i]=k 或 s[i]=(i+1)*2

2). if( ( i + 1 )%5 == 0 ) 或 if( ( i + 1 )/5*5 ==i+1)

3). sum=0 或 sum=0.0;4). fun2(s,w)

功能:找出三个增序数组中值相同的数。#define FOUND 1

#define NOT_FOUND 0

int search(int x[], int y[], int z[], int X, int Y, int Z,

int *XX, int *YY, int *ZZ) {

*XX = *YY = *ZZ = 0;

while (*XX < X && *YY < Y && *ZZ < Z) if(x[*XX] < y[*YY]) (*XX)++;

else if (y[*YY] < z[*ZZ]) (*YY)++;

/***********SPACE***********/ else if (【?】) (*ZZ)++; else

/***********SPACE***********/ 【?】;

return NOT_FOUND; }

#include void main(void)

{

int x[] = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19}; int y[] = { 2, 4, 9, 10, 12, 14, 16, 18, 20, 21}; int z[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int X = sizeof(x)/sizeof(int); int Y = sizeof(y)/sizeof(int); int Z = sizeof(z)/sizeof(int); int XX, YY, ZZ;

printf(\Three Arrays\

printf(\================\

printf(\for (XX = 0; XX < X; XX++) printf(\

printf(\for (YY = 0; YY < Y; YY++) printf(\

printf(\for (ZZ = 0; ZZ < Z; ZZ++) printf(\

/***********SPACE***********/ if (search(x, y, z, X, Y, Z, 【?】) > 0)

printf(\and z[%d]\

x[XX], XX, YY, ZZ); else

printf(\FOUND.\}

答案:1). z[*ZZ] < x[*XX] 或 x[*XX]>z[*ZZ] 2). return FOUND 或 return 1 3). &XX, &YY, &ZZ 功能:利用函数计算连续的数组元素累加和的最大值。如果最大值是负数则返回0; /***********SPACE***********/ int max_sum( 【?】, int n) {

int max_ending_here = 0; int max_so_far = 0; int i;

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

if (max_ending_here + x[i] < 0)

/***********SPACE***********/ 【?】; else

max_ending_here += x[i];

if (max_ending_here > max_so_far) max_so_far = max_ending_here; }

/***********SPACE***********/

【?】; }

#include void main(void) {

int x[] = { 2, -3, 1, -1, 3, -2, -3, 3}; int n = sizeof(x)/sizeof(int); int i;

printf(\Sum Program\

printf(\===========\

printf(\for (i = 0; i < n; i++) printf(\

printf(\n)); }

答案:1). int x[]; 2). max_ending_here = 0;3). return max_so_far

功能:当输入“2,5”的时候输出为“2 5 5”

#include #define max 100 main() {

int f[max],i,j,k,m; scanf(\

/***********SPACE***********/ for(i=0;i<=【?】;i++)f[i]=0; /***********SPACE***********/ f[【?】]=1; for(i=k;i<=m;i++)

/***********SPACE***********/ for(j=i-k;j<=i-1;j++)f[i]【?】f[j]; printf(\

}

答案:1). m;2). k-1 或 k -1;3). += 或 =1+ 功能:用二分法求方程2X^3+4X^2+3X-6=0在(-10,10)之间的根,其中 X^n代表X的n次方。

# include main() {

float x0,x1,x2,fx0,fx1,fx2; do {

printf(\scanf(\fx1=x1*((2*x1-4)*x1+3)-6; fx2=x2*((2*x2-4)*x2+3)-6;

/***********SPACE***********/ }while (fx1*fx2【?】); do {

x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6; /***********SPACE***********/ if(fx0*fx1【?】) { x2=x0; fx2=fx0; } else { x1=x0; fx1=fx0; } }

/***********SPACE***********/ while(【?】>=1e-5); printf(\}

答案:1). >0; 2). <0 ;3). fabs(fx0) 功能:不用第三个变量,实现两个数的对调操作。 #include main()

{ int a,b;

scanf(\printf(\/***********SPACE***********/ a= 【?】 ;

/***********SPACE***********/ b= 【?】 ;

/***********SPACE***********/ a= 【?】 ;

printf(\}

答案:1). a + b;2). a-b 3). a-b;

功能:对数组 A 中的N( 0 <N<100)个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组A中元素的顺序,且相同的整数要具有相同的编号。例如:数组是: A=(5,3,4,7,3,5,6)则输出为:(3,1,2,5,1,3,4) main() {

int i,j,k,n,m=1,r=1,a[2][100]={0} ; printf(\scanf(\for(i=0 ; i

printf(\scanf(\}

/***********SPACE***********/ while(【?】) {

for(i=0 ; i

/***********SPACE***********/ 【?】 ; k=i ;

for(j=i ; j

/***********SPACE***********/ if(a[1][j]==0 && a[0][j]

for(j=0 ; j

if(a[1][j]==0 && a[0][j]==a[0][k])

{

a[1][j]=a[1][k] ; m++ ; } }

for(i=0 ; i

printf(\) ; }

答案:1). mm;2). break;3). k=j 功能:用等分法在有序的循环数组中,找到最小元素的位置。

int cyclic_min(int x[], int n) {

int left = 0; int right = n - 1; int mid;

/***********SPACE***********/ while (【?】) {

mid = (left + right)/2; if (x[mid] < x[right])

/***********SPACE***********/ 【?】; else

/***********SPACE***********/ 【?】; }

return left; }

#include void main(void) {

int x[] = { 20, 23, 28, 35, 39, 40, 42, 8, 10, 15, 17, 19};

int n = sizeof(x)/sizeof(int); int loc, i;

printf(\

printf(\printf(\Fashion :\\n\

for (i = 0; i < n; i++) printf(\loc = cyclic_min(x, n);

printf(\= %d\}

答案:1). left < right 或 right>left 2). right = mid;3). left = mid + 1 功能:以下程序的功能如(图1)。 #include #include

/***********SPACE***********/ float fun(【?】, int n) {

/***********SPACE***********/ 【?】; float xa=0, s; for (j=0; j

/***********SPACE***********/ 【?】;

for (j=0; j

/***********SPACE***********/ 【?】; } main ( ) {

float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092,196.596,196.579, 196.763}; clrscr( );

printf(\}

答案:1). float x[] 或 float *x;2). int j 3). s = 0;4). return s 或 return(s) 功能:计算一元二次方程的根。 #include

/***********SPACE***********/ #include 【?】 main()


C语言程序填空(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国铁路总公司节能减排项目推广管理办法(铁总计统[2015]364号

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: