二级上机新版题库Word文档下载推荐.docx
《二级上机新版题库Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级上机新版题库Word文档下载推荐.docx(53页珍藏版)》请在冰豆网上搜索。
求出1~1000能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回函数的个数。
voidfun(int*a,int*n)
inti,j=0;
for(i=1;
=1000;
i++)
if((i%7==0||i%11==0)&
&
i%77!
=0)
a[j++]=i;
*n=j;
第4套
填空题
(1)1
(2)j++ (3)j
改错题
(1)t=a;
a=b;
b=t;
(2)return(b);
或returnb;
规定输入的字符串中只包含字母和*号。
删除字符串中所有的*号。
编写函数时,不得使用C语言提供的字符串函数。
voidfun(char*a)
a[i]!
='
;
if(a[i]!
*'
)
a[j++]=a[i];
a[j]='
第5套
填空题
(1)0
(2)10*x(3)n/10
改错题
(1)*t=0;
(2)if(d%2!
=0)或if(d%2==1)
实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后面。
voidfun(charp1[],charp2[])
inti,j;
p1[i]!
i++);
p2[j]!
p1[i++]=p2[j];
p1[i]='
第6套
填空题
(1)a[i]
(2)a[j] (3)a[j]
改错题
(1)去掉分号
(2)case1:
case2:
return1;
某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,编写函数fun,其功能是:
求出该学生的平均分,并放入指定的ave成员中。
voidfun(STREC*a)
inti;
a->
ave=0.0;
N;
ave=a->
ave+a->
s[i];
ave/=N;
第7套
填空题
(1)char
(2)ch<
(3)'
0'
改错题
(1)b[k]=*p;
(2)b[k]='
'
k++;
给定下列程序中函数fun的功能是:
将p所指的字符串中的所有的字符复制到b中,要求每复制三个字符之后插入一个空格。
doublefun(STREC*h)
doubleave=0.0;
STREC*p=h->
next;
while(p!
=NULL)
{ave=ave+p->
s;
p=p->
returnave/N;
第8套
填空题
(1)M
(2)<
(3)k
改错题
(1)if((tt[i]>
a'
)&
(tt[i]<
='
z'
))
(2)tt[i]-=32;
将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k返回。
voidfun(intm,int*k,intxx[])
inti,j,n=0;
for(i=4;
m;
{for(j=2;
i;
if(i%j==0)break;
if(j<
i)xx[n++]=i;
*k=n;
第9套
填空题
(1)j++或j+=1或++j或j=j+1
(2)s[i]=t1[i] (3)j
改错题
(1)for(j=i+1;
j<
6;
j++)
(2)*(pstr+i)=*(pstr+j);
求ss所指字符串中指定字符的个数,并返回此值。
intfun(char*ss,charc)
inti=0;
for(;
*ss!
ss++)
if(*ss==c)
i++;
returni;
第10套
填空题
(1)x
(2)p (3)s
改错题
(1)longk=1;
(2)num/=10;
计算n门课程的平均分,结果作为函数值返回。
floatfun(float*a,intn)
floatav=0.0;
i<
n;
av=av+a[i];
return(av/n);
第11套
填空题
(1)1
(2)i (3)a[p+i]或*(a+p+i)
改错题
(1)floatk;
(2)if(*a<
*c)
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:
把分数最高的学生数据放在b所指的数组中。
注意:
分数最高的学生可能不止一个,函数返回分数最高的学生人数。
intfun(STREC*a,STREC*b)
inti,j=0,max=a[0].s;
/*找出最大值*/
a[i].s)max=a[i].s;
if(max==a[i].s)
b[j++]=a[i];
returnj;
第12套
填空题
(1)N
(2)k (3)ss[i]
改错题
(1)intk=0;
(2)while(*p||*q)
除了字符串前导的*号之外,将串中其他的*号全部删除。
在编写函数时,不得使用C语言提供的字符串函数。
inti=0;
char*p=a;
while(*p&
*p=='
)
{
a[i]=*p;
p++;
while(*p)
if(*p!
{a[i]=*p;
i++;
a[i]='
第13套
填空题
(1)1
(2)s[k]或*(s+k) (3)c
改错题
(1)longs=0,t=0;
(2)t=t/10;
编写函数voidfun(char*tt,intpp[]),统计在tt所指的字符串中“a”到“z”26个小写字母各自出现的字数,并依次放在pp所指的数组中。
voidfun(char*tt,intpp[])
inti;
26;
pp[i]=0;
*tt!
tt++)
if(*tt>
*tt<
pp[*tt-'
]++;
第14套
填空题
(1)N
(2)i (3)-1
改错题
(1)a2=k/10;
(2)returni;
将字符串尾部的*号全部删除,前面的中间的*号不动。
while(*a!
a++;
a--;
while(*a=='
*(a+1)='
第15套
填空题
(1)next
(2)t->
data (3)t
改错题
(1)voidfun(char*a)
(2)printf("
%c"
*a);
比较字符串的长度,不得使用C语言提供的求字符串长度的函数,函数返回较长的字符串。
若两个字符串长度相同,则返回第一个字符串。
char*fun(char*s,char*t)
s[i]!
i++);
t[j]!
j++);
if(i<
=j)
returnt;
else
returns;
第16套
填空题
(1)n/2
(2)i (3)a[n-i-1]或a[n-1-i]
改错题
(1)n=*p-'
(2)n=n*8+*p-'
学生的记录有学号和成绩组成,N名学生的数据已放入主函数的结构体数组s中。
函数返回该学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用与字符串比较的函数是strcmp)。
STRECfun(STREC*a,char*b)
{inti;
STRECstr={"
\0"
-1};
if(strcmp(a[i].num,b)==0)
str=a[i];
returnstr;
第17套
填空题
(1)"
r"
(2)fs (3)ft
改错题
(1)if(d%2==0)
(2)s/=10;
当a=45b=12c=5142
voidfun(inta,intb,long*c)
*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;
第18套
填空题
(1)i++
(2)m (3)m
改错题
(1)while((high>
=2)&
(n<
10))
(2)yes=0;
break;
利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。
Xn+1=cos(xn)
doublefun()
doublex0,x1;
x1=0.0;
do
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>
=1e-6);
returnx1;
第19套
填空题
(1)a
(2)b.name (3)score[i]
(1)s[j++]=s[i];
或{s[j]=s[i];
j++;
(2)s[j]='
将字符串中前导的*号全部移到字符串的尾部。
inti=0,n=0;
char*p;
p=a;
while(*p=='
)/*判断*p是否是*号,并统计*号的个数*/
n++;
p++;
while(*p)/*将前导*号后的字符传递给a*/
a[i]=*p;
while(n!
=0)
a[i]='
n--;
第20套
填空题
(1)*fw
(2)str (3)str
改错题
(1)voidfun(longs,long*t)
(2)sl=sl*10;
a=45b=12c=1524
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
第21套
填空题
(1)0
(2)j-- (3)j
改错题
(1)doublef(doublex)
(2)returns;
编写函数fun,其功能是计算:
s=》ln
(1)+ln
(2)+ln(3).......
doublefun(intm)
doubles=0.0;
=m;
s=s+log(i);
returnsqrt(s);
第22套
填空题
(1)N
(2)substr (3)0
改错题
(1)fun(intx,inty,intz)或intfun(intx,inty,intz)
(2)returnj;
只删除字符串前导和尾部的*号,串中字母间的*号都不删除。
形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。
voidfun(char*a,intn,inth,inte)
inti,j=0;
for(i=h;
n-e;
第23套
填空题
(1)data
(2)next (3)head
改错题
(1)while(*r)
(2){*a=*r;
a++;
r++;
函数fun功能是:
将s所指的字符串中下表为偶数的字符串删除,剩余字符形成的新串放在t所指的数组中。
voidfun(char*s,chart[])
inti,j=0,k=strlen(s);
k;
i=i+2)
t[j++]=s[i];
t[j]='
第24套
填空题
(1)structstudent*
(2)a->
score[i] (3)a
改错题
(1)char*fun(char(*sq)[M])
(2)returnsp;
a=45b=12c=2415
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
第25套
填空题
(1)t[][N]
(2)i=0;
N (3)
改错题
(1)intfun(inta[],intm)或fun(inta[],intm)
(2)elseif(m>
a[mid])
假定输入的字符串中只包含字符和*号。
除了尾部的*号之外,将字符中其他的*号全部删除。
形参p已指向字符串中最后的一个字母。
voidfun(char*a,char*p)
char*t=a;
t<
=p;
t++)
if(*t!
*(a++)=*t;
*t!
*a='
第26套
填空题
(1)999
(2)t/10 (3)x
改错题
(1)voidfun(longs,long*t)
(2)while(s>
0)
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。
按分数降序排列学生的记录,高分在前,低分在后。
voidfun(STRECa[])
STRECt;
N-1;
j++)
if(a[j].s<
a[j+1].s)
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
第27套
填空题
(1)->
sno
(2)->
name (3)&
t
改错题
(1)doublefun(doublea,doublex0)
(2)if(fabs(x1-x0)>
=0.00001)
把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
doublefun(STREC*a,STREC*b,int*n)
doubleav=0.0;
*n=0;
av=av+a[i].s;
av=av/N;
if(av<
=a[i].s)
{b[*n]=a[i];
*n=*n+1;
returnav;
第28套
填空题
(1)q
(2)next (3)next
改错题
(1)p=j;
(2)p=i;
将1~m(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。
voidfun(intm,int*a,int*n)
if(i%7==0||i%11==0)
第29套
填空题
(1)[N]
(2)t[i][j] (3)t[j][i]
改错题
(1)#defineFU(m,n)(m)/(n)
(2)return(value);
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
char*p=a;
while(*p=='
)p++;
*p!
p++,a++)
*a=*p;
第30套
填空题
(1)fp
(2)== (3)fp
改错题
(1)n=strlen(aa);
(2)ch=aa[i];
N名学生的成绩已放在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点。
找出学生的最高分,并由函数值返回。
doublemax=h->
while(h!
=NULL)
{if(max<
h->
s)max=h->
h=h->
第31套
填空题
(1)1
(2)2*i (3)(-1)
改错题
(1)k++;
(2)if(m==k)
找出一维整形数组元素中最大的值及其所在得下标,并通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
voidfun(inta[],intn,int*max,int*d)
*max=a[0];
*d=0;
if(*max<
a[i])
{*max=a[i];
*d=i;
第32套
填空题
(1)0
(2)i++或++i或i+=1或i=i+1 (3)2.0*i
改错题
(1)voidfun(char*s,char*t)
(2)t[2*d]='
或t[d+i]='
或t[2*d]=0;
或t[d+i]=0;
将s所指字符串中除了下标奇数同时ASCII码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
inti,j=0,n;
n=strlen(s);
if(i%2!
=0&
s[i]%2!
{t[j]=s[i];
j++;
第33套
填空题
(1)&
(2)0或'
(3)s[j]或*(s+j)
改错题
(1)for(i=2;
i++)
(2)y+=1.0/(i*i);
或y+=(double)1.0/(i*i)
编程题;
实现B=A+A’,及将矩阵A加上A的转置,存放在矩阵B中。
计算结果在main函数中输出。
voidfun(inta[3][3],intb[3][3])
inti,j;
3;
b[i][j]=a[i][j]+a[j][i];
第34套
填空题
(1)NODE
(2)next(3)r
改错题
(1)if(i%2||s[i]%2==0)或if(i%2!
=0||s[i]%2==0)
(2)t[j]='
或t[j]=0;
将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
一维数组中数据的个数存放在形参n所指的存储单元。
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
nn;
mm;
b[*n]=*(*(s+i)+j);
*n=*n+1;
第35套
填空题
(1)structstudent
(2)a.name
(3)a.score[i]
改错题
(1)if(p==n)return-1;
(2)a[i]=a[i+1];
学生记录由学号和成绩组成,N名学生的是数据以放入主函数中的结构数组中,编写函数fun,其功能是:
把分数最低的学生数据放入b所指的数组中,注意:
分数最低的学生可能不止一个,函数返回分数最低的学生人数。