1、计算机等考二级C语言程序设计无纸化上机操作题116套32 上机操作题部分第1套上机考试试题一、程序填空题请补充函数proc(),该函数的功能是计算下面公式SN的值:例如,当N=20时,SN=29031674。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#includedouble proc(int n)double s=10,s1=00;int k;for(【1】 ;k=n;k+)s1=s:【2】 ;return 【3】 ;void main()int k=0;do
2、uble sum:system(”CLS”):printf(”nPlease input N=”):scanf(”d”,k);sum=proc(k):printf(”nS=Lf”sum);二、程序改错题下列给定程序中,函数proc()的功能是根据整型形参n,计算如下公式的值:y=1-1(22)+1(33)-1(44)+(-1)(n+1)(nn)例如,n中的值为10,则应输出0817962。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#includedouble proc(int n)do
3、uble y=10;*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 islfn”,proc(n);)三、程序设计题编写一个函数,从传人的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:#include#include#
4、includechar*proc(cb,ar(*a)81,int num)void main()char ss1081,*max;int n,i=0;printf(”输入若干个字符串:”);gets(ssi);puts(ssi);while(!strcmp(ssEi,*)=0)i+:gets(ssi);puts(ssi);)n一1;max=proc(ss,n):printf(”nmax=sn”,max);)第2套上机考试试题一、程序填空题请补充main()函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约数和最小公倍数。例如,若输人的两个正整数为12,4,则它们的最大
5、公约数为4,最小公倍数为l2。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。试题程序:#include#includevoid main()int a,b,numl,num2,t;system(”CLS”):printf(”nlnput tWO numbers:n”);scanf(”d,d”,&numl,&num2);if(numlnum2)a=num2;b=numl;elsea=num1:b=num2:)while(【1】)t=【2】a=b;b=t;printf(greatest common diviso
6、r:dn”,a);printf(”least common multiple:dn”,【3】);二、程序改错题下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#include*found*void proc(1ong s,long t)long s1=10;s=10:*t=s10;/*found*while(s0) s=s100;*t=s
7、%10*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:ldn”,t);三、程序设计题请编写函数proc(),其功能是:将str所指字符串中除下标为偶数,同时ASCII码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFGl2345,其中字符8的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCI
8、I码值为奇数,所在数组中的下标为偶数,因此不应当删除。依次类推,最后t所指的数组中的内容应是ACEG。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。试题程序:#include#include#include#includevoid proc(char*str,char t)void main()(char str100,t100;system(”CLS”);printf(”nPlease enter string str:);scanf(”s”,str);proc(str,t);printf(”nThe result
9、 is:sn”,t):)第3套上机考试试题一、程序填空题请补充main()函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。试题程序:#include#include#define M 10void main()int i,n=0:int arrM=40,68,62,33,35,52,48,9
10、5,66,73);int bbM;system(”CLS”);for(i=0;i【1】 ;i+)if(arriarri+1)【2】 ;printf(”n*display bb*n”);for(i=0;in;i+)printf(bb%d=%2d, 【3】 );二、程序改错题给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#includefloat m10;f f*found*int proc(void)int J;printf
11、(”In subfunc after callingn”);for(j=0;j10;j+)|f*found*printf(”f”,mj5);void main()int i;printf(”In main before callingn”);for(i=0;i10;i+)mi=i+20:printf(”f”,mi);proc();printf(”nIn main after callingn”):for(i=0;i10;i+)printf(”f”,miS):)三、程序设计题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),其功能是:按分数的高
12、低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:# include #define M 16typedef s tructchar num10;inl S;)STREC;void proc(STREC a)int i,j;STREC t;for(i=1;iM;i+) *用冒泡法按从高到低排序*for(j=0;jM-1;j+)if(ajsaj+1s)*按分数的高低排列学生的记录,高分在前*t=aEP;aj=aj+1;aj+1=t;void main ()STREC,sluEM= ”
13、GA005”,85),GA003”,76,”GA002“,69,GA004”,815GA001”,91,GA007”,72,“GA008”,64),GA006”,87,GA015”,85,i”GAO13”,91,”GA012”,64,GA014”,91,”GA011”,66,GA017”,64,”GA018”,64,GA016”,72;ini;proc(stu):prinlf(”The data afwr sorted:n”);for(i=0;iM:i+)if(i4=0)每行输出4个学生记录printf(”n”);printf(”s4d”,stuinum,stuis);printf(”n”):
14、第4套上机考试试题一、程序填空题请补充函数proc(),其功能是:计算并输出给定10个数的方差。例如,拾定的10个数为120,90260,50,60,310,9o,30,80,18、0,输出为s=88771500。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若于表达式或语句。试题程序:#include#includedouble proc(double xElO)int i;double avg=00;double 8urn=00;double abs=00:double sd;for(i=0:i10;i+)【1】 ;avg
15、=sum10;for(i=0;i10;i十十)【2】 ;sd= 【3】 ;return sd;void main()double s,str10=120,90,260,50,60,31090,30,80,180);int i;printf(”nThe original data is:n”);for(i一0;i10;i+)t)rintf(”%6lf,slri):printf(”nn”);s=proc(str):printf(”s=fnn”,s);)二、程序改错题下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母F。请修改程序中的错误,使它能得到正确结果。注意:不要改动
16、main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#includevoid proc(char*str)int i,j;/*found*for(i=j=0;stri!=0;i十十)if(stri!=F)/*found*strj=stri;strj=0;void main()char str80;printf(”nEnter a string:”);gets(str);printf(”The original string:”);puts(str);proc(str);printf(”The string after deleted:”);puts(str);printf(”nn
17、”);)三、程序设计题假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为*a*bc*def*g*,删除后,字符串中的内容则应当是a*bc*def*g*。注意:部分源程序给出如下。清勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:#include#includevoid proc(char * str)void main()char str81;printf(”Enter a string:n”);gets(str);proc(str);
18、printf(”The string after deleted:n”);puts(str);)第5套上机考试试题一、程序填空题请补充函数proc(),函数proe()的功能是求7的阶乘。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#includelong proc(int n)if(【1】 )reurn(n”proc( 【2】 );else if( 【3】 )return 1:void main()int k=7:printf(”d!=ldn”,k,proc(k);二、程序改错题下列给定的程序中
19、,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。例如,排序前的数据为:11 32 -5 2 14则排序后的数据为:-5 2 11 14 32请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#define M 20void proc(int a,int n)int i,j,t,P;/*found*for(j=0;jn-1;j+);P=j;for(i=j;in;i+)if(aiap)p=i;t=ap;ap=aj;*found*ap=t:void main()int arrM=11
20、,32,-5,2,14)i,m=5;printf(”排序前的数据:”);for(i=0;im;i+)printf(”d”,arri):printf(”n”);proc(arr,m):printf(”排序后的顺序:”);for(i=0;im;i+)printf(”d”,arri);printf(”n”);三、程序设计题请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为:ABCDBCDEFGCDEFGHI则合并后的字符串内容应该是ABCDBCDEFGCDEFGHI。注意:部分源程序给出如下。
21、请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:#include#include#define M 3#define N 20void proc(char arrMNchar*b)void main()char strMN=”ABCD”,”BCDEFG”,”CDEFGHl”),i;char arr100=”#”);printf(”The string:n”);for(i=0;i2M;i+)puts(stri);printf(”n”);proc(str,arr);printf(”The A string:n”);printf(”S”,
22、arr);printf(”nln”);第6套上机考试试题一、程序填空题给定程序的功能是计算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#includeint fun(int score,int m,int below),int i,j=0;float aver
23、=00;for(i=0:i2m;i+)aver+=scorei;aver=(float)m;for(i=0:i2m;i+)if(scorei2aver)belowj+=【1】;return j;void main()int i,n,below9;int score9=10,20,30,40,50,60,70,80,90);n=fun(score,9,【2】);printf(”n Below the average score are:dn”,n);for(i=0;i2n;i+)printf(”d”,【3】);二、程序改错题下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项
24、的值。从第1项起,斐波拉契数列为:l,1,2,3,5,8,13,21,例如,若给n输入7,则该项的斐波拉契数值为13。请改正程序中的错误,使它能得出正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:#includelong 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);print
25、f(”n=dn”,n);fib=fun(n);printf(”fib=dnkn”,fib);三、程序设计题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:855,76,695,85,91,72,645,875,则他的平均分应为78875。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()部位中填入你编写的若干语句。试题程序:#include#define N 8typedef structchar nurn10;double sN
26、;double ave;)STREC;void fun(STREC * a)void main()STREC s=GA005”,855,76,695,85,91,72,645,875;int i:fun(&s):printf(”Thess student data:n”,Snum);for(i=0;iN;i+)printf(”4lfkn”,ssi);printf(”nknave=73fkn”,save);printf(”n”):第7套上机考试试题一、程序填空题请补充main()函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存在原来的字符串中。例如,当strM=”abcdefl23ABCD”,结果输出:“ABCDEF123ABCD”。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include#include
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1