1、二级 C语言分类模拟题 511及答案解析(总分:57.00,做题时间:90 分钟)一、选择题(总题数:35,分数:57.00)1.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上 3种说法都不对2.若有以下程序段: struct stint n;struct st*next; stmct st a3=5,a1,7,a2,9,“/0“,*p; p=a0; 则以下选项中值为 6的表达式是_(分数:1.00)A.p-nB.(*p).nC.p-n+D.+(p-n)3.下面程序输出的结果是_。 main() int
2、 i; int a33=1,2,3,4,5,6,7,8,9; for(i=0; iprintf(“% d“, a2-ii); (分数:1.00)A.1 5 9B.7 5 3C.3 5 7D.5 9 14.函数 ftell(fp)的作用是_。(分数:2.50)A.得到 fp所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确5.设有如下函数定义 #include stdio.h int fun(int k if(k1) return 0; else if(k=1) return 1; else return fun(k-1)+1; 若执行调用语句“n=
3、fun(3);”,则函数 fun总共被调用的次数是_。(分数:1.00)A.3B.2C.4D.56.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W的是_。(分数:2.50)A.ab+cB.ch=getchar()C.a=b+cD.a+7.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是(分数:2.00)A.auto和 registerB.extern和 registerC.auto和 staticD.static和 register8.下列程序的输出结果是_。 #includestdio.h void main() int a=0,b=1,c
4、=2; if(+a0|+b0) +c; printf(“%d,%d,%d“,a,b,c); (分数:2.50)A.0,1,2B.1,2,3C.1,1,3D.1,2,29.若已定义 x和 y为 double类型,则表达式“x=1, y=x+3/2”的值是_。(分数:1.00)A.1B.2C.2.0D.2.510.在数据库设计中,将 E-R图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段11.C语言中,字符(char)型数据在微机内存中的存储形式是_。(分数:1.00)A.反码B.补码C.EBCDIC码D.ASCII码12.算法分
5、析的目的是_。(分数:2.50)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进13.下面 4个选项中,均是不合法的用户标识符的选项是_。(分数:1.00)A.A P_0 doB.float la0_AC.b-a goto intD._123 temp int14.以下关于结构化程序设计的叙述中正确的是(分数:1.00)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.结构化程序使用 goto语句会更便捷C.在 C语言中,程序的模块化是利用函数实现的D.由 3种基本结构构成的程序只能解决小规模的问题15.有以下程序: #
6、includestdio.h main() char c1=“A“, c2=“Y“; printf(“%d, %d/n“, c1, c2); 程序的输出结果是_。(分数:2.50)A.因输出格式不合法,无正确输出B.65,90C.A,YD.65,8916.有以下程序: #includestdio.h main() char c1, c2, c3, c4, c5, c6; scanf(“%c% c% c%c“, c1, c2, c3, c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c% c/n“, c5,
7、c6); 程序运行后,若从键盘输入(从第 1列开始): 123回车 45678回车 则输出结果是(分数:2.00)A.1267B.1256C.1278D.124517.下列选项中不属于结构化程序设计原则的是_。(分数:2.50)A.可封装B.自顶向下C.模块化D.逐步求精18.若有以下程序: #include stdio.h int *f(int *s,int *t) int *k; if(*s*t) k=s; s=t; t=k; return s; main( ) int i=3,j=5, *p= r=f(p,q); printf(“%d,%d,%d,%d,%d/n“,i,j,*p,*q,*
8、r); 则程序的输出结果是_。(分数:2.00)A.3,5,5,3,5B.3,5,3,5,5C.5,3,5,3,5D.5,3,3,5,519.在面向对象方法中,_描述的是具有相似属性与操作的一组对象。(分数:2.50)A.属性B.事件C.方法D类20.若已建立以下链表结构,指针 p、s 分别指向如图所示结点: (分数:1.00)A.p=p-next:s-next=p;p-next=s;B.s-next=“/0“;p=p-next;p-next=s;C.p=p-next;s-next=p-next;p-next=s;D.p=(*p).next;(*s).next=(*p).next;(*p).n
9、ext=s;21.逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是_。(分数:1.00)A.关系模型B.谓词模型C.物理模型D.实体联系模型22.以下叙述中正确的是_。(分数:1.00)A.if语句只能嵌套一层B.if子句和 else子句中可以是任意的合法的 C语句C.不能在 else子句中再嵌套 if语句D.改变 if-else语句的缩进格式,会改变程序的执行流程23.若希望下列的程序运行后输出 25,程序空白处的正确选项是_。 main() int id=50, a=7, 4, 10, 5, 8; for_ j+=ai; printf(“%d“, j-40); (分数:2.50)A.i
10、=1; i4; +iB.i=1; i3; +iC.i=4; i2; i-D.i=2; i4; +i24.有以下程序: #includestdio.h main() FILE*fp; int i,a6=1,2,3,4,5,6; f=fopen(“d2.dat“,“w+“); for(i=0;i6;i+)fprintf(fp,“%d/n“,ai); rewind(fp); for(i=0;i6;i+)fscanf(fp,“%d“,a5-i); fclose(fp); for(i=0;i6;i+)printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,
11、6,B.6,5,4,3,2,1,C.4,5,6,1,2,3,D.1,2,3,3,2,1,25.有以下程序段: char ch;int k; ch=“a“;k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k); 已知字符 a的 ASCII十进制代码为 97,则执行上述程序段后输出结果是_。(分数:2.00)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=1226.将 E-R图转换为关系模式时,实体和联系都可以表示为_。(分数:1.00)A.属性B键C.关系
12、D域27.以下选项中,能表示逻辑值“假”的是_。(分数:1.00)A.1B.0.000001C.0D.100.028.在 16位编译系统上,若有定义“int a=10, 20, 30, *p=”,当执行“p+;”后,下列说法错误的是_。(分数:2.50)A.p向高地址移了一个字节B.p向高地址移了一个存储单元C.p向高地址移了两个字节D.p与 a+1等价29.下列叙述中正确的是_。(分数:2.50)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.在栈中,栈中元素不
13、会随栈底指针与栈顶指针的变化而动态变化30.为了避免在嵌套的 if-else语句中产生二义性,C 语言规定与 else子句配对是_。(分数:1.00)A.与其在同一行上的 if子句B.在其之后最近的不带 else的 if子句C.与其缩排位置相同的 if子句D.在其之前最近的不带 else的同层 if子句31.循环队列的存储空间为 Q(1:50),初始状态为 front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为_。(分数:1.00)A.51B.50C.49D.132.关于“while(条件表达式)循环体”,
14、以下叙述正确的是_。(分数:2.50)A.条件表达式的执行次数总是比循环体的执行次数多一次B.循环体的执行次数总是比条件表达式的执行次数多一次C.条件表达式的执行次数与循环体的执行次数一样D.条件表达式的执行次数与循环体的执行次数无关33.下列二维数组初始化语句中,正确且与语句 int a3=1,2,3,4,5等价的是_。(分数:2.50)A.int a2=1,2,3,4,5;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;34.有以下程序: #include stdlib.h #include stelio.h
15、main() char*p, *q; p=(char*)malloc(sizeof(char)*20); q=p; scanf(“% s% s“, p, q); printf(“% s% s/n“ p, q); 若从键盘输入:abc def 回车,则输出结果是_。(分数:1.00)A.def defB.abc defC.abc dD.d d35.有以下程序(注:字符 a的 ASCII码值为 97) #includestdio.h main() char*s=“abc“ do printf(“%d“, *s%10“); +s; while(*s); 程序运行后的输出结果是_。(分数:1.00)A
16、.abcB.789C.7890D.979899二级 C语言分类模拟题 511答案解析(总分:57.00,做题时间:90 分钟)一、选择题(总题数:35,分数:57.00)1.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上 3种说法都不对 解析:解析 程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。设计算法时要考虑到数据结构的设计,但是不仅是要考虑到数据结构的设计,还要考虑到其他的程序结构的问题。设计算法时不能只考虑结果的正确性和可靠性,还需要考虑到程序的时间冗余度
17、等方面。所以答案选择 D。2.若有以下程序段: struct stint n;struct st*next; stmct st a3=5,a1,7,a2,9,“/0“,*p; p=a0; 则以下选项中值为 6的表达式是_(分数:1.00)A.p-nB.(*p).nC.p-n+D.+(p-n) 解析:解析 本题考查结构体变量的引用,其中 a为定义的结构体数组,D 选项中 p-n 为 5,+(p-n)为6,所以 D选项正确。3.下面程序输出的结果是_。 main() int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0; iprintf(“% d“, a2-ii);
18、(分数:1.00)A.1 5 9B.7 5 3 C.3 5 7D.5 9 1解析:解析 本题用循环的方法考查对数组概念的掌握。首先,当 i=0时,数组中的位置是 a20=7,当然,如果用排除法,就不用考虑后面的循环,因为在 4个选项中,第 1个数为 7的选项只有 B。本题执行第 2次循环时,i 的值为 1,则 printf函数中的数组指向为 a11=5,依次循环,可求出答案。4.函数 ftell(fp)的作用是_。(分数:2.50)A.得到 fp所指向文件的当前读写位置 B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确解析:解析 位置指针当前值函数 ftell()的基本
19、调用格式为 ftell(fp)。 ftell函数的功能:得到 fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为-1L,表示出错。5.设有如下函数定义 #include stdio.h int fun(int k if(k1) return 0; else if(k=1) return 1; else return fun(k-1)+1; 若执行调用语句“n=fun(3);”,则函数 fun总共被调用的次数是_。(分数:1.00)A.3 B.2C.4D.5解析:解析 首先调用“n=fun(3)”,3 被当作参数传递进去,进行了第一次调用,3 被当作参数传进去后,程序会执行语句
20、“else return fun(k-1)+1;”进行第二次调用,参数是 3-1也就是 2,2 被当作参数传进去后,程序会执行语句“else return fun(k-1)+1;”进行第三次调用,参数是 2-1也就是 1,1 被当作参数传进去后,程序会执行语句“else if(k=1)return 1;”不再递归调用,因此最终结果为 3次,选项 A正确。6.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W的是_。(分数:2.50)A.ab+c B.ch=getchar()C.a=b+cD.a+解析:解析 选项 A是非法的表达式,C 语言中没有“”运算符。7
21、.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是(分数:2.00)A.auto和 register B.extern和 registerC.auto和 staticD.static和 register解析:解析 在 C语言中只有自动变量和寄存器变量在使用时才占用内存单元。8.下列程序的输出结果是_。 #includestdio.h void main() int a=0,b=1,c=2; if(+a0|+b0) +c; printf(“%d,%d,%d“,a,b,c); (分数:2.50)A.0,1,2B.1,2,3C.1,1,3 D.1,2,2解析:解析 本题考查 if语句。先
22、判断 if语句的条件是否成立,因为“+a=10”,所以条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算对象的真假,即不进行+b 操作,就可以直接得出整个表达式的值为逻辑 1,执行下面的+c。9.若已定义 x和 y为 double类型,则表达式“x=1, y=x+3/2”的值是_。(分数:1.00)A.1B.2C.2.0 D.2.5解析:解析 本题中的表达式为逗号表达式,此表达式的结果为 y=x+3/2的值。y=x+3/2 的运算次序为:先进行 3/2运算,两个运算数均为整型量,结果也为整型量,等于 1,此结果将与 double类型数进行相加,要转换为
23、1.00.00。最后将 x的值 1转换成 double型,与 1.00.00相加。10.在数据库设计中,将 E-R图转换成关系数据模型的过程属于_。(分数:1.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 将 E-R图转换成关系数据模型是把图形分析出来的联系反映到数据库中,即设计出表,因此属于逻辑设计阶段,答案为 C。11.C语言中,字符(char)型数据在微机内存中的存储形式是_。(分数:1.00)A.反码B.补码C.EBCDIC码D.ASCII码 解析:解析 ASCII 码其他 3个是用来进行数值处理的。12.算法分析的目的是_。(分数:2.50)A.
24、找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进 解析:解析 算法分析是指对一个算法的运行时间和占用空间做定量的分析,计算相应的数量级,并用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。13.下面 4个选项中,均是不合法的用户标识符的选项是_。(分数:1.00)A.A P_0 doB.float la0_AC.b-a goto int D._123 temp int解析:解析 合法的标识符只能由字母、数字或下划线组成。C 选项中 b-a出现非法字符“-”;goto和 int均为关
25、键字。故本题答案为 C。14.以下关于结构化程序设计的叙述中正确的是(分数:1.00)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.结构化程序使用 goto语句会更便捷C.在 C语言中,程序的模块化是利用函数实现的 D.由 3种基本结构构成的程序只能解决小规模的问题解析:解析 结构化程序设计由顺序、分支和循环 3种结构组成,但不是必须在每个程序中都同时包含这 3种结构,这 3种基本结构构成的程序也可以解决大规模的问题。结构化程序设计应该尽量避免使用goto无条件转向语句,这个语句会破坏结构化程序的总体结构。故选项 A、B、D 错误。C 语言中,程序模块化是利用函数来实现的。15.
26、有以下程序: #includestdio.h main() char c1=“A“, c2=“Y“; printf(“%d, %d/n“, c1, c2); 程序的输出结果是_。(分数:2.50)A.因输出格式不合法,无正确输出B.65,90C.A,YD.65,89 解析:解析 直接输出 A和 Y的 ASCII值,他们的 ASCII值分别为 65和 89,因此正确答案为 D项。16.有以下程序: #includestdio.h main() char c1, c2, c3, c4, c5, c6; scanf(“%c% c% c%c“, c1, c2, c3, c4); c5=getchar(
27、); c6=getchar(); putchar(c1); putchar(c2); printf(“%c% c/n“, c5, c6); 程序运行后,若从键盘输入(从第 1列开始): 123回车 45678回车 则输出结果是(分数:2.00)A.1267B.1256C.1278D.1245 解析:解析 putchar(c1)输出 1,putchar(c2)输出 2,printf(“%c% c/n“, c5, c6)输出 45。17.下列选项中不属于结构化程序设计原则的是_。(分数:2.50)A.可封装 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的思想包括:自顶向下、逐步求精
28、、模块化、限制使用 go to语句,因此本题答案为 A。18.若有以下程序: #include stdio.h int *f(int *s,int *t) int *k; if(*s*t) k=s; s=t; t=k; return s; main( ) int i=3,j=5, *p= r=f(p,q); printf(“%d,%d,%d,%d,%d/n“,i,j,*p,*q,*r); 则程序的输出结果是_。(分数:2.00)A.3,5,5,3,5B.3,5,3,5,5 C.5,3,5,3,5D.5,3,3,5,5解析:解析 在主函数中分别给整型变量 i、j 和指针型变量 p、q 赋初值,并
29、声明指针变量 r;调用 f函数,并将实参变量 p和 q的值传递给形参变量 s和 t,而且 f函数是指针型函数,即函数的返回值是一个地址。在 f函数中,如果条件成立,则将指针变量 s和 t互换,并且将指针 s的地址返回主函数。最后输出 i,j,*p,*q,*r的值,即 3,5,3,5,5。因此 B选项正确。19.在面向对象方法中,_描述的是具有相似属性与操作的一组对象。(分数:2.50)A.属性B.事件C.方法D类 解析:解析 类(class)描述的是具有相似属性与操作的一组对象,具体对象是类的实例。20.若已建立以下链表结构,指针 p、s 分别指向如图所示结点: (分数:1.00)A.p=p-
30、next:s-next=p;p-next=s; B.s-next=“/0“;p=p-next;p-next=s;C.p=p-next;s-next=p-next;p-next=s;D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;解析:解析 本题考查向链表中插入结点。A 选项中,执行语句 p=p-next;后指针 p指向 data F所在的结点。执行语句 s-next=p;后 data F所在的结点移动到指针 s所指结点之后。执行语句 p-next=s;后指针 s所指结点又回移到 data F所在的结点之后,与题目要求不符,语句显然是错误的。21.逻辑
31、模型是面向数据库系统的模型,下面属于逻辑模型的是_。(分数:1.00)A.关系模型 B.谓词模型C.物理模型D.实体联系模型解析:解析 逻辑模型是面向数据库系统的模型,着重于在数据库系统一级的实现。成熟并大量使用的逻辑模型有层次模型、网状模型、关系模型和面向对象模型等。22.以下叙述中正确的是_。(分数:1.00)A.if语句只能嵌套一层B.if子句和 else子句中可以是任意的合法的 C语句 C.不能在 else子句中再嵌套 if语句D.改变 if-else语句的缩进格式,会改变程序的执行流程解析:解析 A 选项中,if 语句的嵌套没有规定层数;C 选项中,可以在 else子句中再嵌套 if
32、语句;D选项中,改变 if-else语句的缩进格式,不会改变程序的执行流程,但需要注意 if和 else的配对问题。因此 B选项正确。23.若希望下列的程序运行后输出 25,程序空白处的正确选项是_。 main() int id=50, a=7, 4, 10, 5, 8; for_ j+=ai; printf(“%d“, j-40); (分数:2.50)A.i=1; i4; +iB.i=1; i3; +iC.i=4; i2; i-D.i=2; i4; +i 解析:解析 要想使程序输出 25,则 j-40=25,j=65,而 j初值是 50,所以填入 for循环的语句,使引用的数组元素累加 65
33、-50=15即可。D 选项中,i 下标从 0开始,i=2 指向第 3个数 50+a2=50+10=60,继续循环 60+a3=60+5=65,此时 i=4跳出,循环结束。24.有以下程序: #includestdio.h main() FILE*fp; int i,a6=1,2,3,4,5,6; f=fopen(“d2.dat“,“w+“); for(i=0;i6;i+)fprintf(fp,“%d/n“,ai); rewind(fp); for(i=0;i6;i+)fscanf(fp,“%d“,a5-i); fclose(fp); for(i=0;i6;i+)printf(“%d,“,ai)
34、; 程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,6,B.6,5,4,3,2,1, C.4,5,6,1,2,3,D.1,2,3,3,2,1,解析:解析 本题考查文件操作函数 fprintf和 rewind函数。rewind 函数将文件内部的位置指针重新指向一个流(数据流/文件)的开头,程序首先是将数组 a的六个数写入 d2文件中,然后又将 a数组从后往前覆盖到 d2中的内容,所以结果为“6,5,4,3,2,1,”,选项 B正确。25.有以下程序段: char ch;int k; ch=“a“;k=12; printf(“%c,%d,“,ch,ch,k); printf(“
35、k=%d/n“,k); 已知字符 a的 ASCII十进制代码为 97,则执行上述程序段后输出结果是_。(分数:2.00)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=12 解析:26.将 E-R图转换为关系模式时,实体和联系都可以表示为_。(分数:1.00)A.属性B键C.关系 D域解析:解析 从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R 图中属性也可以转换成关系的属性。所以选择 C选项。27.以下选项中,能表示逻辑值“假”的是_。(分数:1.00)A.1B.0.00
36、0001C.0 D.100.0解析:解析 本题考查逻辑值假,在程序中非 0字符表示逻辑真,0 表示逻辑假,所以答案选择 C。28.在 16位编译系统上,若有定义“int a=10, 20, 30, *p=”,当执行“p+;”后,下列说法错误的是_。(分数:2.50)A.p向高地址移了一个字节 B.p向高地址移了一个存储单元C.p向高地址移了两个字节D.p与 a+1等价解析:解析 因为 p是整型的指针变量,因此其移动一个位置即两个字节,故选择 A选项。29.下列叙述中正确的是_。(分数:2.50)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针
37、的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化解析:解析 栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案 C。30.为了避免在嵌套的 if-else语句中产生二义性,C 语言规定与 else子句配对是_。(分数:1.00)A.与其在同一行上的 if子句B.在其之后最近的不带 else的 if子句C.与其缩排位置相同的 if子句D.在其之前最近的不带 else的同层 if子句 解析:解析 注意 if与 else的配对关系。原则是 if总是
38、与它上面最近的、未配对的 else配对,因此答案为 D选项。31.循环队列的存储空间为 Q(1:50),初始状态为 front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为_。(分数:1.00)A.51B.50C.49D.1 解析:解析 循环队列是队列的一种顺序存储结构,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。入队运算时,队尾指针进 1(即 rear+1),然后在 rear指针指向的位置插入新元素。当 front=rear=25时可知队列空或者队列满,此后又正
39、常地插入了一个元素说明之前队列为空,所以插入操作之后队列里只有一个元素。故 D选项正确。32.关于“while(条件表达式)循环体”,以下叙述正确的是_。(分数:2.50)A.条件表达式的执行次数总是比循环体的执行次数多一次 B.循环体的执行次数总是比条件表达式的执行次数多一次C.条件表达式的执行次数与循环体的执行次数一样D.条件表达式的执行次数与循环体的执行次数无关解析:解析 循环执行最后一次条件表达式,条件不成立,循环结束,所以条件表达式的执行次数总是比循环体的执行次数多一次,正确,选择 A。33.下列二维数组初始化语句中,正确且与语句 int a3=1,2,3,4,5等价的是_。(分数:
40、2.50)A.int a2=1,2,3,4,5;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;解析:34.有以下程序: #include stdlib.h #include stelio.h main() char*p, *q; p=(char*)malloc(sizeof(char)*20); q=p; scanf(“% s% s“, p, q); printf(“% s% s/n“ p, q); 若从键盘输入:abc def 回车,则输出结果是_。(分数:1.00)A.def def B.abc defC.abc dD.d d解析:35.有以下程序(注:字符 a的 ASCII码值为 97) #includestdio.h main() char*s=“abc“ do printf(“%d“, *s%10“); +s; while(*s); 程序运行后的输出结果是_。(分数:1.00)A.abcB.789 C.7890D.979899解析:解析 程序中的*s%10 是求余运算,分别是 a、b、c 的 ASCII码值对 10进行求余运算然后输出,所以输出的答案为 789。