/*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:求100-999之间的水仙花数 说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。 例如:153=1^3+5^3+3^3)。 -------------------------------------------------------*/ #include int fun(int n) { int i,j,k,m; m=n; /***********SPACE***********/ 【?】; for(i=1;i<4;i++) { /***********SPACE***********/ 【?】; m=(m-j)/10; k=k+j*j*j; } if(k==n) /***********SPACE***********/ 【?】; else return(0);} main() { int i; for(i=100;i<1000;i++) /***********SPACE***********/ if(【?】==1) printf(\} 答案: ======(答案1)====== k=0 ======(答案2)====== j=m ======(答案3)====== return(1) ======(答案4)====== fun(i) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:统计一个字符串中的字母、数字、空格和其它字符的个数。 -------------------------------------------------------*/ #include void fun(char s[],int b[]) { int i; for (i=0;s[i]!='\\0';i++) if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z') b[0]++; /***********SPACE***********/ else if (【?】) b[1]++; /***********SPACE***********/ else if (【?】 ) b[2]++; else b[3]++; } main () { char s1[80];int a[4]={0}; int k; /***********SPACE***********/ 【?】; gets(s1); /***********SPACE***********/ 【?】; puts(s1); for(k=0;k<4;k++) printf(\} 答案: ======(答案1)====== '0'<=s[i]★&&★s[i]<='9' ======(答案2)====== s[i]★==★' ' ======(答案3)====== void fun(char s[],int b[]) ======(答案4)====== fun(s1,a) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的平方和,并在 fun()函数中输出。 要求:用for循环实现 ------------------------------------------------*/ #include void main() { int i,j,s,a[3][3];; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf(\} s=fun(a); printf(\} int fun(int a[3][3]) { /**********Program**********/ /********** End **********/ } 答案:---------------------- int sum; int i; sum=0; for(i=0;i<3;i++) sum=sum+a[i][i]*a[i][i]; return sum; ---------------------- /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:用冒泡法对数组a 进行由小到大的排序。 -------------------------------------------------------*/ #include void fun(int a[],int n) { int i,j,t; /***********SPACE***********/ for (j=0; 【?】;j++) /***********SPACE***********/ for (i=0; 【?】;i++) /***********SPACE***********/ if(【?】) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } main() { int i,a[10]={3,7,5,1,2,8,6,4,10,9}; /***********SPACE***********/ 【?】; for(i=0;i<10;i++) printf(\} 答案: ======(答案1)====== j<=n-1 ======(答案2)====== ia[★i★+★1★] ======(答案4)====== fun(a,10) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:数组名作为函数参数,求平均成绩。 -------------------------------------------------------*/ #include float aver(float a[ ]) /*定义求平均值函数,形参为一浮点型数组名*/ { int i; float av,s=a[0]; for(i=1;i<5;i++) /***********SPACE***********/ s+=【?】[i]; av=s/5; /***********SPACE***********/ return 【?】; } void main() { float sco[5],av; int i; printf(\for(i=0;i<5;i++) /***********SPACE***********/ scanf(\【?】); /***********SPACE***********/ av=aver(【?】); printf(\} 答案: ======(答案1)====== a ======(答案2)====== av ======(答案3)====== &sco[i] ======(答案4)====== sco /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:编写函数fun对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 要求:用for循环实现 ------------------------------------------------*/ #include void int fun(int array[], int n) { /**********Program**********/ /********** End **********/ } main() { int a[10],i; printf(\请输入数组a中的十个数:\\n\for (i=0;i<10;i++) scanf(\fun(a,10); printf(\由大到小的排序结果是:\\n\for (i=0;i<10;i++) printf(\printf(\} 答案:---------------------- int k,j,t; for (k=0;k=0 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:以下程序中swap函数是交换数组中两个元素的值,main函 数中调用该函数。请完成程序。 -------------------------------------------------------*/ void swap(int a[2] ) { int t; t=a[0]; /***********SPACE***********/ 【?】; /***********SPACE***********/ 【?】; } main() { int m[]={1,2}; printf(″m[0]=%d,m[1]=%d″, m[0], m[1]); /***********SPACE***********/ 【?】; printf(″m[0]=%d,m[1]=%d″, m[0], m[1]); } 答案: ======(答案1)====== a[0]=a[1] ======(答案2)====== a[1]=t ======(答案3)====== swap(m) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10, 并输出结果。请填空。 -------------------------------------------------------*/ int fun( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+=i*f; /***********SPACE***********/ f= 【?】; } return m; } main() { /***********SPACE***********/ printf(\【?】); } 答案: ======(答案1)====== -f ======(答案2)====== fun(10) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:下面的程序是多次求两个数之积,请填空。 -------------------------------------------------------*/ main() { int x,y,z ; scanf(\while(x!=0) { z=mul(x,y); printf(\/***********SPACE***********/ 【?】(\} } int mul(int a,int b) { /***********SPACE***********/ 【?】; c=a*b; /***********SPACE***********/ 【?】; } 答案: ======(答案1)====== scanf ======(答案2)====== int c ======(答案3)====== return c /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:下面rotate函数的功能是:将n行n列的矩阵进行转置, 即把矩阵的行列的值互换,请填空。 -------------------------------------------------------*/ #define N 4 void rotate(int a[][N]) { int i,j,t; for(i=0;iy) z=x; else z=y; return(z); } A) 45 B) 27 C) 18 D) 72 答案:A 以下程序的输出结果为(). main() {int a=1,b=2,c=3,d=4,e=5; printf(\} int func(int x,int y) { return(x+y); } A) 15 B) 13 C) 9 D) 函数调用出错 答案:B 求平方根函数的函数名为(). A) cos B) abs C) pow D) sqrt 答案:D 函数的形式参数隐含的存储类型说明是(). A) extern B) static C) register D) auto 答案:D 若使用一维数组名作函数实参,则以下正确的说法是(). A) 必须在主调函数中说明此数组的大小 B) 实参数组类型与形参数组类型可以不匹配 C) 在被调用函数中,不需要考虑形参数组的大小 D) 实参数组名与形参数组名必须一致 答案:A 以下不正确的说法是:C语言规定(). A) 实参可以是常量,变量或表达式 B) 形参可以是常量,变量或表达式 C) 实参可以为任何类型 D) 形参应与其对应的实参类型一致 答案:B 以下正确的说法是(). A) 实参和与其对应的形参各占用独立的存储单元 B) 实参和与其对应的形参共占用一个存储单元 C) 只有当实参和与其对应的形参同名时才共占用存储单元 D) 形参是虚拟的,不占用存储单元 答案:A 以下正确的说法是:在C语言中(). A) 实参和与其对应的形参各占用独立的存储单元 B) 实参和与其对应的形参共占用一个存储单元 C) 只有当实参和与其对应的形参同名时才共占用存储单元 D) 形参是虚拟的,不占用存储单元 答案:A C语言规定,以下不正确的说法是(). A) 实参可以是常量、变量或表达式 B) 形参可以是常量、变量或表达式 C) 实参可以为任意类型 D) 形参应与其对应的实参类型一致 答案:B 以下正确的说法是(). A) 定义函数时,形参的类型说明可以放在函数体内 B) return后边的值不能为表达式 C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 D) 如果形参与实参类型不一致,以实参类型为准 答案:C C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(). A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回给实参 D) 由用户指定的传递方式 答案:B 当调用函数时,实参是一个数组名,则向函数传送的是(). A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 答案:B 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是(). A) 函数的实参和其对应的形参共占同一存储单元 B) 形参只是形式上的存在,不占用具体存储单元 C) 同名的实参和形参占同一存储单元 D) 函数的形参和实参分别占用不同的存储单元 答案:D 以下程序的输出结果是().void fun(int a, int b, int c){ a=456; b=567; c=678; }main(){ int x=10, y=20, z=30;fun(x, y, z);printf(\y, x);} A) 30,20,10 B) 10,20,30 C) 456,567,678 D) 678567456 答案:A 有以下程序int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf(\程序运行后的输出结果是(). A) 4,3,7 B) 3,4,7 C) 5,2,7 D) 2,5,7 答案:A 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的 错误定义方式为(). int a[3][4]; f(a); A) f(int array[][6]) B) f(int array[3][]) C) f(int array[][4]) D) f(int array[2][5]) 答案:B 设函数fun的定义形式为void fun(char ch, float x ) { … }则以下对函数fun的调用语句中,正确的是(). A) fun(\B) t=fun('D',16.5); C) fun('65',2.8); D) fun(32,32); 答案:D