一,
#include"stdio.h"
main()
{
short int a=32767,b=1,c;
c=a+b;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
/*观察溢出.疑问:产生这样的结果如何解释?原理是什么?*/
二,
#include"stdio.h"
main()
{
float a=123.1234,b=123.123456,c=123.123456;
printf("a=%5f,b=%5.3f,c=%.3f\n",a,b,c);
double x;int y;float z;
printf("在键盘上输入:4.6,23,123,2.34567:");
scanf("%f,%2d,%*d,%5f",&x,&y,&z);
printf("x=%lf,y=%d,z=%f\n",x,y,z);
}
/*
疑问:当把23改为2345时,y还是23,但是c的结果不是2.345000了,是一串乱七八糟的数,不知道为什么?
交大的一本教材中有这么说明:当scanf函数用%f输入一个实数型数据时,不能指定宽度.而本例为清华大学版教材中的一个范例,却指定了宽度%5f,
到底在scanf中适用%f数据格式时,能否指定宽度? 或者说用%f时可以指定宽度,但不能指定小数部分位数,如%10.3f是错误的.
*/
三,
#include"stdio.h"
main()
{
int a;
printf("input a:");
scanf("%d",&a);
printf("a=%d\n",a);
}
/* 当float型数据赋予int型时,小数部分将丢失,而不是四舍五入.疑问:当将程序改为以下时:变量b的结果很难理解?
#include"stdio.h"
main()
{
int a,b;
printf("input a and b:");
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
在键盘上输入如:1.23 2.34
运行结果:a=1,b=-858993460
b的结果为什么是那样?
*/
四,
#include"stdio.h"
main()
{
int a,b;
printf("input a and b:");
scanf("%3d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
/* 为什么当输入为:12345 23 时,运行结果却为a=123,b=45 ?当scanf函数改为("%3d,%d",&a,&b),输入为12345,23 时为什么结果又是a=123,
b=-858993460 ?
把程序改为:
#include"stdio.h"
main()
{
int a,b;
printf("input a and b:");
scanf("%d%4d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
当输入1.73,12345时,运行结果为什么是:a=1,b=-858993460 ?
疑问:输入函数scanf中的附加字符中的"域宽"和"*"怎么用? 书上的解释分别是:域宽:指定输入数据所占宽度(列数),域宽为正整数;
*表示本输入项在读入后不赋给相应的变量.
*/
五,
#include"stdio.h"
main()
{ int a=5,b=6;
printf("\t%d\n\t\b%d\n",a,b);
}
/*结果为什么是那样?,\t和\b怎么解释? */
六,
#include"stdio.h"
main()
{
float a=123.1236,b=1.23,c=12334.313414;
printf("a=%g,b=%e,b=%g,c=%g\n",a,b,b,c);
}
/*%g输出格式用于自动选取%f和%e中宽度较小的一种形式,且不输出无效0 ,这里的无效0指什么,包括无效无效数字吗?
疑问:为什么a=123.124,%g总是最多只输出7位(包括小数点) */
C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因..
第三项结果是一个指针,也就是一个地址。它就是a[2][1]的地址,由于scanf要求是地址,所以它是正确的。
C语言中的问题不明白为什么 新人麻烦详细解释一下谢谢
这里scanf指定逗号为输入的分隔符号。所以输入时数字和字符之间必须有逗号。scanf不指定分隔符时,默认以空白字符(空格、回车、制表符)为分隔符。PS:如果写%d%c不指定分隔符号。由于第二个变量是字符型,输入时中间不要加空格符,否则会将空白符号做为字符接收。
...高手解析错误啊!希望能将每条错误用汉语解释一下下。。。 感谢啊...
(1)编译错误,#include 命名中需要文件名 (3)编译错误,TYPE语法错误 (4)编译错误,未定义的标识符FLOAT (4)编译错误,丢失AVG标识符 ;符号 (4)编译错误,未定义的标识符 AVG (5)未定义SCANF (5)未定义的标识符 B (5)未定义标识符C (7)类型转换从浮点型转到整形,数据可能丢失...
求C语言高手解决,程序有一处错误始终找不出来。下面是程序代码。回答好...
错误原因主要有:1、C语言是大小写敏感的,注意一些函数和关键字的大小写,如:If和if的区别2、变量的名称错误3、调用的库函数没有头文件,如:inportb\/outportb等。下面的程序可以编译,但是连接时出现库函数没有说明的问题,请添加inportb\/outportb对应的头文件!include <stdio.h> include <conio.h>...
求C语言高手帮我看一个简单的问题!
这个就是for循环的运行机制造成的 for中 先d=1 接着判断d<=i成立,因为i=1,所以进入循环体 运行d*=r,这里d变成10 接着运行d++,d变成11 接着再判断d<=i不成立,所以退出for循环,那么d最终结果是11了?明白吗?
C语言程序设计 我是C语言初学者,有一道看程序的题我有些弄不懂,还请...
答案:C A:是如果a>b,则一程序一直执行到“b=c;”,效果是换a与b的值;B:是如果a>b,则执行{ }里的语句,效果是交换a与b的值;C:是如果a>b,则执行c=a; 无论a是否大于b,c的值都要给a,a-b;没什么作用;D:是如果a>b,则效果是交换a与b的值,c相当于中转站,a-b;没什么...
为什么C语言程序输入运行总说有个错误?请教高手解答
当然程序出错的原因是非常多的,既然你问程序出错原因,可是又不提供足够的信息,抱歉,那我只能推测你是新手了。C语言编程习惯很重要啊,否则,内存非法访问这种错误会经常发生,下标越界、丢个星号,或者&号,又或者定义了一个指针但是没有初始化过就访问它,很容易崩溃掉的,这些错误编译器几乎是不会...
关于C语言编写程序的一个疑问 高手帮忙看看我的程序哪错了
最后,尽量不要在C语言代码中夹杂中文,虽然我知道你是在做说明,那就正规点用\/\/作注释。不要再写成char verb[100][8]={"开炮",等一百个词}; 养成良好的代码书写习惯也是学习C语言很重要的一环。特别提醒这四个问题,祝你编程方面有所提高。另外说明一声,C语言是认汉字的,你老师说的没错。以...
请C语言高手帮忙解决一下
在Windows下这段代码编译运行后会产生错误,阁下那句system("pause");根本得不到运行。另外,楼主已经包含stdlib.h。自动弹出的原因是产生了运行时错误。运行时错误一般是由于指针的使用不当造成的。解决方法:将[char *r1;]改为[char *r1=&m;]解释:r1未初始化。当if(pop(r,r1)!=dequeue(s,s1...
c语言几个小小的问题 高手帮个忙
1. C 逗号在这里不合法 2. 输出2,虽然x是浮点型,但是10和4都是整型,所以先按整型运算,再将结果转换为浮点型 3. (++x, y++)表示这是一个逗号表达式,逗号表达式取最后一个表达式的值,也就是y++的值,所以输出结果是3和3 4. printf("%8.4g\\n",b); 这句输出8756,%g表示按%e或者...