C语言程序设计练习题6.docx

上传人:b****5 文档编号:6858004 上传时间:2023-01-11 格式:DOCX 页数:20 大小:39.72KB
下载 相关 举报
C语言程序设计练习题6.docx_第1页
第1页 / 共20页
C语言程序设计练习题6.docx_第2页
第2页 / 共20页
C语言程序设计练习题6.docx_第3页
第3页 / 共20页
C语言程序设计练习题6.docx_第4页
第4页 / 共20页
C语言程序设计练习题6.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言程序设计练习题6.docx

《C语言程序设计练习题6.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题6.docx(20页珍藏版)》请在冰豆网上搜索。

C语言程序设计练习题6.docx

C语言程序设计练习题6

练习题6

1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。

main()

{charch;

ch=getchar();

if(ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’)

printf("ItisanEnglishcharacter\n");

elseif(ch>=’0’&&ch<=’9’)

printf("Itisadigitcharacter\n");

elseif(ch==‘’)

printf("Itisaspacecharacter\n");

else

printf("Itisothercharacter\n");}

2.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。

用输入0来结束输入,用i,j来放统计数,请填空完成程序。

  voidmain()

{intn,i=0,j=0;

printf(“inputainteger,0forend\n”);

scanf(“%d”,&n);

while(n或n!

=0){

if(n>0)i=i+1;

elsej=j+1;

}

printf(“i=%4d,j=%4d\n”,i,j);

}

3.编程计算1+3+5+……+101的值

#include

voidmain()

{inti,sum=0;

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

sum=sum+i;

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

4.编程计算1+3+5…+99的值

main()

{inti,sum=0;

i=1;

while(i<100)

{sum=sum+i;

i++;}

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

}

5.从键盘输入一个字符,判断它是否是英文字母。

#include

voidmain()

{charc;

printf("inputacharacter:

");

c=getchar();

if(c>=‘A’&&c<=‘Z’||c>=‘a’&&c<=‘z’)printf("Yes\n");

elseprintf("No");

}

6.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。

  #include

voidmain()

{inta[10],i,x;

printf(“input10integers:

”);

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

scanf(“%d”,&a[i]);

printf(“inputthenumberyouwanttofindx:

”);

scanf(“%d”,&x);

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

if(x==a[i])

break;

if(i<10)

printf(“theposofxis:

%d\n”,i);

elseprintf(“cannotfindx!

\n”);

}

7.程序读入20个整数,统计非负数个数,并计算非负数之和。

#include

main()

{inti,a[20],s,count;

s=count=0;

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

scanf(“%d”,&a[i]);

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

{if(a[i]<0)continue;

s+=a[i];

count++;

}

printf(“s=%d\tcount=%d\n”,s,count”);

}

8.输入一个正整数n(1

#include

intmain(void){

inti,index,k,n,temp;

/*定义1个数组a,它有10个整型元素*/

printf(“Entern:

");

printf(“Enter%dintegers:

",n);

for(i=0;i

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

for(k=0;k

index=k;

for()

if()index=i;

}

printf("Aftersorted:

");

for(i=0;i

return0;}

一、程序改错

一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1.求1

2

3

4

n

  main()

{longintsum;

intn,i=1;

scanf("%d",n);

printf(“\n”);

while(i

{sum=sum*i;

i++;

}

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

}

sum应初始化即加入sum=1

第四行改为:

scanf(“%d”,&n);

第六行改为:

while(i<=n)

第十行改为:

printf("sum=%ld",sum);

2.求一个数组中最大值及其下标。

main()

{intmax,j,m;

inta[5];

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

scanf(“%d”,a);

max=a[0];

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

if(max>a[j])

{max=a[j];

m=j;

}

printf(“下标:

%d\n最大值:

%d”,j,max)

}

第四行改为:

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

第五行改为:

scanf(“%d”,&a[j]);

第七行改为:

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

第八行改为:

if(max

第十三行改为:

printf(“下标:

%d\n最大值:

%d”,m,max)

3.用一个函数求两个数之和。

sum(x,y)

{floatz;

z=x+y;

return;

}

main()

{floata,b;

intc;

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

c=sum(a,b);

printf("\nSumis%f",sum);

}

第一行改为:

floatsum(floatx,floaty);

第四行改为:

return(z);

第八行:

floatc;

第十一行:

printf("\nSumis%f",c);

4.程序读入20个整数,统计非负数个数,并计算非负数之和.

#include“stdio.h”

main()

{

inti,s,count,n=20;

inta[n];

s=count=1;

for(i=1,i<20,i--)

scanf(“%d”,a[i]);

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

{

if(a[i]<0)

break;

s+=a[i];

count++;

}

printf(“s=%fcount=%f\n”,s,count);

}

printf(“s=%dcount=%d\n”,s,count);

答案:

inta[20]

s=count=0;

for(i=0;i<20;i--)

scanf(“%d”,&a[i]);

continue;

5.从键盘输入整数x的值,并输出y的值.

main()

{floatx,y;

scanf(“%d”,&x);

y=3.5+x;

printf(“y=%d”);

}

正确的:

intx;floaty;

printf(“y=%f”,y);

6编程计算下面分段函数,输入x,输出y

main()

{intx,y;

printf(“\nInputx:

\n”);

scanf(“%d”,x);

if(x<0)

y=x-1;

elseif(x>=0||x<=10)

y=2x-1;

else

y=3x-1;

printf(“y=%d”,&y);

}

7.求100~300间能被3整除的数的和。

main()

{intn;

longsum;

for(n=100,n<=300,n++)

{

if(n%3=0)

sum=sum*n;

}

printf(“%ld”,sum);

}

8.求表达式

的值

#include

#include

intfun(intx,inty);

main()

{inta,b;floatf;

scanf(“%d,%d”,a,b);

if(ab>0){

fun(a,b);

printf("Theresultis:

%d\n",&f)

}

elseprintf(“error!

”);}

fun(x,y)

{floatresult;

result=sqrt(a+b);

return;

}

9、通过函数调用,求两个数之差

sub(x,y)

{floatz;

z=x-y;

return;

}

main()

{floata,b;

intc;

scanf(“%f,%f”,&a,&b);

sub(a,b);

printf(“\nSubis%f”,sub);

}

二、编程题

1.输入2个整数,求两数的平方和并输出。

#include

intmain(void)

{intta,b,s;

printf("pleaseinputa,b:

\n");

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

s=a*a+b*b;

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

return0;

}

2.输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include

#definePI3.14

intmain(void)

{floatr,s,l;

printf("pleaseinputr:

\n");

scanf("%f”,&r);

if(r>=0)

{s=pi*r*r;

l=2*i*r;

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

printf("thecircumferenceis%f\n",l);}

else

printf("inputerror!

\n");

return0;

}

3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1(x<0)

y=0(x=0)

2x-1(x>0)

#include

voidmain()

{intx,y;

scanf(“%d”,&x);

if(x<0)y=2*x+1;

elseif(x>0)y=2*x-1;

elsey=0;

printf(“%d”,y);

}

4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:

score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

#include

voidmain(){

intdata;

chargrade;

printf("Pleaseenterthescore:

");

scanf("%d”,&data);

switch(data/10)

{case10:

case9:

grade=’A’;break;

case8:

grade=’B’;break;

case7:

grade=’C’;break;

case6:

grade=’D’;break;

default:

grade=’E’;

}

printf("thegradeis%c”,grade);

}

5.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:

要求当输入每月上网小时数,显示该月总的上网费用(6分)

#include

voidmain()

{inthour;

floatfee;

printf(“pleaseinputhour:

\n”);

scanf(“%d”,&hour);

if(hour<=10)

fee=30;

elseif(hour>=10&&hour<=50)

fee=3*hour;

elsefee=hour*2.5;

printf(“Thetotalfeeis%f”,fee);

}

6.从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。

#include

voidmain(){

inta,i,p=0,n=0,z=0;

printf("pleaseinputnumber");

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

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

if(a>0)p++;

elseif(a<0)n++;

elsez++;

}

printf("正数:

%5d,负数:

%5d,零:

%5d\n",p,n,z);

}

7、编程序实现求1-10之间的所有数的乘积并输出。

#include

voidmain()

{inti;

longsum=1;

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

sum=sum*i;

printf(“thesumofoddis:

%ld”,sum);

}

8.从键盘上输入10个数,求其平均值。

#include

voidmain(){

inta,i,sum=0;

floatave;;

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

scanf("%d",&a);

sum+=a;

}

ave=(float)sum/10;

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

}

9、编程序实现求1-1000之间的所有奇数的和并输出。

#include

voidmain()

{inti,sum=0;

for(i=1;i<1000;i=i+2)

sum=sum+i;

printf(“thesumofoddis:

%d”,sum);

}

10.有一个分数序列:

2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。

#include

voidmain(){

inti,t,n=20;

floata=2,b=1,s=0;

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

{s=s+a/b;

t=a;

a=a+b;

b=t;

}

printf("sum=%6.2f",s);

}

 

11.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)

#include

floatmax(floatx,floaty);

voidmain()

{floata,b,m;

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

m=max(a,b);

printf("Maxis%f\n",m);

}

floatmax(floatx,floaty)

{

if(x>=y)

returnx;

else

returny;

}

12.编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。

#include

#include

intIsPrimeNumber(intnumber)

{inti;

if(number<=1)

return0;

for(i=2;i

{if((number%i)==0)

return0;}

return1;}

voidmain()

{intn;

printf(“Pleaseinputn:

”);

scanf(“%d”,&n);

if(IsPrimeNumber(n))

printf(“\n%disaPrimeNumber”,n);

elseprintf(“\n%disnotaPrimeNumber”,n);}

13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。

#include

intmain(void){

inti,n,iIndex,temp;

inta[10];

printf("Entern:

");

scanf("%d",&n);

printf("Enter%dintegers:

\n",n);

for(i=0;i

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

iIndex=0;

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

if(a[i]

}

temp=a[0];a[0]=a[iIndex];a[iIndex]=temp;

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

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

printf("\n");

return0;

}

14.用数组实现以下功能:

输入5个学生成绩,而后求出这些成绩的平均值并显示出来。

#include

voidmain()

{inta[5],s=0;

inti;

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

scanf(“%d”,&a[i]);

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

s=s+a[i];

printf(“result=%f”,s/5.0);

}

 

15、输入一个正整数n(n<=6),再输入n×n的矩阵,求其主对角线元素之和及副对角线元素之和并输出。

#include

intmain(void){

inti,j,n,sum1=0,sum2=0;

inta[6][6];

printf("Entern(n<=6):

");

scanf("%d",&n);

printf("Enterdata:

\n");

for(i=0;i

for(j=0;j

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

if(i==j)

sum1+=a[i][j];

if(i+j==n-1)

sum2+=a[i][j];

}

printf("sum1=%d,sum2=%d",sum1,sum2);

return0;

}

16、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。

(提示:

用数组存放成绩数据)

#include

#defineM30

voidmain()

{floatscore[M],max,min,aver;

inti;

printf(“pleaseinputscore:

\n”);

for(i=0;i

scanf(“%f”,&score[i]);

max=score[0];

min=score[0];

aver=score[0];

for(i=1;i

{if(max

if(min>score[i])min=score[i];

aver+=score[i];

}

printf(“max=%f,min=%f,aver=%f”,max,min,aver/M);

}

17.将一个有5个元素的数组中的值(整数)按逆序重新存放。

例:

原来顺序为:

8、6、5、4、1,要求改为1、4、5、6、8

#defineN5

#include

voidmain()

{inta[N],i,temp;

printf(“enterarraya:

\n”);

for(i=0;i

scanf(“%d”,&a[i]);

for(i=0;i

{temp=a[i];

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

a[N-i-1]=temp;

}

printf(“\nNow,arraya:

\n”);

for(i=0;i

printf(“%4d”,a[i]);

printf(“\n”);

}

18.从键盘上输入一个2*3的矩阵,将其转秩后形成3*2的矩阵输出。

#include

voidmain()

{inta[2][3],b[3][2],i,j;

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

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

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

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

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

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

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

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

printf("%5d",b[i][j]);

printf("\n”);

}

}

19、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。

(提示:

用数组存放成绩数据)

#include

voidmain()

{inta[10];

inti,j,temp;

printf("inputscore:

\n");

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

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

printf("\n");

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

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

if(a[j]

{temp=a[j];

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

a[j+1]=temp

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

当前位置:首页 > 法律文书 > 调解书

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

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