栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > C++面试题库

C语言编程笔试题(第二十三套)

C语言编程笔试题(第二十三套)

编程题:

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

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

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

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

#include  <stdio.h>

#include  <stdlib.h>

#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<N )

{

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

}

 

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.3fn”, ave );

}

 

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

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

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

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

#include  <conio.h>

#include  <stdio.h>

 

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:  %ldn”,  c);

}

 

改错题:

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

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

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

试题程序:

#include <conio.h>

#include <stdio.h>

#include <math.h>

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;

}

return sum

}

main ( )

{

int n;

clrscr( );

printf(“Input N=”);

scanf(“%d”,&n);

printf(“%fn”,fun(n));

}

 

 

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

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

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

试题程序:

#include <conio.h>

#include <stdio.h>

#define N 20

 

int fun ( int *a, int n )

{

int i, m, t, k ;

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

{

m=0;

for(k=i;k<n;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<n; i++ )

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

printf(“n”);

fun ( b, n );

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

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

printf(“n”);

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/265396.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号