具有缓冲区的中断I/O中,函数void add_char(charachar)
A.完成将数据写入I/O数据寄存器
B.完成将数据写入I/O状态寄存器
C.完成将数据写入缓冲区
D.完成将数据写入CPU的寄存器中
第1题:
函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。
例如,原文:dAe, BfC.
CcbbAA
结果:,. ABCdef
AACbbc
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。
include <stdio.h>
include <string.h>
include <conio.h>
char string [50] [80];
int maxline = 0; /* 文章的总行数 */
int Rdata (void);
void Wdata (void);
void SortCharA(void)
{
}
void main ()
{ if (Rdata ())
{ printf("数据文件 IN. dat 不能打开! \n\007");
return;
}
SortCharA ();
Wdata ( );
}
int Rdata (void)
{ FILE *fp;
int i = 0;
char *p;
if ((fp = fopen("IN. dat", "r")) == NULL)
return 1;
while (fgets(string[i], 80, fp) != NULL)
{ p = strchr(string[i], '\n');
if (p)
*p = 0;
i++;
}
maxline = i;
fclose (fp);
return 0;
}
void Wdata (void)
{ FILE *fp;
int i;
fp = fopen("OUT. dat", "w");
for (i=0; i<maxline; i++)
{ printf("%s\n", string[i]);
fprintf(fp, "%s\n", string[i]);
}
fclose (fp);
}
第2题:
在程序I/O方式中,对于输出设备,准备就绪是指()。
A、输出缓冲区已空
B、输出缓冲区已有数据
C、输出设备已经开始工作
D、输出设备已经收到I/O指令
第3题:
函数ReadDat()的功能是实现从文件IN2.DAT中读取一篇英文文章存入到字符串数组xx中:请编制函数 StrOL(),该函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。
例如:原文:YOU He Me
I am a student.
结果: Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
include <stdio.h>
include <string.h>
include <conio.h>
include <ctype.h>
char xx[50] [80];
int maxline = 0;/* 文章的总行数 */
int ReadDat (void);
void WriteDat (void);
void StrOL(void)
{
main ( )
{
clrscr ( );
if (ReadDat ())
{
printf("数据文件 IN2.DAT不能打开! \n\007");
return;
}
StrOL ( );
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i = 0;
char *p;
if((fp = fopen("IN2.DAT", "r")) == NULL) return 1;
while(fgets(xx[i], 80, fp) != NULL)
{
p = strchr(xx [i], '\n');
if(p) *p = 0;
i++;
}
maxline = i;
fclose (rD):
return 0;
}
void WriteDat (void)
{
FILE*fp;
int i;
clrscr ();
fp = fopen("OUT2.DAT", "w");
for(i = 0; i < maxline; i++)
{
printf("%s\n", xx[i]);
fprintf(fp, "%s\n", xx[i]);
}
fclose (fp);
}
第4题:
有以下程序 #inclube <iostream.h> class ClassOne { public: ClassOne(int v=O) { i=v;cout<<i;} void print(){ cout<<i<<end1;} }; class ClassTwo { public: ClassTwo(int v=O) { i=v;cout<<i;} void print(){ cout<<i<<end1;} private: ClassOne myObj; int i; }; void main() { ClassTwo obj(1); obj.print(); }
A.11
B.111
C.110
D.101
第5题:
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
和上面的很相似,都是关于final 的问题,这有错吗?
正确。在addOne method 中,参数o 被修饰成final。如果在addOne method 里我们修
改了o 的reference
(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o 的member vairable
(成员变量),而o 的reference 并没有改变。
第6题:
函数ReadDat()实现从文件IN47.DAT中读取1000个十进制整数到数组xx屯。请编制函数Compum()分别计算出xx中偶数的个数even、奇数的平均值ave1、偶数的平均值ave2及所有偶数的方差totfc的值,最后调用函数WilteDat()把结果输出到OUT47.DAT文件中。
计算方差的公式如下:

设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。
原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
include<stdio. h>
include<stdlib. h>
include<string. h>
define MAX 1000
int xx [MAX] , dd=O, even=O;
double avel=0.0,ave2=0.0,totfc=0.0;
void WriteDat(void);
int ReadDat (void)
{ FILE *fp;
int i,j;
if ( (fp=fopen ("IN47. DAT", "r") )==NULL)
return 1;
for (i=0; i<100;i++)
{
for (j=0; j<10; j++)
fscanf (fp, "%d, ",&xx [i*10+j ] );
fscanf (fp, "In");
if(feof(fp)) break;
}
fclose (fp);
}
void Compute (void)
{
}
void main ( )
{ int i;
for (i=0; i<MAX; i++)
xx[i]=0;
if (ReadDat ())
{
printf ("数据文件IN47.DAT 不能打开! \007\n");
return;
}
Compute ( );
printf ( "EVEN=%d\nAVE1=%f\nAvE2=%f\nTOTFC=%f\n" , even, ave1, ave2,
totfc);
WriteDat ();
}
void WriteDat(void)
{
FILE *fp;
int i;
fp=fopen("OUT47.DAT","w");
fprintf(fp,"%d\n%lf\n%lf\n%lf\n",even,avel,ave2,totfc);
fclose(fp);
}
第7题:
请编制函数ReadDat()实现从文件IN93.DAT中读取1000个十进制整数到数组xx中。请编制函数 Compute()分别计算出xx中奇数的个数odd、偶数的个数even、平均值aver及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT93.DAT文件中。
计算方差的公式如下:

原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。
注意:部分源程序已给出。
请勿改动主函数main()和写函数WriteDat()的内容。
试题程序:
include<stdio.h>
include<stdlib.h>
include<string.h>
define MAX 1000
int xx[MAX],odd=0,even=0;
double aver=0.0,totfc=0.0;
void WriteDat(void);
int ReadDat(void)
{
FILE *fp;
if((fp=fopen("IN93.DAT","r"))==NULL
return 1;
fclose(fp);
return O;
}
void Compute(void)
{
}
void main( )
{
int i;
for(i=O;i<MAX;i++)
xx[i] =0;
if (ReadDat ( ) )
{
print f ("数据文件IN93.DAT不能打开! \007\n");
return;
}
Compute();
printf( "ODD=%d\nEVEN=%d\nAVER=%lf\nTOTFC=%lf\n",
odd, even,aver,totfc);
WriteDat();
}
void WriteDat(void)
{
FILE *fp;
int i;
fp=fopen("OUT93.DAT","w");
fprintf(fp,"%dln%dln%lf\n%lfkn",odd,even,aver,totfc);
fclose(fp);
}
第8题:
在UNIX中,把除外中断和I/O中断以外的中断统称为()。
第9题:
下列()操作属于文件管理模块。
第10题:
下列描述中,不是设备管理的功能的是()。
第11题:
CPU与通道可以并行执行,并通过()实现彼此之间的通讯和同步。
第12题:
第13题:
对10个候选人进行选举,现有一个100条记录的选票文件ENG50.IN,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选(空选票)均为无效的选票。给定函数ReadDat()的功能是把选票记录读入到字符串数组xx中。请编制函数CoutRs()来统计每个人的选票数并把得票数依次存入Xyy[O]到yy[9]中,最后调用函数WriteDat()把结果”输出到文件OUT50.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
include
char xx[100)[11];
int yy[10];
int ReadDat(void);
void WriteDat(void);
void CoutRs(void)
{
}
void main()
{
int i;
for(i=0;i<l0;i++)
YY[i]=0;
if(ReadDat())
{
print f ( "数据文件ENG50. IN 不能打开! \n\007" );
return;
}
CoutRs();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i;
char tt[13];
if((fp=fopen("ENG50.IN","r"))==NULL)
return 1;
for(i=0;i<100;i++)
{
if(fgets(tt,13,fp)==NULL)
return 1;
memcpy(xx[i],tt,10);
xx[i] [10]=0;
}
fclose(fp);
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
fp= fopen("OUT50.DAT","w");
for(i=0;i<10;i++)
{
fprintf(fp,"%d\n",yy[i]);
printf ( "第%d 个人的票数=%d\n", i+l,yy [i]);
}
fclose(fp);
}
第14题:
有以下函数
void prt(char ch,int n)
{int i;
for(i=1,i<=n;i++)
printf(i%6 !=O?“%c”:“%c\n”,ch);
}
执行调用语句prt(’*’,24);后,函数共输出 行*号。
第15题:
以下函数的功能是删除字符串s中的所有数字字符。请填空。
void dele (char *s)
{
int n=O;
for(i=0;s[i];i++)
{
if(【 】)
s[n++]=s[i];
}
s[n]= '\0';
}
第16题:
操作系统中利用缓冲技术实现设备的I/O操作的主要目的是( )。
A.缓解处理机与设备之间速度不匹配的矛盾,减少对CPU的I/O中断次数
B.使CPU可以从I/0操作中解脱出来,由缓冲区来实现相应操作
C.由缓冲区中的一段程序来模拟I/O操作,使FO操作可与CPU对数据的处理同时进行
D.为I/O专门开辟一段内存区,别的程序不能访问该地址空间,提高了I/O访存速度
第17题:
下列函数原型声明中错误的是______。
A.void Fun (int x=O,int y=O);
B.void Fun(int x,int y);
C.void Fun(int x,int y=0);
D.void Fun(int x=0,int y);
第18题:
以下程序中函数f( )的功能是将n个字符串按由大到小的顺序进行排序。 #include<string.h> void f(char p[ ][10],int n) { char t[20]; int i,j; for(i =O;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[O] ) ); } 程序运行后的输出结果是
A.6
B.4
C.5
D.3
第19题:
1CPU与通道可以并行执行,并通过()实现彼此之间的通讯和同步。
第20题:
下列I/O控制方式中,不使用中断机构是()。
第21题:
可编程序控制器内务处理时间包括处理器的内部检查:()
第22题:
CPU与通道可以并行工作,并通过()实现它们之间的联系。
第23题:
下列关于I/O设备的叙述中,哪一个是正确的?()
第24题:
实现缓冲区管理
进行设备分配
实现中断处理
完成I/O操作