全国计算机二级C上机 编程题(3)

2019-03-29 14:34

}

main( )

{ int limit,i,sum;int aa[MAX];

printf(\ scanf(\ sum=fun(limit,aa); for(i=0; i

printf(\

21.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,若原来的字符串为CEAedca,则排序后输出为CedcEAa。

?????????????????????????????????????????????????????????????

/*该题采用的排序法是选择法进行降序排序,算法是用外for()循环从字符串的前端往后端走动,每走动一个字符都用内嵌的for()循环在该字符后找出最小的字符与该字符进行换位。直到外for()循环走到最后一个字符。此外,此题还要注意把首尾字符除开,即在最外层for()循环中从1开始,只到num-2即可。*/ #include #include #include int fun(char *s,int num) { int i,j,t;

for(i=1;i

for(j=i+1;j

{ t=s[i];s[i]=s[j];s[j]=t;} }

main( )

{ char s[10];

printf(\输入7个字符的字符串:\ gets(s); fun(s,7);

printf(\

22.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 #include #include #define N 8 struct slist { double s;

struct slist *next;};

typedef struct slist STREC; double fun( STREC *h )

-11-

{ double max ; int i ; max=h->s; for(i=0 ; i

if((h+i)->s>max) max=(h+i)->s; return max; }

STREC * creat( double *s)

{ STREC *h,*p,*q; int i=0;

h=p=(STREC*)malloc(sizeof(STREC));p->s=0; while(i

{ q=(STREC*)malloc(sizeof(STREC)); q->s=s[i]; i++; p->next=q; p=q;} p->next=0; return h;}

outlist( STREC *h) { STREC *p;

p=h->next; printf(\ do

{ printf(\ printf(\main( )

{ double s[N]={85,76,69,85,91,72,64,87}, max; STREC *h; h=creat(s); outlist(h); max=fun( h );

printf(\

23.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出N0。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 #include #define N 80 int fun(char *str) {int i,n=0,fg=1; char *p=str;

while (*p) {n++; p++;} for (i=0;i

if (str[i]==str[n-1-i]); else {fg=0;break;} return fg; }

main( )

{ char s[N] ;

-12-

printf(\ printf(\

if(fun(s)) printf(\ YES\\n\ else printf(\ NO\\n\}

24.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。 #include #include 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

if(p[0]=='-') return -s; else return s; }

main( )

{ char s[6];long n;

printf(\ gets(s); n=fun(s);

printf(\

25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入:beijing shanghai(为回车键),函数将返回shanghai。 #include

char *fun ( char *s, char *t) { char *ss=s, *tt=t;

while((*ss)&&(*tt)) { ss++; tt++; } if(*tt) return(t); else return(s); }

main( )

{ char a[20],b[10],*p,*q; int i;

printf(\ gets( a);

printf(\ gets( b);

-13-

printf(\

26.请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度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…。 #include #include

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

main( )

{ double x;

printf(\

scanf(\ }

27.请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传送给m的值为50,则程序输出:7 11 14 21 22 28 33 35 42 44 49 #include #include #define M 100

void fun ( int m, int *a , int *n ) { int i,k; *n=0;

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

main( )

{ int aa[M], n, k; fun ( 50, aa, &n ); for ( k=0; k

if((k+1) ==0) printf(\ else printf( \

-14-

printf(\

28.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 #include #include

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

*max=a[0]; *d=0;

for(i=0;i*max) {*max=a[i]; *d=i;} }

main( )

{int i, x[20], max , index, n=10;

for (i=0;i

fun( x, n , &max, &index);

printf(\ Index =M\\n\ }

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

例如,若输入abc4Efg,则应输出aBc4EFg。 #include #include #include void fun(char *ss) { int i;

for(i=0;ss[i]!='\\0';i++)

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

main( )

{ FILE *wf;

char tt[81],s[10]=\

printf(\ gets(tt);

printf(\ fun(tt);

printf(\ wf=fopen(\

-15-


全国计算机二级C上机 编程题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:社会资本与永续社区发展 概念探讨与研究议题

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

马上注册会员

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