logo资料库

计算机二级c语言模拟题.doc

第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
资料共20页,剩余部分请下载后查看
第一套 填空题: 给定程序的功能是将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。 例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include void fun( int m, int k ) { int aa[20], i; for( i = 0; m; i++ ) { /**********found**********/ aa[i] = ___1___; /**********found**********/ m /= ___2___; } for( ; i; i-- ) /**********found**********/ printf( "%d", ___3___[ i-1 ] ); } main() { int b, n; printf( "\nPlease enter a number and a base:\n" ); scanf( fun( n, b ); "%d %d", &n, &b ); } 第1 处内容填写有误 第[1]处操作错误 题面要求操作:内容为[aa[i] = 实际操作结果:内容为[aa[i]=___1___;] m%k;] 第2 处内容填写有误 第[2]处操作错误 题面要求操作:内容为[m /= k;] 实际操作结果:内容为[m/=___2___;] 第3 处内容填写有误 第[3]处操作错误 题面要求操作:内容为[printf( "%d", aa[ i-1 ] );] 实际操作结果:内容为[printf("%d",___3___[i-1]);] 给定程序modi.c中函数 fun 的功能是:把 m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt中。 例如:把3个串:"abc","CD","EF"串连起来,结果是"abcCDEF"。 请改正函数 fun 中的语法错误,使它能统计出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include #include
m, char *pt ) fun ( char #include int { /************found************/ str[][10], int k, q, i ; Int for ( k = 0; k < m; k++ ) { q = strlen ( str [k] ); for (i=0; i
/*Fibonacci数列是这么一个数列0,1,1,2,3,5,8,13……从它的第三项开始每一项的值都是其紧接着的 前两项的和。本也是采用函数的嵌套调用来完成,但若用嵌套调用方式会较难理解。它要求求出比s大的最小一 个数。在本题的编程中采用的是while(f2<=s)当它的条件这假时,即得到了第一个比t大的数。*/ int fun (int s) { int f1=0,f2=1,temp; while(f2<=s) { temp=f2; f2=f1+f2; f1=temp; /* 主函数 */ } return f2;} main() int { clrscr(); printf("n = %d, f = %d\n",n, fun(n)); NONO(); n; n=1000; } NONO ( {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ ) FILE *fp, *wf ; int i, n, s ; fp = fopen("bc06.in","r") ; if(fp == NULL) { printf("数据文件 bc06.in 不存在!") ; return ; } wf = fopen("bc06.out","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%d", &n) ; s = fun(n) ; fprintf(wf, "%d\n", s) ; } fclose(fp) ; fclose(wf) ; } 第二套 给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符,构成一个新的字符串放在u中,u中字 符按原字符串中字符顺序的逆序排列,不去掉重复字符。 例如,当s="112345",t="2467"时,u中的字符是:"5311"。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include void fun (char *s, char *t, char *u)
{ i, j, sl, tl, ul; int char r, *up=u; sl = strlen(s); for (i=0; i=tl)] 实际操作结果:内容为[if(j___2___tl)] 第3 处内容填写有误 第[3]处操作错误 题面要求操作:内容为[r = up[i]; up[i] = up[ul-1-i]; up[ul-1-i] = r;] 实际操作结果:内容为[r=___3___;] 给定程序modi.c中函数fun的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正 序连接到t串的后面。 例如:当s中的字符串为:"ABCDE"时, 则t中的字符串应为:"EDCBAABCDE"。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include #include void fun (char { /************found************/ *s, char *t) i; int sl = strlen(s); for (i=0; i
b_low=b%10; /*求b数的个位数*/ *c=a_up*1000+b_low*100+a_low*10+b_up; /*将a数的十位和个位数依次放在c数的千位和十位上, b数的 十位和个位数依次放在c数的个位和百位上*/ } c; a,b; long main() int { clrscr(); printf("Input a, b:"); scanf("%d%d", &a, &b); fun(a, b, &c); printf("The result is: %ld\n", c); NONO(); } NONO ( {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ ) FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen("in1.dat", "r") ; wf = fopen("bc06.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d,%d", &a, &b) ; fun(a, b, &c) ; fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ; } fclose(rf) ; fclose(wf) ; } 第三套 给定程序的功能是从字符串s尾部开始,按逆序把在其中出现的每相邻的两个字符,紧随其后重复出现一次, 放在一个新串t中,若字符串s中头部有剩余的单个字符也重复,放在t的最后。 例如:当s中的字符串为:"12345"时,则t中的字符串应为:"5454323211"。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 #include #include void fun (char { *s, char *t) int i, j, sl; sl = strlen(s); for(i=sl-1,j=0;i>=0;i-=2) { t[j++] = s[i]; if (i-1 >= 0) t[j++] = s[i-1]; /************found************/ t[j++] = ___1___; /************found************/
if (i-1 ___2___ 0) t[j++]=s[i-1]; } t[j] = '\0'; } main() { char printf("\nPlease enter string s:"); scanf("%s", s); s[100], t[100]; /************found************/ fun(___3___); printf("The result is: %s\n", t); } 第1 处内容填写有误 第[1]处操作错误 题面要求操作:内容为[t[j++] = s[i];] 实际操作结果:内容为[t[j++]=___1___;] 第2 处内容填写有误 第[2]处操作错误 题面要求操作:内容为[if (i-1 >= 0)] 实际操作结果:内容为[if(i-1___2___0)] 第3 处内容填写有误 第[3]处操作错误 题面要求操作:内容为[fun(s, t);] 实际操作结果:内容为[fun(___3___);] 给定程序modi.c中函数 fun 的功能是:找出一个大于给定整数m 且紧随 m 的素数,并通过函数名返回。 请改正 fun 函数中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include #include int fun(int m) int i, k ; { for (i = m + 1 ; ; i++) { for (k = 2 ; k < i ; k++) /**************found**************/ if (i % k != 0) break ; /**************found**************/ if (k < i) return(i); } } main( )
n ; int clrscr() ; printf("\nPlease enter n: " ) ; scanf("%d", &n ) ; printf("%d\n", fun(n)) ; { } 第1 处内容填写有误 第[1]处操作错误 题面要求操作:内容为[if(i%k==0)] 实际操作结果:内容为[if(i%k!=0)] 第2 处内容填写有误 第[2]处操作错误 题面要求操作:内容为[if(k>=i)] 实际操作结果:内容为[if(k
分享到:
收藏