二级C语言上机题库.docx
- 文档编号:13904702
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:187
- 大小:126.64KB
二级C语言上机题库.docx
《二级C语言上机题库.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库.docx(187页珍藏版)》请在冰点文库上搜索。
二级C语言上机题库
二级C语言上机考试复习资料,共有50套题目
一、程序填空题
1、给定程序中,函数fun的功能是:
在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:
1572387582145
按升序排列时的中间数为:
8
处理后主函数中输出的数列为:
8882387882145
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#include
#defineN9
intfun(intx[])
{inti,j,k,t,mid,b[N];
for(i=0;i for(i=0;i<=N/2;i++) {k=i; for(j=i+1;j if(k! =i) { /**********found**********/ t=b[i];b[i]= (1)b[k];b[k]=t; } } /**********found**********/ mid=b[ (2)N/2]; for(i=0;i /**********found**********/ if(x[i]___(3)<___mid)x[i]=mid; returnmid; } main() {inti,x[N]={1,5,7,23,87,5,8,21,45}; for(i=0;i printf("\nThemiddatais: %d\n",fun(x)); for(i=0;i printf("\n"); } 2、给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是: 最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。 例如,若N=5,生成的矩阵为: 11111 12221 12321 12221 11111 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #defineN7 /**********found**********/ voidfun(int(*a)__[N]__) {inti,j,k,m; if(N%2==0)m=N/2; elsem=N/2+1; for(i=0;i /**********found**********/ for(j=__i__;j a[i][j]=a[N-i-1][j]=i+1; for(k=i+1;k /**********found**********/ a[k][i]=a[k][N-i-1]=__i+1__; } } main() {intx[N][N]={0},i,j; fun(x); printf("\nTheresultis: \n"); for(i=0;i {for(j=0;j printf("\n"); } } 3、给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。 例如,形参s所指的字符串为: def35adh3kjsdf7。 执行结果为: defadhkjsdf3537。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include voidfun(char*s) {inti,j=0,k=0;chart1[80],t2[80]; for(i=0;s[i]! ='\0';i++) if(s[i]>='0'&&s[i]<='9') { /**********found**********/ t2[j]=s[i];___j++___; } elset1[k++]=s[i]; t2[j]=0;t1[k]=0; /**********found**********/ for(i=0;i /**********found**********/ for(i=0;i<___j ___;i++)s[k+i]=t2[i]; } main() {chars[80]="def35adh3kjsdf7"; printf("\nTheoriginalstringis: %s\n",s); fun(s); printf("\nTheresultis: %s\n",s); } 4、给定程序中,函数fun的功能是: 有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。 例如,若N=3,有下列矩阵: 123 456 789计算结果为 100 650 10149 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #defineN4 /**********found**********/ voidfun(int(*t)___[N]) {inti,j; for(i=1;i {for(j=0;j { /**********found**********/ ___t[i][j]___=t[i][j]+t[j][i]; /**********found**********/ __t[j][i]___=0; } } } main() {intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j; printf("\nTheoriginalarray: \n"); for(i=0;i {for(j=0;j printf("\n"); } fun(t); printf("\nTheresultis: \n"); for(i=0;i {for(j=0;j printf("\n"); } } 5、给定程序中,函数fun的功能是: 对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。 例如,形参s所指的字符串为: baawrskjghzlicda,执行后p所指字符数组中的字符串应为: aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include voidfun(char*s,char*p) {inti,j,n,x,t; n=0; for(i=0;s[i]! ='\0';i++)n++; for(i=1;i /**********found**********/ ___t=i___; /**********found**********/ for(j=__i___+2;j if(s[t]>s[j])t=j; if(t! =i) {x=s[i];s[i]=s[t];s[t]=x;} } for(i=1,j=0;i /**********found**********/ p[j]=___0___; } main() {chars[80]="baawrskjghzlicda",p[50]; printf("\nTheoriginalstringis: %s\n",s); fun(s,p); printf("\nTheresultis: %s\n",p); } 6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。 函数fun的功能是输出这位学生的信息。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include typedefstruct {intnum; charname[9]; charsex; struct{intyear,month,day;}birthday; floatscore[3]; }STU; /**********found**********/ voidshow(STU___tt___) {inti; 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;i<3;i++) /**********found**********/ printf("%5.1f",___tt.score[i]___); printf("\n"); } main() {STUstd={1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0}; printf("\nAstudentdata: \n"); /**********found**********/ show(___std___); } 7、给定程序中,函数fun的功能是: 计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。 注意: 要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 123 456 789fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #defineN4 fun(intt[][N],intn) {inti,sum; /**********found**********/ ___sum=0___; for(i=0;i /**********found**********/ sum+=___t[i][i]___; for(i=0;i /**********found**********/ sum+=t[i][n-i-__1___]; returnsum; } main() {intt[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf("\nTheoriginaldata: \n"); for(i=0;i {for(j=0;j printf("\n"); } printf("Theresultis: %d",fun(t,N)); } 8、给定程序中,函数fun的功能是: 计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。 例如,有10个正数: 4630324061745154826,平均值为: 30.500000 主函数中输出: 4632404548 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #include #defineN10 doublefun(doublex[],double*y) {inti,j;doubleav; /**********found**********/ av=__0__; /**********found**********/ for(i=0;i for(i=j=0;i /**********found**********/ if(x[i]>av)y[__j++__]=x[i]; y[j]=-1; returnav; } main() {inti;doublex[N]={46,30,32,40,6,17,45,15,48,26}; doubley[N]; for(i=0;i printf("\n"); printf("\nTheaverageis: %f\n",fun(x,y)); for(i=0;y[i]>=0;i++)printf("%5.0f",y[i]); printf("\n"); } 9、给定程序中,函数fun的功能是: 计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数: 4630324061745154826,平均值为: 30.500000 移动后的输出为: 3061715264632404548 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #include #defineN10 doublefun(double*x) {inti,j;doubleav,y[N]; av=0; /**********found**********/ for(i=0;i for(i=j=0;i if(x[i] /**********found**********/ y[j]=x[i];x[i]=-1;__j++__;} i=0; while(i {if(x[i]! =-1)y[j++]=x[i]; /**********found**********/ __i++__; } for(i=0;i returnav; } main() {inti;doublex[N]; for(i=0;i printf("\n"); printf("\nTheaverageis: %f\n",fun(x)); printf("\nTheresult: \n",fun(x)); for(i=0;i printf("\n"); } 10、给定程序中,函数fun的功能是: 计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数: 4630324061745154826,平均值为: 30.500000 移动后的输出为: 4632404548306171526 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #include #defineN10 doublefun(double*x) {inti,j;doubles,av,y[N]; s=0; for(i=0;i /**********found**********/ av=__1__; for(i=j=0;i if(x[i]>av){ /**********found**********/ y[__2__]=x[i];x[i]=-1;} for(i=0;i /**********found**********/ if(x[i]! =__3__)y[j++]=x[i]; for(i=0;i returnav; } main() {inti;doublex[N]={46,30,32,40,6,17,45,15,48,26}; for(i=0;i printf("\n"); printf("\nTheaverageis: %f\n",fun(x)); printf("\nTheresult: \n",fun(x)); for(i=0;i printf("\n"); } 10、 (1)s/N (2)j++(3)-1 11、函数fun的功能是: 把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数值返回。 例如: 若a所指数组中的数据最初排列为: 9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为: 9、1、3、5、7,返回值为5。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #defineN9 intfun(inta[],intn) {inti,j; j=0; for(i=0;i /**********found**********/ if(a[i]%2==___1___) { /**********found**********/ a[j]=a[i];___2___; } /**********found**********/ return___3___; } main() {intb[N]={9,1,4,2,3,6,5,8,7},i,n; printf("\nTheoriginaldata: \n"); for(i=0;i printf("\n"); n=fun(b,N); printf("\nThenumberofodd: %d\n",n); printf("\nTheoddnumber: \n"); for(i=0;i printf("\n"); } 11、 (1)1 (2)j++(3)j 12、给定程序中,函数fun的功能是: 求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。 ss所指字符串数组中共有M个字符串,且串长 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #include #defineM5 #defineN20 intfun(char(*ss)[N],int*n) {inti,k=0,len=N; /**********found**********/ for(i=0;i<___1___;i++) {len=strlen(ss[i]); if(i==0)*n=len; /**********found**********/ if(len___2___*n) {*n=len; k=i; } } /**********found**********/ return(___3___); } main() {charss[M][N]={"shanghai","guangzhou","beijing","tianjing","chongqing"}; intn,k,i; printf("\nTheoriginalstringsare: \n"); for(i=0;i k=fun(ss,&n); printf("\nThelengthofshorteststringis: %d\n",n); printf("\nTheshorteststringis: %s\n",ss[k]); } 12、 (1)M (2)<(3)k 13、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。 函数fun的功能是: 找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 #include #defineN8 typedefstruct {intnum; intyear,month,day; }STU; intfun(STU*std,STU*k,intyear) {inti,n=0; for(i=0;i /**********found**********/ if(___1___==year) /**********found**********/ k[n++]=___2___; /**********found**********/ return(___3___); } main() {STUstd[N]={{1,1984,2,15},{2,1983,9,21
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 题库