导航菜单
首页 >  » 正文

C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。 4.执行下列语句后a的值为( ),b的值为( C ). int a, b, c; a=b=c=1; ++a|| ++b &&

C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。

//如果只有成绩信息就可以用下面的代码

//如果还需要加入学号,姓名之类的信息,可以用结构体然后对成绩排序即可

#include"stdio.h"

int main()

{

int  d[10]={0},i,j,t;//数组d存放10个学生的成绩

for(i=0;i<10;i++)//输入10个成绩(空格分开)

scanf("%d",&d[i]);

for(i=0;i<9;i++)//排序 for(j=i+1;j<10;j++) if(d[i]<d[j]) {

t=d[i],d[i]=d[j],d[j]=t;

}

for(i=0;i<10;i++)//输出10个成绩

printf("%d  ",d[i]);

getch();

return 0;

}

4.执行下列语句后a的值为( ),b的值为( C ). int a, b, c; a=b=c=1; ++a|| ++b &&

1
2
3
4
5
6
7
8
9
10
    // 定义3个变量a、b、c
    inta, b, c;
    // 给3个变量赋初值,a=1 b=1 c=1
    a=b=c=1;
    // 逻辑与的优先级高于逻辑或,相当于++a || (++b && ++c)
    // 所以先判断++a是否为真,++a,前置自增后a为2,为真
    // 而此时,由于是逻辑或运算,只要有一个为真,结果就为真,已经可以判定这个表达式的值为真
    // 所以,后面括号中的表达式就不会运算,b为1,c为1
    // 这个行为通常称为“短路求值”
    ++a || ++b && ++c;

(1+sinx)/sinx(1+cosx)的不定积分

∫1/sinx dx
=∫1/[2sin(x/2)cos(x/2)] dx,两倍角公式
=∫1/[sin(x/2)cos(x/2)] d(x/2)
=∫1/tan(x/2)*sec²(x/2) d(x/2)
=∫1/tan(x/2) d[tan(x/2)], [注∫sec²(x/2)d(x/2)=tan(x/2)+C]
=ln|tan(x/2)|+C, (答案一)
进一步化简:
=ln|sin(x/2)/cos(x/2)|+C
=ln|2sin(x/2)cos(x/2)/[2cos²(x/2)]|+C,凑出两倍角公式
=ln|sinx/(1+cosx)|+C
=ln|sinx(1-cosx)/sin²x|+C
=ln|(1-cosx)/sinx|+C
=ln|cscx-cotx|+C, (答案二)

相关推荐: