跪求一道C语言的选择题求详解c语言一道选择题求详解

2021-03-07 14:59:34 字数 3328 阅读 2525

1楼:想把你忘了

if(语句1) 语句2;

语句=true 执行 语句2

a. k%2 当他不等于0 时 为true 为0 时为falseb. k%2=1 赋值语句 为true (好比陈述句,不存在疑问c.

(k%2)!=1 k对2求余不等于1 为trued. !

k%2==1 注意优先级先做!k 在% !k对2求鱼等于1 为 true

这题 怎么说了 很模糊 应该选d 不过很勉强

2楼:原来的我

我觉得你的选项有错吧 你再检查一下选项 下面有这几种情况k%2无非只有两个结果0和1

(a)k%2

放在if语句中表示结果是1 为真 结果是0 为假(b)k%2==1(b选项应该这样写吧)

放在if语句中表示只要k%2的结果为1就是返回真,其他就是假 所以这个是跟a一样的

(c)(k%2)!=0(c选项可能应该这样写)放在if语句中表示k%2的结果只要不等于0就返回真 否则为假这跟结果等于1是真是一样的 所以abc相同(d)的表达式的意思是将k%2的结果取反 如果取反后的记过等于1就是真否则就是假 换种说法就是如果k%2结果为0就是真 否则就是假 那这个选项跟其他三个选项是不一样的 所以选d

3楼:

b 选项是否是 k%2 == 1,如果是 k%2 = 1, 那 if(k%2 = 1)无论如何都为真了……

那么,我猜是你打错了。

只提一点,!的优先级比%高。

4楼:匿名用户

这样的,前三个都是计算式,比如k % 2 = 1,是计算出k的值,c答案也一样,a答案是k % 2如果有一个k值,那么这个if语句也成立。而最后一个是做比较,是判断==号左边的值是否等于右边的,是,则if语句满足,否则就不满足

如果满意,请采纳

5楼:匿名用户

b肯定不行,这是赋值不是判断

a和c的用意是一样的

d中,先对k取反(!的优先级高),再模2进行判断

6楼:王海洺

a选项...就这样?

c语言一道选择题求详解

7楼:匿名用户

这个程序就是求50~60之间的素数并输出。

一共找到两个素数53、59,因此输出为5359选a

c语言选择题,求详解

8楼:匿名用户

答案:a.123

详解抄:首先题目定义了

一个bai字符数组s,其中存du放了字符串"123",随后定义了字符型指zhi针p,并且dao使p指向字符串s.

之后,题目开始输出结果,注意输出方式*p++,这是本题关键所在,根据运算符结合顺序,先输出*p,也就是字符串第一个字符"1",之后执行p++,指针后移指向字符"2",之后的两次输出同理。

希望能帮助到你。

9楼:金城杞人

答案就是a,说b的上个运行结果截图啊

后自增是先使用再增加。

p开始指向字符数组第一项 s[0]。

修改一下,编译器不同结果不同。

10楼:现实梦幻者

答案源是b

原因就是,printf的执

bai行顺序,因为它的执行顺序是从右向左,再du从左往右输zhi出

并且后dao置++,会重新开起一块内存来存放原值,所以前面的值直接读取存放的,如果不是指针,是数值需要注意

当然这里是指针,每个都有它的地址,直接是把结果保存了所以3 2 1

11楼:

数组指针没有任何变化,输出都是111。。

因为指针p是指向了第一个字符1,而%c是读入并打印出来一回个字符。。而printf中*p意思是答s第一个值,读入到打印函数,打印到屏幕完了然后把这个读入值+1,而数组指针值还是没有变的,总是指在1的位置。

可以用下面更改程序验证:把其中一个变成前++#include

main()

++*p,读入数值+1·,最后结果是2,1,1。。说明*p只是第一个字符值,而原数组指针是没有变化的。

12楼:

应该选b。

程序结果:

解析:*p 表示p是一个储存地址的变量

在这个程序中专当运行完p=a;时,*p为属"1",*p++也为"1"

*p++和*(p++)相同

printf的运行顺序是从左到右

*p++是把*p存储的地址+1,而p的存储地址是数组的第一个,所以相当于把p的指针往后移一位,也就是说把p指向的数组的位置往后移一位。所以就是321

13楼:三天打鱼

321 选b

p指向字符串s首地址

那个调用函数是从右到左执行的 所以先执行最右边的*p++ 得到1函数的参数压栈是从右向左执行的……

一个简单的c语言选择题求详解

14楼:

全是错误的。

a——虽然书写格式没有错,但既然有空的,就得初始化,以使编译器知道应该是几。

b——只可以靠近数组名的那一个空着,就是说书写格式都错了。

c——道理同b。

d——除了靠近数组名的可以空着,其他的都不能空着。

c语言一道选择题求详解!!

15楼:_指间的忧伤丶

x,y定义的是double型的,也就是双精度的,所以你输入的时候格式也要是双精度的,就是%lf了,%f对应单精度的float型,用scanf输入时,里面变量取地址。

16楼:匿名用户

b、c选项不正确,因为scanf函数的参数要是地址,这样才能正确赋值给变量,d选项的控制字符格式不对,应为

scanf("%lf%le",&x,&y);

c语言选择题一个,求详解

17楼:半世迷离的沉浮

a 是对的,换行会看的更加清晰。

#define size 10 //把size的宏定义为10

char str1[size]的意思

就是char str1[10]

char str2[size+2]的意思就是char str2[12]

b,char str;里面应该要放入具体的容量,比如 char str[10];

c,int num['10']是错误的,int num[10]是对的。

d是错误的,c语言不允许这种写法,不允许定义的变量出现在数组里,因为变量值的改变,就会导致数组的破坏,这样会破坏程序的健壮性。

C语言选择题,求详解,C语言,题目中的选择题,求详细解析

1楼 匿名用户 正确答案是a a p是字符串指针,用法没有问题 b a是字符数组,不能作为左值被赋值,语法错误 c和d p a是字符类型,不是指针类型,却被赋了一个指针类型的值,肯定得不到预期的结果 2楼 拥抱 选项a是正确的。 解释如下 p是字符串指针,它是一个变量,可以被赋值,指向新的地址。 a...

c语言一道题跪求大神,C语言一道题,跪求大神!

1楼 书气纵横 void movenode snode head int m snode last head while last next null last last next c语言编程,一道题不会,求大神!!! 2楼 狂在骨子里范情 include stdio h include math ...

C语言求详解,C语言求详解 50

1楼 匿名用户 最主要的一个拷贝函数memmove 原型 void memmove void dest const void src size t count 头文件 功能 由src所指内存区域复制count个字节到dest所指内存区域。 相关函数 memset memcpy c语言,求详解,谢谢!...