70分招聘C语言高手,就9个问题,3道编程,其余小题(在线等)
发布网友
发布时间:2022-04-19 12:54
我来回答
共5个回答
热心网友
时间:2023-10-25 00:44
1、%g是由printf在%e,%f中选择一个它认为对程序员有意义的输出格式来输出,123.56789用科学计数法来表示没什么用,所以用%f来输出,但输出时只保留6位有效数字。
2、%.7f表示输出时小数部分要补足7位,所以你的题目抄错了,应该输出123.5678900。
3、%6d表示输出整数时在左边补空格补足6位,所以输出:(空格)(空格)(空格)123##;%14.8lf表示输出浮点数时小数部分要补足8位,整个数左边补空格补足14位,所以输出:(空格)(空格)(空格)(空格)1.34550000##。
4、i,j,k是整数,scanf("%d",&i);时,读到.时,因为.肯定不会出现在整数中,所以scanf把.前面的12当成第一个整数赋给了i,然后scanf("%d",&j),scanf("%d",&k),读的都是.,都没读取到整数,所以两个都失败了,所以j,k的值没有改变,仍然是初值0。
5、其实if(x>0) y=1; else y=0; 这两句才起作用,前面两句的功能被这两句给抹杀了。所以x>0时,y=1,否则y=0。
6、!是取反运算符啊,!true是false,!false是true,在C语言里,0表示false,非0值表示true,所以!0是1,!(非0值)=0。
7、
#include<stdio.h>
void main(void)
{
double t,s;
s=t=1;
for(int i=1;i<=50;i++)
{
t*=i;
s+=1/t;
}
printf("%f\n",s);
}
8、这个题目出的完全没意义,现实中只会用当今年份减去一个人的出生年来说这个人是多少岁,如果非要说实足年龄,也只是看有没有到生日,到了就是y1-y0,不到就是y1-y0-1。
9、一时间还真想不出什么好方法。就假设X是整数,用最麻烦的方法来吧。
switch(x)
{
case -4:case -3:case -2:case -1:
y=x;break;
case 0:
y=x-1;break;
case 1:case 2:case 3:case 4:case 5:
case 6:case 7:case 8:case 9:
y=x+1;break;
default:
printf("Error!\n");
}
热心网友
时间:2023-10-25 00:44
1:printf("%g\n",123.56789; 为什么输出是123.568?
而不是123.567890?
->是f吧!
因为%f只支持3位数。
2:printf("%.7f\n",123.56789)为什么输出是123.5679?
而不是123.568? .7的意思到底是什么???!
--〉.f是支持7号码,.7小数点以外的先算,然后其余的小数点加下去最多能有7个号码!
3:printf("%6d##\n",123); 即输出宽度为6位:(空格)123##
而printf("%14.8lf##\n",1.3455; 输出为
空格空格空格1.34550000## 输出宽度你就15位了吗?怎么回事?
--〉小数点不算的话就刚好14位数咯!
4: int i=0,j=0,k=0; scanf("%d",&i); scanf("%d",&j);
scanf("%d",&k); 当输入12.3<CR>时,i,j,k分别为;(说明,结果我知道)
--〉当你输入一次就会存进i 咯
12.3会变成12因为是int
5: 程序y=-1; -->y 现在是1
if(x!=0) y=1; -->如果 x 不是0 ,y依然是1
if(x>0) y=1; --〉如果 x大过0,y 也是1
else y=0; --〉不然,y是0
所表达的数学式是:
6:有一个程序:int x=3;
do
{printf("%3d",x-=2);}
while (!(--x));
中最后一行中!是什么意思?
-->x现在是3 ,--x 就是2, (!(--x))就是 !(2) 就是不是2
7:设计程序计算如下表达式:
1+1/1!+2!+3!+...+1/n!的前50项
想到在告诉你!
8:输入一位学生的生日(年:y0,月:m0,日:d0);并输入当前日期
(年:y1,月:m1,日:d1);输出该生的实足年龄.
int x;
x=y1-y0;
if (m1-m0>0)
if(d1-d0>0)
x+1;}
9:用switch语句设计如下表达式:
y=x(-5<x<0)
x-1(x=0)
x+1(0<x<10)
不懂你要什么!
热心网友
时间:2023-10-25 00:45
老兄,你真行啊.我才学七天都知道好几个题目.
如7题;我写一下关键句子:
int s=0,k=1;
for(int i=1;i<=50;i++)
{
for(int i=1;i<=j;i++)
{k=k*i;} //k默认为1.求出j!
s=1/k+s;
}
这是求1+1/1!+1/2!+1/3!+...+1/n! 不是你那个1+1/1!+2!+3!+...+1/n!
8. if (m1>m0)
{
if(d1>d0)
{
k=y1-y0;
}
else
{
k=y1-y0-1;
}
}
else
{
k=y1-y0-1;
}
cout <<"实际年龄:"<<k<<endl;
9,#include<stdio.h>
#include<iostream>
# include<conio.h>
using namespace std;
main()
{
int x;
int y;
cout<<"请输入一个数:"<<endl;
cin>>x;
switch(x)
{
case -4:
y=x;
break;
case -3:
y=x;
break;
case -2:
y=x;
break;
case -1:
y=x;
break;
case 0:
x=x-1;
break;
case 1:
x=x+1;
break;
...
...
case 10:
x=x+1;
break;
defaut:
cout<<"请输入一个-5到10的数";
}
cout<<y<<endl;
getch();
}
热心网友
时间:2023-10-25 00:45
楼主同学,这样的作业最好还是自己做吧,自己不做怎么能学会呢?楼上的虽说话不好听,不过还是有点道理的。
热心网友
时间:2023-10-25 00:46
你做梦呢吧。谁会帮你啊。一看就是特懒。