二级C语言上机题库100套A版.docx
《二级C语言上机题库100套A版.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库100套A版.docx(62页珍藏版)》请在冰豆网上搜索。
二级C语言上机题库100套A版
二级C语言上机考试资料
(前面为填空题题目,后面同序号依次为此套题的填空题、改错题、编程题答案)
*3、给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:
4630324061745154826,平均值为:
30.500000
主函数中输出:
4632404548
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
3、
(1)0
(2)x[i]/N(3)j++
3、
(1)doublefun(intm)
(2)for(i=100;i<=m;i~1+=0)
3.fun(STUa[],STU*s)
{
inti;
*s=a[0];
for(i=1;i{
if(a[i].ss)
{
*s=a[i];
}
}
}
*5、给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如,主函数中输入字符串:
32486和12345,在主函数中输出的函数值为:
44831。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
5、
(1)'0'
(2)s++(3)ctod(a)+ctod(b)
5、
(1)voidfun(char*s,int*a,int*b)
(2)++(*a);(3)++(*b);
5.floatfun(floath)
{
longi=h*1000;
if(i%10<5)return(i/10)/100.0;
elsereturn(i/10+1)/100.0;
}
*7、给定程序中,函数fun的功能是:
在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
例如,有下列矩阵:
12134
78106
3597
程序执行结果为:
find:
a[2][2]=9请在程序的下划线处填入正确的内容。
7、
(1)j
(2)0(3)i++
7、
(1)for(i=2;i<=m;i++)
(2)y-=1.0/i/i;
7.intfun(intscore[],intm,intbelow[])
{
inti,j=0,s=0;
for(i=0;is/=m;
for(i=0;i{
if(score[i]
{
below[j]=score[i];
j++;
}
}
returnj;
}
*9、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。
例如:
a所指变量中的学号、姓名、和三门课的成绩依次是:
10001、"ZhangSan"、95、80、88,则修改后输出b中的数据应为:
10002、"LiSi"、95、80、88。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
9、
(1)a
(2)b.name(3)score[i]
9、
(1)s[j++]=s[i];
(2)s[j]=0;
9.voidfun(char*a)
{
inti=0,j=0;
while(a[i])
{
if(a[i]!
='*')
{
j=i;
break;
}
i++;
}
while(a[i])
{
a[i-j]=a[i];
i++;
}
i-=j;
for(;j>0;j--)
{
a[i]='*';
i++;
}
}
*12、给定程序中,函数fun的功能是:
将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为:
asd123fgh5##43df,
处理后新字符串为:
123543asdfgh##df。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
12、
(1)j
(2)k(3)p
12、
(1)while(i(2)if(*a)
12.voidfun(char*s,chart[])
{
inti=0,j=0;
while(s[i])
{
if(i%2!
=0||s[i]%2==0)
{
t[j]=s[i];
j++;
}
i++;
}
t[j]=0;
}
*14、给定程序中,函数fun的功能是:
将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
퓴例如,形参s所指的字符串为:
abs5def126jkm8,程序执行后的输出结果为:
22。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
14、
(1)48
(2)s++(3)sum
14、
(1)if((k%13==0)||(k%17==0))
(2)}
14.doublefun(intn)
{
inti;
doubles=0;
for(i=1;i{
if(i%3==0&&i%7==0)s+=i;
}
returnsqrt(s);
}
*17、给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:
4630324061745154826,平均值为:
30.500000
移动后的输出为:
4632404548306171526
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
17、
(1)s/N
(2)j++(3)-1
17、
(1)#include"stdio.h"
(2)upfst(char*p)
17.doublefun(intw[][N])
{
doubles=0;
inti;
for(i=0;is+=w[0][i]+w[N-1][i]+w[i][0]+w[i][N-1];
s-=w[0][0]+w[0][N-1]+w[N-1][0]+w[N-1][N-1];
returns/(N*4-4);
}
*19、给定程序中,函数fun的功能是:
在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。
ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
19、
(1)N
(2)i(3)-1
19、
(1)a2=k/10;
(2)returni;
19.voidfun(char*a)
{
inti=0,j=0;
while(a[i])
{
if(a[i]!
='*')j=0;
elsej++;
i++;
}
a[i-j]=0;
}
*20、给定程序中,函数fun的功能是:
找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
20、
(1)a[0][i]
(2)<(3)x,y
20、
(1)intfun(int*x,int*y)
(2)t=*x;*x=*y;*y=t;
20.intfun(intlim,intaa[MAX])
{
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;
k++;
}
}
returnk;
}
*23、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如:
b所指变量t中的学号、姓名、和三门课的成绩依次是:
10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为:
10004、"LiJie"、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
23、
(1)->sno
(2)->name(3)&t
23、
(1)doublefun(doublea,doublex0)
(2)if(fabs(x1-x0)>0.00001)
23.doublefun(STREC*a,STREC*b,int*n)
{
inti;
doubles=0;
for(i=0;is+=a[i].s;
s/=N;
*n=0;
for(i=0;iif(a[i].s>s)
{
b[*n]=a[i];
(*n)++;
}
returns;
}
*24、给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:
4630324061745154826,平均值为:
30.500000
移动后的输出为:
3061715264632404548
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
24、
(1)x[i]/N
(2)j++(3)i++
24、
(1)num[k]=0;
(2)switch(*s)
24.intfun(inta[M][N])
{
inti,s=0;
for(i=0;is+=a[0][i]+a[M-1][i];
for(i=1;is+=a[i][0]+a[i][N-1];
returns;
}
*25、给定程序中,函数fun的功能是计算下式
例如,若形参e的值为1e-3,函数的返回值2.735678。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
25、
(1)0
(2)i++(3)2.*i
25、
(1)voidfun(char*s,char*t)
(2)t[2*d]=0;
25.voidfun(char*s,chart[])
{
inti=0,j=0;
while(s[i])
{
if(i%2==1&&s[i]%2==1)
{
t[j]=s[i];
j++;
}
}
t[j]=0;
}
*26、给定程序中,函数fun的功能是建立一个N×N的矩阵。
矩阵元素的构成规律是:
最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。
例如,若N=5,生成的矩阵为:
11111
12221
12321
12221
11111
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
26、
(1)[N]
(2)i(3)i+1
26、
(1)aa[i]=m%k;
(2)printf("%d",aa[i-1]);
26.fun(char(*a)[81],intnum,char**max)
{
inti,j,k=strlen(a[0]);
*max=a[0];
for(i=1;i{
j=strlen(a[i]);
if(k{
k=j;
*max=a[i];
}
}
}
*31、给定程序中,函数fun的功能是:
计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。
例如,有10个正数:
4630324061745154826,平均值为:
30.500000
主函数中输出:
m=30.0
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
31、
(1)*av
(2)i(3)x[j]
31、
(1)floatfun(intn)
(2)for(i=2;i<=n;i++)
31.intfun(inta[][N],intm)
{
inti,j;
for(i=0;ifor(j=i;ja[i][j]*=m;
}
*32、给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
32、
(1)FILE*
(2)fp(3)ch
32、
(1)s[j++]=s[i];
(2)s[j]=0;
32.voidfun(char(*s)[N],char*b)
{
inti,j,k=0;
for(i=0;ifor(j=0;j{
b[k]=s[j][i];
k++;
}
}
*34、给定程序中,函数fun的功能是:
利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。
ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
34、
(1)i
(2)ps[i](3)tp
34、
(1)doublefun(intn)
(2)returnsum;
34.doublefun(doublex,intn)
{
inti;
doublea=1,b=1,s=1;
for(i=1;i<=n;i++)
{
a*=x;
b*=i;
s+=a/b;
}
returns;
}
*37、给定程序中,函数fun的功能是:
将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:
27638496,新的数:
为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
37
(1)10
(2)0(3)x
37
(1)if(n==0)
(2)result*=n--;
37.longfun(char*p)
{
longi,s=0;
if(p[0]=='-')
{
i=1;
while(p[i])
{
s=s*10+p[i]-'0';
i++;
}
s*=-1;
}
else
{
i=0;
while(p[i])
{
s=s*10+p[i]-'0';
i++;
}
}
returns;
}
*38、给定程序中,函数fun的功能是:
找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:
159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。
共有26个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
38、
(1)0
(2)x(3)t++
38、
(1)inti,sl;
(2)t[i]=s[sl-i-1];
38.voidfun(inta,intb,long*c)
{
*c=a/10*100+a%10+b/10*1000+b%10*10;
}
*39、给定程序中,函数fun的功能是:
判定形参a所指的N×N(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1;不是,函数返回值为0。
"幻方"的判定条件是:
矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×3的矩阵就是一个"幻方":
492
357
816
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
39、
(1)0
(2)||(3)1
39、
(1)t-=1.0/i;
(2)returnt;
39.intfun(char*str)
{
inti,k=0;
char*p=str,s[81];
while(*p)
{if(*p!
='')s[k++]=*p;
p++;
}
for(i=0;istr[i]='\0';
}
*41、给定程序中,函数fun的功能是:
调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
41、
(1)N
(2)break(3)n
41、
(1)sum=0;
(2)scanf("%d",&a[i][j]);
41.intfun(intarray[3][3])
{
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j
{t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}
}
*56、给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
56、
(1)next
(2)t->data(3)t
56、
(1)fun(char*a)
(2)printf("%c",*a);
56.char*fun(char*s,char*t)
{
char*m,*n;
m=s;
n=t;
while(*s&&*t)
{
t++;
s++;
}
if(*t)
returnn;
elsereturnm;
}
*58、给定程序中,函数fun的功能是:
找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当x值为5时,100~999之间各位上数字之和为5的整数有:
104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。
共有15个。
当x值为27时,各位数字之和为27的整数是:
999。
只有1个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
58、
(1)999
(2)t/10(3)x
58、
(1)voidfun(longs,long*t)
(2)while(s>0)
58.voidfun(STRECa[])
{
inti,j;
STRECb;
for(i=0;ifor(j=i+1;jif(a[i].s{b=a[i];a[i]=a[j];a[j]=b;}
}
*62、给定程序中,函数fun的功能是:
求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。
ss所指字符串数组中共有M个字符串,且串长请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
62、
(1)M
(2)<(3)k
62、
(1)if(('a'<=tt[i])&&(tt[i]<='z'))
(2)tt[i]-=32;
62.voidfun(intm,int*k,intxx[])
{
inti,j,c=0;
for(i=2;i<=m;i++)
{
for(j=2;j
if(i%j==0)
{
xx[c]=i;
c++;
break;
}
}
*k=c;
}
*63、给定程序的功能是:
从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。
然后将文件的内容读出显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
63、
(1)*fw
(2)str(3)str
63、
(1)voidfun(longs,long*t)
(2)sl=sl*10;
63.*c=a/10+a%10*100+b%10*10+b/10*1000;
*75、给定程序中,函数fun的功能是:
统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
75、
(1)*n
(2)next(3)head
75、
(1)a=0;
(2)if(*r==*p)
75.voidfun(char*s,chart[])
{
inti=0,k=0,length;
length=strlen(s);
while(i{
if(i%2==0&&s[i]%2==0)
{
t[k]=s[i];
k++;
i++;
}
else
i++;
}
t[k]='\0';
}
*77、给定程序中,函数fun的功能是:
在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。
ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
77、
(1)N
(2)i(3)-1
77、
(1)a2=k/10;
(2)returni;
77.voidfun(char*a)
{
while(*a!
=NULL)a++;
a--;
while(*a=='*')a--;
a++;
*a='\0';
}
*78、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如:
a所指变量s中的学号、姓名、和三门课的成绩依次是:
10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:
10002、"LiSi"、96、81、89。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
78、
(1)structstudent*
(2)a->score[i]