当前位置: 代码迷 >> C语言 >> [求助]几道C语言的基础题(已解决)
  详细解决方案

[求助]几道C语言的基础题(已解决)

热度:231   发布时间:2006-08-08 15:44:10.0
[求助]几道C语言的基础题(已解决)
1. abs() 函数的作用。
2. pow(x, 3.0)和pow(x, 3)的区别。
3. 为什么sizeof(float) 是一个整型表达式?
4. 请分析下面的程序。
main()
{ long y=43456;
printf("y=%-8ld\n",y);
}
5. int a1,a2; char c1,c2;
scanf("%d%c%d%c", &a1, &a2, &c1, &c2);
若a1, a2, c1, c2的值分别为10,20,A和B,那么正确的输入方式应该是什么?
6. 已知定义int x; float y; 且执行scanf("%3d%f", &x, &y); 语句,若输入:
12345(空格)678(回车),则y的值为多少?为什么?
7. 各进制之间的换算公式
8. 若定义float a=123.456, 则printf("%14.3f",a);的结果为什么为(7个空格)123.457而不是(7个空格)123.456?
9. printf语句中的*的作用。
10. printf语句中e的用法,具体些。

题比较多,但对于高手来说可能很简单。希望大家能够帮我解答。谢谢!

[此贴子已经被作者于2006-8-11 8:03:56编辑过]

搜索更多相关的解决方案: C语言  基础  

----------------解决方案--------------------------------------------------------
虽然我是菜鸟,但力所能及的帮您做做练练手-_-
1. abs() 函数的作用。
答:求整数的绝对值。
2. pow(x, 3.0)和pow(x, 3)的区别。
答:两者都接受两个参数,但左边是接受一个x变量与一个double型常量,右边是接受一个x变量与整型常量.
3. 为什么sizeof(float) 是一个整型表达式?
答:sizeof(float)的作用是求float类型的字节数,其值为size_t类型,即无符号整数类型,所以是个整型表达式.
4. 请分析下面的程序。
main()
{ long y=43456;
printf("y=%-8ld\n",y);
}
答:想要分析什么?运行结果是43456
5. int a1,a2; char c1,c2;
scanf("%d%c%d%c", &a1, &a2, &c1, &c2);
若a1, a2, c1, c2的值分别为10,20,A和B,那么正确的输入方式应该是什么?
答:值为20的ASCII码是非打印字符,水平有限我也不知道怎么输,用scanf("%d%d%c%c",&a1,&a2,&c1,&c2);更好一些吧.
6. 已知定义int x; float y; 且执行scanf("%3d%f", &x, &y); 语句,若输入:
12345(空格)678(回车),则y的值为多少?为什么?
答:当然还是678,有什么问题吗?
7. 各进制之间的换算公式
答:略;书上没有网上也应该有.
8. 若定义float a=123.456, 则printf("%14.3f",a);的结果为什么为(7个空格)123.457而不是(7个空格)123.456?
答:123.456中的.也算一位,14宽度-7位=7个空格
9. printf语句中的*的作用。
答:*是滞后赋值,如int size=4;printf("%*d",size);等同于printf("%4d");
10. printf语句中e的用法,具体些。
答:目前我就学了转换说明符%e,作用是用e记数法打印浮点数,若有其他作用望前辈告之.

我也刚学,不一定对,水平有限您将就着看吧.
PS:这些题是谁出的..?

[此贴子已经被作者于2006-8-8 17:30:00编辑过]


----------------解决方案--------------------------------------------------------

10. printf语句中e的用法,具体些。
答:目前我就学了转换说明符%e,作用是用e记数法打印浮点数,若有其他作用望前辈告之.


----------------解决方案--------------------------------------------------------
7. 各进制之间的换算公式
答:略;书上没有网上也应该有.就是按权展开.

5. int a1,a2; char c1,c2;
scanf("%d%c%d%c", &a1, &a2, &c1, &c2);
若a1, a2, c1, c2的值分别为10,20,A和B,那么正确的输入方式应该是什么?
答:值为20的ASCII码是非打印字符,水平有限我也不知道怎么输,用scanf("%d%d%c%c",&a1,&a2,&c1,&c2);更好一些吧.

输入10A 20B
其他的没有什么了
----------------解决方案--------------------------------------------------------
2. pow(x, 3.0)和pow(x, 3)的区别。
答:两者都接受两个参数,但左边是接受一个x变量与一个实型(不一定是double的吧?)常量,右边是接受一个x变量与整型常量.

----------------解决方案--------------------------------------------------------

请问楼上为什么不一定是double类型?
看书上说实型常量如果不加修饰词的话默认是double类型的.
有谁指教?


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-8-8 18:30:06的发言:
7. 各进制之间的换算公式
答:略;书上没有网上也应该有.就是按权展开.

5. int a1,a2; char c1,c2;
scanf("%d%c%d%c", &a1, &a2, &c1, &c2);
若a1, a2, c1, c2的值分别为10,20,A和B,那么正确的输入方式应该是什么?
答:值为20的ASCII码是非打印字符,水平有限我也不知道怎么输,用scanf("%d%d%c%c",&a1,&a2,&c1,&c2);更好一些吧.

输入10A 20B
其他的没有什么了

请问输入10A 20B是将A赋给了a2,题的要求a2=20,是不是不符题目要求呢?

还有楼上的问题?

谢谢!


----------------解决方案--------------------------------------------------------
scanf("%d%c%d%c", &a1, &a2, &c1, &c2);
我不知道楼主是否写错,我是根据输入格式进行赋值的,没有考虑变量是什么,我想楼主应该是这个意思.

我同意你的观点,不过我觉得2. pow(x, 3.0)和pow(x, 3)的区别。这两个在计算上没有多大区别.
因为函数原型是double pow(double x,double y)
不管x,y是什么类型都会转换为double.
----------------解决方案--------------------------------------------------------

对不起,写错了两道题
4. 请分析下面的程序。
main()
{ long y=43456;
printf("y=%-8ld\n",y);
}
5. int a1,a2; char c1,c2;
scanf("%d%c%d%c", &a1, &c1, &a2, &c2);
若a1, a2, c1, c2的值分别为10,20,A和B,那么正确的输入方式应该是什么?
另外,第6题你们做的不对,答案给的是45.000000。我想问一下,是不是在遇到%f的时候,如果输入了一个空格,那么其后面的数都不能够被输入了?
第8题我想问的是为什么小数点后的第三位是7而不是6,请解答。

[此贴子已经被作者于2006-8-9 8:41:55编辑过]


----------------解决方案--------------------------------------------------------
还有第4题,它本身只是6位数-43456,但格式符上面写着%-8ld,那是不是应该在后面加上两个空格呢?
----------------解决方案--------------------------------------------------------
  相关解决方案