国考计算机二级C语言 1讲解.docx

上传人:b****7 文档编号:25651840 上传时间:2023-06-11 格式:DOCX 页数:50 大小:67.22KB
下载 相关 举报
国考计算机二级C语言 1讲解.docx_第1页
第1页 / 共50页
国考计算机二级C语言 1讲解.docx_第2页
第2页 / 共50页
国考计算机二级C语言 1讲解.docx_第3页
第3页 / 共50页
国考计算机二级C语言 1讲解.docx_第4页
第4页 / 共50页
国考计算机二级C语言 1讲解.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

国考计算机二级C语言 1讲解.docx

《国考计算机二级C语言 1讲解.docx》由会员分享,可在线阅读,更多相关《国考计算机二级C语言 1讲解.docx(50页珍藏版)》请在冰豆网上搜索。

国考计算机二级C语言 1讲解.docx

国考计算机二级C语言1讲解

a与b合并成c

1

填空STYPEFILEfp

改错for(i=0;i<=sl;i++)t[sl*2]='\0';

将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

4152

*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;

2

填空*fwstrstr

改错voidfun(longs,long*t)sl=sl*10;

看改错,哪个结果正确以哪个为准

填空:

structstudenta.namea.score[i]

改错:

if(p==n)return-1;a[i]=a[i+1]

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

1524

*c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;

3

填空fpfclose(fp)fname或"myfile3.dat"

改错for(i=j+1;i

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

2514

*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;

4

填空”r”fsft

改错if(d%2==0)s/=10;

看改错,哪个结果正确以哪个为准

填空*nnexthead

改错a=NULL;if(*r==*p)

将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

5142

*c=(a%10)*1000+(b/10)*100+(a/10)*10+b%10;

51

填空0xt++

改错inti,sl;t[i]=s[sl-i-1];

将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。

1425

*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;

53

填空1si*10

改错intfun(intn,intxx[][M])

printf("%d",xx[i][j]);

将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。

4251

*c=(a/10)*1000+(b%10)*100+(a%10)*10+b/10;

72

填空kN-1temp

改错voidfun(int(*a)[M],intm)

a[j][k]=(k+1)*(j+1);

将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。

5241

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

88

填空structstudent*a->score[i]a

改错char*fun(char(*sq)[M])returnsp;

将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。

2415

*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;

 

整除

7

填空qnextnext

改错p=j;p=i;

求出1到m之内(含m)能被7或11整除的所有整数放在数组a中。

inti,j=0;*n=0;

for(i=1;i<=m;i++)

if(i%7==0||i%11==0){a[j++]=i;(*n)++;}

24

填空s[i]’9’*t=n

改错t=*x;*x=y;return(t);

求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中。

inti,j=0;

for(i=1;i<=1000;i++)

if((i%7==0||i%11==0)&&i%77!

=0)a[j++]=i;

*n=j;

48

填空a[i]a[i]0

改错y=1;d=a-i;

计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。

inti;doubles=0.0;

for(i=1;i<=n;i++)

if(i%5==0||i%9==0)s+=1.0/i;

returns;

78

填空‘0’s++sum

改错if((k%13==0)||(k%17==0))}

求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s。

doubles=0.0;inti;

for(i=0;i

if(i%3==0&&i%7==0)s=s+i;

returnsqrt(s);

112

填空48s++sum

if((k%13==0)||(k%17==0))

}

求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。

doublesum=0.0;

inti;

for(i=21;i<=n;i++)

if((i%3==0)&&(i%7==0))sum+=i;

returnsqrt(sum);

字符串

6

填空nextt->datat

改错voidfun(char*a)printf("%c",*a);

比较两个字符串的长度,函数返回较长的字符串。

char*p,*t1=t,*s1=s;intn=0,m=0;

while(*s1++)n++;while(*t1++)m++;

if(n>=m)p=s;

elsep=t;

returnp;

54

填空010*xn/10

改错*t=0if(d%2!

=0)

实现两个字符串的连接。

char*p=p1;while(*p)p++;while(*p2)*p++=*p2++;*p=0;

69

填空[N]ii+1

改错aa[i]=m%k;printf("%d",aa[i-1]);

从传入的num个字符串中找出最长的一个字符串。

inti,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];

96

填空doublef1f2

改错char*fun(char*s,char*t)

ss++;

tt++;

移动字符串中的内容,把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

inti,j;chart;for(i=1;i<=m;i++)

{t=w[o];for(j=1;w[j]!

=’\0’;j++)

w[j-1]=w[j];w[j-1]=t;}

 

17

填空i+1k=jt

改错voidfun(char*str,charch)

if(*str!

=ch)

str[1]=’\0’;

字符串中的内容逆置。

chart;inti,n;

n=strlen(s);

for(i=0;i

 

91

填空doublef1f2

改错p=h->next;p=p->next;

判断字符串是否为回文。

inti,n=0,flag=1;char*p=str;

while(*p++)n++;

for(i=0;i

if(str[i]==str[n-1-i])continue;

else{flag=0;break;}

returnflag;

19

填空ss[i]n+j1

改错if(*p=='')*(p-1)=toupper(*(p-1));

对长度为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII码降序排列。

chart;inti,j;

for(i=1;i

for(j=i+1;j

if(s[i]

8

此为填空题题干,请核对:

在带有头结点的单向链表中,查找数据域中值为ch的结点,找到后通过函数值返回该结点在链表中所处的顺序号。

填空NULLnhead,ch

改错for(i=0,t=0;p[i];i++)c[t]='\0';

将字符串ss中所有下标为奇数位置上的字母转换为大写。

inti;

for(i=1;i

if(ss[i]>='a'&&ss[i]<='z')

ss[i]-=32;

71

此为填空题题干,请核对:

将a所指4*3矩阵中第k行的元素与第0行的元素交换。

填空kNa[k][i]

改错for(i=strlen(t)-1;i;i--)

if(t[j]>t[j+1])

将字符串ss中所有下标为奇数位置上的字母转换为大写。

inti;

for(i=1;i

if(ss[i]>='a'&&ss[i]<='z')

ss[i]-=32;

70

填空0||1

改错t-=1.0/i;returnt;

删除字符串中的所有空格。

inti=0;char*p=str;

while(*p)

{if(*p!

=’’)str[i++]=*p;p++;}

str[i]=’\0’;

18

填空klenss[i][j]

改错result*=n--;returnresult;

从字符串中删除指定的字符。

inti=0;char*p=s;

while(*p){if(*p!

=c)s[i++]=*p;p++;}

s[i]=’\0’;

26

填空t=ii’\0’

改错while(fabs(t)>=num)t=s/n;

删除一个字符串中指定下标的字符。

inti,j=0;

for(i=0;i

if(i!

=n)b[j++]=a[i];b[j]=’\0’;

10

填空datanexthead

改错while(*r)*a=*r;a++;r++;

将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

inti,j=0,n=strlen(s);

for(i=0;i

if(i%2!

=0)t[j++]=s[i];

t[j]=’\0’;

 

11

填空STUstd[i].numstd[i]

改错r++;p++;if(*r==’\0’)

将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

inti,j=0,n=strlen(s);

for(i=0;i

if(s[i]%2!

=0)t[j++]=s[i];

t[j]=’\0’;

60

填空s[i]k’\0’

改错while(*w)if(*r==*p)

将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

inti,j=0,n=strlen(s);

for(i=0;i

if(s[i]%2==0)t[j++]=s[i];

t[j]=’\0’;

61

填空jkp

改错while(i

将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。

inti,j=0,n=strlen(s);

for(i=0;i

if(!

(i%2==0&&s[i]%2!

=0))t[j++]=s[i];

t[j]=’\0’;

9

填空*nnexthead

改错a=NULL;if(*r==*p)

将s所指字符串中除了下标为偶数,同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。

inti,j=0,n=strlen(s);

for(i=0;i

if(i%2==0&&s[i]%2==0)t[j++]=s[i];

t[j]=’\0’;

106

填空fsfsft

改错if(d%2==0)s/=10;

将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。

inti,j=0,n=strlen(s);

for(i=0;i

if(i%2==0&&s[i]%2==0)t[j++]=s[i];

t[j]=’\0’;

59

填空0i++2.0*i

改错voidfun(char*s,char*t)t[2*d]=’\0’;

将s所指字符串中除了下标为奇数,同时ASCII值也为奇数的字符之外,其余的所有字符都删除。

inti,j=0,n=strlen(s);

for(i=0;i

if(i%2!

=0&&s[i]%2!

=0)t[j++]=s[i];

t[j]=’\0’;

22

填空j++s[i]=t1[i]j

改错for(j=i+1;j<6;j++)*(pstr+i)=*(pstr+j);

求出ss所指字符串中指定字符的个数。

intn=0;

while(*ss){if(*ss==c)n++;ss++;}

returnn;

20

填空[N]len*n=len

改错t+=1.0/i;returnt;

统计一个长度为2的字符串在另一个字符串中出现的次数。

intn=0;char*p,*r;

while(*str)

{p=str;r=substr;

while(*r)

if(*r==*p){r++;p++;}

elsebreak;

if(*r==‘\0’)n++;str++;}

returnn;

25

填空1s[k]c

改错longs=0,t=0;t=t/10;

统计在字符串中‘a’到‘z’26个字母各自出现的次数,并依次放在pp所指数组中。

inti;

for(i=0;i<26;i++)pp[i]=0;

while(*tt)

{if(*tt>='a'&&*tt<='z')pp[*tt-'a']++;tt++;}

100

填空filenamefpfp

改错p=(NODE*)malloc(sizeof(NODE));

returnh;

统计一行字符串中单词的个数。

inti,n=0;

for(i=0;i

if(s[i]>=’a’&&s[i]<=’z’&&s[i+1]==’’||s[i+1]=='\0’)n++;

returnn;

55

填空100x

改错if(n==0)result*=n--;

看改错,哪个正确填哪个

填空0t(t-1)*(t+2)/2

改错b[i]=0;

b[a[i]-‘a’]++;

if(b[max]

将一个数字字符串转换为一个整数。

longs=0,t;inti=0,j,n=strlen(p),k,s1;

if(p[0]==’-’)i++;

for(j=i;j<=n-i;j++)

{t=p[j]-’0’;s1=10;

for(k=j;k

if(p[0]==’-’)return–s;

elsereturns;

94

填空nextNULLr

改错r=t;if(*r==0)

将放在字符串数组中的M个字符串,按顺序合并组成一个新的字符串。

inti,j,k=0;

for(i=0;i

{for(j=0;j

if(a[i][j])b[k++]=*(*(a+i)+j);

elsebreak;}

b[k]=’\0’;

101

填空[N]ii+1

改错aa[i]=m%k;printf("%d",aa[i-1]);

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

(用****作为结束输入的标志)。

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

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

102

填空b[k]N/2<

改错int  t[N] ,i, num=0;

t[num++]=b[i];

for(i=0; i

请编写函数fun,其功能是:

统计s所指字符串中的数字字符个数,并作为函数值返回。

intn=0;char*p=s;

while(*p)

{if(*p>='0'&&*p<='9')n++;p++;}

returnn;

103

填空pbp->datap->next

改错int i, one=0, zero=0;

switch( s[i] )

case 0:

zero++;break;

请编写函数fun,其功能是将形参s所指的字符串放入形参a所指的字符数组中,使a中存放同样的字符串。

while(*a++=*s++);a--;

107

填空h->next0r

改错r=t;if(*r==0)

将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

inti;*b=0;

for(i=0;i

strcat(b,a[i]);

108

填空0ti+t或t+i

改错

b[i]=0;

b[a[i]-'a']++;

if(b[max]

将一个数字字符串转换成与其面值相同的长整型整数。

inti,n;longt=0;n=strlen(s);

for(i=0;i

{t=t*10;t=t+(s[i]-'0');}

returnt;

平均分和结构体

5

填空xps

改错longk=1;num/=10;

计算n门课程的平均分。

floataver=0.0;inti;

for(i=0;i

returnaver;

73

填空j0i++

改错for(i=2;i<=m;i++)y-=1.0/(i*i);

m个人成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

inti,k=0,aver=0;

for(i=0;i

for(i=0;i

if(score[i]

returnk;

40

填空charch<=’9’’0’

改错b[k]=*p;b[k++]='';

N名学生的成绩已在一个带头节点的链表结构中,求出平均分。

floataver=0.0;

while(h!

=NULL){aver+=h->s;h=h->next;}

returnaver/N;

90

填空fp==fp

改错n=strlen(aa);ch=aa[i];

N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。

doublemax=h->s;

for(h=h->next;h->next!

=NULL;h=h->next)

if(h->s>max)max=h->s;

returnmax;

36

填空a[i]a[j]a[j]

改错[1]switch(g)

[2]case1:

case2:

return1;

或case1:

return1;case2:

return1;

某学生的记录由学号,8门课程成绩和平均分组成,求出该学生的平均分放在记录的ave成员中。

doubleav=0.0;inti;

for(i=0;is[i];av/=N;

a->ave=av;

37

填空*a2i+1

改错sum=0.0;if((i+1)%5==0)

学生的记录由学号和成绩组成,把低于平均分的学生数据放在b所指的数组中。

doubleaver=0.0;inti,j=0;

for(i=0;i

for(i=0;i

if(a[i].s

returnaver;

86

填空->sno->name&t

改错doublefun(doublea,doublex0)

if(fabs(x1-x0)>0.00001)

学生的记录由学号和成绩组成,把高于等于平均分的学生数据放在b所指的数组中。

inti,j=0;doubleaver=0.0;

for(i=0;i

for(i=0;i

if(a[i].s>=aver)b[j++]=a[i];*n=j;

returnaver;

 

12

填空std[i].yearstd[i]n

改错IsPrime(intn)if(!

(n%i))

已知学生的记录由学号和学习成绩构成,找出成绩最高的学生记录(规定只有一个最高分)。

inti,max=a[0].s;

for(i=0;i

if(a[i].s>max){max=a[i].s;*s=a[i];}

62

填空0x[i]/Nj++

改错doublefun(intm)for(i=100;i<=m;i+=100)

已知学生的记录由学号和学习成绩构成,找出成绩最低的学生记录(规定只有一个最低分)。

inti,min=a[0].s;

for(i=0;i

if(a[i].s

 

38

填空1ia[p+i]

改错floatk;if(*a<*c)

学生的记录由学号和成绩组成,把分数最高的学生数据放在b所指的数组中,注意:

分数最高的学生可能不止一个。

inti,j=0,n=0,max=a[0].s;

for(i=0;i

if(a[i].s>max)max=a[i].s;

f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1