国家计算机二级考试C语言100套上机题

更新时间:2024-02-02 20:06:01 阅读量: 教育文库 文档下载

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

第一套

1.下列给定程序中,函数fun的功能是计算如下公式 直到 ,并且把计算结果作为函数值返回。

例如,若形参e的值为1e-3,则函数返回值为0.551690。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)3.0或(double)3 (2)> (3) (t+1)

2.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。和值通过函数值返回。

例如,若n=5,则应输出8.391667。

请改正程序中的错误,使其得出正确的结果。 (1)double fun(int n) (2)s=s+(double)a/b;

3.请编写函数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第二套

1.下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。 例如,当形参n的值为10时,函数返回值为9.612558。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) 0 (2) n (3) (t*t)

2.下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。

例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能得出正确的结果。 (1)for(i=0;str[i];i++) (2)if(substr[k+1]== ′\\0′)

3.编写函数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]

第三套

1.给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为abcdef35adgh3kjsdf7,则输出结果为4。

请在下划线处填入正确内容并将下划线删除,使程序得出正确的结果。 (1) s[i] (2) '9' (3)*t=n

2.下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。

例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。 请改正程序中的错误,使它得出正确的结果。 (1)t = *x ; *x = y ; (2)return(t) ;或return t;

3.编写函数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++) /*求1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,并放入数组a中*/

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

*n=j; /*传回满足条件的数的个数*/ }

第四套

1.下列给定程序中,函数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

2.下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。 (1) t=a;a=b;b=t; (2) return(b);或return b;

3.规定输入的字符串中只包含字母和*号。编写函数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′; /*最后加上字符串结束符′\\0′*/ }

第五套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)0 (2) 10]

2.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数为7531。 请改正程序中的错误,使它能得出正确的结果。 (1)*t=0; (2)if(d%2!=0)或if(d%2==1)

3.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出:

FirstString--SecondString void fun(char p1[],char p2[]) {

int i,j;

for(i=0;p1[i]!=′\\0′;i++); /*求出的i为p1字符串的总长度,包括结束标记符*/

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

p1[i++]=p2[j]; /*将p2字符串连在p1字符串后面*/ p1[i]=′\\0′; /*在字符串最后加上结束标记符*/ }

第六套

1.下列给定程序中,函数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]

2.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 (1) 去掉分号

(2) case 1:case2:return 1;

3.某学生的记录由学号、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]; /*求各门成绩的总和*/

a->ave=a->ave/N; /*求平均分*/ }

第七套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) char (2) ch<='9' (3) '0'

2.下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。

请改正程序中的错误,使它能得出正确结果。 (1) b[k]=*p;

(2) b[k]=′ ′;k++;

3.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; /*p直接指向\头结点\的下一个结点,即第一个成绩*/ while(p!=NULL)

{ av=av+p->s; /*求总分数*/ p=p->next; }

return av/N; /*返回平均值*/ }

第八套

1.下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) M (2) < (3) k

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

例如,若输入\,cD\,则输出\,CD\。 请改正程序中的错误,使它能得出正确的结果。 (1)if(( tt[i]>=′a′ )&&( tt[i] <= ′z′) (2)tt[i]-=32;

3.编写函数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; /*返回非素数的个数*/ }

第九套

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

例如,s所指的字符串为def35adh3kjsdf7,执行后结果为defadhajsdf3537。 请在程序的下划线处填入正确的内容把下划线删除,使程序得出正确的结果。 (1)j++或j+=1或++j或j=j+1 (2)s[i]=t1[i] (3) j

2.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。 请改正程序中的错误,使它能得出正确的结果。 (1)for (j = I + 1; j < 6; j++) (2)(pstr + I) = *(pstr + j) ;

3.编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为1,则输出3。 int fun(char *ss, char c) {

int i=0;

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

i++; /*求出ss所指字符串中指定字符的个数*/ return i; }

第十套

1.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)x (2)p (3)s

2.下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。 例如,若输入252,则输出应该是20。若输入202,则输出应该是0。 请改正程序中的错误,使它能得出正确的结果。 (1)long k=1; (2)num /=10;

3.编写函数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

第十一套

1.下列给定程序中,函数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]或*(a+p+i)

2.下列给定程序中函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。

例如,若输入的数为:55 12 34,输出的结果应当是:a=55.0,b=34.0,c=12.0。 请改正程序中的错误,使它能得出正确的结果。 (1)float k;

(2)if(*a< *c)

3.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 int fun (STREC *a, STREC *b) {

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

if(max

for(i=0;i

if(max==a[i].s) b[j++]=a[i]; /*找出成绩与max相等的学生的记录,存入结构体b中*/

return j; /*返回最高成绩的学生人数*/ }

第十二套

1.下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) N (2) k (3) ss[i]

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

3.规定输入的字符串中只包含字母和*号。请编写函数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′; }

第十三套

1.下列给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。

例如,形参s所指字符串为abcdefgh,执行结果为ahcbedgf。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) 1 (2) s[k]或*(s+k) (3) c

2.下列给定程序中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; (2)t=t/10;

3.编写函数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; /*初始化pp数组各元素为0]=′\\0′;tt++) if(*tt>=′a′&&*tt<=′z′) pp[*tt-′a′]++; }

第十四套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)N (2)N-1 (3) 0

2.下列给定程序中函数fun的功能是:从整数1到55之间,查找能被3整除且有一位上的

数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。

请改正程序中的错误,使它能得出正确的结果。 (1)a2=k/10; (2)return i;

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

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。 void fun (char *a) {

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

a--; /*指针a指向字符串的尾部*/ while(*a==′*′)

a--; /*指针a指向最后一个字母*/

*(a+1)=′\\0′; /*在字符串最后加上结束标志符*/ }

第十五套

1.下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)next (2) t->data (3) t

2.下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。

例如,若字符串为abcd,则应输出:dcba。 请改正程序中的错误,使它能得出正确的结果。 (1)void fun(char *a) (2)printf(\,*a) ;

3.编写函数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; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t; }

第十六套

1.下列给定程序中,函数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]

2.下列给定程序中函数fun的功能是:将一个由八进制数字字符组成的字符串转换成与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入77777,则输出32767。

请改正程序中的错误,使它能得出正确结果。 (1)n= *p-′0′;

(2)n=n*8+*p-′0′;

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

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

int i;

STREC str={\,-1}; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1]+)

if(strcmp(a[i].num,b)==0) /*找到指定学号的学生数据*/ str=a[i];

return str; /*返回学生记录*/ }

第十七套

1.下列给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) \ (2) fs (3) ft

2.下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数:8642。 (1)if(d%2==0) (2)s/=10;

3.编写函数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;

}

第十八套

1.下列给定程序中,函数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

2.下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。

例如,若high的值为100,则函数的值为732。 请改正程序中的错误,使程序能输出正确的结果。 (1)while((high>=2) && (n<10)) (2)yes=0; break;

3.编写函数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; }

第十九套

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

名,最后输出修改后的数据。

例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001、\、95、80、88,则修改后输出b中的数据应为:10002、\、95、80、88。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) a (2) b.name (3) score[i]

2.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。 请改正程序中的错误,使它能得出正确的结果。 (1)s[j++]=s[i];或{s[j]=s[i];j++;} (2)s[j]= ′\\0′;

3.规定输入的字符串中只包含字母和*号。请编写函数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==′*′) /*判断*p是否是*号,并统计*号的个数*/ {

n++;p++; }

while(*p) /*将前导*号后的字符传递给a*/ {

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

while(n!=0) {

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

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

第二十套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) *fw (2) str (3) str

2.下列下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531 (1)void fun(long s,long *t) (2)s1=s1]

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

{

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

第二十一套

1下列给定程序中,函数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

2.下列给定程序中函数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 ;

3.编写函数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); /*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/ return sqrt(s); /*对s求平方根并返回*/ }

第二十二套

1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若

没有,函数值为0,若有,函数值为非0。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) N (2) substr (3) 0

2.下列给定程序中函数fun的功能是:求三个数的最小公倍数。

例如,若给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是330。 请改正程序中的错误,使它能得出正确的结果 (1)fun(int x,int y, int z)或int fun(intx,inty,intz) (2)return j;

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

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*G。

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

int i,j=0;

for(i=h;i

a[j]=′\\0′; /*在字符串最后加上结束标识*/ }

第二十三套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)data (2) next (3) head

2.下列给定程序中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为\,t1所指子串中的内容为\,t2所指子串中的内容为\时,在w所指的数组中的内容应为\。 请改正程序中的错误,使它能得出正确的结果。 (1)while( *r) (2)r++;

3函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。

例如,当s所指字符串中的内容为\时,在t所指数组中的内容应是:\。

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

int i,j=0,k=strlen(s); /*k为字符串的长度*/

for(i=1;i

1.程序通过定义学生结构体变量,存储学生的学号、姓名和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

2.下列给定程序中函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。 请改正程序中的错误,使它能得出正确的结果。 (1)char *fun(char (*sq)[M]) (2)return sp;

3.编写函数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; }

第二十五套

1.下列给定程序中,函数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

2.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。

请改正程序中的错误,使它能得出正确的结果。 (1)int fun(int a[],int m)或fun(int a[],intm) (2)else if(m>a[mid])

3.假定输入的字符串中只包含字母和*号。请编写函数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; /*将p以前所有不是*号的字符保留下来*/ for(;*t!=′\\0′;t++)

*(a++)=*t; /*将p以后的所有*号保留下来*/ *a=′\\0′; /*在字符串最后加上字符串结束标识*/ }

第二十六套

1.下列给定程序中,函数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

2.下列给定程序中函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为642。 请改正程序中的错误,使它能得出正确的结果。 (1)void fun(long s,long *t) (2)while(s>0)

3.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 void fun (STREC a[]) {

int i,j; STREC t;

for(i=1;i

for(j=0;j{t=a[j];a[j]=a[j+1];a[j+1]=t;}

/*按分数的高低排列学生的记录,高分在前*/ }

第二十七套

1.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。

例如,若b所指变量t中的学号、姓名和三门课的成绩依次是:10002、\、93、85、87,修改后输出t中的数据应为:10004、\、93、85、87。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) ->sno (2) ->name (3) &t

2.下列给定程序中函数fun的功能是:用递归算法求形参a的平方根。求平方根的迭代公式如下:

例如,a为2时,平方根值为:1.414214。

请改正程序中的错误,使它能得出正确的结果。 (1)double fun(double a,double x0) (2)if(fabs(x1-x0)>=0.00001)

3.学生的记录由学号和成绩组成。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

av=av/N; /*求平均值*/ for(i=0;i

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

/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/ return av; /*返回平均分*/ }

第二十八套

1.下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) q (2) next (3) next

2.下列给定程序中函数fun的功能是:用选择法对数组中的n个元素进行升序排列。 请修改程序中的错误,使它能得出正确的结果。 (1)p=j ; (2)p=i;

3.编写函数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) /*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/

a[j++]=i;

*n=j; /*返回这些数的个数*/ }

第二十九套

1.下列给定程序中,函数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]

2.下列给定程序中函数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);

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

例如,字符串中的内容为:*******A*BC*DEF*G****,删除后字符串中的内容应当是:A*BC*DEF*G****。编写函数时,不得使用C语言提供的字符串函数。 void fun (char *a) {

char *p=a;

while(*p==′*′)

p++; /*指针p指向字符串第一个字母*/ for(;*p!=′\\0′;p++,a++)

*a=*p; /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/ *a=′\\0′; /*在字符串最后加上字符串结束标识*/ }

第三十套

1.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是:从文件中找出指定学号的学生数据,读入此学生数据,对该学生的分数进行修改,使每门课的分数加3分,修改后重写文件中学生的数据,即用该学生的新数据覆盖原数据,其它学生数据指定不变;若找不到,则不做任何操作。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)fp (2) == (3) fp

2.下列给定程序中函数fun的功能是:用插入排序法对字符串中的字符进行升序排列。插入

法的基本算法是:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。

请改正程序中的错误,使它能得出正确的结果。 (1)n=strlen( aa ) ; (2)ch=aa[i];

3.N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:找出学生的最高分,并由函数值返回。 double fun(STREC *h) {

double max=h->s;

while(h!=NULL) /*通过循环找到最高分数*/ { if(maxs) max=h->s; h=h->next; }

return max; }

第三十一套

1.下列给定程序中,函数fun的功能是:计算下式前n项的和,并作为函数值返回。

例如,若主函数从键盘给n输入50后,则输出为S=1.960784。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) double (2) j (3)1.0/t或(double)1/t

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

在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。 请改正程序中的错误,使它能得出正确的结果。 (1)正确:k++ ; (2)正确:if(m==k)

3.请编写函数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;}

}

第三十二套

1.下列给定程序中,函数fun的功能是计算下式 直到 ,并将计算结果作为函数值返回。

例如,若形参e的值为1e-3,函数的返回值为2.985678。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) 0 (2) i++或++i或i+=1或i=i+1 (3)2.0]

2.下列给定程序中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。

例如,当s所指字符串为:\时,t所指字符串中的内容应为:\。 请改正程序中的错误,使它能得出正确的结果。 (1)void fun ( char *s , char *t ) (2)t[2]

3.编写函数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]; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j++; }

t[j]=′\\0′; /*最后加上结束标识符*/ }

第三十三套

1.下列给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为def35adh3kjsdf7,执行后结果为def3]注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构! (1) && (2) 0或′\\0′ (3) s[j]或*(s+j)

2.下列给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。 例如,若m的值为5,则应输出1.463611。 请改正程序中的错误,使它能得出正确的结果。 (1)for(i=2;i<=m;i++)

(2)y+=1.0/(i*i);或y+=(double)1.0/(i*i)

3.编写函数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]; /*把矩阵a加上a的转置,存放在矩阵b中*/ }

第三十四套

1.请补充函数fun,该函数的功能是:把数组aa中的偶数元素按原来的先后顺序放在原数组后面。

例如,若输入\,输出结果为\。 (1) aa[i]%2==0 (2) i

2.下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。 请改正程序中的错误,使它能得出正确的结果。 (1)void fun(int *x, int *y) (2)t=*x; *x=*y; *y=t;

3.请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。 void fun(int *a, int *b) {

int i,j;

for(j=0;j

b[j]=0; /*数组b初始化为0]+) if(a[i]>=100)

b[10]++; /*如果年龄大于等于100,b[10]自增1]+; /*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/ }

第三是五套

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

例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是:10001、\、95、80、88,修改后的数据应为:10002、\、96、81、89。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) struct student (2) a.name (3) a.score[i]

2.假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为x的元素。变量n中存放数列中元素的个数。 请改正程序中的错误,使它能得出正确的结果。 (1)if(p==n) return -1; (2)a[i]=a[i+1];

3.学生记录由学号和成绩组成,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 n; }

第三十六套

1.请补充main函数,该函数的功能是:将字符串str中的字符向前移动一位,原来在第一个位置上的字符移动到字符串尾,结果仍然保存在原字符串中。 例如,输入\?\,则结果输出\?h\。 (1) str[i+1] (2) str[i]=ch 2.下列给定程序中,函数fun实现的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为0的位的个数为3,各位上数字值最大的是8。 请改正函数fun中的错误,使它能得出正确的结果。 (1)if(t==0)

(2)*zero=count;

3.请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。

void fun (char *w,int m) {

int i,j;

char t;

for(i=1;i<=m;i++) /*进行m次的循环左移*/ { t=w[0];

for(j=1;w[j]!=′\\0′;j++) /*从第2个字符开始以后的每个字符都依次前移一个字符*/

w[j-1]=w[j];

w[j-1]=t; /*将第1个字符放到最后一个字符中*/ } }

第三十七套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1)t=i (2) i (3) ′\\0′或0

2.下列给定程序中函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。

例如,程序运行后,输入0.0001,则程序输出3.1414。 请改正程序中的错误,使它能输出正确的结果。 (1)while(fabs(t)>=num) (2)t=s/n;

3.编写函数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中*/ b[k++]=a[i];

b[k]=′\\0′; /*在字符串最后加上结束标识*/ }

第三十八套

1.给定程序的功能是:判断字符ch是否与串str中的某个字符相同,若相同什么也不做,若不同则插在串的最后。

(1) != (2) str[1]或*(str+1) (3) s,c

2.下列给定的程序中,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));

3.编写函数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; /*求出n位整数w的后n-1位的数*/ if(w>=1000) return w00; if(w>=100) return w0; if(w>=10) return w; }

第三十九套

1.函数fun的功能是:从三个形参a、b、c中找出中间的数,并作为函数值返回。 例如,当a=3,b=5,c=4时,中间的数为4。 (1) a (2) a (3) b

2.下列给定程序中,函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。

请改正程序中的错误,使它能得出正确的结果。 (1)for(i=1;i<=y;i++) (2)t=t00;

3.请编写函数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

*n=k; /*通过指针返回元素个数*/ }

第四十套

1.下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串为baacda,c中的字符为a,执行后s所指字符串为baaaacdaa。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) ′\\0′ (2) 0 (3) c

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

3. 编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。 例如:若n的值为11时,函数的值为1.833333 float 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; }

第四十一套

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

例如,若s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) s[i] (2) k (3) '\\0'或0

2.下列给定程序中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为:\,t1所指串中的内容为\,t2所指子串中的内容为\时,结果在w所指的数组中的内容应为\。 请改正程序中的错误,使它能得出正确的结果。 (1)while (*w)

(2)if ( *r == *p )

3.编写函数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′; }

第四十二套

1.请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。

例如,输入\,指定字符为\,则输出\。 1) break;

(2) i++或++i或i+=1或i=i+1 (3) ′\\0′

2.下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第5个字母;若小写字母为v~z,使小写字母的值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f。形参是字母W,则转换为小写字母b。 请改正函数fun中的错误,使它能得出正确的结果。 1)c=c+32; (2)c=c+5;

3.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为: a=1 9 7 2 3 8 4 5 6

则返回主程序后a数组中的值应为: 0 9 7 0 0 8 0 0 0

第四十三套

1.下列给定程序中,函数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

2.下列给定程序中函数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)

3.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。

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

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

int i=0; char *q=a;

while (q

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

while (q

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

q++; }

while (*q) {

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

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

第四十四套

1.下列给定程序中,函数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++

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

例如:当s所指的字符串为\时,t所指的字符串应为\。 请改正程序中的错误,使它能得出正确的结果。 (1)int iv, s1;

(2)t[i]=s[s1-i-1];

3.函数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; }

四十五套

1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符的。ss所指字符串数组中共有N个字符串,且串长小于M。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) [M] (2) N (3) ′\\0′

2.下列给定程序中函数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);

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

例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。

oid fun(char *a,int n ) {

int i=0, k=0;

char *p, *t;

p=t=a; /*开始时,p与t同时指向数组的首地址*/ while(*t==′*′) /*用k来统计前部星号的个数*/ {k++; t++;}

if(k>n) /*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/ { while(*p)

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

a[i]=′\\0′; /*在字符串最后加上结束标识位*/ } }

四十六套

1.下列给定程序中,函数fun的功能是:将自然数1~10及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

请在程序下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

(1) fp (2) fclose(fp) (3) fname 2.

下列给定程序中fun函数功能是:将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。

(1)for(i=j+1;i

3.编写函数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; }

四十七套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

(1) 10 (2) 0 (3) x

2.下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。

请改正程序中的错误,使它能得出正确的结果。 (1)正确:if( n==0)

(2)正确:result *=n--;或{result *=n; n--;}

3.请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\-1234\,则函数把它转换为整数值-1234。

long fun(char *p) {

long n=0; int flag=1;

if(*p==′-′) /*负数时置flag为-1]+;flag= -1;} else if(*p==′+′) /*正数时置flag为1] p++;

while(*p!=′\\0′)

{n=n*10+*p-′0′; /*将字符串转成相应的整数*/ p++; }

return n*flag; }

四十八套

1.下列给定程序中,函数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

2.下列给定程序中函数fun的功能是:计算并输出下列级数的前N项和SN,直到SN+1的值大于q为止,q的值通过形参传入。

例如,若q的值为50.0,则函数值应为49.394948。 请改正程序中的错误,使程序能输出正确的结果。 (1)s=s + (double)(n+1)/n; (2)return t; 3.编写函数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

四十就套

1.下列给定程序中,函数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) int a[] (2) 2 (3) i+1

2.下列程序中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。

例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。

请改正程序的错误,使它能得出正确结果。 (1)sum=0.0;

(2)if((i+1)%5==0)

3.学生的记录由学号和成绩组成,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

av=av/N; /*求平均值*/ for(i=0;i

if(a[i].s

*n=j; /*指针传回低于平均值的学生人数*/ return av; /*返回平均值*/ }

五十套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) NULL (2) n (3) head,ch 2.下列给定程序中函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。

输入字符串时用'#'结束输入。

请改正程序中的错误,使它能输出正确的结果。 1)for(i=0,t=0;p[i];i++) (2)c[t]= ′\\0′; 3.编写函数fun,其功能是:将ss所指字符串中所有奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入\,则应输出\。 void fun(char *ss) {

int i;

for(i=0;ss[i]!=′\\0′;i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/

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

五十一套

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

例如,从主函数输入一个整数27638496,则函数返回值为26846。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) 1 (2) s (3) i*10

2.下列给定程序中函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。

请改正程序中的错误,使它能得出正确的结果。 (1)int fun(int n,int xx[][M]) (2)printf(\,xx[i][j]);

3.编写函数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; }

五十二套

1.下列给定程序中,函数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

2.下列给定程序中函数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)

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

例如,字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应为:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。

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′; } }

五十三套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) *n (2) next (3) head

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

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

请改正程序中的错误,使它能得出正确的结果。 (1)a=NULL; (2)if(*r==*p)

3.函数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) /*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/ t[j++]=s[i];

t[j]=′\\0′ /*在字符串最后加上结束标识*/ }

五十四套

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

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) STYPE (2) FILE (3) fp

2.下列下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。

例如,当s中的字符串为\时,则t中的字符串应为:\。 请改正程序中的错误,使它能得出正确的结果。 (1)for ( i=0; i

3.函数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; }

五十五套

1.程序通过定义学生结构体数组,存储若干名学生的学号、姓名和3门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 (1) struct student (2) n-1 (3) a[i].name,a[j].name

2.下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容应为:eABCDFGH。

请改正程序中的错误,使它能得出正确的结果 (1)q=p+i; (2)while(q>p)

3.学生的记录由学号和成绩组成,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) /*将分数高于l,低于h的学生记录存于结构体数组b中*/

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

return j; /*返回分数范围内的学生人数*/

}

五十六套

1.给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S=πr2,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值:19.527,输出为:s=598.949991。 (1)r*r (2)&x (3)x

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

例如,若输入5,则应输出2.283333。

请改正程序中的错误,使它能计算出正确的结果。 (1)t+=1.0/i; (2)return t;

3.请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。 例如,输入如下整数:

876 675 896 101 301 401 980 431 451 777 则输出结果为6,980。 int fun(int *s,int t,int *k) {

int i;

*k=0; /*k所指的数是数组的下标值*/ for(i=0;i

if(s[*k]

五十七套

1.请补充main函数,该函数的功能是:计算两个自然数n和m(m<10000)之间所有数的和(n和m从键盘输入)。

例如,当n=1,m=100时,sum=5050;当n=100,m=1000时,sum=495550。 (1) sum=0 (2) sum+=n (3) ld

2.下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=5,lower=9。 请改正程序中的错误,使它能计算出正确的结果。 (1)void fun(char *s, int *a, int *b) (2)(*a)++;

(3)正确:(*b)++;

3.请编写函数fun,其功能是:计算并输出当x<0.97时,如下多项式的值,直到|Sn-Sn-1|<0.000001为止。

例如,若主函数从键盘给x输入0.21后,则输出为S=1.100000。 double fun(double x) {

double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; int n=1; do {

s0=s1; sum+=s0; t*=n;

p*=(0.5-n+1)*x; s1=p/t; n++;

}while(fabs(s1-s0)>=1e-6); return sum; }

五十八套

1.从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入函数fun。请补充函数fun,该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数fun返回。

例如,当xx[8]={123,11,25,222,42,333,14,5451}时,bb[4]={25,42,333,5451}。 (1) xx[i] (2) bb[n++]=xx[i] (3) n

2.下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。 请改正程序中的错误,使它能得出正确的结果。 (1)if((k==0)||(k==0)) (2)加 }

3.编写函数fun,它的功能是:根据以下公式求p的值,结果作为函数值返回。m与n为两个正数且要求m>n。 p=m!/(n!(m-n)!)

例如,m=12,n=8时,运行结果为 495.000000。 float fun (int m, int n) {

int i;

double p=1.0;

for(i=1;i<=m;i++) p=p*i; /*求m!*/ for(i=1;i<=n;i++) p=p/i; /求m!/n!*/ for(i=1;i<=m-n;i++) p=p/i;

/*求m!/(n!(m-n)!)*/ return p; }

五十九套

1.请补充函数fun,该函数的功能是:把ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入函数fun。 例如,输入\,输出\。 (1) void fun(char s[],int n) (2) j=0 (3) s[j]=′\\0′

2。下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值: t=1-1/(2×2)-1/(3×3)-…-1/(m×m)

请改正函数fun()中的错误,使它能得出正确的结果。 (1)for(i=2;i<=m; i++) (2)y-=1.0/(i*i);

3.请编写函数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

if(i==0||i==M-1||j==0||j==N-1)

/*只要下标中有一个为0或M-1或N-1,则它一定是周边元素*/ sum=sum+a[i][j]; /*将周边元素相加*/ return sum; }

六十套

1.请补充函数fun,该函数的功能是:判断某一个年份是否为闰年。 例如,1900年不是闰年,2004是闰年。 (1) n0!=0或n0 (2) n@0==0 (3) flag

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

请改正程序中的错误,使它能得出正确的结果。 (1)void fun(int *a, int n) (2)m=i;

3.请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出\,否则返回0,主函数中输出\。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 nt fun(char *str) {

int i,n=0,fg=1; char *p=str; while (*p) /*将指针p置位到字符串末尾,并统计字符数*/ {

n++; p++; }

for(i=0;i

if(str[i]==str[n-1-i]) ; /*相同,什么都不作*/ else /*不同,直接跳出循环*/ {

fg=0; break; }

return fg; }

六十一套

1.给定程序的功能是:计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,并返回人数。

例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。

(1) score[i]或*(score+i)

(2) below (3) below[i]或*(below+i)

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

3.编写函数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++) /*求出小于或等于lim的全部素数*/ { for(j=2;j=i)

aa[k++]=i; /*将求出的素数放入数组aa中*/ }

return k; /*返回所求出的素数的个数*/ }

六十二套

1.函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、c3返回主函数。

例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。 (1) n (2) break (3) break

2.下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a=65 b=60 (1)void fun(int *a,int *b) (2)t=*b;*b=*a;*a=t;

3.请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。

例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。 void fun(char *s) {

char ch; int i,m,n; i=0;

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

ch=s[i]; s[i]=s[m]; s[m]=ch; i++; m--; }

六十三套

1.请补充函数fun,该函数的功能是:整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。

(1)i=1 (2)k%i==0&&i%2==0 (3) --j或j-1

2.下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。 (1)r=t;

(2)应填:r=t;或r=&t[0];

3.编写函数fun,它的功能是:求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

例如,n为1000时,函数值应为s=96.979379。 double fun(int n) { double s=0.0; int i;

for(i=0; i

if(i%5==0&&i==0) s=s+i;

s=sqrt(s); /*对s求平方根*/ return s; 六十四套

1.请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。

例如,当str1=\,然后输入4,则str2=\。 (1) \,&n (2) str2[i]=str1[i]; (3) str2

2.下列给定程序中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请改正函数fun中的错误,使它能得出正确的结果。 (1)void fun(int m, int k) (2)aa[i]=m%k;

(3)printf(\, aa[i-1]);

3.编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 char* fun(char (*a)[81], int num, char *max) {

int i=0; max=a[0];

for(i=0;i

1.请补充main函数。该函数的功能是:求1~100(不包括100)以内所有素数的平均值。 程序运行后的结果为42.40。

(1) j%i==0 (2) flag==1 (3) aver/n

2.下列给定程序中,函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。

注意:字符串的长度最长允许为79。

请改正函数fun中的错误,使它能得出正确的结果。 (1)p=s;

(2)应填p++;或++p;或p+=1;或p=p+1;

(3)a[i]= ′\\0′;或a[i]=0;

3.编写一个函数,该函数可以统计一个长度为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++) /*如果一个长度为2的子字符串在主字符串中出现一次,则j+1,如此循环*/

if(str[i]==substr[0]&&str[i+1]==substr[1]) j++; return j; 六十六套

1.请补充函数fun,该函数的功能是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入\you come from Sichuan?\,则输出\you come from sichuan?\。

(1) tt[i]<= ′Z′ (2) tt[i]+=32 (3) tt

2.下列给定程序中,函数fun的功能是:计算n的5次方的值(规定n的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是1 6807,其低3位数的和值是15。 请改正函数fun中的错误,使它能得出正确的结果。 (1)d=1; (2)s=0; (3)d=d/10

3.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码值升序排列。

例如,原来的字符串为Bdsihad,则排序后输出为Badhisd。

请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码值升序排列。

例如,原来的字符串为Bdsihad,则排序后输出为Badhisd。 六十七套

1.请补充main函数,该函数的功能是:求n!。 例如,7!=5040。

(1) &n (2) i=1或i=2 (3) f*=i

2。下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。

请改正函数fun中的错误,使它能得出正确的结果。 (1)while (p!=NULL) (2)p=p->next;

3.请编写函数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; /*按公式求出s*/ }

return s; 六十八套

1. 程序的功能是计算 。 (1) 1 (2) s*i或i*s (3) 0 (4) s+fun(k)

2.数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。符合此条件的累加值应为42,126,366,570,1010。 (1)int i,j=0,k,sum; (2)if(sum%4==2) (3)return j++;

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

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

int s=0,i;

for(i=2;i<=n-1;i++) /*将n减1累加*/ if(n%i==0) s+=i; return s; }

六十九套

1.给定程序的功能是:计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。

例如,若q的值为50.0,则函数值为50.416687 (1)<= (2)n++或n+=1或n=n+1 (3)return s 或 return(s)

2.下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。 (1){

3.请编写函数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

七十套

1.请补充main函数,该函数的功能是:求1+2!+3!+…+N!的和。 例如,1+2!+3!+…+5!+6!的和为873。 (1) &n (2) t*i (3) s+t

2.下列给定程序中,函数fun的功能是:求S的值。设

S=(22/(1*3))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2k-1)*(2k+1)) 例如,当k为10时,函数的值应为1.533852。 (1)double fun(int k) (2)return s ;

3.请编写函数fun,它的功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。

例如,若主函数从键盘给n输入20后,则输出为s= 0.583333。 double fun(int n) {

int i;

double sum=0.0;

for(i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i; return sum; }

七十一套

1.请在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输出n对应的斐波那契数列。斐波那契数列是一整数数列,该数列自第三项开始,每数等于前面两数之和,即0,1,1,2,3,5,8,13,21,34,55,… (1) n==0 (2) n==1 (3) fun(n-1)+fun(n-2)

2.下列给定程序中,函数fun的功能是:找出100到n(不大于1000)之间三个位上的数字都相等的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。 (1)k=i;

(2)b=k;

3.程序定义了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

七十二套

1.请补充函数fun,该函数的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖。注意:字符串的长度最长允许为79。

(1) s (2) *p++ (3) *(p)或*p或*p!=0

2.下列给定程序中,函数fun的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。

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

3.请编写函数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

*n=j; /*传回满足条件的数的个数*/ }

七十三套

1.请补充函数fun,该函数的功能是:判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回\!\,否则返回\!\。 (1) n/100 (2) \!\ (3) \!\

2.下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。 t=1/2-1/3-…-1/m

例如,若输入5,则应输出-0.283333。

(1)t-=1.0/i; (2)return t;

3.请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。 例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。 double fun(int n) {

int m,k,i; double s=0.0;

for(m=3;m<=n;m++) {

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0) break; if(i>=k+1)

s+=sqrt(m); }

return s; }

七十四套

1.请补充函数fun,该函数的功能是:依此取出字符串中所有的小写字母以形成新的字符串,并取代原字符串。 (1) *p

(2) i++或++i或i+=1或i=i+1 (3) ′\\0′

2.下列给定程序中,函数fun的功能是:计算整数n的阶乘。 (1)result*=n--; (2)return result;

3.请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。 nt fun(char *s) {

int i,j=0;

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

if(s[i]!=′′ &&(s[i+1]==′ ′||s[i+1]==′\\0′)) /*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/ j++;

return j; /*返回单词个数*/ 七十五套

1.请补充函数fun,该函数的功能是:判断一个数是否为素数。该数是素数时,函数返回字符串\!\,否则函数返回字符串\!\,并在主函数中输出。 (1) char *fun(int n) (2) 2 (3) n%i==0或!(n%i)

2.下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素

的值,然后输出主对角线元素之和。 (1)sum=0;

(2)scanf(\,&a[i][j]);

3.请编写函数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。 3int fun(int a[], int n) {

int i,j=1;

for(i=1;i

if(a[j-1]!=a[i]) /*若该数与前一个数不相同,则要保留*/ a[j++]=a[i];

return j; /*返回不同数的个数*/ }

七十六套

1.给定程序的功能是:将n个人员的考试成绩进行分段统计,考试成绩存到数组a中,各分段的人数存到数组b中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[l]中,成绩为80到89的人数存到b[2]中,成绩为90到99的人数存到b[3]中,成绩为100的人数存到b[4]中,成绩为60分以下的人数存到b[5]中。

例如,当数组a中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,数组b中存放的数据应是:l、2、l、3、0、2。 (1) n (2) else (3) a,b

2.下列给定函数中,函数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)

3.请编写函数fun,该函数的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、…,都应当删除,其他依此类推,最后t所指的数组中的内容应是

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

int i=0;

for(;*s!=′\\0′;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if(*s%2==1) t[i++]=*s;

t[i]=′\\0′; /*在字符串的末尾加上串结束符*/ }

七十七套

1.str为一个字符序列。请补充函数fun,该函数的功能是:查找str中值为x的元素,返回该字符序列中值为x的元素个数,并把这些值为x的元素下标依此保存在数组bb中。例如,在\中查找'a',结果为:2个\,下标依此为0、6。 (1) *p==t (2) bb[n++]=i (3) n

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

3.请编写函数fun,其功能是:计算并输出下列多项式的值。 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

例如,若主函数从键盘给n输入50后,则输出为S=1.960784。 double fun(int n) {

int i;

double s=0.0,s1=0.0; for(i=1;i<=n;i++)

{ s1=s1+i; /*求每一项的分母*/

s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ }

return s; }

七十八套

1.请补充函数fun,该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。

例如,str1=\,str2=\?\,结果输出:How do you do? (1) *(p1+i) (2) *p2 (3) *p2++ 2.下列给定程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依此存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 请改正函数fun中的错误,使它能得出正确的结果。 if((i+1)%5==0)

3.请编写函数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

for(i=0;i

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

*n=*n+1; /*通过指针返回元素个数*/ }

七十九套

1.请补充函数fun,该函数的功能是:返回字符数组中指定字符的个数,指定字符从键盘输入。

(1) s[i]或者s[i]!= ′\\0′ (2) s[i]==ch (3) return n

2.下列给定程序中,函数fun的功能是根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3,若是等腰三角形,则返回2,若能构成三角形则返回1,若不能,则返回0。

(1)return 3; (2)return 1;

3.请编写一个函数,用来删除字符串中的所有空格。 例如,输入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′; /*加上结束符*/ }

八十套

1.请补充函数fun,该函数的功能是:先将在字符串s中的字符按逆序存放到字符串t中,然后把s中的字符按正序连接到t串的后面。

例如,s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。 (1) s1-i-1或s1-1-i (2) 2*s1或s1*2 2.下列给定程序的功能是:读入一个整数k(2≤k≤10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、 (1)IsPrime(int n) (2)if(!(n%i))

3.请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19,23,29,31,37。 void fun(int m, int k, int xx[]) {

int i,j,n;

for(i=m+1,n=0;n

{for(j=2;j

if(i%j==0) break;

if(j>=i) /*如果是素数,放入数组xx中*/ xx[n++]=i; }

八十一套

1.请补充函数fun,该函数的功能是:求出数组的最大元素在数组中的下标,并存放在k所指的存储单元中。

例如,输入如下整数:876 675 896 101 301 401 980 431 45l 777,则输出结果为:6,980。 (1) *k (2) s[i]>max (3) i

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

3.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入abc4Efg,则应输出aBc4EFg。 void fun(char *ss) {

int i;

for(i=0;ss[i]!=′\\0′;i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/

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

1.请补充main函数,该函数的功能是:如果数组aa的前一个元素比后一个元素小,则把它保存在数组bb中并输出。

例如,输入\,则结果输出\。 (1) N-1 (2) bb[n++]=aa[i] (3) i,bb[i]

2. 下列给定程序中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,构成一个新数放在t中,例如,当s中的数为7654321时,t中的数为7531。 (1)void fun(long s,long *t) (2)s1=s1]

3.下列程序定义了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

本文来源:https://www.bwwdw.com/article/7dvw.html

Top