C语言程序设计习题解答.docx

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

C语言程序设计习题解答.docx

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

C语言程序设计习题解答.docx

C语言程序设计习题解答

《C语言程序设计》习题解答

第二章数据类型、运算符和表达式

一、简答题:

1.常量有数值常量、字符常量、字符串常量和符号常量;字符u、l和f主要是对数值常量进行修饰。

字符u和l对整型常量进行修饰:

表明常量是否是unsigned类型以及是否是long型;字符l对实型常量进行修饰:

表明常量之是否是float类型。

2.字符常量用单引号‘’界定单个字符,内存空间只占一个字节;字符串常量用双引号界定零个或多个字符,字符串常量的结尾都有一个结束字符‘\0’。

3.&&、||和!

是构成逻辑表达式的逻辑运算符,表达式运算结果是0(真)或1(假);&、|和~是位操作运算符中的逻辑为运算符,对整型操作数的二进制位进行运算,结果为整型值。

4.表达式在计算中根据运算符的优先级和结合型进行运算,在计算过程中要求运算符的两个操作数类型必须相同,根据数据类型之间的隐式转换规则对操作数的类型进行转换,最后运算符运算结果的类型就是表达式值的类型。

5.类型转换有隐式转换和显示转换。

隐士转换是在计算过程中根据隐士转换规则进行;显示转换利用强制转换运算符进行;在赋值运算中,表达式右边值得类型都强制转换成左边变量的类型。

二、选择题:

(1)D

(2)B(3)D(4)D(5)B(6)D(7)D

(8)C(9)C(10)C(11)C(12)A(13)A(14)D

(15)A(16)A、C(17)A(18)A(19)9(20)A

三、计算表达式的值:

1.

(1)24

(2)10(3)96(4)0(5)0(6)0

2.

(1)5

(2)10(3)40

3.

(1)0

(2)1(3)3(4)16(5)1

4.

(1)3.500000

(2)3.000000

5.

(1)6

(2)6(3)0(4)0

四、写出给出式子的C语言表示形式:

1.x*x+3*x+1

2.(a*x+b)/(c*y+d)*(m*x*x+n*y*y)

3.sqrt(4*x*x*x+5*x*x+x+3)

4.sin(x+0.5)*sin(x+0.5)+3*cos(2*x+4)

5.(a/x)/(a/(a+y)+b/(a+b/z))

6.labs(3-exp(x)*ln(1+x))

第三章简单程序设计

一、简答题:

(略)

二、选择题:

(1)C

(2)D(3)C(4)B(5)B

(6)D(7)D(8)C(9)A(10)A

三、编程实现

1.voidmain()

{

inta,b;

intmin;

printf("pleaseinputtwointegerdata:

");

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

min=a>b?

b:

a;

printf("theminis:

%d\n",min);

}

2.voidmain()

{

floatf;

printf("pleaseinputfloatdata:

");

scanf("%f",&f);

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

}

3.voidmain()

{

charch;

printf("pleaseinputchar:

");

scanf("%c",&ch);

printf("thethreecharactersare:

%c,%c,%c.\n",ch-1,ch,ch+1);

}

4.#include

voidmain()

{

floata,b,c;

floatl,mid,area;

printf("pleaseinputthreeeadge:

");

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

l=0.5*(a+b+c);

mid=l*(l-a)*(l-b)*(l-c);

area=sqrt(mid);

printf("areais:

%f\n",area);

}

第四章数组

一、简答题:

(略)

二、选择题:

(1)C

(2)A(3)C(4)B(5)D(6)B

(7)C(8)B(9)A(10)B(11)C(12)C

三、编写程序:

1.#include

#defineLEN128

voidmain()

{

charstr1[LEN],str2[LEN];

intlen1,len2;

printf("pleaseinputfirststring:

\n");

gets(str1);

printf("pleaseinputsecondstring:

\n");

gets(str2);

len1=strlen(str1);

len2=strlen(str2);

if(len1>len2)

printf("thestringis:

%s\n",str1);

if(len1

printf("thestringis:

%s\n",str2);

if(len1==len2)

{

if(strcmp(str1,str2)>0)

printf("thestringis:

%s\n",str1);

else

printf("thestringis:

%s\n",str2);

}

}

2.#include

#defineLEN128

voidmain()

{

charstr1[LEN],str2[LEN];

puts("pleaseinputfirststring:

");

gets(str1);

puts("pleaseinputsecondstring:

");

gets(str2);

strcat(str1,str2);

printf("thesresultis:

\n%s\n",str1);

}

第五章基本语句

各小题的参考程序如下:

1.#definePI3.14159

voidmain()

{

floatr,h;

floats,v;

printf("pleaseinputrandh:

");

scanf("%f%f",&r,&h);

s=PI*r*r;

s+=2*PI*PI*r*h;

v=1.0/3*PI*r*r*h;

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

printf("thevolumeis%f\n",v);

}

2.voidmain()

{

floatx;

inty;

printf("inputx:

");

scanf("%f",&x);

if(x>0)

y=1;

else

if(x==0)

y=0;

else

y=-1;

printf("yis%d\n",y);

}

3.voidmain()

{

intflag=0;

intdata;

printf("inputdata:

");

scanf("%d",&data);

if(data%3==0)

flag++;

if(data%5==0)

flag++;

if(data%7==0)

flag++;

switch(flag)

{

case0:

printf("can\'tdividedbyanyone!

\n");break;

case1:

printf("candividedbyonedata!

\n");break;

case2:

printf("candividedbytwodata!

\n");break;

case3:

printf("candividedbythreedata!

\n");

}

}

4.#include

voidmain()

{

floata,b,c;

floatl,s;

printf("inputa,bandc:

");

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

if(a+b>c&&fabs(a-b)

{

l=(a+b+c)/2;

s=sqrt(l*(l-a)*(l-b)*(l-c));

printf("theareaoftriangleis%f.\n",s);

}

else

printf("can\'tconstructtriangle.\n");

}

5.#include

voidmain()

{

floatm,n,k;

floatdet,x1,x2;

printf("inputm,n,k:

");

scanf("%f%f%f",&m,&n,&k);

det=n*n-4*m*k;

if(det>=0)

{

det=sqrt(det);

x1=(-n+det)/(2*m);

x2=(-n-det)/(2*m);

if(det)

{

printf("thefirstrootis%f.\n",x1);

printf("thesecondrootis%f.\n",x2);

}

else

printf("therootis%f.\n",x1);

}

else

{

det=sqrt(-det);

x1=-n/(2*m);

x2=det/(2*m);

x2=fabs(x2);

printf("thefisrtvirtualrootis%f+%fi.\n",x1,x2);

printf("thescondvirtualrootis%f-%fi.\n",x1,x2);

}

}

6.voidmain()

{

floata,b,result;

charch;

printf("pleaseinputexpression:

");

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

switch(ch)

{

case'+':

result=a+b;break;

case'-':

result=a-b;break;

case'*':

result=a*b;break;

case'/':

if(b)

{result=a/b;break;}

else

{printf("DividedZero!

\n");return;}

default:

printf("expressionError!

\n");return;

}

printf("%f%c%f=%f.\n",a,ch,b,result);

}

7.voidmain()

{

intn,num[6];

inti,x;

printf("pleaseinputnumofdata:

");

scanf("%d",&n);

printf("inputdata:

\n");

for(i=0;i

{

scanf("%d",&x);

if(x>0&&x<=5)

num[x]++;

}

printf("theresultis:

\n");

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

printf("thenumof%dis%d.\n",i,num[i]);

}

8.voidmain()

{

intn,i;

doublefac=1;

printf("inputn:

");

scanf("%d",&n);

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

fac*=i;

printf("%d!

=%.0f\n",n,fac);

}

9.voidmain()

{

floata,b,temp;

floats;

inti;

a=1,b=2;

for(i=1,s=0;i<=30;i++)

{

s+=b/a;

temp=b;

b=a+b;

a=temp;

}

printf("theresultis%f.\n",s);

}

10.voidmain()

{

floatavg_age=0,avg_score=0;

floatage,score;

intnum=0;

printf("inputageandscore:

\n");

scanf("%f%f",&age,&score);

while(age!

=-1)

{

avg_age+=age;

avg_score+=score;

num++;

printf("inputageandscore:

\n");

scanf("%f%f",&age,&score);

}

printf("theaverageageis%.1f.\n",avg_age/num);

printf("theaveragescoreis%.1f.\n",avg_score/num);

}

11.voidmain()

{

intn1=0,n2=0,n3=0;

intx,max,min;

inti;

printf("pleaseinputtendata:

\n");

scanf("%d",&x);

max=min=x;

if(x>0)

n1++;

else

if(x==0)

n2++;

else

n3++;

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

{

scanf("%d",&x);

if(min>x)

min=x;

if(max

max=x;

if(x>0)

n1++;

else

if(x==0)

n2++;

else

n3++;

}

printf("themaxis%d.\n",max);

printf("theminis%d.\n",min);

printf("thenumofpositiveis%d.\n",n1);

printf("thenumofZerois%d.\n",n2);

printf("thenumofnegativeis%d.\n",n3);

}

12.voidmain()

{

intn;

doublenum1=1,num2=1;

printf("inputn:

");

scanf("%d",&n);

while(n-->0)

{

num1*=3;num2/=3;

}

printf("theresult1is%f.\n",num1);

printf("theresult2is%f.\n",num2);

}

13.#include

voidmain()

{

char*s[9]={"one","two","three","four","five",

"six","seven","eight","nine"};

longd;

intnum[10],i=0,j;

printf("inputdata:

");

scanf("%ld",&d);

while(d)

{

num[i++]=d%10;

d=d/10;

}

for(j=i-1;j>=0;j--)

printf("%s",s[num[j]-1]);

putchar('\n');

}

14.voidmain()

{

floatpi;

intn,flag;

for(pi=1,n=2,flag=-1;1.0/(2*n-1)>1.0e-6;n++,flag*=-1)

pi+=flag*1.0/(2*n-1);

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

}

15.voidmain()

{

intx,i;

intcount,sum;

for(i=1,count=0,sum=0;i<=500;i++)

if(i%3==2&&i%5==3&&i%7==2)

{

count++;

sum+=i;

printf("%5d",i);

if(count%5==0)

printf("\n");

}

printf("thesumis%d.\n",sum);

}

16.#include

voidmain()

{

charch;

intch_num=0,dig_num=0,other=0;

printf("pleaseinputstring:

\n");

while((ch=getchar())!

='!

')

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

ch_num++;

else

if(ch>='0'&&ch<='9')

dig_num++;

else

other++;

printf("thenumofcharacteris%d.\n",ch_num);

printf("thenumofnumberis%d.\n",dig_num);

printf("thenumofothercharacteris%d.\n",other);

}

17.#defineN6

voidmain()

{

inti,j;

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

{

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

printf("%c",'');

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

printf("*");

printf("\n");

}

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

{

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

printf("%c",'');

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

printf("*");

printf("\n");

}

}

18.#defineN6

voidmain()

{

inti,j;

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

{

for(j=1;j<=2*i;j++)

printf("");

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

printf("#");

printf("\n");

}

}

19.#include

voidmain()

{

intflag=0,num=0;

charch;

printf("inputexpression:

");

while((ch=getchar())!

=';')

{

if(ch=='(')

num++;

if(ch==')')

{

num--;

if(num<0&&!

flag)

flag++;

}

}

if(num==0&&!

flag)

printf("it\'sOK!

\n");

if(num>0&&!

flag)

printf("thenumof\'(\'morethan\')\'!

\n");

if(flag&&num>=0)

printf("the\')\'ispriorof\'(\'!

\n");

if(flag&&num<-1)

printf("the\')\'ispriorof\'(\'!

andthenumof\')\'morethan\'(\'!

\n");

}

20.voidmain()

{

longd;

intsum=0;

printf("inputdata:

");

scanf("%ld",&d);

while(d)

{

sum+=d%10;

d/=10;

}

printf("thesumof%ldis%d.\n",d,sum);

}

21.#defineN4

voidmain()

{

floatsc[N][6];

floatavg[2][N],t;

inti,j,no;

printf("pleaseinputNo.andscores:

\n");

printf("No.s1s2s3s4s5\n");

for(i=0;i

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

scanf("%f",&sc[i][j]);

for(i=0;i

{

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

avg[0][i]+=sc[i][j];

avg[0][i]/=5;

avg[1][i]=i;

}

for(i=0;i

for(j=i+1;j

{

if(avg[0][i]

{

t=avg[0][i];

avg[0][i]=avg[0][j];

avg[0][j]=t;

t=avg[1][i];

avg[1][i]=avg[1][j];

avg[1][j]=t;

}

}

printf("theresultis:

\n");

printf("NO.g1g2g3g4g5avg\n");

for(i=0;i

{

no=(int)avg[1][i];

printf("%3.0f",sc[no][0]);

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

printf("%6.1f",sc[no][j]);

printf("%6.1f\n",avg[0][i]);

}

}

22.#include

#defineN3

voidmain()

{

intarray[N][N];

intmax,min;

intmax_index[2][N*N];

intmin_index[2][N*N];

inti,j,max_flag,min_flag;

printf("inputarray:

\n");

for(i=0;i

for(j=0;j

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

max=min=array[0][0];

max_flag=min_flag=0;

for(i=0;i

for(j=0;j

{

if(max<=array[i][j])

{

if(max

{

max_flag=0;

max=array[i][j];

}

max_index[0][max_flag]=i;

max_index[1][max_flag]=j;

max_flag++;

}

if(min>=array[i][j])

{

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

当前位置:首页 > 工程科技 > 能源化工

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

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