下面程序计算并输出1100之间(包括100)能被3整除同时能被7整除余3的所有数之和,请完善程序 。 #include <stdio.h> int main() { int sum=0,i; i=1; while () { if (i%3==0&&i%7==3) sum=sum+i; i++; } printf("sum=%d",sum); return 0; }
第1题
【说明】
下面的程序能够计算不同图形的面积。程序中把每个图形的数据定义成结构类型,利用共同体类型描述2种图形的数据。程序根据输入参数代表的图形类型,求出图形的面积并输出。
【程序】
struct Circle
{
float x,y; /*圆心位置*/
float r; /*圆半径*/
};
struct Rectangle
{
float width; /*矩形宽*/
float length; /*矩形长*/
};
union shape
{
struct Circle circle;/*圆数据结构*/
struct Rectangle rectangle;/*矩形数据结构*/
};
main()
{
union shape a;
float area;
int i;
printf(“input number: 1circle,2rectangle,3 end\n”);
scanf("%d",&i);
while (1) /*循环接收输入,并计算输出*/
{
switch(i)
{
case 1:printf(“input radius:\n”);
scanf(“%f”, (2);/*共同体类型变量接收输入*/
area=3.1415926* (3);
printf(“the area of circle=%f\n”,area);
break;
case 2:printf(“input width and length :\n”);
seanf(“%f,%f”, (4);/*共同体类型变量接收输入*/。
area=(5);
printf(“the area of rectangle=%f\n”,area);
break;
}
printf(“input number:1 circle,2 rectangle,3 end\n”);
scanf(“%d”,&i);
}
}
第2题
去掉程序中的注释符,把程序中的?改为正确的内容,使其实现下述功能,但不能修改程序中的其他部分。
在窗体上有三个菜单(名称分别为Read、Calc和Save,标题分别为“读入数据”、“计算并输出”和“存盘”),还有一个文本框(名称为Text1,MultiLine属性设置为True,ScrollBars属性设置为2),如图22-8所示。
程序运行后,如果执行“读入数据”命令,则读入datain1.txt文件中的100个整数,放入一个数组中,数组的下界为1;如果单击“计算并输出”按钮,则把该数组中可以被3整除的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击“存盘”按钮,则把所求得的和存入考生文件夹下的dataout.txt文件中。
在考生文件夹下有一个工程文件sjt5.vbp,窗体文件中的ReadData过程可以把datain1.txt文件中的100个整数读入Arr数组中;而WriteData过程可以把指定的整数值写到考生文件夹下指定的文件中(整数值通过计算求得,文件名为dataout.txt)。
注意:考生不得修改窗体文件中已经存在的程序。存盘时,工程文件名仍为sjt5.vbp,窗体文件名仍为sjt5.frm。
第3题
【说明】
下面是一个Applet程序,其功能是根据给出的小时,分钟和秒数计算相等的秒数,即将1分钟化为60秒,依此类推。要求建立一个时间类,时间参数均作为类的成员变量,并且给出换算时间的方法,也作为这个类的成员函数,可以供外部对象进行调用。同时还需要在输出窗口中显示换算结果,并且将结果写到out3_3.txt文件中,本题给出确定的时间为4小时23分47秒,要求换算成以秒做单位的时间。
程序运行结果如图11所示。
图11
import javA.io.*;
import javA.awt.*;
import javA.applet.*;
/*
<applet code=ex7_7.class width=800 height=400>
</applet>
*/
public class ex7_7 extends Applet{
public void paint(Graphics g){
int nSum;
class myTime7_7{
public int h;
public int m;
public int s;
public int out;
public int caculateSecond(){
(1) ;
return out;
}
}
myTime7_7 objTime7_7 = new myTime7_7();
objTime7_7.h = 4;
objTime7_7.m = 23;
objTime7_7.s = 47;
nSum = objTime7_7. (2) ;
g.drawString ("时:"+objTime7_7.h, 20, 30);
g.drawString ("分:"+objTime7_7.m, 20, 50);
g.drawString ("秒:"+objTime7_7.s, 20, 70);
g.drawString ( (3) );
try {
FileOutputStream fos7_7 = new FileOutputStream("out7_7.txt");
BufferedOutputStream bos7_7=new BufferedOutputStream(fos7_7,1024);
PrintStream ps7_7=new PrintStream(bos7_7,false);
System.setOut(ps7_7);
System.out.println( (4) );
ps7_7.close();
} catch(IOException ioe) {
(5) (ioe);
}
}
}
ex7_7.html
<HTML>
<HEAD>
<TITLE>ex7_7</TITLE>
</HEAD>
<BODY>
<applet code="ex7_7.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第4题
第5题
在窗体上有三个菜单,名称分别为Read、Calc和Save,标题分别为“读入数据”、“计算并输出”和“存盘”,一个文本框,名称为Text1,MultiLine属性设置为Tree,ScrollBars属性设置为2,如图21-7所示。
程序运行后,如果执行“读入数据”命令,则读入datain1.txt文件中的100个整数,放入一个数组中,数组的下界为1;如果单击“计算并输出”按钮,则把该数组中下标为奇数的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击“存盘”按钮,则把所求得的和存入考生文件夹下的dataout.txt文件中。
在考生文件夹下有一个工程文件sjt5.vbp,窗体文件中的ReadData过程可以把datain1.txt文件中的100个整数读入Air数组中;而WriteData过程可以把指定的整数值写到考生文件夹下指定的文件中(整数值通过计算求得,文件名为dataout.txt)。请将程序中有问号的地方用相应的代码补完整,将注释号(')去掉。
注意:考生不得修改窗体文件中已经存在的程序。存盘时,工程文件名仍为sjt5.vbp,窗体文件名仍为sjt5.frm。
第6题
阅读以下说明和Java程序,填充程序中的空缺,将解答填入答题纸的对应栏内。
【说明】
下面的程序用来计算并寻找平面坐标系中给定点中最近的点对(若存在多对,则输出其中的一对即可)。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在图6—1所示的8个点中,点(1,1)与(2,0.5)是间距最近的点对。
【Java代码】
import java.util.Scanner;
class GPoint
{
private double x,y;
public void setX(aouble x) {this.x = x;}
public void setY(double y) {this.y = y;)
public double getX() {return this.x;)
public double getY() {return this.y;
}
class FindNearestPoints{
public static void main(String[] args){
Scanner input= new Scanner(System.in);
System.out.print("输入点的个数:");
int numberOfPoints= input.nextlnt();
(1) points= new GPoint[numberOfPoints]; //创建保存点坐标的数组
System.out.print("请输入"+numberOfPoints+"个点的坐标");
for (int i=0;i<points.length; i++){
points[i]= (2) ;
points[i].setX(input.nextDouble());
points[i].setY(input.nextDouble());
}
FindNearestPoints fnp= new FindNearestPoints();
int p1=0,p2=1; //p1和p2用于表示距离最近的点对在数组中的下标
double shortestDistance=fnp.getDistance(points[p1], points[p2]);
//计算每一对点之间的距离
for (int i=0;i<points.length; i++)
{
for (intj = 1+1;j< (3) ;j++)
{
double tmpDistance=fnp.(4);
//计算两点间的距离
if( (5) )
{
p1=i;
p2 =j;
shortestDistance = tmpDistance;
}
}
}
System.out.println("距离最近的点对是("+
points[p1].getX()+","+points[p1].getY()+")和(”+
points[p2].getX()+”,”+points[p2].getY()+”)”);
}
public double getDistance(GPoint pt1, GPoint pt2)
{
retum Math.sqrt((pt2.getX() – pt1.getX())*(pt2.getX() – ptl1getX())
+ (pt2.getY() – pt1.getY())*(pt2.getY() – pt1.getY());
}
}
第7题
阅读以下说明和C++代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
下面的程序用来计算并寻找平面坐标系中给定点中最近的点对(若存在多对,则输出其中的一对即可)。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在图5-1所示的8个点中,点(1,1)与(2,0.5)是间距最近的点对。
【C++代码】
include <iostream>
include <cmath>
using namespace std;
class GPoint {
private:
double x, y;
public:
void setX(double x) { this->x = x; }
void setY(double y) { this->y = y; }
double getX() { return this->x; }
double getY() { return this->y; }
};
class ComputeDistance {
public:
double distance(GPoint a,GPoint b) {
return sqrt《a.getX() - b.getX())*(a.getX() - b.getX())
+ (a.getY() - b.getY())*(a.getY() - b.getY()));
}
};
int main()
{
int i,j, numberOfPoints=0;
cout<<"输入点的个数:";
cin>>numberOfPoints;
(1) points= neW GPoint[numberOfPoints];//创建保存点坐标的数组
memset(points,0,sizeof(points));
cout <<"输入"<< numberOfPoints<<"个点的坐标:";
for(i=0;i<numberOfPoints; i++){
double tmpx, tmpy;
cin>>tmpx>>tmpy;
points[i].setX(tmpx);
points[i].setY(tmpy);
}
(2) computeDistance= new ComputeDistance();
int p1=0,p2=1;//p1和p2用于表示距离最近的点对在数组中的下标
double shortestDistance= computeDistance->distance(points[p1], points[p2]);
//计算每一对点之间的距离
for(i=0;i<numberOfPoints; i++){
for(j=i+1;j< (3) ;j++){
double tmpDistance=computeDistance-> (4) ;
if ( (5) ) {
p1=i; p2 =j;
shortestDistance= tmpDistance;
}
}
}
cout<<"距离最近的点对是:(";
cout"points[p1].getX()<<","<<points[pl].getY()<<")和(";
cout<<points[p2].getX()<<","<<points[p2].getY()<<")"<<endl;
delete computeDistance;
return 0:
}
第8题
阅读以下说明和流程图,填补流程图和问题中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
设整型数组A[1:N]每个元素的值都是1到N之间的正整数。一般来说,其中会有一些元素的值是重复的,也有些数未出现在数组中。下面流程图的功能是查缺查重,即找出A[1:N]中所有缺的或重复的整数,并计算其出现的次数(出现次数为0时表示缺)。流程图中采用的算法思想是将数组A的下标与值看作是整数集[1:N]加上的一个映射,并用数组C[1:N]记录各整数出现的次数,需输出所有缺少的或重复的数及其出现的次数。
【流程图】
【问题】
如果数组A[1:5]的元素分别为{3,2,5,5,1},则算法流程结束后输出结果为: (5) 。
输出格式为:缺少或重复的元素,次数(0表示缺少)
【我提交的答案】:
【参考答案分析】:
【我的疑问】
c[k]=0不是结束循环了嘛,为什么还会输出
第9题
(1) 在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是产生20个0~ 1000的随机整数,放入一个数组中,然后输出这20个整数中大于500的所有整数之和。程序运行后,单击命令按钮(名称为Command1,标题为“输出大于500的整数之和”),即可求出这些整数的和,并在窗体上显示出来,如图25-4所示。这个程序不完整,请把它补充完整,并能正确运行。
要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。
(2) 在考生文件夹下有一个工程文件sjt4.vbp,相应的窗体文件为sjt4.frm,在窗体上有一个命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出0~100范围内不能被7整除的所有整数的和,并在文本框中显示出来。在窗体的代码窗口中,已给出了部分程序,其中计算不能被7整除的整数的和的操作在通用过程Fun中实现,请编写该过程的代码。
要求:请勿改动程序中的任何内容,只在Function Fun()和End Function之间填入你编写的若干语句。最后把修改后的文件按原文件名存盘。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!