问题 选择题

下列关于图中所示光学现象的描述或解释正确的是:

A.图甲中,小孔成的是倒立的虚像,是光的直线传播的应用

B.图乙中,人配戴的凹透镜可以矫正近视眼,是利用了凹透镜的会聚的作用

C.图丙中,太阳光通过三棱镜会分解成红、橙、黄、绿、蓝、靛、紫七色光

D.图丁中,漫反射的光线杂乱无章不遵循光的反射定律

答案

答案:C

A、小孔成的像是由实际光线形成的,可以用光屏接收到,符合实像的特征,不是虚像,此项错误;B、近视是因为晶状体曲度过大,折光能力太强使像成在视网膜前面,用凹透镜矫正,远视是因为晶关体曲度过小,折光能力太弱使像成在视网膜后面,用凸透镜矫正,此项错误;C、白光由七色光组成,不同色光通过三棱镜后,偏折角度不同,所以被分解成七色光,这是光的色散现象,此项正确;D、只要是光的反射,都遵循光的反射定律,镜面反射和漫反射都遵循光的反射定律,此项错误.

故选C.

问答题

试题八

阅读下列程序说明和C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

[程序8 说明]

程序8 用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0 结束。

假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800 元后的余额作为该月的月应纳税所得额。适用税率如下表所示。

上表表明,个人收入所得税是按照超额累进的税率来征收的。

设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):

若0<K≤500,则S = K×5%;

若500<K≤2000,则S = 500×5%+(K-500)×10%;

若2000<K≤5000,则S = 500×5%+1500×10%+(K-2000)×15%;

若5000<K≤20000,则S = 500×5%+1500×10%+3000×15%+(K-5000)×20%;

...

例如,某人某月收入总额为4100 元,减去800 元后,应纳税所得额为3300 元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370 元。

[程序8]

#include

#define MaxNum 50

#define BASE 800 /*免税金额基数*/

int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,1000001};

int taxPrate[]={5,10,15,20,25,30,35,40,45}; /*税率表*/

typedef struct {

int Id; /*职工的工号*/

long Salary; /*职工的工资*/

}Info;

/*查找工号为Id 的职工在数组employee 中的下标,返回值为0 表示没有*/

int find(int Id, Info employee[], int m) {

int j;

employee[0].Id = Id;

for(j = m; (1) ; j--);

return j;

}

void main(void)

{ Info employee[MaxNum+1];

long Wage;

double sum = 0, K, S;

int i, j, N = 0, Code;

scanf("%d %ld", &Code, &Wage); /*读入职工号、工资或薪金*/

while (Code > 0) {

i = find(Code, employee, N);

if (i > 0) employee[i].Salary += Wage;

else { (2) ;

employee[N].Id = Code; employee[N].Salary = Wage;

}

scanf("%d %ld", &Code, &Wage);

}

for(i = 1; i <= N; i++) {

K = (3) ; /*计算月应纳税所得额*/

S = 0; /*月应纳税额赋初值*/

if (K > 0) {

for(j = 1; j <= 9; j++)

if ( (4) ) /*月应纳税所得额超过第j 级*/

S = S + (paylevel[j]- paylevel[j-1])*taxPrate[j-1]/100;

else { S = S + ( (5) )*taxPrate[j-1]/100; break;}

}

printf("职工%d 应缴纳的个人所得税额: %10.2lf\n", employee[i].Id, S);

sum += S;

}

printf("全体职工个人所得税总额: %10.2lf\n", sum);

}

单项选择题