阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
给定函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。
【函数】
int fun(char *c,int status)
{
if((1)=='')
return 1;
else
{
if((2)&&(3)&&(4))
(5)='A'-'a';
return 0;
}
}
main()
{
int flag=1;
char ch;
printf("请输入一字符串,用点号结束输入!\n");
do {
ch=getchar();
flag=fun(&ch,flag);
putchar(ch);
}while(ch!='.');
printf("\n");
}
第1题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,则此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去,直到所有的人都出圈为止。
现要求按出圈次序,每10人一组,给出这n个人的顺序表。
设n=100,s=1,m=10。
(1)将1到n个人的序号存入一维数组p中;
(2)若第i个人报数后出圈,则将p置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置:
(3)重复第(2)步,直至圈中只剩下p[1]为止。
include<stdio.h>
define N 100
define S 1
define M 10
void main()
{
int p[100],n,s,m;
m=M;
n=N;
s=S;
int i,j,s1,w;
s1=s;
for(i=1;(1);i++)
(2)=i;
for(i=n;i>=2;i--)
{
s1=(3);
if(s1==0)s1=i;
w=(4);
for(j=s1;j<i;j++)
p[j-1]=p[j];
p[i-1]=(5);
printf("%4d",p[i])}
}
第2题
下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)。
①sq=sh; ②sh=tr; ③tr=sq; ④sq=tr; ⑤sh=sq;
第3题
阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
在窗体上设计两个文本框和两个标签,标签上显示:“摄氏温度:”和“华氏温度:”,文本框一个用于输入摄氏温度数,一个用于输出对应的华氏温度。摄氏温度与华氏温度的转换公式为:c=(5/9)×(f-32)
要求:对输入的摄氏温度数有检查功能,以拒绝接收非数字字符。运行界面如图所示。
【Visual Basic代码】
Private Sub Commandl_Click ()
Text1 = ""
Text2 = ""
Text1.Enabled = True
Text2.Enabled = True
Text1.SetFocus
End Sub
Private Sub Command2 Click ()
End
End Sub
Private Sub Form. Load ()
Text1 = ""
Text2 = ""
Text1.Enabled = False
Text2.Enabled = False
End Sub
Private Sub Textl_Change ()
Text2.Text = (1)
End Sub
Private Sub Textl_KeyPress (KeyAscii As (2) )
If (3) Then
If Chr ( KeyAscii ) < "0" Or (4) Then
(5)
End If
End If
End Sub
第4题
阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在对应栏内。
[说明]
以下是一账号和密码输入的检验程序。对输入的账号和密码规定如下所述。
(1)账号为不超过6位的数字,密码为4位字符,在本题中,密码假定为“Pass”。
(2)密码输入时在屏幕上不显示输入的字符,而以“*”代替。
(3)当输入不正确,如账号为非数字字符或密码不正确时,显示有关信息。
(4)当输入正确时,关闭密码窗口,显示记事本窗口。
按要求完成有关控件的其他属性的设置,编写确定按钮的单击事件过程。相关界面如下:
(可能要用到的单词:MultiLlne,ScrollBars,PasswordChar,MaxLength)密码窗口frmPass控件设置如下表所示。
记事本窗口frmNotepad 控件设置如下表所示。
在密码窗口的属性窗口,对密码文本框设置属性MuniLine 为False。
[Visual Basic 代码]
Private Sub cmd OK_ Click ( )
If txtPas. Text= "Pass" Then
Load frmNotePad
frmNotePad. Show
frmPass.Hide
Else
MsgBox "密码错误! ", vbExclamation + vbRetryCancel, "重输入密码"
txtPas. Text= " "
txtPas. SetFocus
(1)
End Sub
Private Sub Form_ Load ( )
txtPas.PasswordChar = "*"
xtNo.MaxLength = 6
End Sub
Private Sub txtNo LostFocus (
Dim i As Integer, s As String * 1
Fori= 1 To (2)
s = Mid ( txtNo.Text, i, 1 )
If (3) Or (4) Then
MsgBox "账号有非数字符号! ", vbExclamation + vbRetryCancel, "1 输入账号"
(5)
txtNo. SetFocus
Exit Sub
End If
Next i
End Sub
第5题
阅读以下程序说明和C程序,将应填入(n)处的子句,写在对应栏内。
【程序说明】
函数int commstr(char * str1,char * str2,int * sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。
函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。
【程序】
int strlen(char * s)
{char *t=s;
while( * ++);
return t-s-1;
}
int commstr(char) *str1,char *str2,int *sublen
{ char*s1, *s2;
int count=0,len1 ,len2,k,j,i,p;
len1:=strlen(str1)
len2 = strlen(str2);
if(len1>len2)
{s1=str1 ;s2=str2;}
else {len2 = len1;s1 = str2;s2 = str1;}
for(j=len2;j>0;j--) /*从可能最长子串开始寻找*/
{for(k=0;(1)<:len2;k++) /*k为子串s2的开始位置*/
{for(i=0;s1[(2)]!='\0';i++;) /*i为子串s1的开始位置*/
{ /*s1的子串与s2的子串比较*/
for (p=0;p<j)&&(3);p++);
if ((4)) /*如果两子串相同*/
{for(p=0);p<j;p++} /*输出子串*/
printf ("%c",s2[k+p]);
printf ("\n");
count++;/*计数增1 */
}
}
}
if (count>0) break;
*sublen=(count>0)?(5):0;
return count;
}
第6题
阅读以下说明和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)
第7题
阅读以下说明和C++程序,将应填(n)处的字句写在对应栏内。
[说明]
设计一程序,输入10个整数到一个数组中,调整这10个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。
[C++程序]
include <iostream.h>
define SIZE 10
void main ( )
{
int data [SIZE];
int m;
cout<<"请输入"<<SIZE<<"个整数:";
for ( m=0;m<SIZE; m++ ) (1);
int j=0,k=0;
for ( int i=1;i<SIZE; i++ )
if ((2)) j=i;
else if ( data[i]<data[k] ) (3);
if (j>0 ) {
int d=data[0];
(4);
data[k]=d;
}
if ( k<SIZE-1 )
{
int d=data [SIZE- 1 ];
data[SIZE- 1 ]=data[j];
(5);
}
cout<<end1<<" 排序后: ";
for ( m=0;m<SIZE; m++ ) cout<<data[m]<<" " ;
}
第8题
阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在对应栏内。
【说明】
在一些应用场合中,需要对用户的输入数据进行检查监控。以下VisualBasic程序实现了对新添加到 List列表的内容进行监控,拒绝向List列表添加重复信息。例如,在List列表中存在元素“a01001;a01002”,如果用户输入数据为“a01001”或“a01002”,系统则弹出提示信息,拒绝将新数据加入List列表;如果用户输入的数据不同于List列表中的任何一个元素,则作为新元素加入List中。VisualBasic界面显示如图所示。根据程序功能说明,完成程序代码。
【代码5-1】
Begin VB.Form. Forml
Caption = "List 列表拒绝添加重复信息"
//...窗体描述(略)
Begin VB.CommandButton Command2
Caption = "退出"
//...窗体描述(略)
End
Begin VB.CommandButton Commandl
Caption = "添加"
//...窗体描述(略)
End
Begin VB.TextBox Text1
//...窗体描述(略)
End
Begin VB.ListBox List1
Height = 1860
ItemData = "Form1.fix": 0000
Left = 1020
List = "Form1.fix": 0002
TabIndex = 0
Top = 525
Width = 2580
End
Begin VB.Labe1 Labe11
BackStyle = 0 'Transparent
Caption = "请输入编号"
//...窗体描述(略)
End
End
【代码5-2】
Attribute VB Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB Creatable = False
Attribute VB PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form. Load ()
List1.AddItem "a01001"
List1.AddItem "a01002"
End Sub
Private Sub Cormnand1 Click ()
Dim Myval As Long
For i=0 To (1)
(2)
If (3) Then
MsgBox "系统不允许重复输入,请重新输入"
Exit Sub
End If
(4)
(5)
End Sub
第9题
阅读下列说明和Visual Basic代码,将应填入(n)处的字句写在对应栏内。
[说明]
某小型家电超市开发了下面的程序,用以实现商品提货信息的汇总和输出功能。程序的运行界面如下图所示:
程序界面包含两个控件数组,分别是提货商品复选框控件数组Check1以及提货数量文本框控件数组Text1(相同下标的复选框和文本框相对应),提货清单的显示由List控件实现,按钮“打印清单”和“清除”分别名为Command1和Command2。
[Visual Basic代码]
’提货商品复选框的单击事件响应代码
Private Sub Check1_Click(Index As Integer)
If Check1 (Index). Value = 1 Then (1). SetFocus
End Sub
’按钮“打印清单”的单击事件响应代码
Private Sub Command1_Click()
Dim i, n, price As Integer, sum As Long, title As String
sum = 0
For i = O To 4
Select Case i
Case 0: title ="电视机": price = 3580
Case 1: title ="微波炉": price = 660
Case 2: title ="电冰箱": price = 1850
Case 3: title ="DVD": price = 2880
Case 4: title ="空调": price = 2500
End Select
If (2)= 1 And Textl(i). Text < > " " Then
(3) title & Text1(i).Text & "台"
n = n + Val(Textl(i))
sum =(4)
End If
Next i
If sum < > 0 Then
(3) "共:" & n &"台," &"合计金额:"& sum &"元。"
End If
End Sub
’按钮“清除”的单击事件响应代码
Private Sub Command2_Click()
(5)
End Sub
第10题
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[说明]
用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:
typedef struct node
{ datatype data;
stmct node * next;
} StackNode, * LinkStack;
由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。
下面各函数的功能说明如下:
(1)LinkStack Init_LinkStack():建立并返回空的链栈;
(2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空;
(3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针;
(4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。
[函数]
LinkStaek Init_LinkStack( )
{ returnNULL;
int Empty_LinkStack ( LinkStaek top)
if(top = = NULL) return 1;
else return 0;
LinkStaek Push_LinkStaek( LinkStaektop, datatype X)
{ StaekNode *s;
s=malloc (sizeof(StaekNode) );
(1)= x;
(2)= top;
(3);
return top;
}
LinkStaek Pop_LinkStack (LinkStacktop, datatype * x)
{ StaekNode *p;
if(top = = NULL) return NULL;
else{
* x =(4);
p = top;
(5);
free (p);
return top;
}
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!