首页 > 软考
题目内容 (请给出正确答案)
[单选题]

以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出: main() {int n, k, float score, sum, ave; sum=0.0; for(n=1; n<=10; n++) { for(k=1;k<=4;k++) { cin>>score; sum+=score; } ave= sum/4.0 cout<<"No"<<n<<":"<<ave<<end1; } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是

A.sum=0.0

B.sum+=score

C.ave=sun/4.0

D.cout<<"No"<<n<<":"<<ave<<end1;

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每…”相关的问题
第1题
以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如 下: main() { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score);sum+=score;} ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有―条语句出现在程序中的位置不正确。这条语句是

A.sum=0.0;

B.sum+=score;

C.ave=sum/4.0;

D.printf("NO%d:%f\n",n,ave);

点击查看答案
第2题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输
出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!

点击查看答案
第3题
以下叙述中错误的是()A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应

以下叙述中错误的是()

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针

点击查看答案
第4题
PLC工作过程中,()是按照顺序将所有信号读入到寄存输入状态的输入映像区中存储。

A.输入采样阶段

B.程序执行阶段

C.网络通信

D.输出刷新阶段

点击查看答案
第5题
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include<string.h> void f(char

以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。 #include <string.h> void f(char p[][10], int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+l;j<n;j++) if(strcmp (p[i],p[j])<0) { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() { char p[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};int i; f(p,5); printf("%dkn",strlen(p[0])); } 程序运{亍后的输出结果是

A.6

B.4

C.5

D.3

点击查看答案
第6题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

#include<stdio.h>

#include<mallo

C.h>

#include<string.h>

#include<conio.h>

#define N 10

typedef struct ss

{

char num[10];

int order;

}STU;

STU *fun(STU a[], int m)

{

STU b[N],*tt;

int i,j,k;

(1) ;

for(i=0; i<N; i++)

b[i]=a[i];

for (k=0;k<m;k++)

{

for(i=j=0;i<N;i++)

if ((2) )

j=i;

tt[k]=b[j];

b[j].order=0;

}

return (3) ;

}

outresult(STU a[],FILE *pf)

{

int i;

for(i=0;i<N; i++)

fprintf(pf,"No=%s Mark=%d\n",

a[i].num,a[i].order);

fprintf(pf,"\n\n");

}

main()

{

STU [N]={{"A01",80},{"A02",79},

{"A03",66},{"A04",82},{"A05",87},

{"A06",93},{"A07",78},{"A08",60},

{"A09",85},{"A10",73}};

STU *p_order;

int i,m;

clrscr();

printf("*** The Origial data ***\n");

outresult(a, stdout);

printf("\nGive the numeber of the

students who have better score:");

scanf("%d",&m);

while (m>10)

{

printf("\nGive the number of the

studets who have better score:");

scanf("%d",&m);

}

p_order=fun(a,m);

printf("*** THE RESULT ***\n");

printf("*** The top students ***\n");

for(i=0; i<m; i++)

printf(" %s %d\n",

p_order[i].num,p_order[i].order);

free(p_order);

}

点击查看答案
第7题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

试题程序:

include <conio.h>

include <string.h>

include <stdio.h>

include <alloc.h>

define N 10

typedef struct ss

{char num[10];

int s;

} STU;

STU *fun{STU a[], int m)

{ STU b[N] ,*t;

int i, j,k;

/*************found**************/

*t=calloc (m, slzeof (STU));

for(i=0;i<N;i++) b[i]=a[i];

for(k=0; k<m; k++)

{ for (i=j=0;i<N;i++)

if (b[i].s>b[j].s) j=i;

/*************found**************/

t[k].num=b [j].num;

t[k].s=b[j] s;

b[j].s=0;

}

return t;

}

outresult(STU a[],FILE *pf)

{ int i;

for (i=0; i<N; i++)

fprintf(pf, "No=%s Mark-%d\n ",

a [i] .num, a[i].s);

fprintf(pf, "\n\n ");

}

main ()

{ STU a[N]={{ "A01 ",81},{ "A02 ",89},

{ "A03 ",66},{ "A04 ",87},{ "A05 ",77},

{ "A06 ",90},{ "A07 ",79},{ "A08 ",61},

{ "A09 ",80},{ "Al0 ",71}};

STU *pOrder;

int i, m;

clrscr ();

printf ("*****THE RESULT***** \n");

outresult (a, stdout);

printf ("\nGive the number of the students

who have better score: ");

scanf ("%d", &m);

while (m>10)

{ printf("lnGive the number of the

students who have better score: ");

scanf ("%d", %m);

pOrder=fun (a,m);

printf("***** THE RESULT*****kn");

printf("The top :\n");

for (i=0; i<m; i++)

printf("%s %d\n",pOrder[i].num,

p0rder [i]. s);

free (pOrder);

}

点击查看答案
第8题
请编制程序,其功能是:内存中连续存放着两个由8位有符号整数组成的序列Ai和Bi(i=0,…,9;下同),Ai在

请编制程序,其功能是:内存中连续存放着两个由8位有符号整数组成的序列Ai和Bi(i=0,…,9;下同),Ai在前,Bi在后。求序列Ci,Ci=Ai+Bi。结果Ci用字单元按C0,…,C9的顺序存放。

例如:

序列Ai为:80H(-128D),31H(49D),61(97D),7FH(127D),…

序列Bi为:80H(-128D),01(1D),F1H(-15D),7FH(127D),…

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10 每个序列的长度

STAC SEGMENT STACK

DB 128 DUP ()

STAC ENDS

DATA SEGMENT

SOURCE DB N*2 DUP() ; 顺序存放A0,L,A9,B0,L,B9

RESULT DW N DUP(0) ; 顺序存放C0,L,C9

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ;数据区起始地址

LEA SI,NAME0 ;原始数据文件名

MOV CX,N*2 ;字节数

CALL LOAD ;从"INPUT1.DAT"中读取数据

; **+***** BEGIN ********

MOV DI,OFFSET RESULT ;结果从RESULT开始存放

MOV BX,0

MOV CX,N

PRO: MOV AH,0

MOV AL, (1) ;序列Bi中的一个整数

MOV DL,AL ;暂存Bi

(2) AL,SOURCE[BX] ;Ci=Bi+Ai

JNO STAY ;无溢出转STAY

JUMP1: MOV AH,00 ;有溢出

ADD DL,0

JNS JUMP ;Bi是正数(为一个正数加上一个正数,

;结果为负数的溢出情况)转JUNP(AH

;已为00H)

MOV AH, (3) ;Bi是负数(为一个负数加上一个负数,

;结果为正数的溢出情况)将结果变为

;负数

JMP (4)&nbs

点击查看答案
第9题
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序: #include <string.h> void f(char p[][10],int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++ if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t); } } main() {char p[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);int i; f(p,5); printf("%d\n",strlen(p[0])); } 程序运行后的输出结果是()。

A.6

B.4

C.5

D.3

点击查看答案
第10题
请编制程序,其功能是:内存中连续存放着20个无符号字节数序列,请将它们排成升序(从小到大)。 例如:

请编制程序,其功能是:内存中连续存放着20个无符号字节数序列,请将它们排成升序(从小到大)。

例如:

内存中有01H,04H,02H…(假设后17个字节均大与04H)

结果为 01H,02H,04H…(后跟17个字节,按从小到大的顺序排列)

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并白行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

试题程序:

点击查看答案
第11题
试题五(共15分) 阅读以下说明和 C++代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。

试题五(共15分)

阅读以下说明和 C++代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。

【说明】

某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前 30%的学生。

【C++代码】

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

class Student {

private:

string sNO; //学号

int credit; //分数

public:

Student(string a,int b) { sNO = a; credit = b;}

Student(){}

int getCredit();

void out();

};

(1) ::getCredit() {

return credit;

}

(2) ::out() {

cout << "SNO: " << sNO << ", Credit=" << credit << endl;

}

class SortStudent {

public:

void sort(Student *s, int n);

SortStudent(){}

};

void SortStudent::sort(Student *s,int n) {

for(int i = 0; i < n-1; i++) {

for(int j = i+1; j < n; j++) {

if(s[i]. (3) < s[j]. (4) ) {

Student temp = s[i]; s[i] = s[j]; s[j] = temp;

}

}

}

}

int main(int argc, char* argv[])

{

const int number = 100; //学生总数

ifstream students;

students.open("students.txt");

if(!students.is_open()) {

throw 0;

}

Student *testStudent = (5) [number];

int k = 0;

string s;

while (getline(students,s,'\n')) { //每次读取一个学生的学号和成绩

Student student(s.substr(0,s.find(',')), atoi(s.substr(s.find(',')+1).c_str()));

testStudent[k++] = student;

}

students.close();

(6) ;

ss.sort(testStudent,k);

cout <<"top 30%: "<<endl;

for(k = 0; k < number * 0.3; k++) {

testStudent[k].out();

}

delete []testStudent;

return 0;

}

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改