阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
Fibonacci数列中头两个数均为1,从第三个数开始,每个数等于前两个数之和。下述程序计算Fibonacci数列中前15个数,并以每行5个数的格式输出。
[函数2.1]
include <stdio.h>
main()
{ int i,f,f1=1,f2=1;
printf("%5d%5d",f1,f2);
for(i=3;i<=15;i++){
f=(1);
printf("%5d",f);
if((2)= =0) printf("\n");
f1=12;
(3);
}
}
[函数2.2说明]
函数fun(char *str1,char *str2)的功能是将字符串str2拼接到str1之后。
[函数2.2]
fun(char *str1,char *str2)
{ int i,j;
for(i=0;str1[i]!='\0';i++);
for(j=0;str2[j]!='\0';j++) (4);
(5);
}
第1题
下而程序实现十进制向其他进制的转换。
[C++程序]
include"ioStream.h"
include"math.h"
include <conio.h>
typedef struct node{
int data;
node *next;
}Node;
class Transform
{
public:
void Trans(int d,int i); //d为数字;i为进制
void print();
private:
Node *top;
};
void Transform.:Trans(int d,int i)
{
int m,n=0;
Node *P;
while(d>0)
{
(1) ;
d=d/i;
p=new Node;
if(!n){
P->data=m;
(2) j
(3) ;
n++;
}
else{
p->data=m;
(4) ;
(5) ;
}
}
}
void Transform.:print()
{
Node *P;
while(top!=NULL)
{
p=top;
if(P->data>9)
cout<<data+55:
else
cout<<data;
top=p->next;
delete P;
}
}
第2题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
这是一个模拟渡口管理的算法。某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和火车类,上船有如下规定:同类车先到先上船,客车先于货车上渡船,且每上4辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替,若无货车等待则允许客车都上船。
程序中用到的函数有enqueue(queue*sq,elemtype*x)在队列sq中入队一个元素x;outqueue(queue*sq,elemtype*x)在队列sq中出队一个元素,并将其值赋给x;empty(queue*sq)判断队列sq是否为空队,若为空,返回1;否则返回0。
[C程序]
include<stdio.h>
void pass(){
queue bus,truct; /*bus表示客车队列,truck表示货车队列*/
char ch;
int n,tag; /* ]n为车号,tag为标志,tag=0表示客车,tag=1表示货车*/
intcount=0,countbus=0,counttruck=0; /*分别表示上渡船汽车数、客车数、货车数*/
while(1){
printf("输入命令: \n");
Scanf("%c",&ch);
switch(ch){
case'e':
case'E': printf("车号: \n");
Scanf("%d",&n);
printf("客车\货车(0\1): \n");
scanf("%d",&tag);
if( (1) )
enqueue(&bus,n);
else
enqueue(&truck,n);
break;
case'i':
case'I': while(count<10){
if( (2) && empty(&bus)==0){ /*客车出队*/
outqueue(&bus,&n);
printf("上船的车号为: \n");
count++;
(3) ;
}
eise if( (4) ){ /*货车出队*/
countbus=0;
outqueue(&truck,&n);
printf("上船的车号为: \n");
count++;
counttruck++;
}
else if(empty(&bus)==0){
(5);
outqueue(&truck,&n);
printf("没有10辆车排队轮渡\n");
count++;
countbus++;
}
else{
printf("没有10辆车排队轮渡\n");
retUrn;
}
break;
}
case'q':
case'Q':break;
}
if(ch=='q' || ch=='Q')
break;
}
}
第3题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【函数】
main ( )
{
int number[10];
input (number);
max min (number);
output (number);
}
input (number)
int number[10];
{int i;
for ( i=0;i<9;i++ )
scanf ( "%d,",&number[i] );
scanf ( "%d",&number[9] );
}
max_min ( array )
int array[10];
{int *max,*min,k,1;
int *p,*arr_end;
arr end=(1);
max=min=array;
for ( p=(2);p<arr_end;p++ )
if((3)) max=p;
else if ( *p<*min ) min=p;
(4);
l=*min;
(5);array[0]=1;1=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
output ( array )
int array[10];
{ int *p;
for ( p=array;p<array+9;p++ )
printf ( "%d,",*p );
printf ( "%d\n",array[9] );
}
第4题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
下面的程序构造一棵以二叉链表为存储结构的二叉树算法。
【函数】
BTCHINALR *createbt ( BTCHINALR *bt )
{
BTCHINALR *q;
struct node1 *s [30];
int j,i;
char x;
printf ( "i,x =" ); scanf ( "%d,%c",&i,&x );
while (i!=0 && x!='$')
{ q = ( BTCHINALR* malloc ( sizeof ( BTCHINALR )); //生成一个结点
(1);
q->1child = NULL;
q->rchild = NULL;
(2);
if((3);)
{j=i/2 //j为i的双亲结点
if(i%2==0
(4) //i为j的左孩子
else
(5) //i为j的右孩子
}
printf ( "i,x =" ); scanf ( "%d,%c",&i,&x ); }
return s[1]
}
第6题
阅读以下技术说明、流程图和C程序,根据要求回答问题1和问题2。
【说明】
如图6-13所示的程序流程图描述了对8位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果存在的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数10010110求补的结果时01101010。
设8位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[8]中。例如,二进制整数10010110存放在数组BIT后,则有BIT[1]=0,BIT[2]=1,…,BIT[7]=0,BIT[8]=1。若流程图中存在空操作,则用NOP表示。
以下待修改的【C程序】完成的功能是:对于给定的1个长正整数,从其个位数开始,每隔一位取1个数字(即取其个位、百位和万位等数字),形成1个新的整数并输出。例如,将该程序修改正确后,运行时若输入“9753186420”,则输出的整数为“73840”。
【C程序】
行号 C代码
01 include <stdio.h>
02 int main()
03 { long n,num;
04 int i;
05 do {
06 printf("请输入一个正整数:");
07 scanf("%1d",n);
08 }while(n<=0);
09 k = 1;
10 for (i=1;n>=0;i++) {
11 if (i%2=1) {
12 num = num + (n%10)*k;
13 k = k*10;
14 }
15 n = n/10;
16 }
17 printf("新数据为:%d\n",num);
18 return 0;
19 }
请将图6-13流程图中(1)~(5)空缺处的内容补充完整。其中,(1)空缺处按“循环变量名:循环初值,增量,循环终值”格式描述。
第7题
阅读以下说明和C程序代码,将程序补充完整。
[说明]
下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。
函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。
[C程序代码]
include<stdio.h>
include<stdlib.h>
int isPalm(long m)
{
int i=0, k=0;
char str[32];
while(m>0) {
str[k++]= _______ +'0';
m=m/10;
}
for(i=0; i<k/2; i++)
if(str[i]!=str _______ )return 0;
return 1;
}
int main( )
{
long n, a, t;
printf("input a positive integer: "); scanf("%ld", &n);
if(n<100||n>=1000)return -1;
while( _______ ) {
printf("%id->", n);
for(a=0, t=n; t>0; ){
a= _______ *10+t%10; t=t/10;
n= _______ ;
printf("%id\n", n);
system("pause"); return 0;
第8题
以下是与Visual Basic开发应用有关的5个问题。对每一个问题,请将解答填入对应栏内。
在Visual Basic中,标准模块文件、窗体文件和工程文件的扩展名是什么?请从下列选项中选择:
prg、prj、exe、vbp、form、frm、win、fra、std、bas、vbs、vbm
2.设某窗体上有一个命令按钮,其名称为Command Save,运行时该按钮上显示有“保存(S)”字样的信息。为使热键Alt+S与该命令按钮相关联,应该对按钮Command Save的Caption属性设置什么样的属性值?
3.设某窗口内有一个图像框Image Frame,以及两个命令按钮“放大”和“缩小”。单击“放大”按钮就会使该图像框的长和宽都放大20%;单击“缩小”按钮就会使该图像框的长和宽都缩小 20%(该图像框的左上角不动)。请分别写出这两个命令按钮的单击事件过程中的程序代码。
4.为使某个单选按钮初始时默认被选中,在开发时应怎样做?
5.若有语句Temp Value = Mag Box(“操作错误!”,vbOKCancel+vbCritical,“提示”),请简要描述程序运行时弹出的消息框的主要特征。
第9题
阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
本应用程序是一个小写数字转换成大写格式的转换器,其运行窗口如图5所示。
窗口中有两个标签(lblNumber和lblChinese)、两个文本框(txtNnmber和txtChinese)和一个命令按钮(cmdChange)。当单击按钮cmdChange时,将文本框txtNumber中数字转换成中文大写,并显示在文本框txtChinese中。例如,在文本框txtNumber输入0076845,单击cmdChange按钮,将在文本框txtChinese中显示“柒万陆仟捌佰肆拾伍”。
程序中调用的函数CChinse(Strdigit As String)的功能是先删除字符串的所有前导0,再调用函数Change(Strdigit As String),将数字字符串Strdigit转换成中文大写格式。
为了防止用户在文本框txtNumber输入非数字形式的字符,程序将以空字符代替所输入的非数字有形字符。
【程序】
Private Function Transfer(Strdigit As String)As String
′完成小写向大写的转换,这段代码省略
End Function
Private Function CChinese(Strdigit As String)As String
Dim intLen,intCounter As Integer
intLen = Len (Strdigit)
If intLen>0 Then
intcounter = 0
Do '过滤数字串Strdigit的前导0
intcounter = intcounter + 1
Loop Until Mid(Strdigit,(1))
intLen =(2)
Strdigit =(3) (Strdigit,intLen)
CChinese = Transfer(Strdigit)
End If
End Function
Private Sub cmdChange_Click( )
txtChinese.Text=CChinese((4)) '调用Cchinese函数
End Sub
Private Sub txtNumber_KeyPress(KeyAscii As Integer)
Select Case KeyAscii '根据输入字符的ASCII码的值进行判断
Case KeyAscii<32 '保留输入的控制字符
Case 48 To 57 '保留输入的数字字符
Case Else '其他情况以空字符代替
(5)=0
End Select
End Sub
第10题
光标)跳到应扣除的基本费用的输入文本框,而不用【Tab】键进行切换。请将以下文本框ht_salary的KeyDown(按键)事件过程中空缺的程序代码填写完整。
If KeyCode =13 Or KeyCode = 40 Then
(6)
End If
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!