分享
分销 收藏 举报 申诉 / 33
播放页_导航下方通栏广告

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

  • 上传人:快乐****生活
  • 文档编号:3057985
  • 上传时间:2024-06-14
  • 格式:DOC
  • 页数:33
  • 大小:87.50KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 课后 习题 答案 吉林大学 版武爱平
    资源描述:
    第一章 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
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:C语言程序设计课后习题答案吉林大学版武爱平.doc
    链接地址:https://www.zixin.com.cn/doc/3057985.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


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

    自信网络  |  ZixinNetwork