C语言程序解析?

C语言程序解析?,第1张

1.

#include "stdio.h"

main()

{

printf("\n\n%d,%d\n",20/7,-20/7)

printf("%f,%f\n",20.0/7,-20.0/7)

}

运行截图

分析:

\n 表示换行

%d 表示以十进制形式输出带符号整数(正数不输出符号)

%f 表示以小数形式输出单、双精度实数

2.

#include "stdio.h"

main()

{

int x

char y

x=65

y='B'

printf("x=%c\n",x)

printf("y=%c\n",y)

printf("y=%d\n",y)

}

运行截图

分析:

%c 表示输罩薯漏枝出单个字符

3.

#include "stdio.h"物搜者

main()

{

int i=7,j=7,p,q

p=(i++)+(i++)+(i++)

q=(++j)+(++j)+(++j)

printf("%d,%d,%d,%d",p,q,i,j)

}

运行截图

分析:

i++ 表示先使用i,然后i的值加1

++i 表示先把i的值加1,再使用i

同学,第一个答案确是是"y=0"原因如下,首先我们要说自增和自减运算符“++”和“--”,如果该运算符的位置在 *** 作数之前,则 *** 作数在进行任何计算之前就已经发生改变,如果运算符在 *** 作数后面,则 *** 作数在完成表达式的计算之后才发生改变,例如int

a=5,b=8,cc=a++*b

//"++"在 *** 作数a后面,先计算a*b=40,赋值给c,然后a++,a值为6,c的值为40c=++a*b

//"++"在 *** 作数a前面,先a++,a=7,再a*b,c=56然后我们来看你给的程序,因为是y--,"--"在y后面,则先判断while的条件,此时银纤y=1,即true,为真,然后y--,y=0,然后输出y:y=0;然后再判断while,因为此时y=0,为假,跳出循环,结束。要注意顺序,先判断whlie,然后y--,若while条件为真,则执行while的语句。

若改成"--y"的话,则先计算"--y",y=0,再判断while的条件,此时y=0,即false,为假,直接跳出循环,即什么都不做,结束。

第二题,你要注意的是while的条件不是"k==1"而是"锋晌仿k=1",不是一个判断语句,而是一个赋值语句。即while的条谨高件永远都是“k被赋值为1,然后k作为条件”进行判断,此时k是1,即true,为真会永远进行下去。

#include<stdio.h>

bool

visited[1005]

=

{

0

}//定义一个有1006个元素的bool数组变量

int

prime[1000]//定义一个有1001个元素高扮的int数组变量

int

isPrime(int

n){//定义一个判断质数的函数,其中的n是参数

if(n

<

2)

return

0//如果n<2,该数不是质数

int

i//定义一个变量i

for

(i

=

2

i*i

<=

n

i++)

if

(n

%

i

==

0)

return

0//判断是否是质数

return

1

}

int

main(){

int

n

scanf("%d",

&n)//输入n

while

(n--){//当n自减1,这时若n不是0时,执行以下循环

int

m//定义一个变量m(在循环过程中是重置变量m)

scanf("%d",

&m)//输出m

if

(m

==

0)//如果m=0

printf("6\n")//输出戚晌灶6并且换行

else{//如果m不等于0

for

(int

i

=

m

i++)//进入循环定义i=m,每一次循环i自增1

if

(isPrime(i)){//如果i是质数

printf("%d\n",

i)//输出i

break//退出谨枝循环

}

}

}

return

0//程序结束

}

总的来说,这个程序先输入一个数n,然后输入n个数,每输入一次,就输出一个比它大的最小质数。

不懂可以追问我哦,谢谢。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12450749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存