1、计算机二级(C)47 及答案解析(总分:3040.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:50,分数:3000.00)1.下列叙述中正确的是【 】。(分数:60.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构2.有以下程序段 struct st int x;int*y;*pt; int a=l,2,b=3,4; struct st C2=l0,a,20,b pt=C; 以下选项中表达式的值为 11 的是【 】。 (分数:60.00)A.*pt-YB.pt-XC.+pt-
2、xD.(pt+)-X3.以下程序中 sort( )函数的功能是对 a 所指数组中的数据进行由大到小的排序: void sort(int a ,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main( ) int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa3,5); for(i0;i10;+)printf(“%d,“,aai ); printf(“/n“); 程序运行后的输出结果是( )。 (分数:60.00)A.1,2,3,4,5,6,7,8,9,10,B.
3、10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10,D.1,2,10,9,8,7,6,5,4,3,4.有以下程序: int fa(int x) return x *x; int fb(int x) return x *x *x; int f(int( *f1)( ),int( *f2)( ),int x) return f2(x)-f1(x); main( ) int i; i=f(fa,fb,2);printf(“%d/n“,i); 程序运行后的输出结果是( )。 (分数:60.00)A.-4B.1C.4D.85.有以下程序 main() int x,y,
4、z; x=y=1; Z=X+,Y+,+Y; printf(“d,d,dn“,X,Y,Z); 程序运行后的输出结果是【 】。 (分数:60.00)A.2,3,3B.2,3,2C.2,3,1D.2,2,16.有以下程序: #includestring.h main(int argc,char *argv ) int i,len=0; for(i=1;iargc;i+) len+=strlen(argvi); printf(“%d/n“,len); 程序编译连接后生成的可执行文件是 exlexe,若运行时输入带参数的命令行是: exl abcd efg 10回车 则运行的结果是( )。 (分数:60
5、.00)A.22B.17C.12D.97.以下叙述正确的是( )。(分数:60.00)A.C 语言比其他语言高级B.C 语言可以不用编译就能被计算机识别执行C.C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C 语言出现的最晚、具有其他语言的一切优点8.有以下程序: main() char a7=“a0/0a0/0“:int i,j i=sizeof(a);j=strlen(a): printf(“%d%d/n“,i,j); 程序运行后的输出结果是【 】。(分数:60.00)A.22B.76C.72D.629.有以下程序: main() int a=1,2,3,4,5,6,7,
6、8,9,0,*p; for(p=a;pa+10,p+)printf(“%d,“,*p); 程序运行后的输出结果是【 】。(分数:60.00)A.1,234,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,C.01,23,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,10.有以下程序段: main( ) int a=5,*b,*c; c= b= 程序在执行了 c=b=语句后,表达式:*c 的值是( )。 (分数:60.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值D.变量 b 的地址11.已有定义:int x=3,y=4,z=5;,
7、则表达式!(x+y)+z-1y+z/2 的值是( )。(分数:60.00)A.6B.0C.2D.112.有以下程序: int a=3; main( ) int s=0; int a=5;s+=a+; s+=a+; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:60.00)A.8B.10C.7D.1113.设变量已正确定义,则以下能正确计算 f=n!的程序段是【 】。(分数:60.00)A.F=0: for(i=1;i=n;i+) f*=i;B.f=1; for(i=1;in;i+) f*=i;C.f=1; for(i=n;i1;i+)f*=i;D.f=-1; fo
8、r(i=n;i=2;i-)f*=i;14.若有以下程序段 int m=0xabc,n=0xabc; m-=n; printf(“%X/n“,m); 执行后输出结果是( )。 (分数:60.00)A.0X0B.0x0C.0D.0XABC15.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)A.abcdB.abbaC.abcD.abca16.某二叉树中有 n 个度为 2 的结点,则该二叉树
9、中的叶子结点数为【 】。(分数:60.00)A.n+lB.n-1C.2nD.n217.有以下程序 main( ) int x8=8,7,6,5,0,0,*s; s=x+3; printf(“%d/n“,s2); 执行后输出结果是( )。 (分数:60.00)A.随机值B.0C.5D.618.有以下程序 main() int Y=10; while(Y-);printf(“Y=dn“,Y); 程序执行后的输出结果是【 】。 (分数:60.00)A.Y=0B.Y=-1C.Y=1D.while 构成无限循环19.以下定义语句中正确的是( )。(分数:60.00)A.char a=Ab=B;B.flo
10、at a=b=10.0;C.int a=10,*b=D.float *a,b=20.有以下程序 int fun(int X,int n) static int sum=0,i; for(i=0;iA.45B.50C.60D.5521.下列叙述中正确的是【 】。(分数:60.00)A.软件测试的主要目的是发现程序中的错误B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误22.有以下程序: main() int k=5,n=0; while(k0) switch(k) default:break; case
11、 1:n+=k; case 2: case3:n+=k; k-; printf(“%d/n“,n); 程序运行后的输出结果是【 】。 (分数:60.00)A.0B.4C.6D.723.有以下程序: main( ) int m=0256,n=256; printf(“%o %o/n“,mn,n); 程序运行后的输出结果是( )。 (分数:60.00)A.0256 0400B.0256 256C.256 400D.400 40024.以下叙述中正确的是( )。(分数:60.00)A.C 程序中注释部分可以出现在程序中任意合适的地方B.花括号“和“只能作为函数体的定界符C.构成 C 程序的基本单位是
12、函数,所有函数名都可以由用户命名D.分号是 C 语句之间的分隔符,不是语句的一部分25.有以下程序 maln() int a=0,b=0,C=0,d=0; . if(a=1)b=1;c:2; else d=3; printf(“d,d,d,dn“,a,b,C,d); 程序输出【 】。 (分数:60.00)A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错26.设有定义:int a,*pa=以下 scanf 语句中能正确为变量 a 读入数据的是( )。(分数:60.00)A.scanf(“%d”,pa);B.scanf(“%d”,a);C.scanf(“%d”,D.scanf(“
13、%d”,*pa);27.有以下程序: main() int a=2,4,6,8,10,y=0,x,*p; p=printf(“%d/n“,y); 程序运行后的输出结果是【 】。 (分数:60.00)A.10B.11C.14D.1528.有以下程序 #include stdio.h #define F(X,Y) (X)*(Y) main( ) int a=3, b=4; printf(“%d/n“, F(a+, b+); 程序运行后的输出结果是( )。 (分数:60.00)A.12B.15C.16D.2029.有以下定义: #include stdio.h char a10,*b=a; 不能给数
14、组 a 输入字符串的语句是( )。 (分数:60.00)A.gets(a)B.gets(a0)C.gets(D.gets(b);30.有以下程序 main() int a=1,b=3,C=5,*P; int *pl= for(i=0;i3;i+) switch(i) case 1: printf(“%d“,i); case 2: printf(“%d“,i); default: printf(“%d“,i); 执行后输出的结果是( )。 (分数:60.00)A.011122B.012C.012020D.12033.以下能正确定义二维数组的是( )。(分数:60.00)A.int a 3;B.i
15、nt a 3=22*3;C.int a 3=;D.int a23=1,2,3,4;34.用 C 语言编写的代码程序( )。(分数:60.00)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行35.有以下定义和语句: int a32=1,2,3,4,5,6,*p3; p0=a1; 则*p0+1)所代表的数组元素是( )。 (分数:60.00)A.a01B.a10C.a11D.a1236.有以下程序: main( ) int a=3,b=4,c=5,d=2; if(ab) if(bc) printf(“%d“,d+ +1); else printf(“%d“,+d +1)
16、; printf(“%d/n“,d); 程序运行后的输出结果是( )。 (分数:60.00)A.2B.3C.43D.4437.有以下程序 int add(int a,int b)return(a+b); main() int k,(*f)(),a=5,b=10; f=add; 则以下函数调用语句错误的是【 】。 (分数:60.00)A.k:(*f)(a.b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);38.以下叙述中错误的是( )。(分数:60.00)A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用函数 fclose( )关闭已打开
17、的文件C.在利用函数 fread( )从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用 FILE 定义指向二进制文件的文件指针39.有以下程序: main() int a10=1,2, 3,4,5,6,7,8,9,10,*p= scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要使程序的输出值为 2,则应该从键盘给 n 输入的值是( )。 (分数:60.00)A.-1B.-3C.-5D.045.以下不能正确计算代数式 1/3sin2(1/2)值的 C 语言表达式是【 】。(分数:60.00)A.1/3
18、*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0.2),2)46.在 Windows 菜单中,暗淡的命令名项目表示该命令( )。(分数:60.00)A.暂时不能使用B.正在执行C.包含下一层菜单D.包含对话框47.以下对结构体类型变量 td 的定义中,错误的是【 】。(分数:60.00)A.virtual void vf()0;B.void vf(int)0;C.virtual int vf(int);D.virtual void vf(int) 48.以下与函数 fseek(fp,OL,
19、SEEK_SET)有相同作用的是【 】。(分数:60.00)A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)49.磁盘处于写保护状态时其中的数据( )。(分数:60.00)A.不能读出,不能删改B.可以读出,不能删改C.不能读出,可以删改D.可以读出,可以删改50.Internet 的通信协议是( )。(分数:60.00)A.TCP/IPB.BBSC.WWWD.FTP二、填空题(每空 2 分,共 40 分)(总题数:20,分数:40.00)51.设有定义语句:inta3=0,12;,则数组元素 a12的值是 1。(分数:2.00)填空项 1:_52.若有
20、以下程序 main( ) char a; a=H-A+0; printf(“%c/n“,a); 执行后输出结果是 1。 (分数:2.00)填空项 1:_53.在结构化分析使用的数据流图(DFD)中,利用 1 对其中的图形元素进行确切解释。(分数:2.00)填空项 1:_54.以下程序运行时,若从键盘输入:10 20 30回车,输出的结果是 1。 #includestdio.h main2 int i=0,j=0,k=0; scanf(“%d%*d%d“, printf(“%d%d%d/n“,i,j,k); (分数:2.00)填空项 1:_55.在关系数据库中,把数据表示成二维表,每一个二维表称
21、为 1。(分数:2.00)填空项 1:_56.以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中的其他数据不变。 #define N 4 void rotate(int aN,int bN int i,j; for(i=0;iN;i+) biN-1= 1; 2=aN-1i; (分数:2.00)填空项 1:_填空项 1:_57.E-mail 地址由用户名和域名两部分组成,这两部分的分隔符为 1。(分数:2.00)填空项 1:_58.已知字
22、符 A 的 ACSII 码值为 65,以下语句的输出结果是 1。 char ch=B; printf(“%c %d/n”,ch,ch); (分数:2.00)填空项 1:_59.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_60.软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 1 阶段。(分数:2.00)填空项 1:_61.以下程序运行后的输出结果是 1 int a=5; fun(int b) static int
23、 a=10; a+=b+; printf(“%d “,a); main( ) int c=20; fun(c); a+=c+; printf(“%d/n“,a); (分数:2.00)填空项 1:_62.下列软件系统结构图的宽度为 1。 (分数:2.00)填空项 1:_63.设有定义:int n,* K=n;以下语句将利用指针变量 k 读写变量 n 中的内容,请将语句补充完整。 scanf(“%d“, 1); printf(“%d/n“, 2); (分数:2.00)填空项 1:_64.以下程序运行后的输出结果是 1。 main( ) char a =“123456789“,*p; int i=0
24、; p=a; while(*p) if(i%2=0) *p=*; p+;i+; puts(a); (分数:2.00)填空项 1:_65.设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件 readme.txt 的最后续写内容。fw=fopen(“readme.txt“, 1);(分数:2.00)填空项 1:_66.下面程序和运行运行结果是 1。 typedef union student char name 10; long sno; char sex; float score 4; STU; main ( ) STU a5; prinff( “% d/n“, si
25、zeof(a) ); (分数:2.00)填空项 1:_67.以下程序的输出结果是 1。 #include main2 char *sl,*s2,m; sl=s2=(char*)malloc(sizeof(char).*sl=15; *s2=20; m=*sl+*s2; printf(“dn“,m); (分数:2.00)填空项 1:_68.假设在当前盘当前目录下有一个可执行程序 USER.EXE。现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件 OUT.DAT 中,则完整的 DOS 命令为 1。(分数:2.00)填空项 1:_69.按“先进后出“原则组织数据的数据结
26、构是 1。(分数:2.00)填空项 1:_70.在 DOS 环境下,代表键盘和显示器的设备文件名为 1。(分数:2.00)填空项 1:_计算机二级(C)47 答案解析(总分:3040.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:50,分数:3000.00)1.下列叙述中正确的是【 】。(分数:60.00)A.线性链表是线性表的链式存储结构 B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构解析:所谓线性链表,就是指线性表的链式存储结构,简称链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域
27、两个组成部分。栈、队列和双向链表是线性结构,二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。2.有以下程序段 struct st int x;int*y;*pt; int a=l,2,b=3,4; struct st C2=l0,a,20,b pt=C; 以下选项中表达式的值为 11 的是【 】。 (分数:60.00)A.*pt-YB.pt-XC.+pt-x D.(pt+)-X解析:-的运算优先级比+高,此时,pt-=10,执行自加运算后为 11。3.以下程序中 sort( )函数的功能是对 a 所指数组
28、中的数据进行由大到小的排序: void sort(int a ,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main( ) int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa3,5); for(i0;i10;+)printf(“%d,“,aai ); printf(“/n“); 程序运行后的输出结果是( )。 (分数:60.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,
29、9,10, D.1,2,10,9,8,7,6,5,4,3,解析:形参 a 接受的是字符串“4 5 6 7 8”,调用 sort( )函数后,字符串的顺序变为“8 7 6 5 4 9 10”。4.有以下程序: int fa(int x) return x *x; int fb(int x) return x *x *x; int f(int( *f1)( ),int( *f2)( ),int x) return f2(x)-f1(x); main( ) int i; i=f(fa,fb,2);printf(“%d/n“,i); 程序运行后的输出结果是( )。 (分数:60.00)A.-4B.1C
30、.4 D.8解析:本题考点是函数之间的参数传递。5.有以下程序 main() int x,y,z; x=y=1; Z=X+,Y+,+Y; printf(“d,d,dn“,X,Y,Z); 程序运行后的输出结果是【 】。 (分数:60.00)A.2,3,3B.2,3,2C.2,3,1 D.2,2,1解析:整型变量 x、y 的初值都为 1,“x+,y+,+y“是一个逗号表达式,程序执行“z=x+,y+,+y“后,x 的值为 2,y 的值为 3。z 取豆号表达式中第二个表达式的值,为 1。6.有以下程序: #includestring.h main(int argc,char *argv ) int
31、i,len=0; for(i=1;iargc;i+) len+=strlen(argvi); printf(“%d/n“,len); 程序编译连接后生成的可执行文件是 exlexe,若运行时输入带参数的命令行是: exl abcd efg 10回车 则运行的结果是( )。 (分数:60.00)A.22B.17C.12D.9 解析:本题通过键盘赋值,使指针 argv,分别指向字符串“abcd、O”,“efg/0”和“10/0”。7.以下叙述正确的是( )。(分数:60.00)A.C 语言比其他语言高级B.C 语言可以不用编译就能被计算机识别执行C.C 语言以接近英语国家的自然语言和数学语言作为语
32、言的表达形式 D.C 语言出现的最晚、具有其他语言的一切优点解析:8.有以下程序: main() char a7=“a0/0a0/0“:int i,j i=sizeof(a);j=strlen(a): printf(“%d%d/n“,i,j); 程序运行后的输出结果是【 】。(分数:60.00)A.22B.76C.72 D.62解析:C 语言中以/0作为字符串的结束符,且 strlen()函数计算的是/0字符前的所有字符的个数。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。 9.有以下程序: main() int a=1,2,3,4,5,6,7,8,9,0,*p; for
33、(p=a;pa+10,p+)printf(“%d,“,*p); 程序运行后的输出结果是【 】。(分数:60.00)A.1,234,5,6,7,8,9,0, B.2,3,4,5,6,7,8,9,10,1,C.01,23,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,解析:C 语言规定数组变量名代表数组的首地址,即第 0 号元素的地址。本题将 a 数组中的值全部输出,即为 1,2,3,4,5,6,7,8,9,0,。 10.有以下程序段: main( ) int a=5,*b,*c; c= b= 程序在执行了 c=b=语句后,表达式:*c 的值是( )。 (分数:60.00)A
34、.变量 a 的地址B.变量 b 中的值C.变量 a 中的值 D.变量 b 的地址解析:11.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1y+z/2 的值是( )。(分数:60.00)A.6B.0C.2D.1 解析:本题考查运算符的优先顺序,其中有12.有以下程序: int a=3; main( ) int s=0; int a=5;s+=a+; s+=a+; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:60.00)A.8 B.10C.7D.11解析:本题考点是全局变量的作用范围。13.设变量已正确定义,则以下能正确计算 f=n!的程序
35、段是【 】。(分数:60.00)A.F=0: for(i=1;i=n;i+) f*=i;B.f=1; for(i=1;in;i+) f*=i;C.f=1; for(i=n;i1;i+)f*=i;D.f=-1; for(i=n;i=2;i-)f*=i; 解析:n!=n*(n-1)*2*1,由于选项 A 中 f 的初值为 0,所以循环 n 次后,f 值依然为 0,故选项 A 错误:选项 B 中循环的终止条件是“in“,即只执行 i-1 次循环,得到的 f 值为(n-1)*2*1 的值,故选项 B 错误;选项 C 中,当 n1 时,由于初值“i=n“是符合条件“i1“的,且增量为+1,故循环中永远不
36、会出现不满足条件“i1“的值,所以出现死循环。14.若有以下程序段 int m=0xabc,n=0xabc; m-=n; printf(“%X/n“,m); 执行后输出结果是( )。 (分数:60.00)A.0X0B.0x0C.0 D.0XABC解析:15.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)A.abcdB.abba C.abcD.abca解析:16.某二叉树中有 n 个度
37、为 2 的结点,则该二叉树中的叶子结点数为【 】。(分数:60.00)A.n+l B.n-1C.2nD.n2解析:对于任何一棵二叉树 T,如果其终端结点(叶子)数为 n1,度为 2 的结点数为 n2,则 n1=n2+1。所以该二叉树的叶子结点数等于 n+1。17.有以下程序 main( ) int x8=8,7,6,5,0,0,*s; s=x+3; printf(“%d/n“,s2); 执行后输出结果是( )。 (分数:60.00)A.随机值B.0 C.5D.6解析:18.有以下程序 main() int Y=10; while(Y-);printf(“Y=dn“,Y); 程序执行后的输出结果
38、是【 】。 (分数:60.00)A.Y=0B.Y=-1 C.Y=1D.while 构成无限循环解析:while(y-)执行后,y 若大于 1,则循环,等 y=0 时,循环结束,并执行自减运算,得-1。19.以下定义语句中正确的是( )。(分数:60.00)A.char a=Ab=B;B.float a=b=10.0;C.int a=10,*b= D.float *a,b=解析:20.有以下程序 int fun(int X,int n) static int sum=0,i; for(i=0;iA.45B.50C.60 D.55解析:内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保
39、存数据,再次调用该函数时,以前调用时的数值仍然保留着。Fun(a,5)的值是 15,再次调用后 sum=15,所以 Fun(b,4):45,s=45+15=60。21.下列叙述中正确的是【 】。(分数:60.00)A.软件测试的主要目的是发现程序中的错误 B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误解析:软件测试是为了发现错误而执行程序的过程,且为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序。22.有以下程序: main() int k=5,n=0; while
40、(k0) switch(k) default:break; case 1:n+=k; case 2: case3:n+=k; k-; printf(“%d/n“,n); 程序运行后的输出结果是【 】。 (分数:60.00)A.0B.4C.6D.7 解析:在 switch 语句中,表达式的值与某一个 case 后面的常量表达式的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default 后面的语句,各个case 和 default 的出现次序不影响执行结果。所以在本题中,当 k=5 和 k=4 的时候,case 都没有与其匹配
41、的值,所以执行了 default 语句;当 k=3 时,执行“case3:n+=k;“得 n=3,然后执行 default;当 k=2 时,执行“case2:case3:n+=k“得 n=5,然后执行 default;当 k=1 时,执行“case1:n+=k;case2:case3:n+=k;“使得 n 加两次 k,得到 n=7。 23.有以下程序: main( ) int m=0256,n=256; printf(“%o %o/n“,mn,n); 程序运行后的输出结果是( )。 (分数:60.00)A.0256 0400B.0256 256C.256 400 D.400 400解析:24.
42、以下叙述中正确的是( )。(分数:60.00)A.C 程序中注释部分可以出现在程序中任意合适的地方 B.花括号“和“只能作为函数体的定界符C.构成 C 程序的基本单位是函数,所有函数名都可以由用户命名D.分号是 C 语句之间的分隔符,不是语句的一部分解析:25.有以下程序 maln() int a=0,b=0,C=0,d=0; . if(a=1)b=1;c:2; else d=3; printf(“d,d,d,dn“,a,b,C,d); 程序输出【 】。 (分数:60.00)A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错 解析:else 子句不能作为语句单独使用,在题中 i
43、f 与 else 语句被“c=2;“语句分隔开了。26.设有定义:int a,*pa=以下 scanf 语句中能正确为变量 a 读入数据的是( )。(分数:60.00)A.scanf(“%d”,pa); B.scanf(“%d”,a);C.scanf(“%d”,D.scanf(“%d”,*pa);解析:27.有以下程序: main() int a=2,4,6,8,10,y=0,x,*p; p=printf(“%d/n“,y); 程序运行后的输出结果是【 】。 (分数:60.00)A.10B.11C.14 D.15解析:本题通过语句“p= printf(“%d/n“, F(a+, b+); 程序
44、运行后的输出结果是( )。 (分数:60.00)A.12 B.15C.16D.20解析:29.有以下定义: #include stdio.h char a10,*b=a; 不能给数组 a 输入字符串的语句是( )。 (分数:60.00)A.gets(a)B.gets(a0) C.gets(D.gets(b);解析:30.有以下程序 main() int a=1,b=3,C=5,*P; int *pl= for(i=0;i3;i+) switch(i) case 1: printf(“%d“,i); case 2: printf(“%d“,i); default: printf(“%d“,i);
45、 执行后输出的结果是( )。 (分数:60.00)A.011122 B.012C.012020D.120解析:33.以下能正确定义二维数组的是( )。(分数:60.00)A.int a 3;B.int a 3=22*3; C.int a 3=;D.int a23=1,2,3,4;解析:34.用 C 语言编写的代码程序( )。(分数:60.00)A.可立即执行B.是一个源程序 C.经过编译即可执行D.经过编译解释才能执行解析:35.有以下定义和语句: int a32=1,2,3,4,5,6,*p3; p0=a1; 则*p0+1)所代表的数组元素是( )。 (分数:60.00)A.a01B.a10C.a11 D.a12解析:36.有以下程序: main( ) int a=3,b=4,c=5,d=2; if(ab) if(bc) printf(“%d“,d+ +1); else printf(“%d“,+d +1); printf(“%d/n“,