




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章1-3 CAB4 .c .obj .exe5 /* */6 ;7 算法8 中级语言:C语言具有高级语言的先进思想又能直接对存储器进行操作,能进行位运算,能实现汇编语言的大部分功能,生成目标代码质量高,程序执行效率高。结构化语言:C语言用函数作为程序模块,以实现程序的模块化,语言简洁、紧凑,具有结构化的特点。可移植性好:C语言不包含依赖硬件的输入输出机制,使C语言本身不依赖于硬件系统,可移植性好。9 #includemain( ) ; 10 #include “stdio.h” main()printf(“This is my first C Program!”);第2章1 yes2 -33 2,14 1)a!=b|a=4|x20&x30|x-1006 #include main()int x;printf(“please input an integar:”);scanf(%d,&x);if(x%5=0&x%7=0) printf(yesn);else printf(non);7.#include main()int year,month;printf(please input the year and month:);scanf(%d%d,&year,&month);switch(month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf(this month have 31 days.); break;case 4:case 6:case 9:case 11:printf(this month have 30 days.); break;case 2:if(year%4=0&year%100!=0|year%400=0) printf(this month have 29 days.);break; else printf(this month have 28 days.);break; 8. #include main()float money;int year;printf(nplease input the money and the year:);scanf(%f%d,&money,&year);if(year=1) money+=money*0.00315*12*year; if(year=2) money+=money*0.00330*12*year; if(year=3|year=4) money+=money*0.00345*12*year; if(year=5&year=8) money+=money*0.00420*12*year;printf(the money is:%f,money);第3章1 #include stdio.hmain() float x10,sum=0; int i=0; printf(please input 10 numbers(-10e6x10e6)n); while(i10) scanf(%f,&xi); sum=sum+1/xi; i=i+1; printf(the sum of 10 numbers is %.2fn,sum);2#include stdio.hmain() int x100,sum=0,aver,i=0; printf(please input numbers until 0n); scanf(%d,&xi); while(xi!=0) sum=sum+xi; i=i+1; scanf(%d,&xi); printf(the sum is %dn,sum); printf(the average is %.2fn,float(sum)/i);3#include stdio.h#include math.hmain() int i=1,j,f; long int s=0; while(i=10) for(f=1,j=1;j=i;j+) f=f*j; s=s+pow(-1,i-1)*f; i=i+1; printf(s= %ldn,s);4#include stdio.h#include math.hmain() int i=0; float s=0.0; while(2*i+1=101) s=s+pow(-1,i)/float(2*i+1); i=i+1; printf(s= %fn,s);5#include stdio.h#includemath.hmain() int i,j,k,n=0; for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) if(i*100+j*10+k=i*i*i+j*j*j+k*k*k) printf(the %d:%dn,+n,i*100+j*10+k); printf(the all is %d.n,n-);6#include stdio.hmain() int n,i,j; printf(please input n:); scanf(%d,&n); for(i=0;in;i+) for(j=0;jn;j+) printf(*); printf(n); 7#include stdio.hmain() char a81; int i,j=0,k=0,m=0; printf(please input a $(length=65&ai=90) j+; else if(ai=32) k+; else m+; printf(the upper letter is %dn,j); printf(the blank is %dn,k); printf(the other is %dn,m);8#include stdio.hmain() int i,j,k,m=0; for(i=0;i=20;i+) for(j=0;j=50;j+) for(k=0;k=100;k+) if(i*5+j*2+k=100) printf(the %d wag is 1:%d,2:%d,5:%dn,+m,k,j,i); printf(the wags is %dn,m-); 9#include stdio.hmain() int i,j,k,m=0; for(i=0;i=3;i+) for(j=0;j=3;j+) for(k=0;k=6;k+) if(i+j+k=8) printf(the %d wag is white:%d,red:%d,black:%dn,+m,i,j,k); printf(the wags is %dn,m-); 10#include stdio.hmain() long int n; int i,j,k; printf(please inpur n:); scanf(%ld,&n); if(n%2=1|n=1) printf(the input is error.n); return(1); for(i=2;i=n/2;i+) for(j=2;ji;j+) if(i/j*j=i) break; if(j=i) for(k=2;kn-i;k+) if(n-i)/k*k=(n-i) break; if(k=n-i) printf(%ld=%d+%dn,n,i,n-i); 11#include stdio.hmain()int i,j,k,m; for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) for(m=0;m=A&stri=a&stri=0&stri=9) num2+; i+; printf(num1=%d,num2=%d,num1,num2);9笔者在程序中直接给数组元素赋了值,读者可以修改为用scanf函数读入数值;另外,还可以用第7章宏定义的方法设定数组的长度,从而实现对元素个数不同的数组进行排序。#include stdio.hmain() int a5=2,4,1,3,0,i,j,temp; for(i=0;i=4;i+) printf(%d,ai); printf(n); for(j=1;j=4;j+) for(i=j;i=4;i+) if(aiaj-1) temp=aj-1; aj-1=ai; ai=temp; for(i=0;i=4;i+) printf(%d,ai);第6章1-5 AADBA 6 C7 0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 188 a+b=99 5+4+1=10 10+4+2=16 20+4+3=2710加密:#include stdio.hmain() char string100,i=0,number=0; scanf(%s,string); while(stringi+!=0) number+; fun1(string,number); printf(%s,string);fun1(char str,int num) int i; for(i=0;i=A&stri=a&stri=0&striV&striv&stri5&stri=9) stri-=6;解密#include stdio.hmain() char string100,i=0,number=0; scanf(%s,string); while(stringi+!=0) number+; fun2(string,number); printf(%s,string);fun2(char str,int num) int i; for(i=0;i=E&stri=e&stri=4&stri=A&stri=a&stri=0&stri4) stri+=6;第8章一、下列语句是否合法语句:int *p = &x, x = 13;点评:不合法,因为x变量没有定义。在执行int *p = &x 时,x变量的定义在后面。参考:int x = 13, *p = &x;语句:int *p = &x = 13;点评:不合法,因为x变量没有定义。在执行int *p = &x = 13 时,x变量没有定义。参考:int x = 13, *p; p = &x;语句:int x = 13,*p = x;点评:不合法,不能把x变量的值赋給指针p。应该把变量x的地址值赋給指针p。参考:int x = 13, *p; p = &x;语句:int y5 = 1,2,3,4,5,*p = y3;点评:不合法,不能把数组元素y3的值赋給指针p,应该把数组元素y3的地址值赋給指针p。参考:int y5 = 1,2,3,4,5,*p ; p = &y3;语句:int *p = y,y5 = 1,2,3,4,5;点评:不合法,因为数组y没有定义。参考:int y5 = 1,2,3,4,5,*p; p = y;语句:int y5 = 1,2,3,4,5,*p = &y;点评:不合法,不能把数组y的地址值赋給指针p。数组名y本身是数组y的地址常量值。参考:int y5 = 1,2,3,4,5,*p; p = y;或 int y5 = 1,2,3,4,5,*p; p = &y0;语句:int *c = &ch,ch = Hello World;点评:不合法,ch变量没有定义,字符串Hello World不能赋給变量ch。参考:char *ch = Hello World!;或char *ch;ch = Hello World;语句:char ch12 = Hello World,*c = ch;点评:合法。思考:char ch12 = Hello World!,*c = ch;该语句错误,字符个数超出数组ch定义的宽度。语句:char *c = ch12 = Hello World点评:不合法,数组ch没有定义。数组ch没有第12个元素。参考:char *c,ch12 = Hello World;c = ch;语句:char *c,c = X,c = &c;点评:不合法,不能把常量X的值赋給指针,不能把指针c的地址值赋給指针c自己。参考:char *c,ch; ch = X,c = &ch;二、综合练习题参考答案1将一字符串复制到另一字符串中。#includevoid main()char str1128,str2128 = Welcome to C Language;char *cp1,*cp2;cp1 = str1;cp2 = str2;while(*cp1+ = *cp2+);puts(str1);2将一字符串与另一字符串相连接。#includevoid main()char str1128 = Welcome ,str2128 = to C Language;char *cp1,*cp2;int i = 0,n = 0;while(n+,str1+i != 0);cp1 = str1+n;cp2 = str2;while(*cp1+ = *cp2+);puts(str1);3将字符数组中大写字符改为小写字符,将小写字符改为大写字符。#includevoid main()char str1128 = Welcome to C Language;char *cp1 = str1;while(*cp1)if(*cp1 = A & *cp1 = a & *cp1 = z) *cp1 = *cp1-32;else*cp1 = *cp1;cp1+;puts(str1);4从一字符串中取出部分字符串复制到另一字符串中。#includevoid main()char ch128,*cp,str128,*sp;int b,n,l=0,i;cp=ch;sp=str;gets(cp);scanf(%d%d,&b,&n);while(l+,*(ch+l)!=0);if(nl)for(i=0;in;i+)*(sp+i)=*(cp+b+i);*(sp+i)=0;puts(str);elseprintf(无数据可以复制);5完成一整型数组的排序。#include#includevoid main()int x10,i,j,*p,t;p = x;for(i = 0;i10;i+)xi = rand();for(i = 0;i9;i+)for(j = 0;j*(p+j+1)t = *(p+j);*(p+j) = *(p+j+1);*(p+j+1) = t;for(i = 0;i10;i+)printf(%dt,*p+);6将一个字符串中的字符反序排列。#includevoid main()char ch128,c,*cp1,*cp2;int i,n = 0;gets(ch);cp1 = ch;cp2 = ch;while(*cp2!= 0)n+;cp2+;cp2-;n = n/2;for(i = 0;in;i+)c = *cp1;*cp1 = *cp2;*cp2 = c;cp1+;cp2-;puts(ch);7编函数完成将一字符串中的字符全部改为大写。#includevoid cove(char *cp)while(*cp!= 0)if(*cp= a & *cp= z)*cp = *cp-32;cp+;void main()char ch128,*cp;cp = ch;gets(cp);cove(cp);puts(ch);8编函数完成从一字符串左边取若干字符复制到另一字符串中。#includevoid lm(char *lcp,char *bcp,int n)int i;for(i = 0;in;i+)*(bcp+i) = *(lcp+i);*(bcp+i) = 0;void main()char ch128,*cp,str128;int n,l =0;gets(ch);scanf(%d,&n);while(l+,*(ch+l)!= 0);if(nl)cp = ch;lm(cp,str,n);puts(str);elseprintf(无数据可以复制);第9章1#include stdio.hstruct date int year; int month; int day;main() struct date re; int day212=31,29,31,30,31,30,31,31,30,31,30,31,31,28,31,30,31,30,31,31,30,31,30,31; int i,days=0; printf(input the day(year:month:day):n); scanf(%d:%d:%d,&re.year,&re.month,&re.day); if(re.year%4=0&re.year%100!=0)|re.year%400=0) for(i=1;ire.month;i+) days+=day1i-1; else for(i=1;ire.month;i+) days+=day0i-1; days+=re.day; printf(the days is %dn,days);2#include stdio.hmain()enum weekdaySun,Mon,Tue,Wed,Thu,Fri,Sat day; int data; printf(input the data:); scanf(%d,&data); data+=2; day=(enum weekday)(data%7); switch(day) case Mon:printf(It is Monday.n);break; case Tue:printf(It is Tuesday.n);break; case Wed:printf(It is Wednesday.n);break; case Thu:printf(It is Thursday.n);break; case Fri:printf(It is Friday.n);break; case Sat:printf(It is Saturday.n);break; case Sun:printf(It is Sunday.n);break; default:printf(errorn); 3#include stdio.hstruct result int notpass; int pass; int good;main() struct result re, *p=&re; int i,temp; void output(struct result *); re.notpass=0; re.pass=0; re.good=0; printf(input 12 integers;n); for(i=0;i12;i+) scanf(%d,&temp); if(temp100) printf(error!n); return(0); else if(temp=80) re.good+; else re.pass+; output(p); return(1);void output(struct result *p) printf(the result:n); printf( mark: 0-59 60-79 80-100n); printf(number: %d %d %dn,p-notpass,p-pass,p-good);4#include stdio.hstruct stat int length; int blank; int letter; int number;main() struct stat re2; char temp; int k; void output(struct stat *); for(k=0;k2;k+) rek.length=0; rek.blank=0; rek.letter=0; rek.number=0; for(k=0;k=65&temp=97&temp=48&templength=(p+1)-length) printf(the length of 2 strings is equal.n); else printf(the length of 2 strings is different.n); if(p-blank=(p+1)-blank) printf(the amounts of blanks in 2 strings is equal.n); else printf(the amounts of blanks in 2 strings is different.n); if(p-letter=(p+1)-letter) printf(the amounts of letters in 2 strings is equal.n); else printf(the amounts of letters in 2 strings is different.n); if(*p).number=(p+1)-number) printf(the amounts of numbers in 2 strings is equal.n); else printf(the amounts of numbers in 2 strings is different.n);第10章 1、C文件的特点是:C系统在处理文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此C语言文件也叫流式文件。流式文件准许对一个字符进行存取, 这增加了数据处理的灵活性。缓冲文件系统:缓冲文件系统自动在内存区开辟一个确定大小的缓冲区,使数据输入输出都先通过缓冲区。非缓冲文件系统:非缓冲文件系统不自动开辟确定大小的缓冲区,而是由程序员为每个文件设定一个缓冲区。2、文件类型指针是缓冲文件系统的一个重要概念。文件类型指针是指向描述文件信息结构体的结构体变量,用于文件操作。在C语言中,对普通数据文件的所有操作都必须依靠文件类型指针来完成。要想对文件进行操作,首先必须将想要操作的数据文件与文件指针建立联系,然后通过这些文件指针来操作相应的文件。3、打开文件,是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。4、C语言程序中,文件操作顺序为:打开读/写关闭。5、#include #define NULL 0main()FILE *fp;char ch;int linenum,chnum,i=0,l=0;fp=fopen(FILE.C,r);if(fp=NULL) printf(File cant be opened.n); exit(1); ch=fgetc(fp);linenum=0;chnum=0;while(ch!=EOF)while(ch!=n)chnum+;ch=fgetc(fp);linenum+;if (ichnum)i=chnum;l=linenum;chnum=0;ch=fgetc(fp);printf(nthe longest line is the %d line,and there are %d characters.,l,i);fclose(fp);第11章1、#include #include #define NULL 0typedef int ElemType;typedef struct LNode ElemType data; struct LNode *next; LNode,*LinkList;LNode* create_LinkList(int n)/*创建链表*/LNode *s,*head,*L;ElemType x;int k=0;L=(LNode *)malloc(sizeof(LNode);if(L=0)printf(error!);exit(1);elseL-next=NULL;head=L;while(kdata=x;s-next=NULL;L-next=s;L=s;k+;return (head);void print_LinkList(LinkList L)/*输出链表*/LNode *h;h=L;while(h-next!=NULL)printf( %d ,h-next-data);h=h-next;int num_LinkList(LinkList L)int i=0;while(L-next!=0)i+;L=L-next;return i;LNode* Insert(LinkList L,ElemType x)int k,i;LNode *s,*z,*l;s=L-next;k=num_LinkList(L);for(i=0;idatanext;else break;z=(LNode *)malloc(sizeof(LNode);if(z=0)printf(error!);exit(1);z-data=x;if(s=NULL) l-next=z;z-next=NULL;elseif(i=0)L-next=z;z-next=s;elsel-next=z;z-next=s;return L;main()LNode *la;ElemType x;int num;clrscr();printf(please input the elements of la,small to big:n);la=create_LinkList(10);printf(nthe elements of the la are:);print_LinkList(la);printf(nplease input the inserted element x:);scanf(%d,&x);la=Insert(la,x);print_LinkList
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津站务员考试题库及答案
- 2024年知识产权保护合同
- 扶贫与绿色产业协同发展-洞察及研究
- 2025年高级经济师《工商管理》真题及答案
- 2025年高级会计实务考试题库(附答案)
- 2025年高级会计师考试模拟真题及答案
- 儿童学宪法题库及答案
- 法律基础自考试题及答案
- 碳酸泉温泉管理办法
- 2025年聚碳酸酯原料双酚A项目合作计划书
- 应届生培养方案
- 保险代位求偿权答辩状
- 七块红烧肉阅读题目和答案-七块红烧肉初中语文课外阅读专练-记叙文阅读及答案
- 《英语句子成分及基本结构》课件
- 汽修基础理论知识
- 综合实践活动六年级上册全册讲课课件
- 地产交房仪式主题活动方案策划
- IPv6技术与应用(华三版)电子教案项目1-15教学设计
- 古代汉语教程张世禄简体字版
- 妊娠期高血压疾病预防与治疗
- JGJT294-2013 高强混凝土强度检测技术规程
评论
0/150
提交评论