第1题
[说明]
这是一个修改字符串的题目,此题中将字符串“hello,I am not a student,I do not like computer!”中的"not"去掉,并在Web页中显示。当离开此Web页时,将自动启动收藏夹。
[HTML 文本]
<html>
<!--省略部分为HTML框-->
(1) //JavaScript区域开始标识
<!-- //HTML的注释符
vara="hello,I am not a student,I do not like computer!”:
//定义变量,并赋初值
varb=0;
var c="";
if(docurmenLall){ //如果是IE浏览器,则执行花括弧内的语句,否则弹出一个警告对
//话框,在对话框中显示“对不起,此Web页无法显示”
while((2)){ //查找字符串a中是否有not,如果有则将字符串a中的not,去掉,
//然后赋给变量c。
(3)=a.substring(b,a.indexOf(”not",b))
b+=a.indexOf("not",b)+4;
c+=a.substring( (4) a.length);
window.alert(“单击确定显示修改后的字符串”)://弹出一个警告对话框,在对话框中显示
//“单击确定显示修改后的字符串”
document.write("The final string is:<br>)"; //在Web页内输出的字符串, “The final
//suing is,并加回车符
document.write(c+"<br>',); //在Web页内输出修改后的字符串,并加回车
}
else
window.alert(“对不起,此Web页无法显示”)
function folder(){ //定义一个函数
(5) ('http://www.dlrin.edu.cn’,’my home page',)
//自动开启收藏夹,括号中的地址可以随便换。通过在
<body ***>标识中加入on Unload=folder()来激活此函数
}
//--> //HTML 的注释符
</script>
<!--省略部分为HTML框-->
</html>
第5题
A.1,1
B.2,2
C.3,3
D.4,4
E.6
F.3 G. 死循环 H. 0 I. 15 J. 14 K. 不确定 L. 0 M. P的值不等于12345并且n的值小于3 N. P的值等于12345并且n的值大于等于3 O. P的值不等于12345或者n的值小于3 P. P的值等于12345或者n的值大于等于3 Q. 20 R. 31 S. 321 T. 210 U. i=10,sum=9 V. i=9,sum=9 W. i=2,sum=1 X. 运行出现错误 Y. 20 Z. 19 [. 10 . 9 ]. 0 ^. 1 _. true `. 非0 A.0
B.1
C.true
D.非0
E.while循环执行10次
F.循环是无限循环 g. 循环体语句一次也不执行 h. 循环体语句执行一次 i. for
第6题
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
试题程序:
include <string.h>
include <stdio.h>
include <ctype.h>
fun(char *p)
{ int !i, t; char c[80];
for(i=0,t=0;p[i];i++)
if(!isspace(*(p+i))) c[t++]=p[i];
/**********************************/
c[t]='\0';
strcpy(p,c);
}
main()
{char c,s[80];
int i=0;
printf("Input a string: ");
c=getchar();
while(c!='')
( s[i]=c;i++;c=getchar();}
s[i]="\0";
fun(s);
puts(s);
}
第7题
【说明】
以下【C程序】的功能是,逐一从指定课程成绩文件中读入学生的考号和成绩,对同一学生汇总他(她)的总成绩,并按如图6-14所示格式输出名次(按总成绩由高到底的顺序)、总成绩、同一名次的学生人数、同一名次学生的学号(按学号由小到大的顺序)。
该应用程序约定学生学习课程不超过30种,课程成绩文件的第1个数字就是课程号。统计过程中,同一课程号的成绩文件不能重复输入。
该应用程序采用链表结构存储学生的相关信息,链表中的每个表元对应一位学生。在数据输入过程中,形成一个按学号从小到大顺序链接的有序链表。当数据输入结束后,程序按总成绩从高到低,学号从小到大的顺序对链表排序。最后程序按指定格式输出链表中的信息。
【C程序】
include<stdio.h>
define M 30
define NLEN 10
typedef struct node {
int cur_s; /* 最近输入成绩的科目*/
Char no[NLEN];
int score;
struct node *next;
} NODE;
int s[M], sp, ss, i, mark, order, C;
FILE *fp; NODE *h, *U, *V, *p;
Char fname[80], no[NLEN], ans;
main()
{ for(h = NULL, sp = 0; ;)
{ printf("输入科目成绩文件名(输入aaaa表示强行结束)。 \n");
while(1)
{ scanf("%s", fname);
if (strcmp(fname, "aaaa") == 0)
break;
if ((fp = fopen(fname, "r")) == NULL)
printf("不能打开文件%s, 请重新输入科目文件名。 \n", fname);
else
break;
}
if (strcmp(fname, "aaaa") == 0) break;
fscanf(fp, "%d", &ss); /* 输入科目号 */s[sp]=s;
for (i=0; s[i] ! = ss; 1++);
if ( (1) )
{ printf("该科目的成绩已输入,请输入别的科目成绩文件。\n");
continue;
}
sp++;
while (fscanf(fp, "%s%d", no, &mark) == 2)
{ /* 在链表中寻找最近输入的学号 */
for(v = h; v != NULL && strcmp(v-> no, no)<0; u=v, v= v-> next);
if (v !=NULL && strcmp(v->no, nb) == 0)
{ /* 该生已有成绩 */
if (V->cur_s != ss)
{ /* 该生的当前科目成绩是第一次输入 */
v->score += mark; /* 累计总成绩 */
v->cur_s = ss;
} /* 同一科目成绩重复输入,后输入成绩被忽略 */
}
else
{ p = (NODE *)malloc(sizeof(NODE)); /* 一位新的学生 */
strcpy(p->no,no);
p->score = mark;
p->cur_s = ss;
p-> next = v;
第8题
[程序8说明]
程序用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于。结束。
假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如表2-1所示。
上表表明,个人收入所得税是按照超额累计的税率来征收的。
设一个人的月应纳税所得额为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<stdio.h>
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[],iht m){
int j;
employee[O].Id=Id;
for(j=m; (1) ;j--);
return j;
}
void main(vpid)
{Info employee[MaxNUm+1);
long Wage;
double sum=0,K,S;
int i,j,N=0,Code;
scanf(“%d %Id”,&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 %”,&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.2If\n”,employee[i].ld,S);
sum+=S;
}
printf(“全体职工个人所得税总额:%10.2If\n”,sum);
}
第9题
求一个字符串的子串。 程序4:求一个字符串的字串,输入m,n,求一个字符数组m和n之间的部分。 例如,字符串str为“123456789”,m=3,n=5,对应的子串sub为“4”。对程序填空,并完成表格4-1和4-2。 程序4 #include <stdio.h> #include <stdlib.h> int main() { char str[100], sub[100]; int m, n, k, p; printf(”Enter string:”); gets(str); printf(”Enter m n:”); scanf(”%d%d”, &m, &n); for ( k=0; k <m &&【1】; k++ ) ; 【2】; for ( p="0;" 【3】; k++, p++ 【4】; 【5】; * 在串sub的后面加上串结束标记 printf (”sub="%s\n”," sub); system(“pause”); return 0; } 表格4-1完成程序填空 序号 语句 【1】 【2】 【3】 【4】 【5】 根据程序4,请回答表格4问题: 表格4-2 输入字符串的时候,请输入“abcdefghijk”,这个字符串的长度是? 输入m,n的时候,输入“3 5”,输出是什么 3”,输出是什么 输入m,n的时候,输入“5 输入m,n的时候,输入“25 30”,输出是什么 如果在输入字符串之后,需要打印字符串的长度,应该添加哪一个语句? 如果在必须要求,输入的m,n落在字符串的内部,应该如何修改程序>
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!