(1)先做加法,(a+a)=24,但是a=12不变;然后a/=24,a=0.5,因为a是整型变量,故答案为0
(2)先做括号里的(n%=2)=1;然后a%=1,答案是0
(3)一般编译系统(像TuborC)的复合赋值运算符的结合性是从右至左:先a*=a,得a=144;然后a-=a得a=0;最后a+=a,得a=0
看来我真是闲的蛋疼了。。。1.c 2d 3a 4b 没什么问题
5.应该是4+4+8=16,没有答案。
判断没问题。
函数
1.d
2要是说的是函数的声明的话就是c,定义的话明显都不对
3d 4a 5c 6a 7d 8c
最后一个不会
1、C语言的跳转语句中,对于break和continue说法正确的是_______。A、continue语句只应用于循环体中
B、break语句只应用于循环体中 (switch也用)
C、break是无条件跳转语句,continue不是 (均无条件跳转)
D、break和continue的跳转范围不够明确,容易产生问题 (goto跳转范围不够明确)
2、对于do...while语句,下列说法中正确的是______。
A、用do...while语句可实现分支程序设计(循环)
B、当循环条件不成立时,至少也要执行一次循环体
C、当循环条件不成立时,一次也不执行循环体 (至少执行一次)
D、do...while与while结构完全相同 (不同)
3、下列程序段执行时,若从键盘输入23,则输出为______。
int c,num
scanf("%d",&num)
do
{
c=num%10
printf("%d",c)
num=num/10
}while(num>0)
printf("\n")
解释:
第一次循环 23%10 = 3 输出3,23/10(整除)值为2 继续循环
第二次循环 2 %10 = 2 输出2 2/10值为0 退出循环
结果 32
4、若I,j已定义为int型,则以下for循环是( )。
for(I=0,j=0;(j!=123)&&(I<4);I++);
A、无限循环
B、循环次数不定
C、执行4次
D、执行3次
解释:
j != 123 永远为真
上面一句等价为 for(I=0;I <4;I++); 所以4次
5、对于for(表达式1;;表达式3)可以理解为________。
A、for(表达式1;0; 表达式3)
B、for(表达式1;1; 表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
解释:for(表达式1;;表达式3) 说明循环不判断循环条件永远为真所以
for(表达式1;1; 表达式3)
6、执行下列程序段后,I值是( )。
int I,x;
for(I=1,x=1;I<=20;I++)
{
if(x>=10) 语句1
break;
if(x%2==1) 语句2
{
x+=5;
continue;
}
x-=3;
}
第一次循环:语句1为假,语句2为真执行 x+ = 5 x值变成6 重新循环
第二次循环:语句1为假,语句2为假执行 x- = 3 x值变成3 重新循环
第三次循环:语句1为假,语句2为真执行 x+ = 5 x值变成8 重新循环
第四次循环:语句1为假,语句2为假执行 x- = 3 x值变成5 重新循环
第五次循环:语句1为假,语句2为真执行 x+ = 5 x值变成10 重新循环
第六次循环:语句1为真,退出循环 x值为10
7、下列程序的执行结果是( )。
#include<stdio.h>
main( )
{
int s=0, k;
for(k=7k>=0k--)
{
switch(k)
{
case 1:
case 4:
case 7:
s++;
break;
case 2:
case 3:
case 6:
break;
case 0:
case 5:
s+=2;
break;
}
}
printf("s=%d\n",s);
}
switch语句一旦匹配到case就不在匹配case了,直接按顺序执行下一个case中的代码。不难得出答案。
8、下列程序段执行结果是输出( )。
x=3;
do
{
printf("%2d",x--)
} while(!x);
x++ 和++x 前缀和后缀的问题数上讲了很多。
第一次循环输出3 x的值变成2 !2 为假退出循环
9、以下程序的执行结果是( )。
#include
#define N 2
#define M N+1
#define NUM (M+1)*M/2
main( )
{
int I=1,n=0
while(I<=NUM)
{
n++
printf("%d",n)
I++
}
printf("\n")
}
宏展开:
等价于 while(I <= (M+1)*M/2 )
等价于 while(I <= (N+1+1)*N+1/2 )
等价于 while(I <= (2+1+1)*2+1/2 )
等价于 while(I <= 8 )
10、若I,j已定义为int型,则以下程序段中内循环体"printf("sd\n")"的执行次数是__________。
#include
main( )
{
int j,I
for(I=5I>=1I--) 执行5次
for(j=0j<4j++) 执行4次
printf("sd\n")执行5×4 = 20次
}
循环中条件变量x++ 和++x 等效
结果我没验证 C语言学习推荐看 point on c