C語言編程測試題及答案_第1頁
C語言編程測試題及答案_第2頁
C語言編程測試題及答案_第3頁
C語言編程測試題及答案_第4頁
C語言編程測試題及答案_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

一、選擇題:

1.設i為整型變量,原來i=3,執行語句printf("%d",-i++)后i的值為:

A.3

B.-3

C.4

D.-4

2.設i、j為整型變量,原來i=3,j=5,執行語句printf("%d",i+++j)后j的值為:

A.4

B.5

C.8

D.9

3.若有定義inta[9],*p=a;,則p+5表示:

A.數組元素a[5]的值

B.數組元素a[5]的地址

C.數組元素a[6]的地址

D.數組元素a[0]的值加上5

4.以下程序段中與語句

k=a>b?(b>c?1:0):0;功能等價的是:

A.if((a>b)&&(b>c))k=1;

B.if((a>b)||(b>c))k=1;

elsek=0;

elsek=0;

C.if(a<=b)k=0;

D.if(a>b)k=1;

elseif(b<=c)k=1;

elseif(b>c)k=1;

elsek=0;

5.設有以下定義#defined2

inta=0;

doubleb=1.25;charc='A';

則下面語句中錯誤的是

A.a++

B.b++

C.c++

D.d++

注:需要邏輯0或非0在main函數中。

6.設a為整型變量,原來a=10,表達式a=--a+a--運算后a的值為:

A.16

B.17

C.18

D.19

7.設有定義

floata=2,b=4,h=3;

則以下語句表達式中與代數式1/2(a+b)h計算結果不相符的是

A.(a+b)*h/2

B.(1/2)*(a+b)*h

C.(a+b)*h*1/2

D.h/2*(a+b)

8.設原來a=3,執行語句printf("%d",(a=3*5,a*4),a+5)后的輸出結果為:

A.3

B.15

C.60

D.65

⒐以下不能對二維數組a進行正確初始化的語句是

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

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

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

⒑若以下選項中的變量已正確定義,則正確的賦值語句是

A.x1=26.8%3

B.1+2=x2

C.x3=0*12

D.x4=1+2=3

1

二、寫出下列程序的運行結果:

1.#include<math.h>

main()

{inti,j,y=3;

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

{for(j=1;j<=fabs(i);j++)printf("");

if(i<=0)y=y+1;elsey=y-1;

for(j=1;j<=y-fabs(i);j++)printf("*");

printf("\n");

}

}

運行結果為:

*

***

*****

*******

*****

***

*

2.main()

{unsigneda=65535;intb=-2,c=-1;

printf("a=%d,%o,%x,%u\n",a,a,a,a);

printf("b=%d,%o,%x,%u\n",b,b,b,b);

printf("c=%d,%o,%x,%u\n\n",c,c,c,c);

}

運行結果為:

a=-1,177777,ffff,65535

b=-2,177776,fffe,65534

c=-1,177777,ffff,65535

3.main()

{longintf1,f2;inti;

f1=1;f2=1;

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

{printf("%12ld%12ld",f1,f2);

if(i%3==0)printf("\n");

f1=f1+f2;f2=f2+f1;

}}

運行結果為:

1

1

2

3

13

21

34

55

233

377

610

987

4.main()

{inta=38,b=25,c=88;int*p1,*p2,*p3;

p1=&a;p2=&b;p3=&c;

2

5

89

8

144

if(a>b)swap(p1,p2);

if(a>c)swap(p1,p3);if(b>c)swap(p2,p3);

printf("Now,theorderis:%d,%d,%d\n",*p1,*p2,*p3);

}

swap(int*p1,int*p2)

{int*p;

p=p1;p1=p2;p2=p;

}

運行結果為:

Now,theorderis:38,25,88

5.

#include"struct.h"

main()

{inti;

printf("No.

NameSexBirthday\n");

printf("%-7s",student[1].no);

printf("%-9s",student[2].name);

printf("%-4s",student[2].sex);

printf("%d-%d-%d\n",student[0].birthday.year,

student[1].birthday.month,

student[2].birthday.day);

}

struct.h

structdate

{intyear;

intmonth;

intday;};

structstd_info

{charno[7];

charname[9];

charsex[3];

structdatebirthday;

};

structscore

{charno[7];

intscore1;

intscore2;

intscore3;

};

structstd_infostudent[3]={{"000102","zhangsan","m",{1980,9,20}},

{"000105","lisi","m",{1980,8,15}},

{"000112","wanghua","f",{1980,3,10}}};

No.

Name

Sex

Birthday

3

000105

wanghua

f

1980-8-10

7.#include"math.h"

main()

{intm,i,k,n=0;

for(m=101;m<=150;m=m+2)

{k=sqrt(m);

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

if(m%i==0)break;

if(i>=k+1){printf("%d",m);n=n+1;}

if(n%10==0)printf("\n");

}

printf("\n");

}

運行結果為:

101103107109

113

127

131

137

139

149

8

main()

{unsignedcharc1,c2;

inti;floatx;

c1=c2=i=-40.56;

printf("c1=%dc2=%di=%d\n",c1,c1,i);

x=3.1415;i=x;

printf("int<---floatx---%d\n",i);

x=i;printf("int--->floatx---%f\n\n",x);

}

運行結果為:

c1=216

c2=216

i=-40

int--floatx---3

int-floatx---3.000000

main()

{inti,sum=0;

i=1;

do

{sum=sum+i;i++;}

while(i<=100);

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

}

運行結果為:

sum=5050

10.main()

{intm=0,n;

for(n=100;n<=130;n++)

{if(n%3==0)continue;

printf("%d

",n);

4

9.

m++;

if(m%8==0){printf("\n");m=0;}

}printf("\n");

}

運行結果為:

100

101

103

112

113

115

124

125

127

11.main()

{chargrade='C';

switch(grade)

{case'A':printf("85~100\n");

case'B':printf("70~84\n");

case'C':printf("60~69\n");

case'D':printf("<60\n");

default:printf("erroe\n");

}

}

運行結果為:

60~90

<60

erroe

104

116

128

106

118

130

107

119

109

121

110

122

12.#definePI3.1415926

main()

{intr;floatarea;

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

{area=PI*r*r;if(area>100)break;

printf("%f",area);

}

}

運行結果為:

3.141593

12.566370

28.274334

50.265480

78.539818

三、編寫程序:

1.由鍵盤輸入任意一個正整數,編程判斷其是否素數。

#include<math.h>

main()

{intm,i,k;

printf("inputm(i):");scanf("%d",&m);

k=sqrt(m);

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

5

if(m%i==0)break;

if(i>=k+1)printf("%disaprimenumber\n",m);

elseprintf("%disnotaprimenumber\n",m);

}

運行結果為:

inputm(i):17

17isaprimenumber

inputm(i):89

89isaprimenumber

inputm(i):95

95isnotaprimenumber

1

1

1

2.用/41-─+─-─+··公式求的近似值,直到最后一項的絕對值

?

3

5

7

小于10-6為止。

#include"math.h"

main()

{ints;floatn,t,pi;

t=1;pi=0;n=1.0;s=1;

while(fabs(t)>1e-6)

{pi=pi+t;n=n+2;s=-s;t=s/n;

}

pi=pi*4;

printf("pi=%10.6f\n",pi);

}

運行結果為:

pi=3.141594

#include"math.h"

main()

{ints;doublen,t,pi;

t=1;pi=0;n=1.0;s=1;

while(fabs(t)>1e-6)

{pi=pi+t;n=n+2;s=-s;t=s/n;

}

pi=pi*4;

printf("pi=%10.6f\n",pi);

system("PAUSE");

}

運行結果為:

pi=3.141591

#include"math.h"

main()

{ints;doublen,t,pi;

6

t=1;pi=0;n=1.0;s=1;

while(fabs(t)>1e-7)

{pi=pi+t;n=n+2;s=-s;t=s/n;

}

pi=pi*4;

printf("pi=%10.6f\n",pi);

system("PAUSE");

}

運行結果為:

pi=3.141592

3.百錢買百雞:一只公雞5元錢,一只母雞3元錢,3只小雞1元錢。

一百元錢買一百只雞,有多少種買法?編程求解并打印結果。

#include<stdio.h>

voidmain()

{inta,b,c;

for(a=0;a<=19;a++)

for(b=0;b<=33;b++)

{c=100-a-b;

if(c%3==0&&a*5+b*3+c/3==100)printf("%d%d%d\n\n",a,b,c);

}

getch();

}

4.打印出所有的"水仙花數"

,所謂"水仙花數"是指一個3位數,其各位數字立方和等于該

數本身。例如,153是一水仙花數,因為153=13+53+33。

B

打印'水仙花'數:

main()

{inti,j,k,n;

printf("'水仙花'數是:");

for(n=100;n<1000;n++)

{i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%6d",n);

}

printf("\n\n");

}

運行結果是:

'水仙花'數是:153370371

407

7

5.任意給定10個小于100的正整數,求出它們的最小公倍數和最大公約數。

#include"stdio.h"

voidmain()

{longi,j,a,b,c;

printf("Pleaseinput3number:");

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

for(i=a;i<=a*b*c;i=i+a)

if(i%a==0&&i%b==0&&i%c==0)

{printf("MAX:%ld\n",i);break;}

for(j=

溫馨提示

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

評論

0/150

提交評論