1、.单项选择=题号: 2914函数定义时的参数为形参, 调用函数时所用的参数为实参, 则下列描述正确的是().A、实参与形参是双向传递B、形参和实参可以同名C、实参类型一定要在调用时指定D、形参可以是表达式答案:B题号: 4060以下程序的输出结果是main()int k=4,m=1,p;p=fun c(k,m);printf(%d,p);p=fun c(k,m);printf(%dn,p);fun c(int a,int b)static int m,i=2;i+=m+1;.m=i+a+b;return(m);A、 8,20B、 8,16C、 8,17D、 8,8答案:C题号: 2491请阅读
2、以下程序:#include#includevoid fun(int b)static int i=0; dobi+=bi+1;while(+i2);main()int k,a5=1,3,5,4,9;.fun(a);for(k=0;k5;k+)printf(%d,ak);上面程序的输出是().A、 48579B、 48549C、 48999D、 13579答案:B题号: 2643有以下程序 :#includevoid fun(int a,int n)int i,t;for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main()int k10=1,2,3,4,5,6,
3、7,8,9,10,i;fun(k,5);for(i=2;i8;i+)printf(%d,ki);printf(n);.程序的运行结果是().A、 876543B、 321678C、 1098765D、 345678答案:B程序设计=题号: 5340/*-【程序设计】-题目 :给定 n个数据 ,求最小值出现的位置(如果最小值出现多次, 求出第一次出现的位置即可 ) 。-.注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容, 仅在函数station的花括号中填入所编写的若干语句。*Begin*和* End *不可删除-*/#include stdio.hint station(
4、int s,int n)/*Begin*/* End */main()int a100,n,i,t;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);.t=station(a,n);printf(the min_value position is:%dn,t);TestFunc();TestFunc()FILE *IN,*OUT;int n;int i10;int o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Writ
5、e File Error);for(n=0;n10;n+)fscanf(IN,%d,&in);o=station(i,10);fprintf(OUT,%dn,o);.fclose(IN);fclose(OUT);示例代码:int i,k;k=0;for(i=1;in;i+)if(sisk) k=i;return(k);题号: 5371/*-【程序设计】-功能:求小于形参n同时能被 3与 7整除的所有自然数之和的平方根,并作为函数值返回。例如若n为1000时,程序输出应为:s=153.909064 。.*Begin*和* End *不可删除-*/void TestFunc();#include
6、#include double fun( int n)/*Begin*/* End */main()printf(s=%lfn,fun(1000);TestFunc();void TestFunc()FILE *IN,*OUT;int i;.double s;IN=fopen(in.dat,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write FILE Error);fscanf(IN,%d,&i);s=fun(i);fprintf(OUT,%lf,s);fclose(IN);fc
7、lose(OUT);示例代码:int i;double s=0;for(i=1;i= 2 & _)./*FILL*/if (k%13 = 0 | _)m=m+k;mc+;k-;/*FILL*/_;main ( )printf(%dn, fun (500);答案:位置 1:int k位置 2:mc mc【或】 mc = mc位置 3:k%17 = 0 【或】 !(k%17)【或】 k/17*17=k位置 4:return m【或】 return (m).题号: 546/*给定程序中,函数 fun的功能是:将NN 矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如, N=3,有下列
8、矩阵123456789计算结果为312645978请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。.注意:不得增行或删行,也不得更改程序的结构!*/#include #define N 4void fun(int (*t)N)int i, j, x;/*FILL*/for(i=0; i=1; j-)tij=tij-1;/*FILL*/ti_3_=x;main()int tN=21,12,13,24,25,16,47,38,29,11,32,54,42, 21,33,10, i, j;printf(The original array:n);for(i=0; iN; i+)
9、for(j=0; jN; j+) printf(%2d ,tij);printf(n);.fun(t);printf(nThe result is:n);for(i=0; iN; i+)for(j=0; jN; j+) printf(%2d ,tij);printf(n);答案:位置 1:N位置 2:N-1位置 3:0.题号: 543/*给定程序中,函数 fun的功能是:将形参 n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入一个整数:27638496,函数返回值为: 64862。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正
10、确的结果。注意:不得增行或删行,也不得更改程序的结构!*/#includeunsigned long fun(unsigned long n)unsigned long x=0; int t;while(n)t=n%10;./*FILL*/if(t%2=_1_)/*FILL*/x=_2_+t;/*FILL*/n=_3_;return x;main().unsigned long n=-1;while(n99999999|n0)printf(Please input(0n100000000): ); scanf(%ld,&n);printf(nThe result is: %ldn,fun(n)
11、;答案:位置 1:0位置 2:10*x位置 3:n/10程序改错.=题号: 708/*给定程序中函数 fun的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1、x2、x3分别输入 15112,则输出结果应当是: 330。请改正程序中的错误,使它能得出正确结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。*/#include /*ERROR*/fun(int x, y, z)int j,t ,n ,m;j = 1 ;t=j%x;.m=j%y ;n=j%z;while(t!=0|m!=0|n!=0)j = j+1;t=j%x;m=j%y;n=j%z;/*ERROR*
12、/return i;main().int x1,x2,x3,j ;printf(Input x1x2x3: ); scanf(%d%d%d, &x1,&x2,&x3);printf(x1=%d, x2=%d, x3=%d n,x1,x2,x3);j=fun(x1,x2,x3);printf(The minimal common multiple is : %dn,j);答案:位置 1:int fun(int x, int y, int z)位置 2:return j;题号: 693/*给定程序中函数 fun的功能是:用选择法对数组中的 n个元素按从小到大的顺序进行排序。.请修改程序中的错误,使
13、它能得出正确的结果。注意:不要改动 main函数,不得增行和删行,也不得更改程序的结构!*/#include #define N 20void fun(int a, int n)int i, j, t, p;for (j = 0 ;j n-1 ;j+) /*ERROR*/p = jfor (i = j;i n; i+)if(ai ap)./*ERROR*/p = j;t = ap ; ap = aj ; aj = t;main()int aN=9,6,8,3,-1,i, m = 5;printf( 排序前的数据 :);for(i = 0;i m;i+) printf(%d ,ai); prin
14、tf(n);fun(a,m);printf( 排序后的数据 :);.for(i = 0;i m;i+) printf(%d ,ai); printf(n);答案:位置 1:p=j;位置 2:p=i;题号: 692/*给定程序中函数 fun的功能是:计算 n!。例如,给 n输入 5,则输出 120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!*/#include .double fun (int n)double result = 1.0 ;/*ERROR*/if n = = 0return 1.0 ;while(n 1 & n 170)/*ERROR*/result *= n-return result ;main ().int n ;printf(Input N:);scanf(%d, &n);printf(nn%d! =%lfnn, n, fun(n);答案:位置 1:if(n=0)位置 2:result *=n-;.