简答题 | 三个整数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);) |
查看答案 |