题库 题库
🏘️ 爱查询 > 题库 > C

C

简答题 三个整数a、b、c,由键盘输入,输出其中最大的数。 查看答案
简答题 从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。 查看答案
简答题 有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。 查看答案
简答题 有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。 查看答案
简答题 请补充main()函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。
例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。
试题程序:
#include
#include
void main()
{
int a,b,numl,num2,t;
system("CLS"):
printf("\nInput two numbers:\n");
scanf("%d,%d",&numl,&num2);
if(numl<NUM2)
{
a=num2;
b=num1:
}
else
{
a=num1;
b=num2;
}
while(【1】)
{
t= 【2】
a=b;
b=t:
}
printf(“greatest common divisor:
%d\n",a);
printf("least common multiple:
%d\n", 【3】;
}
查看答案
简答题 下列给定程序中,函数proc()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回
1;若不能,则返回0。
例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
int proc(int a,int b,int c)
{
if(a+b>c&&b+c>a&&a+c>b)
{
if(a= =b&&b= =c)
//****found****
return 1;
else if(a= =b||b= =c||a= =c)
return 2;
//****found****
else return 3;
}
else return 0;
}
void main()
{
int a,b,C,shape;
printf("\nlnput a,b,C:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d,b=%d,c=%d\n",a,b,c);
shape=proc(a,b,c);
printf("\n\nThe shape:%d\n",shape);
}
查看答案
简答题 学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#define M l6
typedef struct
{
char num[l0];
int S;
}
STREC:
void proc(STREC a[])
{
int i,j;
STREC t;
for(i=1;i
排序*/
for(j=0;j<M-1;J++)&NBSP;。
if(a[j].s
的记录,高分在前*/
{t=a[j];a[j]=a[j+1];a[j+1]=t;)
}
void main()
{
STREC stu[M]={{"GA005",85),{"GA003",76},
{"GA002",69},{"GA004",85),{"GA001",91),
{"GA007",72),{"GA008",64),{"GA006",87),
{"GA015",85),{"GA013",91),{"GA012",64),
{¨GA014",91),{"GA011",66),{"GA017",64},
{"GA018",64),{"GA016",72}};
int i;
proc(stu);
printf("The data after sorted:\n");
for(i=0;i<M;I++)
{
if(i%4= =0)
//每行输出4个学生记录
printf("n");
printf("%s%4d",stu[i],num,stu[i].s);
}
printf("\n");
}
查看答案
简答题 请补充函数proc(),该函数的功能是计算下面公式SN的值:
SN=1+1/3十4/5+...+2N-1/SN-1
例如,当N=20时,SN=29.031674。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
double proc(int n)
{
double s=1.0,sl=0.0;
int k;
for(【1】;k<=n;k++)
{
s1=S;
【2】
}
return 【3】 ;
}
void main()
{
int k=0:
double sum;
system("CLS");
printf("\nPlease input N=");
scanf("%d",&k);
sum=proc(k);
printf("\nS=%If",sum);
}
查看答案
简答题 给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
float m[10];
//****found****
int proc(void)
{
int j;
printf("In subfunc after calling\n");
for(j=0;j<10;j++)
{
//****found****
printf("%f",m[j]%5);
}
}
void main()
{
int i;
printf("In main before calling\n");
for(i=0;i<10;i++)
{
m[i]=i+20;
printf("%f",m[i]);
}
proc();
printf("\nln main after calling\n");
for(i=0;i<10;i++)
printf("%f",m[i]/5);
}
查看答案
简答题 请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
#include
void proc(char*str,char t[])
{
}
void main()
{
char str[100],t[100];
system("CLS");
printf("\nPlease enter string str:");
scanf("%S",str);
proc(str,t);
printf("\nThe result is:%s\n",t);
}
查看答案
简答题 str是一个由数字和字母字符组成的字符串,由变量num传人字符串长度。请补充函数proc(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组1,b中,函数返回数组bh的长度。
例如.str=”abc123de45f967”.结果为:1234567。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容.仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#define M 80
int bb[M];
int proc(char str[].int bh[],int num)
{
int i.n=0;
for(i=0;i<NUM:I++)
{
if( 【1】 )
{
bb[n]=【2】;
n++:
)
return 【3】 ;
}
void main()
{
char str[M];
int num=0.n,i:
printf(”Enter a string:n”);
gets(str);
while(str[num])
num++o
n=proc(str,bb,num);
prinlf(”\nbb=”);
for(i=0;i<N;I++)
printf(”%d”,bb[i]);
)
查看答案
简答题 下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
//****found****
void proc(1ong s,long t)
{long s1=10;
s/=10:
*t=s ;
//****found****
while(s<0)
{ s=s/100;
*t=s *s1+*t;
s1=s1*10:
}
void main()
{long S,t;
system(”CLs”);
printf(”\nPlease enter s:”);
scanf(”%ld”,&s);
proc(s,&t):
printf(”The result is:%ld\\n”,t);
}
查看答案
简答题 请编写函数proc(),其功能是:将str所指字符串中除下标为偶数,同时ASCII码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFGl2345,其中字符8的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除。依次类推,最后t所指的数组中的内容应是ACEG。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。
试题程序:
#include
#include
#include
#include
void proc(char*str,char t[])
{
)
void main()
(
char str[100],t[100];
system(”CLS”);
printf(”\nPlease enter string str:");
scanf(”%s”,str);
proc(str,t);
printf(”\nThe result is:%s\n”,t):
)
查看答案
简答题 请补充main()函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存在原来的字符串中。
例如,当str[M]=”abcdefl23ABCD”,结果输出:“ABC
DEF123ABCD”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
#define M 80
void main()
{
intj;
char str[M]=" abcdefl23ABCD”;
char *pf=str;
system(”CLS”):
printf(”***original string *** \n”):
puts(str);
【1】
while(*(pf+j))
{
if(*(pf+j)>='a' &&*(pf+j)<='Z')
{
*(pf+j)=【2】 ;
【3】 ;
)
else
j++;
)
printf(”****new string****\n”);
puts(str);
system(”pause”);}
查看答案
简答题 下列给定程序中,函数proc()的功能是:根据整型形參n的值,计算如下公式的值。
t=i-1/(2*2)-1/(3*3)-…-1/(n*n)
例如.当n=7时。t=0.188203。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
double proc(int n)
{double y=1.0;
inl i;
//****found****
for(i=2;i<N;I++)
//****found****
y-=1/(i*i):
telurn(y);
}
void main()
{ int n=7:
system(”CLS”):
print[(”\nThe result is%lf\n”,proe(n))。
1
查看答案
简答题 请编写函数proc(),它的功能是计算:
s=(1-In(1)-ln(2)-In(3)-…-In(m))2
S作为函数值返回。
在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。
例如,若m的值为10,则proc()函数值为198.934454。
注意;部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#include
#include
double proc(int m)
{
void main()
{
system(”CLS”);
printf(”%f\n”,proc(10));
}
查看答案
简答题 请补充main()函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约数和最小公倍数。
例如,若输人的两个正整数为12,4,则它们的最大公约数为4,最小公倍数为12。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
void main()
{
int a,b,numl,num2,t;
system(”CLS”):
printf(”\nlnput tWO numbers:\n”);
scanf(”%d,%d”,&numl,&num2);
if(numl<NUM2)
{
a=num2;
b=numl;
}
else
{
a=num1:
b=num2:
)
while(【1】)
{
t=【2】
a=b;
b=t;
}
printf("greatest common divisor:
%d\n”,a);
printf(”least common multiple:
%d\n”,【3】);
查看答案
简答题 下列给定程序中,函数proe()的功能是:对M名学生的学习成绩,按从高到低的顺序找出前m(m<10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include%stdlib.h>
#include
#include
#include
#include%malloe.h>
#define M 10
typedef struct ss
{
char num[10];
int s;
}
STU;
STU *proc(STU a[],int m)
{
STU b[-M],*t;
int i,j,k;
//****found****
*t=calloc(m,sizeof(STU));
for(i=0;i
for(k=0;k<M;K++)
{
for(i=j=0;i<M;I++)
if(b[i].s>b[j].s)j=i;
//****found****
t[k].num=b[j].num;
t[k].s=b[j].S;
b[j].s=0;
}
return t:
}
void outresuh(STU a[],FILE *pf)
f
int i;
for(i=0;i<M;I++)
fprintf(pf,”No=%s Mark=%d\n”,
a[i] mum,a[i].s);
fprintf(pf,”\n\n”);
)
void main()
{STU stu[M]={{¨A01”,81},{¨A02”,89},
{¨A03”,66},{”A04”,87),{”A05”,77),
{”A06”,90),{"A07”,79),{”A08”,61),
{”A09”,80},{”A10”,71));
STU+pOrder;
int i,m;
system(”CLS”);
printf(”****THE RESULT****\n”);
outresuh(stu,stdout);
print{(”\nGive the number of the students
who have better score:”);
scanf(”%d”,&m);
while(m>10)
printf(”\nGive the number of the
students who have better score:”);
scanf(”%d”,&m);
}
p()rder=proc(stu,m);
printf(”****THE RESULT****\n”);
printf(”The lop:\n”);
for(i=0:i<M:I++)
printf(”%s%d\n”,pOrder[i].hum,
pOrder[i].s);
free(pOrder);
)
查看答案
简答题 学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
# include
#define M 16
typedef s truct
{
char num[10];
inl S;
)
STREC;
void proc(STREC a[])
int i,j;
STREC t;
for(i=1;i<M;I++)&NBSP; *用冒泡法按从高到低
排序*/
for(j=0;j<M-1;J++)
if(a[j].s
的记录,高分在前*/
{t=aEP;a[j]=a[j+1];a[j+1]=t;}
}
void main ()
{
STREC,sluEM]={{ ”GA005”,85),{¨GA003”,
76},
{”GA002“,69},{¨GA004”,815}.{¨GA001”,91},
{"GA007”,72},{“GA008”,64),{"GA006”,87},
{¨GA015”,85},i”GAO13”,91},{”GA012”,64},
{"GA014”,91},{”GA011”,66},{¨GA017”,64},
{”GA018”,64},{¨GA016”,72}};
in/i;
proc(stu):
prinlf(”The data afwr sorted:\n”);
for(i=0;i<M:I++)
{
if(i%4==0)
//每行输出4个学生记录
printf(”\n”);
printf(”%sM”,stu[i].num,stu[i].s);
}
printf(”\n”):
}
查看答案
简答题 请补充函数proc(),其功能是:计算并输出给定10个数的方差。
例如,拾定的10个数为12.0,9.0.26.0,5.0,6.0,31.0,9.0,3.0,8.0,18、0,输出为s=8.8771500。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若于表达式或语句。
试题程序:
#include
#include
double proc(double xElO])
{
int i;
double avg=0.0;
double 8urn=0.0;
double abs=0.0:
double sd;
for(i=0:i<10;i++)
【1】 ;
avg=sum/10;
for(i=0;i<10;i十十)
【2】 ;
sd= 【3】 ;
return sd;
void main()
{
double s,str[10]={12.0,9.0,26.0,5.0,6.0,31.0.9.0,3.0,8.0,18.0);
int i;
printf(”\nThe original data is:\n”);
for(i一0;i<10;i++)
t)rintf(”%6.lf,slr[i]):
printf(”\n\n”);
s=proc(str):
printf(”s=%f\n\n”,s);
)
查看答案
简答题 给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
float m[10];
f f****found****
int proc(void)
{
int J;
printf(”In subfunc after calling\n”);
for(j=0;j<10;j++)
{
|f****found****
printf(”%f”,m[j]%5);
}
}
void main()
{
int i;
printf(”In main before calling\n”);
for(i=0;i<10;i++)
{
m[i]=i+20:
printf(”%f”,m[i]);
}
proc();
printf(”\nIn main after calling\n”):
for(i=0;i<10;i++)
printf(”%f”,m[i]/S):
查看答案
简答题 请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为:
ABCD
BCDEFG
CDEFGHI
则合并后的字符串内容应该是ABCDBCDEFGCDEFGHI。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#define M 3
#define N 20
void proc(char arr[M][N].char*b)
{
}
void main()
{
char str[M][N]={”ABCD”,”BCDEFG”,”
CDEFGHl”),i;
char arr[100]={”#############
#####”);
printf(”The string:\n”);
for(i=0;i<2M;i++)
puts(str[i]);
printf(”\n”);
proc(str,arr);
printf(”The A string:\n”);
printf(”%S”,arr);
printf(”\nln”);
}
查看答案
简答题 请补充函数proc(),该函数的功能是计算下面公式SN的值:

例如,当N=20时,SN=29.031674。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
double proc(int n)
{
double s=1.0,s1=0.0;
int k;
for(【1】 ;k<=n;k++)
{
s1=s:
【2】 ;
return 【3】 ;
}
void main()
{
int k=0;
double sum:
system(”CLS”):
printf(”\nPlease input N=”):
scanf(”%d”,&k);
sum=proc(k):
printf(”\nS=%Lf”.sum);
}
查看答案
简答题 下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。
例如,排序前的数据为:11 32 -5 2 14则排序后的数据为:-5 2 11 14 32
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#define M 20
void proc(int a[],int n)
{
int i,j,t,P;
//****found****
for(j=0;j<N-1;J++);
{
P=j;
for(i=j;i<N;I++)
if(a[i]<A[P])
p=i;
t=a[p]];
a[p]=a[j];
//****found****
a[p]=t:
}
}
void main()
{
int arr[M]={11,32,-5,2,14).i,m=5;
printf(”排序前的数据:”);
for(i=0;i<M;I++)
printf(”%d”,arr[i]):
printf(”\n”);
proc(arr,m):
printf(”排序后的顺序:”);
for(i=0;i<M;I++)
printf(”%d”,arr[i]);
printf(”\n”);
}
}
查看答案
简答题 请编写函数proc(),其功能是:将sir所指字符串中下标为偶数的字符删除.串中剩余字符形成的新串放在t所指数组中。
例如,当sir所指字符串中的内容为abcdefg。则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#include
#include.%strin9.h>
void proc(char*str,char t[])
{
)
void main()
{
,、hat str[100].t[100];
system(”CLS”):
printf(”\nPlease enter string str:”);
scanf(”%S”.str):
proc(sir,t);
printl'(”\nThe result is:%s\n”,t);
)
查看答案
简答题 请补充main()函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。
例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。
试题程序:
#include
#include
#define M 10
void main()
{
int i,n=0:
int arr[M]={40,68,62,33,35,52,48,95,66,73);
int bb[M];
system(”CLS”);
for(i=0;i<【1】 ;i++)
if(arr[i]<ARR[I+1])
【2】 ;
printf(”\n***display bb***\n”);
for(i=0;i<N;I++)
printf("bb[%d]=-", 【3】 );
}
查看答案
简答题 下列给定程序中,函数proc()的功能是根据整型形参n,计算如下公式的值:
y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值为10,则应输出0.817962。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
double proc(int n)
{
double y=1.0;
//****found****
int j=1;
int i;
for(i=2;i<=n.;i++)
{
j=-1*j;//****found****
y+=1/(i*i);
}
return(y);
}
void main()
{
int n=10:
system(”(CLS”):
printf(”\nThe result is%lf\n”,proc(n));
)
查看答案
简答题 请编写函数proc(),它的功能是计算:
s=(In(1)+In(2)+In(3)+…+ln(m))0.5
在C语言巾可调用log(n)函数求ln(n)。
例如.若nl的值为30,则proc()函数值为8.640500。
注意:部分源程序给出:如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
#include<
double proc(int m)
{
}
void main()
{
system(”CLS”):
printf(”%f\n”,proc(30));
}
查看答案
简答题 给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
例如,当score=(10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40)。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:
#include<2 stdio.h>
#include<2string.h>
int fun(int score[],int m,int below[])

int i,j=0;
float aver=0.0;
for(i=0:i<2m;i++)
aver+=score[i];
aver/=(float)m;
for(i=0:i<2m;i++)
if(score[i]<2aver)
below[j++]=【1】;
return j;
}
void main()
{
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80,90);
n=fun(score,9,【2】);
printf(”\n Below the average score are:%d\n”,n);
for(i=0;i<2n;i++)
printf(”%d”,【3】);
}
查看答案
简答题 下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
void proc(char*str)
{
int i,j;
//****found****
for(i=j=0;str[i]!='0';i十十)
if(str[i]!='F')
//****found****
str[j]=str[i];
str[j]='\0';
}
void main()
{
char str[80];
printf(”\nEnter a string:”);
gets(str);
printf(”The original string:”);
puts(str);
proc(str);
printf(”The string after deleted:”);
puts(str);
printf(”\n\n”);)
查看答案
简答题 M名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数proc()。它的功能是:找出学生的最高分,由函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#define M 8
struet slist
(double S;
slrucl Mist*next;
);
typedef struct slist STREC:
double proc(STRgC*h)
(
}
STREC*creeli(double*S)
{
STREC *h,*p,*q;
int i=0;
h=p=(STREC*)malloe(sizeof(STREC));
p->s=0:
while(i<M)
/产生8个节点的链表,各分数存入链表中
{ q=(STREC*)malloc(sizeof(STREC)):
p->s=s[i];++ p->next=q;p=q;
}
p->next=NULL:
return h;//返回链表的首地址
}
void outlist(STREC*11)
{
STREC *p;
p=h;
printf(”head”);
do
{
printf(“->%2.0f”,p->s);p=p-2>next;)
//输出各分数
while(p->next!=NULL):
print[(”\n\n”);
)
void main()
{
double stu[M]={60,70,80,90,65,75,85,95,
max:
STREC * h:
h=ereat(stu);
oullist(h):
max=proc(h):
printf(”max=%6.1f\n”,max):
)
查看答案
简答题 请补充函数proc(),函数proe()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
long proc(int n)
{
if(【1】 )
reurn(n”proc( 【2】 );
else if( 【3】 )
return 1:
}
void main()
{
int k=7:
printf(”%d!= \n”,k,proc(k));
}
查看答案
简答题 下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:l,1,2,3,5,8,13,21,…
例如,若给n输入7,则该项的斐波拉契数值为13。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
long fun(int g)
(
//**+*found****
switch(g);
{
case 0:return 0;
//****found****
case l:case 2:return 1;
}
return(fun(g-1)+fun(g-2));
)
void main()
{
long fib;int n;
printf(”Input n:”);
scanf(”%d”,&n);
printf(”n=%d\n”,n);
fib=fun(n);
printf(”fib=%d\nkn”,fib);
}
查看答案
简答题 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()部位中填入你编写的若干语句。
试题程序:
#include
#define N 8
typedef struct
{
char nurn[10];
double s[N];
double ave;
)STREC;
void fun(STREC * a)
{
)
void main()
{
STREC s={¨GA005”,85.5,76,69.5,85,91,72,
查看答案
简答题 请补充main()函数。该函数的功能是:求1~200中(不包括200)所有素数的平均值。
程序运行后的结果为91.89。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在m。in()函数的横线上填入所编写的若:F表达式或语句。
试题程序:
#include
#include
void main()
{
int i,j,n=0,flag;
float aver=0:
system(”CLS”):
for(j=2;j<2200;j++)
{
flag=1;
for(i=2;i<J;I++)
if(【1】)
{
flag=0;
break;
)
if(【2】)
{
n++;
aver+=j;
)
)
printf(”\n\n average=%4.2f\n”,【3】);
)
查看答案
简答题 下列给定程序中,函数proc()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。
例如,输入3个边长为3。4,5.实际输入时,数与数之间以Enter键分隔而不足逗号。
请修改程序中的错误.使它能得出正确的结果。
注意:不要改动main()函数。不得增行或删行.也不得更改程序的结构。
试题程序:
#include
#include
int proc(int a.int b.int c)
{
if(a+b>c&&h+c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return 1;
else if(a==b||b==e||a==c)
return 2:
f|****found****
else return 3:
}
else return 0:
}
void main()
(
int a,b,C,shape;
printf(”\nfnput a,b,e:”);
scanf(”%d%d%d”,&.a&.b,&c);
printl'(”na=%d,b-%d,e=%d\n”,a,b,c);
shape=proc(a,b,c);
printl.(”\n\nThe shape:%d\n”,shape);
}
查看答案
简答题 假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。
例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。
注意:部分源程序给出如下。
清勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
void proc(char * str)
{
void main()
char str[81];
printf(”Enter a string:n”);
gets(str);
proc(str);
printf(”The string after deleted:n”);
puts(str);)
查看答案