C语言程序设计习题解答.docx
- 文档编号:15788678
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:56
- 大小:24.97KB
C语言程序设计习题解答.docx
《C语言程序设计习题解答.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题解答.docx(56页珍藏版)》请在冰点文库上搜索。
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]) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 解答