程序员应用技术2021年1月21日每日一练
问答题阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。{{B}}[{{/B}}说明{{B}}]{{/B}}求连续函数f(x)的根(方程f(x)=0的解)的最简单方法是二分法。为此,首先需要在若干点上检查函数值的符号,如果发现f(a)与f(b)符号相反(a<b),则在区间(a,b)中必然存在f(x)的根。因为当x从a变到b时,连续函数的值将从正变到负(或从负变到正),必然要经过0。区间(a,b)就是根的初始范围。取该区间的中点m,如果f(m)=0,则根就是m。如果f(a)与f(m)符号相反,则根一定在区间(a,m)中;如果f(m)与f(b)符号相反,则根一定在区间(m,b)中。因此,根的范围缩小了一半。依此类推,将区间一半一半地分下去,当区间的长度很小(达到根的精度要求,例如0.001)时,或者当区间中点处的函数值几乎接近于0(即绝对值小于预先规定的微小量,例如0.001)时,近似计算就可以结束了。以下流程图描述了用二分法近似计算区间(a,b)中f(x)的根的过程。{{B}}[{{/B}}流程图{{B}}]{{/B}}
进入题库练习
问答题[Vsual Basic 程序代码] Private Sub CmdSelect_Cliek() For i = O To List2.ListCount - 1 If Listl.Text = List2.List(i) Then Exit Sub '不要重复选择 Next i List2.Addltem{{U}} (1) {{/U}} '在List2中增添List1中所选的项 End Sub Private Sub CrndSelAll_Click() List2.Clear '先删除List2中的已有项 For i = 0 To {{U}}(2) {{/U}} '对List1中所有各项做循环处理 List2.Addltem {{U}}(3) {{/U}} '将该项增添到 List2中 Next i End Sub Private Sub CmdDelete_Cliek() If List2.Listlndex >= O Then '如果List2中有选中的项, List2.Removeltem {{U}} (4) {{/U}} '则删除所选的项 End If End Sub Private Sub CmdDelAll_Cliek() {{U}}(5) {{/U}} End Sub
进入题库练习
问答题阅读以下说明和C函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。[说明1]函数f(doubleeps)的功能是:利用公式计算并返回π的近似值。[C函数1]doublef(doubleeps){doublen=1.0,s=1.0,term=1.0,pi=0.0;while(fabs(term)>=eps){pi=pi+term;n=______;s=______;term=s/n;}returnpi*4;}[说明2]函数fun(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符,形成一个十进制整数(最多8位)。例如,若str中的字符串为“iyt?67kpf3g8d5.j4ia2e3p12”,则函数返回值为67385423。[C函数2]longfun(char*str){inti=0;longnum:0;char*p=str;while(i<8++i;}______;}returnnum;}
进入题库练习
填空题阅读以下说明和C++代码,将解答写入对应栏内。 [说明] 类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)~(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。 [C++程序] 01 #include<iostream.h> 02 using namespace std; 03 class Stock 04 protected: 05 Stock()shares=0; share_val=0.0;Output(); 06 Stock(int n=0,double pr=3.5): (1) //初始化shares值为n 07 share_val=pr; 08 Output(); 09 ; 10 void~Stock(); 11 void Output()(cout<<shares<<';'<<share val<<endl; 12 public: 13 //成员函数 14 private: 15 //成员变量 16 int shares; 17 double share_val; 18 ; 19 20 void main() //构造三个Stock对象a,b,C 21 Stock a(1); 22 Stock b; 23 Stock C;Stock(); 24 //其他代码省略,且代码无输出 25 程序运行后的输出结果为: 1:3.5 (2) (3)
进入题库练习
问答题[说明]给定一个十进制整数A,将其转换为R进制数的方法是:将A的整数部分逐次除以R,直到商等于0为止,将所得的余数由低位到高位排列在一起,就得到了对应R的进制数。以A=11,R=2为例,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1中各式的余数依次为:1,1,0,1,于是与A对应的二进制数为1011。下面的流程图实现了将十进制数2597转换为八进制数的功能,其中:(1)循环1执行除法运算并将余数依次记录在数组a中(假定数组长度足够长),如a[1],a[2],……,a[k];(2)循环2则用于将这些余数按逆序输出,即a[k],a[k-1],……,a[1];(3)图中i,j分别是循环1和循环2中的循环变量;(4)图中q用于记录每次除法所得的商值。[流程图]
进入题库练习
问答题【程序2.1说明】 求所有满足如下条件的三位数:它除以11得的商等于它各位数字的平方和。例如 550,除以11商为50,50=52+52+02。 【程序2.1】 void main() int i, j,n,s; for(i=100;i<=999;i++) n=i; j=n/11; s=0; while( (1) ) (2) n/=10; if( (3) ) printf("%d/t",i); 【程序2.2说明】 本程序输入一字符串,将其中的大写字母改变成小写字母。 【程序2.2】 void main() int i=0; char s[120]; scanf("%s",s); while( (4) ) if( (5) ) s[i]=s[i]- 'A'+'a'; i++; printf("%s/n",s);
进入题库练习
填空题1】 void sort(char *s,int num) int i,j--num; char t; while(j-->1) for(i=0;i<j;i++) if(s[i]>s[i+1]) t=s[i]; s[i]=s[i+1]; s[i+1]=t; void main() char *s="CEAedea"; sort(s,5); printf("%s",s); 上述程序的结果是 (1) 【函数2.2】 void main() union int ig[6]; Char s[12]; try; try. ig[0]=0x4542; try.ig[1]=0x2049; try. ig[2]=0x494a; try.ig[3]=0x474e; try. ig[4]=0x0a21; try.ig[5]=0x0000; pintf("%s",try, s); 上述程序的结果是 (2) 【函数2.3】 void main() char *letter[5]= "ab","efgh","ijk","nmop","st"; char **p; int i; p=letter; for(i=0;i<4;i++) . printf("%s",p[i]); 上述程序的结果是 (3) 【函数2.4】 main() int i=4,j=6,k=8,*p= int x,y,z; x=p== y=3*-*p/(*q)+7; z=*(r= printf("x=%d,y=%d,z=%d",x,y,z); 上述程序的结果是 (4) 【函数2.5】 int a[]=5,4,3,2,1 ; void main() int i; int f=a[0]; int x=2; for(i=0;i<5;i++) f+=f*x+a[i]; printf("%d",f); 上述程序的结果是 (5)
进入题库练习
问答题【说明】 希赛教育集团公司为发展生产向社会公开招聘M个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩从高分至低分的顺序进行排队录取。公司的录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其第二志愿考虑录取。 程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都做了录取处理。 程序中,类型STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组rz[]的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。 【程序】 #include<stdio.h> #include<malloc.h> #define M 20 #define PEMARK 5 typedef struct stu{ int no, total, z[2], sortm, zi; struct stu *next; }STU; struct rzmode{ int Imt, count; STU *next; }rz[M]; STU *head=NULL, *over=NULL; int all FILE *fp; char dataf[]="pp07.dat"; print(STU *p){ for(;p!=NULL;p=p->next) printf("%d(%d)/t",p->no,p->total); } insert(STU **p, STU *u){ STU *v, *q; for(q=*p;q!=NULL;v=q,{{U}} (1) {{/U}}) if(q->sortm<u->sortm)break; if(q==*p){{U}} (2) {{/U}}; else{{U}} (3) {{/U}}; U->next=q; } main(){ int zn, i, no, total, z1, z2; STU *p, *v, *q; fp=fopen(dataf, "r"); if(fp==NULL){ printf("Can't open file %s./n",dataf); exit(0); } fscanf(fp, "%d", for(all=0,i=1;i<=zn;i++){ fscanf(fp,"%d", rz[i].count=0;rz[i].next=NULL; all+={{U}} (4) {{/U}}; } for(;;){ if((fscanf(fp, "%d%d%d%d", p=(STU*)malloc(sizeof(STU)); p->no=no; p->total=p->sortm=total; p->zi=0;p->z[0]=z1;p->z[1]=z2; {{U}} (5) {{/U}}; } fclose(fp); for(;all ){ p=head; head=head->next; if(rz[p->z[p->zi]].count<{{U}} (6) {{/U}}){ rz[p->z[p->zi]].count++; insert( all--; continue; } if(p->zi>=1){ p->next=over;over=p; continue; } p->sortm-=DEMARK;{{U}} (7) {{/U}}; insed( } for(i=1;i<=zn;i++){ printf("%d:/n",i); print(rz[i].next); printf("/n"); } printf("over:/n");print(head); print(over);printf("/n"); }
进入题库练习
问答题试题七(15分,每空3分)阅读以下应用说明及VisualBasic部分程序代码,将应填入(n)处的字句写在答题纸的对应栏内。[应用说明]设一个简单的“通讯录”存储在一个ACCESS类型的数据库表中,包括姓名、电话和email三个字段。下面的应用程序实现对“通讯录”数据库表中的记录进行增加、删除及修改处理,其运行界面如下:(1)数据控件(data1)与“通讯录”数据库表相连接,用户可通过“??”和“??”按钮指定表中的当前记录。(2)文本框Txt_name、Txt_phone和Txt_email分别与数据库表中的“姓名”、“电话”和“email”字段绑定,用于显示当前记录的内容。(3)应用程序启动时,“确定”按钮(Cmd_ok)和“取消”按钮(Cmd_cancel)不可操作,文本框中显示表中的第一条记录,这时文本框处于不可操作状态。(4)单击“增加”按钮(Cmd_add)或“修改”按钮(Cmd_modify)后,方可以编辑记录内容,同时“增加”、“删除”、“修改”和“退出”按钮变为不可操作状态。“增加”和“修改”操作需通过“确定”和“取消”按钮确认。(5)单击“删除”按钮(Cmd_del)后,弹出对话框,再单击“确定”按钮,当前记录被删除。[程序代码]PrivateSubenableop(isEnabledAsBoolean)Txt_name.Enabled=isEnabled:Txt_phone.Enabled=isEnabledTxt_email.Enabled=isEnabledCmd_ok.Enabled=isEnabled:Cmd_cancel.Enabled=isEnabledCmd_add.Enabled=NotisEnabled:Cmd_del.Enabled=NotisEnabledCmd_end.Enabled=NotisEnabled:Cmd_modify.Enabled=NotisEnabledEndSubPrivateSubForm_Load()Callenableop(False)Data1.RefreshIfData1.Recordset.RecordCount=0ThenCmd_del.Enabled=False:Cmd_modify.Enabled=(1)EndIfEndSubPrivateSubCmd_add_Click()'单击“增加”按钮的代码Callenableop((2))Data1.Recordset.AddNew'在数据库表中添加一个新记录Txt_name.(3)EndSubPrivateSubCmd_del_Click()'单击“删除”按钮的代码OnErrorGoToerror3ans=MsgBox("确定删除吗?",vbYesNo+vbInformation,"操作提示!")If(ans=vbYes)ThenData1.Recordset.(4)Data1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.RefreshEndIfExitSuberror3:MsgBoxErr.Description,vbOKOnly,"错误提示!"EndSubPrivateSubCmd_ok_Click()'单击“确定”按钮的代码OnErrorGoToerror1Data1.Recordset.(5)Callenableop(False)ExitSuberror1:MsgBoxErr.Description,vbOKOnly,"错误提示!"Data1.UpdateControlsCallenableop(False)EndSub’“修改”和“取消”按钮的程序代码(略)
进入题库练习
问答题【说明】 本程序根据输入的月份数,输出它是哪个季节。 【代码】 import java.io.*; public class season public static void main(String[] args) String strln=""; (1) in=new InputStreamReader(System.in); BufferedReader buffln=new BufferedReader(in); System.out.print("Please enter a month(1-12):"); try strln=buffln.readLine();//从命令行读入数据 catch( (2) ) System.out.println(e.toStdng()); int month= (3) (strln);//将字符串转换成整数型 int season=0; if(month<12 //计算季节的公式 (4) (season) case 1: System.out.println("the season is Springl"); break; case 2: System.out.println("the season is Summer!"); case 3: System.out.println("the season is Fall!"); case 4: System.out.println("the season is Winter!"); break; (5) ; System.out.println("this is not correct month!");
进入题库练习