首页>计算机等级考试>模拟试题>正文
全国计算机等级考试C语言南开100题(三)附答案

www.zige365.com 2010-7-20 17:30:03 点击:发送给好友 和学友门交流一下 收藏到我的会员中心


21:
21题 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。
答案:

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。回文是指顺读和倒读都是一样的字符串。
答案:

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



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;
n++;
}
pi=pi*2;
return pi;
}



27:
27题 请编写一个函数fun,它的功能是:求除1m之内(m)能北711整除的所有整数放在数组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%11 ==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;
}
}



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

我要投稿 新闻来源: 编辑: 作者:
相关新闻
全国计算机等级考试C语言南开100题(二)附答案
全国计算机等级考试C语言南开100题(一)附答案