1、计算机二级C上机考试题库2013年计算机二级考试C语言上机题库类型一:调整一个数的个、十、百、千位1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=4152。*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);填空:STYPE FILE Fp改错:for( i=0; i=sl; i +) 把s后字母改为小写Lt2*sl = 0;2.请编写函数fun,其功能是:将两个两位数的正整
2、数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1524。*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:*fw str str改错:void fun(long s,long *t)sl=sl*10;3.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12
3、,调用该函数后c=2514。*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);填空:fp fclose(fp) fname改错:for ( i=j+1; iscorei a改错:char *fun(char (*sq)M)return sp;7.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a
4、%10);填空:0 x t+改错:int i,s1; s后面是小写的Lti = ssl-i-1;8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);填空:1 s i*10改错:int fun(int n,int xxM)printf(%4d ,xxij);类型二:与*号有关的操作9.请编写函数fun,它的功能是:将字符
5、串中的前导*号全部删除,中间和尾部的*号不删除。删除前导*号int j=0; char *p = a ; while(*p = *) p+ ; while(*p) aj+ = *p ; p+; aj=0 ;填空:N tij tji改错:#define FU(m,n) (m)/(n)return(value);10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。除尾部*号,其余*删除char *q=a; int j=0; while(*q & qp) if(*q != *) aj+ = *q ; q+ ; while(*p) a
6、j+=*p+; aj=0;填空:tN i=0;i amid)11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。只删除中间*号int j=0; char *q=a; while(*q & q h) aj+ = *q+ ; while(*h & *p & h 0.001)12.请编写函数fun,它的功能是:删除字符串中所有的*号。删除串中所有*号int j =0 ; char *p=a; while(*p) if(*p != *) aj+=*p ; p+ ; aj=0;填空:1 j+ j改错:t=a;a=b;b=t;return(b);13.请编写函数fu
7、n,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。删除串尾*号 char *p = a ; while(*p) p+ ; p- ; while(*p = *) p- ; p+ ; *p = 0 ;填空:N i -1改错:a2=k/10; return i;14.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。除前导*外其他删除* int i=0,k; while(ai=*) i+; k=i; while(ai!=0) if(ai != *) ak+=ai; i+; ak=0;填空:N k ssi改错:int k=0; while( *p | *
8、q )15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。删除前导和尾部* char *p=a ; int j=0,len=0; while(*p) p+; len+; while(jlen-h-e) aj=ah+j; j+; aj=0;填空:N substr 0改错:fun(int x,int y, int z) return j;16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 char *p=a ; int j=0; while(*p) p+; p-; while(*p = *) p-; p+; whil
9、e(jn) i=n;j=k; for(; aj !=0 ; j+) ai+=aj;ai = 0; 填空:M N 0改错:t=1; return(2*s);18.请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。串前*移至串尾 char *p,*q; int n=0; p=a; while(*p=*) n+; p+; q=a; while(*p) *q=*p; p+;q+; for(;n0;n-) *q+=*; *q=0; 填空:a b.name scorei改错:sj+=si; sj=0;19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针ma
10、x传回该串地址(用*作为结束输入的标志)。int i,k=0,maxlen; maxlen=strlen(ak); for(i=1;i maxlen) maxlen = strlen(ai) ; k = i ; *max=ak;填空:N i i+1改错:aai=m%k; printf(%d,aai-1); 类型三:与下标或ASCII码有关20.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。下标奇数位置子母改大写 int i ; for(i = 1 ; i = a & ssitj+1)21.请编写个函数void fun(
11、char *ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。下标奇数位置子母改大写 char *p = ss ; int i = 0 ; while(*p) if(i % 2) & (*p = a & *p = z) *p -= 32 ; p+ ; i+ ; return ss ;填空:NULL n head,ch改错:for (i = 0,t = 0; pi ; i+)ct= 0;22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。下标为偶数字符删除 int i, j = 0 ;
12、 for(i=1; istrlen(s); i+=2) tj+=si ; tj = 0 ;填空:data next head改错:while(*r)*a = *r; a+; r+;23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。除首尾外其余ASCII码降序 char t; int i, j ; for(i = 1 ; i num-2 ; i+) for(j = i + 1 ; j num-1 ; j+) if(sisj) t=si;si=sj;sj=t; 填空:ssi n+j 1改错:if(* p = )*(p-1) = toupper(
13、*( p - 1 ) );24.请编写函数fun,其功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 ASCII码值为偶数删除 int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ;填空:STU stdi.num stdi改错:r+; p+; if(*r=0)25.请编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。ASCII值为奇数删除 int i, j = 0 ; for(i = 0
14、 ; i strlen(s); i+) if(si % 2=0) tj+ = si ; tj = 0 ;填空:si k 0改错:while(*w) if( *r = *p )26.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除除下标偶数同时ASCII码值偶数之外其余全部删除 int i, j = 0 ; for(i = 0 ; i strlen(s) ; i += 2) if(si % 2 = 0) tj+ = si ; tj = 0 ;填空:”r” fs ft改错:if(d%2=0) s/=10;27.请编写函数fun,其功能是:
15、将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除除下标奇数同时ASCII码也为奇数外其余字符删除 int i, j = 0 ; for(i = 1 ; i strlen(s) ; i += 2) if(si % 2) tj+ = si ; tj = 0 ;填空:0 i+ 2.0*i改错:void fun (char *s, char *t)t2*d=0;28.请编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。将下标为偶数同时ASCII码为奇数删除 int i, j = 0
16、; for(i = 0 ; i strlen(s) ; i+) if(!(i % 2) =0 & (si % 2) tj+ = si ; tj = 0 ;填空:j k p改错:while(ij) if (*a)103. 请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1int i;for(i=0;iN;i+) if(x=si) return i;return -1;填空:i%5 n ai改错:returnt;for(i=0;iN;i+)ti=xi;xi+1=findmid(a,b,c);类型四:数组和矩阵操作29.请编写函数fun,该函数的功能是
17、:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。下标0-p移到数组最后 int i, j = 0, bN ; for(i = p + 1 ; i n ; i+) bj+ = wi ; for(i = 0 ; i = p ; i+) bj+ = wi ; for(i = 0 ; i next q p-next改错:while(*s) s+;30.请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。删除一维数组相同的数 int i, t, j = 1, *p=a ;t=p0; for(i = 0 ; i =n)
18、aj = t ; return j ;填空:FILE * fclose(fp) fp改错:t=(STU *)calloc(sizeof(STU),m); tk=bj;31.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。找出一维数组最大值及其下标 int i ; *max=a0;*d = 0 ; for(i = 1; i n; i+)if(*max ai) *max = ai; *d = i ; 填空:1 2*i (-1)改错:k+; if (m = k )32请编写一个函数int fun(int *s,int t,int *
19、k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。求数组最大元素及下标 int i, pos = 0, max = *s ; for(i = 1 ; i t ; i+) if(max *(s + i) max = *(s + i) ; pos = i ; *k = pos ;填空:n+ 0 s+改错:t+=sk; *aver=ave;33.请编写函数fun(intaN,int n),该函数的功能是:使数组左下半三角元素中的值乘以n。左下三角元素乘n int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j 0) else if(k=0)34
20、.请编写函数fun(int aN,int n),该函数的功能是:使数组右上半三角元素中的值乘以m。右上三角元素同乘m int i, j; for(i = 0 ; i N ; i+) for(j = i ; j N ; j+) aij *= m ;填空:*av i xj改错:float fun(int n) for (i=2; i=n; i+)35请编写函数fun(int aN),该函数的功能是:使数组左下半三角元素中的值全部置成0。左下三角元素置0 int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j = i; j+) aij = 0 ;填空:*std P
21、ERSON std改错:int k,q,i;pti = strki ;36请编一个函数求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组每列最小元素 int i,j, min, k ; for(i = 0 ; i N ; i+) min = tt0i ; k = 0 ; for(j = 1 ; j ttji) min=ttji ; k = j ; ppi = ttki ; 填空:*std stdi.age max.name改错:void fun ( int*a, int*b )t=*b;*b=*a;*a=t;37.请编写一个函数fun,它的功能是:求出个2M整型二维数组中最大元
22、素的值,并将此值返回调用函数。求二维数组中最大元素的值 int i, j, max=a00; for(i=0; i2; i+) for(j=0; jM; j+) if(max 2*i+1改错:double fun (int n) s = s + (double)a / b;38.编写程序,实现矩阵(3行3列)的转置(即行列互换)。矩阵转置 int i,j,arr33 ; memcpy(arr, array, 9*sizeof(int) ; for(i = 0 ; i 3 ; i+) for(j = 0 ; j 3 ; j+) arrayij = arrji ;填空:N break n改错:su
23、m=0;scanf(%d,&aij);39.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。按列顺序33 44 55 33 44 55 int i,j; for(j = 0 ; j nn ; j+) for(i = 0 ; i mm ; i+) b*n=*(*(s+i)+j);*n=*n+1;填空:NODE * next r改错:if(i%2 | si%2=0) tj=0;40.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。按行顺序33 33 33 33 44 44 44 44 int i, j, k
24、 ; for(i = 0 ; i mm ; i+) for(j = 0 ; j next p-next =改错:p=h-next; p=p-next;41.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。按列顺序wshwshwsh for(j = 0 ; j M ; j+) bn = sji ; n = i * M + j + 1; 填空:FILE * fp ch改错:sj+=si;sj=0;.42请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。数组周边元素的平均值 int i, j, n=0; double sum=0; for ( i =0; iN; i+ ) sum+=w0i+wN-1i; n+=2; for
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1