计算机二级C语言上机试题题库答案.docx
《计算机二级C语言上机试题题库答案.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言上机试题题库答案.docx(62页珍藏版)》请在冰豆网上搜索。
计算机二级C语言上机试题题库答案
第一套
1.给定程序中,函数fun的功能是:
在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。
Ss所指字符串数组中共有N个字符串,且串长小于M。
1N2k3ss[i]
2.给定程序MODI1.C中函数fun的功能是:
逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值或相等的字符依次存放在c所指数组中,形成一个新的字符串。
1intk=0;2while(*p||*q)
3.假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:
除了字符串前导*号之外,将串中其它*号全部删除。
在编写函数时,不得使用C语言提供的字符串函数。
函数fun中给出的语句仅供参考。
inti=0;
char*p=a;
while(*p&&*p=='*')
{a[i]=*p;
i++;
p++;
}
while(*p)
{if(*p!
='*')
{a[i]=*p;i++;}
p++;
}
a[i]='\0';
第二套
1.给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
函数fun的功能是:
把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。
1x2p3s
2.给定程序MODI1.C中函数fun的功能是:
计算正整数num的各位上的数字之积。
1longk=1;2num/=10
3.请编写函数fun,它的功能是:
计算n门课程的平均分,计算结果作为函数返回。
inti;
floatave=0.0;
for(i=0;iave=ave+a[i];
ave=ave/n;
returnave;
第三套
1.给定程序中,函数fun的功能是:
在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到输出相应信息。
Ss所指字符串数组中共有N个字符,且串长小于M。
程序中库函数strstr(s1、s2)的功能是早s1串中查找s2子串,若没有,函数值为0,若有,为非0。
1N2substr30
2.给定程序MODI1.C中函数fun的功能是:
求三个数的最小公倍数。
1fun(intx,inty,intz)2returnj;
3.假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:
只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。
形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数。
在编写函数时,不得使用C语言提供的字符串函数。
char*p=a;
intj=0,len=0;
while(*p){p++;len++;}
while(ja[j]=a[h+j];
j++;
}
a[j]=0;
第四套
1.给定程序中,函数fun的功能是:
在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串中的位置(下标值),未找到则返回-1。
ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
1N2i3-1
2.给定程序MODI1.C中函数fun的功能是:
从整数1到55之间,选出能被3整除、且有一位上的数是5的那些事,并且把这些数放在b所指的数组中,这些数作为函数值返回。
规定,函数中a1放个位数,a2放十位数。
1a2=k/10;2returni;
3.假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:
将字符串尾部的*号全部删除,前面和中间的*号不删除。
char*p=a;
while(*p)p++;p--;
while(*p=='*')p--;
p++;
*p=0;
第五套
1.给定程序中,函数fun的功能是:
统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。
1*n2next3head
2.给定程序MODI1.C中函数fun的功能是:
求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。
1a=NULL;2if(*r==*p)
3.函数fun的功能是:
将s所指字符串中除了下标为偶数,同时ASCII指也为偶数的字符外,其余的全部都删除:
串中剩余字符所形成的一个新串放在t所指的数组中。
inti,j=0;
for(i=0;iif(s[i]%2==0)t[j++]=s[i];
t[j]=0;
第六套
1.函数fun的功能是:
进行数字字符转换。
若形参ch中是数字字符‘0’—‘9’,则‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,……‘9’转换成‘0’;若是其他字符则保持不变,并将转换后的结果做函数值返回。
1char2ch<='9'3'0'
2.给定程序MODI1.C中函数fun的功能是:
将p所指字符串中所有字符复制到b中,要求复制第三个字符之后插入一个空格。
1b[k]=*p;2b[k]='';k++;
3.N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。
请编写函数fun,它的功能是:
求出平均分,有函数值返回。
STREC*p=h->next;
doubleav=0.0;
intn=0;
while(p!
=NULL)
{
av=av+p->s;
p=p->next;
n++;
}
av/=n;
returnav;
第七套
1.函数fun的功能是:
把形参a所指数组中的偶数按原顺序依次存放a[0]、a[1]、a[2]……中,把奇数从数组中删除,偶数个数通过函数值返回。
1a[i]%22a[j]3j
2.给定程序MODI1.C中函数fun的功能是:
按以下递推公式求函数值。
例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14.
1fun(intn)2if(n==1)
3.假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:
使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
char*p=a;
intj=0;
while(*p)p++;p--;
while(*p=='*')p--;
p++;
while(jp++;
j++;}
*p=0;
第八套
1.给定程序中,函数fun的功能是:
利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排列,并输入排序结果。
ss所指定字符串数组中共有N个字符串,且串长小于M。
1i2ps[j]3tp
2.已知一个数列从第0项开始的前三项分别是0、0、1以后的各项都是它相邻的前三项之和。
给定程序MODI1.C中函数fun的功能是:
计算并输出该数列前n项的平方根之和。
n的值通过形参传入。
1doublefun(intn)2returnsum;
3.编写函数fun,它的功能是:
计算下列级数和,和值由函数值返回。
例如,当n=10,x=0.3时,函数值为1.349859。
inti;
doubles=1.0,s1=1.0;
for(i=1;i<=n;i++)
{s1=s1*i;
s=s+pow(x,i)/s1;}
returns;
第九套
1.给定程序中,函数fun的功能是:
计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。
1*av2i3x[j];
2.给定程序MODI1.C中函数fun的功能是:
根据整型形参n计算如下公式的值。
例如:
若n=10,则应输出:
0.617977.
1floatfun(intn)2for(i=2;i<=n;i++)
3.程序定义了N×N的二维数组,并在主函数中自动赋值,请编写函数fun,它的功能是:
使数组右上三角元素中的值乘以m。
inti,j;
for(i=0;ifor(j=i;ja[i][j]*=m;
第十套
1.给定程序中,函数fun的功能是:
将s所指字符串所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。
1j++2s[i]=t1[i]3j
2.给定程序MODI1.C中函数fun的功能是:
用冒泡法对6个字符串按由小到大的顺序排列。
1for(j=i+1;j<6;j++)2*(pstr+i)=*(pstr+j);
3.请编写函数fun,它的功能是:
求出ss所指字符串中指定字符的个数,并返回次值。
intcnt=0;
char*p=ss;
while(*p){
if(*p==c)cnt++;
p++;
}
returncnt;
第十一套
1.函数fun的功能是:
把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]……中,把偶数从数组中删除,奇数个数通过函数值返回。
例如:
若a所指数组中的数据最初排列为:
9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:
9、1、3、5、7,返回值为5。
第一处1第二处j++第三处j
2.给定程序MODI1.C中函数fun的功能是:
求出两个非零正整数的最大公约数,并作为函数值返回。
1t=a;a=b;b=t;2return(b);
3.假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:
删除字符串中所有的*号。
在编写函数时,不得使用C语言提供的字符串函数。
intj=0;
char*p=a;
while(*p){
if(*p!
='*')
a[j++]=*p;
p++;
}
a[j]=0;
第十二套
(一)程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是:
将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
(1)structstudent
(2)n-13a[i].name,a[j].name
(二)给定程序MODI1.C中函数fun的功能是:
在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
1q=p+i;2while(q>p)
(三)学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:
把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
inti,j=0;
for(i=0;iif(a[i].s>=l&&a[i].s<=h)
b[j++]=a[i];
returnj;
第十三套
(一)给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:
删除链表中数据域值相同的结点,使之只保留一个。
1q2next3next
(二)给定程序MODI1.C中函数fun的功能是:
用选择法对数组中的n各元素按从小到大的顺序进行排序。
1p=j;2p=i;
(三)请编写一个fun函数,它的功能是:
求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过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给出数组中数组中数据的个数。
1n/22i3a[n-i-1]
(二)给定程序MODI1.C中函数fun的功能是:
将一个由八进制数字字符串组成的字符串转换为与其面值相等的十进制整数。
规定输入的字符串最多只能包含5位八进制数字字符。
1n=*p-'0';2n=n*8+*p-'0';
(三)学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:
函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
(用于字符串比较的函数是strcmp)。
STRECc;
inti;
c.num[0]='\0';
c.s=-1;
for(i=0;iif(strcmp(a[i].num,b)==0)
{strcpy(c.num,a[i].num);
c.s=a[i].s;break;}
returnc;
第十五套
(一)给定程序中,函数fun的功能是:
在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号:
若不存在值为ch的结点,函数值返回0.
1NULL2n3head,ch
(二)给定程序MODI1.C中函数fun的功能是:
删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用‘#’结束输入。
1.for(i=0,t=0;p[i];i++)
2.c[t]='\0';
(三)请编写一个函数fun,它的功能是:
将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
inti;
for(i=1;i{if(ss[i]>='a'&&ss[i]<='z')
ss[i]-=32;}
第十六套
1.给定程序中,函数fun的功能是:
计算下式前n项的和作为函数值返回。
例如:
当形参n的值为10的时,函数返回:
9.6125588。
(1)0
(2)n(3)(t*t)
2.给定程序MODI1.C中函数fun的功能是:
统计substr所指字符串在str所指字符串中出现伯次数。
(1)for(i=0;str[i];i++)
(2)if(substr[k+1]=='\0')
3.请编写一个函数fun,它的功能是:
根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):
程序运行后,如果输入精度为0.0005,则程序输出为3.14…。
doubles=1.0,s1=1.0;
intn=1;
while(s1>=eps)
{s1=s1*n/(2*n+1);
s=s+s1;
n++;
}
return2*s;
第十七套
1.给定程序中,函数fun的功能是:
将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。
1s[i]2k30
2.给定程序MODI1.C中函数fun的功能是:
将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指定字符串,所形成的新串放在w所指的数组中。
在此处,要求t1和t2所指字符串的长度相同。
1while(*w)
2if(*r==*p)
3.函数fun的功能是:
将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。
inti,j=0;
for(i=0;iif(s[i]%2==0)t[j++]=s[i];
t[j]=0;
第十八套
1程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
函数fun的功能是:
将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
1structstudent*2a->score[i]3a
2.给定程序MODI1.C中函数fun的功能是:
从N个字符串中找出最长的那个串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放在一个字符串数组中。
1char*fun(char(*sq)[M])2returnsp;
3.函数fun的功能是:
将a、b中的两位正整数合并形成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;
第十九套
1.函数fun的功能是:
将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。
形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。
112i3a[p+i]
2.给定程序MODI1.C中函数fun的功能是:
把主函数中输入的三个数,最大的放在a中,最小的放在c中,中间的放在b中。
1floatk;2if(*a<*c)
3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:
把分数最高的学生数据放在b所指的数组中,注意:
分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
inti,max=a[0].s,n=0;
for(i=1;iif(maxfor(i=0;iif(max==a[i].s)b[n++]=a[i];
returnn;
第二十套
1.给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
1x[i]/N2j++3i++
2.给定程序MODI1.C中函数fun的功能是:
统计字符串各元音字母(即:
A、E、I、O、U)的个数。
注意字母不分大小写。
1num[k]=0;2switch(*s)
3.请编写函数fun,函数的功能是:
求出二级数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
inttot=0,i,j;
for(i=0;i{tot+=a[0][i];
tot+=a[M-1][i];
}
for(i=1;itot+=a[i][0];
tot+=a[i][N-1];
}
returntot;
第二十一套
1程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
1structstudent2a.name3a.score[i]
2假定整数数列中的数不重复,并存放在数组中。
给定程序MODI1.C中函数fun的功能是:
删除数列中值为x的元素。
N中存放的是数列中元素的个数。
1if(p==n)return-1;2a[i]=a[i+1];
3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:
把分数最低的学生数据放在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;
第二十二套
1.给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中大于平均值的数据移至数据的前部,小于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
1s/N2j++3-1
2.给定程序MODI1.C中函数fun的功能是:
读入一行英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行(这里的“单词”是指由空格隔开的字符串)。
1#include2upfst(char*p)
3.程序定义了N×N的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:
求出数组周边元素的平均值并作出函数值饭给主函数中的s。
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;
第二十三套
1.给定程序中,函数fun的功能是:
将自然数1—10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
1fp2fclose(fp)3fname
2.给定程序MODI1.C中函数fun的功能是:
将n个无序整数从小到大排序。
1for(i=j+1;i3.函数fun的功能是:
将a、b中的两位正整数合并形成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位依次放在变量c的个位和百位上,b中的十位和个位数依次放在变量c的十位和千位上。
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);
第二十四套
1.给定程序中,函数fun的功能是:
找出N×N矩阵中每列元素中的最大值,并按顺序一次存放于形参b所指的一维数组中。
1a[0][i]2<3x,y
2.给定程序MODI1.C中函数fun的功能是:
交换主函数中的两个变量的值。
1voidfun(int*x,int*y)2t=*x;*x=*y;*y=t;
3.编写函数fun,函数的功能是:
求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。
函数fun中给出的语句仅供参考。
inti,j,k=0;
for(i=2;i<=lim;i++)
{for(j=2;j
if(i%j==0)break;
if(j>=i)aa[k++]=i;
}
returnk;
第二十五套
1.函数fun的功能是进行字母转换。
若形参ch中小写英文字母,则转换成相应的大写英文字母;若形参ch中是大写英文字母,则转换成相应的小写英文字母;并将转换的结果作为函数值返回。
1&&2'A'3ch
2.给定程序MODI1.C中函数fun的功能是:
给一维数组a输入任意四个整数并按下列的规律输出。
例如输出1、2、3、4,程序输出一下方阵。
1voidfun(int*a)2a[j]=a[j-1];
3.请编写函数fun,函数的功能是:
计算并输出给定整数n的所有因子(不包过1和n本身)之和。
规定n的值不大于1000.
ints=0,i;
for(i=2;iif(