资源描述
习题一
一、选择题
1.C语言是一种( C )。
A. 低级语言 B. 汇编语言 C. 高级语言 D. 机器语言
2.以下不是C语言的特点的是( D )。
A.语言简洁紧凑 B.可以直接对硬件进行操作
C.数据类型丰富 D.是面向对象的程序设计语言
3.一个C程序的执行是从( A )。
A. 本程序的main函数开始,到main函数结束
B. 本函数的第一个数开始,到本程序文件的最后一个函数结束
C. 本程序的main函数开始,到本程序文件的最后一个函数结束
D. 本函数的第一个数开始,到本程序main函数结束
4.以下叙述正确的是( C )。
A. 在C程序中,main函数必须位于程序的最前面
B.C程序的每行只能写一条语句
C. C语言的本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误
5.以下叙述不正确的是( D )。
A. 一个C源程序可由一个或多个函数组成
B. 一个C源程序必须包括一个main函数
C. C程序的基本组成单位是函数
D. 在C程序中,注释说明只能位于一条语句的后面
6.C语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面
C. 可以任意D. 必须在最后
7.一个C语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成
C. 若干过程组成D. 若干子程序组成
8.以下叙述中正确的是( C )。
A. C程序的基本组成单位是语句 B. C程序中的每一行只能写一条语句
C. C语句必须以分号结束D. C语言必须在一行写完
9.以下叙述中正确的是( C )。
A. C程序中的注释只能出现在程序的开始位置和语句的后面
B. C程序书写格式严格,要求一行只能写一个语句
C. C程序书写格式自由,一个语句可以写在多行上
D. 用C语言编写的程序只能放在一个程序文件中
10.以下叙述中正确的是( C )。
A. C语言程序将从源程序中第一个函数开始执行
B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C. C语言规定必须用main作为主函数名,程序从此开始执行,在此结束
D. main可作为用户标识符,用以命名任意一个函数作为主函数
11.下列叙述中正确的是( A )。
A. 每个C程序文件中都必须要有一个main函数
B. 在C程序中main()位置是固定的
C. C程序中所有函数之间都可以相互调用,与函数所在位置无关
D. 在C程序的函数中不能定义另一个函数
12.C语言源程序的基本单位是( B )。
A. 过程 B. 函数 C. 子程序 D. 标识符
13.下列关于算法的特点描述中错误的是( D )。
A.有穷性 B.确定性 C.有零个或多个输入 D.有零个或多个输出
14.以下选项中不属于算法特性的是( C )。
A. 有穷性 B. 确定性 C. 简洁性 D. 有效性
15.用C语言编写的代码程序( B )。
A. 可立即执行 B. 是一个源程序
C. 经过编译即可执行 D.经过编译解释才能执行
二、填空题
1.C语言的源程序必须通过编译和连接后,才能被计算机执行。
2.C语言源程序文件的后缀是.c;经过编译后,生成文件的后缀是. obj;经过连接后,生成文件的后缀是.exe。
3.C语言从源程序的书写到上机运行输出结果要经过编辑、 编译、连接、执行四个步骤。
4.结构化程序由顺序结构、选择结构和循环结构三种基本结构组成。
5.C语言源程序的基本单位是函数。
6.一个C语言源程序是由若干函数组成,其中至少应含有一个主函数(或main函数)。
7.在一个C语言源程序中,注释部分两侧的分界符为/* …*/。
8.算法是程序设计的灵魂。
9.C语言程序只能从main函数开始执行。
10.自然语言、流程图和伪代码都可以用来表示算法,其中流程图是算法的图形化表示方法。
三、编程/思考题
1.简述C语言的主要特点。
1.C语言的主要特点有:(1)C语言具有结构化的高级编程语言应有的所有高级指令,使程序员不需要知道硬件细节。同时,C也具有一些低级指令,允许程序员能够直接快速地访问硬件。(2)C语言是结构式语言。(3)C语言是一种高效的语言。(4)C语言简洁紧凑,使用方便灵活。(5)C语言运算符丰富。(6)C语言是一种可移植性语言。
2.要得到一个可以正常运行的C语言程序,一般经过哪几个过程?
编辑C语言程序源代码,编译源文件,连接程序,执行程序。
3.算法具有哪些特点?
3.算法具有以下特点:(1)有穷性;(2)确定性;(3)有零个或多个输入;(4)有一个或多个输出;(5)有效性。
4.用流程图表示求解1×2×3×4×5的算法。
5.参照本章例题,编写一个C程序,输出以下信息:
*********************************
This is a simple C program!
答.#include<stdio.h>
void main()
{
printf("*********************************\n");
printf("This is a simple C program!\n");
printf("*********************************\n");
习题二
一、选择题
1.下列几个选项中,属于C语言的基本数据类型的是( B )。
A.整型、实型、结构体类型 B.整型、实型、字符型
C.整型、逻辑型、实型D.整型、字符型、数组类型
2.C语言规定,标识符的命名只能由字母、数字和下划线三种字符组成,且第一个字符( C )。
A.必须是字母 B.必须是下划线 C.必须是字母或下划线 D.必须是数字
3.下列标识符中,合法的标识符为( B )。
A.6adc B._max1 C.a*$bn D.123bc
4.下列标识符中,不合法的标识符为( A )。
A. intB. _n5C. i_5abD. q5n
5.下列不合法的字符常量是( D )。
A.‘a’ B.’\”’ C.’\n’ D.”a”
6.下列不合法的字符串常量是( A )。
A.‘abc’ B.”abc” C.”dfb345” D.””
7.下列不合法的转义字符是( D )。
A. ‘\\ ’ B. ‘\t’C. ‘\x6a’ D.’\89’
8.下面四个选项中,均是不合法的转义字符的选项是( B )。
A. ‘\’’‘\t’‘\’
B. ‘\1234’‘\018’‘\x3h’
C. ‘\n’‘\16’‘\”‘
D. ‘\x8a’‘\&’‘\101’
9.下列整型常量中,不合法的是( D )。
A.89 B. -16 C. 0x4b D.0668
10.下面四个选项中,均是不合法的整型常量的选项是( A )。
A. -0f1 018 2e5
B. 25 0xf3 3.5
C. 065 -54 -0a4
D. 013 0xk5 -069
11.下列实型常量中,不合法的是( C )。
A. 0.0B. .123 C. 123 D. 2.34
12.下列实型常量中,合法的是( D )。
A. e3 B. 2e4.3 C.–e4 D. 2e-4
13.下面四个选项中,均是不合法的实型常量的选项是( B )。
A. 3e5.4 0.0 2e5
B. e5 5e2.5 68
C. 3.14 2e-4 123e-5
D. 0.98 -e-3 123e
14.在C语言中,int、char和short 三种类型数据在存中所占用的字节数( D )。
A. 由用户自己定义 B. 均为2个字节
C. 是任意的 D.由所使用的编译系统决定
15.若有说明语句:char c=’\72’;则变量c( A )。
A.包含1个字符 B.包含2个字符
C.包含3个字符 D.说明不合法,c的值不确定
16.设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为( C )。
A. int B. float C. double D.不确定
17.设有说明语句:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为(D)。
A. float B. char C. int D. double
18.在C语言中,负整数在存中的存储形式是( A )。
A. 补码 B. 反码 C. 原码 D. ASCII码
19.在C语言中,字符型数据在存中的存储形式是( D )。
A. 补码 B. 反码 C. 原码 D. ASCII码
20.在C语言中,实型数据在存中的存储形式是( B )。
A. 小数形式 B. 指数形式 C. 十进制形式 D. ASCII码
21. 在C语言中,设一个short型数据在存中占用2个字节存储,则unsigned short 型数据的取值围为( C )。
A. 0~255 B. 0~32767 C. 0~65535 D. 0~2147483647
22.在C语言中,设一个float型数据在存中占用4个字节来存储,则一个float型数据的有效数字位数为( B )。
A. 5位B. 6~7位C.15~16位D. 18~19位
23.已知小写字母’a’的ASCII码为十进制数97,则执行语句c=’a’+2后,变量c中的字符为( B )。
A. AB. cC. CD. b
24.设有定义float x=3.5;则执行(int)x之后,x的值为( A )。
A. 3.500000 B. 3C. 4D. 3.0
25.若想确定所使用的编译系统中,int型数据所占用的存储宽度,可使用( B )进行测试。
A.(int) B.sizeof(int) C.(int)x D.(sizeof) int
二、填空题
1.C语言中的实型变量分为两种类型,它们是float和double。
2.C语言中的常量分为普通常量和符号常量两种类型
3.C语言中的标识符只能由3种字符组成,他们是字母、数字、下划线、和。
4.在C语言中,有一类特殊字符以“\”开头,称为转义字符。转义字符’\n’的功能是 回车换行;转义字符’\r’的功能是 ,回车不换行。
5.在C语言中,用关键字float定义单精度实型变量,用关键字 DOUBLE 定义双精度实型变量,用关键字char定义字符型变量。
6.要定义双精度实型变量a和b,并使它们的初值都为5.6,则定义语句为doube a=5.6,b=5.6;。
7. 设C语言中一个short型数据占用2个字节存储,一个int型数据占用4个字节存储,则要将数值32768正确无误的存储在变量x中,应使用的定义语句为int x=32768。
8.若有定义 char ch;则执行ch=’A’+32后,变量ch中的字符为‘a’。
9.以下程序运行后的输出结果是9,90。
#include <stdio.h>
void main()
{
int x=011,y=0x5a;
printf("%d,%d\n",x,y);
}
10. 以下程序的输出结果是Beijing
China。
# include<stdio.h>
void main( )
{
printf("Beijing\nChina\n",n);
}
三、思考题
1.C语言规定对所有用到的变量必须“先定义,后使用”,这样做有什么好处?
1.解:C语言中,要求对所有用到的变量“先定义,后使用”,这样做的好处是:能够保证程序中变量名使用得正确;在编译时就能为变量分配相应的存储单元;便于在编译过程中检查对该变量进行的运算是否合法。
2.字符常量和字符串常量有什么区别?
2.解:字符常量是一个字符,在程序中是用单撇号括起来的;字符串常量由0个或若干个字符组合而成,在程序中是用双撇号括起来的,在存储时,系统自动在字符串最后加上一个字符串结束符’\0’。
3.若想要将一个大写字母转换为对应的小写字母,可以如何操作?
3.解:在存中,字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII码对应一个整数值,大写字母与其对应小写字母的ASCII码对应整数值相差32。因此,要将一个大写字母转换为小写字母,只需将该变量的值加上32即可。
4.常量’a’与”a”在存中所占用的字节数是否相同?为什么?
4.解:常量’a’与”a”在存中所占用的字节数不相同,因为’a’是字符常量,在存中占用一个字节存储,而”a”是字符串常量,在存中存储时,系统自动在其后加上一个字符串结束符’\0’,在存中占用2个字节存储。
5.若有定义int a;float f,则表达式’c’+a+f的结果为何种数据类型?为什么?
5.若有定义int a;float f,则表达式’c’+a+f的结果为double型。因为表达式中f为float型,在计算之前必须先转换为double型,根据数据类型的自动转换规则,表达式的结果为double型。
6.设C语言中,一个short型数据占用2个字节存储,若有定义 short x=-12,则变量x的值-12在存中存储的二进制代码是如何表示的?
6.解:整数在存中以补码形式存储,负数的补码为反码+1,所以,当x=-12时,其在存中的存储形式为:1111 1111 1111 0100。
7.设C语言中,一个short型数据占用2个字节存储,若有定义short x=32768,则用输出语句printf(”%d\n”,x);输出x值为多?为什么?
7.解:输出结果为-32768,因为一个short型数据在存中占用2个字节存储,所能表示的数值围为-32768~32767,当x=32768时,超出了其能表示的围,发生了溢出,数值32768的二进制编码的16位正好对应数值-32768。
8.若有x为int型变量,则执行x=3.14后,变量x的值为多少?为什么?
8.解:若有x为int型变量,则执行x=3.14后,变量x的值为3,因为x为int型变量,不能存储实型数据,当把一个实型数据赋给x时,发生了数据类型转换,系统自动把实型数据的小数部分舍去。
9. 分析下面两个程序运行结果是否相同?为什么?
程序A: #include <stdio.h> 程序B: #include <stdio.h>
void main( ) void main( )
{ {
char c1,c2; int c1,c2;
c1=’a’; c1=97;
c2=’b’; c2=98;
printf(“%c,%c\n”,c1,c2); printf(“%c,%c\n”,c1,c2);
} }
9.解:两个程序的运行结果相同。因为字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII码对应一个整数值。因此,在一定围,整型数据和字符型数据是可以通用的。字符’a’和’b’对应的ASCII编码值分别为97,98。
10. 分析下面程序的运行结果:
#include<stdio.h>
void main()
{
char c1='A',c2='B',c3='C',c4='\101',c5='\x42';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("%c\t%c \bB\n",c4,c5);
aAbB□□□□cC□□□□□□abc
A□□□□□□□BB
}
习题三
一、选择题
1.若有代数式,则不正确的C语言表达式是( C )。
A. a/b/c*e*3 B. 3*a*e/b/c C. 3*a*e/b*c D. a*e/c/b*3
2.在C语言中,要求运算数必须是整型的运算符是( D )。
A. / B. = C. ++ D. %
3.若有定义语句:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值(A )。
A.2.500000 B. 2.750000 C
4.若有定义int x=5,y=2,则表达式5/2的结果为( B )。
A. 2.5 B.2 C. 2.0 D. 3
5.判断char型变量ch是否为大写字母的正确表达式是( C )。
A.‘A’<=ch<=’Z’B. (ch>=’A’)&(ch<=’Z’)
C. (ch>=’A’)&&(ch<=’Z’)D. (ch>=’A’)and(ch<=’Z’)
6.为表示关系a≥b≥c,则正确的C语言表达式为( C )。
A. a>=b>=cB. (a>=b)&(b>=c)
C. (a>=b)&&(b>=c) D. (a>=b)||(b>=c)
7.逻辑运算符两侧运算对象的数据类型( D )。
A.只能是0或1 B.只能是0或非0正数
C.只能是整型或字符型 D.可以是任何数据类型
8.下列运算符中,优先级最高的是( B )。
A. < B. + C. && D. ==
9.设x、y、z是int型变量,且有x=3,y=4,z=5,则下面表达式中值为0的是(D )。
A. ‘x’&&’y’B. x<=y
C.x||y+z&&y-z D. !((x<y)&&!z||1)
10.已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值为( B )。
A. 0 B.1 C.“假” D. true
11.下列表达式中,不满足条件“当x为奇数时值为真,当x为偶数时值为假”的是( C )。
A. x%2==1 B. !(x%2==0) C. !(x%2) D. x%2
12.设有int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式(m=a>b)&&(n=c>d)后,n的值为( C )。
A. 0 B. 1 C. 2 D. 3
13.判断char型变量c是否为0到9的数字的正确表达式为( C )。
A.‘0’<=c<=’9’B. 0<=c<=9C. c>=’0’&&c<=’9’D.c>=0&&c<=9
14.设有int x=3,y=4,z=5,则执行表达式!(x+y)+z-1&&y+z/2的结果是( D )。
A. 6B. 0 C. 2D. 1
15.以下程序的运行结果是( B )。
#include <stdio.h>
void main( )
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d\n”,a,b);
}
A. 6,1 B. 2,1 C. 6,0 D. 2,0
16.执行以下语句后x的值为,y的值为( C )。
int x=5,y=6,t=1,a=2,b=3,z=4;
(x=t>a)&&(y=b>z)
A. 5,6 B. 5,0 C. 0,6 D. 0,0
17.以下表达式中,与表达式!a等价的是( D )。
A. a==0B. a==1C. !a==0D. !a==1
18.以下符合C语言语法的赋值表达式是( D )。
A. a=10+n+m=a+3 B. a=10+m,b=a+5
C.b=b*8=2D. a+=a-=(m=4)*(n=3)
19.若有int a=7,b=12,则以下表达式中,值为3的是( D )。
A. b%=(a%=5)B.b%=(a-a%5)
C. b%=a-a%5 D. (b%=a)-(a%=5)
20.已知各变量的类型说明如下。
int a=2,b;
double x=2.56;
则以下不符合C语言语法的表达式是( A )。
A. x%(-3) B. a+=2 C. a+=a-=(b=4) D. x/=(b=3)
21.设以下变量均为int类型,则值不等于7的表达式是( C )。
A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1)
C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1)
22.若x,i,j,k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后,x的值为( C )。
A. 4B. 16C. 32D. 52
23.执行下面程序段后,输出结果为( C )。
int x=13,y=5;printf(“%d”,x%=(y/2));
A. 3B. 2C. 1D. 0
24.设x,y均为float型变量,则以下不合法的赋值语句是( B )。
A. x=0.0B. y=(x%2)/10;C. x*=y+8;D. x=y=0;
25.设int a=10,则执行语句a+=a*=a/5+10;后,a的值是( A )。
A.240 B.120 C.30 D.60
26.设有定义语句int x=2;则以下表达式中,值不为6的是( D )。
A. x*=x+1 B. x=2,3*x C. x*=(1+x) D. 2*x,x+=2
27.已知变量x、y、z都为int型,则执行z=2+(y=1,y+=1,x=y,x+8)后,x和z的值分别为( A )。
A.x=2,z=12 B.x=2,z=10 C.x=10,z=12 D.x=10,z=10
28.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是( D )。
A. 4 B. 3 C. 2 D. 1
29.若w、x、y、z、m均为int型变量,则执行下面语句后,m的值为( A )。
w=1;x=2,y=3;z=4
m=(w<x)?w:x;
m=(m<y)?m:y
m=(m<z)?m:z;
A. 1 B.2 C. 3 D. 4
30.若运行时给变量x输入12,则以下程序的运行结果是( A )。
#include<stdio.h>
void main( )
{
int x,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d\n”,y);
}
A. 0 B.22 C. 12 D. 10
31.若已知num、sum均为int型变量,且num=sum=7;则计算表达式sum=num++,sum++后,sum的值为( B )。
A. 7 B. 8 C. 9 D. 10
32.若有int x=11,则表达式(x++*1/3)的结果为( B )。
A. 5 B. 3 C. 4 D. 6
33.若有定义语句:int x=3;则以下表达式中,值为5的是( A )。
A. ++x,x+1 B. x+=2,--x C. x+=2,x+1 D. x++,x++
34.若已知m,n,x,y为int型变量,则执行以下语句后,变量y的值为( D )。
m=10;n=5;
x=(--m==n++)?--m:++n;
y=n;
A. 5 B. 10 C. 6 D. 7
35.执行以下程序段后,变量a,b,c的值分别为(B )。
int x=10,y=9;
int a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
A. a=9,b=9,c=9 B. a=8,b=8,c=10C. a=9,b=10,c=9 D. a=1,b=11,c=10
36.以下程序的输出结果是( C )。
#include<stdio.h>
void main( )
{
int w=3,z=7,x=10;
printf(“%d\n”,x>10?x+100:x-10);
printf(“%d\n”,w++||z++);
printf(“%d\n”,!w>z);
printf(“%d\n”,w&&z);
}
A. 0 B.1 C. 0 D. 0
1 1 1 1
1 1 0 0
1 1 1 0
37.以下关于运算符优先顺序的描述中正确的是( C )。
A. 关系运算符<算术运算符<赋值运算符<逻辑与运算符
B. 逻辑与运算符<关系运算符<算术运算符<赋值运算符
C. 赋值运算符<逻辑与运算符<关系运算符<算术运算符
D. 算术运算符<关系运算符<赋值运算符<逻辑与运算符
38.下列运算符中,优先级最高的是( D )。
A. < B. % C. && D. ++
39.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( C )。
A. ‘x’&&’y’B. x<=y<=z
C. y+z&&y-z&&(x+1)%2 D. !x||x<y&&1
40.以下不能将变量c中的大写字母转换为对应小写字母的语句是( D )。
A. c+=32 B. c=c-‘A’+’a’ C. c=c-65+97 D. c=c-32
二、填空题
1.若s是int型变量,且有s=6,则表达式s%2+(s+1)%2的值为 1 。
2.若a是int型变量,则计算表达式a=25/3%3后,a的值为 2 。
3. 若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为 5.5 。
4.若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为 3.5 。
5.若有定义:int x=3,y=2; float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为 1 。
6.当a=3,b=2,c=1时,表达式f=a>b>c的值为 0 。
7.当a=5,b=4,c=2时,表达式a>b&&!c的值为 0 。
8.C语言提供的三种逻辑运算符是&&、||、!。
9.若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值为 0 。
10.若a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值为 0 。
11.若a=6,b=4,c=3,则表达式a&&b+c||b-c的值为 1 。
12.若a=3,b=4,c=5,则表达式a||b+c&&b==c的值为 1 。
13.条件“0≤x≤1或-1≤x≤0”的C语言表达式是x>=0&&x<=1||x>=-1&&x<=0。
14.若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后,y的值为-16。
15.若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后,a的值为-60。
16.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。
17.若x和n均为int型变量,且有x=n=5,则计算表达式x+=n++后,x的值为10,n的值为 6 。
18.若n、i均为int型变量,则表达式n=i=2,++i,i++的值为 3 。
19.若有定义:int x=1,y=0;则表达式x<(y+x)?’B’:’C’>y++?’A’:’Z’的值为 A 。
20.若有定义:int x=0,y=1;则表达式x++*x--!=’y’?8-4:y的值为 4 。
三、思考/编程题
1.设有定义:int a=3,b=4;float x=2.5,y=3.5;分析下面算术表达式的值
(1)x+a%2*(int)(x+y)%2/4
(2)(float)(a+b)/2+(int)y%(int)x
2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”“假”?
2.如果一个表达式的值为“真”,则以1表示,如果值为“假”,则以0表示;当判断一个量的逻辑值时,系统将0判断为“假”,将非0判断为“真”。
3.设有定义:int a=3,b=4,c=5,试分析下列表达式的值:
(1) a+b>c&&b==c 0
(2) a||b+c&&b-c 1
(3)!(a>b)&&!c||1 1
(4)!(x=a)&&(y=b)&& 0
(5)!(a+b)+c-1&&b+c/2 1
4.设有定义:int a=15,n=7;试分析下列表达式执行后a的值为多少?
(1) a+=a (2) a-=5 (3) a*=5-2
(4) a%=(n%3) (5) a/=(a+a) (6) a+=a-=a*a
(7) a+=a-=a*=a
4.(1) 30; (2) 10;(3)45;(4)0;(5)0;(6)-420;(7)0
5.设有定义:int a,b;试分析下面表达式执行后变量a、b和表达式的值各是多少?
a=3,b=a+2,a++,(b++)+1
.a=4,b=6,表达式的值为6;
6.试分析下面程序的运行结果。
#include <stdio.h>
void main( )
{
int i=10,j=10;
int m,n;
m=++i;
n=j--;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
6.11,9,11,10
7.试分析下面程序的运行结果。
#include <stdio.h>
void main( )
{
int a,b,c;
a=b=1;
c=a++-1;
printf(“%d,%d\n”,a,c);
c+=-a+++(++b||++c);
printf(“%d,%d\n”,a,c);
} 2,0
3,-1
8.若程序运行时从键盘输入3 4 5,试分析下面程序的运行结果:
#include <stdio.h>
void main( )
{
int x,y,z,max;
scanf(“%d%d%d”,&x,&y,&z);
max=x>y&&x>z?x:y>x&&y>z?y:z;
printf(“%d\n”,max);
} 5
9.编写
展开阅读全文