二级C语言上机题库答案

更新时间:2023-11-23 06:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

类型一:调整个、十、百、千位

1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=4152。 *c=(a/10)*1000+(b/10)*100+(a)*10+(b);

填空:STYPE FILE Fp

改错:for( i=0; i<=sl; i ++) 把s后字母改为小写Lt[2*sl] = '\\0';

2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1524。 *c=(b/10)*1000+(a)*100+(b)*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,调用该函数后c=2514。 *c=(b)*1000+(a)*100+(b/10)*10+(a/10);

填空:fp fclose(fp) fname

改错:for ( i=j+1; i<=n-1 ; i++ ) p=i;

4.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=5142。 *c=(a)*1000+(b/10)*100+(a/10)*10+(b);

填空:\ fs ft 改错:if (d%2==0) s /= 10;

5.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=5241。 *c=(a)*1000+(b)*100+(a/10)*10+(b/10);

填空:k N-1 temp

改错:fun(int a[][M], int m) a[j][k]=(k+1)*(j+1);

6.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。 *c = (b)*1000+(a/10)*100+(b/10)*10+a;

填空:struct student * a->score[i] 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+(a);

填空:0 x t++ 改错:int i,s1; s后面是小写的L

t[i] = s[sl-i-1]; 8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。 *c=(a/10)*1000+(b)*100+(a)*10+(b/10);

填空:1 s i*10 改错:int fun(int n,int xx[][M]) printf(\

类型二:与*号有关的操作

9.请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 删除前导*号

int j=0; char *p = a ; while(*p == '*') p++ ;

while(*p) { a[j++] = *p ; p++; } a[j]=0 ;

填空:[N] t[i][j] t[j][i] 改错:#define FU(m,n) ((m)/(n)) return(value);

10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。 除尾部*号,其余*删除 char *q=a; int j=0;

while(*q && q

填空:t[][N] i=0;i a[mid])

11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 只删除中间*号 int j=0; char *q=a;

while(*q && q < h) a[j++] = *q++ ; while(*h && *p && h < p)

{ if(*h != '*') a[j++] = *h ; h++; } while(*p) a[j++] = *p++ ; a[j] = 0 ;

填空:sum=0 t[i][i] 1 改错:double r;

while(fabs(m-n)>0.001)

12.请编写函数fun,它的功能是:删除字符串中所有的*号。 删除串中所有*号 int j =0 ; char *p=a; while(*p)

{if(*p != '*') a[j++]=*p ; p++ ; } a[j]=0;

填空:1 j++ j 改错:t=a;a=b;b=t; return(b);

13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 删除串尾*号 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(a[i]=='*') i++; k=i;

while(a[i]!='\\0') { if(a[i] != '*') a[k++]=a[i]; i++; } a[k]='\\0';

填空:N k ss[i] 改错:int k=0; while( *p || *q )

15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。 删除前导和尾部*

char *p=a ; int j=0,len=0; while(*p) {p++; len++;}

while(j

填空: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++;

while(j

填空:a[i] % 2 a[j] j 改错:fun (int n) if(n==1)

17.请编写函数fun,它的功能是:使字符串的前导*号不得多于n个 前导*不多于n个 int i=0,j,k=0;

while(a[k]=='*') k++; if(k>n) { i=n;j=k;

for(; a[j] !=0 ; j++) a[i++]=a[j]; a[i] = 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(;n>0;n--) *q++='*'; *q='\\0';

填空:a b.name score[i] 改错:s[j++]=s[i]; s[j]=0;

19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址

(用****作为结束输入的标志)。 int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;i

{ if(strlen(a[i]) > maxlen)

{ maxlen = strlen(a[i]) ; k = i ; } } *max=a[k];

填空:[N] i i+1 改错:aa[i]=m%k; printf(\

类型三:与下标或ASCII码有关

20.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 下标奇数位置子母改大写 int i ;

for(i = 1 ; ss[i]!='\\0';i++)

if(i%2==1&&ss[i]>= 'a' && ss[i]<= 'z') ss[i]-=32;

填空:k N a[k][i] 改错:for( i = strlen( t )-1; i; i-- ) if(t[j]>t[j+1])

21.请编写—个函数void fun(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; p[i] ; i++) c[t]= '\\0';

22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 下标为偶数字符删除 int i, j = 0 ;

for(i=1; i

填空:data next head 改错:while(*r) *a = *r; a++; r++;

23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。

除首尾外其余ASCII码降序 char ch ; int i, j ;

本文来源:https://www.bwwdw.com/article/nk7v.html

Top