二级C语言上机题及答案2012年预测51套.docx

上传人:文*** 文档编号:68226625 上传时间:2022-12-27 格式:DOCX 页数:105 大小:177.73KB
返回 下载 相关 举报
二级C语言上机题及答案2012年预测51套.docx_第1页
第1页 / 共105页
二级C语言上机题及答案2012年预测51套.docx_第2页
第2页 / 共105页
点击查看更多>>
资源描述

《二级C语言上机题及答案2012年预测51套.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题及答案2012年预测51套.docx(105页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2012二级C语言上机预测题目录、程序填空题二、程序修改题三、程序编写题参考答案二级C语言上机考试复习资料,共有50套题目一、程序填空题1、给定程序中,函数fijn的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数, 将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并 将中间数作为函数值返回。例如,有9个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件

2、夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#define int fun(intN 9x口) int i,j,k,t,mid,bN;for(i=0;iN;i+) bi=xi;for(i=0;i=N/2;i+) k=i;for(j=i+1 ;jbj) k=j;if(k != i) /* on nd* * */t=bi;bri=_1; bk=t; )/* fou n d */mid=bl2;for(i=0; iN; i+)/* fou n d */if(xil3mid) xi=mid;return mid;)main() int i, xNJ= 1,5,7,2

3、3,87,5,8,21,45);for(i=0; iN; i+) printf(%d ,xi); printf(nThe mid data is: %dn,fun(x); for(i=0; iN; i+) printf(%d ,xi); printf(n);)2、给定程序中,函数ftin的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素 的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,依次类推。例如,若N=5,生成的矩阵为:1111112221123211222111111请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放

4、在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #define N 7/* fou n d */ void fun(int (*a)_l_) int i,j,k,m;if(N%2=0) m=N/2 ;elsem=N/2+l;for(i=0; im; i+) /* fou n d */for(j= _2_ ; jN-i; j+) aij=aN-i-lj=i+l;for(k=i+l; kN-i; k+)/* ou nd* * */aki=akN-i-l= _3一;)main() int xNN=O,i,j;fun(x);printf(nThe resul

5、t is:n);for(i=0; iN; i+) for(j=0; jN; j+) printf(%3d,xij); printf(n);)3、给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后, 并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7o 执行结果为:defadhkjsdf3537o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include void fun(char *s) i

6、nt i,j=0, k=0; char tl 80, t280;for(i=0; si!=,0,; i+)if(si=0, & sil0;/* ou nd*/for(i=0; ik; i+)for(i=0; i3; i+) sk+i=t2i;)main() char s80=def35adh3kjsdf7;printfCXnThe original string is : %snH,s);fun(s);printf(MnThe result is : %snM,s);4、给定程序中,函数fun的功能是:有NXN矩阵,以主对角线为对称线,对称元素相加并将结果 存放在左下三角元素中,右上三角元素置

7、为0。例如,若N=3,有下列矩阵:123456789计算结果为10065010149请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #define N 4/* fou n d */ void fun(int (*t)1) int i, j;for(i=l; iN; i+) for(j=0; ji; j+) /* *fou nd*/_2/* ou nd* * */3=0;)main() int tN=21,12,l3,24,25,16,47,38,29,11,32,

8、54,42,21,33,10, i,j; printf(nThe original array:n);for(i=0; iN; i+) for(j=0;jN;j+) printf(%2d ,tij); printf(n);)fun(t);printf(nThe result is:n);for(i=0; iN; i+) for(j=0;jN;j+) printf(%2dprintf(n);5、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCH码大小递增 排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baaw

9、rskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlswo 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include void fun(char *s, char *p) int i, j, n, x, t;n=0;for(i=0; si!=0; i+) n+;for(i=l; in-2; i=i+2) /* ou nd*/for(j=2_+2 ;js|j) t=j;if(t!=i) x=si; si=st; st=x; for(i=l,j=0; in;

10、 i=i+2, j+) pj=si;/* fou n d */Plj=_3_;|main() char s80=baawrskjghzlicda, p50;printf(MnThe original string is : %sn*s);fun(s,p);printf(MnThe result is : %sn,p);6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数ftin的功能是输出 这位学生的信息。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#incl

11、ude typedef struct int num;char name9;char sex;struct int year,month,day ; birthday;float score3;STU;/* ou nd*/void show(STU 1) int i;printf(n%d %s %c %d-%d-%d, tt.num, tt.name, tt.sex,tt.birthday.year, tt.birthday.month, tt.birthday.day);for(i=0; i3; i+)/* fou nd*/printf(%5.1f2一);printf(n);|main()

12、STU std= 1 ,Zhanghua;M, 1961,10,8,76.5,78.0,82.0 ); printf(nA student data:n);/* fou n d */show(3);)7、给定程序中,函数ftin的功能是:计算NXN矩阵的主对角线元素和反向对角线元素之和,并作 为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若 N=3,有下列矩阵:369ftin函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。请在程序的下划线处填入正确的内容并把卜一划线删除,使程序得出正确的结果。注意:#include#define源程序存放

13、在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!N 4 fun(int tJNJ, int n) int i, sum;/* ou nd* * */for(i=0; in; i+)/*n d */sum+=2;for(i=0; in; i+)/* ou nd* * */sum+=tin-i-3;return sum;)main() int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10 ,i,j; printf(nThe original data:n);for(i=0; iN; i+) for(j=0; jN; j

14、+) printf(%4d,tij);printf(n);)printf(The result is: %d,fun(t,N);)8、给定程序中,函数firn的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有 10 个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000主函数中输出:46 32 40 45 48请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程

15、序的结构!#include #include #define N 10 double fun(double x,double *y) int i,j; double av;/* fou n d */ av=_1_;/* ou nd*/for(i=0; iN; i+) av = av + _2_; for(i=j=0; iav) y一3一= xi;double xN = 46,30,32,40,6,17,45,15,48,26); yN;for(i=0; i=0; i+) printf(%5.0f ,yi); printf(n);)9、给定程序中,函数ftin的功能是:计算形参x所指数组中N个数

16、的平均值(规定所有数均为正 数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部, 平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有 10 个正数:463032406 17 45 15 4826,平均值为:30.500000移动后的输出为:30 617152646 32 40 45 48请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 10double fun(double

17、*x) int i, j; double av, yN;av=0;/* ou nd*/for(i=0; iN; i+) av +=_1_;for(i=j=0; iN; i+)if( xiav)/* *fou nd* */yj=xi; xi=-l;_2_;) i=0;while(iN) if( xi!= -1 ) yj+=xi;/* fou n d */3 ;for(i=0; iN; i+)xi = yi; return av;) main()double xN; intfor(i=0; iN; i+) xi=rand()%50; printf(%4.0f ,xi); printf(n);pri

18、ntf(nThe average is: %fn,fun(x);printf(nThe result :n,fun(x);for(i=0; iN; i+) printf(%5.0f ,xi);printf(n);)10、给定程序中,函数ftin的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正 数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部, 平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有 10 个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:46 32 4

19、0 45 48 30 6 17 15 26请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN 10 double fun(double *x) int i, j; double s, av, yN;s=0;for(i=0; iN; i+) s=s+xi;/* fou n d */av=_1_;for(i=j=0; iav)/* ou nd* * */y_2_=xi; xli=-l; for(i=0; iN; i+)/* *fou nd *

20、/if(xi!=_3_) yj+=xi;for(i=0; iN; i+)xi = yi;return av;main() int i; double xN= 46,30,32,40,6,17,45,15,48,26);for(i=0; iN; i+) printf(u%4.0f H,xi);printf(nnn);printf(nnThe average is: %fnH,fun(x);printf(MnThe result :nM,fun(x);for(i=0; iN; i+) printf(M%5.0f n,xi);printf(,nn);11、函数fiin的功能是:把形参a所指数组中的奇

21、数按原顺序依次存放到a0、al、a2、中, 把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、 2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:#include#define int fun(int int i,jj = 0;源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!N 9a, int n)for (i=0; in; i+)/* YQu nd*/if (ai%2=1)/* *n d */aj

22、= al;_2-;)/* ou nd* * */return3;)main() int bN=9/42,3,6,5,8,7,i,n;printf(MnThe original data :nn);for (i=0; iN; i+) printf(H%4d = bi);printf(,nu);n = fun(b, N);printf(MnThe number of odd : %d nH, n);printf(MnThe odd number :nH);for (i=0; in; i+) printf(H%4d ”, bi);printf(,nu);12、给定程序中,函数ftin的功能是:求ss

23、所指字符串数组中长度最短的字符串所在的行下标,作为 函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#define#defineM5N20 int fiin(char (*ss)N, int *n) int i, k=0, len= N;/* fou n d */ for(i=0; i_1; i+) len=strlen(ssi);if(i=0) *n=len;/

24、* ou nd*/*n)if(len 2. *n=len; k=i;) /* ou nd* * */return(3);main() char ssMN=shanghai”Jguangzhou”Jbeijing”Jtianjing,chongqing;int n,k,i;printf(nThe original strings are :nH);for(i=0;iM;i+)puts(ssi);k=fun(ss,&n);printf(MnThe length of shortest string is : %dnM,n);printf(MnThe shortest string is : %sn

25、n,sskj);)13、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。 函数fijn的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同 时由函数值返回满足指定条件的人数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #define N 8typedef struct int num;int year,month,day ;STU;int fun(STU *std, STU *k, int y

26、ear) int i,n=0;for (i=0; i 1,1984,2,15,2,1983,9,21,3,1984,9,1,4,1983,7,15, 5,1985,9,28,6,1982,11,15,7,1982,6,22,8,1984,8,19;STU kN;int i,n,year;printf(Enter a year : *); scanf(H%d&year);n=fun(std,k,year);if(n=O)printf(HnNo person was born in %d n,year);else printfCXnThese persons were born in %d nu,

27、year);for(i=0; in; i+)printf(0%d %d-%d-%dnn,kij.num,ki.year,ki.month,ki.day);14、函数fijn的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。 形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据依次 为:1, 2、3、4、5、6、7、8、9,则调换后为:6、7、8、9, 5、1、2, 3、4。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#in

28、clude #define N 9 void fun(int a, int n) int i, t, p;/* *fou nd*/ p = (n%2=0)?n/2:n/2+1 for (i=0; in/2; i+)t=ai;/* ou nd* * */ai = ap+2;/* ou nd* * */3= t;)main() int bN=l,2,3,4,5,6,7,8,9,i; printf(nThe original data :n);for (i=0; iN; i+) printf(%4d , bi); printf(n);fun(b, N);printf(nThe data after

29、moving :n);for (i=0; iN; i+) printf(%4d , bi); printf(n);15、给定程序中屈数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符 方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确崭绸果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include void fun(char *s, int a, double f) /* ou nd* * */_1fp;char ch;fp = fopen(Mfilel.txtH,

30、 MwM);fprintf(fp, n%s %d %fnn, s, a, f);fclose(fp);fp=fopen(,filel.txtH, Y);printf(nnThe result :nn);ch = fgetc(fp);/* *fou nd* */while (!feof(_2) /* fou n d */putchar(_3_); ch = fgetc(fp); putchar(n);fclose(fp);main() char a10=nHello!n; int b=12345;double c= 98.76;fun(a,b,c);16、给定程序中,函数fiin的功能是:找出N

31、XN矩阵中每列元素中的最大值,并按顺序依次存放 于形参b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #define N 4void fun(int (*a)N, int *b) int ij;for(i=0; iN; i+) /* ou nd* * */bi=_l_;fbr(j=l; jN; j+)/* *fou nd */if(bi _2_ aji) bi=aji;) main() int xNN= 12,5,8,7,6,1,9,3,1,2,

32、3,4,2,8,4,3 ,yNJ,i,j; printf(nThe matrix :n);for(i=0;iN; i+) for(j=0;jN; j+) printf(%4d,xij);printf(n);)/* fou n d */fun(_3_);printf(nThe result is:);for(i=0; iN; i+) printf(%3d,yi);printf(n);)17、给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形 参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7o输出结 果为:4

33、o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include void fun(char *s, int *t) int i, n;n=0;/* fou n d */for(i=0;1!=0; i+)/* *n d */if(si=,O,&si=2) n+;/* *fou nd*/3;main() char s8O=,abcdef35adgh3kjsdf7n;int t;printf(”nThe original string is : %snu,s);fun(s,&t);pr

34、intf(MnThe result is : %dn,t);)18、函数fun的功能是:把形参a所指数组中的最小值放在元素a0中,接着把形参a所指数组中 的最大值放在al元素中;再把a所指数组元素中的次小值放在a2中,把a所指数组元素中的次大值 放在a3;其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则 按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注

35、意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!# include #define N 9 void fun(int a, int n) int i,j, max, min, px, pn, t; for (i=0; in-l; i+=2)/* ou nd* * */max = min =1;px = pn = i;for(j=i+l;jn;j+) /* fou n d */ if (max3) min = aj; pn=j; )if(pn != i) t = ai; ai = min; apn1 = t;if (px = i) px =pn;if (p

36、x != i+l) t = ai+l; ai-Fl = max; apx = t; main() int bN=9,l,4,2,3,6,5,8,7,i;printf(MnThe original data :nH);for (i=0; iN; i+) printf(H%4d ”, bi);printf(”n);fun(b, N);printf(MnThe data after moving :nM);for (i=0; iN; i+) printf(H%4d bij);printf(Hn,f);)19、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符 顺序后

37、移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5#43df,处理后新字符串为:123543asdfgh#df。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#include#include char *fiin(char *s) int i, j, k, n; char *p, *t;n=strlen(s)+l;t=(char*)malloc(n*sizeof(char);p=(char*)malloc(n*siz

38、eof(char);j=0; k=0;for(i=0; in; i+) if(isdigit(si) /* ou nd* * */p_l_=si;j+;else tk=si; k+; /* ou nd* * */for(i=0; i_2_; i+) pj+i= ti;pj+kl=O;/* fou n d */return _3;)main() char s80;printf(Please input: ); scanf(M%sn,s);printf(MnThe result is: %snM,fun(s);20、给定程序中,函数fun的功能是:有NXN矩阵,根据给定的m (m=N)值,将每行元素中 的值均右移m个位置,左边置为0。例如,N=3,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁