命题极高的计算机二级题

更新时间:2024-01-08 04:17:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。例如,当形参n的值为10时,函数返回值为9.612558。 【答案】【1】 0【2】 n 【3】 (t*t)

【改错】下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。 【答案】

【1】for(i=0;str[i];i++) 【2】if(substr[k+1]== ′\\0′)

【编程】编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.14?。 【答案】

Double fun(double eps) {

double s=1.0,s1=1.0; int n=1;

while(s1>=eps)

{ s1=s1]s=s+s1; n++; }

return 2}

2◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。例如,输入一个整数27638496,函数返回值为64862。

【答案】【1】 0【2】 10*x【3】n/10

【改错】下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。 【答案】【1】*t=0;【2】if(d%2!=0) 【编程】编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。例如,分别输入下面两个字符串: FirstString—SecondString程序输出:FirstString--SecondString 【答案】

void fun(char p1[],char p2[]) {

int i,j;

for(i=0;p1[i]!=′\\0′;i++); for(j=0;p2[j]!=′\\0′;j++) p1[i++]=p2[j]; p1[i]=′\\0′;

}

3◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:求ss所指字符串数组中长度最短的字符串所

在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长

【改错】下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。

例如,若输入\,cD\,则输出\,CD\。 【答案】

【1】if(( tt[i]>=′a′)&&( tt[i] <= ′z′) 【2】tt[i]-=32;

【编程】编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 【答案】

void fun(int m, int *k, int xx[]) {

int i,j,n=0; for(i=4;i

*k=n;

}

4◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为def35adh3kjsdf7,执行后结果为defadhajsdf3537。 【答案】【1】j++ 【2】s[i]=t1[i] 【3】j

【改错】下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。 【答案】

【1】for (j=i+1; j< 6; j++)

【2】*(pstr+i)=*(pstr+j);

【编程】编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。 【答案】

int fun(char *ss, char c) {

int i=0;

for(;*ss!=′\\0′;ss++) if(*ss==c) i++; return i;

}

5◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中

的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。 【答案】【1】x 【2】p 【3】s

【改错】下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。

【答案】【1】long k=1; 【2】num /=10;

【编程】编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。 【答案】

float fun (float *a, int n) {

float av=0.0; int i;

for(i=0;i

}

6◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指字符串为abcdefgh,执行结果为ahcbedgf。 【答案】【1】1 【1】s[k] 【1】c 【改错】下列给定程序中fun函数的功能是:求表达式s=aa? aa-?- aaa - aa -a(此处aa? aa表示n个a,a和n的值在1至 9之间)例如,a=3,n=6,则以上表达式为:s=333333-33333-3333-333-33-3其值是296298。a和n是fun函数的形参,表达式的值作为函数值传回main函数。

【答案】

【1】long s=0, t=0; 【1】t=t/10;

【编程】编写函数void fun(char *tt,int pp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 【答案】

void fun(char *tt, int pp[]) {

int i;

for(i=0;i<26;i++)

pp[i]=0;

if(*tt>=′a′&&*tt<=′z′) pp[*tt-′a′]++;

}

7◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

【答案】

【1】next 【2】t->data 【3】t

【改错】下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出:dcba。 【答案】【1】void fun(char *a) 【2】printf(\,*a);

【编程】编写函数fun,其功能是:比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。 例如,输入beijingshanghai(为回车键),函数将返回shanghai。 【答案】

char *fun(char *s, char *t) {

int i,j;

for(i=0;s[i]!= ′\\0′;i++); for(j=0;t[j]!= ′\\0′;j++); if(i>=j) return s; else return t;

}

8◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 【答案】【1】\【2】fs 【3】ft 【改错】下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数:8642。 【答案】【1】if(d%2==0) 【2】s/=10;

【编程】编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12时,调用该函数后,c =5142。 【答案】

void fun(int a,int b,long *c)

{

*c=b+(a/10)*10+(b/10)*100+(a)*1000; }

9◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均向右移动m个位置,左位置为0。例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6

7 8 9 程序执行结果为

0 0 1 0 0 4 0 0 7 【答案】【1】i++ 【2】m 【3】m

【改错】下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。例如,若high的值为100,则函数的值为732。 【答案】

【1】while((high>=2) && (n<10)) 【2】yes=0; break;

【编程】编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。 xn+1=cos(xn) 迭代步骤如下:

(1)取x1初值为0.0;

(2)x0=x1,将x1的值赋给x0;

(3)x1=cos(x0),求出一个新的x1;

(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739086。 【答案】 float fun() {

float x1=0.0,x0; do {

x0=x1; x1=cos(x0);

}

while (fabs(x0-x1)>=1e-6); return x1;

}

10◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数ReadText和WriteText实现。 【答案】【1】*fw 【2】str 【3】str

【改错】下列给定程序中函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531。 【答案】

【1】void fun(long s,long *t) 【2】s1=s1*10

【编程】编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

例如,当a=45,b=12时,调用该函数后,c=1524。 【答案】

void fun(int a,int b,long *c)

{

*c=a/10+(b)*10+(a)*100+(b/10)*1000; }

11◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:有N×N矩阵,将矩阵的外围元素做顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,再使临时数组中的元素成为最后一列。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 操作后应为: 7 4 1 8 5 2

9 6 3 【答案】【1】0【2】j--【3】j

【改错】下列给定程序中函数fun的功能是:计算S=f(-n)+f(-n+1)+?+f(0)+f(1)+f(2)+?+f(n)的值。

例如,当n的值为5时,函数值应为10.407143。f(x)函数定义如下: f(x)=(x+1)/(x-2) x>0且x≠2 f(x) 0 x=0或x=2

(x-1)/(x-2) x<0 【答案】【1】double f(double x) 【2】return s ;

【编程】编写函数fun,其功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。例如,若m的值为20,则fun函数值为6.506583。 【答案】

double fun(int m) {

int i; double s=0.0; for(i=1;i<=m;i++) s=s+log(i); return sqrt(s);

}

12◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

【答案】【1】q 【2】next 【3】next

【改错】下列给定程序中函数fun的功能是:用选择法对数组中的n个元素进行升序排列。 【答案】【1】p=j;【2】p=i;

【编程】编写函数fun,其功能是:将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 【答案】

void fun(int m, int *a, int *n) {

int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i==0) a[j++]=i; *n=j;

}

13◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是计算下式 直到,并将计算结果作为函数值返回。例如,若形参e的值为1e-3,函数的返回值为2.985678。 【答案】【1】0 【2】i++ 【3】2.0*i 【改错】下列给定程序中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。

例如,当s所指字符串为:\时,t所指字符串中的内容应为:\。 【答案】

【1】void fun ( char *s , char *t ) 【2】t[d+i]=0;

【编程】编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串的内容为:\,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为:\。 【答案】

void fun(char *s,char t[]) {

int i,j=0,n; n=strlen(s);

for(i=0;i

if(i%2!=0&&s[i]%2!=0) {

t[j]=s[i]; j++; }

t[j]=′\\0′;

}

14◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在形参s所指字符串中的每个数字字符之后插

入一个*号。例如,形参s所指的字符串为def35adh3kjsdf7,执行后结果为def3] 【答案】【1】&& 【2】0 【3】s[j]

【改错】下列给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。 例如,若m的值为5,则应输出1.463611。 【答案】

【1】for(i=2;i<=m;i++) 【2】y+=1.0/(i*i);

【编程】编写函数fun,其功能是:实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为: 程序输出: 2 6 10 6 10 14 10 14 18 【答案】

void fun (int a[3][3], int b[3][3]) {

int i,j;

for(i=0;i<3;i++) for(j=0;j<3;j++)

b[i][j]=a[i][j]+a[j][i];

}

15◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:将形参s所指字符串中下标为奇数的字符取出,并按ASCII码大小递增排序,将排序后的字符存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

【答案】【1】t=i 【2】I 【3】0

【改错】下列给定程序中函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。例如,程序运行后,输入0.0001,则程序输出3.1414。 【答案】【1】while(fabs(t)>=num) 【2】t=s/n;

【编程】编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存指定的下标。 例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。 【答案】

void fun (char a(), char b(), int n) {

int i,k=0;

for(i=0;a[i]!=′\\0′;i++) if(i!=n)

b[k++]=a[i]; b[k]=′\\0′; }

16◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。

例如,若s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543。 【答案】【1】s[i] 【2】k 【3】0 【改错】下列给定程序中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:\,t1所指串中的内容为\,t2所指子串中的内容为\时,结果在w所指的数组中的内容应为\。 【答案】【1】while (*w) 【2】if ( *r == *p )

【编程】编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数、?、字符1的ASCII码值也为奇数、?都应当删除,其它依此类推。最后t所指的数组中的内容应是:\。 【答案】

void fun(char *s,char t[]) {

int i,j=0,n; n=strlen(s);

for(i=0;i

t[j]=s[i]; j++; }

t[j]=′\\0′;

}

17◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:将自然数1~10及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。 【答案】【1】fp 【2】fclose(fp) 【3】fname

【改错】下列给定程序中fun函数功能是:将n个无序整数从小到大排序。 【答案】【1】for(i=j+1;i

【编程】编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

例如,当a=45,b=12时,调用该函数后c=2514。 【答案】

void fun(int a,int b,long *c)

{

*c=a/10+(b/10)*10+(a)*100+(b)*1000; }

18◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将N×N矩阵中元素的值按列向右移动1个位置,右边被移出矩阵的元素绕回左边第1列。例如,N=3,有下列矩阵

1 2 3 4 5 6 7 8 9 计算结果为

3 1 2

6 4 5 9 7 8 【答案】【1】N 【2】N-1 【3】0

【改错】下列给定程序中函数fun的功能是:计算并输出下列级数的前N项和SN,直到SN+1的值大于q为止,q的值通过形参传入。例如,若q的值为50.0,则函数值应为49.394948。 【答案】【1】s=s + (double)(n+1)/n; 【2】return t; 【编程】编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如,当t=1000时,函数值为1597。 【答案】 int fun(int t) {

int f0=0, f1=1,f; do{

f=f0+f1; f0=f1; f1=f; }while(f

}

19◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。

【答案】【1】NULL 【2】n 【3】head,ch

【改错】下列给定程序中函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。 输入字符串时用’#’结束输入。 【答案】

【1】for(i=0,t=0;p[i];i++)

【2】c[t]= ′\\0′;

【编程】编写函数fun,其功能是:将ss所指字符串中所有奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入\,则应输出\。 【答案】 void fun(char *ss)

{

int i;

for(i=0;ss[i]!=′\\0′;i++)

if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′) ss[i]=ss[i]-32;

}

20◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。

例如,从主函数输入一个整数27638496,则函数返回值为26846。 【答案】【1】 1【2】 s>0 【3】 i*10

【改错】下列给定程序中函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。 【答案】【1】int fun(int n,int xx[][M])【2】printf(\,xx[i][j]);

【编程】编写函数fun,其功能是:将a、b中的两个两位数正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次在变量c的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。 【答案】

void fun(int a,int b,long *c)

{

*c=b/10+(a)*10+(b)*100+(a/10)*1000;

}

21◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。

【答案】【1】%【2】return【3】b[i] 【改错】下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如:a中的字符串为aBCDeFgH,b中的字符串为ABcd,则c中的字符串应为aBcdeFgH。 【答案】【1】int k=0;【2】while(*p||*q)

【编程】编写函数fun(),它的功能是利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。

xn+1 =cos(xn),迭代步骤如下: (1)取x1初值为0.0。

(2)x0=x1,把x1的值赋给x0。

(3)x1=cos(x0),求出一个新的x1。

(4)若x0-x1的绝对值小于0.000001, 则执行步骤(5),否则执行步骤(2)。 (5)所求x1就是方程cos(x)-x=0的一个实根,做为函数值返回。 程序输出结果Root=0.739085。 【答案】 float fun()

{ float x1=0.0,x0;

do

{ x0=x1;x1=cos(x0); }

return x1; }

下下请

22◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中,函数fun的功能是计算如下公式。直到,并且把计算结果作为函数值返回。例如,若形参e的值为1e-3,则函数返回值为0.551690。 【答案】【1】3.0 【2】> 【3】(t+1)

【改错】下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。和值通过函数值返回。例如,若n=5,则应输出8.391667。 【答案】【1】double fun(int n) 【2】s=s+(double)a/b;

【编程】请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。 【答案】

int fun (int a[ ][M]) {

int i,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j}

23◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:计算下式前n项的和,并作为函数值返回。 例如,若主函数从键盘给n输入50后,则输出为S=1.960784。 【答案】【1】double 【2】j 【3】1.0/t

【改错】下列给定程序中函数fun的功能是:判断一个整数是否为素数,若是素数返回1,否则返回0。

在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。 【答案】【1】k++ ; 【2】if(m==k)

【编程】请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 【答案】

void fun(int a[],int n, int *max, int *d) {

int i;

*max=a[0]; *d=0;

for(i=0;i {*max=a[i];*d=i;}

}

24◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针n传回所指变量。 例如,若输入一个数27638496,则新数为739。 【答案】【1】10 【2】0 【3】x

【改错】下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 【答案】【1】if( n==0)

【2】result *=n--;

【编程】请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\,则函数把它转换为整数值-1234。 【答案】 long fun(char *p) {

long n=0; int flag=1;

if(*p==′-′) else if(*p==′+′) p++;

while(*p!=′\\0′) {n=n*10+*p-′0′; p++; }

return n*flag;

}

25◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入\,cD\,则输出\,cd\。 【答案】【1】* 【2】'Z' 【3】tt

【改错】下列给定程序的功能是读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如:输入整数2310,则应输出2,3,5,7,11。 【答案】【1】IsPrime(int n)

【2】if(!(n%i))

【编程】请编写函数fun,其功能是:将两个两位数的正整数a,b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数千位和十位上,b数的十位和个位数依次放在c数的个位和百位。例如,当a=45,b=12,调用该函数后,c=4251。 【答案】

void fun(int a,int b,long *c)

{*c=(a)*1000+(b)*100+(a/10)*10+b/10; }

26◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun()的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。 【答案】【1】*s 【2】1 【3】s++

【改错】下列给定程序中fun()函数的功能是分别统计字符串中大写字母和小写字母的个数。例如:给字符串s输入AAaaBBb123CCccccd,则应输出结果为upper=6,lower=8。 【答案】【1】void fun(char *s,int *a,int *b) 【2】(*a)++ ; 【3】(*b)++;

【编程】请编一个函数void fun(int tt[M][N], int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。 【答案】

void fun(int tt[M][N],int pp[N]) {int i,j,min; for(j=0;j

min=tt[0][j]; for(i=0;i

} }

27◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 【答案】【1】p++【2】'\\0'【3】s++

【改错】下列给定程序中的函数Creatink()的功能是创建带头结点的单向链表,并为各结点数据域赋0~m-1的值。 【答案】【1】p=s; 【2】s->data=rand()%(m-1);

【编程】请编一个函数fun(char *s), 该函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。 【答案】 fun(char *s) {char ch; int i,n;

i=0;

n=strlen(s)-1; while(i<=(n+1)/2) { ch=s[i]; s[i]=s[n]; s[n]=ch; i++; n--;

}

}

28◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。 【答案】【1】n-1 【2】j+1【3】z++

【改错】下列给定程序中函数fun()的功能是根据整型形参m,计算如下公式的值。例如:m中的值为5,则应输1.463611。 【答案】【1】for(i=2;i<=m;i++) 【2】y+=1.0/(i*i);

【编程】请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码降序排列。例如:原来的字符串为CEAedca,则排序后输出为CedcEAa。 【答案】

int fun(char *s, int num) {char t;

int i, j; for(i=1;i

}

29◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun()的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。 例如,若输入2,则输出1 2 2 4 输入4,则输出1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 【答案】【1】#define

【2】(k+1)*(j+1) 【3】\\n

【改错】下列给定程序中函数fun()的功能是:计算n!。 例如:给n输入5,则输出120.000000。 【答案】【1】if(n==0)

【2】result*=n--;

【编程】请编写函数fun(),其功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除。字符串中剩余的字符所形成的一个新的字符串放在t所指的数组中。例如:s所指字符串中的内容为ABCDEFG12345,其中字符A的ASCII码值虽为奇数,但元素所在的下标为偶数,因此必需删除;字符1的ASCII码值为奇数,所在数组中的下标也为奇数,不删除,最后t所指的数组中的内容应是135。 【答案】

void fun(char *s,char t[ ]) {

int i,j=0,n;

n=strlen(s);

for(i=0;i

下下规

30◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。 【答案】【1】1 【2】j++ 【3】j

【改错】下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 【答案】【1】t=a;a=b;b=t;

【2】return(b);

【编程】规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:ABCDEFG。 【答案】

void fun(char *a) {

int i,j=0;

for(i=0;a[i]!=′\\0′;i++) if(a[i]!=′*′) a[j++]=a[i]; a[j]=′\\0′;

}

31◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 【答案】【1】N 【2】k 【3】ss[i]

【改错】下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为aBCDeFgH,b字符串为ABcd,则c中的字符串应为aBcdeFgH。 【答案】【1】int k=0; 【2】while (*p||*q)

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。 【答案】

void fun(char *a) {

int i=0; char *p=a;

while(*p&&*p==′*′) {

a[i]=*p;i++;p++; }

while(*p) {

if(*p!=′*′) {

a[i]=*p;i++; }

p++; }

a[i]=′\\0′;

}

32◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 【答案】【1】N 【2】i 【3】-1

【改错】下列给定程序中函数fun的功能是:从整数1到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。 【答案】

【1】a2=k/10; 【2】return i;

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。 【答案】

void fun (char *a) {

while(*a!=′\\0′) a++;

a--;

while(*a==′*′) a--;

*(a+1)=′\\0′;

}

33◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中,查找含有形参

substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,函数值为非0。 【答案】【1】N 【2】substr 【3】0

【改错】下列给定程序中函数fun的功能是:求三个数的最小公倍数。例如,若给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是330。 【答案】

【1】fun(int x,int y, int z) 【2】return j;

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。

【答案】

void fun (char *a,int n ,int h , int e) {

int i,j=0;

for(i=h;i

a[j]=′\\0′; }

34◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算后结果为 1 0 0 6 5 0

10 14 9 【答案】【1】[N] 【2】t[i][j]

【3】t[j][i]

【改错】下列给定程序中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,z和y的值不相等。

例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。 【答案】【1】#define FU(m,n)(m)/(n) 【2】return (value);

【编程】规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

例如,字符串中的内容为:*******A*BC*DEF*G****,删除后字符串中的内容应当是:A*BC*DEF*G****。编写函数时,不得使用C语言提供的字符串函数。 【答案】

void fun (char *a) {

char *p=a;

while(*p==′*′) p++;

for(;*p!=′\\0′;p++,a++) *a=*p;

*a=′\\0′;

}

35◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。

例如,若N=3,有下列矩阵: 1 2 3 4 5 6

7 8 9

首先累加1、5、9,然后累加3、5、7,函数返回值为30。

【答案】【1】sum=0 【2】t[i][i] 【3】1

【改错】下列给定程序中函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若给m输入-100,n输入90,则函数求得的一个根为2.000。

【答案】【1】double r ; 【2】while (fabs(n-m) >0.001)

【编程】规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG********。 【答案】

void fun(char *a,char *h,char *p) {

int i=0; char *q=a; while (q

{

a[i]=*q;q++;i++; }

while (q

if(*q!=′*′) {

a[i]=*q;i++; }

q++;

}

while (*q) {

a[i]=*q;i++;q++; }

a[i]=′\\0′;

}

36◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符的。ss所指字符串数组中共有N个字符串,且串长小于M。 【答案】【1】[M]【2】N【3】′\\0′

【改错】下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。π,2=1+1,3+1,3×2,5+1,3×2,5×3,7+1,3×2,5×3,7×4,9+?? 【答案】【1】t=1.0;【2】return(s*2);

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。

例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。 【答案】

void fun(char *a,int n ) {

int i=0, k=0; char *p, *t;

p=t=a;

while(*t==′*′) {k++; t++;} if(k>n) { while(*p)

{a[i]=*(p+k-n); i++; p++;

}

a[i]=′\\0′;

} }

37◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把奇数从数组中删除,偶数的个数通过函数值返回。

例如,若a所指数组中的数据最初排列列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。

【答案】【1】a[i]%2

【2】a[j] 【3】 j

【改错】下列给定程序中函数fun的功能是:按以下递归公式求函数的值。 /10 (n=1) fun(n)= │

\\fun(n-1)+2 (n>1)

例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 【答案】【1】int fun (int n) 【2】if (n==1)

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。

例如,字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应为:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。 【答案】

void fun( char *a,int n ) {

int i=0,k=0; char *p, *t; p=t=a; while(*t) t++; t--;

while(*t==′*′) {k++;t--;} if(k>n)

{while(*p&&p

i++;p++; }

a[i]=′\\0′;

} }

下下学

38◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。 【答案】【1】1 【2】i 【3】a[p+i]

【改错】下列给定程序中函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。例如,若输入的数为:55 12 34,输出的结果应当是:a=55.0,b=34.0,c=12.0。

【答案】【1】float k;【2】if(*a< *c)

【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 【答案】

int fun (STREC *a, STREC *b) {

int i,j=0,max=a[0].s; for(i=0;i

if(max

if(max==a[i].s) b[j++]=a[i];

return j; }

39◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。 【答案】【1】n/2【2】i【3】a[n-i-1] 【改错】下列给定程序中函数fun的功能是:将一个由八进制数字字符组成的字符串转换成与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入77777,则输出32767。 【答案】【1】n= *p-′0′; 【2】n=n*8+*p-′0′;

【编程】学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。 【答案】

STREC fun(STREC *a, char *b) {

int i;

STREC str={\,-1};

if(strcmp(a[i].num,b)==0) str=a[i]; return str;

}

40◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。 【答案】【1】999 【2】t/10 【3】x

【改错】下列给定程序中函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为7654321时,t中的数为642。 【答案】

【1】void fun(long s,long *t) 【2】while(s>0)

【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 【答案】

void fun (STREC a[]) {

int i,j; STREC t;

for(i=1;i

for(j=0;j}

41◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,以此类推。例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。 【答案】【1】a[] 【2】2 【3】i+1 【改错】下列程序中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。

例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 【答案】【1】sum=0.0; 【2】if((i+1)%5==0)

【编程】学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 【答案】

double fun(STREC *a, STREC *b, int *n) {

int i,j=0; double av=0.0; for(i=0;i

for(i=0;i

if(a[i].s

return av;

}

下下函

42◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:计算一个带头结点的单向链表中各结点的数据域中数值之和,结果作为函数值返回。 【答案】【1】data 【2】next

【3】head 【改错】下列给定程序中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为\,t1所指子串中的内容为\,t2所指子串中的内容为\时,在w所指的数组中的内容应为\。 【答案】【1】while( *r)

【2】{*a=*r;a++;r++;}

【编程】函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为\时,在t所指数组中的内容应是:\。 【答案】

void fun(char *s,char t[]) {

int i,j=0,k=strlen(s); for(i=1;i

t[j]=’\\0’; }

43◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:找出100到x(x≤999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。 【答案】【1】0 【2】x 【3】t++

【改错】下列给定程序中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串之后。

例如:当s所指的字符串为\时,t所指的字符串应为\。 【答案】【1】int i, s1; 【2】t[i]=s[s1-i-1];

【编程】函数fun的功能是:将a、b的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。

例如,当a=45,b=12,调用该函数后c=1425。 【答案】

void fun(int a,int b,long *c) {

*c=a+(b)*10+(a/10)*100+(b/10)*1000;

}

44◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:统计带头结点的单向链表中结点的个数,并存放在形参n所指的存储单元中。

【答案】【1】*n【2】 next【3】head

【改错】下列给定程序中函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

例如,当字符串中的内容为:\,t中内容为:\时,输出结果应是:abcdx。当字符串中的内容为:\,t中内容为:\时,则程序输出未找到信息:not be found!。

【答案】【1】a=NULL; 【2】if(*r==*p)

【编程】函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。

例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,但在数组中的下标为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是\。 【答案】

void fun(char*s, char t[]) {

int i,j=0;

for(i=0;s[i]!=′\\0′;i++) if(i%2==0&&s[i]%2==0) t[j++]=s[i]; t[j]=′\\0′

}

45◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 【答案】【1】STYPE 【2】FILE

【3】 fp

【改错】下列给定程序中函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。例如,当s中的字符串为\时,则t中的字符串应为:\。 【答案】【1】for ( i=0; i

【编程】函数fun的功能是:将两个两位数的正整数 a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12时,调用该函数后c=4152。 【答案】

void fun(int a,int b,long *c)

{

*c=b+(a)*10+(b/10)*100+(a/10)*1000; }

下开头其他的

46◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。 【答案】

【1】a[i] 【2】a[j]【3】a[j]

【改错】下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、??。例如,若给n输入7,则该项的斐波拉契数值为13。 【答案】【1】去掉分号

【2】case 1:case2:return 1;

【编程】某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。 例如,学生的成绩85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。 【答案】

void fun(STREC *a) {

int i;

a->ave=0.0;

for(i=0;i

a->ave=a->ave+a->s[i];

}

47◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】下列给定程序中函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',??,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。 【答案】【1】char

【2】ch<='9' 【3】'0'

【改错】下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。 【答案】【1】b[k]=*p; 【2】b[k]=′ ′;k++;

【编程】N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。

【答案】

double fun(STREC *h) {

double av=0.0;

STREC *p=h->next; while(p!=NULL) { av=av+p->s; p=p->next; return ave/N;

}

48◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:将N×N矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为: 3 2 1 4 5 6

9 8 7 【答案】【1】t[][N]

【2】i=0;i

【改错】由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。 【答案】

【1】int fun(int a[],int m) 【2】else if(m>a[mid])

【编程】假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是ABCDEFG*******。 【答案】

void fun(char *a,char *p) {

char *t=a; for(;t<=p;t++) if(*t!=′*′) *(a++)=*t; for(;*t!=′\\0′;t++) *(a++)=*t;

*a=′\\0′;

}

49◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。例如,若s所指字符串为baacda,c中的字符为a,执行后s所指字符串为baaaacdaa。 【答案】【1】′\\0′【2】0 【3】c

【改错】在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中函数fun的功能是:计算数组元素中所有值为正数的平均值(不包括0)。 例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。 【答案】【1】double sum=0.0; 【2】sum/=c;

【编程】编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。 例如:若n的值为11时,函数的值为1.833333 【答案】 double fun(int n) {

int i,s1=0; float s=0.0; for(i=1;i<=n;i++) {

s1=s1+i;

s=s+1.0/s1; }

return s; }

s1=s1+i; s=s+1.0/s1; }

return s;

}

50◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为87653142时,t中的数为7531。 【答案】【1】% 【2】10 【3】10

【改错】在下列给定程序中函数fun()的功能是将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。例如:输入77777,则输出将是32767。 【答案】【1】n=*p-′0′;

【2】n=n*8+*p-′0′;

【编程】请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数个位和百位上,b数的十位和个位数依次放在c数的千位和十位。例如,当a=45,b=12,调用该函数后,c=1524。

【答案】

void fun(int a,int b,long *c) {

(b)*10+a/10; }

51◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的\单词\是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination

则应输出:I aM A studenT tO takE thE examinatioN 【答案】【1】k=0 【2】*(p-1) 【3】fun(chrstr)

【改错】下列给定程序中函数fun()和funx()的功能是用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。例如:给m输入-100,给n输入90,则函数求得的一个根值为2.000。 【答案】【1】double r;

【2】while(fabs(n-m)>0.001)

【编程】已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给予出函数的首部,请完成该函数。 【答案】

fun(STU a[],STU *s) {

int i, min;

min=a[0].s; for(i=0;i

*s=a[i]; } }

52◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】下列给定程序中函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a初值为8,b初值为3,程序运行后a中的值为3,b中的值为8。

【答案】【1】int 【2】;【3】&a

【改错】N个有序整数数列已放在一维数组中,在给定下列程序中,函数fun()的功能是利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。 【答案】

【1】int fun(int a[ ],int m) 【2】else if(m>a[mid])

【编程】编写函数fun(),该函数的功能是从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。

例如:程序执行时输入字符串为turbo c and borland c++,从键盘上输入字符n,则输出后变为turbo c ad borlad c++。 【答案】

int fun(char s[ ], int c) { int i=0; char *p; p=s; while(*p) {if(*p!=c) {s[i]=*p; i++; } p++;

}

s[i]='\\0'; }

给下请

53◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是将不带头结点的单向链表逆置,即若原链表中从头至尾结点数据域一次为2,4,6,8,10,逆置后,从头至尾结点数据域依次为10,8,6,4,2.

【答案】【1】NODE 【2】next 【3】r

【改错】下列给定程序中,函数fun的功能是:将字符串s中的位于奇数位置的字符或ASCII码为偶数的字符依此放入字符串t中。例如,字符串中的数据为AABBCCDDEEFF,则输出应当是ABBC DDEFF。 【答案】【1】if(i%2 || s[i]%2==0) 【2】t[j]=0;

【编程】请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依此放到一维数组中。一维数组中数据的个数存放在形参n所指的存储单元中。 例如,若二维数组中的数据为: 33 33 33 33 44 44 44 44

55 55 55 55

则一维数组中的内容应是:

33 44 55 33 44 55 33 44 55 33 44 55 【答案】

void fun(int (*s)[10],int *b,int *n,int mm,int nn) {

int i,j;

for(j=0;j

b[*n]=*(*(s+i)+j); *n=*n+1;

} }

54◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是将带头结点的单向链表逆置,即若原链表中从头至尾结点数据域依次为2,4,6,8,10,逆置后,从头至尾结点数据域依次为10,8,6,4,2.

【答案】【1】next【2】NULL【3】r

【改错】下列给定程序中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 【答案】【1】r=t;【2】r=t;

【编程】请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为 AAAA BBBBBBB

CC

则合并后的字符串内容应该是AAAABBBBBBBCC 【答案】

void fun(char a[M][N],char *b) {

int i,j,k=0; for(i=0;i

for(j=0;a[i][j]!=′\\0′;j++) b[k++]=a[i][j]; b[k]=′\\0′;

}

55◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为10,4,2,8,6,排序后链表结点数据域从头至尾的数据为2,4,6,8,10. 【答案】【1】p->next 【2】q

【3】p->next

【改错】下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(如Z转化为A,z转化为a),其他字符不变。 【答案】【1】while(*s) 【2】s++;

【编程】请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容:1,2,3,4,5,6,7,8,9,10;p的值为3.移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。 【答案】

void fun (int *w,int p,int n ) {

int x,j,ch;

for(x=0;x<=p;x++) {ch=w [0]; for (j=1;j

w [n-1]=ch; }

56◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数FUN的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串的方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 【答案】【1】FILE*【2】fp【3】ch

【改错】下列给定程序中函数fun的功能是:依此取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

【答案】【1】s[j++]=s[i]; 【2】s[j]= ′\\0′;

【编程】请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依此放到一个字符串中。 例如,若二维数组中的数据为:

W W W W S S S S H H H H

则字符串中的内容应是:WSHWSHWSHWSH。

【答案】

void fun(char (*s)[N],char *b) {

int i,j,k=0;

for(i=0;i

b[k]=′\\0′; }

57◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 【答案】【1】FILE*

【2】fclose(fp) 【3】 fp

【改错】下列给定程序中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 【答案】

【1】t=calloc(m,sizeof(STU)); 【2】t[k]=b[j];

【编程】请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 【答案】

int fun(int a[], int n) {

int i,j=1; for(i=1;i

a[j++]=a[i]; return j;

}

58◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 【答案】【1】std[0]【2】 std[i].age【3】max.name

【改错】下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a=65 b=60 【答案】【1】void fun(int *a,int *b) 【2】t=*b;*b=*a;*a=t; 【编程】请编一个函数void fun(int tt[M][N], int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依此放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

【答案】

void fun(int tt[M][N],int pp[N]) {

int i,j,max; for(j=0;j

max=tt[0][j]; for(i=0;imax) max=tt[i][j]; pp[j]=max; }

}

59◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:对形参ss所指字符串组中的m个字符串长度由短到长进行排序。Ss所指字符串数组中共有M个字符串,切串长小宇n。 【答案】【1】i+1【2】k=j【3】t

【改错】下列给定函数中函数fun的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。 【答案】

【1】char *fun( char *s,char *t)【2】ss++;【3】tt++;

【编程】请编一个函数fun(char *s), 该函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。 【答案】 fun(char *s) {char ch; int i,n;

i=0;

n=strlen(s)-1; while(i<=(n+1)/2) { ch=s[i]; s[i]=s[n]; s[n]=ch; i++;

n--; } }

60◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:求出形参ss所指字符串组中最长字符串的长度。将其余字符串右边用字符*补齐,使其与等长。Ss所指字符串数组中共有M个字符串,切串长小于N 【答案】【1】ss[i]【2】n+j【3】1

【改错】下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里\单词\是指由空格隔开的字符串)。例如,若输入I am astudent to take the examination,则应输出I Am A Student To Take The Examination。

【答案】【1】void upfst( char *p)

【编程】请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码降序排列。例如:原来的字符串为CEAedca,则排序后输出为CedcEAa。 【答案】

int fun(char *s, int num)

{char t;

int i, j; for(i=1;i

} }

61◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数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;

}

62◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是将a和b所指的两个字符串分辨转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串“32486”和“12345”,在主函数中输出的函数值为44831. 【答案】【1】’0’ 【2】s++ 【3】ctod(a)+ctod(b)

【改错】下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=5,lower=9。 【答案】

【1】void fun(char *s, int *a, int *b) 【2】(*a)++;【3】 (*b)++;

【编程】请编一个函数 float fun(double h),函数的功能是:对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。

例如,若h 值为8.32433,则函数返回8.32;若h值为 8.32533,则函数返回8.33。 【答案】 float fun (float h) {

long t;

t=(h*1000+5)/10;

return (float)t/100;

}

63◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数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′;

}

64◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数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

return fg; }

65◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数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,它的功能是计算下列级数和,和值由函数值返回。S=1+x+x2/2!+x3/3!+?+xn/n!例如,当n=10,x=0.3时,函数值为1.349859。 【答案】

double fun(double x, int n) {

int i;

double s=1.0,s1=1.0;

for(i=1;i<=n;i++)

{ s1=s1] s=s+pow(x,i)/s1; /*按公式求出*/ }

return s;

}

给下编

66◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。

例如,若形参s所指的字符串为abcdef35adgh3kjsdf7,则输出结果为4。 【答案】【1】s[i] 【2】 '9' 【3】*t=n

【改错】下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。 【答案】【1】t = *x ; *x = y ; 【2】return(t) ;

【编程】编写函数fun,其功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。 【答案】

void fun(int *a,int *n) {

int i,j=0;

for(i=1;i<=1000;i++)

if((i%7==0||i==0)&&iw!=0) a[j++]=i; *n=j;

}

67◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定函数中,函数fun的功能是:求出形参ss所指字符串组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有m个字符串,切串长小宇N 【答案】【1】k【2】len【3】ss[i][j]

【改错】下列给定程序中,函数fun的功能是:计算整数n的阶乘。 【答案】【1】result*=n--; 【2】return result;

【编程】编写函数fun,该函数的功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符处理。

例如,若程序执行时输入字符串为:turbo c and borland c++ 从键盘上输入字符n,则输出为:

turbo c ad borlad c++

如果输入的字符在字符串中不存在,则字符串照原样输出。 【答案】

void fun(char s[], int c) {

int i=0; char *p; p=s; while(*p) {

if(*p!=c) {

s[i]=*p; i++; } }

s[i]=′\\0′;

}

68◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000??

【答案】【1】doubie【2】f1【3】f2

【改错】下列给定程序中,fun函数的功能是:根据形参m,计算下列公式的值: t=1+1/2+1/3+1/4+?+1/m

例如,若输入5,则应输出2.283333。 【答案】【1】t+=1.0/i; 【2】return t;

【编程】编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,则应当输出6。 【答案】

int fun(char *str, char *substr) {

int i,j=0;

for(i=0;str[i+1]!=′\\0′;i++) if(str[i]==substr[0]&&str[i+1]==substr[1]) j++; return j;

}

69◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数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; }

}

70◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。 【答案】【1】a[i]【2】<【3】x,y

【改错】下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数作为函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:

80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为4(平均分为75.5625)。

【答案】【1】t+=s[k]; 【2】*aver=ave;

【编程】编写函数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;

}

71◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数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

72◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序的功能是:判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后。 【答案】【1】!= 【2】str[1] 【3】s,c

【改错】下列给定程序中fun函数的功能是:将p所指的字符串中每个单词的最后一个字母改成大写(这里的\单词\是指有空格隔开的字符串)。例如,若输入: I am a student to take the examination

则应输出:I aM A studenT tO takE thE examinatioN 【答案】【1】if(*p==′′)

【2】*(p-1)=toupper( *(p-1));

【编程】编写函数fun,w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回。

例如,w值为5923,则函数返回923;若w值为923,则函数返回23。 【答案】

unsigned fun(unsigned w) {

if(w>=10000) return w000; if(w>=1000) return w00; if(w>=100) return w0; if(w>=10) return w; }

给开头其他的

73◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。请在程序的下划线处填入正确的内容并把下画线删除,使程序得出正确

的结果。

【1】std[]【2】PERSON 【3】(std)

【改错】给定程序中MODI1.C中函数fun的功能是:将m(1

int i,j=0;

for(i=0;s[i]!=′\\0′;i++)

if(s[i]!=′′ &&(s[i+1]==′ ′||s[i+1]==′\\0′)) j++;

return j;

}

74◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:计算形参x所指数组中的N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数。46.30.32.40.6.17.45.15.48.26.其平均值为30.500000. 【答案】【1】0.0【2】x[i]/N【3】j++

【改错】下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。 y=1/(100×100)+1/(200×200)+1/(300×300)+?+1/(m×m)例如,若m=2000,则应输出0.000160。

【答案】【1】double fun(int m) 【2】for(i=100;i<=m;i+=100)

【编程】已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。 【答案】

fun(STU a[], STU *s) {

int i;

*s=a[0];

for(i=0;is>a[i].s)

*s=a[i]; }

75◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数fun的功能是:计算x所指数组中n个数的平均值(规定所有书均为整数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的书作为函数值返回,在主函数中输出。例如,有10个正数:46.30.32.40.6.17.45.15.48.26,平均值为30.500000. 【答案】【1】*av【2】i【3】x[j]

【改错】下列给定程序中函数fun的功能是:根据整型形参n,计算如下公式的值。 A1=1,A2=1/(1+A1),A3=1/(1+A2),?,An=1/(1+A(n-1)) 例如,若n=10,则应输出0.617977。 【答案】【1】float fun(int n) 【2】for(i=2;i<=n;i++)

【编程】下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int n),该函数的功能是:使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为: a=1 9 7 2 3 8

4 5 6

则返回主程序后a数组中的值应为: 2 18 14 2 6 16 4 5 12 【答案】

void fun(int a[][N],int m) {

int i,j;

for(j=0;j

}

76◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】给定程序中,函数FUN的功能是:计算形参x所指数组中n个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回 【答案】【1】s/N【2】j++【3】-1

【改错】下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,若输入edcba,则应输出abcde。 【答案】【1】for(i=strlen(t)-1; i; i--)【2】if (t[j] > t[j+1])

【编程】下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a 数组中的值为:

0 1 2 7 9 1 9 7 4 5 2 3 8 3 1 4 5 6 8 2

5 9 1 4 1

则返回主程序后s的值应为3.375。 【答案】

double fun (int w[][N]) {

int i,j,k=0; double av=0.0; for(i=0;i

if(i==0||i==N-1||j==0||j==N-1) {av=av+w[i][j]; k++;

}

return av/k; }

程下请

77◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 【答案】【1】tt 【2】tt.score[i]

【3】(std)

【改错】下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和 a[1] 中的数对调。 【答案】

【1】void fun(int *a, int n) 【2】m=i;

【编程】请编写函数void fun (int x, int pp[], int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。 【答案】

void fun (int x, int pp[], int *n) {

int i,j=0;

for(i=1;i

}

78◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储了学生的学号、姓名和三门成绩。所有学生数据均已二进制方式输入到文件中。。。。 【答案】【1】“r”【2】>【3】fwrite

【改错】下列给定程序中,函数fun的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 【答案】【1】int fun(char *str, char *substr) 【2】for (i=0; str[i]; i++)

【编程】请编写函数fun,该函数的功能是:计算并输出S=1+(1+20.5)+(1+20.5+30.5)+?+(1+20.5+30.5+?+n0.5)的值。例如,若主函数从键盘给n输入20后,则输出为S=534.188884。 【答案】

double fun(int n) {

int i;

double s=0.0,s1=0.0; for(i=1;i<=n;i++) { s1=s1+pow(i,0.5); s=s+s1; }

return s;

}

79◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储了学生的学号、姓名、和三门课的成绩。所有学生的数据均以二进制方式输入到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 【答案】【1】filename【2】fp 【3】fp

【改错】下列给定程序中函数fun的功能是:首先将b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为abcdefg,b所指字符串中的内容为1234,c所指数组中的内容应该为a4b3c2d1efg;而当a所指字符串中的内容为1234,b所指字符串中的内容为abcdefg,c所指数组中的内容应该为1g2f3e4dcba。 【答案】【1】while(i

【编程】请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为偶数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标为奇数,因此不应当删除,其他依此类推,最后t所指的数组中的内容应是d24。 【答案】

void fun(char*s, char t[]) {

int i,j=0;

for(i=0;s[i]!=′\\0′;i++) if(i%2!=0&&s[i]%2==0) t[j++]=s[i]; t[j]=′\\0′; }

程下学

80◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。例如,若b所指变量t中的学号、姓名和三门课的成绩依次是:10002、\、93、85、87,修改后输出t中的数据应为:10004、\、93、85、87。

【答案】【1】->sno 【2】->name

【3】&t

【改错】下列给定程序中函数fun的功能是:用递归算法求形参a的平方根。求平方根的迭代公式如下:例如,a为2时,平方根值为:1.414214。 【答案】

【1】double fun(double a,double x0) 【2】if(fabs(x1-x0)>=0.00001)

【编程】学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 【答案】

double fun (STREC *a,STREC *b, int *n) {

int i;

double av=0.0; *n=0;

for(i=0;i

{ b[*n]=a[i];*n=*n+1;} return av;

}

81◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体数组,存储若干名学生的学号、姓名和3门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。 【答案】【1】struct student

【2】n-1【3】 a[i].name,a[j].name 【改错】下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容应为:eABCDFGH。 【答案】【1】q=p+i;

【2】while(q>p) 【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

例如,输入的分数是60 69,则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。 【答案】

int fun (STREC *a, STREC *b, int l, int h ) {

int i,j=0;

for(i=0;i

if(a[i].s>=l&&a[i].s<=h) b[j++]=a[i]; return j;

}

程开头其他的

82◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。

例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001、\、95、80、88,则修改后输出b中的数据应为:10002、\、95、80、88。 【答案】【1】a 【2】b.name 【3】score[i]

【改错】下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。 【答案】【1】s[j++]=s[i]; 【2】s[j]= ′\\0′;

【编程】规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。 【答案】 void fun(char *a) {

int i=0,n=0; char *p; p=a;

while (*p==′*′) {

n++;p++; }

while(*p) {

a[i]=*p;i++;p++; }

while(n!=0)

{

a[i]=′*′;i++;n--; }

a[i]=′\\0′;

}

83◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主

函数,从主函数中输出修改的数据。

例如,a所指变量s中的学号、姓名和三门课的成绩依次是:10001、\、95、80、88,修改后输出t中的数据应为:10002、\、96、81、89。 【答案】【1】struct student* 【2】a->score[i] 【3】a

【改错】下列给定程序中,函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。

【答案】【1】char *fun(char (*sq)[M]) 【2】return sp;

【编程】编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。 【答案】

void fun(int a,int b,long *c) {

*c=a+(b/10)*10+(a/10)*100+(b)*1000;

}

84◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是:从文件中找出指定学号的学生数据,读入此学生数据,对该学生的分数进行修改,使每门课的分数加3分,修改后重写文件中学生的数据,即用该学生的新数据覆盖原数据,其它学生数据指定不变;若找不到,则不做任何操作。 【答案】【1】fp 【2】== 【3】fp 【改错】下列给定程序中函数fun的功能是:用插入排序法对字符串中的字符进行升序排列。插入法的基本算法是:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,??。待排序的字符串已在主函数中赋予。

【答案】【1】n=strlen( aa ) ; 【2】ch=aa[i];

【编程】N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:找出学生的最高分,并由函数值返回。 【答案】

double fun(STREC *h) {

double max=h->s; while(h!=NULL) { if(maxs) max=h->s; h=h->next; }

return max;

}

85◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。

例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是:10001、\、95、80、88,修改后的数据应为:10002、\、96、81、89。 【答案】【1】 struct student 【2】a.name 【3】a.score[i] 【改错】假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为x的元素。变量n中存放数列中元素的个数。 【答案】【1】if(p==n) return -1; 【2】a[i]=a[i+1];

【编程】学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。 【答案】

int fun(STREC *a,STREC *b) {

int i,j=0,n=0,min; min=a[0].s;

for(i=0;i

*(b+j)=a[i];j++;n++; } return j;

}

86◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】程序的功能是计算。。。

【答案】【1】1 【2】 i*s 【3】0 【4】s+fun(k)

【改错】下列给定程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如,若k=10,则应输出3628800。 【答案】if(k>1)

【编程】程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为: 1 9 7 a= 2 3 8

4 5 6

则返回主程序后a数组中的值应为: 3 9 7 6 9 8 12 15 18 【答案】

void fun(int a[][N],int n)

{

int i,j;

for(i=0;i

函下请

87◆◆◆◆◆◆◆◆◆◆◆◆◆◆

【填空】函数fun的功能是进行字母转换。若形参ch中的是小写英文字母,则转换成对应的大写英文字母:若ch中式大写英文字母,则转换成对应的小写英文字母;若是其他字符则保持不变;并转换后的结果作为函数值返回。 【答案】【1】&&【2】’A’【3】ch

【改错】下列给定程序中,函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如,输入1、2、3、4,程序运行后输出以下方阵: 4 1 2 3 3 4 1 2

2 3 4 1 1 2 3 4 【答案】【1】void fun(int *a)

【2】a[j]=a[j-1];

【编程】请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。

例如,若主函数从键盘给n输入的值为856,则输出为sum=763。 【答案】 int fun(int n) {

int s=0,i;

for(i=2;i<=n-1;i++) if(n%i==0) s+=i; return s;

}

88◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】函数fun的功能是:计算。。。的前n项和。若x=2.5,n=15是,函数值为1.917914 【答案】【1】1.0 【2】-1 【3】t

【改错】下列给定程序中,函数fun的功能是:从3个红球、5个白球、6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

【答案】【1】for(i=1;i<=3;i++) 【2】if((k>=0&&k<=6)

【编程】请编写函数fun,其功能是计算并输出如下多项式的值: Sn=l+1/1!+1/2!+1/3!+1/4!+?+1/n!

例如,若主函数从键盘给n输入15,则输出为S=2.718282。 【答案】

本文来源:https://www.bwwdw.com/article/99ux.html

Top