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

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

40: 40题请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m1到最后的字符移到字符串的前部。
答案:

void fun(char *w,int m)
{
char b[N];
int I,j=0;
for(i=0;i
m;i++)
{
b[j]=w[i];
j++;
}
for (i=0;i
strlen(w)-m;i++)
w[i]=w[i+m];
for(j=0;j
m;j++)
{
w[i]=b[j];
i++;
}
w[i]=‘\0’;
}



41:
41题 请编写函数fun,该函数的功能是:将mn列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
答案:

void fun(char (*s)[n],char *b)
{int i,j,k=0;
for(j=0;j
n;j++)
for(i=0;i
m;i++)
{b[k]=*(*(s+i)+j)
k++;}
b[k]=‘\0’;}



42:
42题 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m
答案:

void fun(int a[][n],int m)
{int i,j;
for(j=0;j
n;j++)
for(i=0;i
=j;i++)
a[j]=a[j]*m;}


43:
43题 编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(****作为结束输入的标志)
答案:

char *fun(char (*a)[81],int num)
{int i;
char *max;
max=a[0];
for(i=0;i
num;i++)
if(strlen(max)
strlen(a))
max=a;
return max;}



44:
44题 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
答案:

int fun(char *str,char *substr)
{int n;
char *p,*r;
n=0;
while(*str)
{p=str;
r=substr;
while(*r)
if(*r==*p)
{r++;
p++;}
else
break;
if(*r==‘\0’)
n++;
str++;}
return n;}



45:
45题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n 给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用c语言给提供得字符串函数。
答案:

void fun(char *a,int n,int h,int e)
{int i=0;
char *p;
for(p=a+h;p
a+n-e;p++)
{*(a+i)=*p;
i++;}
*(a+i)=‘\0’;}



46:
46题 学生得记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。
答案:

void fun(strec a[])
{int i,j;
strec t;
for(i=0;i
n-1;i++)
for(j=i;s
n;j++)
if(a.s
a[j].s)
{t=a;
a=a[j];
a[j]=t; }}



47:
47题 请编写一个函数void fun(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)
答案:

void fun(char *ss)
{int i,n=0;
char *p=ss;
while(*p)
{n++;
p++;}
for (i=0;i
n;i++)
if ((ss=‘a’&ss
=‘z’)&i%2!=0)
ss=ss-32;
ss=‘\0’;}



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

void fun(int a,int b,long *c)
{*c=(a/10)*1000+(b/10)*100+(a)*10+b;}



49:
49题 请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。
答案:

void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i
n;i++)
if(i%2==0&s%2!=0)
else

{f[j]=s;
j++;}
t[j]=‘\0’;}

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