C程第五章选择控制结构上机习题
C语言程序设计 选择控制结构(5.1.2)--5.1节-5.8节
3 main()
4{
5
float data1, data2;
6
char op;
7
printf("Please enter the expression:\n");
8
scanf("%f %c%f", &data1, &op, &data2); /* %c前有一个空格 */
9
switch (op)
10
{
2 main()
3{
4
int a, b, max;
5
printf("Input a, b:");
6
scanf("%d,%d", &a, &b);
7
max = a > b ? a : b;
8
printf("max = %d\n", max);
9}
/* 用条件表达式计算两整数的最大值* /
【例题解析】相比于前两种的方法而言,本例使用条件表达式的方法编写的程序更简洁。
Invalid operator!
【例题解析】用 default 标号后的语句来处理输入非法运算符的情况,使程序不仅对用户
正确的输入数据进行运算外,还对错误的输入数据进行错误处理,从而保证了程序的健壮
性。每个 case 后的常量值必须互不相同,出现次序发生改变时,不影响程序的运行结果,
但从执行效率角度考虑,一般将发生频率高的情况放在前面。 程序第 12、15、18、28 行的
9
printf("max = %d\n", max);
10 }
程序的运行结果如下:
c语言第五章 选择结构程序设计(习题册答案)
第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果是逻辑值。
C语言没有逻辑型数据,以1代表“真”,以0代表“假”。
2、逻辑运算符!是单目运算符,其结合性是由右结合性。
3、C语言提供的三种逻辑运算符是&&、|| 、!。
其中优先级最高的为!,优先级最低的为| | 。
4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。
系统最终以0 和非0 来判定它们属于“真”或“假”。
5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。
6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x<z||y<z 。
7、条件“2<x<3或x<-10”的C语言表达式是x<-10||x>2&&x<3。
8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。
9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。
10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。
11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是0。
12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。
13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。
14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。
!(x>y)+(y!=z)||(x+y)&&(y-z)15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。
!(x=a)&&(y=b)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。
C语言程序设计习题集(有答案)
高等教育自学考试C语言程序设计(二)课程代号(05772)同步练习题班级学号姓名二O 一六年三月目录第一章C语言概述第二章基本数据类型第三章控制结构第四章运算符和表达式第五章函数第六章数组第七章字符与字符串第八章变量类别与编译预处第九章指针第十章结构体、共用体和枚举类型第十一章文件第一章C语言概述一、单项选择题1.在计算机上可以直接运行的程序是()。
A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序2. 一个C语言程序是由()A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成3. C语言不具有的特点是()A.具有结构化的控制语句B.数据类型丰富C.语法限制不太严格,程序设计自由度大D.在可移植性上,C语言比其他语言差4. 以下叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面5. 以下叙述正确的是()A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别和执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,所以具有其他语言的一切优点二、填空1. 计算机语言的发展经过了、和等阶段。
2. C语言既适合编写,也适合编写应用软件。
标准答案一、单项选择题CADDC二、填空1. 机器语言,汇编语言,高级语言2. 系统软件第二章基本数据类型一、单项选择题1.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%22.属于C语言基本数据类型的是( )A.指针型B.无符号整型C.数组型D.结构型3.C语言的长整型数值在计算机中占用的字节个数是( )A.1B.2C.3D.44.C语言中,″\x3d″在内存中占用的字节数是( )A.1B.2C.4D.55.下列关于C语言的叙述错误的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义6.下列转义字符中错误的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′7.下列标识符中,不是C语言保留字的是( )A. charB. whileC. minD. default8.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default9. 数据-324在二进制文件和文本文件中所占的字节数分别是()A.2,2B.2,4C.4,2D.4,410. 请选出可以作为C语言用户标识符的一组标识符()A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof11.下列运算符优先级最高的是()A.关系运算符B.赋值运算符C.算术运算符D.逻辑运算符12. sizeof(float)是()A.一种函数调用B.一个不合法的表示形式C.一个整型表达式D.一个浮点表达式13. 下列叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面14. 编译C语言程序时,程序中的注释部分将()A.不参加编译,也不会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.参加编译,并会出现在目标程序中15. 下列字符串常量不正确的是()A.'abc' B."12'12" C."0" D." "16. 下列4个选项中,均是合法整型常量的是()A.160 -0xffff 011B.-0xcdf 01ª0xeC.-01 986,012 0668D.-0x48a 2e5 0x17. 以下选项中不属于C语言类型的是()A.signed short int B.unsigned long intC.unsigned int D.long short18. 数值029是一个()A.八进制数B.十六进制数C.十进制数D.非法数19. 在C语言中,要求运算数必须是整型的运算符是()A./ B.++ C.!=D.%20. 当c的值不为0时,以下能将c的值赋给变量a,b 的是()A.c=b=a B.(a=c) || (b=c)C.(a=c) && (b=c) D.a=c=b二、填空1. 表示空类型的保留字是_____________。
c语言程序设计第五版习题答案解析
习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
c语言程序设计第五版习题答案解析
习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
c语言程序设计 第五章 程序控制流程——选择结构
1. 基本语法格式
if(表达式)
语句
说明:
(1) if语句的执行过程是先计算表达式的值,如果非0就执行包含在if中的语句;如果为0就不执行该语句。如下图所示:
(2) if语句中的表达式可以是任意的有值表达式,实际编程时往往使用关系表达式或将多个关系表达式用逻辑运算符连接起来的逻辑表达式。
main()
{
double a=.9*9,b=.1;
double c=0.1+0.2;
printf("c==0.3 %d\n",c==0.3);
printf("a==b %d\n",a==b);
}
【例5.4】比较两个浮点数是否相等的正确方法
#include <stdio.h>
#include <math.h>
#include <stdio.h>
main()
{
int a10,b=50,c=30;
if(a=b+c) printf("*******\n");
else printf("$$$$$$$\n");
}
【例5.14】输入两个实数,按代数值由小到大的次序输出这两个数。
#include <stdio.h>
main()
scanf("%d,%d,%d",&a,&b,&c);
max=a;/*先假定变量a的值最大*/
if(max<b) max=b;/*比较变量max值和变量b值的大小,如果b大,就将b赋给max*/
if(max<c) max=c;/*比较变量max值和变量c值的大小,如果c大,就将c赋给max*/
c语言程序设计第五版习题答案
c语言程序设计第五版习题答案Company number:【0089WT-8898YT-W8CCB-BUUT-202108】习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么它由哪几部分组成【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include <>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
《C语言程序设计教程》(第三版)李凤霞 主编——第五章习题答案
}
A)1 B)2 C)3D)4
7、下面的程序段所表示的数学函数关系是( )。
y=-1;
if(x!=0){if(x>0)y=1;}
else y=0;
A) -1 (x<0)B) 1(x<0)
y= 0 (x=0)y= -1(x=0)
1 (x>0)0(x>0)
else printf(“$$$ a=%d\n”,a);
}
9.下列程序的输出结果是__________。(a=2,b=1)
#include“stdio.h”
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;br
=1
6.下列程序段的输出是__________。(k=1)
int i=0,k=100,j=4;
if(i+j)k=(i=j)?(i=1):(i=i+j);
printf(“k=%d\n”,k);
7.下列程序段当a的值为014和0x14时的执行结果分别是________。
if(n>10){printf("%d",n%10);n=n/10;}printf("s=%ld\n",s);
printf("%d\n",n); }
}
3、有一个函数:
分别用:(1)简单if语句,(2)嵌套的if语句,(3)if…else语句,(4)switch语句编写程序,要求输入x的值,输出y的值。
C程序设计第五章课后习题答案
循环结构程序设计P115 5.1 用while计算1至100的合.#include<stdio.h>int main(){int i=1,sum=0;while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定.{sum=sum+i;i++;}printf("The sum is %d .\n",sum);return 0;}P117 5.2 用do-while来做1至100的合.#include<stdio.h>int main(){int i=1,sum=0;do// do-while可以做的事,用while都可以做到.{ //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行.sum=sum+i;i++;}while(i<=100);printf("The sum is %d .\n",sum);return 0;}P118 5.3 比较do-while与while的差别.#include<stdio.h>{int i,sum=0;printf("Please input a number :");scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0.while(i<=10){sum=sum+i;i++;}printf("The sum of 1-10 is %d .\n",sum);return 0;}#include<stdio.h>int main(){int i,sum=0;printf("Please input a number :");scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11.do{sum=sum+i;i++;}while(i<=10); //此重点在于理解二者的差别.printf("The sum of 1-10 is %d .\n",sum);return 0;}P126 5.4 break的例子.#include<stdio.h>int main(){int i,b=0,a,c;for(i=0;i<=1000;i++){printf("Please input amount :"); //循环体内套有输出语句以及跳出语句.scanf("%d",&a);b=b+a;if(b>=100)break; //break是用于跳出循环,对if无效,对while for switch 这一类.}}c=b/i;printf("conut is %d , aver is %d ",i+1,c); //注意%号后的形式,否则可能输出错误.return 0;}P127 5.5 continue的例子.#include<stdio.h>int main(){int i;for(i=1;i<20;i++){if(i%3!=0){continue; //跳过本次I,执行下一个i.}printf("%d ",i);}printf("\n");return 0;}P128 5.6 形成一个4*5的矩阵.#include<stdio.h>int main(){int i,j,a=0; //没有给初值,会出现警告: 使用了未初始化的局部变量“a”.for(i=1;i<=4;i++){for(j=1;j<=5;j++,a++) // a用来控制换行.{if(a%5==0){printf("\n");}printf("%d\t",i*j);}}printf("\n");return 0;}P131 5.7 用一个交错的式子求哌的近似值.#include<stdio.h>#include<math.h>int main() //四分之哌等于(1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11).{float s=1,n=1,m,sum=0,t;for(m=1;;m=m+2) //不确定哪项才会小于等于十的负六次方,所以不指定,无限下去.{ //不指定第二项,执行语句中应该有控制跳出的句子,否则死循环.t=(s)*(n/m); //这是第一项,s是符号,if(fabs(t)<=1e-6) //应该写在这里,题目要求这一项不累加进去.{break;}sum=sum+t; //因为累加项在这里,所以,一旦跳出就不会累加进来了.s=s*(-1); //变号一次.}printf("四分之一哌的值是%f.\n",sum);printf("一个完整哌的值是%f.\n",sum*4);return 0;}//下面这段小代码用来验证关于数值型数据类型的关系.去掉注释,可运行.//如果出现类似值为全1或是全零的话,一般可以考虑数据类型赋值或是定义错了的问题.//#include <stdio.h> //这是关于int float double三者关复杂关系的,乱啊,如果看不懂,可以通过实验自己明白来.////int main() //在C语言中,1.0认为是实数,即是double型,所以,如果你把它用float输出的话,会有警告:警告 1 warning C4305: “=”: 从“double”到“float”截断.//{// float m,a,b,c; //一旦定义了是这种类型的话,输出或是赋值的时候只能扩展不能截断,意思就是能变成double型,不能变成int型啦.而且后面的赋值会跟着它变成相应的类型.比如下面的m=1,其实得到的是m=1.0.// int d,e,f;// m=1;// a=1.0/3;// b=1/3;// c=m/3;// d=1.0;// e=1/4;// f=1.0/4;// printf("%lf(float用double的%lf来输出是可以的.)\n%f\n%f\n%f\n",m,a,b,c); //不管上面定义什么,这边写的输出类型是什么,就按相应的类型输出,有可能会出错,所以建议按定义的类型来输出.当然扩展的是不会错的,截断的是会错的,比如float可以用%lf来输出,而不能用%d来输出.// printf("%d\n%d\n%d\n",d,e,f); //但是,不相应的int型不可以用%f来输出的.因为int float就不同种类,一个是整数,一个是小数,float double同样是有小数点的!!!!// return 0;//}#include<stdio.h>int main() //这个就是著名的Fibonacci(费波那契数列问题){int f1=1,f2=1,f3,i;printf("%12d\n%12d\n",f1,f2);for(i=1;i<=38;i++) //注意,这是个基础问题,(i=1;i<=5;i++)这里其实进行了次运算,因为有f1,f2,要求有个,所以要有个.要么写<=38,要么写<39,边界问题一定要注意,不可以太随意!!!!{f3=f1+f2;printf("%12d\n",f3); //这个问题同样适用于"一对兔子一个月生一对"的问题.,f1=f2; //f1=f1+f2;此时它们各是,所以,现在的f1是.f2=f3; //f2=f2+f1;此时的f1已经是最先二者之和了.可以不用到f3.}return 0;}#include<stdio.h>#include<math.h>int main(){double num;int i;printf("Please input a number :");scanf("%lf",&num); //因为sqrt要求是浮点型,那就给它浮点型,需要时再强制转换.for(i=2;i<=sqrt(num);i++) //这边是<=号没错.{if((int)num%i==0) //如果在这期间有任何一个可以为零的话,则不是素数.{break; //当然跳出.}} //执行到这里的时候,i=5,已经变成了!!if(i<=sqrt(num)){printf("Not %d",(int)num);}else//如上所述,i=5,超出了求根的值,所以是素数.{printf("Yes %d",(int)num);}return 0;}P137 5.10 求100至200间的素数.#include<stdio.h>//不解释,HOHO>>>>...#include<math.h>int main(){double j;int i,k=0;for(j=100;j<=200;j++){for(i=2;i<=sqrt(j);i++){if((int)j%i==0){break;}}k=k+1; //这里是布局的开头.学习一下,有助逻辑.if(i<=sqrt(j)){printf("Not %d ",(int)j);if(k%5==0) //5个换一次行.{printf("\n");}}else{printf("Yes %d ",(int)j);if(k%5==0){printf("\n");}}}return 0;}P139 5.11 密码转换.#include<stdio.h>int main(){char c;c=getchar();while(c!='\n') //这也可以用数组来实现.{if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){if((c>='w'&&c<='z')||(c>='W'&&c<='Z')){c=c-22;}else{c=c+4;}printf("%c",c);c=getchar(); //套在循环里,依次得到字母,而while中判断回车为结束.}}printf("\n"); //这是布局问题.return 0;}P140 0.3 最大公约数和最小公倍数.#include<stdio.h>//最大公约数用累除法,除到无余数时的被除数是最大公约数.main (){int m, n, c, d;int gcd(); //这是最大公约数的缩写,此处调用函数,可以不写里面的实参.int lcm(); //这是最小公倍数的缩写,此处调用函数,可以不写里面的实参.printf("Please input two number :\n");scanf("%d %d",&m,&n);c=gcd(m,n); //c获取最大公约数d=lcm(m,n); //d获取最小公倍数printf("The GCD of %d and %d is : %d !\n", m, n, c);printf("The LCM of %d and %d is : %d !\n", m, n, d);return 0;}int gcd(int x, int y) //最大公约数Greatest Common Divisor{int temp;while(x%y!=0){temp=y; //y在下一轮中作为除数,即是下一轮中的X,所以先闪一边去.y=x%y; //x,y的余数作为下一轮中的Y,由x%y来取得.x=temp; //刚才temp中存储了y的值,现在拿出来作为下一轮中的X使用.}return y; //这是每一轮中的被除数,按原理来,这就是最大公约数,即累除法的原理. }int lcm(int x, int y) //最小公倍数Lowest Common Multiple{int i, temp;if(x<y) //此段代码结果是保证二者大的数在X上,小的数在Y上.即小于号降序.{ //以下为经典三行码,实现两个数的互换.temp=x;x=y;y=temp;}for(i=1; i<=y; i++) //设定一个区间,从1至大的数之间的循环.{if(!((x*i)%y)) //此式子如有余数,加上"!"号,会是假,则不返回,进行下一轮.{ //如此往复,直到取模无余数,那么小的数X乘以区间当前的I值,就是最小公倍数.return x*i;}}}P140 0.4 判断一串输入的字符.#include<stdio.h>int main(){char ch;int a=0,b=0,c=0,d=0,e=0;printf("Please input the string\n");while((ch=getchar())!='\n') //直到回车.{if(ch<='z'&&ch>='a'){a++;}else if(ch==' '){c++;}else if(ch<58&&ch>47){d++;}else if(ch<='Z'&&ch>='A'){b++;}else{e++;}}printf("大写%d 小写%d 空格%d 数字%d 其它%d\n",a,b,c,d,e);}#include<stdio.h>//不理解时可以百度或是谷歌更多的信息.int main() //想办法既快速做完,又要消化理解!!!{int temp,i,a,n,sum=0; //主逻辑,友好性暂时放松.scanf("%d %d",&a,&n); //a是数字,n是要乘的个数.temp=a; //先把第一阶的值存起来.for(i=0;i<n;i++){sum=sum+a;printf("%d + ",a); //事关布局.a=a*10+temp; //重点是每次乘,然后加上上一个数.}printf("= %d .",sum);return 0;}P140 0.6 1!+2!+3!+4!.....的值. #include<stdio.h>int main() //1!+2!+3!+4!.....{int i,j,k,sum=0,m=1;scanf("%d",&k); //比如设定为,值为.for(i=1;i<=k;i++) //第一层循环,指定到.{for(j=1;j<=i;j++) //第二层循环,指定至当前数.{m=m*j;} //到此是阶乘的结构.sum=sum+m;m=1;}printf("%d",sum); //完全不理解时,搜索并参考.return 0; //尝试自己做,第一次做出来就是自己的东西了. }#include<stdio.h>int main(){int a,b;double c,asum=0,bsum=0,csum=0;for(a=1;a<=100;a++) //三个块分别注释验证结果.{asum=asum+a;}for(b=1;b<=50;b++) //在VS运行中,注意*.cpp为C++语言.{bsum=bsum+b*b; //为了避免语言差别,请注意文件名为*.c.}for(c=1;c<=10;c++) //c作浮点运算,所以定义在double类型中.{csum=csum+1/c;}printf("%lf",asum+bsum+csum);return 0;}PP#include<stdio.h>#include<math.h>int main(){int j,k,s[6],x=100,y,sum=0;for(j=153;j<=154;j++){for(k=2;k>=0;k--){s[k]=j%(int)pow(10,k+1)/(int)pow(10,k);y=pow(s[k],3);sum+=y;printf("%d-%d--%d\t",k,s[k],j);}printf("%d\n",sum);}return 0;}P140 0.8 水仙花数.//#include <stdio.h> //一步步的发现问题.////int main() //在%和/号之间,以前pow.以后再做.//{// int i,j,k,a,b,c,sum=0; //这里逻辑对,算出来却错了.// for(i=2;i<=4;i++) //计算机在想什么,看来它的大脑难以模拟.// {// for(j=pow(10,i);j<=pow(10,i+1)-1;j++) //我不完全明白它遵守的逻辑. // {// for(k=0;k<=i;k++)// {// sum+=pow((j%pow(10,i+1)/pow(10,i)),3);// }// if(sum==j)// {// printf("%d 是水仙花数!\n",j);// }// sum=0;// }// }// return 0;//} //为什么还是无法实现?!#include<stdio.h>#include<math.h>int main(){int a,b,c,i,sum=0; //这里只计算三位数的.for(i=100;i<1000;i++){a=i/100;b=i%100/10;c=i%10;sum+=a*a*a+b*b*b+c*c*c;if(sum==i){printf("%d 是水仙花数.\n",i);}sum=0;}return 0;}P141 0.9 完数.#include<stdio.h>int main(){int i,j,r;for(i=1;i<=1000;i++) //零是个临界值,不能包括它.{r=0; //每次清零重来.类似水仙中的sum.for(j=1;j<i;j++){if(i%j==0) //除得尽即是因子.{r=r+j; //然后累加进去.}}if(r==i) //若相等.{printf("%d 是完数.\n",i);}}return 0;}P141 0.10 2/1+3/2+5/3+8/5+13/8…#include<stdio.h>int main() //10.007051{double i,a=2,b=1,c,s=0; //a是分子,b是分母.for(i=0;i<6;i++) //二十可以用户指定.{s+=a/b; //中间储值变量.c=a+b;b=a;a=c;}printf("%lf\n",s);return 0;}#include<stdio.h>int main() //从一百开始,减一半再自加两次,下降一次,反弹一次.{double sum=100,high=100,up,donw,i;for(i=1;i<10;i++) //不管指定到哪个数,都不会超过三百.{up=high/2;donw=up;high=donw; //自咬尾巴问题.sum+=donw*2;}printf("%lf %lf\n",donw,sum);return 0;}P141 0.12 猴子吃桃子.#include<stdio.h>int main() //从一百开始,减一半再自加两次,下降一次,反弹一次.{int i,sum=1;for(i=1;i<=10;i++) //临界要清楚,结果要与手算的前几个实例相匹配.{printf("倒数第%d天还剩有%d个桃子.\n",i,sum);sum=(sum+1)*2;}//printf("%d\n",sum);return 0;}#include<stdio.h>#include<conio.h>main() //只关注左半部分.右半部分无视空格.{int i,j,k,m=6; //m可指定,指定中心点位置.可任意奇偶.for(i=1;i<=m;i++) //上半部分.其实也是正三角.{for(j=1;j<=m-i;j++) //一到中心点前i个位置填充空格.printf(" ");for(k=1;k<2*i;k++) //空格后向前填充星号的个数.是奇数.一,三,五... printf("*");printf("\n");}for(i=m-1;i>0;i--) //下半部分.其实也是倒三角.{ //减一是因为行数问题.这是中心行以下的.for(j=m-1;j>=i;j--)printf(" ");for(k=1;k<2*i;k++)printf("*");printf("\n");}getch(); //用户反应后结束.但,没必要.}。
C语言章节习题集(全).docx
C语言程序设计第一、二章单项选择题1.将汇编语言编写的程序翻译成目标程序的程序是()A)解释 B)编译 C)汇编 D)目标2.不属于面向机器语言的是()A)符号语言 B)二进制语言 C)汇编语言 D)C 语言3.将高级语言编写的程序翻译成目标程序的程序是()。
A)解释 B)编译 C)汇编 D)二进制4.不属于高级语言的是()。
A)BASICB)CC)ALGOLD)符号语言5.程序段的基本结构中,不包含()。
A)函数结构 B)循环结构 C)顺序结构 D)分支结构6、C语言源程序的最小单位是()。
A、程序行B、语句C、函数D、字符7、以下说法正确的是()。
A、在C语言中,要调用的函数必须在main() 函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中, main() 函数必须放在程序的开始部分D、C语言程序总是从main() 函数开始执行8、以下对 C语言描述中正确的是()。
A、C语言源程序中可以有重名的函数B、C语言源程序中要求每行只能书写一条语句C、C语言源程序中,注释可以出现在任何位置D、最小的C源程序中没有任何内容9、对 C语言源程序执行过程描述正确的是()。
A、从main()函数开始执行,到main() 函数结束B、从程序的第一个函数开始执行,到最后一个函数结束C、从 main 函数开始执行,到源程序的最后一个函数结束D、从第一个函数开始执行,到 main 函数结束。
填空题1.能完成某个任务的、有始有终的 C语言 ___称为 C 程序。
2.用来编写程序的计算机语言称为 ____。
3.高级语言编写的程序称为 ____。
4.用C语言编写的源程序简称为“C程序”,扩展名规定为“____”。
5.C 程序经过“编译”后将获得扩展名为“OBJ”的 ____。
6.C 程序经过编译后获得的中间代码文件还需要经过____,才能成为可执行的“程序”,目标程序的扩展名规定为"EXE"。
(完整版)C语言程序设计教程第五章练习题题目
(完整版)C语言程序设计教程第五章练习题题目单选题1、关于数组的定义与初始化,下列哪一项是错误的()A.int arr[5] = {1,2,3,4,5};B.int arr[] = {1,2,3,4,5};C.int arr[5] = {1,2,3};D.int arr[5] = {1,2,3,4,5,6};2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是()A.arr[10]B.arr[6.3]C.arr(6)D.arr[0]3、在C语言中,引用数组元素时,其数组下标的数据类型允许是()A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式4、若int arr[5] = {1,2,3}; 则arr[2]的值为()A.1B.2C.3D.null5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为()A.4B.1C.2D.56、关于二维数组,下列选项能正确定义并赋初值的是()A.int n = 5,b[n][n];B.int a[1][2] = {{1},{3}};C.int c[2][] = {{1,2},{3,4}};D.int a[3][2] = {{1,2},{3,4}};7、阅读下列程序段:char s[18] = "a book!";printf("%.4s\n", s);其输出结果为()A.a book!B.a bookC.a boD.a8、阅读下列程序:int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } };printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);正确的输出结果为()A.0650B.1470C.5430D.输出值不定9、阅读下面程序:int i;int x[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; for (i = 0; i<4; i++)printf("%3d", x[i][3 - i]);下列选项中哪一项是正确的输出结果()A.1 5 9 13B.1 6 11 16C.4 7 10 13D.4 8 12 1610、下列描述中不正确的是()。
C语言章节习题集(全)
C语言程序设计第一、二章单项选择题1.将汇编语言编写的程序翻译成目标程序的程序是()A)解释B)编译C)汇编D)目标2.不属于面向机器语言的是()A)符号语言B)二进制语言C)3.A)解释B)编译C)汇编D)二进制4.不属于高级语言的是()。
5.A)D)分支结构6、CA7A、在main()函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中,main()函数必须放在程序的开始部分D、C语言程序总是从main()函数开始执行8、以下对C语言描述中正确的是()。
A、C语言源程序中可以有重名的函数B、C语言源程序中要求每行只能书写一条语句C、C语言源程序中,注释可以出现在任何位置D、最小的C源程序中没有任何内容9、对C语言源程序执行过程描述正确的是()。
A、从main()函数开始执行,到main()函数结束B、从程序的第一个函数开始执行,到最后一个函数结束C、从mainD、填空题1.2.3.4.用C C程序”,扩展名规定为“____”。
5.C OBJ”的____。
6.C____,才能"EXE"。
7、89.选择结构是____选择某个操作来执行的—种程序结构。
10.选择结构可以分为____、双分支结构和多分支结构。
11.循环结构又可分为当型循环、____及次数型循环。
第三章数据类型、运算符与表达式单项选择题1.以下程序的输出结果是。
main(){inta=10,b=10;printf("%d,%d",a--,++b);}A)10,11B)10,10 C)9,9D)9,112.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A)'a'&&'b'B)a<=b3.设ch是char型变量,其值为4.main();}A)003B)012 C)103D)1125.字符串“\t\n\\\045\’”的长度为。
海大 C程(曲老师)第五章作业题目与答案
第5单元循环作业2预警:在做下面作业时若算法中循环条件不正确可能会导致“死循环”,此时请按下“ctrl+break”强行终止。
一、图形类编程1.输出一个m行n列的平行四边形状(即输出m行,每行中有n个星号)。
如下图为m=6 n=10的图形。
m,n由运行时用户输入。
1.c2. 用星号输出一个钻石形状。
运行程序输入n值,则钻石型的上三角就为n行,下三角为n-1行。
如下图为n=6的图形。
2.c-------------------------------------------------------------------------------------------------------------二、数学求解题目3. 利用公式PI/4=1-1/3+1/5-1/7+... 计算PI的近似值。
(1)给定项数计算。
例如计算到分母为10000的那项为止,10000即是程序运行时用户输入的项。
3_1.c(2)给定精度计算。
例如计算到累加项(±)1/n的绝对值小于等于10-6, 0.000001即是程序运行时用户输入的精度。
3_2.c4. 编写程序求输入的两个任意正整数的最大公约数和最小公倍数。
4.c提示:可用“辗转相除法”求两个自然数m 与 n的最大公约数与最小公倍数。
辗转相除法求最大公约数的算法为:(1)对于已知两个数m 与 n,设m > n,否则m 与 n互换(2)m 除以 n得余数r(3)若r=0,则n为求得的最大公约数,算法结束,否则执行(4)(4)m←n, n←r , ,重复执行(2)求得最大公约数后,最小公倍数就等于原两个数相乘,而后除以最大公约数即为最小公倍数。
请根据上述算法求解任意两个整数的最大公约数和最小公倍数。
5. 斐波纳契数列。
5.c有一种数列:0,1,1,2,3,5,8,13,21,34,。
它以0和1开头,接下来每个数是其前两个数之和。
数学家斐波纳契(Fibonacci)首先发现并研究这种数列的性质与应用,该数列因此得名。
C语言课后习题答案
《C语言程序设计》复习题第1章C语言程序设计概述一、选择题1.下列关于计算机语言的叙述中,正确的是___C____。
A.在计算机语言中,只有机器语言属于低级语言B.高级语言的源程序可以被计算机直接执行C.C语言属于高级语言D.机器语言是与所有机器无关的语言2.源程序TEST.C经编译产生的目标文件和连接后产生的可执行文件是___B____。
A.TEST.BAK和TEST.OBJ B.TEST.OBJ和TEST.EXEC.TEST.EXE 和TEST.C D.TEST.BAK和TEST.EXE3.一个C程序的执行是从___A____。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束4.以下叙述正确的是___C____。
A.在C程序中,main函数必须位于程序的最前面B.程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误5.以下叙述不正确的是___C____。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.在C程序中,注释说明只能位于一条语句的后面D.C程序的基本组成单位是函数6.一个C语言程序是由___B____。
A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成7.关于C语言程序书写规则说法中正确的是___D____。
A.程序语句必须占一行B.不区分大小写C.每行必须有行号D.每条语句用分号结束8.下面关于算法的说法,错误的是___B____。
A.算法必须有输出,但不一定有输入B.算法必须在计算机上用某种语言实现C.算法必须在有限步执行后能结束D.算法的每一步骤必须有确切的定义9.结构化程序设计规定的3种基本控制结构是___D____。
c语言程序设计第五版习题答案解析
Void Main()
{
int a=6;b=8;
int c;
c=a*b;
printf(‘%d’,c);
}
【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该
用逗号;(3)打印语句的格式应该用双引号括起来。
正确的程序如下:
#include <stdio.h>
x2=1(4%5等于4,3+4等于7,7-6等于1)
x3=0(-3*4等于-12,-12%-6等于0)
【解答】x1=11
x2=1
x3=0
5.以下程序的执行结果是。
#include <stdio.h>
main()
{
printf("%d\n",NULL);
printf("%d,%c\n",49,49);
#include <stdio.h>
main()
{
char a=’G’,b=’o’,c=’o’,d=’d’;
a=a+32;
b=b-6;
c=c+3;
d=d+8;
printf("%c%c%c%c\n",a,b,c,d);
}
【分析与提示】从ASCII代码表可以看出,字符“G”、“o”、“o”、“d”的ASCII代码值
【解答】
(1)“Hello!”字符串长度为6,占用内存字节数为7。
(2)“ABC?”字符串长度为9,占用内存字节数为10。因为其中\n\\
\064\?各自只占一个字符的位置。
(3)“765+123=?”该字符串不是合法的,因为\765表示的值太大,超出合
第五章选择控制结构上机习题
第五章选择控制结构问题与思考1.若执行下面的程序时从键盘上输入5,则输出结果是______main(){int x;scanf("%d",&x);if(x++>5)printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6C) 5 D) 42.已知a,b,m,n,c,d变量的定义如下,则执行完下列表达式后m,n的值为______ int a=3,b=4,m=0,n=0,c=3,d=4;(m=a<b)||(n=c<d);A) m=1 n=1 B) m=1 n=0C) m=0 n=0 D) m=0 n=13.表达式(!7<5+1>0+4<5)的值是______(!—算术—关系--&&||--赋值)A) 3 B) 2 C) 1D) 04.假设在程序中,x,y,z均被定义成整型,且已赋大于1的值,则下列能正确表示1/(xyz)的表达式是______A) 1/x*y*z B)1/(x*y*z)C) 1/x/y/(float)z D) 1.0/x/y/z 5.已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为______ char a='a';a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A) b,c B) a--运算不合法,故有语法错C) 98,cD) 格式描述和输出项不匹配,输出无定值6.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与_____配对。
A) 缩排位置相同的if B) 其之前最近的ifC) 其之后最近的if D) 同一行上的if7.若给定条件表达式(M)?(a++): (a--),则其中表达式M______A) 和(M==0)等价B) 和(M==1)等价C) 和(M!=0)等价D) 和(M!=1)等价8.若有说明语句char s='\092'; 则该语句______A) 使s的值包含1个字符B) 说明不合法,s的值不确定C) 使s的值包含4个字符D) 使s的值包含3个字符9.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为______A) 4 B) 3 C) 2 D) 110.有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是______A) a+=a-=(b=4)*(a=3)B) x%(-3) C)a=a*3=2 D) y=float(i) 11.有以下变量定义:int k=7,x=12;则下列值为3的表达式是______A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)-(k%=5)12.设 int a=3 ; 则表达式 a<1&& - - a>1 的运算结果和a的值分别是______ A) 0和2 B) 0和3 C) 1和2 D) 1和313.假定所有变量均已正确定义,下列程序段运行后x的值是______ok1=1;ok2=2;ok3=3;x=15;if(!ok1) x--;else if(ok2) if(ok3) x=3;else x=4;A) 14 B) 4 C) 15 D) 314.下面程序的输出结果是______main(){int x=1,a=0,b=0;switch(x){case 0 :b++;case 1 :a++;case 2 :a++;b++;}printf(“a=%d,b=%d\n”,a,b);}A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=215. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是_____main( ){ int x;scanf("%d",&x);if(x++>5)printf("%d",x);else printf("%d\n",x--);}A) 7和5 B) 6和3 C) 7和4 D) 6和416.有定义:int a=1,b=3,c=5,d=4,x;则执行完下面一段程序后x的值是 ______。
c 程序控制结构习题答案
cout<<endl;ห้องสมุดไป่ตู้
}
}
5.7假定邮寄包裹的计费标准如下表,输入包裹重量以及邮寄距离,计算出邮资。
重量(克)
邮资(元/件)
15
30
45
60
75及以上
5
9
12
14(每满1000公里加收1元)
15(每满1000公里加收1元)
*重量在档次之间按高档靠
#include<iostream>
while(n!=0){
s+=n;
if(n>0)plu++;
else neg++;
cin>>n;
};
cout<<"平均值= "<<s/(neg+plu)<<endl;
cout<<"正数= "<<plu<<"个"<<endl;
cout<<"负数= "<<neg<<"个"<<endl;
return 0;
C.必须是关系表达式或算术表达式
D.可以是任意表达式
3.2与for(表达式1;表达式2;表达式3)功能相同的语句为(A)。
A.表达式1;B.表达式1;
while(表达式2){while(表达式2){
循环体;表达式3;
表达式3;}循环体;}
C.表达式1;D.do{
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章选择控制结构
问题与思考
1.若执行下面的程序时从键盘上输入5,则输出结果是___B___
main()
{int x;
scanf("%d",&x);
if(x++>5)printf("%d\n",x);
else printf("%d\n",x--);
}
A) 7 B) 6 C) 5 D) 4
2.已知a,b,m,n,c,d变量的定义如下,则执行完下列表达式后m,n的值为____b__ int a=3,b=4,m=0,n=0,c=3,d=4;
(m=a<b)||(n=c<d);
A) m=1 n=1 B) m=1 n=0 C) m=0 n=0 D) m=0 n=1
3.表达式(!7<5+1>0+4<5)的值是___C___
A) 3 B) 2 C) 1 D) 0
4.假设在程序中,x,y,z均被定义成整型,且已赋大于1的值,则下列能正确表示1/(xyz)的表达式是____D__
A) 1/x*y*z B)1/(x*y*z)C) 1/x/y/(float)z D) 1.0/x/y/z 5.已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为___C___ char a='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A) b,c B) a--运算不合法,故有语法错C) 98,c
D) 格式描述和输出项不匹配,输出无定值
6.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与__B___配对。
A) 缩排位置相同的if B) 其之前最近的if
C) 其之后最近的if D) 同一行上的if
7.若给定条件表达式(M)?(a++): (a--),则其中表达式M___C___
A) 和(M==0)等价B) 和(M==1)等价
C) 和(M!=0)等价D) 和(M!=1)等价
8.若有说明语句char s='\092'; 则该语句___B___
A) 使s的值包含1个字符B) 说明不合法,s的值不确定
C) 使s的值包含4个字符D) 使s的值包含3个字符
9.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为___D___
A) 4 B) 3 C) 2 D) 1
10.有如下的变量定义:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是___A___
A) a+=a-=(b=4)*(a=3)B) x%(-3) C)a=a*3=2 D) y=float(i) 11.有以下变量定义:
int k=7,x=12;
则下列值为3的表达式是__d____
A) x%=(k%=5) B) x%=(k-k%5)
C) x%=k-k%5 D) (x%=k)-(k%=5)
12.设 int a=3 ; 则表达式 a<1&& - - a>1 的运算结果和a的值分别是__b____ A) 0和2 B) 0和3 C) 1和2 D) 1和3
13.假定所有变量均已正确定义,下列程序段运行后x的值是__d____ ok1=1;ok2=2;ok3=3;x=15;
if(!ok1) x--;
else if(ok2) if(ok3) x=3;
else x=4;
A) 14 B) 4 C) 15 D) 3
14.下面程序的输出结果是__a____
main()
{int x=1,a=0,b=0;
switch(x)
{case 0 :b++;
case 1 :a++;
case 2 :a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
15.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是__a___
main( )
{ int x;
scanf("%d",&x);
if(x++>5)printf("%d",x);
else printf("%d\n",x--);
}
A) 7和5 B) 6和3 C) 7和4 D) 6和4
16.有定义:int a=1,b=3,c=5,d=4,x;则执行完下面一段程序后x的值是 _b_____。
if(a<b)
if(c<d) x=1;
else
if(a<c)
if( b<d) x=2;
else x=3;
else x=6;
else x=7;
A) 1 B) 2 C) 3 D) 6
17.能正确表示a和b同时为正或同时为负的表达式是______d__。
A) (a>=0||b>=0)&&(a<0||b<0)B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0)D) a*b>0
18.当a=3,b=2,c=1时,表达式f=a>b>c的值是 ___0___ 。
19.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是____c____。
A) c=b=a B) (a=c)||(b=c) C) (a=c)&&(b=c) D) a=c=b 20.下面程序程序后输出结果是___b__。
main()
{int a=3,b=2,c=1,t;
if(a>b>c) t=1;
else if(a<b<c) t=0;
else t=-1;
printf("%d\n",t);
}
A) 1 B) 0 C) -1 D) 不确定的数
21.以下程序运行后的输出结果是________。
main()
{int a=3,b=4,c=5,t=99;
if(a<b<c) t=a;a=c;c=t;
if(a>c,c>b) t=b;b=a;a=t;
printf("%d %d %d\n",a,b,c);
}
22.以下程序运行后的输出结果是__________。
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("%d %d\n",a,b);
}
23.有以下程序
main( )
{ int i=1,j=1,k=2;
if((j++||k++)&&i++) printf( "%d,%d,%d\n",i,j,k ); }
执行后输出结果是___c__。
A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3 24.以下程序执行后输出结果是___a__。
main( )
{ int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
A) 2 B) 3 C) 43 D) 44
25.以下程序执行后输的结果是________ 。
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x);
}。