软件设计师习题及答案2_第1页
软件设计师习题及答案2_第2页
软件设计师习题及答案2_第3页
软件设计师习题及答案2_第4页
软件设计师习题及答案2_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

●MPEG视频中的时间冗余信息可以采用_(1)_的方法来进行压缩编码。

(1)A.帧间预测和变换编码

B.霍大曼编码和运动补偿

C.变换编码和行程编码

D.帧间预测和运动补偿●假定每一车次具有唯一的始发站和终点站。如果实体“列车时刻表”属性为车次、始发站、发车时间、终点站、到达时间,该实体的主键是_(2)_;如果实体“列车运行表”属性为车次、日期、发车时间、到达时间,该实体的主键是_(3)_。通常情况下,上述“列车时刻表”和“列车运行表”两实体型间_(4)_联系。

(2)A.车次

B.始发站

C.发车时间

D.车次,始发站(3)A.车次

B.始发站

C.发车时间

D.车次,日期(4)A.不存在

B.存在一对一

C.存在一对多

D.存在多对多答案:1.D2.A3.D4.C\o"考试大软件水平考试"OMT定义了三种模型来描述系统。_(1)_可以用状态图来表示;_(2)_可以用数据流图来表示。_(3)_为上述两种模型提供了基本的框架。

(1)A.对象模型

B.功能模型

C.动态模型

D.类模型(2)A.对象模型

B.功能模型

C.动态模型

D.类模型(3)A.对象模型

B.功能模型

C.动态模型

D.类模型●采用动态规划策略求解问题的显著特征是满足最优性原理,其含义是_(4)_。

(4)A.当前所做出的决策不会影响后面的决策

B.原问题的最优解包含其子问题的最优解

C.问题可以找到最优解,但利用贪心法不能找到最优解

D.每次决策必须是当前看来最优的决策才可以找到最优解答案:CBAB关系模式R(U,F),其中U=(W,X,Y,Z),F={WX→Y,W→X,X,→Z,yVw}。关系模式R的候选码是_(1)_,_(2)_是无损连接并保持函数依赖的分解。

(1)A.W和Y

B.WY

C.WX

D.WZ

(2)A.ρ={R1(WY),R2(XZ)}

B.ρ={R1(WZ),R2(XY)}

C.ρ={R1(WXY),R2(XZ)}

D.ρ={R1(WX),R2(YZ)}●类的实例化过程是一种实例的合成过程,而不仅仅是根据单个类型进行的空间分配、初始化和绑定。指导编译程序进行这种合成的是_(3)_。

(3)A.类层次结构

B.实例的个数

C.多态的种类

D.每个实例的初始状态●重置的基本思想是通过_(4)_机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。

(4)A.静态绑定

B.对象引用

C.类型匹配

D.动态绑定答案:ACAD\o"考试大_软件水平考试"1.语句"printf("%d\n"strlen("ats\nol2\1\\"));"的输出结果是()

①11②10③9④82.函数调用“strcat(strcpy(strl,str2),str3)”的功能是()

①将字符串strl复制到字符串str2中后再连接到字符串str3之后

②将字符串strl连接到字符串str2中后再复制到字符率str3之后

③将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后

④将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中【解】字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转义字符。在字符串"abs\no12\11\\"中,有三个转义字符,它们是\n、\1、\\,所以该字符串的有效字符个数是9。所以正确的回答是③。

【解】函数调用strcat(s1,s2)是将s2字符串复制连接到s1字符串之后,使s1字符串变得更长。函数调用strcpy(s1,s2)是将s2字符串复制到s1,使s1字符串的内容与s2字符串的内容相同。函数调用strcat(strcpy(strl,str2),str3)是先执行strcpy(strl,str2),然后再执行strcat(strl,str3),所以其功能是将字符串str2复制到字符串strl中,然后再将字符串str3复制连接到字符串strl之后。正确的选择是③。1.设有如下定义,则正确的叙述为()

charx[]={"abcdefg"};

chary[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’};

①数组x和数组y等价②数组x和数组y长度相同

③数组X的长度大于数组y的长度④数组X的长度小于数组y的长度

2.根据变量定义“staticintb[5],a[][3]={1,2,3,4,5,6};”,b[4]=_____,a[1][2]

【解】不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给出的值的个数确定。字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初始化。但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符率结束字符。但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需要的字节个数会比用同样多的字符初始化多1个字节。所以只有③才是正确的。

【解】系统规定,静态变量定义时,若末初始化,系统自动给定二进制代码全0的值。所以态数组b的元素全为0,当然包括b[4]也为几静态数组a是二维数组,每行有三个元素,在初始化中结出了六个初值,所以数组a有2行。由于数组的元素按行顺序存储,并按行顺序初始化。前三个值是第一行,后三个凳堑诙小[1][2]是第二行的第三列元素,也是a的最后一个元素,所以其值是6。\o"考试大_软件水平考试"2008年11月,计算机软件资格考试马上考试了。大家一起来交流一下吧!考试大整理的2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.设有定义语句“staticinta[3][4]={{1},{2},{3}};”则a[l][l]值为_,a[2][1]的值为_。

2.若在程序中用到“putchar()”函数时,应在程序开头写上包含命令_____,若在程序中用到“strlen()”函数时,应在程序开头写上包含命令______。

【解】给二维数组初始化时,可按行给出初值,并且每行可以只给前面部分的元素给出初值。系统规定,对哪些未给出初值的部分元素,系统自动置二进制代码全0的值。由于定义语句只给a[0][0]给定初值l、a[l][0]给定初值2、a[2][0]给定初值3。这样,其它元素都为0值。所以,a[1][1]=0,a[2][1]=0。

【解】putchar()是系统提供的头文件stdio.h中定义的宏,所以程序要使用它,必须写上包含命令:#include。函数strlen()是系统提供的字符串处理函数之一,字符串处理函数的函数原型说明和它们用到的有关常量、数据结构等,在系统提供的头文件tring.h中定义,所以使用该函数的程序应在程序开头写上包含命令并include距2008年11月计算机软件资格考试考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.设有代码"int(*ptr)[10];”,其中的ptr是()

①10个指向整型变量的指针

②指向10个整型变量的函数指针

③一个指向具有10个元素的一维数组的指针

④具有10个指针元素的一维数组

2.若有以下定义,则数值为4的表达式是()

intw[3][4]={{0,1},{2,4},{5,8}},(*p)[4]=W;

①*w[1]+l

②p++,*(p+1)

③w[2][2]④p[1][1]【解】代码“int(*ptr)[10];”的分析过程是,因圆括号,括号内的ptr先与字符*结合,字符*修饰标识符ptr是一种指针;接着与后面的一对方括号结合,表示是这样的一种指针,是指向一维数组的;再有方括号中的10,说明这种数组有10个元素。至此,ptr是指向含10个元素的

一维数组的指针。最后,是最前面的int,表示数组元素是int类型的。所以,ptr是一个指向具有10个int型元素的一维数组的指针。所以解答是③。另外,要是①,10个指向整型变量的指针,就是一个指针数组,上述代码应写成“int*ptr[10];”,即ptr是一个有10个指向整型变量的数组。要是②,返回值是指向10个整型变量的函数的指针,上述代码应写成“int(*(*ptr)())[10];”,即ptr是指针,指向一种函数,函数的返回值又是一种指针,指向10个元素的数组,数组的元素是整型的。下面的代码是这样的函数指针和函数的例子:

#include

inta[][10]={{1,2,3,4,5,6,7,8,9,0},{0,1,2,3,4,5,6,7,8,9}};

int(*(*ptr)(int))[10];

int(*f(intn))[10]

{returna+n;

}

voidmain()

{int(*p)[10],*q;

ptr=f;/*让ptr指向函数f*/

P=(*ptr)(0);

q=*p;

printf("%d\n",*p);

P=(*ptr)(l);

q=*p;

printf("%d\n",*q);

}

在上述代码中,函数有一个int型的形参。要是④,其意义与①相同,上述代码应写成“int*ptr[10];”,即ptr是一个有10个元素的数组,数组元素是指向整型变量的指针。

【解】二维数组定义有多种赋初值的办法,问题给出的代码是按行给数组的部分元素赋初值。它们分别是w[0][0]=0.w[0][1]=1、w[1][1]=2.w[1][1]=4,w[2][0]=5,w[2][1]=8。根据约定,未指定初值的元素自动置全0值。指针变量p是一个指向具有四个int型元素的一维数组的指针,定义时的初值使它指向数组W的第一行。①的代码,*w[1]+1中的W[l]是指向w[l][0]的指针,*w[1]就是w[1][0],其值是2,*w[1]+l的值是3。②的代码是逗号表达式,“p++,*(p+1)”先使p指向数组w的第二行,*(p+l)中的p+l是指向数组w的第三行,*(p+1)是指针值,指向数组w的第三行的第一个元素,即&w[2][0].③的代码w[2][2]引用数组W第三行的第三列元素,其值是0。④的代码p[1][l]引用数组W第二行的第二列元素w[1][1],其值是4。所以解答是@。\o"考试大软件水平考试"距2008年11月计算机软件资格考试考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

Networkscanbeinterconnectedbydifferentdevicesinthephysicallayernetworkscanbeconnectedby_(1)_orhubs.whichjustmovethebitsfromonenetworktoanidenticalnetwork.Onelayerupwefindbridgesandswitcheswhichoperateatdatalinklayer.Theycanaccept_(2)_examinetheMACaddressandforwardtheframestoadifferentnetworkwhiledoingminorprotocoltranslationintheprocessinmenetworklayer,wehaveroutersthatcanconnecttwonetworks,Iftwonetworkshave_(3)_networklayer,theroutermaybeabletotranslatebetweenthepackerformats.Inthetransportlayerwefindtransportgateway,whichcaninterfacebetweentwotransportconnectionsFinally,intheapplicationlayer,applicationgatewaystranslatemessage_(4)_.Asanexample,gatewaysbetweenInternete-mailandX.400e-mailmust_(5)_thee-mailmessageandchangevariousheaderfields.(1)A.reapers

B.relays

C.packages

D.modems(2)A.frimes

B.packets

C.packages

D.cells(3)A.special

B.dependent

C.similar

D.dissimilar(4)A.syntax

B.semantics

C.language

D.format(5)A.analyze

B.parse

C.delete

D.create答案:AADBB距2008年11月计算机软件资格考试考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

在分支-限界算法设计策略中,通常采用_(1)_搜索问题的解空间。(1)A.深度优先

B.愣扔畔取

C.自底向上

D.拓扑序列●在下列算法设计方法中,_(2)_在求解问题的过程中并不从整体最优上加以考虑,而是做出在当前看来是最好的选择。利用该设计方法可以解决_(3)_问题。(2)A.分治法

B.贪心法

C.动态规划方法

D.回溯法(3)A.排序

B.检索

C.背包

D.0/1背包●以关键字比较为基础的排序算法在最坏情况下的计算时间下界为O(nlogn)。下面的排序算法中,最坏情况下计算时间可以达到O(nlogn)的是_(4)_;该算法采用的设计方法是_(5)_。(4)A.归并排序

B.插入排序

C.选择排序

D.冒泡排序(5)A.分治法

B.贪心法

C.动态规划方法

D.回溯法答案:BBCAA\o"考试大软件水平考试"进程PA不断地向管道写数据,进程PB从管道中读数据并加工处理,如下图所示。如果采用PV操作来实现进程PA和进程PB间的管道通信,并且保证这两个进程并发执行的正确性,则至少需要_(1)_。(1)A.1个信号量,信号量的初值为0

B.2个信号量,信号量的初值分别为0、1

C.3个信号量,信号量的初值分别为0、0、1

D.4个信号量,信号量的初值分别为0、0、1、1●假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为9、8和5。在To时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示。如果进程按_(2)_序列执行,那么系统状态是安全的。

资源最大需求量已分配资源数进程R1R2R3R1R2R3P1652121P2221211P3801210P4121120P5344113(2)A.P1→P2→P4→P5→P3

B.P2→P1→P4→P5→P3

C.P2→P4→P5→P1→P3

D.P4→P2→P4→P1→P3●某一非确定性有限自动机(NFA)的状态转换图如下图所示,与该NFA等价的正规式是_(3)_,与该NFA等价的DFA是_(4)_。(3)A.0*|(0|1)0

B.(0|10)*

C.0*((011)0)*

D.0*(10)*答案:BCBA距2008年11月计算机软件资格考试考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.若有下列说明,则数值为4的表达式是()

inta[12]={l,2,3,4,5,6,7,8,9,10,11,12};

charc=’a’,d,g;

①a[g-c]

②a[4]③a[’d’-’c’]④a[’d’-c]2.设有定义:"chars[12]={"string"};"则printf("%d\n",strlen(s));的输出是()

①6②7③11④12【解】数组元素的下标自0开始顺序编号,值为4的元素是a[3]。所以只有下标表达式的值为3的才是正确的。下标表达式g-C中的的变量g和c的值是还未被设定的,其值不确定。a[4]的值为5,下标为4是不对的。’d’-’c’的值为1,a[l]的值是2,所以也是不对的。变量c的值为’a’,’d’-c=3,所以正确解答是④。

【解】在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。正确的解答是①。\o"考试大软件水平考试"距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.下面各语句中,能正确进行赋字符串操作的语句是()

①chars[5]={"ABCDE"};②chars[5]={’A’,’B’,’C’,’D’,’E’};

③char*s;s="ABCDE";

④char*s;scanf("%",s);

6.若有以下定义,则不能表示a数组元素的表达式是()

inta[10]={1,2,3,4,5,6,7,8,9,1o},*p=a;

①*p②a[10]③*a④a[p-a]【解】字符串最终存储于字符数组中,存储字符串的字符数组可以是程序主动引入的(定义或动态分配),也可以是字符串常量,由系统分配。其中字符数组用字符串初始化就是字符串存储于由程序引入的字符数组的例子。给字符指针赋字符串则是系统自动分配字符率存储空间的例子。给字符指针赋字符串并不是将一个长长的字符串存于字符指针变量中,而是将字符串常量存储于常量区,并将存储这个字符串的首字节地址赋给指针变量,让指针变量指向字符率常量的首字符。对于以字符串作为字符数组初值的情况,要求字符数组足够的大,能存得下字符串常量。这里有一个特别的规定,若数组的大小少于存储字符串有效字符的字节个数,系统将报告错误;当字符数组的大小只能存储字符串的有效字符,而不能存储字符率结束标记符时,则存储于字符数组中的内容是字符序列,因没有存储字符率结束标记符,存储的内容就不是字符串。如代码chara[5]="ABCDE"。另外,给字符数组元素逐一赋字符初值,并在字符初值中没有字符串结束标记符,则存于字符数组中的内容也不是字符率。如代码chars[5]={’A’,’B’,’C’,’D’,’E’}。特别要注意当字符指针还未指向某个字符数组的元素时,不可以通过字符指针输入字符串。如代码char*s;scanf("%s",s)。若写成char*str;scanf("%s",&str)更是错误的了。由于C语言规定数组不能相互赋值,所以只能将字符串常量赋给某字符指针。如代码char*s;s="ABCDE"是正确的。实际上,字符率"ABCDE"被存储于常量区中,向指针变量赋的是字符指针,让s指向其中的字符’A’。所以解答是③。

【解】考试大提示:上述代码定义了有10个元素的整型数组。,和定义指针变量p,并让p指向数组元素a[0]。所以代码*p是引用a[0]。由于数组a只有10个元素,最后一个元素是a[9],表达式a[10]是错误的。数组名a可以作为a的首元素的指针,表达式*a就是a[0],是对数组a的首元素a[0]的引用。指针p的值是a,表达式p-a。的值是0,所以a[p-a]就是a[0]。所以解答是②。距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

●以太网100BASE-TX标准规定的传输介质是_(61)_。

(1)A.3类UTP

B.5类UTP

C.单模光纤

D.多模光纤●许多网络通信需要进行组播,以下选项中不采用组播协议的应用是_(62)_。在IPv4中把_(63)_类地址作为组播地址。

(2)A.VOD

B.Netmeeting

C.CSCW

D.FTP(3)A.A

B.B

C.D

D.E●将双绞线制作成交叉线(一端按EIA/TIA568A线序,另一端按EIA/TIA568B线序),该双绞线连接的两个设备可为_(64)_。

(4)A.网卡与网卡

B.网卡与交换机

C.网卡与集线器

D.交换机的以太口与下一级交换机的UPLINK口●以下不属于中间件技术的是_(65)_。

(5)A.javaRMI

B.CORBA

C.DCOM

D.JavaApplet答案:BDCAD\o"考试大软件水平考试"距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.设有定义“inta=3,b,*p=&a;”,则下列语句中使b不为3的语句是()

①b=*&a;

②b=*p;

③b=a;

④b=*a;2.设指针x指向的整型变量值为25,则"printf("%d\n",++*x);"的输出是()

①23②24③25④26【解】定义有inta=3,b,*p=&a;对b赋值的表达式有*&a、*p、a、*a。引用变量。的值有两种方法,一是直接引用a,二是通过a的指针间接引用a。对于后者,又有多种表达方法,通过指向a的指针p,间接引用a的内容,如*p。或通过求地址运算符由变量a得到其指针&a,再由这指针表达式间接引用a的内容,如*&a。所以表达式*&a、*p和a都能引用变量a的值,而使b的值为3。而表达式。a是错误的,因为a不是指针变量,不能对它施行取内容运算符。。所以解答是④。【解】若指针变量x指向某个变量,例如指向变量v,并且变量v的值是25,则表达式++*x的值是26。这是因为表达式的计算顺序可加圆括号表达成(++(*x)),首先是*x,是对X所指变量V的引用,所以++*X就是++V。++V是先让变量V增1,并以增至后的V的值为表达式++V的结果,所以其值是26。所以解答是④。\o"考试大软件水平考试"距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.若给fun函数的形参s传送字符串:"ㄩㄩ6354abcc"(其中ㄩ表示空格字符),则函数的返回值是__________。

#include

longfun(chars[])

{longn;intsign;

for(;isspace(*s);s++);

sign=(*s==’-’)?-1:l;

if(*s==’+’||*s==’-’)s++;

for(n=0;isdigit(*s);s++)n=10*n+(*s-’0’);

returnsign*n;

}2.下面函数要求计算两个整数X、y之和,并通过形参Z传回该和值,请填空。

voidadd(intx,inty,________z)

{_________=x+y;return;}答案:

【解】函数fun的第一个for循环跳过字符串的前导空白符,接着分析第一个非空白符是否是负号,若是置变量sign为-1;否则,置变量sign为1。接着的if语句在第一个非空白字符是负号或正号时,跳过该字符。以后的for循环将后面的数字符当作十进制数的各位数字译出一个长整数n。遇字符a时,结束译数循环。最后,函数返回sign与n的乘积。所以若调用函数时提供的实参是"ㄩㄩ6354abc",函数返回值是整数6354。【解】函数希望通过形参z传送结果,形参z必须是指针类型的,由于返回整型结果,所以z的说明是int*z。函数返回前必须先把结果通过形参z间接引用(写成*z)传回。阅读函数,写出函数的主要功能:

ch(int*p1,int*p2)

{intp;

if(*pl>*p2){p=*pl;*pl=*p2;*p2=p;}

}

【解】函数办有两个指针形参p1和p2,函数体通过*pl和*p2间接引用它们所指变量。当pl所指变量的位大于p2所指变量的值时,交换两形参所指变量的值。所以函数的功能当形参1所指变量比形参2所指变量的值大时,交换这两个变量的值。调用该函数能保证形参1所指变量的值不大于形参2所指变量的值。\o"考试大_软件水平考试"距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

阅读函数,写出函数的主要功能:

floatav(a,n)

floata[];

intn;

{inti;floats;

for(i=0,s=0;i<N;I++)&NBSP;S=S+A[I];

returns/n;

}

【解】函数有一个数组形参a和一个整型形参n。函数首先用循环求数组a的前n个元素和,然后将和除以n。即求数组元素的平均值。距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!

1.若有下面的程序片段,则对数组元素的错误弓D用是()

inta[12]={0},*p[3],**pp,i;

for(i=0;i<3;i++)p=&a[i+4];

pp=P;

①pp[0][1]②a[10]③p[3][l]④*(*(p+2)+2)2.若有如下定义和语句,则输出结果是()

int**pp,*p,a=10,b=20;

PP=&p;P=&a;P=&b;printf("%d%d\n",*p,**PP);

①10,20

②10,10

③20,10

④20,20【解】上述代码定义变量a是有12个整型元素的数组,它的初值全是0。p是有三个元素的指针数组,每个指针能指向整型变量。哪是指针的指针,它能指向一个指向整型变量的指针,i是一个整型变量。执行代码for(i=0;i<3;i++)P=&a[i+4]使指针数组p的元素p[0]指向a[4],p[l]指向a[5],p[2]指向a[6]。代码pp=p使指针变量pp指向p[0]。①代码pp[0][l]用指针表达可等价地写成*(*pp+l)。其中*pp就是p[0],p[0]的值是&a[4],*pp+1的值是&a[4]+1=&a[5],*(*pp+1)就是a[5]。②代码a[l0]当然是引用数组a的元素。③代码p[3][1]数组p只有三个元素,没有p[3],所以是错误的。④代码*(*(p+2)+2)中的(p+2)是&p[2],*(p+2)是p[2],其值是&a[6],*(p+2)+2的值是&a[8],*(*(p+2)+2)引用的是a[8]。所以解答是@。【解】上述代码定义变量pp是指针的指针,它能指向一个指向整型变量的指针。定义变量p是指针,它能指向一个整型变量。a是一个整型变量,它有初值10。b也是一个整型变量,它有初值20。代码pp=&p使pp指向p,p=&a使p指向a,p=&b又使p指向b,不再指向a。所以。p是引用b,其值为20。**pp是通过pp间接引用p,再通过p间接引用b,所以也是20。所以解答是④。1.设函数的功能是交换X和y的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是()

①funa(int*x,int*y){int*p;

*p=*x;*x=*y;*y=*p;

}②funb(intx,inty)

{intt;

t=x;x=y;y=t;

}③func(int*x,int*y)

{intp;

p=*x;*x=*y;*y=p;

}④fund(int*x,int*y)

{

*x=*x+*y;*y=*x-*y;*x=*x-*y;

}【解】设计实现交换两个变量值的函数。希望函数调用能改变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的变量,或引用它们的值,或改变它们的值。从而实现从函数传回信息存于调用环境的变量中。以上所述是设计交换变量值函数的一般原则,具体编写函数时还需注意对上述原则的正确应用。

对于函数funa,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。但是在函数体中定义了指针变量p,并在p宋明确设定它所指向的变量下,代码*p=*x企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。该函数因有错,不能实现交换变量值的功能。

对于函数funb,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。

对于函数func,该函数正确定义了指针形参,函数体也正确通过指针形参间接引用环境中的变量,并正确定义了自己的局部变量。该函数能实现交换变量值的功能。

对于函数fund,该函数也正确定义指针形参和函数体通过形参间接引用环境变量。特别要指出的是,该函数是利用*x和*y的;日值与新值之间的关系实现问题要求的。其中第一个赋值使。x存有原来未交换之前的*x与*y之和;第二个赋值从这个和中减去原来的*y,并将差赋给*y,使*y的值是交换之前的*x的值;第三个赋值再次从和中减去新的*y,即减去交换之前的*x,这个差就是交换之前的*y,并将差赋给*x。经以上三个赋值,实现两变量之间的值交换。所以不能正确执行交换变量值的函数是funa和funb,即正确选择是①②。

距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月全国计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!

合法的数组定义是()

①inta[]={"string"}②inta[5]={0,1,2,3,4,5};③chara={"string"}④chara[]={0,1,2,3,4,5};【解】①错误的原因是整数数组不可以用字符串对其初始化。②错误的原因是,数组初始化时,初始化指定的值的个数多于数组的元素个数。③错误的原因是,能用字符串初始化的只;有字符指针变量,或字符数组。字符率不能对其它类型的变量初始化,包括字符变量。④是正确的,因为字符数组可以用小整数(作为字符的ASCII代码值)对其元素初始化。\o"考试大软件水平考试"距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月全国计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!

下列语句中,正确的是()

①chara[3][]={’abc",’1’};

②chara[][3]={’abc’,’l’};

③chara[3][]={’a’,"1"};

④chara[][3]={"a","1"};【解】如定义数组时有初始化,其最高维的长度可以省缺,由系统根据初始化时的初值个数确定,而其它维的长度是不可以缺省的。对二维字符数组的初始化,可以按行用字符串对其初始化,也可以按二维数组元素的存储顺序逐一用字符对其元素初始化。在供选择解答①和③中,有不是最高维的长度被缺省,所以是错误的。在供选择解答①和②中,还将字符串常量写作’abc’,这也是错误的。只有④,用字符率按行给二维字符数组初始化,这才是正确的。正确构解答是④。\o"考试大软件水平考试"距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月全国计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!

unsignedfun6(unsignednum)

{unsignedk=l;

do{k*=num;num/=10;}

while(num);

returnk;

}

main()

{unsignedn=26;

printf("%d\n",fun6(n));

}

答案:【解】函数有一个形参num,循环前变量k置1,循环中,表达式num是取num的个位,将num的个位值累乘于k中,然后num除以10。循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回k。函数fun6的功能是求整数的各位十进数字积。所以程序输出12。\o"考试大软件水平考试"距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月全国计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!

以下程序的输出结果是()

#include

subl(chara,charb){charc;c=a;a=b;b=c;}

sub2(char*a,charb){charc;c=*a;*a=b;b=c;}

sub3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}

main()

{chara,b;

a=’A’;b=’B’;sub3(&a,&b);putchar(a);putchar(b);

a=’A’;b=’B’;Sub2(&a,b);putchar(a);rutchar(b);

a=’A’;b=’B’;sub1(a,b);putchar(a);putchar(b);

}

①BABBAB②ABBBBA③BABABA④BAABBA【解】在上述程序中,函数subl完成两形参值的交换,这个交换不影响实参变量,这是一个没有意义的函数。函数sub2将第二个形参的值置入由第一个指针形参所指的变量中,指针形参所指的变量由调用时的实参提供。函数sub3完成将两个形参所指的变量的值交换。程序调用sub3,使变量a和b的值交换输出BA;调用subZ,使变量b的值传送到a,输出BB;调用subl,变量a和b的值不改变,输出AB。所以程序输出BABBAB。正确解答是①。距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月全国计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!

阅读下面程序,写出运算结果。

unsignedfun6(unsignednum)

{unsignedk=l;

do{k*=num;num/=10;}

while(n);

returnk;}

main()

{unsignedn=26;

printf("%d\n",fun6(n));

【解】函数有一个形参num,循环前变量k置1,循环中,表达式num是取num的个位,将num的个位值累乘于k中,然后num除以10。循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回k。函数fun6的功能是求整数的各位十进数字积。所以程序输出12。距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!考试大整理了2008年11月全国计算机软件资格考试考前练习!考试大和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!

在面向数据流的设计方法中,一般把数据流图中的数据流划分为_(1)_两种。

A.数据流和事务流

B.变换流和数据流

C.变换流和事务流

D.控制流和事务流●_(2)_属于第三层VPN协议。

A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论