程序设计与算法语言上机精彩试题abc副本副本.docx

上传人:b****5 文档编号:29538070 上传时间:2023-07-24 格式:DOCX 页数:70 大小:40.26KB
下载 相关 举报
程序设计与算法语言上机精彩试题abc副本副本.docx_第1页
第1页 / 共70页
程序设计与算法语言上机精彩试题abc副本副本.docx_第2页
第2页 / 共70页
程序设计与算法语言上机精彩试题abc副本副本.docx_第3页
第3页 / 共70页
程序设计与算法语言上机精彩试题abc副本副本.docx_第4页
第4页 / 共70页
程序设计与算法语言上机精彩试题abc副本副本.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

程序设计与算法语言上机精彩试题abc副本副本.docx

《程序设计与算法语言上机精彩试题abc副本副本.docx》由会员分享,可在线阅读,更多相关《程序设计与算法语言上机精彩试题abc副本副本.docx(70页珍藏版)》请在冰豆网上搜索。

程序设计与算法语言上机精彩试题abc副本副本.docx

程序设计与算法语言上机精彩试题abc副本副本

1、10个人的成绩存放在score数组中,编写函数fun,求出平均分,并作为函数值返回,且输出不及格人数。

#include

floatfun(inta[10])

{

inti,aver,sum=0;

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

sum=sum+a[i];

aver=sum/10;

returnaver;

}

voidmain()

{

inti,j=0,a[10]={10,20,30,40,50,60,70,80,90,100};

floataver;

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

if(a[i]<60)

j++;

aver=fun(a);

printf("10个人的成绩平均分为:

%5.2f\n",aver);

printf("\n");

printf("不及格人数:

%d\n",j);

}

2、求出1到100之能被7或者11整除,但不能同时被7和11整除的所有整数,并将他们放在指定的数组a中。

#include

voidmain()

{

inti,n,a[500];

n=fun(a);

for(i=0;i

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

}

intfun(inta[])

{

inti=7,j=0;

for(;i<=100;i++)

if((i%7==0||i%11==0)&&(!

(i%7==0&&i%11==0)))

a[j++]=i;

returnj;}

3、求方程

的解。

#include

#include

voidmain()

{

floata,b,c,d,x1,x2,m,n;

printf("请输入方程的3个系数,a,b,c:

");

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

printf("该方程\n");

if(fabs(a)<=1e-6)

{

if(fabs(b)<=1e-6)

{

if(fabs(c)<=1e-6)

printf("有无穷多个解\n");

else

printf("无解\n");

}

elseprintf("有一个根:

%8.4f\n",-c/b);

}

else

{

d=b*b-4*a*c;

if(fabs(d)<=1e-6)

printf("有两个相等的实根:

%8.4f\n",-b/(2*a));

else

if(d>1e-6)

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("有两个不等的实根:

%8.4f和%8.4f\n",x1,x2);

}

else

{

m=-b/(2*a);

n=sqrt(-d)/(2*a);

printf("有两个复根:

\n");

printf("%8.4f+%8.4fi\n",m,n);

printf("%8.4f-%8.4fi\n",m,n);

}

}

}

4、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E,90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

当输入分数为负值,或大于100时,通知用户“输入数据错误,重新输入”。

#include

voidmain()

{

floatx;

chary;

printf("输入学生成绩:

x=");

scanf("%f",&x);

while(x>100||x<0)

{

printf("输入错误,请重新输入学生成绩:

x=");

scanf("%f",&x);

}

if(x>=90)

y='A';

else

if(x>=80)

y='B';

else

if(x>=70)

y='C';

else

if(x>=60)

y='D';

else

y='E';

printf("\n学生的等级为:

y=%c\n",y);

}

5、求数组中最大元素在数组中的下标并存放在指针k所指的储存单元中。

#include

voidfun(int*s,intt,int*k)

{

inti,max;

max=s[0];

for(i=0;i

if(s[i]>max)

{

max=s[i];

*k=i;

}

}

voidmain()

{

inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("最大值在a中的位置为:

i=%d\n最大值为:

%d\n",k,a[k]);

}

6、编写函数fun,功能是:

根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+4+……+n)。

#include

floatfun(intn)

{

inti;

floats=1.0,t=1.0;

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

{

t=t+i;

s=s+1/t;

}

returns;

}

voidmain()

{

floaty;

intn;

printf("输入n的值:

\n");

scanf("%d",&n);

y=fun(n);

printf("y=%f\n",y);

}

7、定义了7×7的二维数组,并在主函数中自动赋值。

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

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

#include

intfun(inta[][7])

{

inti,j;

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

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

{

if(i>j)

a[i][j]=0;

}

}

voidmain()

{

inta[7][7],i,j;

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

{

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

{

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

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

}

printf("\n");

}

fun(a);

printf("输出处理后的数组a:

\n");

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

{

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

{

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

}

printf("\n");

}

}

8、编写一个函数voidfun(inttt[5][6],intpp[6]),tt指向一个5行6列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。

二维数组中的数已在主函数中初始化。

#include

voidfun(inttt[5][6],intpp[6])

{inti,j,min;

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

{min=tt[0][j];

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

{if(tt[i][j]

min=tt[i][j];

}

pp[j]=min;

}

}

voidmain()

{

intt[5][6]={{68,56,32,44,54,12},{14,56,24,47,88,58},{42,85,22,75,44,56},{45,12,3,5,78,45},{45,65,25,75,85,41}};

intp[6],i,j,k;

printf("Theriginaldatais:

\n");

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

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

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

printf("\n");

}

fun(t,p);

printf("\n二维函数组每列中最小元素为:

\n");

for(k=0;k<6;k++)

printf("%4d",p[k]);

printf("\n");

}

9、求出4行5列的二维数组周边元素之和。

#include

voidmain()

{

inta[4][5],i,j,sum=0,sum1=0,sum2=0;

printf("请输入4*5矩阵数据:

");

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

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

scanf("%d",&a[i][j]);

{

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

sum1=sum1+a[i][0]+a[i][4];

}

{

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

sum2=sum2+a[0][j]+a[3][j];

}

sum=sum1+sum2-a[0][0]-a[0][4]-a[3][0]-a[3][4];

printf("矩阵周边元素之和为:

%d\n",sum);

}

10、编写程序,把字符串中的容逆置(不准使用多个字符数组)。

#include

voidmain()

{

chara[80];

chart;

inti,n;

printf("输入一行字符串:

\n");

gets(a);

n=strlen(a);

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

{

t=a[i];

a[i]=a[n-i-1];

a[n-i-1]=t;

}

printf("字符串中的容逆置为:

\n");

puts(a);

}

11、编写程序,从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。

并把删除好的字符以字符串的形式输出(不准使用多个字符数组)。

#include

#include

voidmain()

{

charch,str[100];

inti,j=0;

printf("输入字符串:

\n");

gets(str);\\无上限读取字符

printf("输入要删除的字符:

");

ch=getchar();

for(i=0;i

if(str[i]!

=ch)

str[j++]=str[i];

str[j]='\0';

printf("\n字符串str为:

%s\n",str);

}

#include

#include

voidmain()

{

chara[80];

charch;

inti,j;

intn;

printf("输入一串字符字符:

\n");

gets(a);

printf("输入要删除的字符:

");

ch=getchar();

i=0;

while(a[i]!

='\0')

{

while(a[i]!

='\0'&&a[i]!

=ch)

i++;

n=strlen(a);

for(j=i;j

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

a[j]='\0';

}

printf("删除后的字符串:

");

puts(a);

}

12、编写程序,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

#include

voidmain()

{

charc[8];

chari,j,temp;

printf("长度为7个字符的c字符串:

");

gets(c);

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

{

for(j=i+1;j<=5;j++)

{

if(c[i]

{

temp=c[i];

c[i]=c[j];

c[j]=temp;

}

}

}

printf("首尾字符外,将其余5个字符按ascii码降序排列为:

%s\n",c);

}

13、编写函数fun,它的功能是:

比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符串长度相同,则返回第一个字符串。

#include

#include

char*fun(char*a,char*b)

{

inti,j;

for(i=0;*(a+i);i++);

for(j=0;*(b+j);j++);

if(i>=j)

returna;

else

returnb;

}

voidmain()

{

chara[100],b[100],*c;

printf("输入a字符串:

");

gets(a);

printf("输入b字符串:

");

gets(b);

c=fun(a,b);

printf("输出较长的c字符串:

");

puts(c);

}

14、给一个不多于5位的正整数,要求求出它是几位数,打印出每一位数字,并按逆序打印出各位数字。

#include

voidmain()

{

longintnum;

inta,b,c,d,f,place;

printf("输入num的数值:

");

scanf("%d",&num);

if(num>9999)

place=5;

else

if(num>999)

place=4;

else

if(num>99)

place=3;

else

if(num>9)

place=2;

else

place=1;

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

f=num/10000;

d=num/1000%10;

c=num/100%10;

b=num/10%10;

a=num%10;

switch(place)

{

case5:

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

printf("\n反序数为:

");

printf("%d,%d,%d,%d,%d\n",a,b,c,d,f);break;

case4:

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

printf("\n反序数为:

");

printf("%d,%d,%d,%d\n",a,b,c,d);break;

case3:

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

printf("\n反序数为:

");

printf("%d,%d,%d\n",a,b,c);break;

case2:

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

printf("\n反序数为:

");

printf("%d,%d\n",a,b);break;

case1:

printf("%d",a);

printf("\n反序数为:

");

printf("%d\n",a);break;

}

}

15、编写一个函数fun,它的功能是:

求出一个6×8的整型二维数组中最大元素的值,并将此值返回调用函数。

数组在主函数中初始化,并最终输出结果。

#include

intfun(inta[6][8])

{

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

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

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

if(max

max=a[i][j];

returnmax;

}

voidmain()

{

intarr[6][8]={{1,8,7,4,6,1,2,3},{65,75,12,45,62,18,65,24},{32,1,5,4,6,7,8,9},{5,5,5,9,9,9,8,8,},{9,5,2,4,7,81,2,5},{3,2,1,4,5,6,9,8}};

inti,j,max;

printf("arraya:

\n");

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

{

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

{

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

}

printf("\n");

}

max=fun(arr);

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

}

16、将字符数组s中的字符串,除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在新的字符数组t中。

#include

#include

voidmain()

{

chars[100],t[100];

inti,j=0,n;

printf("\n输入字符串S:

");

gets(s);//scanf("%s",s);

n=strlen(s);

for(i=0;i

if(i%2==0&&s[i]%2==0)

{

t[j]=s[i];

j++;

}

t[j]='\0';

printf("\nTheresultis:

%s\n",t);

}

#include

#include

voidfun(char*s,chart[])

{

inti,j=0,n;

n=strlen(s);

for(i=0;i

if(i%2==0&&s[i]%2==0)

{

t[j]=s[i];

j++;

}

t[j]='\0';

}

voidmain()

{

chars[100],t[100];

printf("\nPleaseenterstringS:

");

gets(s);//scanf("%s",s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

17、假定输入的字符串中只包含字母和*号。

则使字符串中的*号不得多于3个;若多于3个,则删除多于的*号;若少于或等于3个,则什么也不做。

#include

#include

voidmain()

{

charstr[50],c[50],b;

inti,j,n,a[50]={0},k,l;

gets(str);

n=strlen(str);

for(l=0,j=0,i=0;i

{

if(str[i]=='*')

{

l++;

if(l<=3)

{

a[j]=i;

j++;

}

}

else

{

a[j]=i;

j++;

}

}

for(i=0;i

{

k=a[i];

b=str[k];

str[i]=b;

}

for(i=j;i

str[i]='\0';

puts(str);

}

18、编程计算1!

+2!

+3!

+……n!

的值,其中,n值由键盘输入。

#include

voidmain()

{

intn;

inti=1,t=1,sum=0;

printf("输入n的数值:

");

scanf("%d",&n);

do

{

t=t*i;

sum=sum+t;

i++;

}

while(i<=n);

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

}

19、编写程序,删除字符串中的所有空格。

#include

#include

voidmain()

{

charstr[100];

inti,j=0;

printf("输入字符串:

\n");

gets(str);

for(i=0;i

if(str[i]!

='')str[j++]=str[i];

str[j]='\0';

printf("\n新字符串str为:

%s\n",str);

}

20、求出字符数组ss中存储的字符串中指定字符的个数。

#include

voidmain()

{

intfun(chara[],charch);

chara[100],ch;

printf("\nPleaseenterastring:

");

gets(a);

printf("\nPleaseenterachar:

");

ch=getchar();

printf("Thenumberis:

%d\n",fun(a,ch));

}

intfun(chara[],charch)

{

inti,j=0;

for(i=0;a[i]!

='\0';i++)

if(a[i]==ch)

j++;

returnj;

}

#include

voidmain()

{

chara[100],ch;

inti,j=0;

printf("输入字符串:

");

gets(a);

printf("\n");

printf("输入要查找的字符:

");

ch=getchar();

for(i=0;a[i]!

='\0';i++)

if(a

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

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

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

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