收藏 分销(赏)

C语言程序设计课后习题答案吉林大学版武爱平.doc

上传人:快乐****生活 文档编号:3057985 上传时间:2024-06-14 格式:DOC 页数:33 大小:87.50KB 下载积分:12 金币
下载 相关 举报
C语言程序设计课后习题答案吉林大学版武爱平.doc_第1页
第1页 / 共33页
C语言程序设计课后习题答案吉林大学版武爱平.doc_第2页
第2页 / 共33页


点击查看更多>>
资源描述
第一章 1.选择题 (1)B(2)C(3)C(4)D(5)B(6)D(7)D(8)C 2.填空题 (1)函数 一个主函数 函数 (2)/* */ (3)连接 3.程序设计题 (1)   #include<stdio.h> main() { printf(" *\n"); printf("* S *\n"); printf(" *\n"); } (2) #include<stdio.h> main() { printf("******************\n"); printf("Your are welcome!\n"); printf("------------------\n"); } 第二章 1.选择题 (1)D(2)D(3)B(4)C(5)B(6)C(7)C(8)C(9)D(10)C(11)A(12)B(13)A(14)C(15)A(16)B(17)A(18)B(19)C(20)A(21)C(22)C 2.填空题 (1)① 9 ②-2 ③ 62 ④44.8 (2) ① 10.5 ② 73.1 ③ 7 ④7.2 (3)"%6x" "%o" "%3c" "%10.3f" "%8s" (4)int a,b,c; &a,&b,&c temp=a; c=temp; (5)49 61 31 1 3.程序设计题 (1) #include<stdio.h> main() { double a,b,c,d; double aver=0.0; printf("\nPlease input four double number:"); scanf("%lf%lf%lf%lf",&a,&b,&c,&d); aver=(a+b+c+d)/4; printf("\nThe average of the four double number is %lf",aver); } (2) #include<stdio.h> #define PI 3.14159 main() { double r; double area=0,len=0; printf("\nPlease input r:"); scanf("%lf",&r); area=PI*r*r; len=2*PI*r; printf("\n area=%lf,length=%lf",area,len); } (3) #include<stdio.h> main() { float i,s; printf("\nPlease input data:"); scanf("%f%f",&i,&s); s=s*(1+i); printf("\nI have %.2f yuan after one year.",s); } 第三章 1、选择题 (1)C(2)C(3)A(4)C(5)D(6)A(7)C(8)A(9)B(10)D 2、填空题 (1)&m,&n m=n; n=temp; m,n (2)① 5 5 4 ② 5 5 4 ③ 3 3 4 (3)9 i+1 "%d",i printf("\n"); (4)73 -543 93201 3、程序设计题 (1) #include<stdio.h> #include<math.h> main() { double a,b,c,d,det,a_2,real,imag,x1,x2; printf("Please enter a,b,c:"); scanf("%lf%lf%lf",&a,&b,&c); if(a==0&&b==0) printf("No root!\n"); else if(a==0) printf("Line equation root is %.2lf\n",-c/b); else { d=b*b-4*a*c; det=sqrt(fabs(d)); a_2=2*a; if(d<0) { real=-b/a_2; imag=det/a_2; printf("The two root are:\n%.2lf+%.2lfi\n",real,imag); printf("and\n%.2lf-%.2lfi\n",real,imag); } else if(d==0) printf("Single real root is %.2lf:\n",-b/a_2); else { x1=-b/(a_2)+det/a_2; x2=-b/(a_2)+det/a_2; printf("The two real roots are :\n%.2lf\n and\n %.2lf\n",x1,x2); } } } (2) #include<stdio.h> main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) printf("%d*%d=%2d ",i,j,i*j); printf("\n"); } } (3)#include<stdio.h> main() { float sum,product; int i,n,j; printf("\nEnter n\(4<=n<=20):"); scanf("%d",&n); while(n>20||n<4) { printf("\nEnter n again:"); scanf("%d",&n); } sum=0; product=1; for(i=1;i<=n;i++) { product=1; for(j=1;j<=i;j++) product=product*j; sum=sum+product; } printf("1!+2!+...+%d!=%.0f\n",n,sum); } 第四章 1、选择题 (1)C(2)D(3)B(4)D(5)C(6)B(7)B(8)C(9)A(10)C(11)C(12)B 2、填空题 (1)① int men[10] ; ② float step[4]={1.9,-2.33,0,20.6}; ③_int grid[4][10] ; (2)① int m[10]={9,4,7,49,32,-5}; ② 0 9 ③ scanf("%d",m[1]); ④ m[0] =39; ⑤ m[0] =a[3]+a[5]; (3)①3 ②5 ③8 ④8 ⑤9 ⑥12 ⑦9 (4)① int a[10]={9,4,12,8,2,10,7,5,1,3}; ②0 9 ③8 8 (5)10 3、程序填空题 (1) array[20] 20 &array[i ] 20 max=array[i]; min=array[i]; sum+array[i]; sum/20 (2) -5.770000 2 1 (3) ABCDEFGHIJKL EFGHIJKL ABFDEFGHIJKL ABFDEFGHI 4、程序设计题 (1) #define SIZE 100 #include<stdio.h> void main() { int a[SIZE+1],i,j; for(i=2;i<=100;i++) a[i]=i; for(i=2;i<=100;i++) for(j=i+1;j<=100;j++) if(a[i]!=0&&a[j]%a[i]==0) a[j]=0; printf("\n"); j=0; for(i=2;i<=100;i++) { if(a[i]!=0) { printf("%-4d",a[i]); j++; } if(j==10) { j=0; printf("\n"); } } } (2) #define S 14 #include"stdio.h" void main() { int a[S][S],i,j,n; printf("please enter n:"); scanf("%d",&n); for(i=1;i<=n;i++) { a[i][i]=1; a[i][1]=1; } for(i=3;i<=n;i++) for(j=2;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=i;j++) printf(" %3d",a[i][j]); printf("\n"); } } (3) #define SIZE 80 #include<stdio.h> void main() { char str1[SIZE+SIZE],str2[SIZE]; int i,j; puts("Please enter 2 string:"); scanf("%s",str1); scanf("%s",str2); i=0; while(str1[i]!='\0') i++; j=0; while(str2[j]!='\0') { str1[i]=str2[j]; i++; j++; } str1[i]='\0'; printf("%s\n",str1); } (4) #define SIZE 80 #include<stdio.h> #include<string.h> void main() { char string[SIZE]; int len,i,j,flag; long number; puts("Please enter a digital string:"); scanf("%s",string); len=strlen(string); if(string[0]=='-') { flag=-1; i=1; } else { flag=1; i=0; } number=string[i]-'0'; for(i++;i<len;i++) number=number*10+(string[i]-'0'); number=flag*number; printf("%d\n",number); } (5) #define SIZE 40 #include<stdio.h> void main() { int m,n,i,j; float price[SIZE],sum; printf("\nPlease input M and N:"); scanf("%d%d",&m,&n); m=m-n; printf("Please input %d price :",n); sum=0; for(i=0;i<n;i++) { scanf("%f",&price[i]); sum=sum+price[i]; } printf("Aver are %10.2f.",sum/n); while(m>0) { for(i=0;i<n-1;i++) price[i]=price[i+1]; printf("\nPlease input one price:"); scanf("%f",&price[n-1]); m--; sum=0; for(i=0;i<n;i++) { sum=sum+price[i]; } printf("Aber are %10.2f",sum/n); } } 第五章 1.选择题 (1)C(2)D(3)C(4)B(5)A(6)A(7)A(8)B(9)A(10)B(11)A(12)A 2.填空题 (1)整型 (2)值传递 地址传递 (3)全局变量 局部变量 (4)自动变量 静态变量 寄存器变量 外部变量 (5)自动变量 (6)15 300 (7)8 121 (8)x=3,y=4,n=7 (9)5 6 3.程序设计题 (1) #include<stdio.h> int gcd_recursion(int a,int b); void main() { int i,j; puts("\nPlease enter 2 integer"); scanf("%d,%d",&i,&j); if(i<0||j<0) { puts("\nData Error!Please enter 2 integer"); scanf("%d, %d",&i,&j); } else printf("gcd(%d,%d)=%d",i,j,gcd_recursion(i,j)); } int gcd_recursion(int a,int b) { int c,d; if(a<b) {c=a; a=b; b=c; if(a%b==0) return b; else d=gcd_recursion(b,a%b); } else if(a%b==0) return b; else d=gcd_recursion(b,a%b); return d; } (2) #include<stdio.h> int delete_char(char c,char str[]); void main() {char str[10],c,i; puts("\nPlease enter a string:"); gets(str); puts("Please enter a char you want to delete:"); c=getchar(); puts("Before deleted:"); puts(str); puts("After deleted:"); i=delete_char(c,str); puts(str); printf("There are %d characters deleted.",i); } int delete_char(char c,char str[]) { int i,j,total,k,sum; i=0; total=0; while(str[i]!='\0') { k=i; sum=0; while(str[k]==c) { k++; sum++; } total=total+sum; if(str[i]==c) { for(j=i;str[j+sum]!='\0';j++) str[j]=str[j+sum]; str[j]='\0'; } i++; } return total; } (3) #include<stdio.h> int max(int a,int b); void main() { int i,j,k; puts("\nPlease enter 3 integer:"); scanf("%d,%d,%d",&i,&j,&k); printf("max is %d.",max(max(i,j),k)); } int max(int a,int b) { if(a>b) return a; else return b; } (4) #include<stdio.h> void int_string(long a,char str[]); void reverse(char c[],int size); void insert_space(char c[],int size); void main() { long i; char str1[10]; puts("\nPlease enter 1 long interger:"); scanf("%d",&i); int_string(i,str1); printf("digital string is %s",str1); } void int_string(long a,char str[]) { int i=0; while(a!=0) { str[i]=a%10+'0'; a=a/10; i++; } str[i]='\0'; insert_space(str,i); } void insert_space(char c[],int size) { int i; c[2*size-1]='\0'; for(i=2*(size-1);i>=2;i-=2) { c[i]=c[i/2]; c[i-1]=' '; } } (5) #include<stdio.h> long facto(long x); main() { int a; long factorial; printf("\nPlease enter a integer:"); scanf("%d",&a); factorial=facto(a); printf("\nThe %d's jieceng is :%ld\n",a,factorial); } long facto(long x) { if(x==1) return 1; else return(x*facto(x-1)); } (6) #include<stdio.h> float average(float math,float chinese,float english); main() { float score[3]; float aver; printf("Please enter your score:math,chinese,english\n"); scanf("%f,%f,%f",&score[0],&score[1],&score[2]); aver=average(score[0],score[1],score[2]); printf("Your average is %.2f\n",aver); } float average(float math,float chinese,float english) { return(math+chinese+english)/3; } (7) #include<stdio.h> float max=0,min=0; float average(float arr[],int n) { int i; float aver,sum=arr[0]; max=min=arr[0]; for(i=1;i<n;i++) { if(arr[i]>max) max=arr[i]; else if (arr[i<min]) min=arr[i]; sum=sum+arr[i]; } aver=sum/n; return(aver); } main() { float score[10], aver; int i; printf("Please enter ten score:"); for(i=0;i<10;i++) scanf("%f",&score[i]); aver=average(score,10); printf("max=%.2f\nmin=%.2f\naverage=%.2f\n",max, min,aver); } (8) #include<stdio.h> int fib(int n) { if((n==1||n==2)) return 1; else return(fib(n-1)+fib(n-2)); } void main() { int i; printf("\n"); for(i=1;i<20;i++) { printf("%-12d",fib(i)); if(i%5==0) printf("\n"); } } 第六章 1、选择题 (1)A(2)C(3)A(4)B(5)B(6)D(7)D(8)B(9)D(10)B 2、填空题 (1)a=10,b=20 a=20,b=10 (2)**pp=60 3、程序设计题 (1) #include<stdio.h> char *month_name(int n); void main() { int n; printf("\nPlease enter 1 integer:"); scanf("%d",&n); printf("%d month :%s\n",n,month_name(n)); } char *month_name(int n) { static char*name[]={"illegal month", "Jan","Feb","Mar","Apr","May","Jun", "July","Aug","Sept","Oct","Nov","Dec"}; return ((n<1||n>12)?name[0]:name[n]); } (2) #include<stdio.h> #define N 10 sort(int data[]) { int i,j,min_a,temp; for(i=0;i<N;i++) { min_a=i; for(j=i+1;j<N;j++) if(*(data+j)<*(data+min_a)) min_a=j; if(min_a!=i) { temp=*(data+min_a); *(data+min_a)=*(data+i); *(data+i)=temp; } } } main() { int i,j,data[N],temp; int min_a; printf("\nPlease input %d int:\n",N); for(i=0;i<N;i++) scanf("%d",&data[i]); sort(data); printf("After sorted:\n"); for(i=0;i<N;i++) printf(" %d",data[i]); } (3) #include <stdlib.h> void reverse(char *c); void main() {char str[80]; puts("Please enter 1 string\n"); gets(str); reverse(str) ; puts("After reversed\n"); puts(str); } void reverse(char *c) { char *p,*q,temp; int size=0; for(p=c;*p!='\0';p++) size++; size=size/2; for(q=c,p--;q<c+size;q++,p--) { temp=*q; *q=*p; *p=temp; } } (4) #include<stdio.h> #include<string.h> void sort(char *keyword[],int size); void print(char *keyword[],int size) void main() { char *keyword[]={"if","else","case", "switch","do","whlie", "for","break","continue"}; sort(keyword,9); print(keyword,9); } void sort(char *keyword[],int size) { int i,j,min_location; char *temp; for(i=0;i<size-1;i++) { min_location=i; for(j=i+1;j<size;j++) if(strcmp(keyword[min_location],keyword[j])>0) min_location=j; if(min_location!=i) { temp=keyword[i]; keyword[i]=keyword[min_location]; keyword[min_location]=temp; } } } void print(char *keyword[],int size) { int i; for(i=0;i<size;i++) printf("\n%s",*(keyword+i)); } (5) #include<stdio.h> void fun_char(char str1[],char str2[],char str3[]); void main() { char str1[80],str2[80],str3[80],c,i; printf("\nPlease enter 2 string:"); scanf("%s%s",str1,str2); fun_char(str1,str2,str3); printf("Third string is %s.",str3); } void fun_char(char *str1,char *str2,char *str3) { int i,j,k,flag; i=0,k=0; while(*(str1+i)!='\0') { j=0; flag=1; while(*(str2+j)!='\0'&&flag==1) { if(*(str2+j)==*(str1+i)) flag=0; j++; } if(flag) {*(str3+k)=*(str1+i); k++;} i++; } *(str3+k)='\0'; } (6) #include<stdio.h> int count_word(char *str); void main() { char str1[80],c,res; puts("\nPlease enter a string:"); gets(str1); printf("There are %d words in this sentence",count_word(str1)); } int count_word(char *str) { int count ,flag; char *p; count=0; flag=0; p=str; while(*p!='\0') { if(*p==' ') flag=0; else if(flag==0) { flag=1; count++; } p++; } return count; } (7) #include<stdio.h> #include<string.h> char *encrypt(char *string); char *decrypt(char *string); main() { char item[80]; char *point; char *pEncrypted; char *pDecrype; printf("Please enter the string need to encrypt:\n"); gets(item); point=item; pEncrypted=encrypt(point); printf("\nThe string after encrypted is:\n%s\n",pEncrypted); pDecrype=decrypt(pEncrypted); printf("\nThe string after decrypted is:\n%s\n",pDecrype); free(pEncrypted); free(pDecrype); } char *encrypt(char *string) { char *q,*t; q=(char *)malloc(sizeof(char)*80); if(!q) { printf("No place to malloc!"); return 0; } t=q; while(*string!='\0') { *q=*string-2; string++; q++; } *q='\0'; return t; } char *decrypt(char *string) { char *q,*t; q=(char *)malloc(sizeof(char)*80); if(!q) { printf("No place to malloc!"); return 0; } t=q; while(*string!='\0') { *q=*string+2; string++; q++; } *q='\0'; return t; } 第七章 1、选择题 (1)D(2)D(3)D(4)C(5)D(6)C(7)C(8)B(9)C(10)C(11)B(12)C (13)B(14)A(15)A(16)C 2、程序分析题 (1) Ling ning:19
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服