全国计算机二级C考试题库程序设计部分Word格式.docx
- 文档编号:20453574
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:36
- 大小:52.29KB
全国计算机二级C考试题库程序设计部分Word格式.docx
《全国计算机二级C考试题库程序设计部分Word格式.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C考试题库程序设计部分Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
voidfun(char*a)
a[i]!
='
\0'
;
if(a[i]!
*'
)
a[j++]=a[i];
a[j]='
5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。
voidfun(charp1[],charp2[])
inti,j;
p1[i]!
i++);
p2[j]!
p1[i++]=p2[j];
p1[i]='
6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:
求出平均分,并放入记录的ave成员中。
voidfun(STREC*a)
{inti;
a->
ave=0.0;
N;
ave=a->
ave+a->
s[i];
ave/=N;
7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。
求出平均分,并由函数值返回
doublefun(STREC*h)
{doubleave=0.0;
STREC*p=h->
next;
while(p!
=NULL)
{ave=ave+p->
s;
p=p->
returnave/N;
8、将所有大于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、求ss所指字符串中指定字符的个数,并返回此值。
intfun(char*ss,charc)
{inti=0;
for(;
*ss!
ss++)
if(*ss==c)
i++;
returni;
10、计算n门课程的平均分,结果作为函数值返回。
floatfun(float*a,intn)
floatav=0.0;
i<
n;
av=av+a[i];
return(av/n);
11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在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、除了字符串前导的*号之外,将串中其他*号全部删除。
char*p=a;
while(*p&
*p=='
)
{a[i]=*p;
p++;
while(*p)
{if(*p!
{a[i]=*p;
i++;
a[i]='
13、统计在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。
voidfun(char*tt,intpp[])
26;
pp[i]=0;
*tt!
tt++)
if(*tt>
a'
*tt<
z'
pp[*tt-'
]++;
14、将字符串尾部的*号全部删除,前面和中间的*号不动。
{while(*a!
a++;
a--;
while(*a=='
*(a+1)='
15、比较字符串的长度,函数返回较长的字符串,如果相同,则返回第一个字符串。
char*fun(char*s,char*t)
{inti,j;
s[i]!
='
i++);
t[j]!
j++);
if(i<
=j)
returnt;
else
returns;
16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。
STRECfun(STREC*a,char*b)
{inti;
STRECstr={"
\0"
-1};
if(strcmp(a[i].num,b)==0)
str=a[i];
returnstr;
17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的新串放在t数组中。
voidfun(char*s,chart[])
inti,j=0;
if(i%2==0&
s[i]%2==0)
t[j++]=s[i];
t[j]='
18、利用下面的简单迭代方法求方程cos(x)-x=0的一个实根s
。
doublefun()
{doublex0,x1;
x1=0.0;
do
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>
=1e-6);
returnx1;
19、将字符串中的前导*号全部移到字符串尾部。
{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、N名学生的数据已放入主函数中的结构体数组中,把分数最低的学生数据放入b所指的数组中。
{inti,j=0,min=a[0].s;
if(min>
a[i].s)
min=a[i].s;
/*找出最小值*/
if(min==a[i].s)
/*找出成绩与min相等的学生的记录,存入结构体b中*/
21、计算
doublefun(intm)
doubles=0.0;
=m;
s=s+log(i);
returnsqrt(s);
22、只删除字符前导和尾部的*号,串中字母间的*号都不删除。
voidfun(char*a,intn,inth,inte)
for(i=h;
n-e;
}
23、将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中
voidfun(char*s,chart[])
{inti,j=0,k=strlen(s);
k;
i=i+2)
24、将a,b中的两位正整数合并成一个新的整数放在c中。
合并方式是:
将a中的十位和个位依次放在变量c的百位和个位上,B中的十位和个位数依次放在变量c的十位和千位上。
voidfun(inta,intb,long*c)
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
25、除了尾部的*号之外,将字符中的其他的*号全部删除。
形参p已指向字符串最后的一个字母。
voidfun(char*a,char*p)
{char*t=a;
t<
=p;
t++)
if(*t!
*(a++)=*t;
*t!
*a='
26、N名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后。
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、N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
doublefun(STREC*a,STREC*b,int*n)
inti;
doubleav=0.0;
*n=0;
av=av+a[i].s;
av=av/N;
i++)
if(av<
=a[i].s)
{b[*n]=a[i];
*n=*n+1;
}
returnav;
28、将1~m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。
voidfun(intm,int*a,int*n)
if(i%7==0||i%11==0)
29、将字符串中的前导*号全部删除,中间和尾部的*号不删除。
{char*p=a;
while(*p=='
)p++;
*p!
p++,a++)
*a=*p;
30、N名学生的成绩已在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点。
找出学生的最高分。
{doublemax=h->
while(h!
=NULL)
{if(max<
h->
s)max=h->
h=h->
30、找出一维整型数组元素最大的值及其所在的下标,并通过形参传回。
主函数中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;
31、将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串在剩余字符所形成的一个新串放在t所指的数组中。
{inti,j=0,n;
n=strlen(s);
if(i%2!
=0&
s[i]%2!
{t[j]=s[i];
j++;
32、实现B=A+’A’,即将矩阵A加上A的转置,存放在矩阵B中。
voidfun(inta[3][3],intb[3][3])
3;
b[i][j]=a[i][j]+a[j][i];
33、将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
for(j=0;
nn;
j++)
mm;
{
b[*n]=*(*(s+i)+j);
*n=*n+1;
34、将两个两位数的正整数a,b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
35、将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并成一个新的字符串。
voidfun(chara[M][N],char*b)
{inti,j,k=0;
a[i][j]!
b[k++]=a[i][j];
b[k]='
36、删除一个字符串中指定下标的字符。
a指向原字符后的字符串存放在b所指的数组中,n中存指定的下标。
voidfun(chara[],charb[],intn)
{inti,k=0;
if(i!
=n)
b[k++]=a[i];
37、移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。
voidfun(int*w,intp,intn)
{intx,j,ch;
for(x=0;
x<
x++)
{ch=w[0];
for(j=1;
w[j-1]=w[j];
w[n-1]=ch;
38、将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
voidfun(char(*s)[N],char*b)
b[k++]=s[j][i];
39、计算
floatfun(intn)
{inti,s1=0;
floats=0.0;
=n;
{s1=s1+i;
s=s+1.0/s1;
40、将s所指字符串中ASCCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中
if(s[i]%2==0)
{t[j]=s[i];
42、删除一维数组中所有相同的数使之只剩一个。
数组中的数已按由小到大的顺序排列函数返回删除后数组的数据。
intfun(inta[],intn)
{inti,j=1;
if(a[j-1]!
=a[i])
43、除了字符串前导和尾部的*号外,将串中其他的*号全部删除。
voidfun(char*a,char*h,char*p)
char*q=a;
while(q<
h)
{a[i]=*q;
q++;
}
p)
{if(*q!
}
while(*q)
44、将a,b的两个两位正整数合并成一个新的整数放在c中,合并方式是:
将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。
*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;
45、使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理,字符串中间和尾部的*号不删除。
voidfun(char*a,intn)
intk=0;
char*p,*t;
p=t=a;
while(*t=='
)
{k++;
t++;
if(k>
n)
{while(*p)
{a[i]=*(p+k-n);
46、将两个两位数的正整数a,b合并成一个整数放在c中,合并方式是:
将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;
47、将一个数字字符串转换为一个整数。
答案:
ongfun(char*p)
{longn=0;
intflag=1;
if(*p=='
-'
{p++;
flag=-1;
elseif(*p=='
+'
while(*p!
{n=n*10+*p-'
0'
returnn*flag;
48、求Fibonacc数列中大于t的最小的数,结果由函数返回。
Fibonacc数列F(n)定义为
intfun(intt)
{intf0=0,f1=1,f;
do{
f=f0+f1;
f0=f1;
f1=f;
}while(f<
t);
returnf;
49、把低于平均分的学生数据放入b所指的数组中低于平均分的学生人数通过形参n返回,平均分通过函数值返回
if(a[i].s<
av)b[j++]=a[i];
50、将ss所指字符串所有下标为奇数位上的字母转换为大写。
voidfun(char*ss)
ss[i]!
if(i%2==1&
ss[i]>
ss[i]<
ss[i]=ss[i]-32;
51、将a,b两个正整数合并成一个新的整数放在c中。
合并方式:
将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。
{*c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;
52、使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做任何操作,字符中间的*不删除。
voidfun(char*a,intn)
{inti=0,k=0;
char*p,*t;
while(*t)
t++;
t--;
t--;
n)
{while(*p&
p<
t+n+1)
53、将a,b两个正整数合并成一个新的整数放在c中。
将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。
{*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;
54、将a,b两个正整数合并成一个新的整数放在c中。
将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的十位和个位上。
{
*c=b%10+(a%10)*1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 考试 题库 程序设计 部分