版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1简述C语言编程机制C语言的编程机制大致分为:先由源文件.c文件编译成为.obj文件,然后.obj文件再与 C语言中各种库函数以及链接库(.dll文件)链接起来,生成.exe文件,即可执行文件1.2简述C程序设计步骤定义程序目标2程序设计3编写代码4编译5运行程序6测试和调试程序7>维护和修改程序2.1编程计算表达式“a=3*4,a*5,a+5”的值#iiiclude<stdio.h>hit mam() (int i,a;i=(a=3*4,a*5,a+5);return 0;2.2编程计算表达式“i=3, -i+”的值并输出“i”的值。#iiiclude<stdio.h
2、>hit mam() (mt i,k;1=3;k=(i=3, -i+)pnntf(M%dir;k);return 0;2.3编程计算"1+2+3+.+nn的值(n的值可从键盘输入)。#iiiclude<stdio.h>hit mam() (int nj.sum;printf("请输入整数:n)while(scanf(H%dr&n)if(n=l)else(fbr(i=l;i<=n;i+) sum+=i;pnntf("%diT,sum);)sum=O:return 0;3.1编写一个c程序,输入a,b, c三个值,输出其中最大者。#ii
3、iclude<stdio.h>hit(hit a,b,c,max;pnntf(”请输入三个数字)scanf("d%d%diT,&a,&b,&c);if(a>b)max=a;elsemax=b;pHntf(”最大值是:%d n,c>max?c:niax);return 0;3.2输入学习成绩:学习成绩>=90分的用A表示,60-89分之间的用B表示,60分以下的用C表示#iiiclude<stdio.h>hit(int score;piintf(”请输入成绩:”);scanf(H%d,&score);if(sco
4、re>=90)pnntffA");if(scoie<60)pnntf("C");if(scoie>=60&&score<=89)prmtf(nBj;return 0;3.3输出9*9 口诀。共9行9列。#iiiclude<stdio.h>mt mam()(int i,j,k;fbr(i=l;i<10;i+) k=i*j; printfCW");return 0;3.4打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153等
5、于1的三次方+ 5的三次方+ 3的三次方。mt waflow()(mt a,b,c;fbr(a=l ;a<=9;a+)for(b=0; b<=9; b44-)fbr(c=0;c<=9;c-H-)if(a *100+b *10-rc)=(a *a *a+b*b *b+c *c*c)printf("%d%d%dn”,a,b,c);)return 0; 3.5编写一个程序,判断输入的某一年year是否是闰年?#iiiclude<stdio.h>mt mam() (int veai-;请输入年份:n)scanff%d”,&yeai);if(year%10
6、0)<99&&year%4=0|year%400=0)pnntf("这是闰年) elsepnntf("这是平年) 4.1打印Fib onacii数列前10个元素。(Fibonacii 数列特点:1,1,2,3,5,8,13,21, -)#iiiclude<stdio.h>mt n) (if(n=l|n=2)return 1; elsereturn fib(n-l)+fib(n-2); mt mam()(int i;for(i=0;i<10;i+) printf("第d 项是:%dn'i+1 ,fib(i+1); 4.
7、2查找整型数组中某一元素的值是否等于从键盘中输入的整数值(可事先定义好数组,如:int arr10 = 2, 4, 1, 6, 8, 3, 5, 9, 7, 0;),如果相等打印出该元素的下标。#iiiclude<stdio.h>mt(int i,s,k;int sym=0;int nuin10=2,4,l,6.8,3,5,9,7,0;pnntf("请输入一个整数An)scanff%d”,&s);fbr(i=0;i<10;i+)if(numi=s)(k=i;sym=l;break;)1asym)pnntf("你所输入的数字的下标是:%d"
8、,k);elseprintf(“没有找到数据)4.3杨辉三角形特点是每个元素都等于它正上方与左上方数之和,于是可以计算出除第一列第一行外的所有元素(打印10行即可)。#iiiclude<stdio.h>int main。Ultlj;mt num1010;for(i=0;i<10;i+) (numi0=i;numii=l;for(i=2;i<10;i+)numi 1 =numi-1 j -1 +numi-1 j ;)for(i=0;i<10;i+)for(j=Oj<=i;j+)4.4通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程 的平均
9、成绩。要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间 用空格,不同人用回车其中最后一列和最后一行分别放每个学生的平均成绩,每 门课程的平均成绩及班级总平均分。#mclude<stdio.h>int mam()inta45;pnntf("请逐个输入每个学生的成绩:”);for(i=0;i<3;i-H-)for(j=0j<4;j-H-)ai4=(ai0+ail4-ai2+ai3)/4;)for(j=0j<5j+)for(i=0;i<4;i-H-)for(j=0j<5;j-H-)prmtf("%d H,aij);) retur
10、n 0;4.5输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。mt backwenQ (char str50;int i,k,sign=l;pnntf("请输入一串字符串n)scanff%s”,str);k=stilen(sti)/2;fbr(i=O;i<k;i+)if(stri !=strstrlen(str)-(i+1) sign=O;break;)if(sign=l)pnntf("此字符串是回文字符串n”); elsepnntf("此字符串不是回文字符串证”); return 0;4.6逆序输出字符串(字符串的长
11、度在50以内)#iiiclude<stdio.h>#iiiclude<stdlib.h>#mclude<stiing.h> mt unsti() (char str50;int i;pnntf("请输入一串字符串n)scanff%s”,str);fbr(i=strlen(str);i>=O;i) return 0;4.7狐狸找兔子:围绕着山顶有1。个圆形排列的洞,狐狸要吃兔子,兔子说:“可以,但必须先找到我,我就藏身于这十个洞中的某个洞。你从1号洞找,下次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,再隔3个以后在这个圆圈中如此类推,
12、次数不限。”但狐狸从早到晚进进出出了 100。次,仍没有找到兔子。问兔子究竟藏在哪个洞里?#iiiclude<stdio.h>#mclude<stdhb.h>#mclude<string.h> mt rabfbxQ (intnum10= 1,1,1,1,1,1,1,1,1;hit i,n=0;fbi(i=0;i<1000;i-H-) (n=(n+i)%10;numn=0;n+;pnntf("这只大白兔所在的洞是)fbr(i=0;i<10;i+)(if(numi)pnntf(“3d”,i+l);第几号洞,与其下标差1prmtf('
13、,nH);return 0;mt(rabfdx();return 0;5.2编写一个函数sum(n),计算1+2“ n之和,根据n值的不同,得到不同的值。要求分别计算n = 50, n = 80, n= 100的情况。mt sum()mt ii4,sum=0:pnntf(”请输入一个整数) scanf("%d”,&n);fbi(i=l;i<=n;i-H-)sum+=i;printf(M%d,ii,sum);return 0;5.3求下数列的第20项的值。1, 2, 3, 5, 8, 13, 21, 34-.f =2;f(n)=f(n- l)+f(n-2);#iiiclu
14、de<stdio.h>mt fib();mt mam()(int n;pnntf("请输入一个整数: scanf("%d”.&n);prin氓" %diT,fib(n);return 0;mt n)(return 1;if(n=2)return 2;elsereturn fib(n-l)+fib(n-2);6.3已知一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。/转小写mt updown()(chai- sti="ABCde埴hUKLMN”; int i;fbr(i=O;i<stilen(
15、sti);i-H-)if(stri>=65&&stri<=91) stri=stii+32;pimtf("%sn”,str);return 0;/转大写mt updown()(chai- sti="ABCde埴hUKLMN”; int i;fbr(i=O;i<stilen(sti);i-H-)if(stri>=97&&stri<=126) stri=stii-32;pimtf("%sn”,str);return 0;7.1定义整型变量a并赋值、定义指向该变量的指针变量P,输出a、&a、p和大p的
16、值。mt justiyQ(hit a=l;hit *p=&a;pnntf(Ma 的值是:%d n&a 的值是:%dnp 的值是:dn*p 的值是:%dn”,a,&a,p,*p);return 0;7.2int *p;与*p=l。中的*有什么区别。Iiit *p中的*是指针定义符,*p=10中的*是指针运算符7.3有定义:float a10,*p=NULL;则:p=a; p、p+表示什么?p=a:把数组a的首地址给了指针p,p+表示数组的首地址向下移动一个数据的位置,也就是al的地址p=&a3; p、p-3、p+3、p-表示什么?p=a:把数组元素a3的地址给了指
17、针p,p-3表示数组元素a0的地址,p+3表示a6的地址,p表示将p向下移动一个数据的位置,即a2的地址,由于是后+,所以第一次输出P的值,其地址并不会改变。7.4定义数组并输入10个整数,找出最大值并输出。要求用指针表示数组元素mt maxxQ (int num10aiiax=0j;/int *p=num;pnntf(”请输入10个整数:for(i=0;i<10;i+)scaiif(ll%d,&numi);for(i=0;i<10;i+) if(numi>max) niax=numi;pnntf(M%d'ir;max);return 0;7.5编写名为str
18、dup的函数,此函数使用动态存储分配来产生字符串的副本。该函数原型为:char* strdup(char* string);(例如 p= strdup (str);该函数给和str相同的字符串分配空间,然后把字符串str的内容复制到该空间,形成 新字符串,然后返回指向新字符串的指针,如果空间分配失败则返回空指针) #iiiclude<stdio.h>#iiiclude<stdlib.h>#mclude<string.h>char *stidup(chai- *src)/两个参数的 strdup 函数:第二个参数是 int size(char *dest;de
19、st=nialloc(*src);/dest=(char *)inalloc(size);if(dest=NULL)return NULL;)else(strcpy(dest,src);return dest;mt fbistidupO(char *str=Myou are my a little applechar *newstr;newsti-=strdup(str)y/stilen遇到空格就会结束,只能用sizeof,sizeof的长度不加、(T;两个 参数的sudup函数:第二个参数是sizeof(*str)+lpnntf(,%sii,newsti);return 0;hit mam(
20、)(fbrstrdupO;return 0;8.1用结构体变量记录学生信息:学号、姓名、性别、住址。初始化一学生的信息,并打印之。#iiiclude<stdio.h>#iiiclude<stdlib.h>#mclude<string.h>stmct student(mt id;char name 10;char sex;char add10;jinyu= 12031701J 王二 VM 丁哈尔滨)mt justQ(printf(H 学号: %dn 姓名: %sii 性别: %cii 地 址: %sn”,jiiiyu.sex
21、Jmyu.add);return 0;mt mam()(just();8.2对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。(假设有1。个选民)。struct personchar name20; in count;leader3 = aLiw , 0, “Zhang” , 0, "Fun” ,0;#iiiclude<stdio.h>#mclude<stdlib.h>#mclude<stiing.h> stiuct person (char name 6;hit count;leader3=,li0
22、;rzhang0;,fim'0;hit vote()(chainum106;inti;pnntf(”请10个人输入各自要投票的人名:fbr(i=0;i<10;i+)scaiif(,%s,&numi);fbr(i=0;i<10;i+) if(strcmp(numi,leaderO.name)=O) (leader0.count+;)else if(sticmp(numi Jeaderl .name)=0) (leaderl.count+;)else if(sticmp(numi Jeader2 .name)=0)leader2.count+;)printf(Mli 的
23、人数: %dnzhang 的人数: dnfim 的人 数:%d'arleader0.countJeaderl.countJeader2.count);return 0;hit( vote();9.1取一个无符号短整型数从右端开始的49位(位号从0开始)#iiiclude<stdio.h>#mclude<stdhb.h>#mclude<string.h> mt fetch() (chai- str20;int kj;pnntf(”请输入一个大于9位的无符号数W”);scanff%s”,str);k=stilen(sti);pnntf(M%dir;k);
24、fbr(i=k-4;i>=(k-9);i-)pnntff%c”,stii);return 0;hit(fetchQ;return 0;9.2判断一个无符号整数是否为2的整塞数。例如:128是,368不是#iiiclude<stdio.h>#mclude<stdhb.h>#mclude<string.h>#iiiclude<math.h>int inishuQ ( hit n,sign;pnntf(”请输入一个无符型整数:while(scanf(,f%d,&n)sign=O;if(n>0)if(n=l)pnntf(”此数是2的整
25、数次基n) else( while(n%2=0) ( n=iv'2; if(n=l) (sign=l; break:1 ) if(sign)pnntf("此数是2的整数次幕n"); elsepnntf("此数不是2的整数次幕n"); )elsepnntf("输入数据非法,请重新输入! n");return 0;mt mam()(nushu();改进版:mt void)(unsigned mt i=0; scanf ("%d”, &i); if( 0 =)printf("是!n”);elseprint
26、fC 不是!n)return 0;)10 二进制文件和文本文件有什么区别?计算机能识别的都是二进制代码,不论是文本文件还是音频视频类的多媒体文件都需要 转换成二进制文件,计算机才能识别,这就需要有个转换过程:高级语言f汇编语言f机器 语言,计算机只能识别的语言-机器语言。二进制文件和文本文件的区别在于,二进制文件全都是。和1组成的,而文本文件是由 字母、数字、符号等10.2程序看是运行时,系统自动打开哪3个标准文件?程序看是运行时,系统自动打开3个标准文件:标准输入,标准输出,标准出错输出 10.3解析MP3信息#iiiclude<stdio.h>#mclude<string
27、.h>#mclude<stdlib.h>stmct p3(char tag3;char sname30;char signer30;char audio30;char year4;char other28;char one;char two;char tluee;mymp3;mt musicQ(mt i=0;FILE *fp;fp = fbpen(”D:画心.mp3”门 b) 歌曲路径 if(fp?=NULL)fseek(a128,2);fiead(&mymp3,sizeof(mynip3),l,fjp);注意:这里fread的第一个参数是一个地址,即结 构体的地址p
28、nntf("标签:%sn歌曲名:%sn歌手名:%sn专辑名:%sn年份:%sii备 份: %sii,mymp3,tag4iiymp3.snainejnymp3.signerjnynip3.audiO4iiymp3.yeai;mymp3.other);)elseprintff打开失败))fclose(fp);return 0;/判断一个十进制数中的二进制的形式中的1的个数#iiiclude<stdio.h>#mclude<stdhb.h>#mclude<string.h> mt numbei() (int nxount=0;pnntf(”请输入一个十
29、进制的整数:W");scanff%d&n);while(n!=l)(if(n%2=l)(count+;n=n/2;)elsen=n/2;pnntf("输入的这个数的二进制含有1的个数是:%dnM,count+l);count=0;return 0;/循环右移字符串 n 位#includestdio.h>循环右移动态数字n位#mclude<stdhb.h>#mclude<string.h> mt tui() (int njenjj;clw numl=HabcdefgliiH;cliar num220=0;J=。;printf("
30、输入一个数字:n)scanff%d&n);len=strlen(numl);fbr(i=(len-(n%len);i<len;i-H-)nuni2j+=numl i;)fbr(i=O ;i<(len-(n%len);i+)nuni2j-H-=numl i;fbr(i=0;i<20;i+)if(nuni2!=0)pimtf(H%cH,nuni2i);)return 0;mt mam() tur();return 0;/关于三天打鱼,两天晒网的问题产*口期:2014.9.23作用:关于三天打鱼两天晒网的问题*/#iiiclude<stdio.h>#mclude
31、<stdhb.h>stmct date hit year;mt month;mt day;);stiuct date know=1 1990,1,1;mt d 1 .d2.d3.both 1 .secmon.sum=0;pnntf("请输入要计算的年月口(当输入的年月口为0时表示结束加) wliile(scanf(,%d%d%d,&d 1 .&d2,&d3)if<d l!=0&&d2»=0&&d3 !=0)if(dl<1990 |d2>12 | d2<l | d3>31 | d3<l)(pnntf("输入信息不合法,请重新输入11) contmue;)else if(d 1 %4)»=0&&d2=2&&d3>28)(pnntf("平年2月没有这一天,请重新输入n) contmue;else if( (d 1 % 100<=99&&d 1 %4=0)|(d2%400=0)&am
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 球囊扩张支架在卒中治疗中的应用
- 深度解析(2026)《GBT 19323-2003涂附磨具 带除尘孔砂盘》
- 乡村振兴部-乡村振兴专员面试题及答案
- 物流管理助理面试题及应对策略
- 教育行业教师招聘技能考核题目
- 安全检查设备建设项目可行性分析报告(总投资17000万元)
- 销售代表业绩考核与评价标准
- 深度解析(2026)《GBT 18991-2003冷热水系统用热塑性塑料管材和管件》(2026年)深度解析
- 压力表项目可行性分析报告范文(总投资17000万元)
- 感光探测器项目可行性分析报告范文(总投资10000万元)
- 2026年广西中烟工业有限责任公司招聘(51名)参考笔试题库及答案解析
- 2025余干县发展控股集团有限公司招聘2人参考模拟试题及答案解析
- 药品投诉应急预案(3篇)
- 部编人教版一年级上册语文生字组词造句
- 物业反恐防暴培训
- 2025年床上四件套市场调研:纯棉印花需求与图案美观度分析
- 2025年度物流行业市场调研:产业规模、政策支持及数字化趋势报告
- 广东省广州市越秀区2024-2025学年八年级上学期期末考试英语试题
- 地震波速反演方法-洞察及研究
- 百年未有之大变局课件
- 2025年时事政治考试100题及答案
评论
0/150
提交评论