C語(yǔ)言練習(xí)題題庫(kù)2_第1頁(yè)
C語(yǔ)言練習(xí)題題庫(kù)2_第2頁(yè)
C語(yǔ)言練習(xí)題題庫(kù)2_第3頁(yè)
C語(yǔ)言練習(xí)題題庫(kù)2_第4頁(yè)
C語(yǔ)言練習(xí)題題庫(kù)2_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單項(xiàng)選擇題:

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

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

2.C語(yǔ)言程序從C開(kāi)始執(zhí)行。

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

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

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

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

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

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

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

4.下列關(guān)于C語(yǔ)言的說(shuō)法錯(cuò)誤的是(B)o

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

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

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

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

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

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

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

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

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

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

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

A、print_3ddb8aBcB>l\amone_halfstart$it3pai

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

9.C語(yǔ)言中的簡(jiǎn)單數(shù)據(jù)類型包括(D)。

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

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

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

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

11.如果inta=3,b=4;則條件表達(dá)式"a<b?a:b"的值是

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

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

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

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

A)0B)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í)行下列語(yǔ)句后,浮點(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.以下對(duì)一維數(shù)組a的正確說(shuō)明是:D

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

C)intk=5,a[k];D)chara[3]={'a','b','c'};

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

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

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

inta[N];

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

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

21.若有以下數(shù)組說(shuō)明,則i=10;a[a叩元素?cái)?shù)值是(B

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

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

22.若有說(shuō)明:inta口網(wǎng)={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為:(B)

A.2B.3C.4D.無(wú)確定值

57D)369

23.對(duì)二維數(shù)組的正確定義是(C)

A.inta口口={123,4,5,6};B.inta[2]口={123,4,5,6};

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

24.已知inta[3][4];則對(duì)數(shù)組元素引用正確的是Q

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

25.C語(yǔ)言中函數(shù)返回侑的類型是由A決定的.

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

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

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

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

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

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

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

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

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

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

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

A)autoB)registerC)staticD)extern

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

A)autoB)staticC)externD)register

30.若有以下說(shuō)明語(yǔ)句:

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.若有以下說(shuō)明語(yǔ)句:

structdate

{intyear;

intmonth;

intday;

Jbrithday;

則下面的敘述不正確的是Q.

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

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

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

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

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

structstudent

{intage:

intnum;

}stu1,*p:

p=&stu1;

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

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

strucksk

{inta;

floatb;

}data;

int*p;

若要使P指向data中的a域,正確的賦值語(yǔ)句是

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

34.設(shè)有以下說(shuō)明語(yǔ)句:

typedefstructstu

{inta;

floatb;

}stutype;

則下面敘述中錯(cuò)誤的是(D)。

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

B、structstu是用戶定義的結(jié)構(gòu)類型

C、a和b都是結(jié)構(gòu)成員名

D、stutype是用戶定義的結(jié)構(gòu)體變量名

35.語(yǔ)句int*D:說(shuō)明了C。

A)p是指向一維數(shù)組的指針

B)p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)

C)p是指向int型數(shù)據(jù)的指針

D)p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針

36.下列不正確的定義是(A)o

A.int*p=&i,i;B.int*p,i;

C.inti,*p=&i;D.inti,*p;

37.若有說(shuō)明:intn=2,*p=&n,*q=p,則以下非法的賦值語(yǔ)句是:(D)

A)p=qB)*p=*qC)n=*qD)p=n

38.有語(yǔ)句:int則工_是對(duì)指針變量P的正確定義和初始化。

A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a;

39.若有說(shuō)明語(yǔ)句“inta[5],*p=a;",則對(duì)數(shù)組元素的正確引用是(C)。

A.a[p]B.p[a]C.*(p+2)D.p+2

40.有如下程序

inta[10]={123,4,5,6,7,8,9,10},*P=a;

則數(shù)值為9的表達(dá)式是」

A)*P+9B)*(P+8)C)*P+=9D)P+8

41.在C語(yǔ)言中,以D作為字符串結(jié)束標(biāo)志

A)''n'B)''C)'O'D)''0'

42.下列數(shù)據(jù)中屬于“字符串常量”的是(A)。

A."a”B.{ABC}C.'abc\0'D.'a'

43.已知charx[]="hello",y[]={,h','e','a','b','e'};,則關(guān)于兩個(gè)數(shù)組長(zhǎng)度的正確描述是B.

A)相同B)x大于yC)x小于yD)以上答案都不對(duì)

44.下面各函數(shù)中能實(shí)現(xiàn)打開(kāi)文件功能的是

A)fopenB)fgetcC)fputcD)fclose

45.下列語(yǔ)句中,把變量fp說(shuō)明為一個(gè)文件型指針的是(A)。

A)FILE*fp;B)FILEfp;

C)file*fp;D)filefp;

46.以讀寫方式打開(kāi)一個(gè)已有的文本文件filel,并且FILE*fp,下面fopen函數(shù)正確的調(diào)用

方式是(B)。

A.fp=fopen("file1","r")

B.fp=fopen("file1",“r+”)

C.fp=fopen("file",“rb”)

D.fp=fopen("file1",“w")

讀程序

基本輸入輸出及流程控制

1.

#include<stdio.h>

main()

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

if(c==a+b)

printf(Myes\nM);

else

printf(Mno\nM);

)

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

#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(Hmin=%dM,min);

)

運(yùn)行結(jié)果為:min=-34

#include<stdio.h>

main()

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

if(xvy)

if(y<o)

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(H%5.2f,%5.2f,%5.2fH,a,b,c);

)

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

)

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

6.

#include<stdio.h>

main()

{intm;

scanf(M%dM,&m);

if(m>=0)

{if(m%2==0)printf(M%disapositiveeven\nM,m);

elseprintf(K%disapositiveodd\nn,m);}

else

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

elseprintf(M%disanegativeodd\nM,m);}

)

若鍵入一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++;}

t<,,

printf(%d,%dJn,sum);

)

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

#include<stdio.h>

main()

{intnum,c;

scanf(M%dMj&num);

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

printf(”\n");

}

從鍵盤輸入23,則運(yùn)行結(jié)果為:32

10

#include<stdio.h>

main()

{ints=0,a=5,n;

scanf(M%dM,&n);

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

printf(M%d,%d\nM,s,a);

)

若輸入的值1,運(yùn)行結(jié)果為:2,1

11.

#include"stdio.h”

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(Kv=c&&cv=2)putchar(c);

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

)

ab*AB%cd#CD$0t,運(yùn)行結(jié)果為:ABABCDCD

13.

#include<stdio.h>

main()

{intx,y=0;

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

{if(y>=w)

break;

y=y+x;

}

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

)

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

14.

#include<stdio.h>

main()

{charch;

ch=getchar();

switch(ch)

{caseTV:printf(“%c",'A');

case'B':printf(“%c",'B);break;

default:printf("%s\n"Jother");

))

當(dāng)從鍵盤輸入字母A時(shí),運(yùn)行結(jié)果為:AB

15.

#include<stdio.h>

main()

{inta=1,b=0;

scanf(u%dn,&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)

{case'A':printf(tt9O-1OO\n,,)5

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

caseC9:printf(“70?80\n");

caseDJ:printf(“60?70\n");break;

caseE:printf("v60\rT);

default:printf("error!\rT);

)

)

運(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()

{inti,sum=O;i=1;

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

printf(<<%d,,,sum);

}

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

19.

#include<stdio.h>

#defineN4

main()

{inti;

intx1=1,x2=2;

printf(M');

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

{printf(M%4d%4dM,x1,x2);

if(i%2==0)

printf(M\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++)

printf("");

printf("*");

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(t<%d%d%d,,,a[2],a[5],a[8]);

}

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

852

#include<stdio.h>

main()

{inti,a[6];

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

a[i]=i;

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

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

)

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

543210

#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[l]=a[i*(i+1)];

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

k+=p[l]*2;

printf(M%d\nM,k);

)

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

#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(%d\nJm[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(M%dH,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;

ll

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

}

)

)

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

012

123

234

7.

#include<stdio.h>

main()

{

chardiamond[][5]={{二二'*,},d*3

{,*,,,,,,,,*,]r?,,*,,,,*,I[,,,,,*,]1.

J—J—J—?jJi_,J—,Jn—,一,JiJ

inti,j;

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

{

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

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

printf("\n”);

)

}注:代表一個(gè)空格。

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

*

**

**

**

*

8.

#include<stdio.h>

main()

{inti,f[10];

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

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

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

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

{if(i%4==0)

printf(<<\n,,J;

printf(u%dM,f[i]);

)

)

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

1123

581321

3455

9.

#include“stdio.h"

func(intb[])

{intj;

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

bU]=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;

for(j=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++)

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

}

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

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

printf("%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,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3);

printf(l,%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++)

x[j][k]=j+k;

forG=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++)

printf("%d,",y[j][k]);

)

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

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

函數(shù)

#include<stdio.h>

intSub(inta,intb)

{return(a-b);}

main()

{intx,y,result=0;

scanf(M%d,%dM,&x,&y);

result=Sub(x,y);

printf("result=%d\nM,result);

)

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

result=3

#include<stdio.h>

intmin(intx,inty)

{intm;

if(x>y)m=x;

elsem=y;

return(m);

)

main(){

inta=3,b=55abmin;

abmin=min(a,b);

printf(uminis%d",abmin);

)

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

minis5

#include<stdio.h>

func(intx){

x=10;

printf("%d,”,x);

)

main()

{intx=20;

func(x);

u,,

printf(%dJx);

)

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

10,20

#include<stdio.h>

intm=4;

intfunc(intx,inty)

{intm=1;

return(x*y-m);

)

main()

{inta=2,b=3;

printf(M%d\nM,m);

printf("%d\n",func(a,b)/m);

)

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

4

1

#include<stdio.h>

intfun(inta,intb)

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

elsereturn(b);

)

main()

{intx=15,y=8,r;

r=fun(x,y);

printf("r=%d\n",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(f);

)

main()

{intj,s;

scanf(<t%d,,,&j);

s=fac(j);

printf(H%d!=%d\nH,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\n,,,fun6(n));

)

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

8.

#include<stdio.h>

intmax(intx,inty);

main()

{inta,b,c

a=7;b=8;

c=max(a5b);

printf("Maxis%dM,c);

)

max(intx,inty)

{intz;

z=x>y?x:y;

return(z);

)

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

Maxis8

指針

#include<stdio.h>

main()

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

int*p;

P=x;

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

)

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

30

#include<stdio.h>

main()

{chars[]="abcdefg”;

char*p;

P=s;

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

)

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

ch=f

#include<stdio.h>

main()

{inta[]={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(<<%d\n,,,*(P+3));

)

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

5.

#include<stdio.h>

main()

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

intx,y,*p;

P=&a[O];

x=*(p+2);

y=*(p+4);

printf(ll*p=%d,x=%d,y=%d\n",*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\nM,*p,p);

)

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

AABCD

BBCD

CCD

DD

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

#include<stdio.h>

structst

{intx;

inty;

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

main()

(

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

)

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

14

#include<stdio.h>

main()

{structstu

{intnum;

chara[5];

floatscore;

}m={1234,"wang",89.5};

tt,,

printf(%dJ%s,%f,m.num,m.a5m.score);

)

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

1234,wang,89.5

3.

#include<stdio.h>

structcmplx

{intx;

inty;

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

main()

{

<<,,

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

)

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

#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("%d\n",t);

}

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

二、程序填空

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

main()

{charch;

ch=getchar();

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

printf(,'ltisanEnglishcharacter\nH);

else附ch>='0'&&chv='9')

printf(nltisadigitcharacter\nn);

elseif(ch==**)

printf(nltisaspacecharacter\nH);

else

printf(nltisothercharacter\nH);}

2.下列程序的功能是從輸入的整數(shù)中,統(tǒng)計(jì)大于零的整數(shù)個(gè)數(shù)和小于零的整數(shù)個(gè)數(shù)。用

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

voidmain()

{intn,i=O,j=O;

printf(uinputainteger,0forend\nM);

scanf("%d”,&n);

while(n或n!=0){

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

elsej=j+1;

)

,,

printfn=%4d,j=%4d\nJi,j);

)

3.編程計(jì)算1+3+5+....+101的值

#include<stdio.h>

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("sum=%d\n”,sum);

)

5.從鍵盤輸入一個(gè)字符,判斷它是否是英文字母。

#include<stdio.h>

voidmain()

{charc;

printf(“inputacharacter:");

c=getchar();

if(c>=_A_&&c<=_Z_lIc>='a'&&c<=N)printf(nYes\nH);

elseprintf("No");

)

6.下面程序的功能是在a數(shù)組中查找與x值相同的元素所在位置,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

{inta[10],i,x;

printf(uinput10integers:");

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

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

printfflnputthenumberyouwanttofindx:");

scanf(u%d,,,_&x_);

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

iffx==afi1)

break;

if(i<10)

printf(utheposofxis:%d\n”,i);

elseprintf(,<cannotfindx!\nM);

)

7.程序讀入20個(gè)整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個(gè)數(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[i1;

count++;

)

printf(us=%d\tcount=%d\nM,s,counf);

)

8.輸入一個(gè)正整數(shù)n(1vnW10),再輸入n個(gè)整數(shù),用選擇法將它們從小到大排序后輸出。

#include<stdio.h>

intmain(void){

inti,index,k,n,temp;

/*定義1個(gè)數(shù)組a,它有10個(gè)整型元素*/

printf("Entern:'*);

printf("Enter%dintegers:1n);

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

scanf(,,%dM,&a[i]);

for(k=0;k<n-1;k++){/*對(duì)n個(gè)數(shù)排序*/

index=k;

for()

if()index=i;

)

printf("Aftersorted:");

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

return0;}

程序改錯(cuò)

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

行結(jié)果。

1.求1x2x3x4x...xn

main()

{longintsum;

intn,i=1;

scanf("%d",n);

printf("\n'');

while(i<n)

{sum=sum*i;

i++;

}

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

}一

sum應(yīng)初始化即加入sum=1

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

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

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

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

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

}

第四行改為:for(j=0;j<5;j++)

第五行改為:scanf("%d",&a[j]);

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

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

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

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

sum(x,y)

{floatz;

z=x+y;

return;

}

main()

{floata,b;

intc;

scanf(M%f,%fM,&a,&b);

c=sum(a,b);

printf(M\nSumis%fM,sum);

第一行改為:floatsum(floatx,floaty);

第四行改為:retum(z);

第八行:floatc;

第H'行:printf(M\nSumis%fH,c);

4.程序讀入20個(gè)整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個(gè)數(shù),并計(jì)算非負(fù)數(shù)之和.

#include“stdio.h"

main()

{

inti,s,count,n=20;

inta[nl;

s=count=1;

for(i=1,iv20,?)

scanf("%d”,alii);

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

{

if(a[i]<0)

break;

s+=a[i];

count++;

)

printf(“s=%fcouut=%f\rT,s,count);

)

答案:inta[20]

s=count=0;

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

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

continue;

5.從鍵盤輸入整數(shù)x的值,并輸出y的值.

main()

{floatx,v;

scanf(u%d,J,&x);

y=3.5+x;

printf("v=%d");

}

正確的:intx;floaty;

printf(uy=%r,y);

6編程計(jì)算下面分段函數(shù),輸入x,輸出y

'x-1x<0

y=<2x-l0<x<10

3x-llx>10

main()

{intx,y;

printf(u\nInputx:\n,J);

scanf("%d”,x);

if(x<0)

y=x-1;

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

V=2x-1;

else

y=3x-1;

printf("v=%d”,&v);

}

7.求100?300間能被3整除的數(shù)的和。

main()

{intn;

Ionasum;

for(n=100,nv=300m++)

{

if(n%3=0)

sum=sum*n;

}

printf(u%ld

}

8.求表達(dá)式,=而的值

#include<stdio.h>

#include<math.h>

intfun(intx,inty);

main()

{inta,b;floatf;

scanf(tt%d,%d,,,a,b);

if(ab>0){

fun(a,b);

printfC'Theresultis:%d\n”,&f)

)

elseprintf("error!");}

fun(x,v)

{floatresult;

result=sart(a+b);

return;

}

9、通過(guò)函數(shù)調(diào)用,求兩個(gè)數(shù)之差

sub(xM

{floatz;

z=x-y;

return;

)

main()

{floata,b;

intc;

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

sub(a,b);

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

)

四、編程題

1.輸入2個(gè)整數(shù),求兩數(shù)的平方和并輸出。

#include<stdio.h>

intmain(void)

{intta,b,s;

printf(z/pleaseinputa,b:\n〃);

scanf,&a,&b);

s=a*a+b*b;

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

return0;

)

2.輸入一個(gè)圓半徑r,當(dāng)r>=0時(shí),計(jì)算并輸出圓的面積和周長(zhǎng),否則,輸出提示信息。

#include<stdio.h>

#definePI3.14

intmain(void)

{floatr,s,1;

printf(,zpleaseinputr:\n〃);

scanf(〃%f",&r);

if(r>=0)

{s=pi*r*r;

l=2*i*r;

printf(/ztheareais%f\n〃,s);

printf(z/thecircumferenceis%f\n〃,1);}

else

printf("inputerror!\n,z);

return0;

}

3、已知函數(shù)尸f(x),編程實(shí)現(xiàn)輸入一個(gè)x值,輸出y值。

C2x+l(x<0)

y=J0(x=0)

I2x-l(x>0)

#include<stdio.h>

voidmain()

{intx,y;

scanf(“%d",&x);

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

elseif(x>0)y=2*xT;

elsey=0;

printf("%d",y);

4.從鍵盤上輸入一個(gè)百分制成績(jī)score,按下列原則輸出其等級(jí):score290,等級(jí)為A;

80^score<90,等級(jí)為B;70^score<80,等級(jí)為C;60^score<70,等級(jí)為D;score<60,

等級(jí)為E。

#include<stdio.h>

voidmain(){

intdata;

chargrade;

priritf(^Pleaseenterthescore:z,);

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.編一程序每個(gè)月根據(jù)每個(gè)月上網(wǎng)時(shí)間計(jì)算上網(wǎng)費(fèi)用,計(jì)算方法如下:

30元410小時(shí)

費(fèi)用=每小時(shí)3元10-50小時(shí)

每小時(shí)2.5元N50小時(shí)

要求當(dāng)輸入每月上網(wǎng)小時(shí)數(shù),顯示該月總的上網(wǎng)費(fèi)用(6分)

#include<stdio.h>

voidmain()

{inthour;

floatfee;

printf("pleaseinputhour:\n,?);

scanf(a%df,,&hour);

if(hour<=10)

fee=30;

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

fee=3*hour;

elsefee二hour*2.5;

printf("Thetotalfeeis%fw,fee);

)

6.從鍵盤輸入10個(gè)整數(shù),統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù),并在屏幕上輸出。

#include<stdio.h>

voidmain(){

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

printfC'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ù)的乘積并輸出。

ttinclude<stdio.h>

voidmain()

{inti;

longsum=l;

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

sum=sum*i;

printf("thesumofoddis:%ldn,sum);

)

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

#include<stdio.h>

voidmain0{

inta,i,sum=0;

floatave;;

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

scanf(〃%d〃,&a);

sum+=a;

}

ave=(float)sum/10;

printf(/zave=%f\n〃,ave);

溫馨提示

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

評(píng)論

0/150

提交評(píng)論