1、二级 C 语言笔试-350 及答案解析(总分:106.50,做题时间:90 分钟)一、选择题(总题数:50,分数:67.00)1.一个 C 语言程序是由A) 一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成(分数:1.00)A.B.C.D.2.如果需要打开一个已经存在的非空文件“FILE”并进行修改,正确的语句是( )。 A) fp=fopen(“FILE“,“r“); B) fp=fopen(“FILE“,“a+“); C) fp=fopen(“FILE“,“w+“); D) fp=fopen(“FILE“,“r+“);(分数:2.00)A.B.C.D.3.
2、算法分析的目的是A) 找出数据结构的合理性B) 找出算法中输入和输出之间的关系C) 分析算法的易懂性和可靠性D) 分析算法的效率以求改进(分数:2.00)A.B.C.D.4.设已包含头文件string.h,下列程序段的运行结果是( )。char s1=“ACDEF“;char s2=“ABC“;strcpy(s1,s2) ;printf(“%d“,strlen(s1) );A) 3 B) 4 C) 6 D) 5(分数:1.00)A.B.C.D.5.若执行下列的程序时,从键盘上输入 1 和 2,则输出结果是( )。#includestdio.hmain()int a,b,s;scanf(“%d%
3、d“,S=a;if(aB) s=b;s=s*s;printtf(“%d/n“,s);A) 1 B) 4 C) 2 D) 9(分数:2.00)A.B.C.D.6.下列程序段的运行结果是( )。#includestdio.hvoid main()char str=“ABC“,*p=str;printf(“%d/n“,* (p+3);A) 67 B) 0 C) 字符C的地址 D) 字符C(分数:2.00)A.B.C.D.7.以下程序运行后的输出结果是#includestdio.h#define f(x) x*x*xmain()int a=3, s, t;s=f(a+1); t=f(a+1);prin
4、tf(“%d, %d/n“, s, t);A) 10,64 B) 10,10 C) 64,10 D) 64,64(分数:2.00)A.B.C.D.8.以下程序的输出结果是_。main()int i,a10;for(i=9;i=0;i-)ai=10-i;print(“%d%d%d,a2,a5,a8);A) 258 B) 741 C) 852 D) 369(分数:2.00)A.B.C.D.9.在 C 语言中,函数返回值的类型最终取决于( )。A) 函数定义时在函数首部所说明的函数类型B) return 语句中表达式值的类型C) 调用函数时主调函数所传递的实参类型D) 函数定义时形参的类型(分数:2
5、.00)A.B.C.D.10.根据下列定义,能打印出字母 P 的语句是( )。struct stuchar name10;int age;struct stu s10“John“,11,“Pau1“,12,“Mary“,11,“adam“,12;A) primf(“%c“,s3.name; B) primf(“%c“,s3.name1);C) printf(“%c“,s2.name1); D) printf(“%c“,s1.name0);(分数:2.00)A.B.C.D.11.下列程序的输出结果是( )。main()int a,b,d25;a:d/10%9;baprintf(“%d,%d/n“
6、,a,b) ;A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:1.00)A.B.C.D.12.若 fp 是指向某文件的指针,且已读到该文件末尾,则库函数 feof (fp) 的返回值是( )AEOFB1C非零值DNULL (分数:1.00)A.B.C.D.13.以下数据结构中,属于线性数据结构的是A) 集合 B) 线性表 C) 二叉树 D) 图(分数:1.00)A.B.C.D.14.下列对于线性链表的描述中正确的是A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且前件元素一定存储在后件元素的前
7、面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A.B.C.D.15.以下叙述中不正确的是A) 预处理命令行都必须以#号开始B) 在程序中凡是以#号开始的语句行都是预处理命令行C) 宏替换不占用运行时间,只占编译时间D) 在以下定义是正确的:#define PI 3.1415926;(分数:1.00)A.B.C.D.16.若有定义:int a=8,b=5,c;执行语句 c=a/b+0.4;后,c 的值为A) 1.4 B) 1 C) 2.0 D) 2(分数:1.00)A.B.C.D.17.以下程序的输出结果是_。main()int a33=1,2,3,4,5,6,i,j,s
8、=0;for(i=0;i3;i+)for(j=0;j=i;j+) s+=aij;printf(“%d/n“,s);A) 18 B) 19 C) 20 D) 21(分数:1.00)A.B.C.D.18.有下列程序:#include stdio.h#include “string.h“void tim(char *s,int n)char *t;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj) t=si;si=sj;sj=t;main()char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabc
9、c“;fun(ss,5);printf(“%s,%s/n“,ss0,ss4);程序的运行结果是( )。A) xy,aaaacc B) aaaacc,xy C) bcc,aabcc D) aabcc,bcc(分数:2.00)A.B.C.D.19.若要用下面的程序片段指针变量 p 指向一个存储整型变量的动态存储单元int *p;p=_ malloc (sizeof (int);则应填入 _。A) int B) int* C) (*int) D) (int*)(分数:2.00)A.B.C.D.20.以下定义语句中正确的是( )。A) char a=A b=B; B) float a=b=10.0;C
10、) int a=10, *b= B) int a3=1,2,3,4,5,0;C) int a3=1,0,2,0,3,0; D) int a2=1,2,3,4,5,6;(分数:2.00)A.B.C.D.26.有以下程序main()int a=1,2,3,4,5,6,7,8,9,0,*P;for(p=a;pa+10;p+)printf(“%d,“,*p);程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9,0, B) 2,3,4,5,6,7,8,9,10,1, C) 0,1,2,3,4,5,6,7,8,9, D) 1,1,1,1,1,1,1,1,1,1,(分数:1.00)A.B.C.D
11、.27.下列叙述中错误的是_。A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库设计是指在已有数据库管理系统的基础上建立数据库D) 数据库系统需要操作系统的支持(分数:2.00)A.B.C.D.28.软件设计中模块划分应遵循的准则是_。(A) 低内聚低耦合(B) 高内聚低耦合(C) 低内聚高耦合(D) 高内聚高耦合(分数:2.00)A.B.C.D.29.请选出可用作 C 语言用户标识符的是A) void,define,WORD B) a3_b3,_123,IF C) FOR,-abc,Case D) 2a,Do,Sizeof(分数
12、:1.00)A.B.C.D.30.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。(A) x=y=5;(B) x=n%2.5;(C) x+n=i(D) x=5=4+1;(分数:1.00)A.B.C.D.31.有以下程序main()int n3,i,j;for(i0;i3;i+)ni0;for(i=0;i2,i+)for(j=0;j2;j+)nj=ni+1;printf(“%d/n“,n1);程序运行后的输出结果是 ( )A) 2 B) 1 C) 0 D) 3(分数:1.00)A.B.C.D.32.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其他三个选项含义不同,这
13、个选项是 _。A) k%2 B) k%2=1 C) (k%2)!=0 D) !k%2=1(分数:1.00)A.B.C.D.33.下列叙述中正确的是A) 程序设计的任务就是编写程序代码并上机调试B) 程序设计的任务就是确定所用数据结构C) 程序设计的任务就是确定所用算法D) 以上 3 种说法都不完整(分数:1.00)A.B.C.D.34.以下有 4 组用户标识符,其中合法的一组是_。A) FOR -subCaseB) 4dDOSizeC) f2_G3IFabcD) WORDvoiddefine(分数:1.00)A.B.C.D.35.设血型占 2 个字节,则 unsigned int 所能表示的数
14、据范围是 _。A) 065535 B) -3276932767 C) 165536 D) 032767(分数:1.00)A.B.C.D.36.有以下程序main()int i=0,s=0;for(;)if(i=3i=5) continue;if(i=6) break;i+;s+=i;printf(“%d/n“,s)程序运行后的输出结果是A) 10 B) 13 C) 21 D) 程序进入死循环(分数:1.00)A.B.C.D.37.用树形结构来表示实体之间联系的模型称为A) 关系模型 B) 层次模型 C) 网状模型 D) 数据模型(分数:1.00)A.B.C.D.38.若有如下程序段;int x
15、3,y=4,z;float a=2.0;z=y%x/a;则执行后,z 中的值是 ( )A) 4 B) 3.0 C) 0 D) 0.5(分数:1.00)A.B.C.D.39.若有定义:int a23;,以下选项中对 a 数组元素正确引用的是A) a2!1 B) a23 C) a03 D) a12!1(分数:2.00)A.B.C.D.40.main(int argc,char*argv)while(-argc0)printf(“%s“,argvargc);printf(“/n“);假定以上程序经编译和连接后生成可执行文件 PROGEXE,如果在此可执行文件所在目录的 DOS 提示符下键入 PROG
16、 ABCDEFGHIJKL (分数:1.00)A.B.C.D.41.对长度为 4 的顺序表进行查找,若第一个元素的概率为 1/8,第二个元素的概率为 1/4,第三个元素的概率 3/8,第四个元素的概率为 1/4,则查找任一元素的平均查找长度为_。A) 11/8 B) 7/4 C) 9/4 D) 11/4(分数:1.00)A.B.C.D.42.C 语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。A) 预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义B) 用户标识符可以由字母和数字任意顺序组成C) 在标识符中大写字母和小写字母被认为是相同的字符D) 关
17、键字可用做用户标识符,但失去原有含义(分数:1.00)A.B.C.D.43.在数据管理技术的发展过程中,可实现数据共享的是 ( )A) 人工管理阶段 B) 文件系统阶段 C) 数据库系统阶段 D) 系统管理阶段(分数:1.00)A.B.C.D.44.有以下程序int f(int a)return a%2; main( )int s8=1,3,5,2,4,6,i,d=0;for (i=0;f(si);i+) d+=si;printf(“%d/n“,d);程序运行后的输出结果是A)9B)11C)19D)21 (分数:1.00)A.B.C.D.45.有如下程序:#include stdio.hint
18、 func(int a,int b)return(a+b):main()int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%d/n“,r);该程序的输出结果是( )。A) 12 B) 13 C) 14 D) 15(分数:1.00)A.B.C.D.46.结构化程序所要求的基本结构不包括_。A) 顺序结构 B) GOTO 跳转 C) 选择(分支)结构 D) 重复(循环)结构(分数:1.00)A.B.C.D.47.下列数据结构中,属于非线性结构的是A) 带链队列 B) 循环队列 C) 带链栈 D) 二叉树(分数:1.00)A.B.C.D.48.若有下列定义(
19、设 int 类型变量占 2 个字节):int i=8;则下列语句:printf(“i=%08d“,i);输出的结果是( )。A) i=8, B) i=00000008, C) i=08, D) 8(分数:1.00)A.B.C.D.49.有以下说明和定义语句:struct studentint age; char num8 ;struct student stu 3 = 20, “200401“ , 21, “200402“ , 19, “200403“ ;stract student * p = stu;以下选项中引用结构体变量成员的表达错误的是( )。A) (p+) -num B) p- n
20、um C) ( *p).num D) stu3.age(分数:1.00)A.B.C.D.50.s1 和 s2 已正确定义并分别指向两个字符串。若要求:当 s1 所指字符串大于 s2 所指字符串时,执行语句 S;则以下选项中正确的是( )。A) if(sls2)S; B) if(strcmp(s1,s2)S;C) if(strcmp(s2,s10)S; D) if(strcmp)(s1,s2)0)S;(分数:1.00)A.B.C.D.二、填空题(总题数:20,分数:39.50)51.下列程序执行输出的结果是_。#includestdio.hf(int a)int b=0;static c=3;a
21、=c+,b+;return(a);main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);printf(“%d/n“,k);(分数:1.00)填空项 1:_52.以下程序运行后的输出结果是_。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:_53.下面程序的功能是将字符串 a 下标值为偶数的元素由小到大排序,其他元素不变,请填空。#includestdiohmain()char a“labchmfye“,t:int 1,j;for(i0; i7; i+2
22、)for(j=i+2; j9;_)if(_)tai; aiaj; ajt; j+;puts(a) ;printf(“/n“);(分数:1.00)填空项 1:_54.若有定义:double W10,则 W 数组元素下标的上限为 1,下限为 2。(分数:1.00)填空项 1:_55.设 a,b,c 为整型数,且 a=2,b=3,c=4,则执行完以下语句后,a 的值是_。a*=16+(b+)-(+c);(分数:2.00)填空项 1:_56.下列程序的输出结果是_。#includestdio.hint fun(int x)int p;if(x=0x=1)return 3;elsep=x-fun(x-2
23、);return p;void main()printf(“/n%d“,fun(11);(分数:2.00)填空项 1:_57.算法的基本特征是可行性、确定性、 1 和拥有足够的情报。(分数:1.00)填空项 1:_58.下列程序段的输出结果是_。int n=c; switch(n+)default:printf(“error“);break;casea:easeA:caseb:caseB:printf(“good“);break;casec:caseC:printf(“pass“);cased:caseD:printf(“warn“);(分数:4.00)填空项 1:_59.下列程序的运行结果是
24、_。main()int a=1,b=10;dob-=a;a+; while(b-0);print f(“%d,%d/n“,a,b);(分数:2.00)填空项 1:_60.模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中 1 的作用是模拟被测试模块的下层模块。(分数:1.00)填空项 1:_61.以下 sstrcpy()函数实现字符串复制,即将 t 所指字符串复制到 s 所指向内存空间中,形成一个新的字符串 s。请填空。void sstrcpy(char *s,char *t)while(*s+=_);main()char str1100,str2=“abcdefgh“
25、;sstrcpy(str1,str2);printf(“%s/n“,str1);(分数:2.00)填空项 1:_62.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的 1 存储结构。(分数:2.50)填空项 1:_63.以下程序的输出结果是_。main()int y=9;for(;y0;y-)if(y%3=0)printf(“%d“,-y);continue;(分数:2.00)填空项 1:_64.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:1.00)填空项 1:_65.下面程序的输出结果是_。# include stdioh
26、main( )staic char b“Goodbye“;char * chp if(n=1) return t0;elseif(n=2) m=fun(t,n-1);return m;main()int a=11,4,6,3,8,2,3,5,9,2;printf(“%d/n“,fun(a,10);(分数:1.00)填空项 1:_67.设 i,j,k 均为 int 型变量,则执行完下面的 for 语句后,k 的值为_。for(i=0,j=10;i=j;i+,j-) k=i+j;(分数:2.00)填空项 1:_68.在 Visual FoxPro 中,要想将日期型或日期时间型数据中的年份用 4 位
27、数字显示,应当使用 SET CENTURY 1 命令进行设置。(分数:2.00)填空项 1:_69.以下程序从名为 filea.dat 的文本文件中逐个读入字符并显示在屏幕上。请填空:#includestdio.hmain()FILE*fp;char ch;fp=fopen(_);ch=fgetc(fp);whlie(!feof(fp)putchar(ch);ch=fgetc(fp);)putchar(/n);felose(fp);(分数:4.00)填空项 1:_70.以下程序中函数 f 的功能是在数组 x 的 n 个数(假定 n 个数互不相同)中找出最大最小数,将其中最小的数语第一个数兑换,
28、把最大的数语最后一个数对换。请填空。#include stdio.hvoid f(int x ,int n)int p0,p1,i,j,t,m;i=j=x0; p0=p1=0;for(m=0;mn;m+)if(xmi) i=xm;p0=m;else if(xmj) j=xm;p1=m;t=xp0;xp0=xn-1;xn-1=t;t=xp1;xp1=_;_=t;main( )int a10,u;for(u=0;u10;u+) scanf(“%d“,f(a,10);for(u=0;u10;u+) printf(“%d“,au);printf(“/n“);(分数:4.00)填空项 1:_二级 C 语
29、言笔试-350 答案解析(总分:106.50,做题时间:90 分钟)一、选择题(总题数:50,分数:67.00)1.一个 C 语言程序是由A) 一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成(分数:1.00)A.B. C.D.解析:解析 一个 C 源程序是由一个 main 函数和若干个其他函数组成的。函数是 C 程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己定义的函数。2.如果需要打开一个已经存在的非空文件“FILE”并进行修改,正确的语句是( )。 A) fp=fopen(“FILE“,“r“); B) fp=fopen(“F
30、ILE“,“a+“); C) fp=fopen(“FILE“,“w+“); D) fp=fopen(“FILE“,“r+“);(分数:2.00)A.B.C.D. 解析:解析 本题考查打开文件函数 fopen(),打开文件函数 fopen()的调用形式为:fp=fopen(文件名,文件使用方式)。“文件使用方式”说明:方式“r”为以输入方式打开一个文本文件;方式“a+”为以读/写方式打开一个文本文件,保留文件中原有的数据;方式“w+”为以读/写方式建立一个新的文本文件:方式“r+”为以读/写方式打开一个文本文件。3.算法分析的目的是A) 找出数据结构的合理性B) 找出算法中输入和输出之间的关系C
31、) 分析算法的易懂性和可靠性D) 分析算法的效率以求改进(分数:2.00)A.B.C.D. 解析:解析 算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。4.设已包含头文件string.h,下列程序段的运行结果是( )。char s1=“ACDEF“;char s2=“ABC“;strcpy(s1,s2) ;printf(“%d“,strlen(s1) );A) 3 B) 4 C) 6 D) 5(分数:1.00)A. B.C.D.解析:解析 头文件string
32、.h是字符串处理函数对应的头文件,要想调用 C 语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。strcpy(s1,s2)把 s2 中的字符串复制到 s1 中,所以结果就为 s2 的长度。5.若执行下列的程序时,从键盘上输入 1 和 2,则输出结果是( )。#includestdio.hmain()int a,b,s;scanf(“%d%d“,S=a;if(aB) s=b;s=s*s;printtf(“%d/n“,s);A) 1 B) 4 C) 2 D) 9(分数:2.00)A.B. C.D.解析:解析 本题考查 if 语句。scanf 函数通过键盘读入 a、b 的值,
33、a=1,b=2。第一个 if 语句,先判断条件,发现 ab 条件成立,则 s=b=2,s=s*s=4。6.下列程序段的运行结果是( )。#includestdio.hvoid main()char str=“ABC“,*p=str;printf(“%d/n“,* (p+3);A) 67 B) 0 C) 字符C的地址 D) 字符C(分数:2.00)A.B. C.D.解析:解析 先定义了一个指向字符型数组 str 的指针 p,指针 P 指向数组 str 的首地址,p+3 将指针指向 str3,又因为字符型数组在存放字符串时会自动在末尾加上/0,所以*(p+3)=0。7.以下程序运行后的输出结果是#
34、includestdio.h#define f(x) x*x*xmain()int a=3, s, t;s=f(a+1); t=f(a+1);printf(“%d, %d/n“, s, t);A) 10,64 B) 10,10 C) 64,10 D) 64,64(分数:2.00)A. B.C.D.解析:解析 s=f(a+1)=a+1*a+1*a+1=3+1*3+1*3+1=10t=f(a+1)=(a+1)*(a+1)*(a+1)= =(3+1)*(3+1)*(3+1)=648.以下程序的输出结果是_。main()int i,a10;for(i=9;i=0;i-)ai=10-i;print(“%
35、d%d%d,a2,a5,a8);A) 258 B) 741 C) 852 D) 369(分数:2.00)A.B.C. D.解析:解析 在本题运行时主要注意的是当 i=9 时,ai=10-9=1:i=8 时,ai=10-8=2;i=7 时,ai=10-7=3;依此类推,直到 i=0 时,ai=10-0=10:此时,i 的值已变为-1,判断 for 的循环条件,不成立,然后输出 a2,a5,a8分别为 8,5,2。9.在 C 语言中,函数返回值的类型最终取决于( )。A) 函数定义时在函数首部所说明的函数类型B) return 语句中表达式值的类型C) 调用函数时主调函数所传递的实参类型D) 函数
36、定义时形参的类型(分数:2.00)A. B.C.D.解析:解析 在 C 语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和 return 语句中的表达式类型一致。如果函数值的类型和 return 语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。10.根据下列定义,能打印出字母 P 的语句是( )。struct stuchar name10;int age;struct stu s10“John“,11,“Pau1“,12,“Mary“,11,“adam“,12;A) primf
37、(“%c“,s3.name; B) primf(“%c“,s3.name1);C) printf(“%c“,s2.name1); D) printf(“%c“,s1.name0);(分数:2.00)A.B.C.D. 解析:解析 本题主要考查按结构数组元素方式引用结构成员。字母 P 为“Paul“的第一个字母,是结构体 s1的 name 成员的第一个元素的值,即 s1.name0的值。11.下列程序的输出结果是( )。main()int a,b,d25;a:d/10%9;baprintf(“%d,%d/n“,a,b) ;A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:1.00)A.
38、B. C.D.解析:解析 算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a25/10%92%92;当逻辑运算符“for(i=0;i3;i+)for(j=0;j=i;j+) s+=aij;printf(“%d/n“,s);A) 18 B) 19 C) 20 D) 21(分数:1.00)A.B. C.D.解析:解析 本题函数的功能是计算并输出一个二维数组对角线及对角线下面的元素之和。18.有下列程序:#include stdio.h#include “string.h“void tim(char *s,int n)char *t;int i,j
39、;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj) t=si;si=sj;sj=t;main()char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5);printf(“%s,%s/n“,ss0,ss4);程序的运行结果是( )。A) xy,aaaacc B) aaaacc,xy C) bcc,aabcc D) aabcc,bcc(分数:2.00)A. B.C.D.解析:解析 从 main 函数入手,定义了指向字符串的指针数组,并赋予了初始值,调用 fun()函数,函数的功能是:比
40、较数组中各个元素的长度,按元素长度从小到大排列数组元素,所以执行 fun(ss,5)函数后,*ss=“xy“,“bcc“,“bbcc“,“aabcc“,“aaaacc“,所以调用 printf 函数输出 ss0,ss4的值分别为 xy,aaaacc。19.若要用下面的程序片段指针变量 p 指向一个存储整型变量的动态存储单元int *p;p=_ malloc (sizeof (int);则应填入 _。A) int B) int* C) (*int) D) (int*)(分数:2.00)A.B.C.D. 解析:解析 不论 p 是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制
41、类型转换的格式为(数据类型*)。20.以下定义语句中正确的是( )。A) char a=A b=B; B) float a=b=10.0;C) int a=10, *b= B) int a3=1,2,3,4,5,0;C) int a3=1,0,2,0,3,0; D) int a2=1,2,3,4,5,6;(分数:2.00)A.B. C.D.解析:解析 此题考查的是二维数组的初始化。题干中数组 a 的第二个下标为 3由此可知数组 a 是一个 2 行 3 列的数组,初始化时末赋初值的元素的值自动为 0,所以与选项 B) 是等价的,最后一个元素的值为 0。26.有以下程序main()int a=1,
42、2,3,4,5,6,7,8,9,0,*P;for(p=a;pa+10;p+)printf(“%d,“,*p);程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9,0, B) 2,3,4,5,6,7,8,9,10,1, C) 0,1,2,3,4,5,6,7,8,9, D) 1,1,1,1,1,1,1,1,1,1,(分数:1.00)A. B.C.D.解析:解析 本指针访问数组元素,在 for 循环中,首先指针 p 指向 a0的地址,输出语句即输出 a0的值,然后指针 p 依次后移一位,依次指向数组 a 中各元素的地址,所以程序依次输出数组 a 的各元素值。27.下列叙述中错误的是_。A
43、) 在数据库系统中,数据的物理结构必须与逻辑结构一致B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库设计是指在已有数据库管理系统的基础上建立数据库D) 数据库系统需要操作系统的支持(分数:2.00)A. B.C.D.解析:解析 数据的物理结构和逻辑结构有高度的独立性,结构不必一致。28.软件设计中模块划分应遵循的准则是_。(A) 低内聚低耦合(B) 高内聚低耦合(C) 低内聚高耦合(D) 高内聚高耦合(分数:2.00)A.B. C.D.解析:29.请选出可用作 C 语言用户标识符的是A) void,define,WORD B) a3_b3,_123,IF C) FOR,-abc,C
44、ase D) 2a,Do,Sizeof(分数:1.00)A.B. C.D.解析:解析 C 语言规定用户标识符由字母、数字和下画线组成,且第一个字符必须是字母或下画线,可见选项 C) , D) 是错误的;此外,C 语言不允许用户将关键字作为标识符,而选项 A) 中的 void 正是C 语言的关键字。30.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。(A) x=y=5;(B) x=n%2.5;(C) x+n=i(D) x=5=4+1;(分数:1.00)A. B.C.D.解析:31.有以下程序main()int n3,i,j;for(i0;i3;i+)ni0;for(i=0;i2,i
45、+)for(j=0;j2;j+)nj=ni+1;printf(“%d/n“,n1);程序运行后的输出结果是 ( )A) 2 B) 1 C) 0 D) 3(分数:1.00)A.B.C.D. 解析:32.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是 _。A) k%2 B) k%2=1 C) (k%2)!=0 D) !k%2=1(分数:1.00)A.B.C.D. 解析:解析 本题选项 A、B、C 中表达式用作 if 语句表达式时,其值一致,即判断 k 的值是否为奇数,若为奇数,其表达式为真,否则为假;而选项 D 的表达式“!k%2=1”相当于“!(k
46、%2)=1,若 k 的值为奇数,则此表达式的值为假。33.下列叙述中正确的是A) 程序设计的任务就是编写程序代码并上机调试B) 程序设计的任务就是确定所用数据结构C) 程序设计的任务就是确定所用算法D) 以上 3 种说法都不完整(分数:1.00)A.B.C.D. 解析:解析 选项 A、B、C 的说法都不完整。程序设计应根据计算机要完成的任务进行数据结构和算法的设计,并且编写其程序代码,然后进行调试,直到得出正确结果。34.以下有 4 组用户标识符,其中合法的一组是_。A) FOR -subCaseB) 4dDOSizeC) f2_G3IFabcD) WORDvoiddefine(分数:1.00)A.B.C. D.解析:解析 C 语言的标识符的定义为:以字母或下划线开头的由字母、数字字符、下划线组成的字符串。而且标识符不能与关键字相同。35.设血型占 2 个字节,则 unsigned int 所能表示的数据范围