二级C语言程序设计上机题汇总.docx

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

二级C语言程序设计上机题汇总.docx

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

二级C语言程序设计上机题汇总.docx

二级C语言程序设计上机题汇总

二级(C语言程序设计)上机题汇总

一、程序调试题

(一)程序填空

练习一:

/*该程序功能:

对x=1,2,。

,10,f(x)=x*x*-5*x+sin(x)的最大值。

*/

#include

#include

#definef(x)x*x-5*x+sin(x)

voidmain()

{intx;floatmax;

____max=f

(1);____

for(x=2;x<=10;x++)

___if(max

printf("%f\n",max);

}

练习二:

/*该程序功能:

输入三个整数,按由小到大的顺序输出这三个数。

*/

#include

voidswap(__int*pa,int*pb____)

{/*交换两个数的位置*/

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

}

voidmain()

{

inta,b,c,temp;

scanf("%d%d%d",&a,&b,&c);

if(a>b)

swap(&a,&b);

if(b>c)

swap(&b,&c);

if(__a>b___)

swap(&a,&b);

printf("%d,%d,%d",a,b,c);

}

练习三:

/*该程序功能:

将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

*/

#include

voidDec2Bin(intm)

{

intbin[32],j;

for(j=0;m!

=0;j++)

{

bin[j]=__m%2___;

m=m/2;

}

for(;j!

=0;j--)

printf("%d",____bin[j-1]______);

}

voidmain()

{

intn;

scanf("%d",&n);

Dec2Bin(n);

}

练习四:

/*该程序功能:

输入数组x[7],调用函数f,去除数组中的负数,输出结果为:

1346*/

#include

voidf(int*a,int*m)

{inti,j;

for(i=0;i<*m;i++)

if(a[i]<0){

for(j=i--;j<*m-1;j++)a[j]=a[j+1];

___*m=*m-1;___

}

}

voidmain()

{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

_f(x,&n);_____

for(i=0;i

printf("\n");

}

练习五:

/*该程序功能:

输出6~1000之间的完数(1个数的因子和等于其自身的数:

6=1+2+3,28=1+2+4+7+14,则6,28都是完数)*/

#include

voidmain()

{inti,j,s;

for(i=6;i<=1000;i++){

___s=1;___

for(j=2;___j

if(s==i)printf("%d\n",s);

}

}

练习六:

/*该程序功能:

输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。

*/

#include

voidmain()

{intm=0,t=1,n;

while(__scanf(“%d”,&n),n<=0___);

while(!

(t<=n&&t*2>=n)){

___t=t*2;___

m++;

}

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

}

练习七:

/*该程序功能:

函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:

4567123*/

#include

voidf(int*a,intn,intk)

{inti,j,t;

for(i=0;i

_t=a[0];

for(j=1;j

a[n-1]=t;

}

}

voidmain()

{inti,x[7]={1,2,3,4,5,6,7};

f(x,7,3);

for(i=0;i<7;i++)printf("%5d",x[i]);printf("\n");

}

练习八:

/*该程序功能:

调用函数f,求二维数组a中全体元素的和.*/

#include

floatf(_float*x[],intm,intn_____)

{floaty=0;inti,j;

for(i=0;i

returny;

}

voidmain()

{floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];

inti;

for(i=0;i<3;i++)b[i]=__a[i]__;

printf("%.2f\n",f(b,3,4));

}

练习九:

/*该程序功能:

求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

*/

#include

#include

voidmain()

{

intn,s=0;

scanf("%d",&n);

____n=fabs(n);____

while(n!

=0){

____s+=n%10;____

n=n/10;

}

printf("%d\n",s);

}

练习十:

/*该程序功能:

数组的第1,2项均为1,此后各项值均为该项前二项之和。

计算数组第30项的值。

*/

#include

__longf(intn);

voidmain()

{

printf("%ld\n",f(30));

}

longf(intn)

{

if(_____n==1||n==2)

return1;

else

returnf(n-1)+f(n-2);

}

练习十一:

/*该程序功能:

输入m,n(要求输入均大于0,且m>=n),输出它们的最大公约数*/

#include

voidmain()

{intm,n,k;

while(scanf("%d%d",&m,&n),m<=0||n<=0||m

for(k=n;n%k!

=0||m%k!

=0;k--);

printf("%d\n",k);

}

练习十二:

/*程序功能:

输入一个整数后,输出该数的位数,如3114,则输出4。

*/

#include

voidmain()

{intn,k=0;

scanf(“%d”,&n);

while(n!

=0){

k++;

n=n/10;

}

printf(“%d\n”,k);

}

练习十三:

/*程序功能:

调用函数f,计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*xx,当x=1.7时的值。

*/

#include

floatf(float,float*,int);

voidmain()

{floatb[5]={1.1,2.2,3.3,4.4,5.5};

printf("%f\n",f(1.7,b,5));

}

floatf(floatx,float*a,intn)

{floaty=a[0],t=1;inti;

for(i=1;i

returny;

}

练习十四:

/*程序功能:

调用函数f,从字符串中删除所有的数字字符。

*/

#include

#include

#include

voidf(char*s)

{inti=0;

while(s[i]!

='\0')

if(isdigit(s[i]))strcpy(s+i,s+i+1);

elsei++;

}

(二)程序修改

练习一:

/*该程序功能:

运行是输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。

*/

#include

#include

voidmain()

{intn,s=0;

scanf("%d",&n);

n=fabs(n);

/********1*******/

while(n>1){//n>1改成n!

=0

s=s+n%10;

/********2******/

n=n%10;//n=n%10;改成n=n/10;

}

printf("%d\n",s);

}

练习二:

/*该程序功能:

输入m,n(要求输入均大于0,且m>=n),输出它们的最小公倍数*/

#include

voidmain()

{intm,n,k;

/********1*********/

while(scanf("%d%d",&m,&n),m<0&&n<0);//m<0&&n<0改成m<=0||n<=0||m

for(k=m;k%n!

=0;)

/********2********/

k=k+n;//k=k+n;改成k=k+m;

printf("%d\n",k);

}

练习三:

/*该程序功能:

输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母,输出该字符串。

*/

#include

#include

#include

voidmain()

{intn,i;

/*****1*****/

charstr;//charstr;改成char*str;

scanf("%d\n",&n);str=(char*)malloc(n);gets(str);

/*****2*****/

for(i=1;i

if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-('a'-'A');

puts(str);

}

练习四:

/*该程序功能:

输人1个字符串,按字母出现次序输出其中所出现过的大写英文字母。

如运行时输入字符串“FONTNAMEandFILENAME”应输出“FONTAMEIL”。

*/

#include

voidmain()

{charx[80],y[26];inti,j,ny=0;

gets(x);

for(i=0;x[i]!

='\0';i++)

if(x[i]>='A'&&x[i]<='Z'){

for(j=0;j

/*****1*****/

if(y[i]==x[j])continue;//y[i]==x[j]改成y[j]==x[i]continue;改成break;

if(j==ny){y[ny]=x[i];ny++;}

}

/*****2*****/

for(i=0;i<26;i++)//i<26;改成i

printf("%c",y[i]);

printf("\n");

}

练习五:

/*程序功能:

将一个char型数的高4位和低4位分离,分别输出,如22(二进制:

00010110)输出1,6*/

#include

voidmain()

{

chara,b1,b2,c;

scanf("%d",&a);

/******1******/

b1=a<<4;/*b1存放高4位*///b1=a<<4;改成b1=a>>4;

c=~(~0<<4);

/******2******/

b2=a|c;/*b2存放低4位*///b2=a|c;改成b2=a&c;

printf("%d,%d",b1,b2);

}

练习六:

/*在考生目录下的Paper子目录下,有Modify.c文件,该文件中”/*****N*****/”的下一行中有错误,请改正(注意:

不得加行,减行,加句,减句,否则后果自负)。

该程序功能:

输入x和正数,eps计算多项式1-x+x*x/2!

-x*x*x/3!

….的和直到末项的绝对值小于eps为止。

*/

#include

#include

voidmain()

{floatx,eps,s=1,t=1,i=1;

scanf("%f%f",&x,&eps);

do{

/*****1*****/

t=-t*x/++i;//t=-t*x/++i;改成t=-t*x/i++;

s+=t;

/*****2*****/

}while(fabs(t)>=eps)//while(fabs(t)>=eps);

printf("%f\n",s);

}

练习七:

/*程序功能:

输入n,输出n的所有质数因子,(如n=13860,输出2、2、3、3、5、7、11)。

*/

#include

voidmain()

{intn,i;

scanf(“%d”,&n);

/********1*******/

i=1;//i=1;改成i=2;

while(n>1)

if(n%i==0){

printf(“%d\t”,i);

n/=i;

}

else

/*******2********/

n--;//n--;改成i++;

}

练习八:

/*程序功能:

输入a,n,分别为3,6,则输出表达式的值3+33+333+3333+33333+333333*/

#include

voidmain()

{inti,a,n;longt=0;

/********1*******/

s=0;//s=0;改成longs=0;

scanf("%d%d",&a,&n);

for(i=1;i<=n;i++){

/********2*******/

t=t*10+i;//t=t*10+i;改成t=t*10+1;

s=s+t;

}

s=s*a;

printf("%ld\n",s);

}

练习九:

程序功能:

输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

#include

#include

#include

voidmain()

{

inti,n;

/*****1*****/

structaxy{floatx,y;}a;//structaxy{floatx,y;}*a;

scanf("%d",&n);

a=(structaxy*)malloc(n*2*sizeof(float));

for(i=0;i

/*****2*****/

scanf("%f%f",a[i].x,a[i].y);//scanf("%f%f",&a[i].x,&a[i].y);

for(i=0;i

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y);

}

练习十:

程序功能:

分别统计字符串中所有英文字母中的各元音字母个数。

#include

#include

voidmain()

{chara[80];intn[5]={0},i;gets(a);

for(i=0;a[i]!

='\0';i++)

/*****1*****/

switch(toupper(a[i])){//switch(tolower(a[i]))

case'a':

n[0]++;break;

case'e':

n[1]++;break;

case'i':

n[2]++;break;

case'o':

n[3]++;break;

/*****2*****/

case'U':

n[4]++;//case'u':

n[4]++;

}

for(i=0;i<5;i++)printf("%d\n",n[i]);

练习十一:

/*考生的目录Paper子目录下,有Modify.c文件,该文件中/*****N*****/的下一行中请改正。

该程序功能:

运行时输入10个数,然后分别输出其中的最大,最小的值。

*/

#include

voidmain()

{floatx,max,min;inti;

/********1*******/

for(i=0;i<=10;i++){//i<=10;改成i<10;

scanf("%f",&x);

/*******2********/

if(i=1){max=x;min=x;}//i=1改成i==0

if(x>max)max=x;

if(x

}

printf("%f,%f\n",max,min);

}

二、程序设计题

练习一:

/*设计程序:

z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值区间为[0,10]的整数,找出

使z取最小值的x1,y1,并将x1,y1以格式“%d,%d”写到考生目录中Paper下目录下的新建文件design.dat中*/

#include

#include

voidmain()

{

FILE*p;

intx,y,x1,y1;floatz,z1;

/*考生在这里添加程序*/

p=fopen("design.dat","w");

z1=0;

for(x=0;x<=10;x++)

for(y=0;y<=10;y++)

{z=10*cos(x-4)+5*sin(y-2);

if(z

{z1=z;x1=x;y1=y;}

}

fprintf(p,"%d,%d",x1,y1);

fclose(p);

}

练习二:

/*设计程序:

计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+......的值,并将其值

以格式"%.6f"写到考生目录中Paper下目录下的新建文件design.dat中*/

#include

#include

voidmain()

{

FILE*p;

inti;floatx=2.345,t=1.0,y=0.0;

floata[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};

/*考生在这里添加程序*/

y=a[0];

p=fopen("design.dat","w");

for(i=1;i<10;i++)

{t=t*x;

y+=a[i]*sin(t);}

fprintf(p,"%.6f",y);

fclose(p);

}

练习三:

/*设计程序:

计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值一格式"%f"写到考生目录中Paper下目录下的新建文件design.dat中*/

#include

#include

voidmain()

{FILE*p;inti;floatx=1.279,t=1,y=0;

floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};

/*考生在这里添加程序*/

y=a[0];

p=fopen("design.dat","w");

for(i=1;i<10;i++)

{t=t*x;

y+=a[i]*t;}

fprintf(p,"%f",y);

fclose(p);

}

练习四:

/*设计程序:

累加a字符串各个字符的ASCII码值,然后将累加和以形式“%d”写到考生目录中Paper下目录下的新建文件design.dat中*/

#include

voidmain()

{FILE*p;ints=0,i=0;

char*a="r235%^%34cdDW,.";

/*考生在这里添加程序*/

p=fopen("design.dat","w");

for(;a[i]!

='\0';i++)

s+=a[i];

fprintf(p,"%d",s);

fclose(p);

}

练习五:

/*设计程序:

寻找并输出11到999之间的数m,它满足m,m*m,m*m*m均为回文数。

所谓回文数是指各位数字左右对称,例如121,676,94249等。

满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。

请编制函数intJSValue(longm)实现此功能,如果是回文数,则函数返回为1,反之则返回0。

*/

#include

#include

#include

intJSValue(longm)

{

/*考生在这里添加程序*/

inta[10],i=0,n;

while(m)

{a[i]=m%10;

m=m/10;

i++;}

for(--i,n=i;i>n/2;i--)

if(a[i]!

=a[n-i])

return0;

return1;

}

voidmain()

{

FILE*p;longm;

p=fopen("design.dat","w");

for(m=11;m<1000;m++)

{

if(JSValue(m)&&JSV

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

当前位置:首页 > 自然科学 > 物理

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

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