




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年四川省宜宾市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.拥有PC机并以拨号方式接入网络的用户需要配置()
A.CD-ROMB.ModemC.电话机D.鼠标
2.如果树的的结点A有4个兄弟,而且B为A的双亲,则B的度为()。
A.3B.4C.5D.1
3.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
4.若有定义语句:“intyear=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是()。
A.*p+=1;B.(*p)++;C.++(*p);D.*++P
5.下列叙述中正确的是()。
A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中对文件进行写操作后,必须先关闭该文件然后再打开才能读到第1个数据
D.C语言中的文件是流式文件,因此只能顺序存取数据
6.有以下函数:intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函数的功能是()。
A.将y所指字符串赋给x所指存储空间
B.查找和y所指字符串中是否有"\0'
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
7.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
8.
9.
10.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
11.下列能正确进行字符串赋值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
12.有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s",*p);}main{char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的运行结果是()。A.AfternoonB.fternoonC.MorningD.orning
13.以下叙述中正确的是
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
14.无向图中一个顶点的度是指图中与该顶点相邻接的顶点数。若无向图G中的顶点数为n,边数为e,则所有顶点的度数之和为()
A.n*eB.n+eC.2nD.2e
15.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
16.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序运行后的输出结果是()。
A.DB.BC.CD.A
17.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是()。
A.i-1B.iC.i+1D.4一i
18.下面程序的运行结果是()#include<stdio.h>#include<string.h>main(){char*a="AbcdEf",*b="aBcD"a++;b++;printf("%d\n",strcmp(a,b));}
A.0B.负数C.正数D.无确定值
19.程序运行后的输出结果是()。A.10B.30C.0D.64
20.在关系代数运算中,有5种基本运算,它们是()。
A.并(∪)、差(-)、交(∩)、除(÷)和笛卡儿积(×)
B.并(∪)、差(-)、交(∩)、投影(π)和选择(σ)
C.并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)
D.并(∪)、差(-)、投影(π)、选择(σ)和笛卡儿积(×)
二、2.填空题(20题)21.若x为int类型,请写出与!x等价的C语言表达式______。
22.下面程序的运行结果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
23.以下程序运行后的输出结果是______。
#include<string.h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
24.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。
voidfun(int*x,int*y)
{……}
main()
{inta=10,b=20;
【】:
p=fun;p(&a,&b);
……
}
25.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是【】
26.以下程序的输出结果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
27.以下程序运行后的输出结果是()。
#include<stdio.h>
main()
{intx=20;
printf("%d",0<x<20);
printf("%d\n",0<x&&x<20);
}
28.定义charch="$";inti=1,j;执行j=!ch&&i++以后,i的值为______。
29.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
30.算法的复杂度主要包括时间复杂度和______复杂度。
31.诊断和改正程序中错误的工作通常称为【】。
32.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
33.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
34.下列程序的输出结果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
primf("%d",sum);
}
35.算法的复杂度主要包括【】复杂度和空间复杂度。
36.以下程序的输出结果是()。
#include<stdio.h>
fun()
{inta=0;
a+=3;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)
fun();
printf("\n");
}
37.执行以下程序后的输出结果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
38.常用的黑箱测试有等价类划分法、【】和错误推测法3种。
39.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【】负责数据的模式定义与数据的物理存取构建。
40.软件危机的核心问题是【】和软件开发效率低。
三、1.选择题(20题)41.设int型占2个字节,则unsignedint所能表示的数据范围是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
42.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
43.下面程序的运行结果是()。for(i=3;i<7;i++)printf((i%2)?("**%d\a"):("##%d\n"),i);
A.**3##4**5**6
B.##3**4##5**6
C.##3**4##5##6
D.**3##4**5##6
44.若有定义:inta=4,b=5;floatx=3.4,y=2.1;,则下列表达式的值为()
(float)(a+b)/2+(int)×%(int)y
A.5.5B.55C.5.500000D.55.00000
45.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()。
inta[10]={0,1,2,3,4,5,6,7,8,9},*P=a;
A.a[P-a]B.*(&a[i])C.P[i]D.*(*(a+i))
46.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1B.2C.3D.9
47.有以下程序
#include<stdio.h>
#defineN5
#defineMN+1
#definef(x)(x*M)
main()
{inti1,i2;
i1=f(2);
i2=f(1+1);
printf("%d%d\n",i1,i2);
}
程序的运行结果是
A.1212B.117C.1111D.127
48.与y=(x>0?1:x<0?-1:0):的功能相同的if语句是()
A.if(x>0)y=1;elseif(x<0)y=-1;elsey=0;elsey=0;
B.if(x)if(x>0)y=1;elseif(x<0)y=-1;
C.y=-1;if(x)if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
D.y=0;if(x>=0)if(x>0)y=1;elsey=-1:
49.若以下选项中的变量已正确定义,则正确的赋值语句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
50.下列程序执行后的输出结果是______。main(){intm[][3]={1,4.7,6,5,8,3,6,9};inti,k=2for(i=0,i<3;i++){printf("%d",m[k][i];}}
A.456B.258C.369D.789
51.有以下计算公式:
若程序前面已在命令行中包括math.h文件,不能够正确计算上述公式的程序是()。
A.if(x>=0)y=sqrt(x);
B.y=sqrt(x);elsey=sqrt(-x);if(x<0)y=sqrt(-x);
C.if(x>=0)y=sqrt(x);
D.y=sqrt(x>=0?x:-x);
52.应用数据库的主要目的是A.A.解决数据保密问题
B.解决数据完整性问题
C.解决数据共享问题
D.解决数据量大的问题
53.若有以下说明和语句,则值为6的表达式是______。structstu{intn;structstu*next;};structstua[3],*p;a[0).n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next='\0';p=&a[0];
A.p++->nB.p->n++C.++p->nD.(*p).n++
54.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
55.下列关于线性表的叙述中,不正确的是()
A.线性表可以是空表
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表是由n个元素组成的一个有限序列
56.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请为下划线处选择正确的选项。#include<stdlib.h>stuctnodechardata;structnode*next;};()CreatList(char*s)struetnode*h,*p,*q;h=(struetnode*)ma]loc(sizeof(structnode));p=q=h;while(*s!='\0')p=(structnode*)ma]loc(sizeof(structnode));p->data=*s;q->next=p;q=p;s++;}p->next='\0';returnhmain()charstr[]="linklist";struetnode*head;head=CreatList(str);
A.char*B.struetnodeC.structnode*D.char
57.以下程序的输出结果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[a],a[5],a[8]);}
A.258B.741C.852D.369
58.有以下程序:#include<stdio.h>main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n",y);}程序运行后的输出结果是()。
A.10B.11C.14D.15
59.下列叙述中不正确的是
A.数据库技术的根本目标是要解决数据共享的问题
B.数据库系统中,数据的物理结构必须与逻辑结构一致
C.数据库设计是指设计一个能满足用户要求,性能良好的数据库
D.数据库系统是一个独立的系统,但是需要操作系统的支持
60.下列关于栈的叙述正确的是()。
A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据
四、选择题(20题)61.
62.以下关于字符串的叙述中正确的是()。
A.空串比空格打头的字符串小
B.两个字符串中的字符个数相同时才能进行字符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.C语言中有字符串类型的常量和变量
63.以下不正确的定义语句是
A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};
C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};
64.以下选项中,不合法的C语言用户标识符是()。A.a-一bB.AaBeC.a_bD.一1
65.
66.
67.
有以下程序:
main
{chara=a,b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序运行后的输出结果是()。
A.b,bB.b,cC.a,bD.a,c
68.(35)检查软件产品是否符合需求定义的过程称为______。
A.确认测试
B.集成测试
C.验证测试
D.验收测试
69.两个或两个以上模块之间联系的紧密程度称为()。
A.耦合性B.内聚性C.复杂性D.数据传输特性
70.
71..C语言运算对象必须是整型的运算符是
A.%B./C.=D.<
72.不能把字符串:Hello!赋给数组b的语句是()。
A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B.charb[10];b="Hello!";
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
73.已定义以下函数
74.要求以下程序的功能是计算:s=1+1/2+1/3+…+1/100。
程序运行后输出结果错误,导致错误结果的程序行是()。
A.s=1.0;
B.
C.S=S+1/n;
D.
75.
有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
76.
77.有两个关系R,S如下:
由关系R通过运算得到关系s,则所使用的运算为()。
A.选择B.插入C.投影D.连接
78.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}
79.有以下程序:
程序运行后的输出结果是()。
A.2B.4C.6D.8
80.设有如下关系表:
则下列操作中,正确的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考答案
1.B
2.C
3.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)
4.D
5.AB选项中,打开一个已存在的文件并进行写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中,在一个程序中对文件进行写操作后,不是先关闭该文件然后再打开才能读到第1个数据,用fseek函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。故本题答案为A选项。
6.C本题中由循环条件可知遇到“0或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
7.A程序定义一个二维字符数组v,使用5个字符串对其初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。
8.B
9.D
10.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。
11.C解析:字符串存储要有结束符“\\0”且要占用一个空间,选项A)、B的空间不够:printf用来输出字符,不能输入字符串.
12.A执行fun(a)语句时,P指向的是字符串数组a的第一个字符串“Morning”,p自加1之后,p指向字符串数组a的第2个字符串“Afternoon”。
13.C算法具有的5个特性是:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。所以说,用C程序实现的算法可以没有输入,但必须要有输出。因此本题答案选C。
14.D
15.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
16.D题干中,字符变量a、b、c、d都是大写字母字符。C语言中,大写字母的ASCII值是按照字母顺序连续递增的,所以a小于b,b小于c,c小于d。则表达式“x=(a<b)?a:b”等价于“x=a”;“x=(x>c)?c:x”等价于“x=(a>c)?c:a”,等价于“x=a”;“x=(d>x)?x:d”等价于“x=(d>a)?a:d”,等价于“x=a”;所以程序输出x的值为A。故本题答案为D选项。
17.B
\n本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。
\n
18.C
19.D[解析]本题目中静态局部变量x,在静态存储区内分配存储单元。在程序整个运行期间都不释放。所以第一次循环s的值为2.第二次循环中,返回的x的值为4.所以s的值为8.第三次循环,返回的x的值为8.所以s的值为64.
20.D解析:关系代数运算的基本运算符有4类:集合运算符、专门的关系运算符、算术运算符和逻辑运算符。并、差、笛卡儿积、投影、选择是5种基本的运算,其他运算可以通过基本的运算导出。
21.x==0x==0解析:!x的逻辑意思就是x为非,即x==0。
22.abcdefglkjIhabcdefglkjIh解析:本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。
23.abcfgabcfg解析:本题考查的是字符数组用作函数参数。C语言中数组名可以看作该数组首地址的常量指针、因此可以直接传递给指针类型的参数。本题的主函数调用fun(s,3,strlen(s));后,函数中for循环就是for(i=3;i<strlen(s)-1;i++),即i从3递增到字符数组s的长度-2位置,循环中让s[i]=s[i+2],所以函数fun()实现的功能简单来说就是将字符串s下标为p+2~k范围的字符整体复制到字符串s下标为p~k-2的位置上。在本题中strlen(s)返回s的长度7,所以复制的字符为s[5]~s[7],即'f'、'g','\\0'三个字符,复制到s[3]~s[5],故最终输出的字符串为abcfg(因为s[5]为'\\0',所以后面的字符不会输出)。
24.void(*p)();void(*p)();解析:要定义p为指向函数的指针变量,需写成void(*p)();,注意*p两侧的括弧不可以省略,表示P先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun()函数)。
25.概念数据模型概念数据模型
26.3535解析:函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,形参指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。
27.1010解析:表达式0<x<20,首先计算0<x,其值为1,再计算1<20,其值为1,输出1;表达式0<x&&x<20,0<x为1,x<20为0,再计算1&&0,其值为0,输出0。所以输出结果为10。
28.用“&&”连接两个表达式时,若第1个表达式的值为“假”,则运算结果与第2个表达式无关,此时第2个表达式将不再进行计算。本题中第1个表达式“j=!ch”值为0,所以第2个表达式i++将不再进行计算,i的值为1。\r\n\r\n
29.220220解析:根据赋值运算符“自右至左”的结合顺序,程序中赋值表达式x=f*=n/=(c=50)的求解步骤为:首先计算n/=(c=50),即n=n/c=100/50=2;然后计算f*=n,即f=f*n=10*2=20.000000,由此得到x的值为20.000000。
30.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
31.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。
32.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i],在第二重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
33.1对多(或1:N)1对多(或1:N)
34.无定值无定值解析:for(i=l;i<7;i++)决定了循环次数为6次,每次执行的操作是sum+=i,但由于sum没有初始化,并不知道sum的初值是多少,所以结果无定值。
35.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
36.33333333解析:本题考查for循环,for(cc=1;cc<=4;cc++)表示循环4次,a+=3表示每次a的值增加3,但是子函数中没有将变量a定义为static类型,所以每次调用完子函数之后,变量a所做的改变都不能保存,这样在下一次调用子函数时,a的初值仍是0,所以不管调用多少次,子函数输出始终是3。
37.a=14a=14解析:逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。
38.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。
39.数据定义语言数据定义语言解析:在数据库管理系统提供的数据定义语言,数据操纵语言和数据控制语言中,数据定义语言负责数据的模式定义与数据的物理存取构建,数据操纵语言负责数据的操纵,包括查询及增、删、改等操作,数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、恢复等功能。
40.软件质量差软件质量差解析:大约在20世纪60年代末人们在计算机软件的开发和维护过程中,遇到了一系列严重问题,从而认识到软件危机的存在。软件危机的核心问题是软件开发的质量太差和软件系统开发的效率太低。
41.A解析:本题int型占2个字节,即16位,unsignedint所能表示的数据范围是0~(2(上标)16-1),即0~65535。
42.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。
43.D解析:本题考查printf函数的输出格式和条件表达式“?:”的使用。①printf函数输出时“**%d\\n”和“##%d\\n”中的“##”和“**”都是直接输出。②条件表达式的基本格式为:“a?b:c”。它的运算规则为:当a为非0时,整个表达式的值取b的值,当a为0时,整个表达式取c的值。
44.C解析:在计算(float)(a+b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。
在计算(int)x%(int)y时,先将x和y通过强制类型转换成血型,再进行求余运算,得1。
又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。
[知识扩展]类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→long→float→double。
45.D解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。
46.BB。【解析】根据二分法查找法需要两次:(1)首先将90与表中间的元素50进行比较,由于90大于50,所以性表的后半部分查找。(2)第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
47.B解析:根据宏替换的替换规则,我们可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。
48.A
49.C解析:赋值的一般形式为:变量名:表达式;,赋值的方向为由右向左,即将:右侧表达式的值赋给:左侧的变量,执行步骤是先计算再赋值。选项A中运算符%的运算对象必须为整数,而选项A中26.8不为整数,故选项A不正确;选项B将一个变量赋值给一个常量,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个常量,故选项D不正确;所以,4个选项中选项C符合题意。
50.C解析:根据二维数组的定义得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本题的输出是第3行的值m[2][0],m[2][1],m[2][2],即369。
51.B
52.C数据库是对数据进行操作和管理的,可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。数据库可以被直观地理解为存放数据的仓库,数据库可以对大量数据进行管理和应用。一个应用数据库的主要目的就是要实现数据的共享,能使应用数据库的数据被大量用户使用。
53.C解析:表达式p++->n相当于先取p->n的值(即a[0].n),再p++(指针后移指向元素a[1]):表达式p->n++相当于先取p->n的值(即a[0].n),再将p->n的值(即a[0].n的值)加1;表达式++p->n先将p->n的值加1(即a[0].n的值加1),可见,它的值应该是6。选项D和选项B一样。
54.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。
55.CC)【解析】线性表是一种线性结构,由n(n≥O)个元素组成,所以线性表可以是空表。但是性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C)是错误的。
56.C解析:本题要求建立一个structnode类型的数据链表,从main函数可知,h是“头指针”变量,它指向所建立的表的第一个数据,函数的类型应该与h的类型一致,所以应该填streetnode*。
57.C解析:在本题运行时主要注意的是当i=9时,a[i]=10-9=1;i=8时,a[i]=10-8=2;i=7时,a[i]=10-7=3;……依此类推,直到i=0时,a[i]=10-0=10;此时,i的值已变为-1,判断for的循环条件,不成立,然后输出a[2],a[5],a[8]分别为8,5,2。
58.C解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。
59.B解析:B选项错误,原因是,数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。
60.B栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。
61.D
62.A字符串比较大小是以第l个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数s协emp()以外,就只能靠自己写代码来实现了。而不能通过关系运算符来比较大小。因为字符串在表达式中相当于constchar+,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。c选项不正确。C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为l,因此A选项是正确的。
63.A在一维数组中要注意的是,下标表达式中常量表达式的值必须大于等于零,并且小于自身元素的个数,即数组长度,选项A的下标不是整数,所以错误。
64.A用户标识符命名规则为:由数字、字母或下划线组成,且首字母不能是数字.不能和关键字重复,所以A)错误.
65.D
66.A
67.A
\n++a与a++的区别是前者先自加再运算,后者是先运算后自加。
\n
68.A
69.A解析:耦合性是模块间互相连接的紧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拍卖行拍卖业务全球竞争力提升路径规划考核试卷
- 液压阀的智能控制技术考核试卷
- 2025中介合同相关司法解释内容
- 2025残疾人劳动合同范本:残疾人劳动合同样式
- T-JLJY 01 -2023 幼儿园教育装备配置规范
- 砖厂承包经营合同书范文二零二五年
- 最简单厂房租赁合同二零二五年
- 车库房屋租赁合同书范例
- 二零二五版贷款买车担保合同书猫腻多多
- 二零二五版知识产权合同书大全
- (新版)网络安全知识考试题库(核心600题)
- 长螺旋钻桩施工记录
- 中医内科临床诊疗指南-肺动脉高压
- 三氯化硼-安全技术说明书MSDS
- DB11T 1518-2018 人民防空工程战时通风系统验收技术规程
- 交互设计全流程解析(17章)课件
- DB34T1589-2020 《民用建筑外门窗工程技术标准》
- 磨煤机检修步骤工艺方法及质量标准
- 辽宁省高中毕业生登记表含成绩表学年评语表体检表家庭情况调查表完整版高中档案文件
- 壁饰设计(课堂PPT)
- 钢管扣件进场验收记录
评论
0/150
提交评论