1、二级 C 语言笔试-296 及答案解析(总分:107.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指(分数:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对2.以下叙述中正确的是(分数:1.00)A.构成 C 程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3.在数据库的两级映射中,从概念模式到内模式的映射一般由_实现。(分数:1.00)A.
2、数据库系统B.数据库管理系统C.数据库管理员D.数据库操作系统4.以下选项中可以作为 C 语言合法常旱的是(分数:1.00)A.-80.B.-080C.-8e1.0D.-80.0e5.有以下程序main ()char p=a,b,c,q =“abc“;printf ( “%d %d/n“ , sizeof (p) , sizeof (q);程序运行后输出结果是(分数:1.00)A.4 4B.3 3C.3 4D.4 36.设函数 fun 的定义形式为void fun(char ch, float x) 则以下对函九 fun 的调节器用语句中,正确是(分数:1.00)A.fun(“abc“,3.0
3、);B.t=fun(D,16.5);C.fun(65,2.8):D.fun(32,32);7.有以下程序main ()int i;for(i=0;i3;i+)switch(i)case 1: printf (“%d“,i);case 2: printf (“%d“, i);default: printf (“%d“,i);执行扣输出的结果是(分数:1.00)A.011122B.012C.012020D.1208.有以下程序#define f(x) (xx)main ( )int i1, i2;i1=f (8) /f(4);i2=f (4+4) /f (2+2);printf(“%d, %d/n
4、“ ,i1,i2);程序运行后的输出结果是(分数:1.00)A.64,28B.4,4C.4,3D.64,649.下列哪个是面向对象程序设计不同于其他语言的主要特点?(分数:1.00)A.继承性B.消息传递C.多态性D.静态联编10.下列函数定义中,会出现编译错误的是(分数:1.00)A.max(int x,int y, int *z)*z=xy?x:y;B.B )int max(int x,y)int z;z=xy ? x:y;return z;C.max(int x, int y)int z;z=x y?x:y; return(z);D.int max(int x, int y)return
5、(xy?x:y);11.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是(分数:1.00)A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言12.设有下列二叉树:(分数:1.00)A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA13.有以下程序main ( )int a=15,b=21,m=0;switCh (a%3)case 0 :m+ ;break;case 1:m+;switch (b%2)default: m+;case 0 :m+; break;printf ( “%d/n“ , m);程序运行后的输出结果是(分数:1.00)A.1
6、B.2C.3D.414.有如下程序#include stdio.hmain()FILE *fp1;fp1;fopen(“f1. txt“,“w“);fprintf(fpl, “abc“)fclose(fpl);若文本文件 f1.txt 中原有内容为:good,则运行以上:程序后文件 f1.Mt 中的内容为(分数:1.00)A.goodabcB.abcdC.abcD.abcgood15.以下叙述中正确的是(分数:1.00)A.局部变量说明为 static 存储类,其生存期将得到延长B.全局变量说明为 stoic 存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可
7、以使用的存储类说明符与局部变量完全相同16.在关系数据库中,用来表示实体之间联系的是(分数:1.00)A.树形结构B.网状结构C.线性表D.二维表17.有以下定义语句double a,a; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b18.关系数据库的数据及更新操作必须遵循_等完整性规则。(分数:1.00)A.实体完整性和参照完整性B.参照完整性和用户定义的完整性C.实体完整性和用户定义的完整性D.实体完整性、参照完整性和用户定义的完整性19.下列关于队列的叙
8、述中正确的是(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表20.软件需求分析阶段的工作可以分为 4 个方面:需求获取、需求分析、编写需求分析说明书和(分数:1.00)A.阶段性报告B.需求评审C.总结D.都不正确21.有以下程序:main ( )char *p 10 = “abc“, “aabdfg“ , “dcdbe“, “abbd“ , “cd“ ;printf(“%d/n“, strten(p4 );执行后输出结果是(分数:1.00)A.2B.3C.4D.522.有以下程序main ()char a1= M ,a2=
9、m;printf(“%c/n“, (a1, a2) );以下叙述中正确的是(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 mC.格式说明符不足,编译出错D.程序运行时产生错信息23.有以下程序main ( )char a =a,b, c,d, e,f,g,h,/0; int i,j;i=sizeof ((分数:1.00)A.;for(i=l;iargc;i+=2) len+=strlen(argvi);printf(“%d/n“,len);经编译链接后生成的可执行文件是 ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出的结果是(分数:1
10、.00)A.14B.12C.8D.626.以下程序的输出结果是char cchar(char ch)if(ch=Areturn ch;main ( )char s = “ABC+abc=defDEF“ , *p=s;while (*p)*p=cchar(*p);p+;printf “%$/n“, s);(分数:1.00)A.abc+ABC=DEFdefB.abc+abc=defdefC.abcABCDEFdefD.abcabcdefdef27.有以下程序main ( )int x8 =8,7,6,5, 0, 0,*s;s=x+3;printf (“ %d/n“ ,s2 );执行后输出结果是(分
11、数:1.00)A.随机值B.0C.5D.628.设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第三位四舍五入的是(分数:1.00)A.x=x*100+0.5/100.0;B.x=(x*100+0.5)/100.0;C.x=(int)(x*100+0.5)/100.0;D.x=(x/100+0.5)*100.0;29.下列选项中,不能用作标识符的是(分数:1.00)A._1234_B._1_2C.int_2_D.2_int_30.下列关于 C 语言数据文件的叙述中正确的是(分数:1.00)A.文件由 ASCII 码字符序列组成,C 语言只能读写文本
12、文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件31.有以下程序main ( )int a=7,b=8, *p, *q, *r;p- q=r=p; p=q; q=r;printf (“%d, %d, %d, %d/n“, *p, *q, a, b);程序运行后的输出结果是(分数:1.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,732.有以下程序main ()unsigned int a;int b=-l;a=b;pri
13、ntf(“%u“,(分数:1.00)A.;int i,j;i=sizeof((分数:1.00)A.; j=strlen(a);printf ( “ %d %d34.有以下程序:#include string.hmain()char str20=“Hello“,“Beijing“*p=str;printf(“%/n“,strlen(p+20);程序运行后的输出结果是(分数:1.00)A.0B.5C.7D.2035.下面描述中,不符合结构化程序设计风格的是(分数:1.00)A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B.注重提高程序的可读性C.模块只有一个入口和一个出口D.使
14、用 goto 语句36.以下叙述中不正确的是(分数:1.00)A.C 语言中的文本文件以 ASCII 码形式存储数据B.C 语言中对二进制位的防问速度比文本文件快C.C 语言中,随机读写方式不使用于文本文件D.C 语言中,顺序读写方式不使用于二进制文件37.设有定义:int n1=0.n2,*p= float s;scanf ( “%d“, s=*r*r;printf (“s=%f/n“, s);出错的原因是(分数:1.00)A.注释语句书写位置错误B.存放圆半径的变量 r 不应该定义为整型C.输出语句中格式描述符非法D.计算圆面积的赋值语句中使用了非法变量40.有以下程序main ( )in
15、t i,n=0;for (i=2 ;i5;i+)doif (i%3) continue;n+;while(!i);n+;print f ( “n=%d/n“ , n);程序执行后的输出结果是(分数:1.00)A.n=5B.n=2C.n=3D.n=441.以下选项中合法的用户标识符是(分数:1.00)A.longB._2TestC.3DmaxD.A,dat42.以下不能定义为用户标识符是(分数:1.00)A.MainB._0C._intD.sizeof43.在说明语句:int *f();中,标识符 f 代表的是(分数:1.00)A.一个用于指向整型数据的指针变量B.一个用于指向一维数组的行指针C
16、.一个用于指向函数的指针变量D.一个返回值为指针型的函数名44.设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是(分数:1.00)A.6.500000B.6C.5.500000D.6.00000045.以下程序的输出结果是main ( )int a=4,b=5, c=0,d;d=!aprintf ( “%d/n“ , d);(分数:1.00)A.1B.0C.非 0 的数D.-146.若有说有: int n=2,*p=, 则以下非法的赋值语句是(分数:1.00)A.P=q;B.*p=*q;C.n=*q;D.p=n;47.下列条件语句中,
17、功能与其他语句不同的是(分数:1.00)A.if(a) printf(“%d/n“,x); else prinff(“%d/n“,y);B.if(a=0) printf(“%d/n“,y); else printf(“%d/n“,x);C.fi(a!=0) prinff(“%d/n“x); else printf(“%d/n“,y);D.if(a=0) prinff(“%d/n“,x); else printf(“%d/n“,y);48.有以下定义:#include stdio.hchar a10,*b=a;不能给数组 a 输入字符串的语句是(分数:1.00)A.gets(a)B.gets(a
18、0)C.gets(D.gets(b);49.有以下程序main ( )int a10=1,2,3,4,5,6,7,8,9,10,*p=.print f (“%d/n“ , *p+*q);程序运行后输出结查是(分数:1.00)A.16B.10C.8D.650.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是(分数:1.00)A.if(ab)else k=0;B.iff(ab)(bc) k=1;else k=0;C.iffa=b) k=0;else iffb=c) k=1;D.if(ab) k=1;else if(bc) k=1;else k=0;二、填空题(总题数:19,分数:5
19、7.00)51.一般来说,算法可以用顺序、选择和 1 三种基本控制结构组合而成。(分数:3.00)填空项 1:_52.算法的复杂度主要包括时间复杂度和 1 复杂度。(分数:3.00)填空项 1:_53.软什是程序、数据和 1 的集合。(分数:3.00)填空项 1:_54.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:3.00)填空项 1:_55.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:3.00)填空项 1:_56.以下程序运行后的输出结果是_。main ( )int p=30;printf“%d/n“, (p/30?p/10:p%3) ;(分数:3.
20、00)填空项 1:_57.若有程序main ( )int i, j;scanf ( “i=%d, j=%d“ , printf(“i=%d,j-%d/n “,i,j);要求给 i 赋 10,给 j 赋 20,则应该从键盘输入_。(分数:3.00)填空项 1:_58.以下程序运行后的输出结果是_。main ()int x=10,y=20, t=0if(x=y) t=x;x=y;y=t;printf(“%d,%d /n“,x,y);(分数:3.00)填空项 1:_59.有以下程序main()int n=0,m=l,x=2;if(!n) x-=1;if(m) x-=2;if(x) x-=3;prin
21、tf(“%d/n“,x);执行后输出的结果是_。(分数:3.00)填空项 1:_60.有以下程序:#include stdio.hmain()char c;while(c=getchar()!=?) putchar(-c);程序运行时,如查从键盘输入:Y?N?回车,则输出的结果为_。(分数:3.00)填空项 1:_61.有以下程序void f( int y, int *x)y=y+*x; *X=*X+y; main()int x=2,y=4;f(y,printf(“%d %d/n“,x,y);执行后输出结果是_。(分数:3.00)填空项 1:_62.函数 fun 的功能是计算 xndouble
22、 fun(double x,int n)int i; double y=1;for(i=1;i=n;i+) y=y*x;return y;主函数中已正确定义 m、a、b 变量并赋值,并调用 fun 函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调节器用语句为_。(分数:3.00)填空项 1:_63.以下程序运行后输出结果是_。void swap(int x, int y)int t;t=x; x=y; y=t; printf(“%d %d “,x,y“);main()int a=3,b=4;swap(a,b); printf(“%d %d/n“,a,b);(分数:3.00)填空项
23、1:_64.以下程序运行后的输出结果是_。#include string.hvoid fun(char *s,int p,int k)int i;for(i=p;ik-1;i+) si=si+2;main()char s=“abcdefg“;fun(s,3,strlen(s); puts(s);(分数:3.00)填空项 1:_65.函数 ssbc 叩()的功能是对两个字符申进行比较。当 s 所指字符串和 t 所指字符申相等时,返回值为0;当 s 所指字符串大于 t 所指字符串时,返回值大于 0;当 s 所指字符串小于 t 所指字符串时,返回值小于 0(功能等同于库函数 strcmp()。请填空
24、。 #include stdio.hint sstrcmp(char *s, char *t)while(*s t+; return(分数:3.00)填空项 1:_66.设函数 findbig 已定义为求 3 个数中的最大值。以下程序将利用函数指针调用 findbig 函数。请填空。main()int findbig(int,int,int);int (*f) () ,x,y, z,big;f=_;scanf(“%d%d%d“,printf(“big=%d/n“,big);(分数:3.00)填空项 1:_67.以下程序运行后的输出结果是_。fun(int x)if(x/20) fun(x/2)
25、;printf(“%d “ ,x);main()fun(6); (分数:3.00)填空项 1:_68.以下程序的运行结果是_。# include string.htypedef struct studentchar name10;long sno;float score;STU;main()STU a=“zhangsan“,2001,95,b=“Shangxian“,2002,90,c=“Anhua“,2003,95,d,*p-d=a;ifstrcmp( a.nalne, b.name)0) d=b;if(strcmp( c.name, d.name)0) d=c;printf(“%ld%s/
26、n“,d.sno,p name;(分数:3.00)填空项 1:_69.以下程序的功能是将字符串 s 中的数字字符放入 d 数组中,最后输出 d 中的字符串。例如,输入字符串 :abc123edf456gh,执行程序后输出:123456 请填空.#include stdio.h#include ctype.hmain()char s80, d80; int i,j;gets(s);for (i=j=0;si!=/0;i+)if( ) dj=si; j+; dj=/0;puts (d);(分数:3.00)填空项 1:_二级 C 语言笔试-296 答案解析(总分:107.00,做题时间:90 分钟)
27、一、选择题(总题数:50,分数:50.00)1.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指(分数:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:解析 数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,曲具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得
28、当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。综上所述,本题的正确答案是 D。2.以下叙述中正确的是(分数:1.00)A.构成 C 程序的基本单位是函数 B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义解析:解析 本题主要考查 C 程序的基本组成单位、函数的定义以及函数的调用关系。根据函数的定义语法规定,在 c 语言程序中,不能嵌套定义,即不能在函数中再定义函数,故排除选项 B;main() 数在C 语言程序中是必须的,但函数可以放在程序中的任意位置,故排除选项 C;当在所有
29、函数的外部、被调用之前说明函数时,在函数说明后面的任何位置上都可以对函数进行调用;函数说明也可以放在调用函数的说明部分,如在 main 函数内部进行说明,则只能在 main 函数内部才能识别函数,故选项 D 被排除。选项 A 符合题意。3.在数据库的两级映射中,从概念模式到内模式的映射一般由_实现。(分数:1.00)A.数据库系统B.数据库管理系统 C.数据库管理员D.数据库操作系统解析:解析 从概念模式到内模式的映射一般数据库管理系统(DBMS)实现。4.以下选项中可以作为 C 语言合法常旱的是(分数:1.00)A.-80. B.-080C.-8e1.0D.-80.0e解析:解析 本题考查的
30、是 C 语言中整型常量与实型常量的部分表示方法。选项 A 用的是整型常量的十进制表示法,是正确的。以 0 或-0 开头的整数是八进制数表示法,八进制数的原则是“逢八进一”它只可能包含 07 这 8 个符号,故选项 B 是错误的。选项 C 和 D 椰是实型常量的指数表示法,其规则是用字母。(或 E)将一个实数的小数部分和指数部分分隔开。字母 e(或 E)之前是小数部分,之后是指数部分,这两部分都不能省略,且指数部分必须为整数。故选项 C 和 D 都不正确。所以,4 个选项中选项 A 符合题意。5.有以下程序main ()char p=a,b,c,q =“abc“;printf ( “%d %d/
31、n“ , sizeof (p) , sizeof (q);程序运行后输出结果是(分数:1.00)A.4 4B.3 3C.3 4 D.4 3解析:解析 本题考查的是字符数组的初始化。字符数组即可以用初始化列裹来初始化,也可以用一个字符串常量来初始化。但字符串常量系统会自动为其添加结束标记/0,故比实际长度要多一位,所以本题输出为 3 4,应该选择 C。6.设函数 fun 的定义形式为void fun(char ch, float x) 则以下对函九 fun 的调节器用语句中,正确是(分数:1.00)A.fun(“abc“,3.0);B.t=fun(D,16.5);C.fun(65,2.8):D.
32、fun(32,32); 解析:解析 本题考查了函数的定义。题目中定义的函数 fun()有两个参数,一个是字符型变量 ch,另一个是浮点型变量 x,函数类型是 void 即无返回值。选项 A 调用 fun 的第 1 个参数是字符串常量与字符变量不匹配,所以不正确。选项 B 是有返回值函数的调用形式,不正确。选项 C 的第 1 个参数是错误的字符常量,字符常量是用单引号括起来的一个字符(是转义字符可能有多个字符),故也不正确。选项 D 使用两个整型常量调用 fun 这在 C 语言中是允许的。因为整型到字符型可以自动转换,整型到浮点型也可以自动转换。故应该选择 D。7.有以下程序main ()int
33、 i;for(i=0;i3;i+)switch(i)case 1: printf (“%d“,i);case 2: printf (“%d“, i);default: printf (“%d“,i);执行扣输出的结果是(分数:1.00)A.011122 B.012C.012020D.120解析:解析 本题考核的知识点是 for 循环和 switch 语句的综合运用。for 循环执行了 3 次,第一次时i 的值为 0,执行其后的 switch 语句,没有匹配的 case,执行 default 语句后的 pdntf 语句,输出为 0;第二次循环时 i 的值为 1,执行其后的 switch 语句,与
34、第一个 case 分支匹配,执行其后的 printf 语句,输出 1,由于没有遇到 break 语句,所以一直向下执行,又输出了两个 1,第三次循环时 i 值为 2,执行其后的 switch 语句,同理输出两个 2。所以,A 选项为所选。8.有以下程序#define f(x) (xx)main ( )int i1, i2;i1=f (8) /f(4);i2=f (4+4) /f (2+2);printf(“%d, %d/n“ ,i1,i2);程序运行后的输出结果是(分数:1.00)A.64,28B.4,4C.4,3 D.64,64解析:解析 本题考查的是带参数的宏。宏替换与函数调用不同,前者是
35、字面上的,在编译期间完成,后者是内容上的,在运行期间才进行。题目中第 1 条要替换的语句 i1=(8)/f(4);展开后是 i1=(8*)/(4*4);结果使 i1=4而第 2 条语句 i2=f(4+4)/f(2+2);展开后为 i2=(4+4*4+4)/(2+2*2+2);结果使i2=24/8=3。故应该选择 C。9.下列哪个是面向对象程序设计不同于其他语言的主要特点?(分数:1.00)A.继承性 B.消息传递C.多态性D.静态联编解析:解析 继承是一个子类直接使用父类的所有属性和方法。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,
36、也是其不同于其他语言的主要特点。10.下列函数定义中,会出现编译错误的是(分数:1.00)A.max(int x,int y, int *z)*z=xy?x:y;B.B )int max(int x,y)int z;z=xy ? x:y;return z;C.max(int x, int y)int z;z=x y?x:y; return(z);D.int max(int x, int y)return(xy?x:y);解析:解析 本题考核的知识点是函数的定义方法。选项 B 中在说明形参时,省略了第二个参数的类型,故选项 B 编译不能通过。所以, 4 个选项中选项 B 符合题意。11.在数据库
37、管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是(分数:1.00)A.数据定义语言B.数据转换语言C.数据操纵语言 D.数据控制语言解析:解析 在数据库管理系统提供的数据语言中,数据操纵语言负责数据的查询及增,删、改等操作。12.设有下列二叉树:(分数:1.00)A.ABCDEFB.DBEAFCC.ABDECP D.DEBFCA解析:解析 二叉树的遍历分为先序,中序、后序三种不同方式本题要求先序遍历,其遍历顺序应该为:访问根结点-,先序遍历左子树-先序遍历右子树。按照定义,先序遍历序列是 ABDECF,故答案为 C。13.有以下程序main ( )int a=15,b=21,m=
38、0;switCh (a%3)case 0 :m+ ;break;case 1:m+;switch (b%2)default: m+;case 0 :m+; break;printf ( “%d/n“ , m);程序运行后的输出结果是(分数:1.00)A.1 B.2C.3D.4解析:解析 在 switch 语句中 break 语句的作用是退出分支语句,若没有 break 语句则一直向下执行。本题中首先计算 switch 后面括号里的表达式 a%3,印 15%3 为 0;执行 case0:后面的语句 m+;m 自加1,即 m 为 1 遇到 break 语句;然后跳出 switch 语句,所以最后输
39、出的 m 的值为 1,所以选项 A 正确。14.有如下程序#include stdio.hmain()FILE *fp1;fp1;fopen(“f1. txt“,“w“);fprintf(fpl, “abc“)fclose(fpl);若文本文件 f1.txt 中原有内容为:good,则运行以上:程序后文件 f1.Mt 中的内容为(分数:1.00)A.goodabcB.abcdC.abc D.abcgood解析:解析 本题考植的知识点是操作文件的几个基本函数。主函数中定义了一个文件指针中 1,然后通过 fopen()函数,以写的方式打开文件“f1txt,并让指针印 1 指向它,接着调用 fpti
40、nd()函数将“abc”写到文件 fp1 所指的文件里,由于开始 fp1 指向文件的“f1.txt”的开始位置,因此“abc”将把文件“f1.txt”里原来的内容“good”覆盖掉,故文件“f1.txt”里最后的内容为“abc”,所以,4 个选项中选项 C 符合题意。中选项 A 符合题意。15.以下叙述中正确的是(分数:1.00)A.局部变量说明为 static 存储类,其生存期将得到延长 B.全局变量说明为 stoic 存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同解析:解析 静态局部变量在整个程序运行期间,静态局部
41、变量在内存的静态存储区中占据着永久性的存储单元。由此可知静态局部变量的生存期将一直延长到程序运行结束。故选项 A 正确;而全局变量的只有一种静态存储类别,故全局变量说明为 stattc 存储类,和没有说明为 static 存储类其生存期都是一直延长到程序运行结束,故选项 B 不正确;未赋初值的 auto 型变量的初值是随机的,未赋初值的 static 型变量的初值是 0(故选项 C 和选项 D 不正确)。所以;4 个选项中选项 A 符合题意。16.在关系数据库中,用来表示实体之间联系的是(分数:1.00)A.树形结构B.网状结构C.线性表D.二维表 解析:解析 数据库中的关系模型是采用二维表来
42、表示实体与实体之间的联系。17.有以下定义语句double a,a; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)a D.w=a=b解析:解析 本题考核的知识点是 C 语言中一些运算符的简单应用。选项 A 中不是合法的赋值语句,将最右边的第一个般值表达式加括号即为 a=b+(b=b+)才正确,故选项 A 不正确;选项 B 中运算符“%”的对象必须是整型,而在选项 B 中(int)a+b 为 double 型,故选项 B 不正确;选项 a,b 都为,double“=”应该改为“
43、=”,故选项 D 不正确所以,4 个选项中选项 C 符合题意。18.关系数据库的数据及更新操作必须遵循_等完整性规则。(分数:1.00)A.实体完整性和参照完整性B.参照完整性和用户定义的完整性C.实体完整性和用户定义的完整性D.实体完整性、参照完整性和用户定义的完整性 解析:解析 关系模型中包括关系的数据结构、关系的操纵和关系中的数据约束。关系完整性约束即数据完整性,包括实体完整性、参照完整性和用户自定义完整性。19.下列关于队列的叙述中正确的是(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 对队列可以进行插
44、入和删除数据的操作,只是插入数据只能在队尾,删除数据只能在队头。所以队列是先进先出的线性表。20.软件需求分析阶段的工作可以分为 4 个方面:需求获取、需求分析、编写需求分析说明书和(分数:1.00)A.阶段性报告B.需求评审 C.总结D.都不正确解析:解析 需求分析的四个方面是:需求获取。需求分析、编写需求分析说明书和需求评审。21.有以下程序:main ( )char *p 10 = “abc“, “aabdfg“ , “dcdbe“, “abbd“ , “cd“ ;printf(“%d/n“, strten(p4 );执行后输出结果是(分数:1.00)A.2 B.3C.4D.5解析:解析
45、 本题考核的知识点是指针数组的定义和 strlen()函数的应用。本惠中首先定义了一个长度为 10 的指针数组,并赋初值,因此执行 strlen(p4后的返回值为字符串“cd”的长度为 2。所以,4 个选项中选项 A 符合题意。22.有以下程序main ()char a1= M ,a2=m;printf(“%c/n“, (a1, a2) );以下叙述中正确的是(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 m C.格式说明符不足,编译出错D.程序运行时产生错信息解析:解析 本题考查的是逗号表达式。因为整个逗号表达式的值为逗号表达式最后一个于表达式的值,所以本题输出的是 a2 的
46、值m。故应该选择 B。23.有以下程序main ( )char a =a,b, c,d, e,f,g,h,/0; int i,j;i=sizeof ((分数:1.00)A.;for(i=l;iargc;i+=2) len+=strlen(argvi);printf(“%d/n“,len);经编译链接后生成的可执行文件是 ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出的结果是(分数:1.00)A.14B.12C.8D.6 解析:解析 本趣考核的知识点是带寥数的主函数的应用。主函数的第一个参数 argc 为整形参数,记下从命令行输入的参数的个数;第二个参
47、数 argv 是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中 argc 的值为 5,argv0指向字符串“ex“,argv1指向参数字符串“abed”,argv2指向字符串“efg”,argv3指向参数字符串“h3”, argv4指向参数字符串“K44”。在main()函数中,for 循环执行了 2 次,当 i-1 时,len=0+strlen(argv1),而其中 argv1=“abcd”,故此时 len 的值为 4;当 i=3 时, len=4+strlen(argv3),而其中 argv3=“h3”,故此时 len 的值为6;当 i=5 时,退出循环,故最后输出的 len 的住为 6。所以,4 个选项中选项 D 符合题意。26.以下程序的输出结果是char cchar(char ch)if(ch=Areturn ch;main ( )char s = “ABC+abc=defDEF“ , *p=s;while (*p)*p=cchar(*p);p