全国计算机二级C语言程序设计题100全中必过.docx

上传人:b****3 文档编号:6253569 上传时间:2023-05-09 格式:DOCX 页数:112 大小:100.16KB
下载 相关 举报
全国计算机二级C语言程序设计题100全中必过.docx_第1页
第1页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第2页
第2页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第3页
第3页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第4页
第4页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第5页
第5页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第6页
第6页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第7页
第7页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第8页
第8页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第9页
第9页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第10页
第10页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第11页
第11页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第12页
第12页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第13页
第13页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第14页
第14页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第15页
第15页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第16页
第16页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第17页
第17页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第18页
第18页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第19页
第19页 / 共112页
全国计算机二级C语言程序设计题100全中必过.docx_第20页
第20页 / 共112页
亲,该文档总共112页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

全国计算机二级C语言程序设计题100全中必过.docx

《全国计算机二级C语言程序设计题100全中必过.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言程序设计题100全中必过.docx(112页珍藏版)》请在冰点文库上搜索。

全国计算机二级C语言程序设计题100全中必过.docx

全国计算机二级C语言程序设计题100全中必过

题目一“回文”字符串

3.请编写函数fun,该函数的功能是:

判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。

回文是指顺读和倒读都一样的字符串。

例如,字符串LEVEL是回文,而字符串123312就不是回文。

#include

#defineN80

intfun(char*str)

{

inti,n=0,fg=1;

char*p=str;

while(*p)/*将指针p置位到字符串末尾,并统计字符数*/

{

n++;

p++;

}

for(i=0;i

if(str[i]==str[n-1-i]);/*相同,什么都不作*/

else/*不同,直接跳出循环*/

{

fg=0;

break;

}

returnfg;

}

main()

{

chars[N];

FILE*out;

char*test[]={"1234321","123421","123321","abcdCBA"};

inti;

printf("Enterastring:

");

gets(s);

printf("\n\n");

puts(s);

if(fun(s))

printf("YES\n");

else

printf("NO\n");

/************************************/

out=fopen("out.dat","w");

for(i=0;i<4;i++)

if(fun(test[i]))

fprintf(out,"YES\n");

else

fprintf(out,"NO\n");

fclose(out);

/************************************/

}

题目二迭代法求给定多项式的值

3.编写函数fun,其功能是:

根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

程序运行后,若输入精度0.0005,则程序应输出为3.14…。

#include

#include

doublefun(doubleeps)

{

doubles=1.0,s1=1.0;

intn=1;

while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/

{s1=s1*n/(2*n+1);/*求多项式的每一项*/

s=s+s1;/*求和*/

n++;

}

return2*s;

}

main()

{doublex;voidNONO();

printf("Inputeps:

");

scanf("%lf",&x);printf("\neps=%lf,PI=%lf\n",x,fun(x));

NONO();

}

题目三迭代法求给定方程的根

3.编写函数fun,其功能是:

利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。

迭代步骤如下:

(1)取x1初值为0.0;

(2)x0=x1,将x1的值赋给x0;

(3)x1=cos(x0),求出一个新的x1;

(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚

(2);

(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出结果Root=0.739086。

#include

#include

doublefun()

{

doublex0,x1;

x1=0.0;

do

{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>=1e-6);

returnx1;

}

main()

{

voidNONO();

printf("Root=%f\n",fun());

NONO();

}

题目四二维数组三角元素操作1

3.程序定义了N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N],intn),该函数的功能是:

使数组左下半三角元素中的值乘以n。

例如,若n的值为3,a数组中的值为:

则返回主程序后a数组中的值应为:

 

#include

#include

#include

#defineN5

voidfun(inta[][N],intn)

{

inti,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]=a[i][j]*n;

}

main()

{

inta[N][N],n,i,j;

FILE*out;

printf("*****Thearray*****\n");

for(i=0;i

{

for(j=0;j

{

a[i][j]=rand()%10;

printf("%4d",a[i][j]);

}

printf("\n");

}

n=rand()%4;

printf("n=%4d\n",n);

fun(a,n);

printf("*****THERESULT*****\n");

for(i=0;i

{

for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

/******************************/

out=fopen("out.dat","w");

for(i=0;i

for(j=0;j

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

fun(a,9);

for(i=0;i

{

for(j=0;j

fprintf(out,"%4d",a[i][j]);

fprintf(out,"\n");

}

fclose(out);

/******************************/

}

题目四二维数组三角元素操作2

3.下列程序定义了N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N]),该函数的功能是:

将数组左下半三角元素中的值全部置成0。

例如a数组中的值为:

197

238

456

则返回主程序后a数组中的值应为:

097

008

000

#include

#include

#include

#defineN5

voidfun(inta[][N])

{

inti,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]=0;/*将数组左下半三角元素中的值全部置成0*/

}

voidmain()

{

FILE*wf;

inta[N][N],i,j;

intb[N][N]={1,9,7,2,4,2,3,8,1,2,4,5,6,7,5,4,0,6,8,0,2,7,1,6,4};

system("CLS");

printf("*****Thearray*****\n");

for(i=0;i

{for(j=0;j

{a[i][j]=rand()%10;

printf("%4d",a[i][j]);

}

printf("\n");

}

fun(a);

printf("THERESULT\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

/******************************/

wf=fopen("out.dat","w");

fun(b);

for(i=0;i

{for(j=0;j

fprintf(wf,"%4d",b[i][j]);

fprintf(wf,"\n");

}

fclose(wf);

/*****************************/

}

 

题目四二维数组三角元素操作3

3.下列程序定义了N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N],intm),该函数的功能是使数组右上半三角元素中的值乘以m。

例如,若m的值为2,a数组中的值为:

则返回主程序后a数组中的值应为:

#include

#include

#include

#include

#defineN5

voidfun(inta[][N],intm)

{

inti,j;

for(j=0;j

for(i=0;i<=j;i++)

a[i][j]=a[i][j]*m;/*右上半三角元素中的值乘以m*/

}

main()

{

inta[N][N],m,i,j;

FILE*out;

printf("*****Thearray*****\n");

for(i=0;i

{for(j=0;j

{a[i][j]=rand()%20;

printf("%4d",a[i][j]);

}

printf("\n");

}

m=rand()%4;

printf("m=%4d\n",m);

fun(a,m);

printf("THERESULT\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

/******************************/

out=fopen("out.dat","w");

for(i=0;i

for(j=0;j

a[i][j]=i*j;

fun(a,8);

for(i=0;i

{for(j=0;j

fprintf(out,"%4d",a[i][j]);

fprintf(out,"\n");

}

fclose(out);

/******************************/

}

题目五二维数组元素求最值

3.请编写函数fun,其功能是:

找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。

#include

#defineM4

intfun(inta[][M])

{

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

for(i=0;i<2;i++)

for(j=0;j

if(max

max=a[i][j];

returnmax;

}

main()

{intarr[2][M]={5,8,3,45,76,-4,12,82};voidNONO();

printf("max=%d\n",fun(arr));

NONO();

}

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*wf;

intarr[][M]={5,8,3,90,76,-4,12,82};

wf=fopen("out.dat","w");

fprintf(wf,"max=%d\n",fun(arr));

fclose(wf);

}

题目六二维数组周边元素1

3.下列程序定义了N×N的二维数组,并在主函数中赋值。

请编写函数fun,函数的功能是:

求出数组周边元素的平均值并作为函数值返回给主函数中的s。

例如,若a数组中的值为:

0 1 2 7 9

1 9 7 4 5

2 3 8 3 1

4 5 6 8 2

5 9 1 4 1

则返回主程序后s的值应为3.375。

#include

#include

#include

#defineN5

doublefun(intw[][N])

{

inti,j,k=0;

doubleav=0.0;

for(i=0;i

for(j=0;j

if(i==0||i==N-1||j==0||j==N-1)/*只要下标中有一个为0或N-1,则它一定是周边元素*/

{av=av+w[i][j];/*将周边元素求和*/

k++;

}

returnav/k;/*求周边元素的平均值*/

}

voidmain()

{

FILE*wf;

inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};

inti,j;

doubles;

system("CLS");

printf("*****Thearray*****\n");

for(i=0;i

{for(j=0;j

{printf("%4d",a[i][j]);}

printf("\n");

}

s=fun(a);

printf("*****THERESULT*****\n");

printf("Thesumis:

%lf\n",s);

/******************************/

wf=fopen("out.dat","w");

fprintf(wf,"%lf",s);

fclose(wf);

/*****************************/

}

题目六二维数组周边元素2

3.请编写函数fun,该函数的功能是:

求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

例如,若二维数组中的值为:

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

则函数值为61。

#include

#include

#include

#defineM4

#defineN5

intfun(inta[M][N])

{

inti,j,sum=0;

for(i=0;i

for(j=0;j

if(i==0||i==M-1||j==0||j==N-1)/*只要下标中有一个为0或M-1或N-1,则它一定是周边元素*/

sum=sum+a[i][j];/*将周边元素相加*/

returnsum;

}

voidmain()

{

FILE*wf;

intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};

inti,j,y;

system("CLS");

printf("Theoriginaldatais:

\n");

for(i=0;i

{for(j=0;j

printf("%6d",aa[i][j]);

printf("\n");

}

y=fun(aa);

printf("\nThesun:

%d\n",y);

printf("\n");

/******************************/

wf=fopen("out.dat","w");

fprintf(wf,"%d",y);

fclose(wf);

/*****************************/

}

题目七二维数组转一维数组1

3.请编写函数fun,该函数的功能是:

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

一维数组中数据的个数存放在形参n所指的存储单元中。

例如,若二维数组中的数据为

33333333

44444444

55555555

则一维数组中的内容应是:

334455334455334455334455

#include

voidfun(int(*s)[10],int*b,int*n,intmm,intnn)

{

inti,j;

for(j=0;j

for(i=0;i

{

b[*n]=*(*(s+i)+j);

*n=*n+1;/*通过指针返回元素个数*/

}

}

voidmain()

{

intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;

inta[100]={0},n=0;

FILE*out;

printf("Thematrix:

\n");

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

printf("%3d",w[i][j]);

printf("\n");

}

fun(w,a,&n,3,4);

/******************************/

out=fopen("out.dat","w");

printf("TheAarray:

\n");

for(i=0;i

{printf("%3d",a[i]);

fprintf(out,"%d",a[i]);

}

printf("\n\n");

fclose(out);

/******************************/

}

题目七二维数组转一维数组2

3.请编写函数fun,该函数的功能是:

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

例如,若二维数组中的数据为

WWWW

SSSS

HHHH

则字符串中的内容应是:

WSHWSHWSHWSH。

#include

#defineM3

#defineN4

voidfun(char(*s)[N],char*b)

{

inti,j,k=0;

for(i=0;i

for(j=0;j

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

b[k]='\0';

}

voidmain()

{

FILE*wf;

chara[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};

inti,j;

printf("Thematrix:

\n");

for(i=0;i

{for(j=0;j

printf("%3c",w[i][j]);

printf("\n");

}

fun(w,a);

printf("TheAstring:

\n");

puts(a);

printf("\n\n");

/******************************/

wf=fopen("out.dat","w");

fprintf(wf,"%s",a);

fclose(wf);

/*****************************/

}

题目七二维数组转一维数组3

1.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。

二维数组中的数已在主函数中给出。

#include

#include

#include

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{

inti,j,max;

for(j=0;j

{

max=tt[0][j];/*假设各列中的第一个元素最大*/

for(i=0;i

if(tt[i][j]>max)/*如果各列中的元素比最大值大,则将这个更大的元素看作当前该列中最大元素*/

max=tt[i][j];

pp[j]=max;/*将各列的最大值依次放入pp数组中*/

}

}

main()

{

voidNONO();

intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};

intp[N],i,j,k;

printf("Theoriginaldatais:

\n");

for(i=0;i

for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nTheresultis:

\n");

for(k=0;k

printf("\n");

NONO();

}

voidNONO()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。

*/

inti,j,k,m,t[M][N],p[N];

FILE*rf,*wf;

rf=fopen("in.dat","r");

wf=fopen("out.dat","w");

for(m=0;m<10;m++){

for(i=0;i

for(j=0;j

fscanf(rf,"%6d",&t[i][j]);

}

f

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2