标准C语言程序设计和应用——华中科技大学出版社第三章课后题Word版
标准C语言程序设计和应用——华中科技大学出版社第三章课后题
1.比大小#include<stdio.h>main(){int a,b;int max;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&b);max=a>b?a:b;printf("The bigger one is %d",max);}2.三个整数比大小#include<stdio.h>main(){int a,b,c;int max,mid;printf("Please enter 3 numbers:\n");scanf("%d%d%d",&a,&b,&c);mid=a>b?a:b;max=mid>c?mid:c;printf("The biggest one is %d",max); }3.累加#include<stdio.h>main(){int i;int sum=0;for(i=1;i<101;i++){sum+=i;}printf("The answer is %d",sum);}4.计算通项公式中的每一项#include<stdio.h>main(){int an_2=10,an_1=-3;int an;int i,n;printf("请输入需要的项的个数:\n");scanf("%d",&n);printf("第1项:10\n");printf("第2项:-3\n");if(n<=2){printf("Error!");}else{for(i=3;i<=n;i++){an=3*an_1+an_2;an_2=an_1;an_1=an;printf("第%d项:\t%d\n",i,an);}}}5.判断奇偶数:#include<stdio.h>main(){int a;printf("Please enter a number:\n");scanf("%d",&a);if(a%2==0){printf("%d is an Even number!",a);}else{printf("%d is an Odd number!",a);}}6.求前n项和#include<stdio.h>main(){int an=8,bn=1,sum=0;int n;int i;printf("请输入你需要多少项的和:\n");scanf("%d",&n);for(i=1;i<=n;i++){printf("第%d项是%d\n",i,an);sum+=an;bn+=3;an+=bn;}printf("\n前%d项的和为%d",n,sum);}7.求分段函数的解:#include<stdio.h>main(){float x,y;printf("Please enter a number:\n");scanf("%f",&x);if(x<1.0){y=x;}else if((x>=1)&&(x<10)){y=2*x-1;}else{y=3*x-11;}printf("y=%.2f",y);}8.给出一个不多于5位的数,求出其位数,并逆序打印:#include<stdio.h>main(){int in,out,n;int wei=1;int a,b,c,d,e;int i;printf("Please enter a number:\n");scanf("%d",&in);n=in;if(a<99999){for(i=0;i<5;i++){n/=10;if(n>0){wei++;。
C语言程序设计(第3版)第3章习题参考答案
习题三参考答案(1)从键盘输入一个年份值,判断是否闰年。
设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。
#include "Stdio.h"#include "Conio.h"int main(void){int iYear;printf("please input the year:");scanf("%d",&iYear);if(iYear%400==0||(iYear%4==0&&iYear%100!=0))printf("%d is leap",iYear);elseprintf("%d is not leap",iYear);getch();return 0;}(2)从键盘输入三个整数,按由小到大的顺序输出。
#include "stdio.h"main(){int i,j,k,max;scanf("%d%d%d",&i,&j,&k);max=i>j?i:j;max=max>k?max:k;printf("max=%d",max);getch();}(3)假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。
试编一程序从键盘输入星期序号(1,2,3,4,5,6,7,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。
#include "Stdio.h"#include "Conio.h"int main(void){int iWeek,iHours ;float fSalary,fTaxes;printf("please input the week number(1-7):");scanf("%d",&iWeek);printf("please input the work hours(1-12):");scanf("%d",&iHours);switch(iWeek){case 1:case 2:case 3:case 4:case 5:fSalary=20*iHours;fTaxes=fSalary*0.045;break;case 6:case 7:fSalary=3*20*iHours;fTaxes=fSalary*0.045;break;}printf("the salary is %f ,the taxes is %f",fSalary,fTaxes);getch();return 0;}(4)从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积并输出;如不能,输出不能构成三角形的信息。
《C语言程序设计教程》第三版课后习题参考答案
《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
c语言程序设计(科学出版社)课后习题解答
第3章习题解答第1章1.C 言语程序主要由预处理命令、函数、注释等组成。
.2.填空(1)分号(2)main(3)stdio.h3.源程序:include<stdio.h>main( ){printf(“XXXXXXXXXXXXXXXXXXXXXXXXX\n〞); printf(“Hello World!\n〞);printf(“XXXXXXXXXXXXXXXXXXXXXXXXX〞);}4.源程序:include <stdio.h>main( ){int a, b, c; /X 定义变量X/scanf(“%d〞, &a); /X 输入第—个整数X/scanf(“%d〞, &b); /X 输入第二个整数X/c=a-b; /X 计算差X/printf(“%d-%d=%d〞,a,b,c); /X 输出结果X/}5.(1)<stdio.h>(2)x=10;(3)printf(“s=%d\n〞,s);第2章1.(1) c(2) a(3) b g(4) a d e(5) d2. a. 5 b. 295 c. 4 d. 29 e. 93. a.x=4,y=6b. x=4,y=3f.x=3,y=64. 165.include<stdio.h>main(){int a,b,c;scanf("%d%d",&a,&b);c=aXb;printf("%dX%d=%d",a,b,c);}第3章1.(1) b(2) b(3) d(4) a(5) b2.(1)&a,&b(2)l,s3. printf(“x=%.2f,y=%.2f\n〞,x,y);4.include<stdio.h>main(){int num1,num2,num3,sum;float average;scanf("%d%d%d",&num1,&num2,&num3);sum=num1+num2+num3;average=sum/3.0;printf("sum=%d,average=%.2f\n",sum,average);}5.include<stdio.h>main(){int hour,minute,second,total; /X 定义变量代表时、分、秒和总秒数X/ scanf("%d",&total);hour=total/3600;minute=total%3600/60;second=total%3600%60;printf("%dhours:%dminutes:%dseconds\n",hour,minute,second);}第4章1.(1) a(2) b(3) b(4) b(5) b2. 03.(1) 6(2) 4(3) 1(4) 14.include <stdio.h>main( ){int x,y;scanf("%d",&x);if (x>-5 &x<0)y=5Xx;if (x == 0)y=-1;if (x>0 &x<10)y=2Xx+1;printf("x=%d,y=%d\n",x,y);}5.include <stdio.h>main( ){int score,rank; /X score 表示成绩,rank 表示级别X/ printf("Please input score:");scanf("%d",&score);rank=score/10;switch(rank){case 10:case 9: printf("成绩等级为:A\n"); break;case 8: printf("成绩等级为:B\n"); break;case 7: printf("成绩等级为:C\n"); break;case 6: printf("成绩等级为:D\n"); break;default:printf("成绩等级为:E\n"); break; }}6.include<stdio.h>void main(){int n;printf("Please input the digit:");scanf("%d",&n);switch(n){case 1:printf("Jan \n");break;case 2:printf("Feb \n");break;case 3:printf("Mar \n");break;case 4:printf("Apr \n");break;case 5:printf("May \n");break;case 6:printf("Jun \n");break;case 7:printf("Jul \n");break;case 8:printf("Agu \n");break;case 9:printf("Sep \n");break;case 10:printf("Oct \n");break;case 11:printf("Nov \n");break;case 12:printf("Dec \n");break;}}第5章1.(1) b(2) a(3) b(4) d(5) d2. 7,13. y=-14. m=65. 10,146. 37. 58. ABABCDCD9.include <stdio.h>main ( )int i;long int sum=0;for (i=2;i<=200;i+=2)sum+=i;printf("2+4+6+...+200=%ld",sum); }10.include <stdio.h>main(){long int n;int sum = 0;printf("Please input the nber:"); scanf("%ld",&n);while(n != 0){sum += n % 10;n /= 10;}printf("%d\n", sum);}第6章1.(1) d(2) b(3) d(4) c(5) a2. 113. 34. 56895. 12,66. (1) i--(2) n7. (1) char k; (2) i<j8.include <stdio.h>main( ){float a10];int i;float sum=0,average;for (i=0;i<10;i++)printf("a%d]=",i);scanf("%f",&ai]);sum+=ai];}average=sum/10;printf("average is %.2f\n",average);}9.include <stdio.h>define N 10main( ){int aN],i,target,found;for (i=0;i<N;i++)scanf("%d",&ai]);printf("Please input a number:");scanf("%d",&target);i=0;while(i<N &target != ai])i++;found = i<Ni:-1;printf("%d\n",found);}10.include <stdio.h>define N 80main( ){char strN];int len=0,i=0;printf("Please input a string:");gets(str);while (stri++!= 0) len++;printf("the length of string is %d.\n",len); }第7章1. 212. 1363. 164. (1) func (2) m++5. 96. 1,6,3,2,37. 2,5,1,2,3,-28.include <stdio.h>int fun(int a,int b,int c);main( ){int a,b,c,max;printf("Please input three numbers:"); scanf("%d%d%d",&a,&b,&c);max=fun(a,b,c);printf("Max is %d.\n",max);}int fun(int a,int b,int c){int max;max= a>b(a>ca:c):(b>cb:c);return max;}9.include <stdio.h>long int sum(int n);main( ){int n;printf("n=");scanf("%d",&n);printf("Sum=%ld.\n",sum(n));}long int sum(int n){if (n = = 1 ) return 1;else return sum(n-1)+n;}10.include <stdio.h>void fun(n);main( ){int n;printf("n=");scanf("%d",&n);fun(n);}void fun(n)if (n = = 0) return;else{fun(n/2);printf("%-2d",n%2);}}第8章1.(1) b(2) d(3) b(4) c(5) c2. 83. 1234567894. 2 3 4 5 65. 3456. 1 2 3 4 5 67. bi8. bcdefgha9. p=sum10.include <stdio.h>include <string.h>main(){char str80];char Xp1, Xp2;gets(str);p1=str;p2=str+strlen(str)-1;while (p1<p2 &Xp1++ == Xp2-- ) ; puts( p1<p2 "不是回文" : "是回文" ); }第9章1.a. define F(x) (x)X(x)X(x)b. define F(x) (x)%4c. define F(x,y) (x)X(y)<1001:02.b. 4c. define DOUBLE(x) 2X(x)3. d4. -205. N is undefined6. 7.57. y=68.include <stdio.h>define SW AP(a,b) {int temp;temp=a;a=b;b=temp;}main(){int x,y;printf("x=");scanf("%d",&x);printf("y=");scanf("%d",&y);SWAP(x,y)printf("x=%d,y=%d.\n",x,y);}第10章1.struct student{int sno;char sname10];char sex;}stu1,stu2;2. 123. 合法的有a,b,dc.改成s.u.rectangle.length=25;e.改成s.u.circle.radius=5;f.改成s.u.circle.radius=5;4. a,b,c,d (说明:变量b 有确定的值之后,b++是合法的。
华中科技大学标准C语言程序设计及应用习题答案
第二章一.选择题D 5. D100011 001111二.判断题1.错2.错3.错4.错三.填空题1. B 662. n1=%d\nn2=%d\n3. 0四.计算1(1)x|y = 0x002f(2)x^y = 0x0026(3)x&y = 0x0009;(4)~x+~y = 0xffc6(5)x<<=3 0x0068(6)y>>=4 0x00022(1)6(2)50(3)1(4)–16(5)1(6)203(1)0(2)1(3)1(4)4(5)8(6)14(1)12(2)0(3)1(4)27(5)1(6)6(7)24(8)27(9)–295(1)0(2)1(3)1(4)–3(5)2五.程序分析题程序1b=20 a=3600程序2第三章一.填空题=63.(1) scanf("%c",&c);(2) c-32 更好的答案:c-('a'-'A')main(){int a,b;printf("please input a & b:");scanf("%d%d",&a,&b);printf("\nmax is %d\n",(a>b)a:b);}int max(int x,int y);main(){int a,b,c,max;printf("please input a & b & c:");scanf("%d%d%d",&a,&b,&c);max=a>ba:b;max=c>maxc:max;printf("\nmax is %d\n",max);}main(){int i=0,sum=0;while(i<=100){sum+=i;i++;}printf("1+2+3+......+100=%d\n",sum);}main(){int i;int a=10,b=-3;int c;printf("%6d%6d",a,b);for(i=2;i<10;i++){c=3*b+a;printf("%6d",c);a=b;b=c;}printf("\n");}main(){int i;while(1){printf("please input a data(0:exit):");scanf("%d",&i);if(i==0)break;if(i%2==0)printf("the data %d is a even number.\n",i); elseprintf("the data %d is a odd number.\n",i); }}#include <>main(){int i;int a=8,b=1;int sum=0;for(i=0;i<10;i++){b+=3;sum += a;a+=b;printf("a%8d b:%8d\n",a,b);}printf("The Sum Of Is:%d\n",sum);}#include <>main(){float x,y;printf("please input x:");scanf("%f",&x);if(x<y=x;else if(x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);}#include <>main(){long a,i,b,a1;while(1){printf("please input data(1-99999):"); scanf("%ld",&a);printf("a:%ld\n",a);if(a<=0||a>=100000)break;i=0;a1=0;while(a!=0){b=a%10;printf("%8d",b);a/=10;i++;a1=a1*10+b;}printf("\n i:%ld a1:%ld\n",i,a1);}}#include <>#include <>#include <>main(){int a,b,i,k=0;randomize();a=random(1001);/*create a random data(0-1000)*/for(i=0;i<20;i++){printf("please guess a number:");scanf("%d",&b);if(a>b){k++;printf("\n%d:Smaller,guess again!\n",k);}else if(a<b){k++;printf("\n%d:Bigger,guess again!\n",k);}else{printf("\nYou guess right,congraturation!") ; printf("\nYou have guessed %d times",k);break;}}if(k==20)printf("\nsorry,you failed!"); }#include <>main(){int a,b,c;int num;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=1;c<10;c++){n um=a*100+b*10+c;i f((num%3==0)&&(a==5||b==5||c==5)) printf("%8d",num);}}}printf("\n\n\n");}#include <>main(){int i;int a,b;printf("please input a,b:");scanf("%d%d",&a,&b);for(i=a<ba:b;i>0;i--){if(a%i==0&&b%i==0){printf("The max=%d",i);break;}}for(i=a>ba:b;i>0;i++){if(i%a==0&&i%b==0){printf("\nThe min=%d",i);break;}}#include <>main(){int a,k=0;printf("please input data:");scanf("%d",&a);while(a%2==0){a=a/2;k++;}printf("\nthe number of factor(2) is %d",k);}main(){long i,t=1;long sum=0;for(i=1;i<=10;i++){t*=i;sum+=t;printf("%ld!=%ld\n",i,t);}printf("sum:%ld\n",sum);}#include <>void main(){int i,x=0;for(i=9;i>=1;i--){x=2*(x+1);}printf("The first day:%d",x);}#include <>#define PImain(){float r,h;float v;printf("please input r,h:");scanf("%f%f",&r,&h);v=3*PI*r*r*h;printf("V=%.2f",v);}#include<>#include<>main(){long int sn=0;long int m=0,t=0;int a,n,i;printf("please input a n:");scanf("%d%d",&a,&n);for(i=0;i<n;i++){m=m*10+a;sn+=m;}printf("a+aa+aaa+...+aa...a=%ld\n\n",sn);}#include <>main(){int k;printf("please input k:");do{scanf("%d",&k);if(k>=0&&k<=6)break;}while(1);switch(k){case 0:printf("Sunday.\n");break;case 1:printf("Monday.\n");break;case 2:printf("Tuesday.\n");break; case 3:printf("Wednesday.\n");break; case 4:printf("Thursday.\n");break; case 5:printf("Friday.\n");break;case 6:printf("Saturday.\n");break; }}#include <>main(){int i;double x,a,b=1,sum=1;printf("please input x:");scanf("%lf",&x);a=x;for(i=1;a/b>=1e-6;i++){sum=sum+a/b;a=a*x;b=(i+1)*b;}printf("\nsum=%lf",sum);}#include <>#include <>main(){float a,x1,x2;printf("input a:");scanf("%f",&a);x1=;while(1){x2=2*(x1+a/x1);if(fabs(x2-x1)<1e-5)break;x1=x2;}printf("sqrt(a)=%f",x2);}第四章写出下列程序输出结果1 a=1no 1 a=0no 1 a=1no 1 a=02.a=0 b=0 c=0a=1 b=0 c=0a=2 b=0 c=03.main:x=5,y=1,n=1func:x=6,y=21,n=11main:x=5,y=1,n=11func:x=8,y=31,n=21第五章6.(1)j+=2(2)a[i]<a[j]7.(1)s[i++]!='\0'(2)s[i-1](同题4)[i]>='0'&&s[i]<='9'12. (1)'\0' (2)str1[i]-str2[i]#include<>int fun();int fun(){int a[3][3],sum;int i,j;sum=0;/*error*/for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d",&a[i][j]);/*error*/}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%d\n",sum);}void main(){fun();}#include <>void main( void ){float Num[10];float Input,GetNum[11];int i,j;float a=6;for(i=0; i<10; i++){Num[i]=a;a=a+;}Loop1: printf("Please input a Number(0-80) Input="); scanf("%f",&Input);if((Input<0)||(Input>70)==1)goto Loop1;for(i=0; i<10; i++ ){i f(Input<Num[i])g oto Loop2;}Loop2: for(j=0; j<i; j++ )GetNum[j]=Num[j];GetNum[j]=Input;for(j=i; j<=10; j++,i++)GetNum[j+1]=Num[i];for(j=0; j<11; j++ )printf("% ",GetNum[j]);}#include ""#include ""main(){i nt a1,a2,a3,a4,a5,a6,a7,a8,a9;i nt a[3];i nt i;f or(;;){for (i=0;i<3;i++){a[i]=rand()%3;}while((a[0]!=a[1]) && (a[0]!=a[2]) && (a[1]!=a[2]))/*get three different numbers 0,1,2*/{a1=a[0]+1;/*divide 1~9 into three groups,a1~a3,a4~a6,a7~a9*/a2=a[1]+1;a3=a[2]+1;a4=a1+3;a5=a2+3;a6=a3+3;a7=a1+6;a8=a2+6;a9=a3+6;/* make sure that each line and each row is made up with three members in different group.*//* such as: a9 a1 a5a2 a6 a7a4 a8 a3 */if(((a1+a5+a9) == (a2+a6+a7)) && ((a1+a5+a9) == (a3+a4+a8))&& ((a1+a6+a8) == (a5+a7+a3)) && ((a1+a5+a9) == (a2+a4+a9))) {printf("%d %d %d\n%d %d %d\n%d %d %d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3);return;}}}}#include <>void main(void){c har input1[100],input2[100],input3[100];i nt i,Eng=0,eng=0,num=0,blank=0,other=0;p rintf("Input 3 rows of character,each row don't exceed 80 characters:\n");gets(input1);printf("The second row:\n");gets(input2);printf("The third row:\n");gets(input3);/*test the first row*/f or(i=0; i<100; i++){if(input1[i]=='\0')goto Loop1;else if(('A'<=input1[i])&&(input1[i]<='Z')==1)Eng++;else if(('a'<=input1[i])&&(input1[i]<='z')==1)eng++;else if(('0'<=input1[i])&&(input1[i]<='9')==1)num++;else if(input1[i]==32)blank++;else other++;}/*test the second row*/Loop1: for(i=0; i<100; i++){if(input2[i]=='\0')goto Loop2;else if(('A'<=input2[i])&&(input2[i]<='Z')==1)Eng++;else if(('a'<=input2[i])&&(input2[i]<='z')==1)eng++;else if(('0'<=input2[i])&&(input2[i]<='9')==1)num++;else if(input2[i]==32)blank++;else other++;}/*test the third row*/Loop2: for(i=0; i<100; i++){if(input3[i]=='\0')goto Loop3;else if(('A'<=input3[i])&&(input3[i]<='Z')==1)Eng++;else if(('a'<=input3[i])&&(input3[i]<='z')==1)eng++;else if(('0'<=input3[i])&&(input3[i]<='9')==1)num++;else if(input3[i]==32)blank++;else other++;}Loop3: printf("Upper english character:%d\nLower english character:%d\nNumber:%d\nBlank:%d\nOthercharacters:%d\n",Eng,eng,num,blank,other);}#include <>void main(void){c har str1[80],str2[40];i nt i,j,k;/*Input two string*/p rintf("Please input the first string\n str1=");g ets(str1);p rintf("Please input the second string\n str2=");g ets(str2);/*Get the end of str1*/f or(i=0; i<80; i++){if(str1[i]=='\0')break;}/*Copy str2 to str1*/for(j=i,k=0; str2[k]!='\0';k++,j++)str1[j]=str2[k];str1[i+k]='\0';puts(str1);}#include <>struct student{char name[20];int score;}stu[5],stu1;void main(void){ int i,j;p rintf("Input student's score and name(5),seperate using the character of ',' :\n");f or(i=0; i<5; i++)scanf("%d,%s",&stu[i].score,&stu[i].name);/*sorting*/f or(i=0; i<5; i++)for(j=0; j<4-i; j++)if(stu[j].score>stu[j+1].score){stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;}p rintf("After sotred,score and name:\n");f or(i=0; i<5; i++)printf("%d,%s\n",stu[i].score,stu[i].name);}#include<>main(){ int a[3][3],i,j,m,n,o,p;printf("Please input a 3*3 shuzu:\n");for (i=0;i<=2;i++)for (j=0;j<=2;j++)scanf("%d",&a[i][j]);for (i=0;i<=2;i++){ m=(a[i][0]>a[i][1]) a[i][0]:a[i][1];n=(m>a[i][2]) m: a[i][2];}for (j=0;j<=2;j++){ o=(a[0][j]<a[1][j]) a[0][j]:a[1][j];p=(o<a[2][j]) o: a[2][j];}if (n==p)printf("Andian is %d\\n",p);elseprintf("There is no andian.\\n"); }#include <>void main(void){ int a[4][3],b[3][4],i,j;for(i=0; i<4; i++){ for(j=0; j<3; j++)scanf("%d",&a[i][j]);}for(i=0; i<4; i++){printf("\n");for(j=0; j<3; j++)printf("%5d ",a[i][j]);}for(i=0; i<4; i++){for(j=0; j<3; j++)b[j][i]=a[i][j];}printf("\n");for(i=0; i<3; i++){printf("\n");for(j=0; j<4; j++)printf("%5d ",b[i][j]);}}#include <>#include<>void main(void){ char str[6];int i,j=0,m=0,n=0;gets(str);while(str[j]!='\0') j++;for(i=j-1;i>=0;i--){m=(str[i]-'0')*(pow(8,j-i-1));n+=m;}printf("shijinzhi %d",n);}#include <>void main(void){c har input1[100];i nt i,num=0,blank=0;p rintf("Please input a row character:\n");gets(input1);/*test the first row*/f or(i=0; i<100; i++){if(input1[i]=='\0')goto Loop;else if(('A'<=input1[i])&&(input1[i]<='Z')==1)num++;else if(('a'<=input1[i])&&(input1[i]<='z')==1)num++;else if (input1[i]==32)blank++;}Loop: printf("Character:%d\nBlank:%d\n",num,blank);}第六章一、选择题:p中记录的是a的地址,*p访问地址a的值:指针数组:指针可以进行是否相等判断,空指针可以进行指针变量初始化,指针可以偏移;:、D:a[5]不存在,若*&a[4]则正确;C,D正确;:::二、填空题1.*(p+3) 2 222.cdefgbcdefgabcdefg73.6385三、程序分析题1.p = s[0] ;错误,应改为:p = s;或 p = &s[0];2.int x , *p;错误,应改为:double x, *p;3.*p = x ;错误,应改为:p = &x ;4.声明顺序错误;应该改为:void main(void){int a;int *p = &a;a = 10;printf(“%d\n”,*p);}#include <>#include <>main(){char ch[2][5] = {"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i] = ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s = 10*s + p[i][j] - '0';printf("%d\n",s);}#include <>#include <>main(){int count = 0;char str1[100],str2[100];char *p1,*p2;printf("please enter string 1:");gets(str1);printf("please enter string 2:");gets(str2);printf("str1:%s\n",str1);printf("str2:%s\n",str2);p1 = str1;p2 = str2;while(*p1!='\0'&&*p2!='\0'){if(*p1++==*p2++)count++;}printf("count:%d\n",count);}#include <>#include <>main(){int i,j,k;int a[3];int temp;printf("please enter array a[3]:"); scanf("%d%d%d",&a[0],&a[1],&a[2]);for(i=0;i<2;i++){k = i;for(j= i+1;j<3;j++){if(a[j]<a[i])k = j;}if(k!=i){temp = a[i];a[i] = a[k];a[k] = temp;}}for(i=0;i<3;i++)printf("%d\t",a[i]);printf("\n");}#include <>#include <>#define N 100main(){char s1[N], s2[N],*p;int m;printf("please enter string1:");gets(s1);p = s1;printf("enter m:");scanf("%d",&m);strcpy(s2,p+m);printf("string2:%s\n",s2);}#include <>#include <>main(){char s[100]="iuiui012asdd90k890y098kkkk1234",*p; char data[100][100]={{0}};int count=0;int i;p = s;/*printf("please enter a string:");gets(p);*/printf("sssss:%s\n",s);while(*p!='\0'){i=0;while(*p>='0'&&*p<='9'){data[count][i] = *p;i++;p++;}if(i!=0)count++;p++;}printf("count:%d\n",count);for(i=0;i<count;i++)printf("%s\n",data[i]);}#include <>#define SIZE 4main(){int data[SIZE][SIZE],i,j,d;int max,m=0,n=0;for(i=0;i<SIZE;i++){for(j=0;j<SIZE;j++){scanf("%d",&data[i][j]);}}for(i=0;i<SIZE;i++){for(j=i+1;j<SIZE;j++){d = data[i][j];data[i][j] = data[j][i];data[j][i] = d;}}max = data[0][0];for(i=0;i<SIZE;i++){printf("\n");for(j=0;j<SIZE;j++){printf("%4d",data[i][j]);if(data[i][j]>=max){m ax = data[i][j];m = i;n = j;}}}printf("\nmax:%4d m:%d n:%d\n",max,m,n);}#include <>#include <>main(){char *p[] = {"test","capital","index","large","small"}; char **pstr = p;int a,b,n = 5;char *temp;for(a=0;a<n-1;a++){for(b=a+1;b<n;b++){if(strcmp(pstr[a],pstr[b])>0){t emp = pstr[a];p str[a] = pstr[b];p str[b] = temp;}}}for(a=0;a<n;a++)printf("%s\n",pstr[a]);}#include <>#include <>main(){char s[100],temp;char *p = s;int i,length;printf("please enter a string: ");gets(s);while(*p++!='\0');length = p - s -1;printf("string length:%d\n",length);for(i=0;i<length/2;i++){temp = s[i];s[i] = s[length-i-1];s[length-i-1] = temp;}printf("%s\n",s);}第七章一,选择题二.程序填空题1.(1) a[k](2) a[k](3) a[k]2.(1) a[i](2) j(3) i+1或6三.改错题1.#include<>#include<>void swap(char *,char *); /*此处有错误,函数声明时要加分号*/main(){char a[80],b[80],c[80];scanf("%s%s%s",a,b,c); /*此处有错误,a,b,c分别为数组a[80],b[8],c[80]的首地址*/if(strcmp(a,b)>0) swap(a,b); /*此处有错误,字符串比较应该使用strcmp 函数*/if(strcmp(b,c)>0) swap(b,c); /*此处有错误,原因同上*/if(strcmp(a,b)>0) swap(a,b); /*原算法不能实现排序,需要添加此语句*/ printf("%s\n%s\n%s\n",a,b,c);}<>#include <>void swap(char *pstr1,char *pstr2){char p[80];strcpy(p,pstr1);strcpy(pstr1,pstr2);strcpy(pstr2,p);}main(){char a[80]="ccc",b[80]="bbb",c[80]="aaa";/* scanf("%s%s%s",a,b,c); */if(strcmp(a,b)>0)swap(a,b);if(strcmp(b,c)>0)swap(b,c);if(strcmp(a,b)>0)swap(a,b);printf("%s\n%s\n%s\n\n\n",a,b,c);}<>int SquSum(int,int);main(){int a,b;int c;printf("enter 2 integer:");scanf("%d%d",&a,&b);c = SquSum(a,b);printf("a=%d b:%d a2+b2=%d\n",a,b,c);}int SquSum(int x,int y){int z;z = x*x+y*y;return z;}<>int GongYueShu(int,int);int GongBeiShu(int,int);main(){int a,b;int gbs,gys;printf("enter 2 integer:");scanf("%d%d",&a,&b);gys = GongYueShu(a,b);gbs = GongBeiShu(a,b);if(gys<0)printf("There has not gong yue shu!!!!!!\n");elseprintf("max gong yue shu:%d\n",gys);printf("min gong bei shu:%d\n",gbs);}int GongYueShu(int x,int y){int i,gys=-1,min;min = x;if(x>y)min = y;for(i=2;i<=min;i++){if((x%i==0)&&(y%i==0))gys = i;}return gys;}int GongBeiShu(int x,int y){int i,gbs,max;max = x;if(y>x)max = y;for(i=max;i<=x*y;i++){if((i%x==0)&&(i%y==0)){gbs = i;break;}}return gbs;}<>#include <>void Delete_Ch(char *,char);main(){char str[80],ch;printf("please a string:");gets(str);printf("please a char:");scanf("%c",&ch);Delete_Ch(str,ch);printf("%s\n\n",str);}void Delete_Ch(char *p,char ch){while(*p){if(*p==ch){strcpy(p,p+1);}elsep++;}}<>int Is_ShuShu(int); /* return 0:shushureturn -1:no shushu*/main(){int a,ret;printf("pls enter a integer:");scanf("%d",&a);ret = Is_ShuShu(a);if(ret==0)printf("%d is a shushu!!!\n",a); elseprintf("%d is not a shushu\n",a); }int Is_ShuShu(int x){int i;for(i=2;i<x/2;i++){if(x%i==0)return -1;}if(i>=x/2)return 0;}<>#include <>void StrCat(char *s1,char *s2){while(*s1!='\0')s1++;while(*s2!='\0'){*s1 = *s2;s1++;s2++;}*s1='\0';}main(){char a[200]="9",b[100]="ABCDEFG";printf("pls enter string 1:");gets(a);printf("pls enter string 2:");gets(b);StrCat(a,b);printf("%s\n\n",a);}<>#include <>void Stat(char *s,int *ch,int *dig,int *spa,int *oth){while(*s!='\0'){if(((*s>='a')&&(*s<='z'))||((*s>='A')&&(*s<='Z')))(*ch)++;else if((*s>='0')&&(*s<='9'))(*dig)++;else if(*s == ' ')(*spa)++;else(*oth)++;s++;}}main(){char a[200];int ch=0,dig=0,spa=0,oth=0;printf("pls enter a string :");gets(a);Stat(a,&ch,&dig,&spa,&oth);printf("ch:%d dig:%d spa:%d oth:%d",ch,dig,spa,oth); }<>#include <>void reverse(char *s){if(*s){}main(){char s[] = "abcde";reverse(s);puts(s);}<>#include <>paixu(int *p,int n,int flag) {int i,j,m;int temp;for(i=0;i<n-1;i++){m = i;for(j=i+1;j<n;j++){if(flag == 1){i f(p[j]>p[m])m = j;}else{i f(p[j]<p[m])m = j;}}if(m!=i){temp = p[i];p[i] = p[m];p[m] = temp;}}}main(){int a[20];int n,i;int flag;printf("please enter n(<20):");scanf("%d",&n);getchar();printf("please enter array a:");for(i=0;i<n;i++)scanf("%d",&a[i]);getchar();printf("please enter paixu flag:\n"); printf("\t1:degression\n");printf("\t0:increasion\t:");scanf("%d",&flag);paixu(a,n,flag);printf("array a is:");for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n\n");}。
C+程序设计华中科技大学课件第三章
运算符的种类和使用
● 算术运算符:+、-、*、/、% ● 关系运算符:==、!=、>、<、>=、<= ● 逻辑运算符:&&、||、! ● 赋值运算符:=、+=、-=、*=、/=、%= ● 条件运算符:?: ● 逗号运算符:, ● 指针运算符:*、& ● 成员运算符:.、-> ● 递增递减运算符:++、-● 强制类型转换运算符:(类型名) ● sizeof运算符:sizeof ● 地址运算符:& ● 空指针运算符:NULL ● 宏定义运算符:#define ● 条件编译运算符:#if、#else、#endif ● 结构体成员运算符:.、-> ● 数组下标运算符:[] ● 函数调用运算符:() ● 指针指向运算符:->*
函数和作用域
函数的定义和声明
函数的定义:函数是完成特定任务的独立 代码块,可以接受参数并返回结果。
函数的声明:在函数定义之前,需要先声 明函数,包括函数名、参数类型和返回值 类型。
函数的调用:在需要执行函数时,使用函 数名和参数列表进行调用。
函数的作用域:函数内部定义的变量只 能在函数内部使用,称为局部变量;函 数外部定义的变量可以在整个程序中使 用,称为全局变量。
静态变量:在函数外定义的变量, 或者使用static关键字在函数内定 义的变量
添加标题
添加标题
添加标题
添加标题
存储类型:分为静态存储和动态存 储,静态存储的变量在程序运行期 间一直存在,动态存储的变量在程 序运行期间可以动态分配和释放
动态变量:在函数内定义的变量, 或者使用auto关键字在函数内定义 的变量
else语句:用于判断条件不成立时执行语句块
c语言程序设计第三章答案
c语言程序设计第三章答案第三章:运算符与表达式一、算术运算符在C语言中,算术运算符用于在表达式中执行各种数学运算。
常见的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)和除法运算符(/)等。
1. 加法运算符(+)加法运算符用于将两个操作数相加,并返回它们的和。
例如,表达式a + b将返回a和b的和。
2. 减法运算符(-)减法运算符用于从第一个操作数中减去第二个操作数,并返回它们的差。
例如,表达式a - b将返回a和b的差。
3. 乘法运算符(*)乘法运算符用于将两个操作数相乘,并返回它们的积。
例如,表达式a * b将返回a和b的积。
4. 除法运算符(/)除法运算符用于将第一个操作数除以第二个操作数,并返回它们的商。
例如,表达式a / b将返回a除以b的商。
二、关系运算符关系运算符用于比较两个操作数并返回一个布尔值(真或假)。
常见的关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)等。
1. 大于运算符(>)大于运算符用于检查第一个操作数是否大于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a > b将返回真或假。
2. 小于运算符(<)小于运算符用于检查第一个操作数是否小于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a < b将返回真或假。
3. 大于等于运算符(>=)大于等于运算符用于检查第一个操作数是否大于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a >= b 将返回真或假。
4. 小于等于运算符(<=)小于等于运算符用于检查第一个操作数是否小于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a <= b 将返回真或假。
5. 等于运算符(==)等于运算符用于检查两个操作数是否相等。
C#程序设计课后习题答案--第三章
实验报告1.创建窗体应用程序,程序运行时,在“年份”文本框输入一个正整数,单击“判断”按钮,就能在标签控件中显示判断结果;单击“退出”按钮则结束程序运行。
图 1.1 题目部分代码图 1.2 结果2.创建控制台应用程序,输入一个奇数后,输出图案,最顶部一行的星号个数为输入的数。
图 2.1 判断奇数代码图 2.2 输出星号倒三角形代码图 2.3 结果1图 2.4 结果23. 创建控制台应用程序,利用下边的多项式计算出π值,要求最后一项的值小于10−6.π4=1−13+15−17+⋯+14n −3−14n −1图 3.1 代码图 3.2 结果4. 创建控件台应用程序,利用下边的公式计算e 的近似值,要求最后一项的值小于10−6。
e =∑1n!kn=0图 4.1 代码图 4.2 结果5.已知两个三位数abc和cba之和为1333(既abc+cba=1333),编写控制台应用程序,求出三个数字a、b、c。
图 5.1 代码图 5.2 结果6.创建控制台应用程序,求解猴子吃桃问题,猴子第一天摘下桃子若干,当即吃了一个后又多吃了一个;第二天又将剩下的桃子吃掉一半后再多吃一个,;以后每天都吃掉前一天剩下的一半零一个。
到第10天想再吃时,只剩下一个桃子。
求猴子在第一天共摘下多少个桃子?图 6.1 代码图 6.2 结果7.马克思曾经做过这样一道数学趣味题:有30个人在一家小饭馆用餐,其中每个男人花了3先令,每个女人花了2先令,每个孩子花了1先令,总共花了50先令。
问男人、女人、孩子各有多少人?本题有多个解,编写控制条应用程序求出所有解。
图7.1 代码图7.2 代码8.体操比赛的评分规则是:由7位裁判为每个运动员打分,去掉一个最高分,去掉一个最低分,求出的平均分即为运动员的得分。
编写控制台应用程序,计算运动员得分。
图8.1 代码图8.2 结果9.所谓“水仙花数”指的就是这样的一个3位数,其各位数的立方和等于该数。
例如,153=13+53+33.编写控制台应用程序,计算输出所有的水仙花数。
《C语言程序设计》第三版课后答案
《C语言程序设计》第三版课后答案第一章:C语言基础知识1.1 C语言的历史和特点C语言是由贝尔实验室的Dennis Ritchie在20世纪70年代初开发的一种高级计算机编程语言。
C语言具有简洁、高效、可移植性强等特点,成为了编写系统软件和应用软件的首选语言。
1.2 C语言的开发环境为了编写和运行C语言程序,我们需要安装并配置相应的开发环境。
常用的开发环境包括Code::Blocks、Dev-C++和Eclipse等。
这些开发环境提供了编辑器、编译器和调试器等工具,方便我们进行程序开发和调试。
1.3 C语言的基本语法C语言的基本语法包括关键字、标识符、数据类型、变量、常量、运算符和控制语句等。
关键字是C语言预先定义的词汇,如int、if、for等。
标识符是程序中自定义的名称,用于标识变量、函数等。
数据类型包括整型、浮点型、字符型和指针型等。
变量是存储数据的位置,常量是不可修改的数据。
运算符用于进行数学和逻辑运算。
控制语句包括条件语句和循环语句,用于控制程序的执行流程。
第二章:C语言基本程序设计2.1 程序的结构C语言程序由多个函数组成,其中main函数是程序的入口,是程序执行的起点。
在main函数中,我们可以调用其他函数来完成具体的任务。
一个基本的C语言程序结构包括包含头文件、定义变量、执行语句和返回值等部分。
2.2 输入和输出输入和输出是C语言程序中常见的操作。
标准库提供了一系列函数,如printf和scanf,用于输出和输入数据。
其中printf函数用于格式化输出数据,scanf函数用于接收用户的输入。
2.3 运算和赋值C语言支持多种运算符,如算术运算符、关系运算符、逻辑运算符和位运算符等。
这些运算符可以用于数值计算和条件判断。
赋值运算符用于给变量赋值。
2.4 条件语句条件语句根据条件的成立与否来决定程序的执行路径。
C语言提供了if语句和switch语句来实现条件控制。
if语句根据条件的真假来执行不同的代码块。
(word完整版)C语言程序设计课后习题1-8参考答案
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
c语言程序设计第三章答案
第三章习题答案一、选择题(带**号的题选作)1) 以下叙述中正确的是()A) C语言的基本组成单位是语句B) C程序中的每一行只能写一条语句C) 简单C语句必须以分号结束D)C语句必须在一行内完成2)下列叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C) 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行3) 计算机能直接执行的程序是()A)源程序 B)目标程序 C)汇编程序 D)可执行程序4)以下叙述中错误的是A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法5)对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束6)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数7) 以下关于C语言的叙述中正确的是A) C语言中的注释不可以夹在变量名或关键字的中间B) C语言中的变量可以再使用之前的任何位置进行定义C) 在C语言算术的书写中,运算符两侧的运算数类型必须一致D) C语言的数值常量中夹带空格不影响常量值的正确表示8)以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数9)以下叙述中正确的是A) C程序中的注释只能出现在程序的开始位置和语句的后面B) C程序书写格式严格,要求一行内只能写一个语句C) C程序书写格式自由,一个语句可以写在多行上D) 用C语言编写的程序只能放在一个程序文件中10)C语言源程序名的后缀是A).exe B).C C).obj D).cp11)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的12) 以下选项中不能作为C语言合法常量的是 ( )A) ‘cd’ B) 0.1e+6 C) “a” D)‘\011’13)一下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L14) 以下选项中不属于字符常量的是A)'C' B)"C" C)'\xCC0' D)'\072' 15)以下合法的字符型常量是A)’\x13’B)’\018’C)”65” D)”\n”16) 以下不合法的字符常量是A)'\018' B)'\”' C) '\\' D) ‘\xcc' 17) 以下不合法的数值常量是A)011 B)1e1 C) 8.0E0.5 D) 0xabcd 18)以下选项中能表示合法常量的是A)整数:1,200 B)实数:1.5E2.0C)字符斜杠:‘\’ D)字符串:"\007"19) C源程序中不能表示的数制是()A) 二进制 B) 八进制 C) 十进制 D) 十六进制20) 以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A.5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e521)以下不合法的用户标识符是A)j2_KEY B)Double C) 4d D) _8_22)一下选项中合法的标识符是A)1_1 B)1-1 C)_11 D)1_ _23) 以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned 24)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母 B)连接符 C)数字字符 D)下划线25)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl26) 以下C语言用户标示符中,不合法的是A)_1 B)AaBc C)a_b D)a--b 27)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00 28)下列定义变量的语句错误的是()。
C语言程序设计》课后习题详细答案
3.19【参考答案】C)
3.20【参考答案】B)
二、填空题
3.21【参考答案】
(1)-200,2500(2)i=-200,j=2500
(3) i=-200
j=2500
3.22【参考答案】[1]12[2]0[3]0
3.23【参考答案】[1]一条语句[2]分号(或;)
2.2【参考答案】D)
2.3【参考答案】B)
2.4【参考答案】A)
2.5【参考答案】C)
2.6【参考答案】A)
2.7【参考答案】B)
2.8【参考答案】B)
2.9【参考答案】D)
2.10【参考答案】C)
2.11【参考答案】B)
2.12【参考答案】B)
2.13【参考答案】A)
二、填空题
2.14【参考答案】[1]11[2]12
(5)交换的步骤如下:
①把c中的值赋给t。
②把b中的值赋给c。
③把a中的值赋给b。
④把t中的值赋给a。
经过以上步骤,已按要求进行了交换。
(6)输出a、b、c中的值。
(7)编写程序如下:
main()
{ int a, b, c, t;
printf(″Enter a, b, c :\n″);
scanf(″%d%d%d″,&a,&b,&c);
4.5【参考答案】C)
4.6【参考答案】A)
4.7【参考答案】B)
4.8【参考答案】C)
4.9【参考答案】D)4.Biblioteka 0【参考答案】A)二、填空题
4.11【参考答案】[1]非零[2]零
4.12【参考答案】<、>、<=、>=、==、![KG-*2]=
c语言第三章题库及详解答案
c语言第三章题库及详解答案1. 以下哪个是C语言中的合法标识符?A. 3variableB. variable3C. _variableD. variable#答案:B, C2. C语言中,哪个关键字用于定义变量的存储类型?A. staticB. registerC. autoD. all of the above答案:D3. 以下哪个语句可以正确声明一个整型变量?A. int var;B. var int;C. int var=;D. int = var;答案:A4. 在C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. +D. -答案:A5. 以下哪个表达式的结果是非零的?A. 5 % 3B. 5 / 3C. 5 + 3D. 5 - 3答案:A6. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. all of the above答案:D7. C语言中,哪个关键字用于定义函数?A. functionB. defC. voidD. int答案:D8. 以下哪个是C语言中的条件语句?A. ifB. switchC. caseD. default答案:A9. 在C语言中,哪个关键字用于实现循环?A. whileB. doC. forD. all of the above答案:D10. 以下哪个是C语言中的数组声明?A. int array[10];B. int [10] array;C. both A and BD. neither A nor B答案:C11. C语言中,哪个函数用于输入?A. printf()B. scanf()C. getchar()D. gets()答案:B12. 以下哪个是C语言中的字符串常量?A. "Hello World"B. 'Hello World'C. hello worldD. Hello World答案:A13. 在C语言中,哪个函数用于输出?A. printf()B. scanf()C. puts()D. sprintf()答案:A14. 以下哪个是C语言中的递归函数调用?A. func();B. func(func());C. func(1);D. func(func);答案:B15. C语言中,哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A16. 以下哪个是C语言中的位运算符?A. &B. |C. ^D. all of the above答案:D17. 在C语言中,哪个关键字用于定义枚举类型?A. enumB. structC. unionD. typedef答案:A18. 以下哪个是C语言中的指针变量?A. int *ptr;B. int ptr;C. ptr int;D. int (*ptr)();答案:A19. C语言中,哪个函数用于计算数组的长度?A. sizeof()B. length()C. size()D. count()答案:A20. 在C语言中,哪个关键字用于定义联合体?A. unionB. structC. enumD. typedef问题及答案到此结束。
华中科技大学光电子学院C语言第三章
2.单个字符输出函数 putchar 形式:putchar (c) 其中:c为实参,类型可以是char,short或int类型的表达式 功能:将字符c输出到显示器上 如: putchar(((c=getchar( ))>’a’ && c<=’z’) ? c-‘a’+’A’ : c); 先输入一个字符存入变量c,如果c中是小写字母,则将转换成对应大写字母后输出,否则直接输出原键入的字符。
c —
未指定域宽:只允许接受的变量类型为char 或int ; 指定域宽:则按域宽接受多个字符到数组中
s — 接受一串字符到字符数组中,机器自动添加串结束标 志’\0’(空字符),第一个字符不能是空格字符。 中间插入字符: *——不将数据项读入变量中 域宽 h——输入的数应为short 型 l,L——输入的数若为整形,对应的变量应为long 型,若 读入float 型,相应变量应为double型
格式字符串,基本同scanf 中的格式字符串
%ld输出长整型数据 如:long a=123560; printf ( “%ld”,a ); /*若printf ( “%d”,a ) 则错误*/ %f以小数形式输出单精度或双精度浮点数 注: 转换说明决定输出数据的数目和类型, 否则会出错 如: int i=-6; double x=5.7,y=123.4567; printf ( “%%d%f”,i,x ); 输出:%d%f %后是%或非转换字符则原样输出。
2)变量地址表:由1个或多个(用逗号隔开)组成变 量地址表 简单变量地址表示:&变量 字符串变量地址:用字符数组名(或指向字符串 变量的指针)表示 例:int i; float x; char name[10]; scanf ( “%d%f%s”,&I,&x,name); 键入数据形式:25 61.37e-1 program ↙ 或 结果:他们分别被存入 I , x, name[10] 中 注: 1.数据之间用空格或回车隔开,不能使用其它字符 2.不能将scanf ( “%d”,&i ) 写成scanf ( “%d”, i ) ; 3.也不能将scanf(“%s”,name)写成scanf(“%s”, &name );
程序设计基础-c语言-第三章程序结构-教材习题答案-科学出版社.doc
程序设计基础-C语言(科学出版社教材)第三章-程序结构教材习题答案1.0编写程序使整形变量:a=3,b=4,c=5,p=0xfffe,q=0xffff;浮点型变量:x=1.2,y=2.4,z=3.6;无符号型变量:u=5127486,n=128765,字符型变量:c1=’a’,c2=’b’;#include <stdio.h>void main(){int a,b,c,p,q;float x,y,z;unsigned int u,n;char c1,c2;a=3;b=4;c=5;p=0xfffe;q=0xffff;x=1.2;y=2.4;z=-3.6;u=5127486;n=128765;c1='a';c2='b';printf("a=%d b=%d c=%d\n",a,b,c);printf("p=%#x q=%#x\n",p,q);printf("x=%f,y=%f,z=%f\n",x,y,z);printf("x+y=%.2f y+z=%.2f x+z=%.2f\n",x+y,y+z,x+z);printf("u=%8u n=%8u\n",u,n);printf("c1='%c' or %d\n",c1,c1);printf("c2='%c' or %d\n",c2,c2);}2.0 读入三个双精度数,求出它们的平均值并保留此平均值小数点后二位,最后输出结果。
#include <stdio.h>void main(){double a,b,c,d;printf("请输入三个双精度数:");scanf("%lf,%lf,%lf",&a,&b,&c);d=(a+b+c)/3;printf("d=%.2lf",d );}3.0 编写一个程序,要求输入三个整数值a,b,c,把c中的值赋给b, 把b中的值赋给a, 把a中的值赋给c,最后输出a,b,c.#include <stdio.h>void main(){int a,b,c,t;printf("输入三个整数值:");scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.0 编写一个程序,要求输入一个华氏温度,输出对于的摄氏温度。
C语言教材第三章课后部分习题答案
C语言教材第三章课后部分习题答案( 第三版谭浩强)3.6写出以下程序运行的结果。
main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。
因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
解:#include <stdio.h>main(){ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); }运行结果:密码是Glmre3.9求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.53.10写出程序运行的结果。
main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}解:9,11,9,103.12写出下面表达式运算后a的值,设原来a=12。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.比大小#include<stdio.h>main(){int a,b;int max;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&b);max=a>b?a:b;printf("The bigger one is %d",max); }2.三个整数比大小#include<stdio.h>main(){int a,b,c;int max,mid;printf("Please enter 3 numbers:\n");scanf("%d%d%d",&a,&b,&c);mid=a>b?a:b;max=mid>c?mid:c;printf("The biggest one is %d",max); }3.累加#include<stdio.h>main(){int i;int sum=0;for(i=1;i<101;i++){sum+=i;}printf("The answer is %d",sum);}4.计算通项公式中的每一项#include<stdio.h>main(){int an_2=10,an_1=-3;int an;int i,n;printf("请输入需要的项的个数:\n");scanf("%d",&n);printf("第1项:10\n");printf("第2项:-3\n");if(n<=2){printf("Error!");}else{for(i=3;i<=n;i++){an=3*an_1+an_2;an_2=an_1;an_1=an;printf("第%d项:\t%d\n",i,an);}}}5.判断奇偶数:#include<stdio.h>main(){int a;printf("Please enter a number:\n");scanf("%d",&a);if(a%2==0){printf("%d is an Even number!",a);}else{printf("%d is an Odd number!",a);}}6.求前n项和#include<stdio.h>main(){int an=8,bn=1,sum=0;int n;int i;printf("请输入你需要多少项的和:\n");scanf("%d",&n);for(i=1;i<=n;i++){printf("第%d项是%d\n",i,an);sum+=an;bn+=3;an+=bn;}printf("\n前%d项的和为%d",n,sum);}7.求分段函数的解:#include<stdio.h>main(){float x,y;printf("Please enter a number:\n");scanf("%f",&x);if(x<1.0){y=x;}else if((x>=1)&&(x<10)){y=2*x-1;}else{y=3*x-11;}printf("y=%.2f",y);}8.给出一个不多于5位的数,求出其位数,并逆序打印:#include<stdio.h>main(){int in,out,n;int wei=1;int a,b,c,d,e;int i;printf("Please enter a number:\n");scanf("%d",&in);n=in;if(a<99999){for(i=0;i<5;i++){n/=10;if(n>0){wei++;}}printf("The number has %d digit\n",wei);e=in%10;switch(wei){case 1:out=in;break;case 2:out=10*e+in/10;break;case 3:c=in/100;b=(in-c*100)/10;out=100*e+10*b+c;break;case 4:b=in/1000;c=(in-b*1000)/100;d=(in-b*1000-c*100)/10;out=1000*e+100*d+10*c+b;break;case 5:a=in/10000;b=(in-a*10000)/1000;c=(in-a*10000-b*1000)/100;d=(in-a*10000-b*1000-c*100)/10;out=10000*e+1000*d+100*c+10*b+a;break;}if(wei<6){printf("%d in reverse order is %d\n",in,out);}else{printf("Error!");}}}9.产生随机数并猜测#include<stdio.h>#include<time.h>#include <stdlib.h>main(){int a,answer;int i;srand((unsigned)time(NULL));a= rand()%100;for(i=0;i<20;i++){printf("Please enter a number from 0 to 100:\n");scanf("%d",&answer);if(answer>a){printf("Bigger!\n");}else if(answer<a){printf("Smaller!\n");}else{printf("You are right!") ;continue;}}}10.计算能被3整除的数:#include<stdio.h>main(){int i;for(i=1;i<1000;i++){if(i%3==0){printf("%d\t",i);}if(i%15==0){printf("能被3和5同时整除的数有:%d\n",i);}}}11:输入两个整数,求出它们的最大公约数和最小公倍数#include<stdio.h>main(){int a,b;int i;int min,max;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&b);for(i=a<b?a:b;i>0;i--){if((a%i==0)&&(b%i==0)){max=i;printf("The Greatest common divisor is %d\n",max);break;}}for(i=a>b?a:b;i<a*b;i++){if((i%a==0)&&(i%b==0)){min=i;printf("The least common multiple number is %d\n",min);break;}}}12输入一个整数,求出它包含多少个2的因子#include<stdio.h>main(){int a;int count=0;int i;printf("Please enter a number:\n");scanf("%d",&a);for(i=1;i<=a;i++){if(a%2==0){count++;a=a/2;}}printf("The number have %d 2",count);}13.计算阶乘#include<stdio.h>main(){int i;int j;long int t=1;printf("1\n");for(i=1;i<10;i++){t*=i+1;printf("%d\n",t);}}14.猴子吃桃问题#include<stdio.h>main(){int a=1;int aday;int i,j;for(i=1;i<10;i++){a=(a+1)*2;}printf("There sum is %d\n",a);for(j=1;j<10;j++){aday=a/2+1;a-=aday;}printf("%d\n",a);}15圆锥体积计算#include<stdio.h>#define PI 3.141592654main(){float r,h,v;printf("Please enter 2 numbers:\n");scanf("%f%f",&r,&h);if((r>0)&&(h>0)){v=1/(3*PI*r*r*h);printf("The Volume is %.6f",v);}else{printf("Error!");}}16求s=a+aa+aaa+aaaa````````(n个a)#include<stdio.h>main(){int a,n;int i;long int sum=0;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&n);int m=a;for(i=0;i<n;i++){sum+=a;a=a*10+m;printf("%d\t%d\n",a,sum);}printf("The answer is %ld",sum);}17根据数字输出对应星期#include<stdio.h>main(){int a;printf("Please enter a number:\n");scanf("%d",&a);if((a>=0)&&(a<=6)){switch(a){case 0:printf("Sunday");break;case 1:printf("Monday");break;case 2:printf("Tuesday");break;case 3:printf("Wedsday");break;case 4:printf("Thursday");break;case 5:printf("Friday");break;case 6:printf("Saturday");break;}}else{printf("Error!");}}18.计算幂函数的泰勒展开式:e^x=1+x+x2/2!``````` #include<stdio.h>main(){int i;float n=1;float m;float s=1;printf("Please enter a number:\n");scanf("%f",&m);float a=m;for(i=1;m/n>1e-6;i++){s+=m/n;m*=a;n*=(i+1);}printf("e^%.0f=%.6f\n",a,s);}19.用迭代法求平方根#include<stdio.h>#include<math.h>int main(){int a;float b,c;printf("Please enter a number:\n");scanf("%d",&a);b=1,c=0;for(;fabs(b-c)>1e-5;){c=1.0/2*(b+a*1.0/b);b=1.0/2*(c+a*1.0/c);}printf("%d的平方跟是:%lf",a,b);return 0;}(注:可编辑下载,若有不当之处,请指正,谢谢!)。