1、二级 C语言笔试-318 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.数据库管理系统中负责数据模式定义的语句是(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言2.有以下程序,其中 k的初值为八进制数。程序运行后的输出结果是#includestdio.hmain()int k=011;printf(“%d/n“, k+);(分数:2.00)A.12B.11C.10D.93.有以下定义和语句:struct workersint num; char name20; char c;struct int day;
2、 int month; int year; s;struct workers w, *pw;pw=能给 w中 year成员赋值 1980的语句是(分数:2.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980;D.s.year=1980;4.以下程序运行后的输出结果是#includestdio.hmain()int i, j, m=1;for(i=1; i3; i+)for(j=3; j0;j-)if(i*j3) break;m*=i*j;printf(“m=%d/n“,m);(分数:2.00)A.m=6B.m=2C.m=4D.m=55.以下程序运行后的输
3、出结果是#includestdio.h#includestring.hstruct Aint a; char b10; double e; ;void f(struct A t);main()struct A a=1001, “ZhangDa“, 1098.0;f((分数:2.00)A.; printf(“%d, %s, %6.1f/n“, a.a, a.b, a.c);void f(stru6.若 a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是(分数:2.00)A.1B.0C.2D.不知道 a的值,不能确定7.以下程序运行后的输出结果是#includestdio.hmain()FI
4、LE *fp; char str10;fp=fopen(“myfile.dat“, “w“);fputs(“abc“, fp); fclose(fp);fp=fopen(“myfile.data“, “a+“);fprintf(fp, “%d“, 28);rewind(fp);fscanf(fp, “%s“, str); puts(str);fclose(fp);(分数:2.00)A.abcB.28cC.abc28D.因类型不一致而出错8.下列关于 C语言数据类型使用的叙述中,错误的是(分数:2.00)A.若要准确无误差地表示自然数,应使用整数类型B.若要保存带有多位小数的数据,应使用双精度类
5、型C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型9.以下程序运行后的输出结果是#includestdio.hmain()int a=2, b=2, c=2;printf(“%d/n“, a/b(分数:2.00)A.0B.1C.2D.310.以下程序运行后的输出结果是#includestdio.hmain()int a5=1, 2, 3, 4, 5, b5=0, 2, 1, 3, 0, i, s=0;for(i=0; i5; i+) s=s+abi;printf(“%d/n“, s);(分数:2.00)A.6B.10C.
6、11D.1511.以下程序运行后的输出结果是#includestdio.hmain()int a=1, b=2;for(; a8; a+)b+=a; a+=2;printf(“%d,%d/n“,a,b);(分数:1.00)A.9,18B.8,11C.7,11D.10,1412.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于(分数:1.00)A.定义阶段B.开发阶段C.维护阶段D.上述 3个阶段13.以下程序运行后的输出结果是#includestdio.hint fun()static int x=1;x*=2; return x;main()int i, s=1;for(i=1;
7、 i=2; i+) s=fun();printf(“%d/n“, s);(分数:1.00)A.0B.1C.4D.814.下列选项中,能正确定义数组的语句是(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;15.以下程序运行后的输出结果是#includestdio.h#define SUB((分数:1.00)A.(a)-(a)main()int a=2, b=3, c=5, d;d=SUB(a+B.*e;data1=1, 8. data2;则以下赋值语句中错误的是(分数:1.00)A.
8、data2=data1;B.data2=(2, 6);C.data2.real=data1.real;D.data2.real=data1.unreal;17.以下选项中与 if(a=1) a=b; else a+;语句功能不同的 switch语句是(分数:1.00)A.switch(a)case 1: a=b; break;default:a+;B.switch(a=1)case 0: a=b; break;case 1:a+;C.switch(a)default: a+; break;case 1:a=b;D.switch(a=1)case 1:a=b; break;case 0:a+;1
9、8.以下程序运行后的输出结果是#includestdio.hint f(int t, int n);main()int a4=1, 2, 3, 4, s;s=f(a, 4); printf(“%d/n“, s);int f(int t, int n)if(n0) return tn-1+f(t, n-1);else return 0;(分数:1.00)A.4B.10C.14D.619.软件(程序)调试的任务是(分数:1.00)A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现和改正程序中的所有错误D.确定程序中的错误性质20.以下程序运行后的输出结果是#includestdio.
10、hvoid fun(char *c, int d)*c=*c+1;d=d+1;printf(“%C, %c,“, *c, d);main()char b=a, a=A;fun( printf(“%c, %c/n“, b,a);main()int aN=1, 2, 3, 4, 5, 6, 7, 8, i;fun(a, 2);for(i=0; iN/2; i+) printf(“%d“, ai); printf(“/n“);(分数:2.00)A.1313B.2234C.3234D.123422.在学生管理的关系数据库中,存取一个学生信息的数据单位是(分数:2.00)A.文件B.数据库C.字段D.记
11、录23.下列关于 C语言的叙述中,正确的是(分数:2.00)A.C语言中的注释不可以夹在变量名或关键字的中间B.C语言中的变量可以在使用之前的任何位置进行定义C.在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C语言的数值常量中夹带空格不影响常量值的正确表示24.若有定义 int(*pt)3;,则下列说法中正确的是(分数:2.00)A.定义了基类型为 int的 3个指针变量B.定义了基类型为 int的具有 3个元素的指针数组 ptC.定义了一个名为*pt、具有 3个元素的整型数组D.定义了一个名为 pt的指针变量,它可以指向每行有 3个整数元素的二维数组25.设有定义 doub
12、le a10,*s=a;,以下能够代表数组元素 a3的是(分数:2.00)A.(*s)3B.*(s+3)C.*s3D.*s+326.有两个关系 R和 T如下:(分数:2.00)A.选择B.投影C.交D.并27.下列关于 return语句的叙述中,正确的是(分数:2.00)A.一个自定义函数中必须有一条 return语句B.一个自定义函数中可以根据不同情况设置多条 return语句C.定义成 void类型的函数中可以有带返回值的 return语句D.没有 return语句的自定义函数在执行结束时不能返回到调用处28.算法的时间复杂度是指(分数:2.00)A.算法的执行时间B.算法所处理的数据量C
13、.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数29.以下程序运行后的输出结果是#includestdio.hmain()int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1;for(i=0; ifor(j=i; j=i; j+) t+=bibji;printf(“%d/n“, t);(分数:2.00)A.1B.3C.4D.930.下列语句组中,正确的是(分数:2.00)A.char *s; s=“Olympic“;B.char s7; s=“Olympic“;C.char *s; s=“Olympic“;D.char s7; s=“Ol
14、ympic“;31.有以下程序:#includestdio.hmain( )char a, b, c, d;scanf(“%c%c“, c=getchar(); d=getchar();printf(“%c%c%c%c/n“, a, b, c, d);当执行程序时,按下列方式输入数据(从第一列开始,CR代表回车,注意:回车也是一个字符):12CR34CR则输出结果是(分数:2.00)A.1234B.12C.123D.123432.若有以下定义和语句,则输出结果是char s110=“abed!“, *s2=“/n123/“;printf(“%d %d/n“, strlen(s1), strle
15、n(s2);(分数:2.00)A.5 5B.10 5C.10 7D.5 833.以下 C语言用户标识符中,不合法的是(分数:2.00)A._1B.AaBcC.a_bD.a-b34.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列属于系统软件的是(分数:2.00)A.编辑软件B.操作系统C.教务管理系统D.浏览器35.下列叙述中正确的是(分数:2.00)A.对长度为 n的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n)D
16、.对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2n)36.有如下嵌套的 if语句:if(ab)if(ac) k=a;else k=c;elseif(bc) k=b;else k=c;以下选项中与上述 if语句等价的语句是(分数:2.00)A.k=(ab) ? a:b; k=(bc)? b:c;B.k=(ab) ? (be) ? a:b) : (bc) ? b:c);C.k=(ab) ? (ac) ? a:c) : (be) ? b:c);D.k=(ab) ? a:b; k=(ac) ? a:c;37.若有定义:double a=22;int i=0, k=18;,
17、则不符合 C语言规定的赋值语句是(分数:2.00)A.a=a+, i+;B.i=(a+k)=(i+k);C.i=a%11;D.i=!a;38.数据库设计中,用 ER图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的(分数:2.00)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段39.下列叙述中正确的是(分数:2.00)A.C语言程序是由过程和函数组成的B.C语言函数可以嵌套调用,例如:fun(fun(x)C.C语言函数不可以单独编译D.C语言中除了 main函数,其他函数不可作为单独文件形式存在40.数据流程图(DFD 图)是(分数:2.00)A.软件概要设计的
18、工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具二、填空题(总题数:15,分数:30.00)41.一个队列的初始状态为空。现将元素 A,B,C,D,E,F,5,4,3,2,1 依次入队,然后依次退队,则元素退队的顺序为 1。(分数:2.00)填空项 1:_42.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_43.如图所示二叉树的后序遍历的结果为_。(分数:2.00)填空项 1:_44.软件是 1 、数据和文档的集合。(
19、分数:2.00)填空项 1:_45.有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 1 ,成绩)。(分数:2.00)填空项 1:_46.设 x为 int型变量,请写出一个关系表达式 1,用以判断 x同时为 3和 7的倍数时,关系表达式的值为真。(分数:2.00)填空项 1:_47.以下程序运行后的输出结果是_。#includestdio.hmain()int a=1, b=2, e=3, d=0;if(a=1)if(b!=2)if(c=3) d=
20、1;else d=2;else if(c!=3) d=3; else d=4;else d=5;printf(“%d/n“, d);(分数:2.00)填空项 1:_48.以下程序运行后,当输入“14 63”时,输出结果是_。#includestdio.hmain()int m, n;scanf(“%d %d“, while(m!=n)while(mn) m=m-n;while(mn) n=n-m;printf(“%d/n“, m);(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是_。#includestdio.hmain()int i,j, a3=1, 2, 3, 4, 5,
21、6, 7, 8, 9;for(i=0; i3; i+)for(j=i; j3; j+) printf(“%d“, aij);printf(“/n“);(分数:2.00)填空项 1:_50.以下程序运行后的输出结果是_。#includestdio.hmain()int a=1, 2, 3, 4, 5, 6, *k3, i=0;while(i3)ki=printf(“%d“, *ki);i+;(分数:2.00)填空项 1:_51.以下程序运行后的输出结果是_。#includestdio.hmain()int a33=1, 2, 3, 4, 5, 6, 7, 8, 9;int b3=0, i;for
22、(i=0; i3; i+) bi=ai2+a2i;for(i=0; i3; i+) printf(“%d“, bi);printf(“/n“);(分数:2.00)填空项 1:_52.以下程序运行后输入“abcdef”,则输出结果是_。#includestdio.h#includestring.hvoid fun(char *str)char temp; int n, i;n=strlen(str);temp=strn-1;for(i=n-1; i0; i-) stri=stri-1;str0=temp;main()char s50;scanf(“%s“, s); fun(s); printf(
23、“%s/n“, s);(分数:2.00)填空项 1:_53.以下程序的功能是:将值为 3位正整数的变量 X中的数值按照个位、十位、百位的顺序拆分并输出。请填空。#includestdio.hmain()int x=256;printf(“%d-%d-%d/n“, _, x/10%10, x/100);(分数:2.00)填空项 1:_54.以下程序的功能是:删除字符串中所有的空格。请填空。#includestdio.hmain()char s100=“Our teacher teach C language!“; int i, j;for(i=j=0; si!=/0; i+)if(si!=) s
24、j=si; j+;sj=_;printf(“%s/n“, s);(分数:2.00)填空项 1:_55.以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#includestdio.hmain()int a10, *p, *s;for(P=a; p-a10; p+) scanf(“%d“, p);for(P=a, s=a; p-a10; p+) if(*p*s) s=_;printf(“index=%d/n“, s-a);(分数:2.00)填空项 1:_二级 C语言笔试-318 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.
25、00)1.数据库管理系统中负责数据模式定义的语句是(分数:2.00)A.数据定义语言 B.数据管理语言C.数据操纵语言D.数据控制语言解析:解析 数据库定义语言(Data Definition Language,DDL)用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略。2.有以下程序,其中 k的初值为八进制数。程序运行后的输出结果是#includestdio.hmain()int k=011;printf(“%d/n“, k+);(分数:2.00)A.12B.11C.10D.9 解析:解析 C 语言中,011 表示八进制数,转换为十进制数 9。按
26、照%d 的格式描述输出十进制数,先输出 k再自增,所以输出结果为 9。3.有以下定义和语句:struct workersint num; char name20; char c;struct int day; int month; int year; s;struct workers w, *pw;pw=能给 w中 year成员赋值 1980的语句是(分数:2.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980;D.s.year=1980; 解析:解析 本题考查结构体成员的引用。通过 pw和 w都不能直接引用结构成员 day、month、year,必须通
27、过成员变量 s才能引用。4.以下程序运行后的输出结果是#includestdio.hmain()int i, j, m=1;for(i=1; i3; i+)for(j=3; j0;j-)if(i*j3) break;m*=i*j;printf(“m=%d/n“,m);(分数:2.00)A.m=6 B.m=2C.m=4D.m=5解析:解析 程序中,当循环变量 i=2,j=3 时,ij3 成立,结束 j循环。只有当 i为 1,j 分别为1,2,3 时,才参与了 m*=i*j计算。因此,m=111213=6。5.以下程序运行后的输出结果是#includestdio.h#includestring.h
28、struct Aint a; char b10; double e; ;void f(struct A t);main()struct A a=1001, “ZhangDa“, 1098.0;f((分数:2.00)A.; printf(“%d, %s, %6.1f/n“, a.a, a.b, a.c);void f(stru 解析:解析 本题考查结构体变量作为函数参数进行函数调用。结构变量作为函数参数,虽然函数 f中改变了结构变量的值,但在 main函数中,结构变量的值并没有改变,所以,输出的仍然是结构变量的初始化值。6.若 a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是(分数:2.
29、00)A.1 B.0C.2D.不知道 a的值,不能确定解析:解析 表达式:(a=1)|(a!=1)的含义是无论 a是什么值,即 a等于 1或不等于 1,结果均为“真”。7.以下程序运行后的输出结果是#includestdio.hmain()FILE *fp; char str10;fp=fopen(“myfile.dat“, “w“);fputs(“abc“, fp); fclose(fp);fp=fopen(“myfile.data“, “a+“);fprintf(fp, “%d“, 28);rewind(fp);fscanf(fp, “%s“, str); puts(str);fclose
30、(fp);(分数:2.00)A.abcB.28cC.abc28 D.因类型不一致而出错解析:解析 本题考查文件操作。第一次以只写方式“w“打开文件,将字符串“abc“写入文件 myfile.dat中,关闭文件;第二次以追加方式“a+“打开文件,将整型数 28追加到 myfile.dat文件中,此时,文件中内容为 abc28。再将文件位置指针反绕到文件头,从文件中以字符串形式将 abc28读入数组 str中,并在显示屏上输出字符数组 str。8.下列关于 C语言数据类型使用的叙述中,错误的是(分数:2.00)A.若要准确无误差地表示自然数,应使用整数类型B.若要保存带有多位小数的数据,应使用双精
31、度类型C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 解析:解析 C 语言中没有逻辑型数据,用“0”表示逻辑值“假”,用“1”表示逻辑值“真”。9.以下程序运行后的输出结果是#includestdio.hmain()int a=2, b=2, c=2;printf(“%d/n“, a/b(分数:2.00)A.0 B.1C.2D.3解析:解析 本题考查位运算。由于 a/b的结果为 1,1for(i=0; i5; i+) s=s+abi;printf(“%d/n“, s);(分数:2.00)A.6B.10C.11 D.15
32、解析:解析 数组元素 bi作为数组 a的下标,s=a0+a2+a1+a3+a0,即 s=1+3+2+4+1=11。11.以下程序运行后的输出结果是#includestdio.hmain()int a=1, b=2;for(; a8; a+)b+=a; a+=2;printf(“%d,%d/n“,a,b);(分数:1.00)A.9,18B.8,11C.7,11D.10,14 解析:解析 循环变量 a的初值为 1,每循环一次,循环变量 a的值增加 3。根据 a8 的条件,循环将执行 3次,a 取值分别为 1、4、7。变量 b的初值为 2,因此,b=2+1+4+7=14。12.软件生命周期可分为定义
33、阶段、开发阶段和维护阶段。详细设计属于(分数:1.00)A.定义阶段B.开发阶段 C.维护阶段D.上述 3个阶段解析:解析 软件生命周期由软件定义、软件开发和软件维护 3个时期组成。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期由 5个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。13.以下程序运行后的输出结果是#includestdio.hint fun()static int x=1;x*=2; return x;main()int i, s=1;for(i=1; i=2; i+) s=fun();pri
34、ntf(“%d/n“, s);(分数:1.00)A.0B.1C.4 D.8解析:解析 本题考查静态存储变量。在函数 fun中,静态变量 x始终占据存储空间,并且只赋一次初值。第一次调用函数 fun时,x 被赋初值为 1,返回 x值为 2;第二次调用函数 fun时,x 初值仍为 2,返回 x的值为 4。所以,程序输出结果为 4。14.下列选项中,能正确定义数组的语句是(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN; 解析:解析 定义数组时,数组大小只能是常量。选项 C中是变量,选项
35、B中没有指定数组大小,所以选项 C和 B错误的。选项 A的表示方法显然是错误的。选项 D中的 N是符号常量,满足数组定义的语法要求。15.以下程序运行后的输出结果是#includestdio.h#define SUB((分数:1.00)A.(a)-(a)main()int a=2, b=3, c=5, d;d=SUB(a+B.*e;data1=1, 8. data2;则以下赋值语句中错误的是(分数:1.00)A.data2=data1;B.data2=(2, 6); C.data2.real=data1.real;D.data2.real=data1.unreal;解析:解析 同类型的结构体变
36、量之间可以相互赋值;同类型的成员间也可相互赋值。17.以下选项中与 if(a=1) a=b; else a+;语句功能不同的 switch语句是(分数:1.00)A.switch(a)case 1: a=b; break;default:a+;B.switch(a=1)case 0: a=b; break;case 1:a+;C.switch(a)default: a+; break;case 1:a=b;D.switch(a=1)case 1:a=b; break;case 0:a+;解析:解析 选项 B中,switch 语句中表达式“a=1”为“真”时,表达式取值 1,程序流程转向 cas
37、e 1: a+;,与 if(a=1) a=b; else a+;语句功能不同。18.以下程序运行后的输出结果是#includestdio.hint f(int t, int n);main()int a4=1, 2, 3, 4, s;s=f(a, 4); printf(“%d/n“, s);int f(int t, int n)if(n0) return tn-1+f(t, n-1);else return 0;(分数:1.00)A.4B.10 C.14D.6解析:解析 本题考查函数递归调用。被调函数 f中的 t数组与 main函数中的 a数组共用一组存储单元,根据函数递归调用流程可知:s=f
38、(a, 4)=t3+f(t,3),f(t, 3)=t2+f(t, 2),f(t, 2)=t1+f(t, 1),f(t, 1)=t0+f(t, 0),f(t, 0)=0;将 f(t, 0)=0代入上述公式进行递推:f(t, 1)=t0+f(t, 0)=1+0=1,f(t, 2)=t1+f(t, 1)=2+1=3,f(t, 3)=t2+f(t, 2)=3+3=6,s=f(a, 4)=t3+f(t, 3)=4+6=10。19.软件(程序)调试的任务是(分数:1.00)A.诊断和改正程序中的错误 B.尽可能多地发现程序中的错误C.发现和改正程序中的所有错误D.确定程序中的错误性质解析:解析 软件(程序
39、)调试的任务是为了诊断和改正程序中的错误,软件(程序)测试的任务才是为了发现错误。20.以下程序运行后的输出结果是#includestdio.hvoid fun(char *c, int d)*c=*c+1;d=d+1;printf(“%C, %c,“, *c, d);main()char b=a, a=A;fun( printf(“%c, %c/n“, b,a);d=d+1;后,输出*c 和 d的值分别为字符 b和 B。返回到 main函数后,变量 b的值改变为字符 b,而变量 a的值没有改变,输出的仍然是字符 A。21.以下程序运行后的输出结果是#includestdio.h#define
40、 N 8void fun(int *x, int i)*x=*(x+i);main()int aN=1, 2, 3, 4, 5, 6, 7, 8, i;fun(a, 2);for(i=0; iN/2; i+) printf(“%d“, ai); printf(“/n“);(分数:2.00)A.1313B.2234C.3234 D.1234解析:解析 在函数 fun中,i 的值为 2,*x=*(x+i)即为*x=s(x+2);由于(x+2)与 main函数中 a2共用存储单元,a2的值为 3,赋值语句*x=*(x+i)作用是将 3付给*x,即赋给 x0。由于 x0与 main函数中的 a0共用存
41、储单元,因此,a0的值被改变为 3。程序要求输出 a数组前 4个元素 a0a3的值,即 3、2、3、4。22.在学生管理的关系数据库中,存取一个学生信息的数据单位是(分数:2.00)A.文件B.数据库C.字段D.记录 解析:解析 在学生管理的关系数据库中,存取一个学生信息的数据单位是记录。23.下列关于 C语言的叙述中,正确的是(分数:2.00)A.C语言中的注释不可以夹在变量名或关键字的中间B.C语言中的变量可以在使用之前的任何位置进行定义 C.在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C语言的数值常量中夹带空格不影响常量值的正确表示解析:解析 C 语言中的注释可以出现
42、在任何位置,例如:int/*define */a, b, / *a, b, c */c;定义了 3个变量 a、b、c。在 C语言的算术表达式中,运算符两侧的数据类型可以不一致,运算时,按照混合运算规则进行转换。C 语言的数值常量中夹带空格将影响常量值的正确表示,例如,50 不再代表 50。变量可以在使用之前的任何位置(执行语句前)定义,也可以在复合语句中进行定义。24.若有定义 int(*pt)3;,则下列说法中正确的是(分数:2.00)A.定义了基类型为 int的 3个指针变量B.定义了基类型为 int的具有 3个元素的指针数组 ptC.定义了一个名为*pt、具有 3个元素的整型数组D.定义
43、了一个名为 pt的指针变量,它可以指向每行有 3个整数元素的二维数组 解析:解析 (*pt)3不是指针数组,而是指针变量,可以指向每行有 3个整数元素的二维数组。25.设有定义 double a10,*s=a;,以下能够代表数组元素 a3的是(分数:2.00)A.(*s)3B.*(s+3) C.*s3D.*s+3解析:解析 (*s)3、*s3表示形式不正确;*s+3 代表*s 的值加 3。26.有两个关系 R和 T如下:(分数:2.00)A.选择 B.投影C.交D.并解析:解析 选择运算是从关系中找出满足给定条件的那些元组,其中条件是以逻辑表达式给出的。选取值为真的元组,这种运算是从水平方向抽
44、取元组。27.下列关于 return语句的叙述中,正确的是(分数:2.00)A.一个自定义函数中必须有一条 return语句B.一个自定义函数中可以根据不同情况设置多条 return语句 C.定义成 void类型的函数中可以有带返回值的 return语句D.没有 return语句的自定义函数在执行结束时不能返回到调用处解析:解析 一个自定义函数中可以没有 return语句,没有 return语句的自定义函数执行完函数体结束时自动返回到函数调用处,并带回不确定的值;定义成 void类型的函数中不能有带返回值的 return语句;所以,选项 A、C、D 错误。一个自定义函数中可以根据不同情况设置多
45、条 return语句,根据程序执行流程,选择执行其中一条 return语句带值返回。28.算法的时间复杂度是指(分数:2.00)A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数 解析:解析 算法的时间复杂度是指执行算法所需要的计算工作量。一个算法的工作量可用算法在执行过程中所需基本运算的执行次数来度量。29.以下程序运行后的输出结果是#includestdio.hmain()int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t=1;for(i=0; ifor(j=i; j=i; j+) t+=bibj
46、i;printf(“%d/n“, t);(分数:2.00)A.1B.3C.4 D.9解析:解析 数组元素 bji作为数组 b的第二维数下标,因此,t=1+b0b00+b1b11+b2b22,即 t=1+b00+b11+b22=1+0+1+2=4。30.下列语句组中,正确的是(分数:2.00)A.char *s; s=“Olympic“; B.char s7; s=“Olympic“;C.char *s; s=“Olympic“;D.char s7; s=“Olympic“;解析:解析 数组名代表数组的首地址,是一个地址常量,不能对其赋值,所以选项 B、D 错误。只有在初始化时才可以用花括号,所
47、以选项 C错误。31.有以下程序:#includestdio.hmain( )char a, b, c, d;scanf(“%c%c“, c=getchar(); d=getchar();printf(“%c%c%c%c/n“, a, b, c, d);当执行程序时,按下列方式输入数据(从第一列开始,CR代表回车,注意:回车也是一个字符):12CR34CR则输出结果是(分数:2.00)A.1234B.12C.123 D.1234解析:解析 采用%c 格式描述输入数据时,输入“12CR”中的 12,被视为“1”和“2”字符,分别送入变量 a、b 中;“回车键”作为字符由 getchar()函数读取送到变量 c中;输入“34