设为首页 加入收藏

TOP

C语言编程笔试题(第二十三套)
2014-11-24 01:23:02 来源: 作者: 【 】 浏览:6
Tags:语言编程 试题 第二十三

编程题:


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


例如,若学生的成绩是85,76,69,85,91,72,64,87;则平均分应当是78.625。


注意:部分源程序给出如下。


请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。


#include


#include


#define N 8



struct slist


{


double s;


struct slist *next;


};



typedef struct slist STREC;



double fun ( STREC *h )


{


}


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 ( ” head ” );


do


{


printf ( “->%4.1f”, p->s );


p=p->next;


}


while ( p!=0 );


printf ( “\n\n” );


}



main ()


{


double s[N]={85, 76, 69, 85, 91, 72, 64, 87}, ave;


STREC *h;


h=creat ( s );


outlist (h);


ave=fun ( h );


printf ( “ave= %6.3f\n”, ave );


}



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


例如,当a=45,b=12,调用该函数后,c=4251。


注意:部分源程序给出如下。


请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。


#include


#include



void fun (int a, int b, long *c)


{


}



main ()


{


int a, b;


long c;


clrscr ();


printf (“Input a, b:”);


scanf (“%d%d”, &a, &b);


fun ( a, b, &c );


printf (“The result is: %ld\n”, c);


}



改错题:


46.已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项之和。下列给定程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序输出结果应为23.197745。


请改正程序中的错误,使它能得出正确的结果。


注意:不要改动main函敛,不得增行或删行;也不得更改程序的结构!


试题程序:


#include


#include


#include


/********found********/


fun(int n)


{


double sum, s0, s1, s2, s;


int k;


sum=1.0;


if (n <= 2)


sum = 0.0;


s0 = 0.0;


s1 = 0.0;


s2 = 1.0;


for (k = 4; k <= n; k++)


{


s = s0 + s1 + s2;


sum += sqrt(s);


s0 = s1;


s1 = s2;


s2 = s;


}


/********found********/


return sum


}


main ( )


{


int n;


clrscr( );


printf(“Input N=”);


scanf(“%d”,&n);


printf(“%f\n”,fun(n));


}




47.下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。


请改正程序中的错误,使它能得出正确的结果。


注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


试题程序:


#include


#include


#define N 20



/********found********/


int fun ( int *a, int n )


{


int i, m, t, k ;


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


{


/********found********/


m=0;


for(k=i;k

if(a[k]>a[m])


m=k;


t=a[i];


a[i]=a[m];


a[m]=t;


}


}


main( )


{


int x, b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i;


clrscr( );


for ( i=0; i

printf(“%d “, b[i]);


printf(“\n”);


fun ( b, n );


for ( i=0; i

printf(“%d “, b[i]);


printf(“\n”);


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言编程笔试题(第二十二套) 下一篇C语言编程笔试题(第二十四套)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: