C语言问题

作者&投稿:生顾 (若有异议请与网页底部的电邮联系)
C语言问题~

首先你的scanf语句不对,应该是:scanf("%lf %lf", &a, &b),正确格式是:scanf("",);
你的printf语句应该是:printf("得到一个和为%f + %f = %f
" ,a,b,a+b);,正确格式是:printf("输出格式类型",变量),前面的输出格式类型的数量,要和变量的数量一样

首先我们计算mpll_val的值。这里涉及两个操作符<<(左移)和|(异或),都是二进制运算符。具体定义这里就不说了,可以自己查下。
mpll_val = (92<<12)|(1<<4)|(1);
92转换成二进制为01011100,将此数左移12位,也就是后面加12个0,变成01011100000000000000,转换成十进制为2^14+2^15+2^16+2^18 = 376832,
同理,1<<4转换成十进制为16,上面mpll_val = 376832|16|1,这个其实就相当于
376832+16+1(很简单,知道了异或的规则用二进制计算就知道了)。因此:
mpll_val = 376849

下面的rMPLLCON的值计算需要理解三个概念:函数,参数,异与操作符
函数指的的就是void ChangeMPllValue(int mdiv,int pdiv,int sdiv);
参数指的是这个函数中定义的三个整型参数,在下面的具体声明中,也是这三个参数:
void ChangeMPllValue(int mdiv,int pdiv,int sdiv){rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;}
最后实现过程ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);这三个参数分别对应(mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3这三个值。
这里我们只将第一个参数的值(mpll_val>>12)&0xff是多少:
mpll_val我们刚才已经计算为376849,现在mpll_val>>12就是右移,与左移相反,等于我们又将mpll_val打回原形变成了92,那么下面我们计算92&0xff,这里我们需要知道0xff是一个十六进制数。
以0x开始的数据表示16进制,0xff换成十进制为255。A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。16进制变十进制:f表示15。第n位的权值为16的n次方,由右到左从0位起。 0xff = 15*16^1 + 15*16^0 = 25516进制变二进制再变十进制: 0xff = 1111 1111 = 2^8 - 1 = 255
也就是92&255,用二进制表示就是
01011100
&11111111
=01011100
因此(mpll_val>>12)&0xff的值就是92,同理可以得出后面两个参数的值。最后代入
rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;(计算得知mdiv = 92,pdiv = 1, sdiv = 1)
最后计算rMPLLCON,你一定以为是376849,但是不是的,结果应该是没办法写入的,因为
#define rMPLLCON (*(volatile unsigned *)0x4c000004)//MPLL Control
简单来说这句话就是定义rMPLLCON为一个指向固定地址的常量,不是变量,具体参考http://blog.sina.com.cn/s/blog_65861d3f0100xsz0.html
最后,提供一个验证程序,自己调试看看吧:
#include#includevoid ChangeMPllValue(int mdiv,int pdiv,int sdiv);#define rMPLLCON (*(volatile unsigned *)0x4c000004)//MPLL Controlint main(){unsigned int mpll_val =0;mpll_val = (92>12)&0xff;ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);getch();return 0;}void ChangeMPllValue(int mdiv,int pdiv,int sdiv){rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;}

dt 是 ord类型
ord类型里面包含int类型的x,y
dt[0]={1,2};dt[1]={3,4};

楼上的解答没错!但是这个程序在dev C++环境下运行结果奇怪啊,程序改为:

#include<stdio.h>

struct ord { int x,y;} dt[2]={{1,2},{3,4}};

 main()

 {struct ord *p=dt;

  printf("%d %d
",dt[0].x,dt[0].y); 

  printf("%d %d
",dt[1].x,dt[1].y);

  printf("%d %d

",dt[2].x,dt[2].y);

  printf("%d,",p->x);

  printf("%d,",++p->x);

  printf("%d,",++p->y);

  system("pause"); }

结果为:

 

那第一个++p->x 怎么是 2 啊?可是 p 的类型是结构,不是int 啊! 求解!



d[0].x = 1;
d[0].y = 2;
d[1].x = 3;
d[1].y = 4;

这个是结构体


幼儿语言6大问题
听的能力在语言学习过程中也占有极大的分量,听力差,自然地语言学习就会比别人慢。当父母怀疑孩子有听力问题时,都要尽早请耳鼻喉科大夫检查听力,确定听力丧失的程度。但毋论听力损失程度之轻重,在听力问题确认后,都应早期接受听能复健,促进语言能力之发展与维护。5、智能不足者的语言问题 “智能不足...

哪些因素可能导致孩子出现语言问题?
孩子出现语言问题可能受到多种因素的影响,以下是一些主要的因素:遗传因素:遗传在孩子的语言发展中起着重要作用。如果家族中有其他成员存在语言障碍,孩子可能更容易受到影响。此外,某些基因突变也可能导致语言发展问题。大脑发育异常:大脑是控制语言能力的关键部位。如果孩子的大脑发育出现问题,可能会影响他...

幼儿语言常见的问题及措施
幼儿语言常见的问题及措施如下:1、幼儿语言教育存在一定的超前性。在幼儿语言教育中,部分幼儿教师未能有效地分析幼儿的语言学习基础,在开展语言教育的过程中,存在脱离实际,盲目跟进的做法。部分幼儿教师不考虑幼儿的接受程度,不考虑幼儿自身的特点,将本来不属于幼儿学习阶段的语言内容放到课堂上来讲,造成...

孩子六岁了说话不清楚是什么原因
一、病理因素 有很多疾病bai都可能导致语言问题,如先天腭裂听力障碍等等,有些比较明显,有些则不容易被发现,如隐性腭裂、中轻度听力障碍、轻微的脑疾病或损伤等等。二、某些病理因素在得到解决以后没有进行语言矫正 比如有些家长以为先天腭裂在经过手术以后就能得到准确的发音,听力障碍在助听以后就能学会...

孩孑说话不清楚有那几种原因
孩子说话不清楚可能有以下原因:生理原因:一些孩子可能天生就有发音器官异常,如大舌头、舌系带过短、唇腭裂等,这些因素会影响孩子的正常发音。听力问题:如果孩子的听力有缺陷,他们可能无法正确听到自己或他人的发音,导致语言发育受到影响。家庭语言环境混乱:如果孩子的家庭语言环境比较混乱,或者他们没有...

语言问题的简介
《语言问题》是赵元任教授在台湾大学文学院中文系的演讲记录。全书十六讲,系统地讲述了语言学以及与语言学有关系的各项基本问题,是作者的重要著作之一。本书已经成为现代语言学的经典之作。

你知道什么是语篇的问题吗?
答案:这个演讲的总体结构是先介绍主题,然后提出两个分论点,最后总结主题。演讲者首先提出了一个主题,即人工智能将会改变我们的未来。然后,他分别谈到了人工智能对就业市场和医疗保健领域的影响,作为对主题的支撑。最后,他总结了他的观点,重申了人工智能的重要性。3、语言问题:这段小说中使用了哪些...

造成孩子语言发育迟缓的原因有哪些?
都有可能影响孩子的成长。不良的语言环境以及户外运动的缺乏,都有可能导致孩子语言发育迟缓。第六,爸爸妈妈陪伴交流严重不足。现代的父母,工作忙,压力大,陪伴孩子的时间少之又少,父母缺乏与孩子交流的机会,也会错过孩子语言能力发展的关键时期,使得孩子出现说话晚,语言发育迟缓的问题。

宝宝语言障碍有什么表现
宝宝语言障碍表现如下:1、构音异常,即说话不清晰,有的小儿是个别发音的错误,有的则是很多的错误,以致他人听不懂。例如把“耳朵”说成“耳郭”、“草莓”说成“考莓”“裤子”说成“兔子”、“泡泡”说成“抱抱”,说明儿童气流与语音协调的问题。2、嗓音问题 嗓音问题可以是功能性的,也可以是...

国际理解教育语言层面常见的问题
国际理解教育语言层面常见的问题如下:1、会存在学生发音不准的问题。当我们都习惯了自己的母语系统之后,我们的发音系统也基本上都定型了。在学习外语的时候,会经常遇到母语中没有的发音方式和发音方法,这个时候,这些不一样的发音,就会对学生产生很大的困扰。所以在语言教学中,老师们经常会遇到学生发音...

甘泉县19895141435: C语言问题:C语言中没有逻辑量,在判断一个量是否为真时以( ) 代表“真”,以 ( )代表“假C语言问题:C语言中没有逻辑量,在判断一个量是否为真... -
姓妮华安:[答案] C语言没有专门bool(布尔)类型数据, 在C语言中用0表示假,其余非0整型数据表示真. 例如 int i=7,j=0; if(i) printf("%d",i); if(j) prinftf("%d",j); 结果只会显示7.

甘泉县19895141435: C语言问题 -
姓妮华安: A、正确; B、等号左边不能有算术表达式,错误; C、同上,错误; D、定义语句只能是变量,赋值表达式,不能是纯算术表达式;错误; 虽然楼主有补充说是D,但我认为是A正确,题面己说x,y正确定义,那就...

甘泉县19895141435: C语言问题,求高手解答.:C语言问题,小白勿入描述:FOR语句循环,我们假定有三个循环.当程序运行到一定程度时怎样让语句从第三个循环返回时直... -
姓妮华安:[答案] 如果只是单纯的实现问题的功能. goto语句就可以了.(虽然goto有点不利于程序可读.但是这里用goto是最直接的方法.) 下面是伪代码: firstFor: for(参数)//第一个for循环 { for(参数)//第2个for循环 { for(参数)第3个fo...

甘泉县19895141435: 关于C语言的问题
姓妮华安: int a=10; a+=a-=a-a (此题是:复合赋值表达式,复合赋值运算符的运算优先级与赋值运算符的优先级相同(优先级都非常低),运算方向均为自右向左.(1)先计算最右边的表达式a-a的值为0. (2)再计算a-=0,该表达式等价a=a-0=10.(此时...

甘泉县19895141435: c语言问题 -
姓妮华安: 此问题涉及全局变量和局部变量的作用域:#include <stdio.h> int c=1; main() { int a=2,b=3; a=b; //到这里确实是a=b=3; { int b=5,c=6; a=2*b; } //到这里后a=10;b=5; printf(“%d”,a); //所以输出a的值是10;} 上面程序是说明局部变量的作用域是...

甘泉县19895141435: 简单的C语言问题 -
姓妮华安: main() int a,b,c,t; scanf("%d%d%d",&a,&b,&c); /* 输入三个数 */ printf("a=%d,b=%d,c=%d",a,b,c); /* 做比较用 */ t=a;a=b;b=t; /* 现在b原来的值变成了a的值,a原来的值变成了b的值 */ t=a;a=c;c=t; /* 这时候 a的值(其实是b的原值) 变成了c的值,也就等于b 的值给了C;*/同时C的值也给a printf("%4d,%4d,%4d",a,b,c); }

甘泉县19895141435: C语言问题解答
姓妮华安: C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的特点.它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不 依赖计算机硬件的应用程序.因此,它的应用范围广泛. C是结构...

甘泉县19895141435: 关于C语言编程问题 -
姓妮华安: "我在TURBO C上运行了也没有错误"按Ctrl+F9运行……另外在TC的文件夹里(默认),生成了对应的exe文件,那个程序可以用于发布.引用一下别人说的:“珍爱生命,远离TC”……

甘泉县19895141435: C语言问题 -
姓妮华安: 递归计算阶乘输出y=24程序有个错误fac(int n,int *t) { int s; if((n==1)||(n==0)) *t=1; else{fac(n-1, *t=n*s;} /* ...

甘泉县19895141435: c语言问题 -
姓妮华安: 楼主的输出结果是错误的,应该是0,3,5 c=(a-=a-5),(a=b,b=3); 这一句先因为赋值的优先级高于逗号表达式的优先级,因此c的值为(a-=a-5)的值,其中a被赋值为5,然后赋值给c,(这里懂?),在表达式(a=b,b=3)里,又给a赋值,由于b此时等于0,因此a被赋值为0,然后是b=3 因此最后输出结果是 0,3,5 希望对你有帮助!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网