计算机二级复习资料50题.docx
- 文档编号:30044861
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:223
- 大小:78.92KB
计算机二级复习资料50题.docx
《计算机二级复习资料50题.docx》由会员分享,可在线阅读,更多相关《计算机二级复习资料50题.docx(223页珍藏版)》请在冰豆网上搜索。
计算机二级复习资料50题
第1套.填空
给定程序中,函数fun的功能是:
将a所指4*3矩阵中第k行的元素与第0行
元素交换。
例如,有下列矩阵:
123
456
789
101112
若k为2,程序执行结果为:
789
456
123
101112
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#defineN3
#defineM4
/**********found**********/
voidfun(int(*a)[N],int__1__)
{inti,temp;
/**********found**********/
for(i=0;i<__2__;i++)
{temp=a[0][i];
/**********found**********/
a[0][i]=__3__;
a[k][i]=temp;
}
}
main()
{intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j;
printf("Thearraybeforemoving:
\n\n");
for(i=0;i {for(j=0;j printf("\n\n"); } fun(x,2); printf("Thearrayaftermoving: \n\n"); for(i=0;i {for(j=0;j printf("\n\n"); } } 第1空: k第2空: N第3空: a[k][i] 程序修改题: 给定程序MODI1.C中函数fun的功能是: 读入一个字符串(长度<20),将该字符 串中的所有字符按ASCII码升序排序后输出。 例如,若输入: edcba,则应输出: abcde。 请改正程序中的错误,使它能统计出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include voidfun(chart[]) { charc; inti,j; /**********found***********/ for(i=strlen(t);i;i--) for(j=0;j /**********found***********/ if(t[j] { c=t[j]; t[j]=t[j+1]; t[j+1]=c; } } main() { chars[81]; printf("\nPleaseenteracharacterstring: "); gets(s); printf("\n\nBeforesorting: \n\"%s\"",s); fun(s); printf("\nAftersortingdecendingly: \n\"%s\"\n",s); } 第1处: “for(i=strlen(t);i;i--)”应改为“for(i=strlen(t)-1;i;i--)”; 第2处: “if(t[j] 程序设计 请编写一个函数fun,其功能 是: 将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置不是字母,则不转换) 例如,若输入"abc4EFg",则应输出"aBc4EFg" 注意: 部分源程序在文件PROG1.C文件中。 请勿改动住函数main和其它函数的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include voidfun(char*ss) { } voidmain(void) { chartt[51];voidNONO(); printf("\nPleaseenterancharacterstringwithin50characters: \n"); gets(tt); printf("\n\nAfterchanging,thestring\n\"%s\"",tt); fun(tt); printf("\nbecomes\n\"%s\"",tt); NONO(); } voidNONO() { /*请在此函数内打开文件,输入测试数据,调用fun函数, 输出数据,关闭文件。 */ chartt[51],ch; FILE*rf,*wf; intlen,i=0; rf=fopen("in.dat","r"); wf=fopen("out.dat","w"); while(i<10){ fgets(tt,50,rf); len=strlen(tt)-1; ch=tt[len]; if(ch=='\n'||ch==0x1a)tt[len]=0; fun(tt); fprintf(wf,"%s\n",tt); i++; } fclose(rf); fclose(wf); } 答案: voidfun(char*ss) { inti=0; while(*ss) { if(*ss>=’a’&&*ss<=’z’&&i%2==1) ss++; i++; } } 第2套.填空 给定程序中,函数fun的功能是: 将N*N矩阵中元 789素的值按列右移1个位置,右边 被移出矩阵的元素绕回左边。 例如,N=3,有下列矩阵 123 456 计算结果为 312 645 978 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #defineN4 voidfun(int(*t)[N]) {inti,j,x; /**********found**********/ for(i=0;i<___1___;i++) { /**********found**********/ x=t[i][___2___]; for(j=N-1;j>=1;j--) t[i][j]=t[i][j-1]; /**********found**********/ t[i][___3___]=x; } } main() {intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j; printf("Theoriginalarray: \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"); } } 第一空: N第二空: N-1第三空: 0 改错 给定程序MODI1.C中函数fun的功能是: 计算并输出下列级数的前N项之和Sn,直到Sn+1大于q为止,q的值通过形参传入。 234N+1 Sn=---+---+---+.....+------ 123N 例如,若q的值为: 50.0则函数值为: 49.394948。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include doublefun(doubleq) {intn;doubles,t; n=2; s=2.0; while(s<=q) { t=s; /************found************/ s=s+(n+1)/n; n++; } printf("n=%d\n",n); /************found************/ returns; } main() { printf("%f\n",fun(50)); } 1处改为“s=s+(n+1)/n;”应改为“s=s+(double)(n+1)/n;”; 2处改为“returns;”应改为“returnt;” 程序设计题 编写函数fun,它的功能是: 求Fibonacci数列中大于t的最小的一个数,结果由函数返回 其中Fibonacci数列F(n)的定义为: F(0)=0,F (1)=1 F(n)=F(n-1)+F(n-2) 例如: 当t=1000时,函数值为: 1597。 #include #include intfun(intt) { } main()/*主函数*/ {intn; voidNONO(); n=1000; printf("n=%d,f=%d\n",n,fun(n)); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; inti,n,s; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ fscanf(fp,"%d",&n); s=fun(n); fprintf(wf,"%d\n",s); } fclose(fp); fclose(wf); } 答案: intfun(intt) { intf0=0,f1=1,f=0; while(f { f=f0+f1; f0=f1; f1=f; } returnf; } 第三套: 填空 给定程序中已建立带有头节点的单项列表,链表中的各节点按数据域递增有序链接。 函数fun的功能是: 删除链表中数据域相同的结点,使之只保留一个。 #include #include #defineN8 typedefstructlist {intdata; structlist*next; }SLIST; voidfun(SLIST*h) {SLIST*p,*q; p=h->next; if(p! =NULL) {q=p->next; while(q! =NULL) {if(p->data==q->data) {p->next=q->next; /**********found**********/ free(___1___); /**********found**********/ q=p->___2___; } else {p=q; /**********found**********/ q=q->___3___; } } } } SLIST*creatlist(int*a) {SLIST*h,*p,*q;inti; h=p=(SLIST*)malloc(sizeof(SLIST)); for(i=0;i {q=(SLIST*)malloc(sizeof(SLIST)); q->data=a[i];p->next=q;p=q; } p->next=0; returnh; } voidoutlist(SLIST*h) {SLIST*p; p=h->next; if(p==NULL)printf("\nThelistisNULL! \n"); else {printf("\nHead"); do{printf("->%d",p->data);p=p->next;}while(p! =NULL); printf("->End\n"); } } main() {SLIST*head;inta[N]={1,2,2,3,4,4,4,5}; head=creatlist(a); printf("\nThelistbeforedeleting: \n");outlist(head); fun(head); printf("\nThelistafterdeleting: \n");outlist(head); } 答案: 第1空: q第2空: next第3空: next 修改题: 用选择法对数组中n个元素按从小到大的顺序进行修改。 #include #defineN20 voidfun(inta[],intn) {inti,j,t,p;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 复习资料 50