熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> C編程 >> 正文

C語言編程筆試題(第十六套)

2022-06-13   來源: C編程 

編程題:

.已知學生的記錄由學號和學習成績構成N名學生的數據已存入a結構體數組中請編寫函數fun該函數的功能是找出成績最高的學生記錄通過形參返回主函數(規定只有一個最高分)已給出函數的首部請完成該函數

注意部分源程序給出如下

請勿改動主函數main和其他函數中的任何內容僅在函數fun的花括號中填入所編寫的若干語句

#include <stdioh>

#include <stringh>

#include <conioh>

#define? N?

typedef? struct? ss

{

char? num[];

int? s;

} STU;

void? fun(STU a[] STU *s)

{

}

main ( )

{

STU a[N]={ {&#;A&#;}{&#;A&#;}{&#;A&#;}{&#;A&#;}{&#;A&#;}

{&#;A&#;}{&#;A&#;}{&#;A&#;}{&#;A&#;}{&#;A&#;} } m? ;

int? i;

clrscr();

printf(&#;***** The original data *****\n&#;);

for ( i=; i<N; i++ )

printf(&#;N=%s? Mark=%d\n&#; a[i]numa[i]s);

fun ( a &m);

printf(&#;***** THE RESULT*****\n&#;);

printf(&#;The top? :? %s %d\n&#; mnum ms);

}

.學生的記錄由學號和成績組成N名學生的數據已在主函數中放入結構體數組s中請編寫函數fun它的功能是把低於平均分的學生數據放在b所指的數組中低於平均分的學生人數通過形參n傳回平均分通過函數值返回

注意部分源程序給出如下

請勿改動主函數main和其他函數中的任何內容僅在函數fun的花括號中填入所編寫的若干語句

#include? <stdioh>

#define ? N ?

typedef struct

{

char? num[];

double s;

}? STREC;

double? fun ( STREC? *a? STREC? *b? int? *n )

{

}

main()

{

STREC s[N]={{&#;GA&#;} {&#;GA&#;} {&#;GA&#;} {&#;GA&#;}

{&#;GA&#;} {&#;GA&#;} {&#;GA&#;} {&#;GA&#; }};

STREC h[N]; t;FILE *out ;

int? i j n;

double ave;

ave=fun ( s h &n );

printf (&#;The %d student data which is lower than %f:\n&#; n ave );

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

printf (&#;%s %f\n&#; h[i] num h[i] s);

printf (&#;\n&#;);

out=fopen (&#;outdat&#;&#;w&#;);

fprintf (out? &#;%d\n%f\n&#;? n? ave);

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

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

if(h[i]s>h[j]s)

{

t=h[i] ;

h[i]=h[j];

h[j]=t;

}

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

fprintf (out &#;%f\n&#; h[i]s );

fclose (out );

}

改錯題:

.下列給定程序中的函數Creatlink的功能是創建帶頭結點的單向鏈表並為各結點數據域賦到m的值

請改正函數Creatlink中的錯誤使它能得出正確的結果

注意不要改動main函數不得增行或刪行也不得更改程序的結構!

試題程序

#include <stdioh>

#include <conioh>

#include <stdlibh>

typedef struct aa

{

int data;

struct aa *next;

} NODE;

NODE *Creatlink(int n int m)

{

NODE *h=NULL *p *s;

int i;

s=(NODE *)malloc(sizeof(NODE));

h=p;

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

p>next=NULL;

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

{

s=(NODE *)malloc(sizeof(NODE));

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

s>data=rand()%m;

s>next=p>next;

p>next=s;

p=p>next;

}

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

return p;

}

outlink(NODE *h)

{

NODE *p;

p=h>next;

printf(&#;\n\nTHE LIST :\n\n HEAD&#;);

while(p)

{

printf(&#;>%d &#;p>data);

p=p>next;

}

printf(&#;\n&#;);

}

main()

{

NODE *head;

clrscr();

head=Creatlink();

outlink(head);

}

.下列給定程序中函數fun的功能是實現兩個整數的交換例如給a和b分別輸

輸出為a= b=

請改正程序中的錯誤使它能得出正確的結果

注意不要改動main函數不得增行或刪行也不得更改程序的結構!

試題程序

#include <stdioh>

#include <conioh>

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

void fun(int aint b)

{

int t;

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

t=b;

b=a;

a=t;

}

main()

{

int ab;

clrscr();

printf(&#;Enter ab: &#;);

scanf(&#;%d%d&#;&a&b);

fun(&a&b);

printf(&#;a=%d b=%d\n&#;ab);

}


From:http://tw.wingwit.com/Article/program/c/201404/30447.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.