C语言题目求解

for(a=1,b=1;b<=20;b++)
{
if(a>10)
break;
if(a%2==1)
{
a+=5;
continue;
}
a-=3;
}
(有步骤最好)

for(a=1,b=1;b<=20;b++) 循环语句,
初始 a=1,b=1;步长 b=b+1; b 达到 20 结束循环。
第一次进入: a=1,b=1;满足 (a%2==1) 条件,a+=5; a得6;continue; 回到循环开始处。
第二次进入:a=6 b=2; 不满足if(a>10),不满足 (a%2==1),执行 a-=3; a得3。
第3次进入:a=3 b=3,满足 (a%2==1) 条件,a+=5; a得8;continue; 回到开始处
第4次进入:a=8 b=4,不满足if(a>10),不满足 (a%2==1),执行 a-=3; a得5
第5次进入:a=5 b=5,满足 (a%2==1) 条件,a+=5; a得10;continue;
第6次进入:a=10 b=6,不满足if(a>10),不满足 (a%2==1),执行 a-=3; a得7
第7次进入:a=7 b=7,不满足if(a>10),满足 (a%2==1) 条件,a+=5; a得12;continue;
第8次进入:a=12 b=8, 满足if(a>10),执行 break; 退出循环。结束了。
结果 a=12 b=8。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-10
第一次,执行a+=5,此时a=6
第二次,执行a-=3,此时a=3
第三次,执行a+=5,此时a=8
第四次,执行a-=3,此时a=5
第五次,执行a+=5,此时a=10
第六次,执行a-=3,此时a=7
第七次,执行a+=5,此时a=12
第八次,执行break,跳出for循环,此时a=12,b=8

另,continue表示结束此次for循环,继续下一次for循环。

= =才发现没分,真郁、、、虽然要分也没多大用,可楼主不诚心啊。本回答被提问者采纳
第2个回答  2011-03-10
第一次循环,a=6<10继续循环
第二次循环,a=11>10循环终止。
再执行 a-=3 得a=8
第3个回答  2011-03-11
i++-3”的值是_____0________。

32、设 int a=3,b=5,c=7;,则表达式a>c||c>b!=0&&c==b+a 的值为_0__。

优先级问题 先算a>c 为0 然后 c>b为1 之后c==b+a为0 后c>b!=0即1!=0为1
之后c>b!=0&&c==b+a 即1&&0为0,之后(a>c)||(c>b!=0&&c==b+a)为0

33、将十进制数35转换成二进制数是___100011___________。

34、变量定义如下:float x; int y;则输入语句应写作___scanf("%f",&x)___ _____scanf("%d",&y)___。

35、释放由p所指向的内存区的语句为__free p;_。

36、定义a为长度为10的字符串、同时为字符串赋初值"continue"的语句为___ ____char a[10]="continue"_;______。

37、ch是字符变量,判断ch为大写英文字母的逻辑表达式为____ch_>='A'&&ch<='Z'_________。

38、定义a为共有10个元素的静态存储int类型数组的语句为___。
标准答案:static int a[10]

39、定义一个带参数的宏,其功能为:若变量中的字符为大写字母则转换成小写字母,则对应语句为_____________。

40、假设定义数组:float score[10]; 并且其首地址为2000,则元素score[5]的地址为____2000+sizeof(float)*5___________。
标准答案:一般float为64位,所以答案为2320

四、程序分析题(本大题共3小题,每小题6分,共18分)

41、补全下列程序______________________。
下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,程序结束运行。
#include <stdio.h>
main()
{
int i, n;
for (i=1; i<=5; i++)
{
printf("Please enter n:");
scanf(__"%d",&n__________);
if (n <= 0)________;
printf("n = %d\n", n);//这个地方应该是 吧
}
printf("Program is over!\n");
}

42、补全下列程序______________________。
下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的ASCII码值之差作为函数值返回。
int MyStrcmp(char s[], char t[])
{
int i;
for (i=0;_____s[i]==t[i]||t[i]!=‘\0’______ ; i++)
{
if (s[i] == ‘\0’) return ___s[i]-t[i]; ________ ;
}
return (s[i]-t[i]);
}
标准答案:略

43、下列程序的运行结果是______________________。
#include<stdio.h>
main()
{
int i=16,j,x=6;
j=i+++1;
x*=i=j;
printf(“%d,%d\n”,j,x);
}
标准答案:17,102

五、编程题(本大题共1小题,每小题12分,共12分)

44、编程:统计在所输入的N个实数中有多少个正数、多少个负数、多少个零。
#include<stdio.h>
main()
{
int zero=0,bigzero=0,smallzero=0;
double num[100];
int N;
printf(“请输入整数的个数\n”);
scanf("%d",&N);
for(int i=0;i<n;i++)
scanf("%f",&num[i]);
for(int j=0;j<N;j++)
if(num[j]>0) bigzero++;
else if(num[j]<0) smallzero++;
else zero++;

printf(“%d个数中大于0的数有:%d\n”,N,bigzero);
printf(“%d个数中小于0的数有:%d\n”,smallzero);
printf(“%d个数中等于0的数有:%d\n”,zero);
}

你的题可真够多的。我做了很久才完成!!!!!!!!!!
相似回答