二级C语言上机考试题库精简版.docx

上传人:b****6 文档编号:8437826 上传时间:2023-01-31 格式:DOCX 页数:61 大小:38.21KB
下载 相关 举报
二级C语言上机考试题库精简版.docx_第1页
第1页 / 共61页
二级C语言上机考试题库精简版.docx_第2页
第2页 / 共61页
二级C语言上机考试题库精简版.docx_第3页
第3页 / 共61页
二级C语言上机考试题库精简版.docx_第4页
第4页 / 共61页
二级C语言上机考试题库精简版.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

二级C语言上机考试题库精简版.docx

《二级C语言上机考试题库精简版.docx》由会员分享,可在线阅读,更多相关《二级C语言上机考试题库精简版.docx(61页珍藏版)》请在冰豆网上搜索。

二级C语言上机考试题库精简版.docx

二级C语言上机考试题库精简版

2014年3月二级C语言上机考试题库精简版

使用说明:

以填空题题干(即题目要求)作为查找参照,上机题分为填空题、改错题、编程题;如果你的考试填空题的题目和这题库中给出的某一道填空题的题目的题干一致,那么你的改错题、编程题的答案也都在下面。

注:

1、请在纯英文输入法状态下答题2、当出现“==”是指连续输入两个等于号=,2、建议不要使用复制和粘贴,在纯英文状态下手动输入。

“||”用“Shift+\”即可打出。

特别注意:

找到相应的题之后不要完全照抄答案,对照前后信息,只要选取答案所需要的部分,切记重复填写或多填答案所不需要的部分!

第一套:

程序填空

程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

(1)structstudentt;

(2)for(i=0;i

(3)if(strcmp(a[i].name,a[j].name)>0)

程序修改

(1)q=p+i;

(2)while(q>p)

程序设计

intfun(STREC*a,STREC*b,intl,inth)

{inti,j=0;

for(i=0;i

if((a[i].s>=1&&a[i].s<=h)

b[j++]=a[i];

returnj;

}

第二套程序填空

给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:

删除链表中数据域值相同的结点,使之只保留一个。

(1)free(q);

(2)q=p->next;(3)q=q->next;

程序修改

(1)p=j;

(2)p=i;

程序设计

voidfun(intm,int*a,int*n)

{

inti;

*n=0;

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

if((i%7==0)||(i%11==0))

a[(*n)++]=i;

}

第三套程序填空

函数fun的功能是:

逆置数组元素是的值。

例如:

若a所指数组中的数据依次为:

1、2、3、4、5、6、7、8、9,则逆置后依次为:

9、8、7、6、5、4、3、2、1。

形参n给出数组中数组中数据的个数。

(1)for(i=0;i

(2)a[i]=a[n-1-i];

(3)a[n-i-1]=t;

程序修改

(1)n=*p-‘0’;

(2)n=n*8+*p-‘0’;

程序设计

STRECfun(STREC*a,char*b)

{

STRECc;

Inti;

c.num[0]=’\0’;

c.s=-1;

for(i=0;i

if(strcmp(a[i].num,b)==0)

{strcpy(c.num,a[i].num);

c.s=a[i].s;break;}

returnc;

}

第四套程序填空

给定程序中,函数fun的功能是:

在带有头结点的单向链表中,查找数据域中值为ch的结点。

找到后通过函数值返回该结点在链表中所处的顺序号:

若不存在值为ch的结点,函数值返回0.

(1)while(p!

=0)

(2)if(p->data==ch)returnn;

(3)k=fun(head,ch);

程序修改

(1)for(i=0,t=0;p[i];i++)

(2)c[t]=’\0’;

程序设计

voidfun(char*ss)

{

inti;

for(i=1;i

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

ss[i]-=32;

}

}

第五套程序填空

给定程序中,函数fun的功能是:

计算下式前n项的和作为函数值返回。

例如:

当形参n的值为10的时,函数返回:

9.6125588。

(1)s=0;

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

(3)s=s+(2.0*i-1)*(2.0*i+1)/(t*t);

程序修改

(1)for(i=0;str[i];i++)

(2)if(substr[k+1]==’\0’)

程序设计

doublefun(doubleeps)

{doubles=1,t=1./3;

intn=1;

while(t>=eps)

{s+=t;n++;t=t*n/(2.0*n+1)

;}

return(s*2.0);

}

第六套程序填空

给定程序中,函数fun的功能是:

将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。

(1)t[j]=s[i];j++;

(2)for(i=0;i

(3)t[j+k]=0;

程序修改

(1)while(*w)

(2)if(*r==*p)

程序设计

voidfun(char*s,chart[])

{inti,j=0;

for(i=0;i

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

t[j]=0;

}

第七套程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。

函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。

(1)structstudent*

fun(structstudent*a)

(2)for(i=0;i<3;i++)

a->score[i]+=1;

(3)returna;

程序修改

(1)char*fun(char(*sq)[M])

(2)returnsp;

程序设计

#include

voidfun(inta,intb,long*c)

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

}

第八套程序填空

函数fun的功能是:

将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。

形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。

(1)p=(n%2==0)?

n/2:

n/2+1;

(2)a[i]=a[p+i];(3)a[p+i]=t;

程序修改

(1)floatk;

(2)if(*a<*c)

程序设计

intfun(STREC*a,STREC*b)

{

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

for(i=1;i

if(max

for(i=0;i

if(max==a[i].s)b[n++]=a[i];

returnn;

}

第九套程序填空

给定程序中,函数fun的功能是:

计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

(1)for(i=0;i

av+=x[i]/N

(2)y[j]=x[i];

x[i]=-1;j++;}(3)i++;

程序修改

(1)num[k]=0;

(2)switch(*s)

程序设计

intfun(inta[M][N])

{

inttot=0,i,j;

for(i=0;i

{

tot+=a[0][i];

tot+=a[M-1][i];

}

for(i=1;i

tot+=a[i][0];

tot+=a[i][N-1];

}

returntot;

}

第十套程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。

函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。

(1)structstudent

fun(structstudenta)

(2)strcpy(a.name,”LiSi”);(3)a.score[i]+=1;

程序修改

(1)if(p==n)return-1’

(2)a[i]=a[i+1];

程序设计

intfun(STREC*a,STREC*b)

{

inti,j=0,min=a[0].s;

for(i=0;i

{if(min>a[i].s){

j=0;

b[j++]=a[i];min=a[i].s;

}

elseif(min==a[i].s)

b[j++]=a[i];

}

returnj;

}

第十一套程序填空

给定程序中,函数fun的功能是:

计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中大于平均值的数据移至数据的前部,小于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

(1)av=s/N;

(2)y[j++]=x[i];x[i]=-1;}

(3)if(x[i]!

=-1)

y[j++]=x[i];

程序修改

(1)#include

(2)upfst(char*p)

程序设计

doublefun(intw[][N])

{inti,j,n=0;

doublesum=0;

for(i=0;i

{sum+=w[0][i]+w[N-1][i];

n+=2;}

for(i=1;i

{sum+=w[i][0]+w[i][N-1];

n+=2;

}

returnsum/n;

}

第十二套程序填空

给定程序中,函数fun的功能是:

将自然数1—10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

(1)fprintf(fp,”%d%f\n”,i,sqrt((double)i));

(2)fclose(fp);

(3)if((fp=fopen(fname,”r”))==NULL)

程序修改

(1)for(i=j+1;i

(2)p=i;

程序设计

#include

voidfun(inta,intb,long*c)

{

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

第十三套程序填空

给定程序中,函数fun的功能是:

找出N*N矩阵中每列元素中的最大值,并按顺序一次存放于形参b所指的一维数组中。

(1)b[i]=a[0][i];

(2)if(b[i]

b[i]=a[j][i];

(3)fun(x,y);

程序修改

(1)intfun(int*x,int*y)

(2)t=*x;*x=*y;*y=t;

程序设计

#include

#defineMAX100

intfun(intlim,intaa[MAX])

{inti,j,k=0;

for(i=2;i<=lim;i++)

{

for(j=2;j<=(i/2);j++)

if(i%j==0)break;

if(j>(i/2))aa[k++]=i;

}returnk;}

第十四套程序填空

函数fun的功能是进行字母转换。

若形参ch中小写英文字母,则转换成相应的大写英文字母;若形参ch中是大写英文字母,则转换成相应的小写英文字母;并将转换的结果作为函数值返回。

第一处if((ch>=’a’)&&(ch<=’z’))

第二处return

ch+’a’-‘A’

第三处returnch;

程序修改

(1)voidfun(int*a)

(2)a[j]=a[j-1];

程序设计

intfun(intn)

{

ints=0,i;

for(i=2;i

if(n%i==0)s+=i;

returns;

}

第十五套程序填空

给定程序中,函数的功能是:

把形参s所指字符串下标为奇数的字符右移到下一个奇书位置,最右边呗移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:

字符串的长度大于等于2)。

例如,形参s所指的字符串为:

abcdefgh,执行结果为:

ahcbedg。

第一处if(n%2==0)k=n-1;

第二处c=s[k];

第三处s[1]=c;

程序修改

(1)longs=0,t=0;

(2)t=t/10;

程序设计

voidfun(char*tt,intpp[])

{

char*p=tt;

inti;

for(i=0;i<26;i++)

pp[i]=0;

while(*p)

{if(*p>=’a’&&*p<=’z’)

pp[*p-‘a’]+=1;

p++;

}

}

第十六套程序填空

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。

函数fun的功能是:

找出指定编号人员数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中编号为空串。

第1处STUfun(STU*std,char*num)

第2处if(strcmp(std[i].num,num)

==0)

第3处return(std[i]);

程序修改

(1)r++;p++;

(2)if(*r==00)

程序设计

#include

#include

voidfun(char*s,chart[])

{

inti,j=0;

for(i=0;i

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

t[j]=0;

}

第十七套序填空

给定程序中,函数fun的功能是:

统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。

例如,形参s所指的字符串为:

abcdef35adgh3kjsdf7。

输出结果为:

4。

第1处for(i=0;s[i]!

=NULL;i++)

第2处if(s[i]>=’0’&&s[i]<=’9’)

n++;

第3处*t=n;

程序修改

(1)t=*x;*x=y;

(2)return(t);

程序设计

#include

viodfun(int*a,int*n)

{inti;

*n=0;

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

if(((i%7)==0││(i%11)==0

&&(i%77)!

=0)a[(*n)++]=i;

}

第十八套程序填空

给定程序中,函数fun的功能是:

有N×N矩阵,根据给定的m(m<=n)值,将每行元素中的值均右移m个位置,左边值为0.

第1处for(i=0;i

第2处t[i][j+m]=t[i][j];

第3处for(j=0;j

程序修改

(1)while((2<=high)&&(n<10))

(2)yes=0;break;

程序设计

floatfun()

{

floatx0,x1=0.0;

do{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>0.000001);

returnx1;

}

第十九套程序填空

给定程序中,函数fun的功能是:

将a所指的3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。

第1处for(p=1;p<=k;p++)

第2处for(j=0;j

a[i][j]=a[i][j+1];

第3处a[i][N-1]=temp;

程序修改

(1)fun(inta[][M],intm)

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

程序设计

voidfun(inta,intb,int*c)

{

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

+(a/10)*10+(b/10);

}

第二十套程序填空

给定程序中,函数fun的功能是:

对形参s所指字符串中下标为奇数的字符ASCII码大小递增排序,并将排序后的下标为奇数的字符取出,形成一个新串。

第1处t=i;

第2处for(j=i+2;j

第3处p[j]=0;

程序修改

(1)while((fabs(t))>=num)

(2)t=s/n

程序设计

viodfun(chara[],char

b[],intn)

{

strncpy(b,a,n);

b[n]=0;

strcat(b,a+n+1);

}

第二十一套程序填空

给定程序中,函数fun的功能是:

在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。

ss所指字符串数组中共有N个字符串,且串小于M。

第一处voidfun(char(*ss)[M],intk)

第二处while(i

第三处ss[i][k]=0;i++;}

程序修改

(1)t=1;

(2)return(2*s);

程序设计

voidfun(char*a,intn)

{

inti=0,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;

}}

第二十二套程序填空

给定程序中,函数fun的功能是:

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

例如:

有下列矩阵

123

456

789

101112

若k为2,程序执行结果为

789

456

123

101112

第一处voidfun(int(*a)[N],intk)

第二处for(i=0;i

第三处a[0][i]=a[k][i];

程序修改

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

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

程序设计

voidfun(char*ss)

{

char*p=ss;

inri=0;

while(*p){

if((i%2)&&(*p>=’a’&&*p<=’z’))

*p-=32;

p++;

i++;

}

}

第二十三套程序填空

给定程序的功能是:

调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数的返回值是1,失败是返回值是0.在复制的过程中,把复制的内容输出到终端屏幕。

主函数源文件名放在变量sfname中,目标文件放在变量tfname中。

第一处

if((fs=fopen(source,”r”))==NULL)

第二处while(!

feof(fs))

第三处fputc(ch,ft);

程序修改

(1)if(d%2==0)

(2)s/=10;

程序设计

{

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

第二十四套程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。

函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。

第一处b=a;

第二处strcpy(b.name,”LiSi”)

第三处for(i=0;i<3;i++)

printf(“%6.2f”,b.score[i]);

程序修改

(1)s[j++]=s[i];

(2)s[j]=’\0’;

程序设计

voidfun(char*a)

{char*p,*q;

intn=0;

p=a;

while(*p==’*’)

{n++;p++;}

q=a;

while(*p){

*q=*p;

p++;q++;

}

for(;n>0;n--)

*q++=’*’;

*q=’\0’;

}

第二十五套程序填空

用筛选法可得到2—n(n<10000)之间的所有素数,方法是:

首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。

这样会得到一个序列:

2、3、5、7、11、13、17、19、23……函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。

第一处for(j=a[i]*2;j<=n;j+=a[i])

第二处while(a[i]==0)

第三处if(a[i]!

=0)

程序修改

(1)y=1;

(2)d=a-i;

程序设计

doublefun(intn)

{

inti;

doublesum=0.0;

for(i=1;i

if(i%5==0||i%9==0)

sum+=1.0/i;

returnsum;

}

第二十六套程序填空

给定程序中,函数fun的功能是建立一个N×N的矩阵。

矩阵元素的构成规律是:

最外层元素的值全部是1;从外向内第二层元素的值全部为2;第三层元素的值全部是3,…依此类推。

第一处voidfun(int(*a)[N])

第二处for(j=i;j

第二处a[k][i]=a[k][N-i-1]=i+1;

程序修改

(1)aa[i]=m%k;

(2)printf(“%d”,aa[i-1]);

程序设计

fun(char(*a)[81],intnum,char**max)

{

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

}

第二十七套程序填空

函数fun的功能是计算f(x)=1+x-2/2!

+3/3!

-4/4!

+……的前n项和。

若x=2.5,n=15时,函数值为1.917914。

第一处f=1;

第二处t*=(-1)*x/i;

第三处f+=t;

程序修改

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

(2)if(k>=0&&k<=6)

程序设计

doublefun(intn)

{

doubles=1’

longt=1;

inti;

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

t=t*i;

s+=1.0/t;}

returns;

}

第二十八套程序填空

给定程序中,函数fun的功能是:

计算N*N矩阵的主对角线元素和方向对角线元素之和,并作为函数值返回。

注意:

要求先累加主对角线元素中的值,然后累加反响对角线元素的值。

第一处sum=0;

第二处sum+=t[i][i];

第三处sum+=t[i][n-i-1];

程序修改

(1)

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

当前位置:首页 > 解决方案 > 学习计划

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

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