全国计算机二级C考精彩试题库程序设计部分.docx

上传人:b****3 文档编号:5524437 上传时间:2022-12-18 格式:DOCX 页数:36 大小:48.69KB
下载 相关 举报
全国计算机二级C考精彩试题库程序设计部分.docx_第1页
第1页 / 共36页
全国计算机二级C考精彩试题库程序设计部分.docx_第2页
第2页 / 共36页
全国计算机二级C考精彩试题库程序设计部分.docx_第3页
第3页 / 共36页
全国计算机二级C考精彩试题库程序设计部分.docx_第4页
第4页 / 共36页
全国计算机二级C考精彩试题库程序设计部分.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

全国计算机二级C考精彩试题库程序设计部分.docx

《全国计算机二级C考精彩试题库程序设计部分.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C考精彩试题库程序设计部分.docx(36页珍藏版)》请在冰豆网上搜索。

全国计算机二级C考精彩试题库程序设计部分.docx

全国计算机二级C考精彩试题库程序设计部分

1、找出2xM整型二维数组中最大元素的值,并将此值返回调用函数.

intfun

{

inti,j,max=a[0][0];

for

for

if

max=a[i][j];

returnmax;}

2、

根据以下公式求π值.

doublefun

{doubles=0.0,s1=1.0;

intn=0;

while=eps>

{s=s+s1;

s1=s1*n/<2*n+1>;

n++;

}

return2*s;

}

3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数.

voidfun

{inti,j=0;

for

if<&&i%77!

=0>

a[j++]=i;

*n=j;

}

4、删除字符串中所有*号.

voidfun

{inti,j=0;

for

='\0';i++>

if

='*'>

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

a[j]='\0';

}

5、实现两个字符串的连接〔不要同时使用库函数〕,即把p2所指的字符串连接到p1所指的字符串的后面.

voidfun

{

inti,j;

for

='\0';i++>;

for

='\0';j++>

p1[i++]=p2[j];

p1[i]='\0';}

6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:

求出平均分,并放入记录的ave成员中.

voidfun

{inti;

a->ave=0.0;

for

a->ave=a->ave+a->s[i];

a->ave/=N;}

7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点.求出平均分,并由函数值返回

doublefun

{doubleave=0.0;

STREC*p=h->next;

while

=NULL>

{ave=ave+p->s;

p=p->next;

}

returnave/N;}

8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回.

voidfun

{inti,j,n=0;

for

{for

ifbreak;

ifxx[n++]=i;

}

*k=n;

}

9、求ss所指字符串中指定字符的个数,并返回此值.

intfun

{inti=0;

for<;*ss!

='\0';ss++>

if<*ss==c>

i++;

returni;

}

10、计算n门课程的平均分,结果作为函数值返回.

floatfun

{inti;

floatav=0.0;

for

av=av+a[i];

return;

}

11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在b所指的数组中.注意:

分数最高的学生可能不止一个,函数返回分数最高的学生的人数.

intfun

{inti,j=0,max=a[0].s;

for

ifmax=a[i].s;

for

if

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

returnj;}

12、除了字符串前导的*号之外,将串中其他*号全部删除.

voidfun

{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';

}

13、统计在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中.

voidfun

{inti;

for

pp[i]=0;

for<;*tt!

='\0';tt++>

if<*tt>='a'&&*tt<='z'>

pp[*tt-'a']++;

}

14、将字符串尾部的*号全部删除,前面和中间的*号不动.

voidfun

{while<*a!

='\0'>

a++;

a--;

while<*a=='*'>

a--;

*='\0';}

15、比拟字符串的长度,函数返回较长的字符串,如果一样,如此返回第一个字符串.

char*fun

{inti,j;

for

='\0';i++>;

for

='\0';j++>;

if

returnt;

else

returns;}

16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入.假如没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回.

STRECfun

{inti;

STRECstr={"\0",-1};

for

if==0>

str=a[i];

returnstr;

}

17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的新串放在t数组中.voidfun

{

inti,j=0;

for

='\0';i++>

if

t[j++]=s[i];

t[j]='\0';

}

18、利用下面的简单迭代方法求方程cos-x=0的一个实根s

.

doublefun<>

{doublex0,x1;

x1=0.0;

do

{

x0=x1;

x1=cos;

}while>=1e-6>;

returnx1;

}

19、将字符串中的前导*号全部移到字符串尾部.

voidfun

{inti=0,n=0;

char*p;

p=a;

while<*p=='*'>/*判断*p是否是*号,并统计*号的个数*/

{

n++;p++;

}

while<*p>/*将前导*号后的字符传递给a*/

{

a[i]=*p;i++;p++;

}

while

=0>

{

a[i]='*';i++;n--;

}

a[i]='\0';}

20、N名学生的数据已放入主函数中的结构体数组中,把分数最低的学生数据放入b所指的数组中.

intfun

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

for

ifa[i].s>

min=a[i].s;/*找出最小值*/

for

if

b[j++]=a[i];/*找出成绩与min相等的学生的记录,存入结构体b中*/

returnj;

}

21、计算

doublefun

{inti;

doubles=0.0;

for

s=s+log;

returnsqrt;

}

22、只删除字符前导和尾部的*号,串中字母间的*号都不删除.

voidfun

{inti,j=0;

for

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

a[j]='\0';}

23、将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中

voidfun

{inti,j=0,k=strlen;

for

t[j++]=s[i];

t[j]='\0';}

24、将a,b中的两位正整数合并成一个新的整数放在c中.合并方式是:

将a中的十位和个位依次放在变量c的百位和个位上,B中的十位和个位数依次放在变量c的十位和千位上.

voidfun

{

*c=a%10+*10+*100+*1000;

}

25、除了尾部的*号之外,将字符中的其他的*号全部删除.形参p已指向字符串最后的一个字母.

voidfun

{char*t=a;

for<;t<=p;t++>

if<*t!

='*'>

*=*t;

for<;*t!

='\0';t++>

*=*t;

*a='\0';

}

26、N名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后.

voidfun

{inti,j;

STRECt;

for

for

if

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

27、N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回.

doublefun

{

inti;

doubleav=0.0;

*n=0;

for

av=av+a[i].s;

av=av/N;

for

if

{b[*n]=a[i];*n=*n+1;}

returnav;}

28、将1~m之间〔含m〕能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数.

voidfun

{inti,j=0;

for

if

a[j++]=i;

*n=j;}

29、将字符串中的前导*号全部删除,中间和尾部的*号不删除.

voidfun

{char*p=a;

while<*p=='*'>p++;

for<;*p!

='\0';p++,a++>

*a=*p;

*a='\0';}

30、N名学生的成绩已在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点.找出学生的最高分.

doublefun

{doublemax=h->s;

while

=NULL>

{ifs>max=h->s;

h=h->next;

}

returnmax;

}

30、找出一维整型数组元素最大的值与其所在的下标,并通过形参传回.主函数中x是数组名,n是x数据个数,max存放最大值,index存放最大值所在元素的下标.

voidfun

{inti;

*max=a[0];

*d=0;

for

if<*max

{*max=a[i];*d=i;}

}

31、将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串在剩余字符所形成的一个新串放在t所指的数组中.

voidfun

{inti,j=0,n;

n=strlen;

for

if

=0&&s[i]%2!

=0>

{t[j]=s[i];

j++;

}

t[j]='\0';}

32、实现B=A+’A’,即将矩阵A加上A的转置,存放在矩阵B中.

voidfun

{inti,j;

for

for

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

33、将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中.

voidfun[10],int*b,int*n,intmm,intnn>

{inti,j;

for

for

{

b[*n]=*<*+j>;

*n=*n+1;

}

}

34、将两个两位数的正整数a,b合并成一个整数放在c中.合并的方式是:

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上.

voidfun

{

*c=a/10+*10+*100+*1000;

}

35、将放在字符串数组中的M个字符串〔每串的长度不超过N〕,按顺序合并成一个新的字符串.

voidfun

{inti,j,k=0;

for

for

='\0';j++>

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

b[k]='\0';

}

36、删除一个字符串中指定下标的字符.a指向原字符后的字符串存放在b所指的数组中,n中存指定的下标.

voidfun

{inti,k=0;

for

='\0';i++>

if

=n>

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

b[k]='\0';

}

37、移动一维数组中的内容,假如数组中有n个整数,要求把下标从0~p〔含p,p小于等于n-1〕的数组元素平移到数组的最后.

voidfun

{intx,j,ch;

for

{ch=w[0];

for

{

w[j-1]=w[j];

}

w[n-1]=ch;

}

}

38、将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中.

voidfun[N],char*b>

{inti,j,k=0;

for

for

b[k++]=s[j][i];

b[k]='\0';

}

39、计算

floatfun

{inti,s1=0;

floats=0.0;

for

{s1=s1+i;

s=s+1.0/s1;

}

returns;

}

40、将s所指字符串中ASCCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中

voidfun

{inti,j=0,n;

n=strlen;

for

if

{t[j]=s[i];

j++;

}

t[j]='\0';

}

42、删除一维数组中所有一样的数使之只剩一个.数组中的数已按由小到大的顺序排列函数返回删除后数组的数据.

intfun

{inti,j=1;

for

if

=a[i]>

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

returnj;

}

43、除了字符串前导和尾部的*号外,将串中其他的*号全部删除.

voidfun

{inti=0;

char*q=a;

while

{a[i]=*q;q++;i++;}

while{if<*q!

='*'>

{a[i]=*q;

i++;

}

q++;

}

while<*q>

{a[i]=*q;i++;q++;}

a[i]='\0';

}

44、将a,b的两个两位正整数合并成一个新的整数放在c中,合并方式是:

将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上.

voidfun

{

*c=a%10+*10+*100+*1000;

}

45、使字符串的前导*号不得多于n个,假如多于n个,如此删除多余的*号,假如少于或等于n个,如此不做处理,字符串中间和尾部的*号不删除.

voidfun

{inti=0;

intk=0;

char*p,*t;

p=t=a;

while<*t=='*'>

{k++;t++;}

ifn>

{while<*p>

{a[i]=*;

i++;

p++;

}

a[i]='\0';

}

}

46、将两个两位数的正整数a,b合并成一个整数放在c中,合并方式是:

将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上.

voidfun

{

*c=a/10+*10+*100+*1000;

}

47、将一个数字字符串转换为一个整数.

答案:

ongfun

{longn=0;

intflag=1;

if<*p=='-'>

{p++;flag=-1;}

elseif<*p=='+'>

p++;

while<*p!

='\0'>

{n=n*10+*p-'0';

p++;

}

returnn*flag;

}

48、求Fibonacc数列中大于t的最小的数,结果由函数返回.Fibonacc数列F〔n〕定义为

intfun

{intf0=0,f1=1,f;

do{

f=f0+f1;

f0=f1;

f1=f;

}while;

returnf;

}

49、把低于平均分的学生数据放入b所指的数组中低于平均分的学生人数通过形参n返回,平均分通过函数值返回

doublefun

{inti,j=0;

doubleav=0.0;

for

av=av+a[i].s;

av=av/N;

for

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

*n=j;

returnav;

}

50、将ss所指字符串所有下标为奇数位上的字母转换为大写.

voidfun

{inti;

for

='\0';i++>

if='a'&&ss[i]<='z'>

ss[i]=ss[i]-32;

}

51、将a,b两个正整数合并成一个新的整数放在c中.合并方式:

将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上.

voidfun

{*c=b/10+*10+*100+*1000;

}

52、使字符串中尾部的*号不多于n个,假如多于n个,如此删除多余的*号,假如少于或等于n个,如此不做任何操作,字符中间的*不删除.

voidfun

{inti=0,k=0;

char*p,*t;

p=t=a;

while<*t>

t++;

t--;

while<*t=='*'>

{k++;t--;}

ifn>

{while<*p&&p

{a[i]=*p;

i++;p++;

}

a[i]='\0';

}

}

53、将a,b两个正整数合并成一个新的整数放在c中.合并方式:

将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上.

voidfun

{*c=b%10+*10+*100+*1000;

}

54、将a,b两个正整数合并成一个新的整数放在c中.合并方式:

将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的十位和个位上.

voidfun

{

*c=b%10+*10+*100+*1000;

}

55、把指定分数X围内的学生数据放在b所指的数组中,分数

展开阅读全文
相关搜索

当前位置:首页 > 经管营销

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

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