1、第一章1.2 有三个数 A、B、C,设计算法,求三个数中最大的数并输出。 (可用自然语言或流程图表示) 。#includevoid main()int a,b,c,max;printf(“please input three numbers:n“);scanf(“%d%d%d“,max=a;if(ba)max=b;if(cmax)max=c;printf(“the answer is %dn“,max);1.3 设计算法,求 N 个整数的平均值。#includevoid main()int N,i;float aver,a,s=0;printf(“please input the amount
2、 of the number:n“);scanf(“%d“,for(i=0;ivoid main()int a,b,l,s;scanf(“%d%d”,l=(a+b)*2;s=a*b;printf(“%d,%d”,l,s); 输入一个字符,输出其 ASCII 代码。#include void main() char a;printf(“please input the char “);scanf(“%c“,printf(“the ASCII is %d“,a); 输入 3 个整数,计算并输出它们的平均值。#includevoid main()int a,b,c;float aver;scanf(
3、“%d%d%d”,aver=float(a+b+c)/3;printf(“%f”,aver); 已知整型变量 a、b、 c 的值,根据以下算式编写程序求 y 的值。 y =3.8(b2+ac) 6a #include #include void main() int a,b,c;printf(“please input the num of a b c: “);scanf(“%d %d %d“,printf(“the y is %f“,(3.8*(pow(b,2)+a*c)/(6*a);5.设 a 和 n 已定义为整型变量,a=12,求下面表达式运算后 a 的值。 a+=a 24 a-=2 1
4、0 a*=2+3 60 a/=a+a 0 a%=(n%=2),n 的值等于 5 0 a+=a-=a*=a 0第三章 1、选择题 1_C_2C _3.C4D5D_二、填空题 1%f_ 2 、 %s 3 、12,56,789.000000 4、6e,16_ 5、1,1,3_三、编程题1编写一个程序,从键盘上输入 3 个数,求其和并输出。#include void main()int a,b,c,d;printf(“please input the num of a,b,c:“);scanf(“%d%d%d“,d=a+b+c;printf(“the sum of a,b and c is %d“,d
5、);2输入一个正整数,分别输出它的八进制和十六进制数形式。#include void main()int m;printf(“please input the m:“);scanf(“%d“,printf(“n ba jin zhi shu zhi shi : %o“,m);printf(“n shi liu jin zhi shu zhi shi : %x“,m);3编程把 11325 秒转换成“小时:分钟:秒”的形式#include void main()int a=11325;int h,m,s;h=a/3600;m=a%3600/60;s=a%3600%60;printf(“%d:%d
6、:%d“,h,m,s);4编程序,求 a+b的值,a,b 为任意数。本题可调用求绝对值的函数fabs,此函数包含在 math.h 文件中。#include #include void main()double a,b;printf(“please input the num of a and b:“);scanf(“%lf%lf“,printf(“n a+|b|= %lf“,a+fabs(b);5 编程序,求平面上两点之间的距离。设第 1 个点的坐标为(x1,y1) ,第 2点的坐标为(x2,y2) ,则这两个点的距离为:d= 221()()xy#include #include void m
7、ain()float x1,y1,x2,y2,d;printf(“n shu ru di 1 ge dian de zuo biao : “);scanf(“%f%f“,printf(“n shu ru di 2 ge dian de zuo biao : “);scanf(“%f%f“,d=sqrt(pow(x1-x2),2)+pow(y1-y2),2);printf(“n ju li d wei : %f “,d);第四章一、阅读程序,回答问题1答案:1 2答案:6 3、 B 4答案:6.000000 5 答案:8 6答案:2 7答案:k=11二、填空 1答案:a=b 或 b=a 或!(a
8、!=b)或 a=b 或 b=a 2答案: (1) void main()int a ;printf(“Please input an integer:“) ;scanf(“%d“,if (a%2=0)printf(“ni shu ru de shu %d shi ou shu . n“,a) ;else printf(“ni shu ru de shu %d shi ji shu . n“,a) ;2编写一个程序,实现功能是:输入一个实数,按 1 输出此数的相反数,按 2输出此数的平方根,按 3 输出此数的平方。#include#includevoid main()double f ;int
9、a ;printf(“qing shu ru yi ge shu :“) ;scanf(“%f“,printf(“n qing shu ru 1 huo 2 huo 3n“) ;printf(“n an 1 shu chu xiang fan shu “) ;printf(“n an 2 shu chu ping fang gen “) ;printf(“n an 3 shu chu ping fang “) ;scanf(“%d“,if (a=1)printf(“%fn“,-f);else if (a=2)printf(“%fn“,sqrt(f);else if (a=3)printf(“%
10、fn“,f*f) ;else printf(“shu ru cuo wu!“) ;3输入字符,输出其类型。ASCII 值小于 32 的为控制字符,在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。#includevoid main()char a;scanf(“%c”,if(a0)printf(“this is a Control Character”);if(a=0printf(“qing shu ru nian, yue, ri:“) ;scanf(“%d,%d,%d“,if (a%4 = 0 else k = 28 ;swit
11、ch(b)case 12: s+=30 ;case 11: s+=31 ;case 10: s+=30 ;case 9 : s+=31 ;case 8 : s+=31 ;case 7 : s+=30 ;case 6 : s+=31 ;case 5 : s+=30 ;case 4 : s+=31 ;case 3 : s+=k ;case 2 : s+=31 ;case 1 : s+=c ;printf(“ni shu ru de shu shi zhe nian de di %d tian.“,s) ;第五章一、单选题 1 C2 C 3 D 4 C5 B 6C7 A8D 9 C 10 C 二、写
12、程序运行结果1答案:1 ,2 ,3 2答案:52 3答案:s=6 4答案:1,-25答案:a=16 y=60 6答案:6三、程序填空1答案:(1) cx=getchar() (2) front!= (3) cx2答案:(1) s=0 (2) m%n=0 (3) m=s3.答案:(1) j=1 (2) kvoid main()int year, k=0 ;for (year = 2000; year#include void main()float pi,a,b;int i=1;a=0;b=1;while(b=0.000001)b=1/(float)(i*i);a+=b;i+;pi=sqrt(6
13、*a);printf(“%fn“,pi);3用 09 之间不同的 3 个数构成一个 3 位数,统计输出共有多少种方法?#includevoid main()int i=0, j=0, k=0,n=0; for (i =1; i void main()int i,j,k ;k=10;for (i=1; ivoid main()int day, x ;x = 1;for (day = 1; day void main() int i, j ,k;for (i=1; ivoid main()int i , j , k ;for (i = 0; i void main()* * * * * * *in
14、t k=1;while( !( (k+3)%5 = 0) printf(“%d“,k) ;9从键盘输入 20 个整型数,统计其中负数个数并求所有正数的平均值。#includevoid main()int a, i , j =0, k=0 ;float s = 0 ;printf(“qing shu ru 20 ge shu: “) ;for (i = 1; i 0) j+ ;s+=a ;s = s/(float)j ;printf(“fu shu de ge shu shi %d.n“,k) ;printf(“zhe shu de ping jun zhi shi %f.n“,s) ;10父亲
15、今年 30 岁,儿子 6 岁,经过多少年后,父亲的年龄是儿子的两倍?#includevoid main()int i,j,k;i=30;j=6;k=0;while(!(i+k=(j+k)*2) k+;printf(“%d“,k) ;第六章一、选择题1_C_ 2C _ 3_D_ 4_C_ 5_C_ 6_B_ 7_D 8. _A_二、填空题 1答案:b!=0 2.答案:15三、 编程题1编写一个求 x 的 y 次方的函数。#includeint func(int x,int y);void main()int a,b,c;printf(“please input the two numbers:
16、n“);scanf(“%d%d“,c=func(a,b);printf(“the answer is n“);printf(“%dn“,c);int func(int x,int y) int i, s=1;for(i=1;i# include void f(char s)int i,j;i=j=0;while(si)if(si!= )sj+=si;i+;sj=0;void main()char s80;gets(s);f(s);puts(s);3编写函数,判断一个字符串是否是回文,如是返回 1,否则返回-1(回文是指这个字符串逆置后不变,如 aba 就是回文。 )# include # in
17、clude int f(char s,int n)int i,f;f=1;i=0;while(fvoid main()int n,c;printf(“please input the number: n“);scanf(“%d“,c=fun(n);printf(“the answer is n“);printf(“%dn“,c);int fun(int n)int i,a,s;s=1;a=0;for(i=1;iint func(int x,int y);int fun(int x,int y);void main()int x,y,c,d;printf(“please input the tw
18、o numbers: n“);scanf(“%d%d“,c=func(x,y);d=fun(x,y);printf(“the answer is n“);printf(“zui da gong yue shu shi %dn“,c);printf(“zui xiao gong bei shu shi %d“,d);int func(int x,int y) int t;t=x%y;while(t)x=y;y=t;t=x%y; return(y);int fun(int x,int y) return (x*y/func(x,y);第七章1、选择题 1. D 2. B 3. D 4. D 5.
19、A 二、阅读程序写出结果1. 答案:1 2. 答案:12345 3. 答案: t*M 4. 答案:7078 9198三、程序填空1. 答案:(1) i(2) i=1(3) i 2. 答案:(1) ivoid main()int a10,i,x,y;printf(“please input the number:n“);for(i=0;ix)x=ai;if(aivoid main()int a10,i,j,k,t;printf(“please input the numbers:n“);for(i=0;iak)k=j;t=ak;ak=ai;ai=t;for(i=0;ivoid main()int
20、 a7=3,5,7,9,11,23;int b,i,k;scanf(“%d“,a6=b;i=5;while(b=0)ai+1=ai;ai=b;i-;printf(“cha ru hou de shu zu n“);for(i=0;ivoid main()int a10,i,j,k;printf(“please input the numbers:n“);for(i=0;i9)printf(“NOn“);elseprintf(“YESn“);5. 输出以下形式的图案:*#includevoid main()int i,j;for(i=1;ivoid main()int a10,i,t;print
21、f(“please input the numbers:n“);for(i=0;ivoid main()int a55=0,i,j;for(i=0;ivoid main()char c55=0;int i,j;for(i=0;ivoid main()int a33,i,j,x;printf(“please input the numbers:n“);for(i=0;ivoid main()int a10=10,9,8,7,6,5,4,3,2,1,l,r,m,k;printf(“please input the numbers:n“);scanf(“%d“,l=0;r=9;m=(1+r)/2;w
22、hile(lam)r=m-1;elsel=m+1;m=(l+r)/2;if(l#include void main()char s80;int n=0;gets(s);while(sn)n+; printf(“length = %d“,n);12. 比较两个字符串 S1、 S2 的大小。 (不使用库函数)若 S1S2 ,输出 1;若S1=S2,输出 0;若 S1#include void main()char s180,s280;int i,n;gets(s1);gets(s2);i=0;while(s1iif(!s1i|s1is2i)n=1;if(!s1iprintf(“jie guo sh
23、i %d“,n);13. 用“冒泡”法将一组数按升序排序。#includevoid main()int a10,i,j,x;for(i=0;iai+1)x=ai;ai=ai+1;ai+1=x;for(i=0;ivoid main()int a55;int i,j;for(i=0;ivoid main()int a34,i,j,x,l,r;for(i=0;ix)x=aij;l=i;r=j;printf(“Max number is %d,position is %d,%dn“,x,l,r);第九章一、选择题 1.( D ) 2. B 3.( D )二、写出以下程序的运行结果 (1)答案:6 (2
24、)答案:6 (3)答案:2,3 (4)答案:6 (5)答案: Zhao,m,85,903、改错题1、答案:(1) 最后加分号 “;” 。 (2) 改为 scanf(“%d %d“, (3) 改为 printf(“The point you input is:x=%d,y=%d“,pt.x,pt.y);2、答案:( 1) 改为 struct People peo;(2)改为 scanf(“%c“,(3)改为 scanf(“%c“(4)改为 scanf(“%s“, (5) 改为:printf(“The %d Peoples name is:%s,sex:%c,position:%s,age:%d
25、n“,i+1,peoi.name,peoi.sex,peoi.position,peoi.age);四、编程题(1) 设计一个通信录的结构体类型,并画出该结构体变量在内存的存储形式。struct photonote char name20;char number20;(2)用结构体变量表示矩形,编写矩形面积函数,矩形周长函数,输入矩形长宽函数,输出矩形长宽函数,输入矩形的长宽并进行面积和周长的计算。#include struct juxingfloat chang;float kuan;struct juxing shuru()struct juxing r;printf(“ shu ru j
26、u xing chang kuan :n“);scanf(“%f %f“,return r;void shuchu(struct juxing r)printf(“ chang shi : %fn“,r.chang);printf(“ kuan shi : %fn“,r.kuan);float mianji(struct juxing r)return r.chang*r.kuan;float zhouchang(struct juxing r)return 2*r.chang+2*r.kuan;void main()struct juxing a;a=shuru();shuchu(a);pr
27、intf(“ mian ji wei : %fn“,mianji(a);printf(“ zhou chang wei : %fn“,zhouchang(a);(3)设有学生情况登记表如表 9.3 所示,用选择法对该表按成绩从小到大排序。#include struct Studentint num;char name8;char sex;int age;float score;void main()int i,j;int min;struct Student temp;struct Student stu10=101,“zhang“,M,19,98.3,102,“wang“,F,18,87.2
28、,103,“li“,M,20,73.6,104,“zhao“,F,20,34.6,105,“miao“,M,18,99.4,106,“guo“,M,17,68.4,107,“wu“,F,19,56.9,108,“xu“,F,18,45.0,109,“lin“,M,19,76.5,110,“ma“,F,19,85.3;for(i=0;istruct studentchar num4;char name8;float score3;float ave;void main()struct student s120;int i,j;float avg1=0,avg2=0,avg3=0,sum=0;fo
29、r(i=0;i#include struct notechar name20;int count;void main()struct note notes5=“zhao“,0,“qian“,0,“li“,0,“sun“,0,“wang“,0;char tou20;int i,j;for(i=0;istruct date int year;int month;int day;void main()struct date date1;int i,sum=0;scanf(“%d,%d,%d“,for(i=1;i2) sum-=3;if(date1.year%400=0) | (date1.year%
30、4=0 sum+=date1.day; printf(“ shi di %d tian n“,sum);第十章一、单项选择1 ( B 2 ( A ) 3 ( B ) 4 ( B ) 5 ( B )二、阅读程序写结果1答案: 19 2答案:k=2 a=4 b=3 3答案:6 4答案: 0 1 3 6三、程序填空1答案:(1) p=a; (2) p=a+4;或 p- 2答案:(1) p=s; (2) +p3答案:(1) *k=p (2) findmax(a,10,bj=0或 ai=bj=0四、程序问答1.答案:(1) 7(2) 首地址 2答案:(1) 12,9,6(2) 从大到小排序(降序排列)
31、(3) 结果仍是 12,9,6,但此处输出结果不是排序后的结果,输出的是输入顺序 的数字。3答案:(1)aace(2)把字符数组中的 t 删除掉(3)atace五、程序改错1答案:(1)scanf(“%s“,str);(2)strcpy(max,str);(3)strcmp(max,str);(4)strcpy(max,str);2答案:(1)t=*s; (2) *(p-1)=*p;(3)*(p-1)=t;3答案:(1)*p=*q; ( 2)*q=0;六、编程以下程序均要求使用指针来实现。1 编程判断输入的一串字符是否为“回文” ,是则输出 Yes,否则输出 No。所谓“回文” ,是指正读和倒
32、读都一样的字符串。如“ratar“就是回文。#include #include void main() char str100,*p,*q;int flag=1;scanf(“%s“,str);p=str;q=str+(strlen(str)-1);while(p#includevoid mystrcat(char *p,char *q)while (*p) p+;while (*q)*p+=*q+;*p=0;void main()char s120,s220;char *p=s1,*q=s2;gets(s1);gets(s2);mystrcat(p,q);printf(“%sn“,s1);
33、2 有 5 个候选人参与选举,共 100 张选票,每张选票上只能推选一个人。编程统计每个候选人的得票数,并输出结果。#include #include void main() char * name5=“zhang“,“wang“,“li“,“zhao“,“liu“;char note10;int j;int count1=0,count2=0,count3=0,count4=0,count5=0;for(j=0;j#include void main() char a39 ;char *p=a;int count=0,flag=0;gets(a);if(*p= ) flag=1;while
34、(*p !=0)if(*p= p+;if(flag=1) printf(“the num of words is:%dn“,count);else printf(“the num of words is:%dn“,count+1);4 对一组整数降序排序。要求排序功能由调用函数实现。#include void main() void sort(int a,int n);int a10,i;int *p=a;for(i=0;i 操作文件- 关闭文件五、编程题1编写程序,从键盘输入 200 个字符,存入名为”f1.txt”的磁盘文件中。#includevoid main() FILE *fp;ch
35、ar ch;int i;if(fp=fopen(“f:f1.txt“,“w“)=NULL)printf(“File can not open!n“);exit(0);for(i=0;ivoid main()FILE *fp1,*fp2;char ch;int m;if(fp1=fopen(“f:ccw.txt“,“r“)=NULL)printf(“File1 can not open!n“);exit(0);if (fp2=fopen(“f:ccw1.txt“,“w“)=NULL)printf(“File2 cant not open!n“);exit(0);while(!feof(fp1)c
36、h=fgetc(fp1);ch=ch-10;fputc(ch,fp2);fclose(fp2);fclose(fp1);if (fp2=fopen(“f:ccw1.txt“,“r“)=NULL)printf(“File2 cant not open!n“);exit(0);while(!feof(fp2)ch=fgetc(fp2);putchar(ch);fclose(fp2);3编写程序,能将一个磁盘文件 1 的内容复制到另一个磁盘文件 2 中,即模仿copy 命令的功能。# include void main()FILE *f1,*f2;int k;char c1,c2;if (f1=fopen(“f:ccw.txt“,“r“)=NULL) printf(“file can not open!n“);exit(0);if (f2=fopen(“f:ccw1.txt“,“w“)=NULL) printf(“file can not open!n“);exit(0);for(k=1;kvoid main()FILE *fp;int i=0;char ch;