




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1简述C语言编程机制C语言的编程机制大致分为:先由源文件.c文件编译成为.obj文件,然后.obj文件再与C语言中各种库函数以及链接库(.dll文件)链接起来,生成.exe文件,即可执行文件1.2简述C程序设计步骤1定义程序目标2程序设计3编写代码4编译5运行程序6测试和调试程序7维护和修改程序2.1编程计算表达式“a=3*4,a*5,a+5”的值#includeint main()int i,a;i=(a=3*4,a*5,a+5);printf(%dn,i);return 0;2.2编程计算表达式“i=3, -i+”的值并输出“i”的值。#includeint main()int i,k; i=3;k=(i=3, -i+)printf(%dn,k);return 0;2.3编程计算“1+2+3+n”的值(n的值可从键盘输入)。#includeint main()int n,i,sum;printf(请输入整数:n);while(scanf(%d,&n)if(n=1)printf(1n);elsefor(i=1;i=n;i+)sum+=i;printf(%dn,sum);sum=0;return 0;3.1编写一个C程序,输入a, b, c三个值,输出其中最大者。#includeint main()int a,b,c,max;printf(请输入三个数字);scanf(%d%d%dn,&a,&b,&c);if(ab)max=a;elsemax=b;printf(最大值是:%dn,cmax?c:max);return 0;3.2输入学习成绩:学习成绩=90分的用A表示,60-89分之间的用B表示, 60分以下的用C表示#includeint main()int score;printf(请输入成绩:);scanf(%d,&score);if(score=90) printf(A);if(score=60&score=89)printf(B);return 0;3.3输出9*9口诀。共9行9列。#includeint main()int i,j,k;for(i=1;i10;i+)for(j=1;j=i;j+)k=i*j;printf(%d*%d=%dt,i,j,k);printf(n);return 0;3.4打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153等于1的三次方5的三次方3的三次方。int waflow()int a,b,c;for(a=1;a=9;a+)for(b=0;b=9;b+)for(c=0;c=9;c+)if(a*100+b*10+c)=(a*a*a+b*b*b+c*c*c)printf(%d%d%dn,a,b,c);return 0;3.5编写一个程序,判断输入的某一年year是否是闰年?#includeint main()int year;printf(请输入年份:n);scanf(%d,&year);if(year%100)99&year%4=0|year%400=0)printf(这是闰年);elseprintf(这是平年);4.1打印Fibonacii数列前10个元素。( Fibonacii数列特点:1,1,2,3,5,8,13,21,)#includeint fib(int n)if(n=1|n=2)return 1;elsereturn fib(n-1)+fib(n-2);int main()int i;for(i=0;i10;i+)printf(第%d项是:%dn,i+1,fib(i+1);4.2查找整型数组中某一元素的值是否等于从键盘中输入的整数值(可事先定义好数组,如:int arr10 = 2, 4, 1, 6, 8, 3, 5, 9, 7, 0; ),如果相等打印出该元素的下标。#includeint main()int i,s,k;int sym=0;int num10=2,4,1,6,8,3,5,9,7,0;printf(请输入一个整数:n);scanf(%d,&s);for(i=0;i10;i+)if(numi=s)k=i;sym=1;break;if(sym)printf(你所输入的数字的下标是:%d,k);elseprintf(没有找到数据);4.3杨辉三角形特点是每个元素都等于它正上方与左上方数之和,于是可以计算出除第一列第一行外的所有元素(打印10行即可)。#includeint main()int i,j;int num1010;for(i=0;i10;i+)numi0=1;numii=1;for(i=2;i10;i+)for(j=1;ji;j+)numij=numi-1j-1+numi-1j;for(i=0;i10;i+)for(j=0;j=i;j+)prinf(%d,numij);printf(n);4.4通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车其中最后一列和最后一行分别放每个学生的平均成绩,每门课程的平均成绩及班级总平均分。#includeint main()int a45;int i,j;printf(请逐个输入每个学生的成绩:);for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);ai4=(ai0+ai1+ai2+ai3)/4;for(j=0;j5;j+)a3j=(a0j+a1j+a2j)/3;for(i=0;i4;i+)for(j=0;j5;j+)printf(%d ,aij);printf(n);return 0;4.5输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。int backwen()char str50;int i,k,sign=1;printf(请输入一串字符串n);scanf(%s,str);k=strlen(str)/2;for(i=0;ik;i+)if(stri!=strstrlen(str)-(i+1)sign=0;break;if(sign=1)printf(此字符串是回文字符串n);elseprintf(此字符串不是回文字符串n);return 0;4.6逆序输出字符串(字符串的长度在50以内)#include#include#includeint unstr()char str50;int i;printf(请输入一串字符串n);scanf(%s,str);for(i=strlen(str);i=0;-i)printf(%c,stri);return 0;4.7狐狸找兔子:围绕着山顶有10个圆形排列的洞,狐狸要吃兔子,兔子说:“可以,但必须先找到我,我就藏身于这十个洞中的某个洞。你从号洞找,下次隔个洞(即3号洞)找,第三次隔个洞(即6号洞)找,再隔3个以后在这个圆圈中如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?#include#include#includeint rabfox()int num10=1,1,1,1,1,1,1,1,1,1;int i,n=0;for(i=0;i1000;i+)n=(n+i)%10;numn=0;n+;printf(这只大白兔所在的洞是);for(i=0;i10;i+)if(numi)printf(%3d,i+1);/第几号洞,与其下标差1printf(n);return 0;int main()rabfox();return 0;5.2编写一个函数sum(n),计算1+2n 之和,根据n值的不同,得到不同的值。要求分别计算n50,n80,n100的情况。int sum()int n,i,sum=0;printf(请输入一个整数);scanf(%d,&n);for(i=1;i=n;i+)sum+=i;printf(%dn,sum);return 0;5.3求下数列的第20项的值。1,2,3,5,8,13,21,34.f(1)=1;f(2)=2;f(n)=f(n-1)+f(n-2);#includeint fib();int main()int n;printf(请输入一个整数:n);scanf(%d,&n);printf(%dn,fib(n);return 0;int fib(int n)if(n=1)return 1;if(n=2)return 2;elsereturn fib(n-1)+fib(n-2);6.3已知一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。/转小写int updown()char str=ABCdefghIJKLMN;int i;for(i=0;i=65&stri=91)stri=stri+32;printf(%sn,str);return 0;/转大写int updown()char str=ABCdefghIJKLMN;int i;for(i=0;i=97&stri=126)stri=stri-32;printf(%sn,str);return 0;7.1定义整型变量a并赋值、定义指向该变量的指针变量p,输出a、&a、p和*p的值。int justry()int a=1;int *p=&a;printf(a的值是:%dn&a的值是:%dnp的值是:%dn*p的值是:%dn,a,&a,p,*p);return 0;7.2 int *p;与*p=10中的*有什么区别。Int *p中的*是指针定义符,*p=10中的*是指针运算符7.3 有定义:float a10,*p=NULL; 则:p=a; p、p+表示什么?p=a:把数组a的首地址给了指针p,p+表示数组的首地址向下移动一个数据的位置,也就是a1的地址p=&a3; p、p-3、p+3、p- - 表示什么?p=a:把数组元素a3的地址给了指针p,p-3表示数组元素a0的地址,p+3表示a6的地址,p-表示将p向下移动一个数据的位置,即a2的地址,由于是后+,所以第一次输出p-的值,其地址并不会改变。7.4定义数组并输入10个整数,找出最大值并输出。要求用指针表示数组元素int maxx()int num10,max=0,i;/int *p=num;printf(请输入10个整数:n);for(i=0;i10;i+)scanf(%d,&numi);for(i=0;imax)max=numi;printf(%dn,max);return 0;7.5编写名为strdup的函数,此函数使用动态存储分配来产生字符串的副本。 该函数原型为:char* strdup(char* string);(例如 p= strdup(str);该函数给和str相同的字符串分配空间,然后把字符串str的内容复制到该空间,形成新字符串,然后返回指向新字符串的指针,如果空间分配失败则返回空指针)#include#include#includechar *strdup(char *src)/两个参数的strdup函数:第二个参数是int sizechar *dest;dest=malloc(*src);/dest=(char *)malloc(size);if(dest=NULL)return NULL;elsestrcpy(dest,src);return dest;int forstrdup()char *str=you are my a little apple!;char *newstr;newstr=strdup(str);/strlen遇到空格就会结束,只能用sizeof,sizeof的长度不加0;/两个参数的strdup函数:第二个参数是sizeof(*str)+1printf(%sn,newstr);return 0;int main()forstrdup();return 0;8.1用结构体变量记录学生信息:学号、姓名、性别、住址。初始化一学生的信息,并打印之。#include#include#includestruct studentint id;char name10;char sex;char add10;jinyu=12031701,王二,M,哈尔滨;int just()printf(学号:%dn姓名:%sn性别:%cn地址:%sn,jinyu.id,,jinyu.sex,jinyu.add);return 0;int main()just();8.2对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。(假设有10个选民)。struct personchar name20;in count;leader3=“Li”,0, “Zhang”,0, “Fun”,0 ;#include#include#includestruct personchar name6;int count;leader3=li,0,zhang,0,fun,0;int vote()char num106;int i;printf(请10个人输入各自要投票的人名:n);for(i=0;i10;i+)scanf(%s,&numi);for(i=0;i10;i+)if(strcmp(numi,)=0)leader0.count+;else if(strcmp(numi,)=0)leader1.count+;else if(strcmp(numi,)=0)leader2.count+;printf(li的人数:%dnzhang的人数:%dnfun的人数:%dn,leader0.count,leader1.count,leader2.count);return 0;int main()vote();9.1取一个无符号短整型数从右端开始的49位(位号从0开始)#include#include#includeint fetch()char str20;int k,i;printf(请输入一个大于9位的无符号数n);scanf(%s,str);k=strlen(str);printf(%dn,k);for(i=k-4;i=(k-9);i-)printf(%c,stri);return 0;int main()fetch();return 0;9.2判断一个无符号整数是否为2的整幂数。例如:128是,368不是#include#include#include#includeint mishu()int n,sign;printf(请输入一个无符型整数:n);while(scanf(%d,&n)sign=0;if(n0)if(n=1)printf(此数是2的整数次幂n);elsewhile(n%2=0)n=n/2;if(n=1)sign=1;break;if(sign)printf(此数是2的整数次幂n);elseprintf(此数不是2的整数次幂n);elseprintf(输入数据非法,请重新输入!n);return 0;int main()mishu();改进版:int main( void ) unsigned int i=0;scanf (%d, &i); if( 0 = (i&(i-1) )printf(是!n);elseprintf(不是!n);return 0;10.1二进制文件和文本文件有什么区别?计算机能识别的都是二进制代码,不论是文本文件还是音频视频类的多媒体文件都需要转换成二进制文件,计算机才能识别,这就需要有个转换过程:高级语言汇编语言机器语言,计算机只能识别的语言-机器语言。二进制文件和文本文件的区别在于,二进制文件全都是0和1组成的,而文本文件是由字母、数字、符号等10.2程序看是运行时,系统自动打开哪3个标准文件?程序看是运行时,系统自动打开3个标准文件:标准输入,标准输出,标准出错输出10.3解析MP3信息#include#include#includestruct p3char tag3;char sname30;char signer30;char audio30;char year4;char other28;char one;char two;char three;mymp3;int music()int i=0;FILE *fp;fp = fopen(D:画心.mp3,rb);/歌曲路径if(fp!=NULL)fseek(fp,-128,2);fread(&mymp3,sizeof(mymp3),1,fp);/注意:这里fread的第一个参数是一个地址,即结构体的地址printf(标签:%sn歌曲名:%sn歌手名:%sn专辑名:%sn年份:%sn备份:%sn,mymp3.tag,mymp3.sname,mymp3.signer,mymp3.audio,mymp3.year,mymp3.other);elseprintf(打开失败);fclose(fp);return 0;/判断一个十进制数中的二进制的形式中的1的个数#include#include#includeint number()int n,count=0;printf(请输入一个十进制的整数:n);scanf(%d,&n);while(n!=1)if(n%2=1)count+;n=n/2;elsen=n/2;printf(输入的这个数的二进制含有1的个数是:%dn,count+1);count=0;return 0;/循环右移字符串n位#include/循环右移动态数字n位#include#includeint tur()int n,len,i,j;char num1=abcdefghi;char num220=0;j=0;printf(输入一个数字:n);scanf(%d,&n);len=strlen(num1);for(i=(len-(n%len);ilen;i+)num2j+=num1i;for(i=0;i(len-(n%len);i+)num2j+=num1i;for(i=0;i20;i+)if(num2!=0)printf(%c,num2i);printf(n);return 0;int main()tur();return 0;/关于三天打鱼,两天晒网的问题/*日期:2014.9.23作用:关于三天打鱼两天晒网的问题*/#include#includestruct dateint year;int month;int day;void main()struct date know=1990,1,1;int d1,d2,d3,both1,secmon,sum=0;printf(请输入要计算的年月日(当输入的年月日为0时表示结束)n);while(scanf(%d%d%d,&d1,&d2,&d3)if(d1!=0&d2!=0&d3!=0)if(d112 | d231 | d328)printf(平年2月没有这一天,请重新输入n);continue;else if( (d1%10029)printf(闰年2月没有这一天,请重新输入n)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沙坪坝商场格栅施工方案
- 光学元件课件模板
- 数控车床编程与加工 课件 2.2FANUC 0i Mate-TD系统数控车床基本操作
- 光合作用课件高中
- 2025版民房屋租赁合同附社区文化活动场地租赁服务
- 二零二五年度能源机械租赁合同
- 2025版房地产营销顾问全渠道合作协议
- 二零二五年度光伏发电站电气安装劳务分包合同范本
- 护士预防接种证培训课件
- 光伏设备回收知识培训课件
- 《向长庚医院学管理》读后感
- 《建筑防水工程技术规程》
- DB11-T 1754-2024 老年人能力综合评估规范
- 《献给阿尔吉侬的花束》读书分享
- 电力项目全过程咨询服务方案
- T-CASME 1610-2024 淤泥土固化加固与处置技术规程
- 商用汽车金融方案
- 医药行业生产成本管控方案
- 上海市崇明区九校2024-2025学年六年级(五四制)上学期期中英语试题
- 预拌混凝土试验室作业指导书(完整版)
- 2024年10月自考00312政治学概论试题及答案含评分参考
评论
0/150
提交评论