问答题[说明] 类Queue表示队列,类中的方法如表4-12所示。 表4-12 类Queue中方法说明表 方法 说明 IsEmpty() 判断队列是否为空,如果队列不为空,返回true;否则,返回false Enqueue(object NewNode) 入队操作 Dequeue() 出队操作。如果队列为空,则抛出异常 类Node表示队列中的元素;类EmptyQueueException给出了队列中的异常处理操作。 [Java代码] public class testmain //主类 public static viod main (string args[]) Queue q= new Queue; q.enqueue("first!"); q.enqueue("second!"); q.enqueue("third!"); (1) while(true) system.out.println(q.dequeue()); catch( (2) ) public class Queue //队列 node m_firstnode; public Queue()m_firstnode=null; public boolean isempty() if (m_firstnode= =null) return true; else return false; public viod enqueue(object newnode) //入队操作 node next = m_firstnode; if (next = = null) m_firstnode=new node(newnode); else while(next.getnext() !=null) next=next.getnext(); next.setnext(new node(newnode)); public object dequeue() (3) //出队操作 object node; if (is empty()) (4) else node =m_firstnode.getobject(); m_firstnode=m_firstnode.getnext(); return node; public class node //队列中的元素 object m_data; node m_next; public node(object data) m_data=data; m_next=null; public node(object data,node next) m_data=data; m_next=next; public void setobject(object data) m_data=data; public object getobject(object data) return m_data; public void setnext(node next) m_next=next; public node getnext() return m_next; public class emptyqueueexception extends (5) //异常处理类 public emptyqueueexception() system. out. println ( "队列已空!" );
问答题【说明】 给定函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。 【函数】 int fun(char *c,int status) if( (1) =='') return 1; else if( (2) return 0; main() int flag=1; char ch; printf("请输入一字符串,用点号结束输入!/n"); do ch=getchar(); flag=fun( putchar(ch); while(ch!='.'); printf("/n");
问答题【说明】 在矩形类中重载关系运算符“>=”,采用友元,比较的依据是矩形面积的大小。重载算术运算符“+=”,采用成员函数,更新矩形对象的长与宽,分别加上形参矩形的长与宽。重载算术运算符+,利用构造函数,采用友元。 【代码】 class Crect int length,witdth; public; CRect(int l,int w) length=l; width=w; friend int operator>=(CRect//比较面积 void operator+=(CRect//求长 (4) ;//求宽 friend operater+(CRect //利用构造函数
问答题[函数2.1说明] 函数strcpy的功能是将字符串str2的内容复制到字符申str1。[函数2.1] (1) strcpy (char *slr1, const char *str2) char * temp; while( * str2!='/0') *cp++ = (2) ; (3) ='/0'; return str1;[函数2.2说明] 函数int strcmp(const char *str1, const char *str2)的功能是按字典序比较两个字符串str1和str2的大小。当str1<str2时返回-1,当str1>str2时返回1,否则返回0。[函数2.2]int strcmp(const char *str1, const char *str2) while( *str1= =* str2) if(* s1= = (4) ) return 0; s1++; (5) ; if( *str1<*str2) return -1; return 1;
问答题[说明]
本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。
[Java代码]
import java. io. *:
public class User {
public String user;
public Siring pass;
public User() { }
public User( String u,String p) {
user=u;
pass=p;
}
public String {{U}}(1) {{/U}} () { return this. user; }
public String {{U}}(2) {{/U}} () { return this. pass; }
public static void main(String[] args) {
User ua[]={new User("Li","123456"), new User("wang","654321"),
new User("Song","666666")};
while(true) {
InputStreamReader reader = new InputStreamReader(System. in);
BufferedReader inpul = new BnfferedReader(reader);
System. out. print("Enter your name:");
String name = null;
try { name = input. readLine();}
catch (IOException ex) {}
if({{U}} (3) {{/U}}) break;
int i;
for (i=0;i<3;i++) {
if (name. equals(ua[i]. getUser())){
System. out. println("密码:"+ua[i].getPass());
{{U}} (4) {{/U}};
}
}
if ({{U}} (5) {{/U}}) System. out. println("该用户不存在!");
}
}
}
问答题试题二(共15分)阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。[说明]函数removeDuplicates(char*str)的功能是移除给定字符串中的重复字符,使每种字符仅保留一个,其方法是:对原字符串逐个字符进行扫描,遇到重复出现的字符时,设置标志,并将其后的非重复字符前移。例如,若str指向的字符串为“aaabbbbscbsss”,则函数运行后该字符串为“absc”。[C代码]
问答题【说明】
以下【C++程序】用于实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数主要有:
createList():创建按指数降序链接的多项式链表,以表示多项式:
reverseList():将多项式链表的表元链接顺序颠倒:
multiplyList(ListL1,ListL2)计算多项式L1和多项式L2的乘积多项式。
【C++程序】
#include <iostream.h>
class List;
class Item {
friend class List;
private:
double quot ;
int exp ;
Item *next;
Public:
Item(double_quot,int_exp)
{{{U}} (1) {{/U}};}
};
class List{
private:
Item *list;
Public:
List(){
list=NULL:
}
void reverseList();
void multiplyList(List L1,List L2);
void createList();
};
void List::createList()
{ Item *p,*U,*pre;
int exp;
double quot;
list = NULL;
while (1) {
cout << "输入多项式中的一项(系数、指数) :" << endl;
cin >> quot >> exp:
if ( exp<0 )
break ; //指数小于零,结束输入
if ( quot=0 )
continue;
p = list;
while ({{U}} (2) {{/U}}) { //查找插入点
pre = p;
p = p->next;
}
if ( p != NULL
continue ;
}
u ={{U}} (3) {{/U}};
if (p == list)
list = u;
else
pre->next = u;
u ->next = p;
}
}
void List::reverseList()
{ Item *p, *u;
if ( list==NULL )
return;
p = list ->next;
list -> next = NULL;
while ( p != NULL) {
u = p -> next;
p ->next = list;
list = p;
p = u;
}
}
void List::multiplyList ( List L1, List L2 )
{ Item *pL1,*pL2,*u;
int k, maxExp;
double quot;
maxExp ={{U}} (4) {{/U}}:
L2.reverseList();
list=NULL;
for ( k = maxExp;k >= 0;k-- ){
pL1 = L1.list;
while ( pL1 != NULL
pL2 = L2.1ist;
while (pL2 NULL
quot = 0.0;
while (pL1 != NULL
pL2 = pL2 -> next;
} else if ( pL1 -> exp + pL2 -> exp > k )
pL1 = pL1 -> next;
else
pL2 = pL2 -> next;
}
if ( quot !=0.0 ) {
u = new item( quot, k );
u -> next = list;
list = u;
}
}
reverseList ();
L2. reverseList ():
}
void main()
{ List L1,L2,L;
cout << "创建第一个多项式链表/n";
L1.createList();
cout << "创建第二个多项式链表/n";
L2.createList();
L.multiplyList (L1,L2);
}
问答题[函数2.1说明]
函数void find(int *a, int n, int * max, int * min)的功能是在长度为n的整型数组a中,查找最大元素和最小元素的下标。main()中给出了调用find函数的一个实例。
[函数2.1]
#include<stdio.h>
void find(int *a, int n,int *max,int * min)
{ int i;
*max =* min=0;
for(i=1;i<n;i+ +)
if(a[i]>a[* max]) {{U}}(1) {{/U}};
else if(a[i]<a[*min]) {{U}}(2) {{/U}};
return;
main()
{ int a[]={4,6,8,9,0,6},max,min;
find(a,6,{{U}} (3) {{/U}});
printf("%5d%5d/n", max,min);
}
[函数2.2说明]
以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符串分别是abcdefg和abceef,则输出为abc。
[函数2.2]
#include <stdio.h>
main()
{ char str1[100],str2[100],str[100],c;
int i=0,s;
printf("/nInput string 1:");gets(str1);
printf("/nInput string 2:");gets(str2);
while(({{U}} (4) {{/U}})
i++;
}
printf("%s/n",str);
}
问答题【说明】本应用程序的运行窗口如图2所示。窗口中的3个文本框和两个按钮名称分别为Txt_salary、Txt_base、Txt_tax、Cmd_compute和Cmd_quit。运行时,文本框Txt_base存放的是免税金额基数(应扣除的基本费用co)当用户在文本框Txt_salary中输入月收入(工资或薪金)并单击“计算”按钮Cmd_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为800元,税率如表1所示。级数月应纳税所得额适用税率(%)123456789不超过500元的部分501元~2000元的部分2001元~5000元的部分5001元~20000元的部分20001元~40000元的部分40001元~60000元的部分60001元~80000元的部分80001元~100000元的部分超过100000元的部分51015202530354045设一个人的月应纳税所得额为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元。在开发过程中,需要编写的程序代码如下;【程序】OptionBase0PrivateSubCmd_compute_Click()Dimpaylevel,taxPratepaylevel=Array(0,500,2000,5000,20000,40000,60000,80000,100000,_1000001)taxPrate=Array(5,10,15,20,25,30,35,40,45)K=(1)S=0If(K>0)ThenForj=1To9If(2)ThenS=S+(paylevel(j)-paylevel(j-1))*taxPrate(j-1)/100ElseS=S+(3)*taxPrate(j-1)/100ExitForEndIfNextjEntIf(4)=Str$(S)EndSubPrivateSubCmd_quit_Click()EndEndSubPrivateSubForm_Load()Txt_tax.Text=""Txt_salaw.Text=""Txt_base.Text=800Txt_tax.Locked=TrueTxt_base.Enabled=(5)EndSub
问答题【说明】
已知某数列的前两项为2和3,其后继项根据当前最后两项的乘积按下列规则生成:
(1)若乘积为一位数,则该乘积即为数列的后继项;
(2)若乘积为二位数,则该乘积的十位数和个位数依次作为数列的两个后继项。
本程序输出该数列的前n项以及它们的和。其中,函数sum(n,pa)返回数列的前n项之和,并将生成的前n项存放于首指针为pa的数组中。程序中规定输入的n值必须大于2并且不超过给定的常数值MAXNUM。
例如:若输入n值为10,则程序输出如下内容:
sum(10)=44
2 3 6 1 8 8 6 4 2 4
#include<stdio.h>
#define MAXNUM 100
int sum(int n,int *pa){
int count,total,temp;
*pa=2;
{{U}} (1) {{/U}}=3;
total=5; count=2;
while(count++<n){
temp+=*(pa-1)**pa;
if(temp<10){
total+=temp;
*(++pa)=temp;
}
else{
{{U}} (2) {{/U}}=temp/10;
total+=*pa;
if(count<n){
count++;pa++;
{{U}} (3) {{/U}}=temp%10;
total+=*pa;
}
}
}
{{U}} (4) {{/U}};
}
main(){
int n,*p,*q,num[MAXNUM];
do{
printf("Input N=?(2<N<%d):",MAXNUM+1);
scanf("%d",
}while({{U}} (5) {{/U}});
printf("/nsum(%d)=%d/n",n,sum(n,num));
for(p=num,q={{U}} (6) {{/U}};p<q;p++)printf("%4d",*p);
printf("/n");
}
问答题【说明】 单击窗体上的“测试”(cmdTest)按钮,出现一个输入框,要求输入一串字符,将该字符串中的非字母字符删除后,显示在窗体中的一个文本框(txtShow)中。 【程序代码】 Private Sub cmdTest_Click( ) Dim strT1 ,strT2 As String Dim strCh As (1) Dim intL As Integer Dim intl As Integer strT1 = (2) ("请输入一串字符","字符串输入") intL = (3) strT2 = " " For intl = I To intL strCh = Mid ( strT1, intl, 1 ) If(strCh>"A"And (4) ) Or (strCh >"a" And suCh <"z" )Then strT2 = strT2 + strCh End If Next intl txtShow. Text= (5) End sub
问答题阅读以下技术说明和C语言代码,根据要求回答问题1至问题6。
【说明】 有两个进程(编号分别为0和1)需要访问同一个共享资源。为了解决竞争条件(race
condition)的问题,需要实现一种互斥机制,使得在任何时刻只能有一个进程访问该共享资源。以下【C代码1】给出了一种实现方法。
【C代码1】 int flag[2];
/+flag数组,初始化为FALSE*/ Enter_Critical_Section(int
my_task_id, int other_task_id) { while
(flag[other_task_id]==TRUE); /*空循环语句*/
flag[my_task_id]=TRUE; }
Exit_Critical_Section(int my_task_id, int other_task_id) {
flag[my_task_id]=FALSE; }
当一个进程要访问临界资源时,就可以调用【C代码1】给出的这两个函数。【C代码2】给出了进程0的一个例子。
【C代码2】 Enter_Critical_Section(0,1);
……使用这个资源…… Exit_Critical_Section(0,1);
……做其他的事情……
问答题【应用说明】本应用运行时,由用户输入一个正整数n后自动产生n个正整数,然后按照用户的指定要求对该组数进行处理。该应用的运行界面如下图所示:1.窗体中有两个文本框。(txtSrc,txtObj)、两个标签(lblSrc,lblObj)、三个命令按钮(cmdGendat,cmdProc,cmdQuit)和一个弹出式菜单(procMenu,初始时不可见)。2.文本框txtSrc(由标签lblSrc提示)用于显示产生的数据,文本框txtObj(由标签lblObj提示)用于显示处理结果,要求每行显示一个整数。3.程序启动时,命令按钮cmdProc(运算要求)不可用。单击命令按钮cmdGendat(产生数据)后,提示用户输入一个n的值并生成n个正整数存入数组元素a(1)~a(n),然后将数据逐行显示在txtSrc中,并设置命令按钮cmdProc可用。4.单击命令按钮cmdProc(运算要求)后弹出菜单。选择菜单项并单击后,进行相应处理并将结果显示在txtObj中,同时将lblObj的标题改为该菜单项表示的处理命令。弹出式菜单“运算要求”的结构如下表所示:{{B}}标题{{/B}}{{B}}名称{{/B}}{{B}}层次{{/B}}运算要求procMenu1排序Sorting2递增排序Ascend3递减排序Descend3找特殊数SpecNum2中位数MidNum3求均数AvgNum3一个整数序列的中位数是指对该序列进行非递减(增)排列后最中间位置上的元素。若序列长度为偶数,则取中间两个元素的平均值为其中位数。【属性设置】为实现单击命令按钮cmdProc后弹出“运算要求”菜单(procMenu),设计时需将procMenu的{{U}}(1){{/U}}属性设置成false。供(1)选择的属性:DefaultEnabledScaleModeStyleVisible【VisualBasic程序代码】Dima()ASInteger,nAsIntegerPrivateSubForm_Load()txtSrc.Text="":txtObj.Text="":{{U}}(2){{/U}}=FalseEndSubPrivateSubcmdGendat_Click()'生成正整数序列并存入数组aOnErrorGoToErrorhandlern=InputBox$("请输入数组元素个数:","输入序列长度")If(n<1)ThenMsgBox"输入数据错误!",vbOKOnly,"提示:"GoToErrorhandler:EndIfReDima(n)AsIntegers=""Fori=1Ton'将生成的正整数存入a(1)~a(n)中a(i)=Int(Rnd*10000):s=s&Str$(a(i))&vbCrLfNexttxtSrc.Text=s{{U}}(3){{/U}}'设置运算要求命令按钮可用Errorhandler:EndSubPrivateSubcmdProc_Click()PopupMenuprocMenuEndSubPrivateSubMidNum_Click()'求中位数lblObj.Caption=MidNum.Caption&":"Fori=1Toround((n+1)/2>'用选择排序法对数组a进行部分排序a(0)=a(i):k=i'a(0)用作临时变量,暂存第i次选出的最小元素Forj=i+1TonIfa(j)<a(0)Thena(0)=a(j):k={{U}}(4){{/U}}EndIfNextIfk<>iThena(k)=a(i):a(i)=a(0)EndIfNextIfn/2-n/2>0Then'n为奇数时,取中间一个数txtObj.Text-Str$(a({{U}}(5){{/U}})Else'n为偶数时,取中间两个数的平均值txtobj.Text=Str$(Int((a(n/2)+a(n/2+1))/2))EndIfEndSub'其他代码略
问答题[说明]下图是一个简易文本编辑器程序的运行界面:用户打开磁盘上的某个文件后,可以直接对文本进行编辑,也可以利用界面提供的按钮完成相应操作。主要操作介绍如下:(1)打开文件:打开文件对话框,其中仅显示“*.txt”类型的文件。用户选中某一文件后,其内容将呈现于界面文本框内;(2)查找:提示用户输入要查找的内容,将首次出现的查找内容以蓝色高亮标记;(3)替换:若文本框中已选中某段文本,则提示用户输入要替换的内容,在文本框中完成替换。在开发过程中,文本框名为Text1,“打开文件”、“保存文件”、“查找”、“替换”、“退出”按钮分别命名为Command1至Command5。[VisualBasic代码]DimfileNameAsStringDimfsoAsNew(1),tsAsObject’打开文本文件PrivateSubCommand1_Click()CommonDialog1.Filter="*.txt"CommonDialog1.ShowOpenfileName=(2)’保存所打开的文件名Setfso=CreateObjeet("Scripting.FileSystemObject")Setts=fso.OpenTextFile(fileName,ForReading)IfNotts.AtEndOfStreamThenText1.Text=(3)EndIfts.CloseEndSub’保存文本文件PrivateSubCommand2_Click()Setts=fso.OpenTextFile(fileName,ForWriting)(4)ts.CloseEndSub’查找字符串PrivateSubCommand3_Cliek()DimsearchAsString,positionAsIntegersearch=InputBox("输入要查找的字符串:")position=InStr(Text1.Text,search)’在文本中查找字符串Ifposition>0Then’若找到指定的字符串Text1.SelStart=position-1’设置选定文本的起始位置Text1.SelLength=Len(search)’设置选定文本的长度ElseMsgBox"没有发现要查找的字符串"EndIfEndSub’替换选中的字符串PrivateSubCommand4_Click()DimobjectAsStringIf(5)>0Then’若已经选中了要替换的文本object=InputBox("输入要替换的字符串:")Text1.SelText=object’替换文本ElseMsgBox"请先选中要替换的文本!"EndIfEndSub’退出程序PrivateSubCommand5_Click()EndEndSub
问答题
问答题[说明]
以下程序的功能是实现堆栈的一些基本操作。堆栈类stack共有三个成员函数:empty判断堆栈是否为空;push进行人栈操作;pop进行出栈操作。
[C++程序]
#include "stdafx. h"
#include <iostream, h>
eonst int maxsize = 6;
class stack {
float data[ maxsize];
int top;
public:
stuck(void);
~ stack(void);
bool empty(void);
void push(float a);
float pop(void);
};
stack: :stack(void)
{ top =0;
cout < < "stack initialized." < < endl;
}
stack:: ~stack(void) {
cout < <" stack destoryed." < < endl;
bool stack:: empty (void) {
return{{U}} (1) {{/U}};
void stack: :push(float a)
if(top= =maxsize) {
cout < < "Stack is full!" < < endl;
return;
data[top] =a;
{{U}}(2) {{/U}};
}
float stack:: pop (void)
{ if({{U}} (3) {{/U}}){
cout< < "Stack is undcrflow !" < < endl;
return 0;
{{U}}(4) {{/U}};
return{{U}} (5) {{/U}};
}
void main( )
{ stack s;
coat < < "now push the data:";
for(inti=l;i< =maxsize;i+ +) {
cout< <i< <" ";
s. push(i);
}
coat < < endl;
cout< < "now pop the data:";
for(i = 1 ;i < = maxsize ;i + + )
cout< <s. pop()< <" ";
}
问答题[说明]
本程序接收输入的学生信息,包括学号、姓名,成绩,原样输出信息并计算学生的平均成绩。其中学生粪Stud除了包括no(学号)、name(姓名)和grade(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有一个构造函数、一个普通成员函数disp()和一个静态成员函数 avg()用于计算平均分。
[C++程序]
#include <stdio.h>
#include <string.h>
class Stud
{ int no;
char name [10];
int deg;
{{U}}(1) {{/U}} int sum;
static int num;
public:
Stud(int n,char na[],int d) {
no=n;
deg=d;
strcpy(name,na);
{{U}}(2) {{/U}};
{{U}}(3) {{/U}};
}
static double avg() { return {{U}}(4) {{/U}};}
void disp() { printf("% -5d% -8s%3d/n",no,name,deg);}
};
int Stud:: sum = 0;
int Stud:: num=0;
void main()
{
Stud s1(1,"Li",81), s2(2,"Zhao",84.5),s3(3,"Zhang",87);
printf("/nNo. Name Grade/n");
s1.disp();
s2.disp();
s3.disp();
printf("Avg=%g/n/n", {{U}}(5) {{/U}});
}
问答题【函数2.1说明】
递归函数sum(int a[], int n)的返回值是数组a[]的前n个元素之和。
【函数2.1】
int sum (int a[],int n)
{
if(n>0) return{{U}} (1) {{/U}};
else{{U}} (2) {{/U}};
}
【函数2.2说明】
有3个整数,设计函数compare(int a,int b,int c)求其中最大的数。
【函数2.2】
int compare (int a, int b, int c )
{ int temp, max;
{{U}}(3) {{/U}}a:b;
{{U}}(4) {{/U}}temp:c;
}
【函数2.3说明】
递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回 1,否则返回0。
【函数2.3】
int dec( int a[], int n )
{
if(n<=1) return 1;
if(a[0]<a[1]) return 0;
return{{U}} (5) {{/U}};
}
问答题【算法说明】 为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为X轴,垂直向下方向设为Y轴。 设某种显示器的像素为128×128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127, 0≤y≤127。 现用一维数组MAP来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,“1”表示该像素“亮”,“0”表示该像素“暗”。数组MAP的各个元素与屏幕上的像素相对应后,其位置可排列如下: MAP(0),MAP(1),…,MAP(7) MAP(8),MAP(9),…,MAP(15) MAP(1016),MAP(1017),…,MAP(1023) 下述算法可根据用户要求,将指定坐标(x,y)上的像素置为“亮”或“暗”。 在该算法中,变量X,Y,V,S,K都是16位无符号的二进制整数。数组BIT中的每个元素BIT(K)(K=0,…,15)的值是左起第K位为1,其余位均为0的16位无符号二进制整数,即BIT(K)的值为215-k。 【算法】 第1步 根据用户指定像素的位置坐标(x,y),算出该像素的位置所属的数组元素 MAP(V)。这一步的具体实现过程如下: 1.将x送变量X,将y送变量Y; 2.将Y左移{{U}} (1) {{/U}}位,仍存入变量Y; 3.将X右移{{U}} (2) {{/U}}位,并存入变量S; 4.计算Y+S,存入变量V,得到像素的位置所属的数组元素MAP(V)。 第2步 算出指定像素在MAP(V)中所对应的位置K(K=0,…,15)。这一步的具体实现过程如下:将变量X与二进制数{{U}} (3) {{/U}}进行逻辑乘运算,并存入变量K。 第3步 根据用户要求将数组元素MAP(V)左起第K位设置为“1”或“0”。这一步的具体实现过程如下: 1.为把指定像素置“亮”,应将MAP(V)与BIT(K)进行逻辑{{U}} (4) {{/U}}运算,并存入MAP(V)。 2.为把指定像素置“暗”,应先将BIT(K)各位取反,再将MAP(V)与BIT(K)进行逻辑{{U}} (5) {{/U}}运算,并存入MAP(V)。
问答题【说明】 下面程序完成从键盘读入一个字符串,然后采用parseInt方法将其转换为一个相应的整数。 import java.io.*; public class testThrows public static (1) readString() (2) IOException int ch; String r=""; boolean done=false; while( (3) ) ch=System.in.read(); if(ch<0 || ch=0xd) //处理回车符中第一个符号 done=true; else r=r+(char)ch; return r; public static void main(Stling args[]) String str; (4) str=readString(); (5) (IOException e) System.out.println("error"); return; System.out.println("input integer: "+Integer.parselnt(str));
