题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C语言函数,将应填入(n)处。【说明】 已知1900年1月1日是星期一,下面的函数count_5_13

阅读以下说明和C语言函数,将应填入(n)处。

【说明】

已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。

函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。

程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)表示year是(或不是)闰年。

【C语言函数】

int count_5_13(int year)

{

int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/

long days=0; /*days记录天数*/

int m,y,c=0; /*c用于表示黑色星期五的个数*/

if (year<1900) return-1;

/*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/

days=12;

for (y= 1900; y < year; y++) {

days +=365;

if (isLeapYear(y))(1);

}

date=((days%7) +1) %7; /*算出给定年份year的1月13日是星期几*/

c=((2)) ?1:0;

for(m=1;(3);m++) {

switch (m) {

case 1:case 3: case 5: case 7:case 8:case 10:case 12:

days=31; break;

case 4: case 6: case 9: case 11:

days=30; break;

case 2:days=28;

if((4)) days=29;

break;

}/*end of switch*/

date=((days%7)+ (5) )%7;

if (date==5) c++;

} /*end of for*/

return c;

}

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“阅读以下说明和C语言函数,将应填入(n)处。【说明】 已知1…”相关的问题

第1题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 设一个环上有编号为0~

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

[说明]

设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。

本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如:10粒珠子颜色对应字符串为“aaabbbadcc”,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。

[C函数]

int count(char*s,int start,int end)

{inti,c=0,color=s[start],step=(start>end)?-1:1;

for(i=start;s[i]==color;i+=step){

if(step>0 && i>end || (1) ) break;

(2) ;

}

return c;

}

void main()

{ char t,s[120];

int i,j,C,len,maxc,cut=0;

printf("请输入环上代表不同颜色珠子字符串:");

scanf("%s",s );

len=strlen(s);

for(i=maxc=0;i<len;i++){ /*尝试不同的剪开方式*/

c=count(s,0,len-1);

if(c<len) C+=count( (3));

if(c>maxc){cut=i;maxc=c; )

/*数组s的元素循环向左移动一个位置*/

t=s[0];

for(j=1;i<len;i++) (4);

(5);

}

printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);

}

点击查看答案

第2题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明1] 本程序输入一字符串,

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

[说明1]

本程序输入一字符串,并将其中的大写字母变成小写字母。

[C函数1]

include<stdio.h>

void main()

{ int i=0;

char s[120];

printf("Enter a string.\n");

scanf("%s",s);

while( (1) ){

if( (2) )

s[i]=s[i]-'A'+'a';

i++;

}

printf("%s\n",S);

}

[说明2]

本程序用二分法,在已按字母次序从小到大排序的字符数组list[len]中,查找字符c,若c在数组中,函数返回字符c在数组中的下标,否则返回-1。

[C函数2]

int search(char list[],char c,int len)

( intlow=0,high=len-1,k;

while( (3) );

k=(10w+high)/2;

if( (4) ) return k;

else if( (5) )high=k-1;

else low=k+1;

return -1;

}

点击查看答案

第3题

阅读以下说明和流程图,回答问题1和问题2。【说明】 设8位二进制代码B0B1…B7中的最高位B0为奇偶校验

阅读以下说明和流程图,回答问题1和问题2。

【说明】

设8位二进制代码B0B1…B7中的最高位B0为奇偶校验位。对于任何给定的代码

B1B2…B7,可按下式计算偶校验位:

其中,“”表示“异或”运算。

下面的流程图描述了计算偶校验位的过程。

【流程图】

注:流程图中,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。

将流程图中的(1)~(4)处补充完整。

点击查看答案

第4题

阅读以下应用说明以及用Visual Basic开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏

内。

【应用说明】

某应用的登录界面如下:

登录界面中的文本框txtUserID和txtPassword分别用于接受用户输入的用户名和口令,命令按钮为“确定(cmdOk)”和“取消(cmdCancel)”。ADO数据控件Adodc1与数据库EmployeeData连接。在EmployeeData中,表“Users”的字段“UserID”和“Pswd”分别记录了所有的合法用户名和口令。

在登录界面中,输入正确的用户名和口令并单击“确定”按钮后,就会打开应用程序的主窗口fxmApp。用户名或密码输入错误时,给出提示信息并返回登录界面。

【Visual Basic程序代码】

Private Sub cmdOK Click()

Adodcl.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=D:\data\EmployeeData.mdb;Persist Security Info=False"

Adodcl.RecordSource = "select *(1)"

Adodcl.Refresh

Do

usrname =(2)

pwd = Adodc1.Recordset("Pswd")

Adodc1.Recordset.MoveNext

Loop Until (usrname =(3)) Or (Adodc1.Recordset.EOF)

If usrname <> txtUserID.Text Then

MsgBox "无效的用户ID, 请重新输入!", , "提示信息"

Else

If (4)Then

MsgBox "欢迎进入系统主界面!", , "提示信息"

Unload me

(5)

Else

MsgBox "无效的用户密码, 请重新输入!", , "提示信息"

End If

End If

End Sub

点击查看答案

第5题

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 【说明】 java.util库中提供了Vector模

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。

【说明】

java.util库中提供了Vector模板类,可作为动态数组使用,并可容纳任意数据类型。该类的部分方法说明如下表所示:

【Java代码】

import (1);

public class JavaMain {

static private final int (2)= 6;

public static void main(String[] args){

Vector<Integer> theVector = new Vector< (3) >();

// 初始化 theVector, 将theVector的元素设置为0至5

for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)

theVector.add((4));

showVector(theVector); // 依次输出theVector中的元素

theVector.removeElementAt(3);

showVector(theVector);

}

public static void showVector(Vector<Integer> theVector

if (theVector.isEmpty()) {

System.out.println("theVectcr is empty.");

return;

}

for (int loop = 0; loop < theVector.size(); loop++)

System.out.print(theVector.get(loop));

System.out.print(", ");

}

System.out.println();

}

}

该程序运行后的输出结果为:

0,1,2,3,4,5

(5)

点击查看答案

第6题

阅读以下应用说明、属性设置以及Visual Basic程序代码,将解答写在对应栏内。 【应用说明】 本应用运

阅读以下应用说明、属性设置以及Visual Basic程序代码,将解答写在对应栏内。

【应用说明】

本应用运行时,由用户输入一个正整数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的标题改为该菜单项表示的处理命令。

弹出式菜单“运算要求”的结构如下表所示:

一个整数序列的中位数是指对该序列进行非递减(增)排列后最中间位置上的元素。若序列长度为偶数,则取中间两个元素的平均值为其中位数。

【属性设置】

为实现单击命令按钮cmdProc后弹出“运算要求”菜单(procMenu),设计时需将 procMenu的(1)属性设置成false。

供(1)选择的属性:Default Enabled ScaleMode Style Visible

【Visual Basic程序代码】

Dim a() AS Integer, n As Integer

Private Sub Form_Load()

txtSrc.Text = "": txtObj.Text = "": (2) = False

End Sub

Private Sub cmdGendat_Click () '生成正整数序列并存入数组a

On Error GoTo Error handler

n = InputBox$ ("请输入数组元素个数:", "输入序列长度")

If (n < 1) Then

MsgBox "输入数据错误!", vbOKOnly, "提示:"

GoTo Error handler:

End If

ReDim a(n) As Integer

s = ""

For i = 1 To n '将生成的正整数存入a(1)~a(n)中

a(i) = Int(Rnd * 10000) : s = s & Str$(a(i)) & vbCrLf

Next

txtSrc.Text = s

(3) '设置运算要求命令按钮可用

Error handler:

End Sub

Private Sub cmdProc_Click()

PopupMenu procMenu

End Sub

Private Sub MidNum_Click() '求中位数

lblObj.Caption = MidNum.Caption & ":"

For i = 1 To round((n + 1)/2> '用选择排序法对数组a进行部分排序

a(0) = a(i):k = i 'a(0)用作临时变量,暂存第i次选出的最小元素

For j = i + 1 To n

If a(j) < a(0) Then

a(0)= a(j): k =(4)

End If

Next

If k <> i Then

a(k) = a(i): a(i) = a(0)

End If

Next

If n / 2 - n \ 2 > 0 Then 'n为奇数时,取中间一个数

txtObj.Text - Str$(a((5))

Else 'n为偶数时,取中间两个数的平均值

txtobj.Text = Str$(Int((a(n \ 2) + a(n \ 2 + 1)) / 2))

End If

End Sub

'其他代码略

点击查看答案

第7题

指出该代码是否存在内存泄漏。

点击查看答案

第8题

类Stock的定义中有两处错误,请指出错误所在行号并给出该行修改后的完整结果。

点击查看答案

第9题

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。【说明】 假设数组A中的各元

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。

【说明】

假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。

【流程图】

点击查看答案

第10题

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。说明 以下程序的功能是计算三

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。

说明

以下程序的功能是计算三角形、矩形和正方形的面积并输出。

程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。

c++程序

include <iostream.h>

inclule <math.h>

class Figure {

public:

virtual double getArea()= 0; // 纯虚拟函数

};

class Rectangle: (1) {

protected:

double height;

double width;

public:

Rectangle() { };

Rectangle(double height, double width) {

this->height = height;

this->width = width;

}

double getArea() {

return (2) ;

}

class Square: (3) {

public:

Square(double width) {

(4) ;

}

};

class Triangle: (5) {

double la;

double lb;

double lc;

public:

Triangle(double la, double lb, double lc) {

this->la = la; this->lb ='lb; this->lc = lc;

}

double getArea() {

double s = (la+lb+lc)/2.0;

return sqrt(s*(s-la)*(s-lb)*(s-lc));

} }; void main() {

Figure* figures[3] = {

new Triangle(2,3,3), new Rectangle(5,8), new Square(5)};

for (int i = 0; i < 3; i++) {

com << "figures[" << i << "] area =" << (figures[i])->getArea0 << endl;

}

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信