C语言-练习题(带答案)_第1页
C语言-练习题(带答案)_第2页
C语言-练习题(带答案)_第3页
C语言-练习题(带答案)_第4页
C语言-练习题(带答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单项选择题

1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程

2.C语言程序从C开始执行。

A)程序中笫一条可执行语句B)程序中第一个函数

C)程序中的main函数D)包含文件中的第一个函数

3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是(B)o

A)C程序的工作过程是编辑、编译、连接、运行

B)C语言不区分大小写。

C)C程序的三种基本结构是顺序、选择、循环

D)C程序从main函数开始执行

5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.intt

6.下列C语言用户标识符中合法的是(B)o

A)3axB)xC)caseD)-e2E)union

7.下列四组选项中,正确的C语言标识符是(C)<,

A)%xB)a+bC)a123D)123

8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A^print_3ddb8aBcB、l\amone_halfstart$it3pai

C、str_1CpppowwhileD、PxqMy->bookline#His.age

9.C语言中的简单数据类型包括(D)o

A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型

C、整型、字符型、逻辑型D、整型、实型、字符型

10.在C语言程序中,表达式5%2的结果是£。

A)2.5B)2C)1D)3

11.如果inta=3,b=4:见条件表达式"avb?a:b"的值是_A_。

A)3B)4C)0D)1

12.若intx=2,y=3,z=4则表达式xvz?y:z的结果是(B).

A)4B)3C)2D)0E)1

13.C语言中,关系表达式和逻辑表达式的值是(B)

A)08)0或1C)1D)T或F

14.下面(D)表达式的值为4.

A)11/3B)11.0/3

C)(float)11/3D)(int)(11.0/3+0.5)

15.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B

A.b=1.0/aB.b=(float)(1/a)

C.b=1/(float)aD.b=1/(a*1.0)

16.若“intn;floatf=13.8;”,则执行“n=(int)f%3"后,n的值是(A)

A.1B.4C.4.333333D.4.6

17.以下对一维数组a的正确说明是:D

A)chara(10);B)inta[]:

C)intk=5,a[k];D)chara[3]={宣,

18.以下能对一维数组a进行初始化的语句是:(C)

A.inta[5]=(0,1,2,3,4,)B.inta(5)={}

C.inta[3]={0,1,2}D.inta{5}={10*1}

19.在C语言中对一维整型数组的正确定义为。

A)inta(10);B)intn=10,a[n];

C)intn;a[n];D)#defineN10

inta[N];

20、已知:inta[10];则对a数组元素的正确引用是(D)。

A、a[10]B、a[3.5]C、a(5)D、a[0]

21.若有以下数组说明,则i=10;a[a叩元素数值是(B2

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

A.10B.9C.6D.5

22.若有说明:inta口[3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:(B)

A.2B.30.4D.无确定值

57D)369

23.对二维数组的正确定义是(C)

A.inta[][]={1,23,4,5,6};B.inta[2][]={1,2,34,5,6};

C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6};

24.已知inta[3][4];则对数组元素引用正确的是

A)a[2][4]B)a[1,3]C)a[2][0]D)a(2)(1)

25.C语言中函数返回值的类型是由_A_决定的.

A)函数定义时指定的类型B)return语句中的表达式类型

C)调用该函数时的实参的数据类型D)形参的数据类型

26.在C语言中,函数的数据类型是指(A)

A函数返回值的数据类型B.函数形参的数据类型

C调用该函数时的实参的数据类型D.任意指定的数据类型

27.在函数调用时,以下说法正确的是(B)

A.函数调用后必须带回返回值

B.实际参数和形式参数可以同名

C.函数间的数据传递不可以使用全局变量

D.主调函数和被调函数总是在同一个文件里

28.在C语言中,表示静态存储类别的关键字是:(C)

A)autoB)registerC)staticD)extern

29.未指定存储类别的变量,其隐含的存储类别为(A)。

A)autoBJstatcC)externDJregister

30.若有以下说明语句:

structstudent

{intnum;

charname[];

floatscore;

}stu;

则下面的叙述不正确的是:(D)

A.struct是结构体类型的关键字

B.structstudent是用户定义的结构体类型

C.num,score都是结构体成员名

D.stu是用户定义的结构体类型名

31.若有以下说明语句:

structdate

{intyear;

intmonth;

intday;

Jbrithday;

则下面的叙述不正确的是一C.

A)struct是声明结构体类型时用的关键字

B)structdate是用户定义的结构体类型名

C)brithday是用户定义的结构体类型名

D)year,day都是结构体成员名

32.以下对结构变量stul中成员age的非法引用是B

structstudent

{intage:

intnum:

}stu1,*p;

p=&stu1;

A)stu1.ageB)student.ageC)p->ageD)(*p).age

33.设有如下定义:

strucksk

{inta;

floatb;

}data;

int*p;

若要使P指向data中的a域,正确的赋值语句是Q

A)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;

34.设有以下说明语句:

typedefstructstu

{inta;

floatb;

二、读程序

基本输入输出及流程控制

1.

#include<stdio.h>

main()

{inta=1,b=3,c=5;

if(c==a+b)

printf("yes'n");

else

printf(,,no\nn);

)

运行结果为:no

2.

#include<stdio.h>

main()

{inta=12,b=-34,c=56,min=0;

min=a;

if(min>b)

min=b;

if(min>c)

min=c;

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

)

运行结果为:min=-34

3.

include<stdio.h>

main()

{intx=2,y=-1,z=5;

if(xvy)

if(yvO)

z=0;

else

z=z+1;

printf(u%d\n,,,z);

)

运行结果为:5

4.

include<stdio.h>

main()

{floata,b,c,t;

a=3;

b=7;

c=1;

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf(M%5.2f,%5.2f,%5.2r,a,b,c);

}

运行结果为:1.00,2.00,7.00

5.

include<stdio.h>

main()

{floatc=3.0,d=4.0;

if(c>d)c=5.0;

else

if(c==d)c=6.0;

elsec=7.0;

printf(u%.1f\nn,c);

)

运行结果为:7.0

6.

#include<stdio.h>

main()

{intm;

scanf("%d“,&m);

if(m>=0)

{if(m%2==0)printf("%disapositiveeven\n",m);

elseprintf("%disapositiveodd\n",m);}

else

{if(m%2==0)printf(M%disanegativeeven\n",m);

M,,

elseprintf(%disanegativeodd\nJm);}

)

若键入一9,则运行结果为:・9isanegativeodd

7.

include<stdio.h>

main()

{intnum=O;

while(num<=2){num++;printf("%d\n",num);}

}

运行结果为:

1

2

3

8.

include<stdio.h>

main()

{intsum=10,n=1;

while(n<3){sum=sum-n;n++;}

printf(a%d,%dn,n,sum);

)

运行结果为:3,7

9.

include<stdio.h>

main()

{intnum,c;

scanf(,,%dH,&num);

do{c=num%10;printf(',%d,',c);}while((num/=10)>0);

prlntfCXn**);

}

从键盘输入23,则运行结果为:32

10

include<stdio.h>

main()

{ints=0,a=5,n;

scanf("%d",&n);

do{s+=1;a=a-2;}while(a!=n);

printf("%d,%d\n'*,s,a);

}

若输入的值1,运行结果为:2,1

11.

#include"stdio.hM

main()

{charc;

c=getchar();

while(c!=*?'){putchar(c);c=getchar();}

)

如果从键盘输入abcde?fgh(回车)

运行结果为:abcde

12.

include<stdio.h>

main()

{charc;

while((c=getchar())!=,$,)

{if(,Av=c&&cv=2)putchar(c);

elseif('a'<=c&&c<='z')putchar(c-32);}

)

当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD

13.

include<stdio.h>

main()

{intx,y=0;

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

{if(y>=10)

break;

y=y+x;

}

printf(u%d%d”,y,x);

}

运行结果为:105

14.

#include<stdio.h>

main()

{charch;

ch=getchar();

switch(ch)

{case4:printf(u%c,,,,A,);

case旧':printf(u%c,,,,B,);break;

default:printf(“%s\n",“other”);

})

当从键盘输入字母A时,运行结果为:AB

15.

include<stdio.h>

main()

{inta=1,b=0;

scanf(“%d”,&a);

switch(a)

{case1:b=1;break;

case2:b=2;break;

default:b=10;}

printf(M%d”,b);

}

若键盘输入5,运行结果为:10

16.

#include<stdio.h>

main()_

{chargrade=,C,;

switch(grade)

{caseTV:printf(M90-100\nn);

case'B':printf(“80・90\n");

caseC:printf(“70・80\n");

caseO:printf(u60-70\nn);break;

case•E5:printf(u<60\nn);

default:printf(“error!\n");

)

}

运行结果为:

70-80

60-70

17.

include<stdio.h>

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf(%dM,--y);

continue;

}

)

运行结果为:

852

18.

include<stdio.h>

main()

{intl,sum=O;i=1;

do{sum=sum+i;i++;}while(i<=10);

printf(u%d,,,sum);

)

运行结果为:55

19.

include<stdio.h>

#defineN4

main()

{inti;

intx1=1,x2=2;

printfCVn");

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

{printf("%4d%4d,,,x1,x2);

if(i%2==0)

printf("\nM);

x1=x1+x2;

x2=x2+x1;

}

)

运行结果为:

1235

8132134

20

#include<stdio.h>

main()

{intx,y;

for(x=30,y=0;x>=10,y<10;x-,y++)

x/=2,y+=2;

printf(ux=%d,y=%d\n,,,x,y);

)

运行结果为:

x=0,y=12

21.

include<stdio.h>

#defineN4

main()

{inti,j;

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

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

printfC*M);

printf("\n");

}}

运行结果为:

*

*

*

*

数组

1.

#include<stdio.h>

main()

{inti,a[10];

for(i=9;i>=0;i-)

a[i]=10-i;

printf(u%d%d%d,,,a[2],a[5],a[8]);

)

运行结果为:

852

2.

include<stdio.h>

main()

{inti,a[6];

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

a[i]=i;

for(i=5;i>=0;i-)

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

}

运行结果为:

543210

3.

include<stdio.h>

main()

{inti,k,a[10],p[3];

k=5;

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

a[i]=i;

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

p[i]=a[l*(i+1)];

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

k+=p[i]*2;

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

}

运行结果为:21

4.

include<stdio.h>

intm[3][3]={{1},{2},{3»;

intn[3][3]={1,2,3};

main()

{printf(“%d,",m[1][0]+n[0][0]);

printf(u%d\nn,m[0][1]+n[1][0]);

}

运行结果为:

3,0

include<stdio.h>

main()

{inti;

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

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

printf("%d",x[i][3-i]);

}

运行结果为:

68

6.

include<stdio.h>

main()

{intn[3][3],i,J;

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

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

{n[i]U]=i+J;

printf(M%d",n[i][j]);

)

)

}

运行结果为:

012

123

234

7.

include<stdio.h>

main()

{

chardiamondm5]={mm,”」,f

4★,999C9C,*“FC9,*,J9,*“fi9991.

{,_,_,_,h\—9,一,J51—J—JJJ,

inti,j;

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

(

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

printf(,,%c,,,diamond[i][j]);

printf(u\nn);

)

}注:代表一个空格。

运行结果为:

*

**

**

**

*

8.

#include<stdio.h>

main()

{inti,f[10];

f[0]=f[1]=1;

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

f[l]=f[l-2]+f[l-1];

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

{if(i%4==0)

printf(<,\nn);

printf(u%d»,f[i]);

)

}

运行结果为:

1123

581321

3455

9.

#include“stdio.h"

func(intb[])

{intj;

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

bUl=j;

)

main()

{inta[4],i;

func(a);

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

printf(<<%2d,,,a[i]);

)

运行结果为:

0123

10.

#include<stdio.h>

main()

{floatfun(floatx[]):

floatave,a[3]={4.5,2,4};

ave=fun(a);

printf(uave=%7.2f,,,ave);

)

floatfun(floatx[])

{intJ;

floataver=1;

forG=0;j<3;j++)

aver=x[j]*aver;

return(aver);

)

运行结果为:

ave=36.00

11.

#include<stdio.h>

main()

{inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],i,j;

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

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

bU][i]=a[i]U];

}

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

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

printfC%5d-,b[i][j]);

)

)

运行结果为:

142536

12.

#include<stdio.h>

f(intb[],intn)

{inti,r;

r=1;

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

r=r*b[i];

return(r);

}

main()

{intx,a0={1,2,3,4,5,6,78,9);

x=f(a,3);

printf("%d\n”,x);

)

运行结果为:

24

13.

#include"stdio.h"

main()

{intj,k;

staticintx[4][4],y[4][4];

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

for(k=j;k<4;k++)

xD][k]=j+k;

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

for(k=j;k<4;k++)

y[k]U]=xU][k];

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

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

printfC*%d;',y[j][k]);

)

运行结果为:

0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6

函数

1.

#include<stdio.h>

intSub(inta,intb)

{return(a-b);}

main()

{intx,y,result=0;

scanf("%d,%d",&x,&y);

result=Sub(x,y);

printfC'result=%d\nM,result);

)

当从键盘输入:6,3运行结果为:

result=3

2.

#include<stdio.h>

intmin(intx,inty)

{intm;

if(x>y)m=x;

elsem=y;

return(m);

}

main(){

inta=3,b=5,abmin:

abmin-min(a,b);

printf(“minis%d",abmin):

)

运行结果为:

minis5

3.

#include<stdio.h>

func(intx){

x=10;

printf(“%d,”,x);

}

main()

{intx=20;

func(x);

printf("%d”,x);

}

运行结果为:

10,20

4.

include<stdio.h>

intm=4;

intfunc(intx,inty)

{intm=1;

return(x*y-m);

}

main()

{inta=2,b=3;

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

printf(',%d\nH,func(a,b)/m);

}

运行结果为:

4

1

5.

#include<stdio.h>

intfun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

main()

{intx=15,y=8,r;

r=fun(x,y);

printf(Hr=%d\nM,r);

)

运行结果为:r=15

6.

#include<stdio.h>

intfac(intn)

{intf=1,i;

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

f=f*i;

return⑴;

}

main()

{intj,s;

scanf(u%dn,&j);

s=fac(j);

printf("%d!=%d\n",j,s);

)

如果从键盘输入3,运行结果为:3!=6

7.

include<stdio.h>

unsignedfun6(unsignednum)

{unsignedk=1;

do

{k*=num%10;

num/=10;

}while(num);

returnk;

}

main()

{unsignedn=26;

printf(u%d\nH,fun6(n));

}

运行结果为:12

8.

#include<stdio.h>

intmax(intx,inty);

main()

{inta,b,c

a=7;b=8;

c=max(a,b);

printf("Maxis%dH,c);

)

max(intx,inty)

{mtz;

z=x>y?x:y;

return(z);

)

运行结果为:

Maxis8

指针

1.

#include<stdio.h>

main()

{intx[]={10,20,30,40,50);

int*p;

P=x;

printf("%d”,*(p+2));

}

运行结果为:

30

2.

include<stdio.h>

main()

{chars[]=nabcdefgn;

char*p;

P=s;

printf(,,ch=%c\n,,,*(p+5));

)

运行结果为:

ch=f

3.

#include<stdio.h>

main()

{intaD={1,2,3,4,5);

intx,y,*p;

p=a;

x=*(P+2);

printf(M%d:%d\nM,*p,x);

}

运行结果为:

1:3

4.

#include<stdio.h>

main()

{intarr[]={30,25,20,15,10,5},*p=arr;

P++;

printf(u%d\nM,*(p+3));

}

运行结果为:10

5.

include<stdio.h>

main()

{inta[]={1,2,3,4,5,6};

intx,y,*p;

P=&a[0];

x=*(p+2);

y=*(P+4);

printf(u*p=%d,x=%d,y=%d\nn,*p,x,y);

}

运行结果为:

*p=1,x=3,y=5

6.

#include<stdio.h>

main()

,,,,

{staticchara[]=ProgramJ*ptr;

for(ptr=a,ptr<a+7;ptr+=2)

putchar(*ptr);

)

运行结果为:

Prom

7.

include<stdio.h>

chars[]=''ABCD”;

main()

{char*p;

for(p=s;p<s+4;p++)

printf(u%c%s\nn,*p,p);

)

运行结果为:

AABCD

BBCD

CCD

DD

结构体

1.

#include<stdio.h>

structst

{intx;

inty;

}a[2]={5,7,2,9);

main()

(

printf("%d\n,,,a[O].y*a[1].x);

)

运行结果是:

14

2.

#include<stdio.h>

main()

{structstu

{intnum;

chara[5];

floatscore;

}m={1234,nwangn,89.5};

printf(M%d,%s,%f,,,m.num,m.a,m.score);

)

运行结果是;

1234,wang,89.5

3.

#include<stdio.h>

structcmplx

{intx;

inty;

}cnum[2]={1,3,2,7};

maln()

{

<<,,

printf(%d\nJcnum[0].y*cnum[1].x);

)

运行结果是:6

4.

#include<stdio.h>

structabc

{inta,b,c;};

main()

{structabcs[2]={{1,2;3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

printf(M%d\nM,t);

)

运行结果是:6

三、程序填空

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

main()

{charch;

ch=getchar();

-ch>='a'&&chv='z'||ch>='A'&&chv='Z')

printf("ltisanEnglishcharacter\nH);

elseif(ch>='0'&&chv='9')

printf(Hltisadigitcharacter\n");

elseif(ch=='')

printff'ltisaspacecharacters");

else

printf("ltisothercharacter\n");}

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

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

voidmain()

{intn,i=OJ=O;

printffinputainteger,0forend\nn);

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<stdio.n>

voidmain()

{inti,sum=0;

for(i=1:iv=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(wsum=%d\n,',sum);

}

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

#include<stdio.h>

voidmain()

{charc;

printf(Minputacharacter:");

c=getchar();

if(c>=W&&c<=*Z'IIc>='a'&&c<='z')printf("Yes\n");

elseprintff'No");

}

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

#include<stdio.h>

voidmain()

{inta[10],i,x;

printtfinput10integers:");

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

scanf(M%dw,&a[i]);

printf(Minputthenumberyouwanttofindx:");

scanf(,l%d,\&x);

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

if(x==a[i])

break;

if(i<10)

printf(Htheposofxis:%d\n",i);

elseprintf(ucannotfindx!\n*');

)

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

#include<stdio.h>

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[il;

count++;

)

,,

printf('*s=%d\tcount=%d\n)s,count'*);

}

8.输入一个正整数n(1vnW10),再输入n个整数,用选择法将它们从小到大排序后输出。

include<stdio.h>

intmain(void){

inti,index,k,n,temp;

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

printfC'Entern:");

printf(uEnter%dintegers:",n);

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

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

for(k=0;k<n-1;k++){/*对n个数排序*/

index=k;

for()

iff)index=i;

}

printf("Aftersorted:");

for(i=0;i<n;i++)/*输出n个数组元素的值*/

return0;}

四、程序改错

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

行结果。

1.求1x2x3x4x...xn

main()

{longintsum;

intn,i=1;

scanf("%d,,,n);

printf(M\nn);

while(i<n)

{sum=sum*i;

i++;

}

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

}

sum应初始化即加入sum=1

第四行改为:scanfC%d",&n);

第六行改为:while(i<=n)

第十行改为:printi(',sum=%ld",sum);

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

main()

{intmax,j,m;

inta[5];

for(j=1;j<=5;j4-4-)

scanf("%d”,a);

max=a[0];

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

if(max>a[j])

{max=a[j];

m=j;

}

printf(“下标:%d\n最大值:%d”,j,max)

)

第四行改为:for(j=0;jv5;O+)

第五行改为:scanfC'%d';&aO]);

第七行改为:for(j=0;j〈5;j++)

第八行改为:计(maxva[j])

第十一行改为: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);

MAff:floatc;

第H­一行:printf(^nSumis%f",c);

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

#include“stdio.h”

main()

(

inti,s,count,n=20;

inta[nl;

s=count=1;

for(

scanf("%d”,):

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

(

if(a[i]<0)

break;

s+=a[i];

count++;

}

printf("s=%fcouut=%f\n",s,count);

)

Rrintf(“SN%cLtQuntm%d\n”,s.CQunt);

答案:inta[20]

s=count=0;

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

scanfC'%d",&a[i]);

continue;

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

main()

{floatx,v;

scanf(u%dM,&x);

y=3.5+x;

printf("v:=%d"):

)

正确的:intx;floaty;

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

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

'x<()

y=«2x-l0<x<10

311J>1()

main()

{intx,y;

printf((<\nInputx:\nM);

scanf("%d”,x);

if(x<0)

y=x-1;

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

V=2x-1;

else

y=3x-1;

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

}

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

main()

{intn;

longsum;

for(r»=100,nv=3U0m++)

{

if(n%3=0)

sum=sum*n;

printf(H%ldn,sum);

8.求表达式c=J群的值

#include<stdio.h>

#include<math.h>

intfun(intx,inty);

main()

{inta,b;floatf;

scanf(u%d.%dn,a,b);

if(ab>0){

fun(a,b);

printf—Theresultis:%d\n",&f)

)

elseprintf(uerror!M);)

fun(x,v)

{floatresult;

result=sqrt(a+b);

return;

}

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

sub(x.v)

{floatz;

z=x-y;

return;

)

main()

{floata,b;

intc;

scanf(u%f,%fn,&a,&b);

sub(a,b);

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

}

五、编程题

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

#include<stdio.h>

intmain(void)

{intta,b,s;

printf(''pleaseinputa,b:\rT);

scanf(*%d%dM,&a,&b);

s=a*a+b*b;

printf(''theresultis%d\n”,s);

return0;

)

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

#include<stdio.h>

#definePI3.14

intmain(void)

{doubler,area,girth;

printf("pleaseinputr:\n");

scanf("%lf',&r);

if(r>=0)

{area=Pl*r*r;

girth=2*PI*r;

printf("theareais%.2f\n",area);

printf("(hegirthis%.2f\n'\girth);}

else

printf("Inputerror!\n");

return0;

I

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

2x+l(x<0)

0(x=0)

{2x-l(x>0)

^include<stdio.h>

voidmain()

{intx,y;

scanf("%d",&x);

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

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

elsey=0;

printf("%d”,y);

)

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

80^score<90,等级为B;70Wscore<80,等级为C;60Wscore<70,等级为D;score<60,

等级为E。

ttinclude<stdio.h>

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='I)';break;

default:grade='E';

}

printf(,zthegradeis%c”,grade);

)

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

30TL010小时

费用=<每小时3元10-5孙时

每小时2.5元之5孙时

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

^include<stdio.h>

voidmainO

{inthour;

floatfee;

printf("pleaseinputhour:\nn);

scanf("%d”,&hour);

if(hour<=10)

fee=30;

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

fce=3*hour;

elsefee=hour*2.5;

printf(wThetotalfeeis%fw,fee);

)

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

ttinclude<stdio.h>

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、编程序实现求―10之间的所有数的乘积并输出。

#include<stdio.h>

voidmain()

longsum=l;

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

sum=suir*i;

printf(uthcsumofoddis:%ldM,sum);

)

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

#include<stdio.h>

voidmain(){

inta,i,sum=0;

floatave;;

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

scanf&a);

sum+=a;

)

ave=(float)sum/10;

printf(z,avc=%f\n,,avc);

}

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

rtinclude<stdio.h>

voidmain()

{inti,SUITFO;

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

sum=sum+i;

printf("thesumofoddis:%d^,sum);

10.有一个分数序列:2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。

ttinclude<stdio.h>

voidmain(){

inti,t,n=20;

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

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

{s=s+a/b;

t=a;

a=a+b;

b=t;

}

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

)

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

该函数)

#include<stdio.h>

floatmax(floatx,floaty);

voidmain()

{floata,b,m;

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

m=max(a,b);

printf(z,Maxis%f\n”,m);

)

floatmax(floatx,floaty)

{

if(x>=y)

returnx;

else

returny;

)

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

输出是否为素数。

#include<math.h>

#include<stdio.h>

intIsPrimeNumber(intnumber)

{inti;

if(number<=1)

return0;

for(i=2;i<sqrt(number);i++)

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

return0;}

return1;}

voidmain()

{intn;

printf(^Pleaseinputn:");

scanf("%d",&n);

if(IsPrimeNumber(n))

printfCM\n%disaPrimeNumberv,n);

elseprintf("\n%disnotaPrimeNumber**,n);}

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

include<stdio.h>

intmain(void){

inti,n,ilndex,temp;

inta[10];

printf("Entern:");

scanf("%d",&n);

printf("Enter%dintegers:\n",n);

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

scanf("%d",

ilndex=0;

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

if(a[i]<a[ilndex]|ilndex=i;

)

temp=a[O];a[O]=a[ilndex];a[ilndex]=temp;

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

printfC'%5d",a[i]);

printf("\n");

return0;

)

14.用数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论