21以下程序段完全正确的是( )。
A.int * p;scanf(”%d”,&p);
B.int*p;scanf(”%d”,P);
C.int k,* P:&k;scanf(’’%d”,P);
D.int k,*p;*P=&k;scanf(”%d”,P);
参考答案:C
参考解析:A选项中错在没有对指针进行初始化,是无效指针,并且在scanf(”%d”,&p)中无需再进行取地址操作;B选项中没有对指针进行初始化,是无效指针;D选项中语句+P=&k;的左端t pt是指针所指内存空间的值,&k是地址,应为P=&k。因此C选项正确。
22有以下程序:
程序运行后的输出结果是( )。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9,1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
参考答案:D
参考解析:本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数a的一个副本,而不会改变a的值,所以a值维持原值,选项D正确。
23下列叙述中正确的是( )。
A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对
参考答案:D
参考解析:栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。
24以下定义数组的语句中错误的是( )。
参考答案:B
参考解析:B)选项中定义的数组为2行4列,而赋值时赋成了3行所以出错。
25以下程序段中,与语句:k=a>b?(b>c?1:O):0;功能相同的是( )。
参考答案:B
参考解析:条件表达式的含义是,如果表达式1成立,结果为表达式2的值,如果不成立为表达式3的值。所以题干中k的值这样取值:如果a>b且b>c,k值结果为1,如果a>b,且bb与b>c中只要有一个条件不成立,k的值就为0,所以选择B选项。
26有以下程序:
程序运行后的输出结果是( )。
A.3B.4C.lD.9
参考答案:B
参考解析:每次内循环只循环一次就结束,第一次外循环时t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。
27有以下程序:
程序运行后的输出结果是( )。
A.321B.12300C.1D.123
参考答案:D
参考解析:程序首先将数组a[10]中的元素l、2.3分别写入了文件dl。dat文件中,然后又将dl.dat文件中的数据123,整体写入到了变量n的空间中,所以打印n时输出的 数据为123。
28有以下程序:
当执行程序时从键盘上输入Hello Beijing,则程序运行后的输出结果是( )。
A.hello bajiIlgB.Hello BeijingC.HELLO BEIJINGD.hELLO Beijing
参考答案:C
参考解析:主程序读取整个字符串存于s中,调用fun函数。字符指针c指向数组S。函数fun的功能是把指针C所指向的字符数组中的所有小写字符转换为大写。嚣cts函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果·c为小写字符,则}C={C一32(转大写)。因此C选项正确。
29以下语句中存在语法错误的是( )。
参考答案:A
参考解析:数组定义后,不可以对数组整体赋值,s是二维数组,因SS[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy(SS[1],”right”);这样的形式,而选项A中对二维数组中的第…l维(相当于一个一维数组)赋值,是不可以的。选项8和D是定义时对数组初始化,这是可以的。选项c中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。
30有以下程序:
程序运行后的输出结果是( )。
A.2.3B.1,3C.1,4D.1,2
参考答案:B
参考解析:在f(int+P,int 4 q)函数中,执行P=P+1是将P所对应的地址加1,而0 q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。
31下列叙述中正确的是( )。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
参考答案:B
参考解析:在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
32有以下程序:
程序执行后的输出结果是( )。
A.2B.3C.7D.0
参考答案:A
参考解析:因为fun(int x)是一个递归函数,所以主函数中fun(7)经过3次递归调用,其过程可以描述为“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后输出结果为2。因此.A选项正确。
33软件详细设计生产的图如右图:该图是( )。
A.N—S图B.PAD图C.程序流程图D.E—R图
参考答案:C
参考解析: N—s图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以8不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
34有以下程序:
程序执行后的输出结果是( )。
A.5B.24C.32D.40
参考答案:C
参考解析:本题的含义是在1—40的蔓敦的范围中,只有当i的值能被5整除,且i+2的值能被3薹纛时,打印i的值,满跫这个条件的只有32,选择c选项。
35若有以下函数首部:
int fun(double x[10],int*n)
则下面针对此函数的函数声明语句中正确的是( )。
A.int fun(double,int);
B.int fun(double木,int*);
C.int mn(double*x,int n);
D.int fun(double x,intint*n)
参考答案:B
参考解析:函数声明的一般形式为:“类型说明符被调函数名(类型形参,类型形参,……);”或“类型说明符被调函数名(类型,类型,……);”由于函数首部为int fun(double x[10],int*n),因此B选项正确。
36有以下函数:
函数的功能是( )。
A.将Y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和Y所指字符串中相同的字符个数
参考答案:C
参考解析:本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和Y所指字符串中最前面连续相同的字符个数。
37设有定义:
double a[10],*s=a;
以下能够代表数组元素a[3]的是( )。
A.($s)[3]B.}(s+3)C.*s[3]D.}s+3
参考答案:B
参考解析:语句·s=a;表示指针变量s指向一维数组a的首地址。a[3]表示引用数组a的第4个元素,+(s+i)表示引用指针8所指数组a的第i+1个元素,选项A、C、D的表示方法错误,只有B选项正确。
38数据库设计中反映用户对数据要求的模式是( )。
A.内模式B.概念模式C.外模式D.设计模式
参考答案:C
参考解析:数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
39设已有定义:float x;,则以下对指针变量P进行定义且赋初值的语句中正确的是( )。
A.int*p=(float)x;B.float*p=&x;C.float p=&x;D.float=1024;
参考答案:B
参考解析:指针是用来存放地址的变量,用(类型名+指针变量名)的形式定义。赋值时应将某个变量地址即8Ⅸ赋给指针变量,所以选择B。
40有以下程序:
程序运行后的输出结果是( )。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
参考答案:A
参考解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f所做所有操作只是针对这个数据拷 贝进行的修改,这些都不会影响变量c的值。
相关推荐: