以下程序运行后的输出结果是( )。A.1 2 3B.2 3 4C.2 2 3D.2 3 3

题目

以下程序运行后的输出结果是( )。

A.1 2 3

B.2 3 4

C.2 2 3

D.2 3 3

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序的输出结果是( )。

main()

{int i=1 j=2,k=3;

if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);

}

A.1 2 3

B.2 3 4

C.2 2 3

D.2 3 3


正确答案:D
解析:本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“‖”。自增运算符“++”,出现在变量之前(如题中的++n),表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后(如题中的n++),表示先使用变量的值进行运算,再使变量的值加1。当逻辑与运算符“&&”两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“‖”左边的运算对象为真时,其值就为真,不用计算其右边的运算对象的值。所以根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时i的值等于3,所以表达式+i==3成立,即表达式的值为1;由于1与任何数都为进行或(‖)运算,结果都为1,因此k=3;最后计算“&&”之前的表达式,i++是先运算后自加,因此运算时i为1,所以i++==1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、i、k的值分别是2,3,3。

第2题:

有以下程序: #include<stdio.h> #include<stdlib.h> main { int*a,*b,*C; a=b=c=(int*)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b: printf("%d,%d,%d\n",*a,*b,*c); } 程序运行后的输出结果是( )。

A.3,3,3

B.2,2,3

C.1,2,3

D.1,1,3


正确答案:A
本题中,首先创建一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同.的变量。分别给a、b、c所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量

第3题:

有以下程序: main() { int i=1,j=2,k=3; if(i++==l&&(++j==3||k++==3)) printf("%d%d%d\n",i,j,k): } 程序运行后的输出结果是( )。

A.1 2 3

B.2 3 4

C.2 2 3

D.2 3 3


正确答案:D
解析:本题的考点是关于C语言的逻辑表达式的计算规则。对于逻辑表达式“i++==1&&(++j==3||k++==3)”,首先判断“i++==1”,由于i初值为1,“i++==1”为真,同时i加1值为2。由于第一项为真,对于“&&”运算符,结果取决于后一项“(++j==3||k++==3)”。而逻辑表达式“(++j==3||k++==3)”计算时,首先判断“++j==3”,由于j初值为2,++j后j值为3,“++j==3”为真,对于“||”运算符不需要判断后一项表达式的结果就可以断定此逻辑表达式结果为真,因此“k++==3”并没有进行判断,k++也未执行,k仍是初值3,输出结果应该是2 3 3。正确选项是D。

第4题:

有以下程序

程序运行后的输出结果是( )。

A.3,3,3

B.2,2,3

C.1,2,3

D.1,1,3


正确答案:A
malloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(ints)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,h,’c都指向刚申请的内存空间。因此只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c三个指针变量均指向该空间,所以打印该空间内的数值均为3,选项A)正确。

第5题:

有以下程序:程序运行后的输出结果是( )。

A.3

B.6

C.9

D.2


正确答案:B
本题的考查点是指向数组元素的指针变量的定义和赋值。所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。P=&a[0][O]是把该数组的第一个元素的地址赋给指针变量P,而且此时指针变量P也是int型。a[1][2]刚好是数组中的第6个元素,此时也就是P所指的地址,所以输出结果是6。

第6题:

有以下程序:程序运行后的输出结果是( ).

A.1,3

B.2,3

C.1,4

D.1,2


正确答案:A
在f(int*P,int*q)函数中,执行P=P+1将P所对应的地址加1,而*q=*q+1是将q所指向的n的地址所对应的值加1,即m的地址所对应的值不变。而n的值为3。

第7题:

有以下程序: 程序运行后的输出结果是( )。 A.3,3,3B.2,2,3C.1,2,3

有以下程序:程序运行后的输出结果是( )。

A.3,3,3

B.2,2,3

C.1,2,3

D.1,l,3


正确答案:A
根据程序可以分析出系统只分配了一个整型数据的存储空间,把这个空间的地址分别赋给了指针型变量a,b和c。程序利用指针a把数据1写入了该空间,然后利用指针b,把数据2写入该空间,所以原来的1就被覆盖掉了,最后用指针c把数据3写入该空间把数据2覆盖掉了,此空间中最后留有的数据是3。因为3个指针都指向该空间,所以输出数据均为3。

第8题:

有以下程序 main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是______。

A.2,3,3

B.2,3,2

C.2,3,1

D.2,2,1


正确答案:C
解析:x++:表示在使用x之后,使x的值加1;y++:表示在使用y之后,使y的值加1;++y:表示在使用y之前,使 y的值加1。此题中执行z=x++,是将x的值先赋给z,所以z=1,接下来x自行加1,其结果为2:执行y++后,y=2,执行++后,y=3;故答案选C。

第9题:

有以下程序

程序运行后的输出结果是( )。

A.1,3

B.2,3

C.1,4

D.1.2


正确答案:A
f函数功能使第二个指针指向的元素增1,第一个指针指向的元素不变,所以答案选择A)。

第10题:

有以下程序

程序运行后的输出结果是( )

A.1,3,3

B.1,3.2

C.1,2,3

D.3,2,1.


正确答案:A
执行(a==1&&b++==2)和b!=2然后输出a、b、CSY别为l、3、3,答案为A)。

更多相关问题