C語言-練習(xí)題(帶答案)_第1頁
C語言-練習(xí)題(帶答案)_第2頁
C語言-練習(xí)題(帶答案)_第3頁
C語言-練習(xí)題(帶答案)_第4頁
C語言-練習(xí)題(帶答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單項(xiàng)選擇題

1.(A)是構(gòu)成C語言程序的基本單位。

A、函數(shù)B、過程C、子程序D、子例程

2.C語言程序從C開始執(zhí)行。

A)程序中笫一條可執(zhí)行語句B)程序中第一個函數(shù)

C)程序中的main函數(shù)D)包含文件中的第一個函數(shù)

3、以下說法中正確的是(C)。

A、C語言程序總是從第一個定義的函數(shù)開始執(zhí)行

B、在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

C、C語言程序總是從main()函數(shù)開始執(zhí)行

D、C語言程序中的main()函數(shù)必須放在程序的開始部分

4.下列關(guān)于C語言的說法錯誤的是(B)o

A)C程序的工作過程是編輯、編譯、連接、運(yùn)行

B)C語言不區(qū)分大小寫。

C)C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán)

D)C程序從main函數(shù)開始執(zhí)行

5.下列正確的標(biāo)識符是(C)。

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

6.下列C語言用戶標(biāo)識符中合法的是(B)o

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

7.下列四組選項(xiàng)中,正確的C語言標(biāo)識符是(C)<,

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

8、下列四組字符串中都可以用作C語言程序中的標(biāo)識符的是(A)。

A^print_3ddb8aBcB、l\amone_halfstart$it3pai

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

9.C語言中的簡單數(shù)據(jù)類型包括(D)o

A、整型、實(shí)型、邏輯型B、整型、實(shí)型、邏輯型、字符型

C、整型、字符型、邏輯型D、整型、實(shí)型、字符型

10.在C語言程序中,表達(dá)式5%2的結(jié)果是£。

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

11.如果inta=3,b=4:見條件表達(dá)式"avb?a:b"的值是_A_。

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

12.若intx=2,y=3,z=4則表達(dá)式xvz?y:z的結(jié)果是(B).

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

13.C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是(B)

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

14.下面(D)表達(dá)式的值為4.

A)11/3B)11.0/3

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

15.設(shè)整型變量a=2,則執(zhí)行下列語句后,浮點(diǎn)型變量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;”,則執(zhí)行“n=(int)f%3"后,n的值是(A)

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

17.以下對一維數(shù)組a的正確說明是:D

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

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

18.以下能對一維數(shù)組a進(jìn)行初始化的語句是:(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語言中對一維整型數(shù)組的正確定義為。

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

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

inta[N];

20、已知:inta[10];則對a數(shù)組元素的正確引用是(D)。

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

21.若有以下數(shù)組說明,則i=10;a[a叩元素數(shù)值是(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}};則數(shù)組a的第一維的大小為:(B)

A.2B.30.4D.無確定值

57D)369

23.對二維數(shù)組的正確定義是(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];則對數(shù)組元素引用正確的是

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

25.C語言中函數(shù)返回值的類型是由_A_決定的.

A)函數(shù)定義時指定的類型B)return語句中的表達(dá)式類型

C)調(diào)用該函數(shù)時的實(shí)參的數(shù)據(jù)類型D)形參的數(shù)據(jù)類型

26.在C語言中,函數(shù)的數(shù)據(jù)類型是指(A)

A函數(shù)返回值的數(shù)據(jù)類型B.函數(shù)形參的數(shù)據(jù)類型

C調(diào)用該函數(shù)時的實(shí)參的數(shù)據(jù)類型D.任意指定的數(shù)據(jù)類型

27.在函數(shù)調(diào)用時,以下說法正確的是(B)

A.函數(shù)調(diào)用后必須帶回返回值

B.實(shí)際參數(shù)和形式參數(shù)可以同名

C.函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量

D.主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里

28.在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是:(C)

A)autoB)registerC)staticD)extern

29.未指定存儲類別的變量,其隱含的存儲類別為(A)。

A)autoBJstatcC)externDJregister

30.若有以下說明語句:

structstudent

{intnum;

charname[];

floatscore;

}stu;

則下面的敘述不正確的是:(D)

A.struct是結(jié)構(gòu)體類型的關(guān)鍵字

B.structstudent是用戶定義的結(jié)構(gòu)體類型

C.num,score都是結(jié)構(gòu)體成員名

D.stu是用戶定義的結(jié)構(gòu)體類型名

31.若有以下說明語句:

structdate

{intyear;

intmonth;

intday;

Jbrithday;

則下面的敘述不正確的是一C.

A)struct是聲明結(jié)構(gòu)體類型時用的關(guān)鍵字

B)structdate是用戶定義的結(jié)構(gòu)體類型名

C)brithday是用戶定義的結(jié)構(gòu)體類型名

D)year,day都是結(jié)構(gòu)體成員名

32.以下對結(jié)構(gòu)變量stul中成員age的非法引用是B

structstudent

{intage:

intnum:

}stu1,*p;

p=&stu1;

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

33.設(shè)有如下定義:

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.設(shè)有以下說明語句:

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);

)

運(yùn)行結(jié)果為: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);

)

運(yùn)行結(jié)果為: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);

)

運(yùn)行結(jié)果為: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);

}

運(yùn)行結(jié)果為: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);

)

運(yùn)行結(jié)果為: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,則運(yùn)行結(jié)果為:?9isanegativeodd

7.

include<stdio.h>

main()

{intnum=O;

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

}

運(yùn)行結(jié)果為:

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);

)

運(yùn)行結(jié)果為: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,則運(yùn)行結(jié)果為: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,運(yùn)行結(jié)果為:2,1

11.

#include"stdio.hM

main()

{charc;

c=getchar();

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

)

如果從鍵盤輸入abcde?fgh(回車)

運(yùn)行結(jié)果為: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);}

)

當(dāng)輸入為ab*AB%cd#CD$時,運(yùn)行結(jié)果為: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);

}

運(yùn)行結(jié)果為: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”);

})

當(dāng)從鍵盤輸入字母A時,運(yùn)行結(jié)果為: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,運(yùn)行結(jié)果為: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");

)

}

運(yùn)行結(jié)果為:

70-80

60-70

17.

include<stdio.h>

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf(%dM,--y);

continue;

}

)

運(yùn)行結(jié)果為:

852

18.

include<stdio.h>

main()

{intl,sum=O;i=1;

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

printf(u%d,,,sum);

)

運(yùn)行結(jié)果為: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;

}

)

運(yùn)行結(jié)果為:

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);

)

運(yùn)行結(jié)果為:

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");

}}

運(yùn)行結(jié)果為:

*

*

*

*

數(shù)組

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]);

)

運(yùn)行結(jié)果為:

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]);

}

運(yùn)行結(jié)果為:

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);

}

運(yùn)行結(jié)果為: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]);

}

運(yùn)行結(jié)果為:

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]);

}

運(yùn)行結(jié)果為:

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]);

)

)

}

運(yùn)行結(jié)果為:

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);

)

}注:代表一個空格。

運(yùn)行結(jié)果為:

*

**

**

**

*

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]);

)

}

運(yùn)行結(jié)果為:

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]);

)

運(yùn)行結(jié)果為:

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);

)

運(yùn)行結(jié)果為:

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]);

)

)

運(yùn)行結(jié)果為:

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);

)

運(yùn)行結(jié)果為:

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]);

)

運(yùn)行結(jié)果為:

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

函數(shù)

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);

)

當(dāng)從鍵盤輸入:6,3運(yùn)行結(jié)果為:

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):

)

運(yùn)行結(jié)果為:

minis5

3.

#include<stdio.h>

func(intx){

x=10;

printf(“%d,”,x);

}

main()

{intx=20;

func(x);

printf("%d”,x);

}

運(yùn)行結(jié)果為:

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);

}

運(yùn)行結(jié)果為:

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);

)

運(yùn)行結(jié)果為: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,運(yùn)行結(jié)果為: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));

}

運(yùn)行結(jié)果為: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);

)

運(yùn)行結(jié)果為:

Maxis8

指針

1.

#include<stdio.h>

main()

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

int*p;

P=x;

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

}

運(yùn)行結(jié)果為:

30

2.

include<stdio.h>

main()

{chars[]=nabcdefgn;

char*p;

P=s;

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

)

運(yùn)行結(jié)果為:

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);

}

運(yùn)行結(jié)果為:

1:3

4.

#include<stdio.h>

main()

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

P++;

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

}

運(yùn)行結(jié)果為: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);

}

運(yùn)行結(jié)果為:

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

6.

#include<stdio.h>

main()

,,,,

{staticchara[]=ProgramJ*ptr;

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

putchar(*ptr);

)

運(yùn)行結(jié)果為:

Prom

7.

include<stdio.h>

chars[]=''ABCD”;

main()

{char*p;

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

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

)

運(yùn)行結(jié)果為:

AABCD

BBCD

CCD

DD

結(jié)構(gòu)體

1.

#include<stdio.h>

structst

{intx;

inty;

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

main()

(

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

)

運(yùn)行結(jié)果是:

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);

)

運(yùn)行結(jié)果是;

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);

)

運(yùn)行結(jié)果是: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);

)

運(yùn)行結(jié)果是:6

三、程序填空

1.輸入一個字符,判斷該字符是數(shù)字、字母、空格還是其他字符。

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.下列程序的功能是從輸入的整數(shù)中,統(tǒng)計(jì)大于零的整數(shù)個數(shù)和小于零的整數(shù)個數(shù)。用

輸入0來結(jié)束輸入,用i,j來放統(tǒng)計(jì)數(shù),請?zhí)羁胀瓿沙绦颉?/p>

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.編程計(jì)算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.編程計(jì)算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數(shù)組中有找與x值相同的元素所在位置,請?zhí)羁铡?/p>

#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個整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個數(shù),并計(jì)算非負(fù)數(shù)之和。

#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.輸入一個正整數(shù)n(1vnW10),再輸入n個整數(shù),用選擇法將它們從小到大排序后輸出。

include<stdio.h>

intmain(void){

inti,index,k,n,temp;

/*定義1個數(shù)組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個數(shù)排序*/

index=k;

for()

iff)index=i;

}

printf("Aftersorted:");

for(i=0;i<n;i++)/*輸出n個數(shù)組元素的值*/

return0;}

四、程序改錯

一、下面每個程序的劃線處有語法或邏輯錯誤,請找出并改正,使其得到符合題意的執(zhí)

行結(jié)果。

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應(yīng)初始化即加入sum=1

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

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

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

2.求一個數(shù)組中最大值及其下標(biāo)。

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(“下標(biāo):%d\n最大值:%d”,j,max)

)

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

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

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

第八行改為:計(jì)(maxva[j])

第十一行改為:printf("下標(biāo):%d\n最大值:%d”,m,max)

3.用一個函數(shù)求兩個數(shù)之和。

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個整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個數(shù),并計(jì)算非負(fù)數(shù)之和.

#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.從鍵盤輸入整數(shù)x的值,并輸出y的值.

main()

{floatx,v;

scanf(u%dM,&x);

y=3.5+x;

printf("v:=%d"):

)

正確的:intx;floaty;

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

6編程計(jì)算下面分段函數(shù),輸入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整除的數(shù)的和。

main()

{intn;

longsum;

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

{

if(n%3=0)

sum=sum*n;

printf(H%ldn,sum);

8.求表達(dá)式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、通過函數(shù)調(diào)用,求兩個數(shù)之差

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個整數(shù),求兩數(shù)的平方和并輸出。

#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,當(dāng)r〉=0時,計(jì)算并輸出圓的面積和周長,否則,輸出提示信息。

#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、已知函數(shù)尸f(x),編程實(shí)現(xiàn)輸入一個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.編一程序每個月根據(jù)每個月上網(wǎng)時間計(jì)算上網(wǎng)費(fèi)用,計(jì)算方法如下:

30TL010小時

費(fèi)用=<每小時3元10-5孫時

每小時2.5元之5孫時

要求當(dāng)輸入每月上網(wǎng)小時數(shù),顯示該月總的上網(wǎng)費(fèi)用(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個整數(shù),統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)和零的個數(shù),并在屏幕上輸出。

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("正數(shù):%5d:負(fù)數(shù):%5d,零:%5d\n”,p,n,z);

)

7、編程序?qū)崿F(xiàn)求―10之間的所有數(shù)的乘積并輸出。

#include<stdio.h>

voidmain()

longsum=l;

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

sum=suir*i;

printf(uthcsumofoddis:%ldM,sum);

)

8.從鍵盤上輸入10個數(shù),求其平均值。

#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、編程序?qū)崿F(xiàn)求1-1000之間的所有奇數(shù)的和并輸出。

rtinclude<stdio.h>

voidmain()

{inti,SUITFO;

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

sum=sum+i;

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

10.有一個分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,……編程求這個序列的前20項(xiàng)之和。

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.從鍵盤輸入兩個數(shù),求出其最大值(要求使用函數(shù)完成求最大值,并在主函數(shù)中調(diào)用

該函數(shù))

#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.編寫程序,其中自定義一函數(shù),用來判斷一個整數(shù)是否為素數(shù),主函數(shù)輸入一個數(shù),

輸出是否為素數(shù)。

#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個數(shù)存放在數(shù)組中,將最小值與第一個數(shù)交換,輸出交換后的n個數(shù)。

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.用數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論