C语言程序设计第三版谭浩强课后习题答案完整版
更新时间:2023-10-10 01:57:01 阅读量: 综合文库 文档下载
C语言程序设计第三版谭浩强
课后习题答案完整版
第一章
1.5请参照本章例题,编写一个C程序,输出以下信息: 解:
#include
{ char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; ************************** Very Good! ************************** 解: mian()
{printf(“**************************”); printf(“\\n”); printf(“Very Good!\\n”); printf(“\\n”);
printf(“**************************”); }
1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。 解: mian()
{int a,b,c,max;
printf(“请输入三个数a,b,c:\\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max
printf(“最大数为:“%d”,max); }
第三章
3.6写出以下程序运行的结果。 main()
{char c1=?a?,c2=?b?,c3=?c?,c4=?\\101?,c5=?\\116?; printf(“a?%c\\tc%c\\tabc\\n”,c1,c2,c3); printf(“\\t\\b%c %c”,c4,c5); }
解:
aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN
3.7 要将\译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母\后面第4个字母是\.\代替\。因此,\应译为\。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
c1+=4; c2+=4; c3+=4; c4+=4; c5+=4;
printf(\密码是%c%c%c%c%c\\n\ }
运行结果: 密码是Glmre
3.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.5
3.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,10
3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。
(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a (5) a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解:
(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0
第四章
4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5
x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)
1
c2=ˊbˊ_or_98(ASCII) main()
{int a=3,b=4,c=5;
long int u=51274,n=128765; float x=1.2,y=2.4,z=3.6; char c1=?a?,c2=?b?;
printf(\ printf(\
printf(\,y+z,z+x); printf(\
printf(\n\ printf(\n\ }
4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入? main() {
int a,b;float x,y;char c1c2; scanf(\,&a,&b); scanf(\,&y); scanf(\,&c1,&c2); }
a=3_b=7
_x=8.5_y=71.82 _c1=A_c2=a
4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。
main()
{float r,h,C1,Sa,Sb,Va,Vb; scanf(\ C1=2*3.14*r; Sa=3.14*r*r; Sb=4*Sa;
Va=4*3.14*r*r*r/3; Vb=Sa*h;
printf(\ printf(\a=%.2f\\nVb=%.2f\\n\a,Vb); }
4.9输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9
输出要求有文字说明,取位2小数。 main()
{float F,c;
scanf(\ c=5*(F-32)/9; printf(\ }
4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如: char c1,c2; 与
int c1,c2;
是否无条件的等价? #include\ main()
{char c1,c2;
c1=getchar();c2=getchar();
putchar(c1);putchar(?\\n?);putchar(c2);putchar(?\\n?); }
#include\ main()
{char c1,c2;
c1=getchar();c2=getchar();
printf(\ printf(\ }
第五章
5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?
解:略。
5.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如3&&5的值为“真”,系统给出3&&5的值为1。
5.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1) a+b>c&&b==c (2) a||b+c&&b-c
2
(3) !(a>b)&&!c||1
(4) !(x=a)&&(y=b)&&0 (5) !(a+b)+c-1&&b+c/2 解: (1) 0 (2) 1 (3) 1 (4) 0 (5) 1
5.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。 解: 方法一
#include
printf(\请输入3个整数:\ scanf(\ if(a
if(b else if(a 方法二:使用条件表达式,可以使程序更加简明、清晰。 程序如下: #include { int a,b,c,temp,max; printf(\请输入3个整数:\ scanf(\ temp=(a>b)?a:b; /* 将a和b中的大者存人temp中 */ max=(temp>c)?temp:c; /* 将a和b中的大者与c比较,取最大者*/ printf(\个整数的最大数是%d\\n”,max); } 5.5 有一函数: 写一程序,输入x值,输出y值。 解: #include main() {int x,y; printf(\输入x:\ scanf(\ if(x<1) /* x<1 */ { y=x; printf(\ y=x=%d\\n\ } else if (x<10) /* 1≤x-10 */ { y=2*x-1; printf(\ y=2*x-1=%d\\n\ } else /* x≥10 */ { y=3*x-11; printf(\ y=3*x-11=%d\\n\ } } 5.6 给一个百分制成绩,要求输出等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~90分为’B’,70~79分为’C’,60分以下为’D’。 解: 程序如下: #include { float score; char grade; printf(\请输入学生成绩:\ scanf(\ while(score>100||(score<0) { printf(\输入有误,请重新输入:\ scanf(\ } switch((int)(score/10)) { case 10: case 9: grade=?A?;break; case 8: grade=?B?;break; case 7: grade=?C?;break; case 6: grade=?D?;break; case 5: case 4: case 3: case 2: case 1: case 0: grade=?E?; } printf(\成绩是%5.1f,相应的等级是%c。\\n\ 3 } 说明:对输入的数据进行检查,如小于0或大于100,要求重新输入。(int)(score/10)的作用是将 (score/10) 的值进行强制类型转换,得到一个整型值。 5.7 给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数字。例如原数为321,应输出123。 解: #include { long int num; int indiv,ten,hundred,thousand,ten_thousand,place; /*分别代表个位、十位、百位、千位、万位和位数*/ printf(\请输入一个整数(0~99999):\ scanf(\ if (num>9999) place=5; else if(num>999) place=4; else if(num>99) place=3; else if(num>9) place=2; else place=1; printf(\ ten_thousand=num/10000; thousand=num/1000; hundred=num/100; ten=num0/10; indiv=num; switch(place) { case 5: printf(\n,indiv); printf(\反序数字为;\ printf(%usand); break; case 4: printf(\ printf(\反序数字为:\ printf(\ break; case 3: printf(\ printf(\反序数字为:\ printf(\ break; case 2: printf(\ printf(\反序数字为:\ printf(\ break; case 1: printf(\ printf(\反序数字为:\ printf(\ break; } } 5.8 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10% ;利润高于10万元,低于20万元(1000001000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。 解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。 (1) 用if语句编程序。 #include float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; /*利润为10万元时的奖金*/ bon2=bon1+100000*0.075; /*利润为20万元时的奖金*/ bon4=bon2+200000*0.05; /*利润为40万元时的奖金*/ bon6=bon4+200000*0.03; /*利润为60万元时的奖金*/ bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/ printf(\请输入利润i:\ scanf(\ if(i<=100000) bonus=i*0.1; /*利润在10万元以内按0.1提成奖金*/ else if(i<=200000) 4 bonus=bon1+(i-100000)*0.075; /*利润在10万至20万元时的奖金*/ else if(i<=400000) bonus=bon2+(i-200000)*0.05; /*利润在20万至40万元时的奖金*/ else if(i<=600000) bonus=bon4+(i-400000)*0.03; /*利润在40万至60万元时的奖金*/ else if(i<=1000000) bonus=bon6+(i-600000)*0.015; /*利润在60万至100万元时的奖金*/ else bonus=bon10+(i-1000000)*0.01; /*利润在100万元以上时的奖金*/ printf(”奖金是.2f\\n\ } 此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20万时,奖金应由两部分组成:①利润为10万元时应得的奖金。即100000ⅹ0.1;②10万元以上部分应得的奖金。即(num-100000)ⅹ0.075。同理,20万~40万这个区间的奖金也应由两部分组成:①利润为20万元时应得的奖金,即100000ⅹ0.1ⅹ10万ⅹ0.075;②20万元以上部分应得的奖金,即(num-200000)ⅹ0.05。程序中先把10万、20万、40万、60万、100万各关键点的奖金计算出来,即bon1、bon2、bon4、bon6、hon10;然后再加上各区间附加部分的奖金。 (2) 用switch语句编程序。 输入利润i,确定相应的提成等级branch 根据branch确定奖金值 0 奖金=i*0.1 1 奖金=bon1+(i-105)*0.075 2 奖金=bon2+(i-2*105)*0.05 3 4 奖金=bon4+(i-4*105)*0.03 5 6 奖金=bon6+(i-6*105)*0.015 7 8 9 10 奖金=bon10+(i-106)*0.01 输出奖金 #include float bonus, bon1, bon2, bon4, bon6, bon10; int c; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf(\请输入利润i:\ scanf(\ c=i/100000; if(c>10) c=10; switch(c) { case 0: bonus=1*0.1;break; case 1: bonus=bon1+(i-100000)*0.075;break; case 2 : case 3: bonus=bon2+(i-200000)*0.05; break; case 4: case 5: bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9: bonus=bon6+(i-600000)*0.015;break; case 10: bonus=bon10+(i-1000000)*0.01; } printf(\奖金是.2f\ } 5.9 输入4个整数,要求按由大到小的顺序输出。 解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。 #include { int t,a,b,c,d; printf(\请输入4个整数:\ scanf(\ printf(\ if(a>b) {t=a; a=b; b=t;} if(a>c) {t=a; a=c; c=t;} if(a>d) {t=a; a=d; d=t;} if(b>c) {t=a; b=c; c=t;} if(b>d) {t=b; b=d; d=t;} if(c>d) {t=c; c=d; d=t;} printf(\排序结果如下:\\n\ printf(\ } 5 5.10 有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。 程序如下: #include x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4; printf(\请输入一个点(x,y):\ scanf(\ d1=(x-x1)*(x-x1)+(y-y1)*(y-y1); /*求该点到各中心点的距离*/ d2=(x-x2)*(x-x2)+(y+y2)*(y+y2); d3=(x+x3)*(x+x3)+(y-y3)*(y-y3); d4=(x+x4)*(x-x4)*(y+y4)*(y+y4); if(d1>1&&d2>1&&d3>1&&d4>1) h=0; /*判断该点是否在塔外*/ printf(\该点高度为%d\\n\ } 第六章 循环控制 6.1输入两个正整数m和n,求其最大公约数和最小公倍数。 main() {long m,n,i=1,j,s; scanf(\ for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) s=i;} if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); printf(\ } 6.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include\ main() {char c;int i=0,j=0,k=0,l=0; while((c=getchar())!=?\\n?) {if(c>=65&&c<=90||c>=97&&c<=122) i++; else if(c>=48&&c<=57) j++; else if(c==32) k++; else l++;} printf(\ } 6.3求Sn=a+aa+aaa+?+aa?aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。 #include\ main() {int n,sum=0,i=1,s=2; scanf(\ while(i<=n) {sum=sum+s;s=s+2*pow(10,i); i++;} printf(\ } 6.4 求 ,(即求1!+2!+3!+4!+5!+?+20!) main() {int n,i=1;long sum=0,s=1; scanf(\ while(i<=n) {s=s*i;sum=sum+s;i++;} printf(\ } 6.5 求 main() {double i=1,j=1,k=1,s1=0,s2=0,s3=0,sum; for(;i<=100;i++) s1=s1+i; for(;j<=50;j++) s2=s2+j*j; for(;k<=10;k++) s3=s3+1/k; sum=s1+s2+s3; printf(\ } 6.6打印出所有\水仙花数\,所谓\水仙花数\是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 #include\ main() {int x=100,a,b,c; while(x>=100&&x<1000) {a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b; if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf(\ } 6.7一个数如果恰好等于它的因子之和,这个数就称为\完数\。例如,6的因子为1、2、3,而6=1+2+3,因此6是\完数\。编程序找出1000之内的所有完数,并按下面格式 6 输出其因子: 6 its factors are 1、2、3 main() {int m,i,j,s; for(m=6;m<10000;m++) 6.10猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下{s=1; for(i=2;i {printf(\its fastors are 1 \if(m%j==0) printf(\ } } 或 main() {int m,i,j,s; for(m=6;m<1000;m++) {s=m-1; for(i=2;i {printf(\its fastors are 1 \if(m%j==0) printf(\ } } 6.8有一分数序列: 求出这个数列的前20项之和。 main() {int i=1,n;double t,x=1,y=2,s,sum=0; scanf(\ while(i<=n) {s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;} printf(\ } 6.9一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高? main() {int i,n;double h=100,s=100; scanf(\ for(i=1;i<=n;i++) {h*=0.5;if(i==1) continue;s=2*h+s;} printf(\ } 一个桃子了。求第一天共摘多少桃子。 main() {int i=1,sum=0; for(;i<=10;sum=2*sum+1,i++); printf(\ } 6.11用迭代法求 。求平方根的迭代公式为: 要求前后两次求出的得差的绝对值少于0.00001。#include\ main() {float x0,x1,a; scanf(\ x1=a/2; do {x0=x1;x1=(x0+a/x0)/2;} while(fabs(x0-x1)>=0.00001); printf(\ } 6.12 用牛顿迭代法求方程在1.5附近的根。 main() {double x,y;x=1.5; do{y=2*x*x*x-4*x*x+3*x-6; x=x-y/(6*x*x-8*x+3);} while(y!=0); printf(\ } 6.13用二分法求方程在(-10,10)之间的根 main() {double x1,x2,y1,y2;x1=-10;x2=10; do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6; x1=x1-y1/(6*x1*x1-8*x1+3);} while(y1!=0); do {y2=2*x2*x2*x2-4*x2*x2+3*x2-6; x2=x2-y2/(6*x2*x2-8*x2+3);} while(y2!=0); printf(\ 7 } 6.14打印以下图案 * * * * * * * * * * * * * * * * {static int i,j,k,a[98]; for(i=2;i<100;i++) {a[i]=i;k=sqrt(i); for(j=2;j<=a[i];j++) if(j if(j>=k+1) * * * * * * * * * #include\ main() {int i,j,k; for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++) printf(\ for(k=0;k<=2*i;k++) printf(\ printf(\ } for(i=0;i<=2;i++) {for(j=0;j<=i;j++) printf(\ for(k=0;k<=4-2*i;k++) printf(\ printf(\ } } 第七章 7.1 用筛法求之内的素数。 main() { int i,j,a[100]; for(i=2;i<100;i++) { a[i]=i; for(j=2;j<=i;j++) {if(j if(a[i]%j==0) break; if(a[i]-j==0) printf(\ } } printf(\ } 或 #include\ main() 数组 printf(\ } printf(\ } 7.2用选择法对10个整数从小到大排序。 main() { int i,j,a[10],t; for(i=0;i<10;i++) scanf(\ for(j=1;j<10;j++) for(i=0;i<=9-j;i++) if(a[i]>a[i+1]) {t=a[i+1];a[i+1]=a[i];a[i]=t;} for(i=0;i<10;i++) printf(\ } 或 main() {static int a[10],i,j,k,t; for(i=1;i<11;i++) scanf(\ for(j=1;j<10;j++) for(i=1;i<=10-j;j++) if (a[i]>a[i+1]) {t=a[i+1];a[i+1]=a[i];a[i]=t;} for(i=1;i<11;i++) printf(\ printf(\ } 7.3求一个3×3矩阵对角线元素之和。 main() {int i=0,j=0,a[3][3],s1,s2; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(\ s1=a[0][0]+a[1][1]+a[2][2]; s2=a[0][2]+a[1][1]+a[2][0]; printf(\ } 或 8 main() { static int i,j,s1,s2,a[3][3]; for(i=1;i<=3;i++) for(j=1;j<=3;j++) scanf(\ s1=a[1][1]+a[2][2]+a[3][3]; s2=a[1][3]+a[2][2]+a[3][1]; printf(\ } 7.4已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。 main() { static int a[10]={1,7,8,17,23,24,59,62,101};int i,j,t; scanf(\ for(i=9;i>0;i--) if(a[i] {t=a[i-1];a[i-1]=a[i];a[i]=t;} for(i=0;i<10;i++) printf(\ } 或 main() { static int a[5]={1,4,5,6,7}; int i,t,b; scanf(\ for(i=0;i<5;i++) {if(b<=a[i]) {t=a[i];a[i]=b;b=t;} printf(\ printf(\ } 7.5将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。 main() { int i,b[10]; for(i=0;i<10;i++) scanf(\ for(i=9;i>-1;i--) printf(\ printf(\ 7.6打印出以下杨辉三角形(要求打印出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ∶ ∶ main() { static int m,n,k,b[15][15]; b[0][1]=1; for(m=1;m<15;m++) {for(n=1;n<=m;n++) { b[m][n]=b[m-1][n-1]+b[m-1][n]; printf(\ } } } 或 main() { int i,j,n,k,a[10][10]; static a[][1]={{1},{1},{1},{1},{1},{1},{1},{1},{1},{1}}; a[1][1]=1; for(k=2,k<11;k++) for(i=2;i<=k;i++) for(j=2;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(k=1;k<11;k++) for(i=1;i<=k;i++) for(j=1;j<=i;j++) printf(\ } 7.7 打印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 要求打印出由1~n2的自然数构成的魔方阵。 解: #include { int a[16][16],i,i,k,p,m,n; p=1; while(p==1) /*要求阶数为1~15的商数*/ { printf(\~15):\ scanf(\ if((n!=0)&&(n<=15)&&(n%2!=0)) p=0; } for(i=1;i<=n;i++) /*初始化*/ 9 for(j=1;j<=n;j++) a[i][j]=0; j=n/2+1; /*建立魔方阵*/ a[1][j]=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; if((i<1)&&(j>n)) { i=i+2; j=j-1; } else { if(i<1) i=n; if(j>n) j=1; } if(a[i][j]==0) a[i][j]=k; else { i=i+2; j=j-1; a[i][j]=k; } } for(i=1;i<=n;i++) /*输出魔方阵*/ { for(j=1;j<=n;j++) printf(\ printf(\ } } 7.8找出一个二位数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。 main() {int a[5][5],b[5],c[5],d[5][5],k=0,l=0;int i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf(\ for(i=0;i<5;i++) for(j=0;j<5;j++,a[i][j]=d[i][j]); for(i=0,k=0;i<5;i++,k++) for(j=0;j<4;j++) {if(a[i][j]>=a[i][j+1]) b[k]=a[i][j+1]=a[i][j]; else b[k]=a[i][j+1]; } for(j=0,l=0;j<5;j++,l++) for(i=0;i<4;i++) {if(a[i][j]<=a[i+1][j]) c[l]=a[i+1][j]=a[i][j]; else c[l]=a[i+1][j]; } for(i=0,k=0;i<5;i++,k++) for(j=0,l=0;j<5;j++,l++) if(d[i][j]-b[k]==0) {if(d[i][j]-c[l]==0) printf(\ else printf(\ } } 7.9有个15数按由小到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数组中第几个元素的值。如果该数不在数组中,则打印出\无此数\ #include\ main() {static int i,j,m,a[15]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812}; scanf(\ for(j=0;j<15;j++) printf(\ printf(\ i=7; while(fabs(i-7)<8) {if(m {printf(\ else if(m>a[7]) {if(a[i]-m==0) {printf(\ else printf(\ } if(fabs(i-7)-8==0) printf(\ } 7.10有一篇文章,共有3行文字,每行有个80字符。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。 main() {int i,j=0,k=0,l=0,m=0,n=0;char str0[301],str1[100],str2[100],str3[100]; 10 gets(str1);gets(str2);gets(str3); strcat(str0,str1);strcat(str0,str2);strcat(str0,str3); for(i=0;str0[i]!=?\\0?;i++) {if(str0[i]>=65&&str0[i]<=90) j++; else if(str0[i]>=97&&str0[i]<=122) k++; else if(str0[i]>=48&&str0[i]<=57) l++; else if(str0[i]==32) m++; else n++;} printf(\ printf(\ } 7.11打印以下图案 * * * * * * * * * * * * * * * * * * * * * * * * * main() {int i,j,k;char a[5][5]; for(i=0;i<5;i++) {for(j=0;j<5;j++) {a[i][j]=?*?;printf(\ printf(\ for(k=1;k<=i+1;k++) printf(\ printf(\ } 7.12有一行电文译文下面规律译成密码: A->Z a->z B->Y b->y C->X c->x ? 即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码回原文,并打印出密码和原文。 main() { int i;char str1[100],str2[100]; gets(str1); for(i=0;str1[i]!=?\\0?;i++) if(str1[i]>=65&&str1[i]<=90) str2[i]=155-str1[i]; else if(str1[i]>=97&&str1[i]<=122) str2[i]=219-str1[i]; else str2[i]=str1[i]; printf(\ } 7.13编一程序,将两个字符串连接起来,不要strcat函数。 main() { int i,j;char str1[100],str2[100],str3[201]; gets(str1); gets(str2); for(i=0;str1[i]!=?\\0?;i++) str3[i]=str1[i]; for(j=0;str2[j]!=?\\0?;j++) str3[j+i]=str2[j]; printf(\ } 7.14编一个程序,将两个字符串S1和S2比较,如果S1>S2,输出一个正数;S1=S2,输出0;S1 char s1[100],s2[100]; printf(\:\ gets(s1); printf(\:\ gets(s2); i=0; while(s1[i]==s2[i]&&s1[i]!=?\\0?) i++; if(s1[i]==?\\0?&&s2[i]==?0?) resu=0; else resu=s1[i]-s2[i]; printf(\:%d\\n\ } 7.15 编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中,不用strcpy函数。拷贝时,’\\0’也要拷贝过去,’\\0’后面的字符不拷贝。 解: #include \ main() { char s1[80],s2[80]; int i; printf(\:\ 11 scanf(\ for(i=0;i printf(\:%s\\n\ } 第八章 函数 1.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf(\ scanf(\ max=maxyueshu(a,b); min=minbeishu(a,b); printf(\ } 8.2求方程 的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include\ float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf(\ } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf(\ } float xugen(m,n,k) float m,n,k; {float x,y; x=-n/(2*m); y=sqrt(-k)/(2*m); printf(\xugen is x1=%.3f+%.3fi and x2=%.3f-%.3fi\\n\ } main() {float a,b,c,q; printf(\ scanf(\ printf(\ q=b*b-4*a*c; if(q>0) yishigen(a,b,q); else if(q==0) denggen(a,b); else xugen(a,b,q); } 8.2写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 psushu(m) int m; {int i=2,t; for(;i<=m;i++) if(m%i==0&&i main() {int a,s; printf(\ scanf(\ s=psushu(a); if(s==1) printf(\ else printf(\ } 8.4写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 int zhuangzhi(b) int b[3][3]; {int i,j,t; 12 for(i=0;i<3;i++) for(j=0;j>=i&&j<3-i;j++) {t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;} } main() {int a[3][3];int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(\ for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\ printf(\ zhuangzhi(a); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\ printf(\ } 8.5写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。 main() {char str0[100]; gets(str0); fanxu(str0); puts(str0); } fanxu(str1) char str1[100]; {int i,t,j; char str2[100];strcpy(str2,str1); t=strlen(str1); for(i=0,j=t-1;j>-1;i++,j--) str1[i]=str2[j]; } 8.6写一函数,将两个字符串连接。 lianjie(a,b) char a[100],b[100]; {strcat(a,b); } main() {char str1[100],str2[100]; gets(str1);gets(str2); lianjie(str1,str2); puts(str1); } 8.7写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。 fuzhi(a,b) char a[100],b[100]; {int i,j=0; for(i=0;a[i]!=?\\0?;i++) if(a[i]==97||a[i]==101||a[i]==105||a[i]==111||a[i]==117||a[i]==65|| a[i]==69||a[i]==73||a[i]==85) {b[j]=a[i];j++;} } main() {char str1[100],str2[100]; gets(str1); fuzhi(str1,str2); puts(str2); } 8.8写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出\。 char f(b) char b[4]; {int i=0; for(;i<4;i++) {printf(\ printf(\ printf(\ } main() {int a,u,v,w,t;char c[4]; scanf(\ u=a*0.001;v=0.01*(a-1000*u);w=(a-1000*u-100*v)*0.1;t=a-1000*u-100*v-10*w; c[0]=u+48; c[1]=v+48; c[2]=w+48; c[3]=t+48; f(c); } 8.9编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 char tongji(str0,b) char str0[100]; int b[4]; {int i; for(i=0;str0[i]!=?\\0?;i++) 13 {if(str0[i]>=65&&str0[i]<=90||str0[i]>=97&&str0[i]<=122) b[0]++; else if(str0[i]>=48&&str0[i]<=57) b[1]++; else if(str0[i]==32) b[2]++; else b[3]++;} } main() {char str1[100];static int i,a[4]; gets(str1); tongji(str1,a); printf(\ for(i=0;i<4;i++) printf(\ } 8.10写一函数,输入一行字符,将此字符串中最长的单词输出。 cechang(str1,word0) char str1[100],word0[15]; {int i=0,j=0,t=0; static char word1[15]; for(;str1[i]!=?\\0?;i++) {if(!(str1[i]>=97&&str1[i]<=122||str1[i]>=65&&str1[i]<=90)) {t=j;j=0;continue;} word1[j]=str1[i];j++; if(j>=t) strcpy(word0,word1);} } main() {char str0[100],longword[15]; gets(str0); cechang(str0,longword); puts(longword); } 8.11写一函数用起泡法对输入的个字符按由小到大的顺序排列。 int paixu(x) int x[]; {int i,j,t; for(j=1;j<10;j++) for(i=0;i<=9-j;i++) if(x[i]>x[i+1]) {t=x[i+1];x[i+1]=x[i];x[i]=t;} } main() {int y[10];int i; for(i=0;i<10;i++) scanf(\ paixu(y); for(i=0;i<10;i++) printf(\ printf(\ } 8.12用牛顿迭代法求根。方程为: ,系数a,b,c,d由主函数输入。求X在1附近的一个实根。求出后由主函数输出。 double qigen(s,t,u,v) int s,t,u,v; {double x,y;x=1; do{y=s*x*x*x+t*x*x+u*x+v; x=x-y/(3*s*x*x+2*t*x+u);} while(y!=0); return x; } main() {int a,b,c,d;double x; scanf(\ x=qigen(a,b,c,d); printf(\ } 8.13用递归方法求n阶勒让德多项式的值递归公式为 float p(x0,n) int n;float x0; {float y; if(n==0||n==1) if(n==1) y=x0;else y=1; else y=((2*n-1)*x0*p(x0,n-1)-(n-1)*p(x0,n-2))/n; return(y); } main() {float x,y0;int a,i; scanf(\ y0=p(x,a); printf(\ } 8.14输入10个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出最高分所对应的学生和课程;④求平均分方差:δ=[SXi^2]/n-(SXi/n)^2,为一学生的平均分 float x1[10],x2[5]; 14 float pp(),cc(),find(),xx(); main() {char name[10][20],class[5][20];float score[10][5],o,k=0,max[5];int a[5],i,j; for(i=0;i<10;i++) gets(name[i]); for(j=0;j<5;j++) gets(class[j]); for(i=0;i<10;i++) for(j=0;j<5;j++) scanf(\ pp(score); float q; {float f=0,e=0;int i; for(i=0;i<10;i++) {e=x1[i]*x1[i]+e; f=f+x1[i];} q=e/10-(f/10)*(f/10); return(q); } 8.15写几个函数:①输个职工的姓名和职工号;②按职工号由小到大顺序排序,姓名顺序也随之调整;③要求输入一个职工号,用折半法找出该职工的姓名,从主函数输入cc(score); find(score,max,a); o=xx(k); for(i=0;i<10;i++) {puts(name[i]); printf(\ for(j=0;j<5;j++) {puts(class[j]);printf(\ for(j=0;j<5;j++) {printf(\ puts(name[a[j]]); puts(class[j]);} printf(\ } float pp(f) float f[10][5]; {float sum=0;int i,j; for(i=0,sum=0;i<10;i++) {for(j=0;j<5;j++) sum=sum+f[i][j]; x1[i]=sum/5;} } float cc(y) float y[10][5]; {float sum=0;int i,j; for(j=0;j<5;j++) {for(i=0;i<10;i++) sum=sum+y[i][j]; x1[j]=sum/10;} } float find(z,s,t) float z[10][5],s[5];int t[5]; {int i,j; for(j=0,s[j]=z[0][j];j<5;j++) for(i=0;i<10;i++) if(s[j] float xx(q) 要查找的职工号,输出该职工姓名。 #define N 10 find(a,b) int a[],b[]; {int i,j,s,t,c[N][2]; for(i=0;i {c[i][1]=a[i];c[i][1]=i;} for(i=0;i {t=c[i][0];c[i][0]=c[i+1][0];c[i+1][0]=t; s=c[i][1];c[i][1]=c[i+1][1];c[i+1][1]=s;} for(i=0;i lookfor(h,k) int h[],k; {int i,j; for(i=0;i main() {int number[N],x[N],i,j,u,p;char name[N][20]; for(i=0;i scanf(\ scanf(\ find(number,x); u=lookfor(number,p); for(i=0;i {printf(\ puts(name[x[i]]);} puts(name[x[u]]); } 15 8.16写一函数,输入一个十六进制数,输出相应的十进制数。 #include\ int x; ff(shu) char shu[]; {int i=strlen(shu)-1,sum=0; for(;i>-1;i++) {if {if(48<=shu[i]<=57) sum=sum+(shu[i]-48)*pow(16,(i-1)); else if(65<=shu[i]<=90) sum=sum+(shu[i]-55)*pow(16,(i-1)); else if(97<=shu[i]<=102) sum=sum+(shu[i]-87)*pow(16,(i-1)); {int j,i; for(i=o-1,j=0;i>-1;i--,j++) x[i]=(int)((unsigned long)(m/pow(10,j)))+48; return; } main() {unsigned long a,b;int j,i; scanf(\ for(j=0,b=a;b>0.1;j++,b/=10); pf(a,j); puts(x);printf(\ x=1;} else x=0; return x; } main() {char shufu[100];int s; gets(shufu);s=ff(shufu); if(x) printf(\ else printf(\ } 8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串\。n的位数不确定,可以是任意位数的整数。 #include\ int x[10]; pf(m,n) unsigned long m;int n; {int y; if(n==0) {y=(int)(m);x[0]=y;} else {y=(unsigned long)((m-pf(m,n-1))/pow(10,n));x[n]=y;} return(y); } main() {unsigned long a,b;int i,j,k;char c[11]; scanf(\ for(j=0,b=a;b>0.1;j++,b/=10); pf(a,j-1); for(i=0,k=j-1;i #include\ char x[11]; pf(m,o) unsigned long m;int o; 或 #include\ int x[10];unsigned long m; pf(n) int n; {int y; if(n==0) {y=m;x[0]=y;} else {y=(unsigned long)((m-pf(n-1))/pow(10,n));x[n]=y;} return(y); } main() {unsigned long a;int i,j,k;char c[11]; scanf(\ for(j=0,a=m;a>0.1;j++,a/=10); pf(j-1); for(i=0,k=j-1;i 8.18给出年、月、日,计算该日是该年的第几天。 int find(x,y,z) int x,y,z; { int i,t,s,days=0; if(x%4==0) t=1; else t=0; for(i=1;i days=days+30+i%2-s; } days=days+z; return(days); } main() {int year,month,date,day; scanf(\ day=find(year,month,date); 16 printf(\TE IS THE %dth DAYS\\n\ } 第九章 编译预处理 9.1定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。 {float a,b,c,t,area; scanf(\ t=SSS(a,b,c); area=AQRT(a,b,c); printf(\ } #define CHANGE(a,b,t) t=a;a=b;b=a main() {int c,d,s; scanf(\ CHANGE(c,d,s); printf(\ } 9.2输入两个整数,求他们相除的余数。用带参的宏来实现,编程序。 #define Q(a,b) a%b main() {int c,d,t; scanf(\ t=Q(c,d); printf(\ } 9.3三角形面积为: 其中S=(a+b+c)/2,a、b、c为三角形的三边。定义两个带参的宏S,一个用来求area,另一个宏用来求。写程序,在程序中用带实参的宏名来求面积area。 #include\ #define SSS(m,n,k) (m+n+k)/2 #define AQRT(m,n,k) sqrt(SSS(m,n,k)*(SSS(m,n,k)-m)*(SSS(m,n,k)-n)*(SSS(m,n,k)-k)) main() {float a,b,c,s,area; scanf(\ s=SSS(a,b,c); area=AQRT(a,b,c); printf(\ } 或 #include\ #define SSS(m,n,k) (m+n+k)*0.5 #define AQRT(m,n,k) sqrt(((m+n+k)/2)*((m+n+k)/2-m)*((m+n+k)/2-n)*((m+n+k)/2-k)) main() 或 #include\ #define SSS(m,n,k) ((m+n+k)/2) #define AQRT(m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k) sqrt(SSS*(SSS-m)*(SSS-n)*(SSS-k)) main() {float a,b,c,t,area; scanf(\ t=SSS(a,b,c); area=AQRT(a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c); printf(\ } 9.4给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) 在程序中用以下语句输出结果: if (LEAP_YEAR(year)) printf(\ else printf (\ #define LEAPYEAR(y) y%4 main() {int y; scanf(\ if(LEAPYEAR(y)) printf(\ else printf(\ } 9.6请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用\格式输出。 #define PR1(x) printf(\ #define PR2(x) printf(\ #define PR3(x) printf(\ main() {float a;scanf(\ PR1(a);PR2(a);PR3(a); } 9.7设计所需的各种各样的输出格式(包括整数、实属、字符串等),用一个文件名\,把信息都放到这个文件内,另编一个程序文件,用命令#include \以确保能使用这些格式。 17 分别用函数和带参的宏,从三个数中找出最大的数。 #define MAX(a,b,c) (a>((b>c)? b:c))? a:((b>c)? b:c) main() {float x,y,z,t; scanf(\ t=MAX(x,y,z); printf(\ } 9.10用条件编译方法实现以下功能: 输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如’a’变成’b’??’z’变成’a’其它字符不变)。用命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若: #define CHANGE 0 则不译为密码,按原码输出。 #define CHANGE 1 main() {char str[80],c;int i=0; gets(str); while(str[i]!=?\\0?) { #if CHANGE if(str[i]==90||str[i]==122) str[i]=str[i]-25; else if(str[i]>=65&&str[i]<90||str[i]>=97&&str[i]<122) str[i]=str[i]+1; #endif i++; } puts(str); } 或 #define CHANGE 1 main() {char str[80],*c;int i=0; gets(str);c=str; while(*c!=?\\0?) { #if CHANGE if(*c==90||*c==122) *c=*c-25; else if(*c>=65&&*c<90||*c>=97&&*c<122) *c=*c+1; #endif c++; } puts(str); } 第十章 指针 10.1输入三个整数,按由小到大的顺序输出。 main() { int a,b,c,*p1,*p2,*p3,t; scanf(\ p1=&a;p2=&b;p3=&c; if(*p1>*p2) {t=p1;p1=p2;p2=t;} if(*p1>*p3) {t=p1;p1=p3;p3=t;} if(*p2>*p3) {t=p2;p2=p3;p3=t;} printf(\ } 或 main() {int a,b,c,*p1,*p2,*p3,t; scanf(\ p1=&a;p2=&b;p3=&c; if(a>b) {t=*p1;*p1=*p2;*p2=t;} if(a>c) {t=*p1;*p1=*p3;*p3=t;} if(b>c) {t=*p2;*p2=*p3;*p3=t;} printf(\ } 10.2输入三个字符串,按由小到大的顺序输出 #define N 3 #define M 20 main() {char str0[N][M],str1[M],*p,*q; int i,l,m,n; q=str0; for(;p l=strcmp(q,q+1); if(l>0) {strcpy(str1,q);strcpy(q,q+1);strcpy(q+1,str1);} m=strcmp(q,q+2); if(m>0) {strcpy(str1,q);strcpy(q,q+2);strcpy(q+2,str1);} n=strcmp(q+1,q+2); if(n>0) {strcpy(str1,q);strcpy(q+1,q+2);strcpy(q+2,q+1);} 18 for(p=q;p 10.3输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数;①输入10个数;②进行处理;③输出10个数。 f(x,n) int x[],n; {int *p0,*p1,i,j,t,y; i=j=x[0];p0=p1=x; for(y=0;y {i=x[y];p0=&x[y];} else if(x[y] {j=x[y];p1=&x[y];}} t=*p0;*p0=x[n-1];x[n-1]=t; t=*p1;*p1=x[0];x[0]=t; return; } main() {int a[10],u,*r; for(u=0;u<10;u++) scanf(\ f(a,10); for(u=0,r=a;u<10;u++,r++) printf(\ printf(\ } 10.4有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。 #define N 10 void shift(p,x) float *p;int x; {float a[N],*q,*o;int i; o=a;q=p; for(i=0;i for(i=0;i {float shuzhu[N],*u,*v; int h,i;u=v=shuzhu; scanf(\ for(;u for(u=v;u 10.5有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。 #define N 5 main() {int i,j,k,a[N+1],*p; for(i=0,p=a;p<=a+N;i++,p++) *p=i; p=a+1;k=N; for(i=0,j=1;k!=1;j++) {if(p>(a+N)) p=a+1; if(*p!=0) i++; if((i-3)==0) {*p=0;i=0;k--;} p++; } for(i=1;i<=N;i++) if(a[i]!=0) printf(\ 10.7有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。 #include\ #define N 10 main() {char a[N+1],b[N+1],*p,*q; int m; gets(a); scanf(\ p=a+m;q=b; strcpy(q,p); puts(q); } 10.6写一函数,求一个字符串的长度。在主函数种输入字符串,并输出其长度。 19 第十一章 11.1定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。 解:Struct {int year; int month; int day; }date; main() {int days; printf(“Input year,month,day:”); scanf(“%d,%D,%d”,&date.year,&date.month,&date.day); switch(date.month) {case 1: days=date.day; break; case 2: days=date.day+31; break; case 3: days=date.day+59; break; case 4: days=date.day+90; break; case 5: days=date.day+120; break; case 6: days=date.day+31; break; case 7: days=date.day+181; break; case 8: days=date.day+212; break; case 9: days=date.day+243; break; case 10: days=date.day+273; break; case 11: days=date.day+304; break; case 12: days=date.day+334; break; } if((date.year%4==0&&date.year0!=0||date.year@0==0)&&date.month>=3)days+=1; printf(“\\n%d/%d is the %dth day in%d.”,date.month,data.day,days,date,year); } 11.2写一个函数days,实现上面的计算。由主函数将年、月、日传递给days 函数,计算后将日数传回主函数输出。 解:struct y_m_d {int year: int month; int day; }date; intdays(struct y_m_d date1) {int sum; switch(data.month) {case 1:sum=date1.day; break; case 2:sum=date1.day+31; break; case 3:sum=date1.day+59; break; case 4:sum=date1.day+90; break; case 5:sum=date1.day+120; break; case 6:sum=date1.day+151; break; case 7:sum=date1.day+181; break; case 8:sum=date1.day+212; break; case 9:sum=date1.day+243; break case 10:sum=date1.day+243; break case 11:sum=date1.day+243; break case 12:sum=date1.day+243; break } }; 11.3编写一个函数print,打印一个学生的成绩数,该数组中有5个学生的数据记录,每个记录包括num、name、sore[3],用主函数输入这些记录,用print函数输出这些记录。 解: #define N 5 struct student {char num[6]; char name[8]; int score[4]; }stu[N]; main() {int I,j ; for(I=0;I {printf(“\\Input score of student %d:\\n”,I+1); printf(“no.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) {printf(“score%d:”j+1); scanf(“%d”,&stu[i].score[j]); } printf(“\\n”); } print(stu); } print(struct student stu[6]) {int I,j; printf(“%5ss”,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(“?”,stu[i].score[j]); print(“\\n”); } 11.4在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。 解: #define N 5 struct student {char num[6]; 20
正在阅读:
南开18春学期(1709、1803)《企业文化》在线作业10-09
辽宁省城市排名02-14
暑期社区实践心得体会06-09
(完整版)苯环上取代反应的定位规则04-07
企业宣传报道稿(通用8篇)03-26
2022版中国被套市场现状调研及未来发展趋势预测报告04-14
唐山中厚板材有限公司轧钢区域主厂房土建工程冬季施工方案04-01
园林绿化种植工程施工方法与技术06-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 浩强
- 整版
- 课后
- 习题
- 程序设计
- 答案
- 语言
- 16变化的电磁场习题思考题
- 汇编语言 - 课程设计1
- 回迁房房屋买卖合同
- 年度先进集体、先进个人评比方案
- 教育概论试题A
- 幼儿园卫生保健十项制度汇编
- 最新人教部编版五年级上册第五单元测试试卷(附参考答案)
- 4《Java - Web应用开发实用教程》练习答案
- 2014年高考政治二轮专题复习题型训练(7):体现(反映)类主观题
- 信息论与编码理论-第7章线性分组码-习题解答-20071206
- 第四章 振幅调制解调与混频电路习题解答 - 图文
- 2018版思想道德修养与法律基础绪论和第一章题库思修题库
- DPPH法测定胡萝卜素的抗氧化活性 - 毕业论文
- 生化模拟试题
- 国道路面中修施工组织设计
- 概率部分客观题
- vlh标签详解
- 丽江美食城项目前期市场调研报告 - 图文
- 2.《工程项目管理》总复习 - 图文
- 《五四运动史》读书笔记