2010二级C语言南开100题(3)

2019-02-20 21:06

序排列。 答案:

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

for(i=1;i<num-2;i++) for(j=i+1;j<num-1;j++) if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } }

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

double fun(STREC *h) {

double max; STREC *q=h; max=h->s; do {

if(q->s>max) max=q->s; q=q->next; }

while(q!=0); return max; }

23: 第23题 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。 答案:

11

int fun(char *str) {

int I,n=0;fg=1; char *p=str; while (*p) { n++; p++; }

for(i=0;i<n/2;i++) if (str[i]==str[n-1-i]); else { fg=0; break; }

return fg; }

24: 第24题 请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。 答案:

long fun (char *p) {

long s=0,t;

int i=0,j,n=strlen(p),k,s1; if(p[0]==‘-’) i++;

for(j=I;j<=n-1;j++) {

t=p[j]-‘0’; s1=10;

for(k=j;k<n-1;k++) t*=s1; s+=t; }

if(p[0]==‘-’) return –s; else return s; }

12

25: 第25题 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 答案:

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

char *p,*t1=t,*s1=s; int n=0;m=0; while (*s1) { n++; s1++; }

while(*t1) { m++; t1++; } if(n>=m) p=s; else p=t; return p; }

26: 第26题 请编写一个函数fun,它的功能是:根据以下公式求x的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):

x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为3.14…。 答案:

double fun(double eps) {

double s; float n,t,pi;

t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) { pi+=s; t=n/(2*n+1); s*=t;

13

n++; } pi=pi*2; return pi; }

27: 第27题 请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 答案:

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

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

28: 第28题 请编写一个函数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<n;i++) if(a[i]>*max) {

*max=a[i]; *d=I; } }

14

29: 第29题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 答案:

void fun(char *ss) { int I,n; n=strlen(ss); for(i=1;i<n;i+=2)

if(ss[i]>=‘a’&& ss[i]<=‘z’) ss[i]=ss[i]-32; }

30: 第30题 请编写一个函数fun,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。 答案:

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

int I,j,max; max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<M;j++) if(a[i][j]>max) max=a[i][j]; return max; }

31: 第31题 请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。 答案:

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

int I,j=0,n; n=strlen(s); for(i=0;I,n;i++) if(i%2==0&&s[i]%2==0) {

15


2010二级C语言南开100题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新2016--2017学年度人教版小学六年级下册第四单元测试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: