2013计算机二级C试题(105套全)

更新时间:2024-07-05 22:52:02 阅读量: 综合文库 文档下载

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

一:1.下列给定程序中,函数fun的功能是:计算如下公式

2??n1??357n?1s?2?2?2?…-1??22462?n???2?n?1?22?n??直到

?10?3,并且把计算结果作为函数

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

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

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

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

(1)3.0或(double)3 (2)> (3)(t+1)

(1)double fun(int n) (2)s=s+(double)a/b; 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。

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

3.编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

2?n?1(?2?n?1)??1?33?55?7s?2?2?2??…22462?n???112?123??1234?????1????……?2335?357??3579???12??…?n35??…?2n?1?? 程序运行后,若

输入精度0.0005,则程序应输出为3.14…。

(1)0 (2)n (3)(t*t)

(1)for(i=0;str[i];i++) (2)if(substr[k+1]=='\\0') double fun (double eps){ double s=1.0,s1=1.0; int n=1;

while(s1>=eps) {s1=s1*n/(2*n+1);

s=s+s1; n++;}

return 2*s;}

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

2.下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。 3.编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。 (1)s[i] (2)'9' (3)*t=n

(1)t=*x;*x=y; (2)return(t);或return t; 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;}

四: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。

2.下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。

3.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

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

(1)1 (2)j++ (3)j

(1)t=a;a=b;b=t; (2)return (b);或return b 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';}

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

2.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成

一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为87653142时,t中的数为7531。

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

FirstString-- SecondString 程序输出:

FirstString--SecondString (1)0 10*x (3)n/10

(1)*t=0; (2)if(d%2!=0)或if(d%2==1) 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';}

六: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所指数组中数据的个数。

2.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… 例如,若给n输入7,则该项的斐波拉契数值为13。

3.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。 (1)a[i] (2)a[j] (3)a[j]

(1)去掉switch后的分号 (2)case 1:case 2:return 1; void fun(STRREC *a){ int i;

a->ave=0.0;

for(i=0;i

a-ave=a->ave+a->s[i]; a->ave/=N;}

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

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

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

3.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。

例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。 (1)char (2)ch<='9' (3)'0' (1)b[k]=*p; (2)b[k]=' ';k++; double fun(STREC *h){ double ave=0.0; STREC *p=h->next; while(p!=NULL) {ave=ave+p->s; p=p->next;} return ave/N;}

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

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

例如,若输入\,cD\,则输出\,CD\。

3.编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 (1)M (2)< (3)k

(1)if((tt[i]>='a')&&(tt[i]<='z')) (2)tt[i]-=32; void fun(int m,int *k,int xx[]){ int i,j,n=0; for(i=4;i

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

例如,s所指的字符串为\,执行后结果为\。 2.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。 请改正程序中的错误,使它能得出正确的结果。

3.编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符为1,则输出3。 (1)j++或j+=1或++j或j=j+1 (2)s[i]=t1[i] (3)j (1)for (j=i+1;j<6;j++) (2)*(pstr+i)=*(pstr+j); int fun(char *ss,char c){ int i=0;

for(;*ss!='\\0';ss++)

if(*ss==c) i++;

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

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

3.编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。 (1)x (2)p (3)s

(1)long k=1; (2)num/=10; float fun(float *a,int n){ int i;

float av=0.0; 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。

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

例如,若输入的数为:55 12 34,输出的结果应当是:a=55.0,b=34.0,c=12.0。 3.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 (1)1 (2)i (3)a[p+i]或*(a+p+i) (1)float k; (2)if(*a<*c) int fun(STREC *a,STREC *b){ int i,j=0,max=a[0].s; for(i=0;i

if(max

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

例如,当形参n的值为10时,函数返回:-0.204491。

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

在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。

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

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

(1)1 (2)2*i (3)(-1) (1)k++ (2)if(m==k)

void fun(int a[],int n,int *max,int *d){ int i; *max=a[0]; *d=0;

for(i=0;i三十二:1.下列给定程序中,函数fun的功能是计算下式

2?n?1??135s?2?2?2?…+22462?n???2?n?1?22?n??直到

?10?3,并将计算结果作为函数值返回。

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

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

例如,当s所指字符串为:\时,t所指字符串中的内容应为:\。 3.编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串的内容为:\,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为:\。

(1)0 (2)i++或++i或i+=1或i=i+1 (3)2.0*i

(1)void fun(char *s,char *t) (2)t[2*d]='\\0';或t[2*d]=0;或t[d+i]=0; void fun(char *s,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';}

三十三:1.下列给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为\def35adh3kjsdf7\,执行后结果为\def3*5*adh3*kjsdf7*\

2.下列给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。

1111y?1????……?2?23?34?4m?m 例如,若m的值为5,则应输出1.463611。

编写函数fun,其功能是:实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。

计算结果在main函数中输出。

例如,输入下面的矩阵:其转置矩阵为:

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

程序输出:

26

61014101418

10(1)&& (2)0或'\\0' (3)s[j]或*(s+j)

(1)for(i=2;i<=m;i++) (2)y+=1.0/(i*i)或y+=(double)1.0/(i*i) 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];}

三十四:1.给定程序中,函数fun的功能是将不带头结点的单向链表逆置,即若原链表中从头至尾结点数据域依次为 2,4,6,8,10,逆置后,从头至尾结点数据域依次为10,8,6,4,2。

2.下列给定程序中,函数fun的功能是:将字符串s中位于奇数位置的字符或ASCII码值为偶数的字符依次放入字 符串t中。例如,字符串中的数据为\则输出应当是\。

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 (1)NODE (2)next (3)r

(1)if(i%2||s[i]%2==0或if(i%2!=0||s[i]%2==0) (2)t[j]='\\0';或t[j]=0; void fun(int(*s)[10],int *b,int *n,int mm,int nn){ int i,j;

for(j=0;j

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

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

2.假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为x的元素。变量n中存放数列中元素的个数。

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

例如,当a=45,b=12时,调用该函数后,c=1524。 (1)struct student (2)a.name (3)a.score[i] (1)if(p==n) return -1; (2)a[i]=a[i+1]; void fun(int a,int b,long *c){

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

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

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

3.请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如,若字符串数组中的M个字符串为{\则合并后的字符串内容应该是\

(1)next (2)NULL (3)r (1)r=t; (2)r=t;或r=&t[0]; 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';}

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

例如,形参s所指的字符为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

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

?111?1????…4357

例如,程序运行后,输入0.0001,则程序输出3.1414。

3.编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存指定的下标。

例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。 (1)t=i (2)i (3)'\\0'或0 (1)while(fabs(t)>=num) (2)t=s/n; 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';}

三十八:1.给定程序中,函数fun的功能是将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点 数据域从头至尾的数据为10,4,2,8,6,排序后链表结点数据域从头至尾的数据为2,4,6,8,10。

2.下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(如'Z'转化为 'A','z'转化为'a'),其他字符不变。

3.请编写函数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。 (1)p->next (2)q (3)p->next

(1)while (*s)或while (*s!='\\0') (2)s++; 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

三十九:1.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

2.下列给定程序中,函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

3.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

例如,若二维数组中的数据为

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

则字符串中的内容应是:WSHWSHWSHWSH。 (1)FILE* (2)fp (3)ch (1)s[j++]=s[i]; (2)s[j]='\\0'; void fun(char (*s)[N],char *b){ int i,j,k=0; for(i=0;i

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

例如,若s所指字符串为\baacda\,c中的字符为a,执行后s所指字符串为\baaaacdaa\。 2.在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中函数fun的功能是:计算数组元素中所有值为正数的平均值(不包括0)。

例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。

3.编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。

111s?1????…1?21?2?31?2?3?…n

例如:若n的值为11时,函数的值为1.833333

(1)'\\0' (2)0 (3)c

(1)double sum=0.0; (2)sum/=c; 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;}

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

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

例如,当s所指字符串中的内容为:\,t1所指串中的内容为\,t2所指子串中的内容为\时,结果在w所指的数组中的内容应为\。

3.编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形

成的新串放在t所指数组中。

例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:\。

(1)s[i] (2)k (3)'\\0'或0 (1)while(*w) (2)if(*r==*p) void fun(char *s,char t[]){ int i,j=0,n; n=strlen(s); for(i=0;i

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

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

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

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。

(1)FILE* (2)fclose(fp) (3)fp

(1)t=calloc(m,sizeof(STU)); (2)t[k]=b[j]; int fun(int a[],int n){ int i,j=1;

for(i=1;i

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

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

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

x?4x?3x?60?2.下列给定程序中函数fun和funx的功能是:用二分法求方程2的

一个根,并要求绝对误差不超过0.001。

例如,若给m输入-100,n输入90,则函数求得的一个根为2.000。

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

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

(1)sum=0 (2)t[i][i] (3)1

(1)double r; (2)while(fabs(n-m)>0.001) 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++;} a[i]='\\0';}

四十四:1.下列给定程序中,函数fun的功能是:找出100到x(x≤999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。

例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。

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

例如:当s所指的字符串为\时,t所指的字符串应为\。

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

例如,当a=45,b=12,调用该函数后c=1425。 (1)0 (2)x (3)t++

(1)int i,s1; (2)t[i]=s[s1-i-1]; void fun(int a,int b,long *c){

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

四十五:1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有

32串长超过k的字符串中后面的字符删除,只保留前面的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。

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+……

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

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

(1)[M] (2)N (3)'\\0' (1)T=1.0; (2)return(s*2); void fun(char *a,int n){ int i=0; int 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';} }

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

2.下列给定程序中fun函数功能是:将n个无序整数从小到大排序。

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

例如,当a=45,b=12时,调用该函数后c=2514。 (1)fp (2)fclose(fp) (3)fname (1)for(i=j+1;i

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

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

例如,若输入一个数27638496,则新数为739。

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

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

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

(1)if(n==0) (2)result *=n--;或{result *=n;n--;} long fun(char *p){ long n=0; int flag=1; if(*p=='-') {p++;flag=-1;} else if(*p=='+') 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

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

234N?1S????…?N123N

例如,若q的值为50.0,则函数值应为49.394948。

3.编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为:

F(0)=0,F(1)=1

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

例如,当t=1000时,函数值为1597。 (1)N (2)N-1 (3)0

(1)s=s+(double)(n+1)/n (2)return t; int fun(int t){ int f0=0,f1=1,f;

do{

f=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所指数组中数据的个数。

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

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

3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 (1)a[] (2)2 (3)i+1

(1)sum=0.0; (2)if((i+1)%5==0)

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

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

2.下列给定程序中函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。

输入字符串时用'#'结束输入。 3.编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入\,则应输出\。 (1)NULL (2)n (3)head,ch

for(j=1;j

六十二:1.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长小于N。

2.下列给定程序中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

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

例如,字符串中原有的字符串为\,则调用该函数后,串中的内容为\。 (1)i+1 (2)k=j (3)t

(1)void fun(char *str,char ch) (2)if(*str!=ch) (3)str[1]=0; 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的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长小于N。

2.下列给定程序中,函数fun的功能是:计算整数n的阶乘。

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

例如,若程序执行时输入字符串为 \++\

从键盘上输入字符n,则输出为 \++\

如果输入的字符在字符串中不存在,则字符串照原样输出。 (1)k (2)len (3)ss[i][j]

(1)result*=n--; (2)return result; int i=0; char *p; p=s;

while (*p) {if(*p!=c) {s[i]=*p; i++;} p++;}

S[i]='\\0';

六十四:1.给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长小于N。

2.下列给定的程序中,fun函数的功能是:将p所指的字符串中每个单词的最后一个字母改成大写(这里的\单词\是指有空格隔开的字符串)。

例如,若输入:\, 则应输出:\。

3.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为\,排序后输出为\。 (1)ss[i] (2)n+j (3)1

(1)if(*p=='') (2)*(p-1)=toupper(*(p-1)); char ch; int i,j;

for(i=1;i<6;i++) for(j=i+1;j<6;j++) {if(*(s+i)<*(s+j) {ch=*(s+j); *(s+j)=*(s+i); *(s+i)=ch;} }

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

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

例如,若输入5,则应输出2.283333。 3.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 例如,假定输入的字符串为\,子字符串为\,则应当输出6。

(1)[N] (2)len (3)*n=len (1)t+=1.0/i; (2)return t; 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;

六十六:1.函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则转换成对应的小写英文字母;若是其他字符则保持不变;并转换后的结果作为函数值返回。

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

4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4

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

例如,若主函数从键盘给n输入的值为856,则输出为sum=763。 (1)&& (2)'A' (3)ch

(1)void fun(int *a) (2)a[j]=a[j-1]; int s=0,i;

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

六十七:1.函数fun的功能是:计算

234n?1nxxxxn?2xn?1f(x)1??x??????(-1)?(-1)2!3!4!(n?1)!n!

的前n项之和。若x=2.5,n=15时,函数值为1.917914。

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

3.请编写函数fun,其功能是计算并输出如下多项式的值。 Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!

例如,若主函数从键盘给n输入15,则输出为S=2.718282。 (1)1.0 (2)-1 (3)t

(1)for(i=1;i<=3;i++) (2)if(k>=0&&k<=6) double t,sun=1.0; int i,j;

for(i=1;i<=n;i++) {t=1.0;

for(j=1;i<=i;j++) t*=j;

sn+=1.0/t;} return sn;

六十八:1. 函数fun的功能是:计算

234n?1nxxxxn?2xn?1f(x)1??x??????(-1)?(-1)2!3!4!(n?1)!n! 直到

xn?10n!?6。

若x=2.5,函数值为1.917915。

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

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

0.5(0.5?1)0.5(0.5?1)(0.5?2).5(0.5?1)(0.5?2)?(0.5?n?1)230nS?1?0.5x?x?x???xn2!3!n!

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

(1)x (2)n (3)fabs(t)

(1)for(i=1;i<=y;i++) (2)t=t00; 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;

2nxxf(x)?1?x????2!n!的前n项。若x=2.5,函数六十九:1. 函数fun的功能是:计算

值为12.182340。

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

3.请编写函数fun,其功能是:计算并输出给定10个数的方差。

20.5S?[((XX'))/10]?x?x?110

其中:

X'?(?Xx)/10x?110

例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S=11.730729。

(1)1.0 (2)1 (3)i (1)k=i; (2)b=k; double x1=0.0,s=0.0;

int i;

for(i=0;i<10;i++) x1=x1+x[i]; x1=x1/10;

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

s=s+(x[i]-x1)*(x[i]-x1); return sqrt(s/10);

xxf(x)?1?x????2!n!直到七十:1.函数fun的功能是:计算

2nxn<106。若x=2.5,

函数值为12.182494。

2.下列给定程序中,函数fun的功能是:计算n的5次方的值(规定n的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16 807,其后3位数的和值是15。

3.请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。

例如,若给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,则输出应为S=35.951014。

(1)x (2)n (3)t

(1)d=1; (2)s=0; (3)d=d/10; double fun(double x[9]){ double sum=0.0; int i,j=1;

for(i=0;i<9;i++) if(j<=8)

{sum+=sqrt((x[i]+x[i+1])/2.0);j+-+;} return sum;}

七十一:1.函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。

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。

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

例如,若主函数从键盘给n输入8后,则输出为S=0.662872。 (1)j=2 (2)i (3)j

(1)int i,j=0,k,sum; (2)if(sum%4==2) int i;

double s=0.0;

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

Top