if(i==0||i==N-1||j==0||j==N-1) {av=av+w[i][j]; k++;
}
return av/k;
}
80◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】给定程序中,函数fun的功能是:计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:47,30,32,40,6,17,45,15,48,16,其平均值为30.500000. 移动后的输出为:30,6,17,15,26,46,32,40,45,48. 【答案】【1】x[i]/N 【2】j++ 【3】i++
【改错】下列给定程序中函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。例如,输入THIs is a boot,则应输出是1 0 2 2 0。 【答案】
【1】void fun(char *s, int num[5]) 【2】num[k]=0;【3】switch(*s)
【编程】请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 【答案】
int fun( int a[M][N]) {
int i,j,sum=0; for(i=0;i for(j=0;j if(i==0||i==M-1||j==0||j==N-1) sum=sum+a[i][j]; return sum; } 81◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是将a和b所指的两个字符串分辨转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串“32486”和“12345”,在主函数中输出的函数值为44831. 【答案】【1】’0’ 【2】s++ 【3】ctod(a)+ctod(b) 【改错】下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个 数。例如,给字符串s输入:AAaaBBbb123CCcccd,则应输出结果:upper=6,lower=8。 【答案】 【1】void fun(char *s, int *a, int *b) 【2】*a=*a+1;【3】 *b=*b+1; 【编程】请编一个函数 float fun(double h),函数的功能是:对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。 例如,若h 值为1234.567,则函数返回1234.570000;若h值为 1234.564,则函数返回1234.560000。 【答案】 float fun (float h) { long t; t=(h*1000+5)/10; return (float)t/100; } 82◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0) 【答案】【1】N 【2】break 【3】n 【改错】下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。 【答案】【1】sum=0; 【2】scanf(\,&a[i][j]); 【编程】编写程序,实现矩阵(3行、3列)的转置(即行列互换)。 例如,若输入下面的矩阵: 100 200 300 400 500 600 700 800 900 则程序输出: 100 400 700 200 500 800 300 600 900 【答案】 void fun (int array[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=i+1;j<3;j++) {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } } 83◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。 【答案】【1】a[i]【2】<【3】x,y 【改错】函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。 【答案】 【1】void fun(int *x, int *y) 【2】t=*x; *x=*y; *y=t; 【编程】编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。 【答案】 int fun(int lim, int aa[MAX]) { int i,j,k=0; for(i=2;i<=lim;i++) { for(j=2;j=i) aa[k++]=i; } return k; } 84◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是建立一个N*N得矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第二层元素的值全部为2;第三层元素的值全部为3,。。。以此类推。例如,若N=5.生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 【答案】【1】[N]【2】i【3】i+1 【改错】下列给定程序中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 【答案】【1】void fun(int m, int k) 【2】aa[i]=m%k; 【3】printf(\-1]); 【编程】编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 【答案】 char* fun(char (*a)[81], int num, char *max) { int i=0; max=a[0]; for(i=0;i if(strlen(max) 85◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:判定形参a所指的N*N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;若不是,函数返回值为0.“幻方”的判定条件是:矩阵每行每列主对角线及反对角线上元素之和都相等。 例如,一下3*3的矩阵就是一个“幻方”: 4 9 2 3 5 7 8 1 6 【答案】【1】0 【2】| | 【3】1 【改错】下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。 t=1/2-1/3-?-1/m,例如,若输入5,则应输出-0.283333。 【答案】 【1】t-=1.0/i; 【2】return t; 【编程】请编写一个函数,用来删除字符串中的所有空格。 例如,输入asd af aa z67,则输出为asdafaaz67。 【答案】 void fun(char *str) { int i=0; char *p=str; while(*p) { if(*p!=' ') { str[i]=*p; i++; } p++; } str[i]=′\\0′; } 86◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:用函数指针指向要调用的函数,并进行调用。规定在(2)处使f指向函数f1,在(3)处使f指向函数f2。当调用正确时,程序输出:x1=5.000000,x1*x1+x1*x2=40.000000 【答案】【1】double【2】f1【3】f2 【改错】下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各节点数据域赋值。函数fun的作用是将单向链表节点(不包括头节点)数据域为偶数的值累加起来,并且作为函数值返回。 【答案】【1】while(p!=NULL) 【2】p=p->next; 【编程】请编写函数fun(),该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如:字符串LEVEL是回文,而字符串123312就不是回文。 【答案】 int fun(char *str) {int i,n=0,fg=1; char *p=str; while(*p) {n++; p++;} for(i=0;i {fg=0; break; } return fg; } 87◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表节点数据域从头至尾的数据为:10.4.2.8.6,排序后链表结点数据域从头至尾的数据为:2.4.6.8.10. 【答案】【1】h->next 【2】p->next 【3】> 【改错】下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各节点数据域赋值。函数fun的作用是求出单向链表节点(不包括头节点)数据域中的最大值,并且作为函数值返回。 【答案】【1】p=h->next; 【2】p=p->next; 【编程】请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依此放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,若二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应该是33 33 33 33 44 44 44 44 55 55 55 55 【答案】 void fun (int (*s)[10], int *b, int *n, int mm, int nn) { int i,j,k=0; for(i=0;i } 88◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前