计算机执行程序所需的时间P可用P=I×CPI×T来估计,其中I是

题目

计算机执行程序所需的时间P可用P=I×CPI×T来估计,其中I是程序经编译后的机器指令数,CPI是执行每条指令所需的平均机器周期数,T为每个机器周期的时间。RISC计算机采用(1)来提高机器的速度。它的指令系统具有(2)的特点。指令控制部件的构建,(3)。RISC机器又通过采用(4)来加快处理器的数据处理速度。RISC的指令集使编译优化工作(5)。空白(3)处应选择()

  • A、CISC更适于采用硬布线控制逻辑,而RISC更适于采用微程序控制
  • B、CISC更适于采用微程序控制,但RISC更适于采用硬布线控制逻辑
  • C、CISC和RISC都只采用微程序控制
  • D、CISC和RISC都只采用硬布线控制逻辑
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序,其中函数f的功能是将多个字符串按字典顺序排序#includestring.hvoidf(char*p[],intn){char*t;inti,j;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(strcmp(p[i],p[j])0){t=p[i];p[i]=p[j];p[j]=t;}}main(){char*p[5]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”}。

:A.2

B.3

C.6

D.4


正确答案:D

第2题:

有下列程序: main( ) { char*P[]={"3697","2584"); int i,j;long num=0; for(i=0;i<2;i++) {j=0; while(p[i][j]!=\0) {if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输出结果是( )。

A.35

B.37

C.39

D.3975


正确答案:D
执行第一次for循环时,用表达式p[i][J]!=\o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-\o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。

第3题:

有以下程序

#include

main()

void f(char p[][10], int n ) /* 字符串从小到大排序 */

{ char t[10]; int i,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }

}

main()

{char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”};

f(p,5);

printf(“%d\n”,strlen(p[0]));

}

程序运行后的输出结果是( )。

A.2

B.4

C.6

D.3


正确答案:C

第4题:

有以下程序,其中函数f的功能是将多个字符串按字典顺序排序( )。 #include<string.h> void f(char*p[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j] =t;} } main { char *P[5]={"abe","aabdfg","abbd","dcd- be","cd"}; f(p,5); printf("%d\n",strlen(p[1])); } 程序运行后的输出结果是( )o

A.2

B.3

C.6

D.4


正确答案:B
函数voidf的功能是将字符指针数组*p[]中的每个字符串按照从小到大的顺序排序。在主函数main中,调用f(P,5)后,字符指针数组*p[5]中的字符串按照字典顺序从小到大排列为如下形式,即*p[5]={"aab-dfg","abbd","abc","cd","dcdbe"),因此P[1]="abdb",strlen(p[1])=4。

第5题:

有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:include inelude

有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:#include <stdio, h>#inelude <string, h>void f(char * p[ ] ,int n) char * t;int i,j; for(i=0;i<n-1;i++) for(j=i+1 ;j<n;j ++ ) if(strcmp(p[i], p[j])>0) { t =p[i];p[i] =p[j] ;p[j] =t;}}main( ){ char * p [5] = { "abe"." aabdfg"." abbd"," dcdbe"," cd" }; f(P,5 ); printf("% d\n", strlen(p[1]) );}程序运行后的输出结果是( )。

A.2

B.3

C.60

D.4


正确答案:D
解析:本题经过排序后,第二个字符串是"abbd",所以输出结果是4。

第6题:

计算机执行程序所需的时间P可用P=I*CPI*T来估计,其中I是程序经编译后的机器指令数,CPI是执行每条指令所需的平均机器周期数,T为每个机器周期的时间。RISC计算机采用(13)来提高机器的速度,它的指令系统具有(14)的特点。指令控制部件的构建,(15)。RISC机器又通过采用(16)来加快处理器的数据处理速度。RISC的指令集使编译优化工作 <17> 。

A.虽增加CPI,但更减少T

B.虽增加CPI,但更减少T

C.虽增加T,但更减少CPI

D.虽增加I,但更减少CPI


正确答案:D
解析:精简指令系统RISC主要是将一条复杂的指令替换成多条简单的指令来执行,这样就增加了所执行指令的数量,同时降低了原先指令的复杂度,使每条指令的执行时钟周期缩短,从而达到高效率运行的目的。CISC更适于采用微程序控制,而RISC更适于采用硬布线控制逻辑,RISC机器又通过采用大量的寄存器来加快处理器的数据处理速度。

第7题:

有以下程序: include usingnamespacestd; intmain() { intnum[2][3],*p; intt,i,j,k=

有以下程序: #include <iostream> using namespace std; int main() { int num[2][3],*p; int t,i,j,k=10; p=num[0]; for(i=0;i<2;i++) { for(j=0;j<3;j++) { k++; *p=k; for(t=2;t<*p;t++) { if(!(*p%t)) { j--; *p--; break; } *p++; } } cout<<*(p-1)<<end1; return 0; } 程序运行后的输出结果是( )。

A.19

B.11

C.29

D.23


正确答案:C
解析:本题考核数组与指针的关系。程序首先初始化指针p,让其指向二维数组num的首元素,即num[0][0]。程序中,第1个for循环是为二维数组的每行元素赋值而设置的循环,第2个for循环是为二维数组的每列元素赋值而设定的,第3个for循环是为判断数组元素是否是素数而设置的。在第3个for循环中,如果*p的值能被小于它的数整除(即不是素数),则执行“j--;*p--;”,然后跳出第3个for循环。j--的含义是让其前面的赋值语句重新赋值,而*p--的含义是使指针指向前一个单元。语句“*p++;”将指针移到下一个单元,在下一次循环时,k加1,并k赋给*p,看*p是否为素数,这样一直到满足条件为止,即数组num[2][3]中的数都为素数。最后数组num中各元素的值分别为大于10的素数,即分别为:11,13;17,19,23,29。程序最后要求输出*p的值,由于此时指针已指向数组num的最后一个元素,即num[1][2]。所以输出的值是29。

第8题:

有以下程序,其中函数的功能是将多个字符串按字典顺序排序: includevoid f(char*p[],i

有以下程序,其中函数的功能是将多个字符串按字典顺序排序: # include<string.h> void f(char*p[],int n) {char *t; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j]p[j]=t;} } main() {char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[1])); } 程序运行后的输出结果是 ______。

A.2

B.3

C.6

D.4


正确答案:D
解析:strcmp(s1,s2)是比较两个字符串的大小,s1>s2时值为正数,s1s2时值为负数,s1=s2时值为0。调用 f(p,5)函数的功能是将存储字符串的数组p中的字符串从小到大进行排列。最后的排列结果为:p[5]={"aabdfg","abbd", "abc","cd","dcdbe"},最后要求输出的是"abbd"的长度。

第9题:

有以下程序:includevoid f(char p[][10],int n){char t[10];int i,j;for(i=0;i

有以下程序: #include<string.h> void f(char p[][10],int n) {char t[10];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[5][10]={"abc","aabdfg","abbd","dedbe","cd"}; f(p,5); printf("%d\n",strlen(p[0]));} 程序运行后的输出结果是( )。

A.2

B.4

C.6

D.3


正确答案:C
解析:本题考核的是二维字符数组按行存放字符串、二维数组名作为函数的参数以及字符串的排序。主函数中定义了一个二维字符串数组p并按行赋值,调用f()函数,将字符串从小到大排序,strcmp()函数的功能是对两个字符串作向右逐个字符比较,直到出现不同的字符或遇到“\0”为止。如果全部字符都相同,则认为相等;若出现不同的字符.则以第一个不相同的字符的比较结果为准。由此可知最小的字符串是“aabdfg”,排序后存放在p[0]中,最后在主函数中输出p[0]的长度。

第10题:

有以下程序: struct STU { char name[10]; int num; int score; }; main() { struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550), {'Penghua",20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[i]=t; } printf("%d %d\n",s[1].Score,p[1]->Score); } 执行后输出结果是( )。

A.550 550

B.680 680

C.580 550

D.580 680


正确答案:C
解析:本题中首先定义了结构体类型STU,该结构体由一个长度为10的字符数组、两个整型变量num和Score组成。在主函数中,定义了一个长度为5的结构体数组s并赋初值,一个指针数组p和一个指针变量t,接着将数组s中各元素的地址依次赋给指针数组p中的各成员。然后通过两个for循环将数组p按Score的值从小到大的顺序排列。因此最后输出的 p[1]->Score的值为550,而数组s[1].Score的值为580,所以,4个选项中选项C符合题意。

更多相关问题