C语言期中.doc_第1页
C语言期中.doc_第2页
C语言期中.doc_第3页
C语言期中.doc_第4页
C语言期中.doc_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

下面的程序中_错误(每行程序前面的数字是行号)。1 #include2 main()3 4 float a3=0.0;5 int i;6 for(i=0;i3;i+) scanf(%d,ai);7 for(i=1;i3;i+)a0=a0+ai;8 printf(%fn,a0);9 A第8行B第4行C第6行D没本题的考查点是函数scanf()的格式输入。 根据函数scanf()的语法可知,在函数中的参数表列部分,应当是欲赋值变量的内存地址,象第六行这样,将数组元素直接放在参数表列中是无法达到给数组元素赋值的目的。故本题答案为C。以下程序的输出结果是_。main() int a=5,b=4,c=6,d; printf(%dn,d=ac?a:c):(b);A.4B.6C.不确定D.5本题最重要的分析d=ac?(ac?a:c):(b),首先运算括号内的式子ac?a:c,它的值是c的值6,即式子化成d=ac?6:4。 显然ac,所以将6赋给d。本题答案为B.以下程序的输出结果是_。 main() int a,b; for(a=1,b=1;a=10) break; if(b%3=1) b+=3; continue; printf(%dn,a); A.4B.101C.6D.5本题主要考查考生对C语言中的循环语句和程序的执行逻辑。本题中for循环语句共执行3次,所以a的值累加3次,结果为4。本题答案A.有如下程序#define N 2#define M N+1#define NUM 2*M+1main() int i; for(i=1;i=NUM;i+)printf(%dn,i);该程序中的for循环执行的次数是_。A.5B.7C.6D.8在C语言中,宏定义在编译时将被直接替换,所以NUM最后会被替换成2*N+1+1,即2*2+1+1,值为6。因此,for循环执行的次数为6。本题答案为C。下列关于C语言用户标识符的叙述中正确的是_。A. 用户标识符中不可以出现中划线,但可以出现下划线B. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头C. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头D. 用户标识符中可以出现下划线和中划线(减号)本题的考查点是C语言中的标识符。 标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符可以由字母、数字和下划线组成,字母和下划线可以出现在用户标识符的开头,数字不可以。故本题答案为A。以下选项中不属于C语言的类型的是_。A. signed short intB. singed longC. unsigned charD. long shortC语言中归纳起来,基本类型数据有以下几种:singed char;unsiged char;signed short int;unsigned short int;signed long int;unsighed long int;float;double. 本题答案为D。若变量已正确定义并赋值,下面符合C语言的表达式是_。A. a:=b+1B. a=b=c+2C. a=a+7=c+bD. int 18.5%3选项A和C显然错误;对于表达式a=a+7=c+b(答案D),是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给a,显然,表达式a+7=c+b非法,因为赋值表达式的左值不能为常量或表达式。本题答案为B。设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是_。A. 6.500000B. 6C. 6.000000D. 5.500000本题的考查点是各类数值型数据的混合运算。 各类数值型数据在进行混合运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则为:字符数据必定先转换为整数,short型转为int型,float型数据在运算时一律先转换成双精度型,以提高运算精度。故本题答案为C。有以下程序main() int i=0,s=0; do if(i%2)i+;continue; i+; s+=i; while(i7); printf(%dn,s);执行后输出的结果是_。A.16B.12C.21D.28本题的考查点是do-while循环语句。 do-while的一般格式如下所示: do 语句; while(测试表达式); do-while语句是先执行后判断,其执行流程是: 1、 执行循环体; 2、 计算测试表达式,若为非0,转向执行1,否则执行3; 3、 执行do-while后面的语句,即退出do-while循环。 本题中,当i=0时,i%2=0,为假不执行i+;continue;,接着往下执行i+,此时i=1,s=s+i=1,因为i=1符合条件i=7时结束循环。最后得出s=16。故本题答案为A。有以下程序main() int s=0,a=1,n; scanf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是_。A.-3B.-1C.-5D.0本题的考查点是do-while语句 此语句的一般形式为: do 语句 while (表达式)其特点为:先执行语句,后判断表达式。 它是这样执行的:先执行一次指定的内嵌的语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行该语句,如此反复,直到表达式的值等于0为止,此时循环结束。 当n=-1时,s+=1,s=1; a=a-2=-1;a!=n不成立,结束循环,此时s值为1,不符合题意; 当n=-3时,s+=1,s=1; a=a-2=-1;a!=n成立,继续循环,s=s+1=2,a=a-2=-3;a!=n不成立,此时s值为2,符合题意;故本题答案为A。设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是_。A. !(ab)&!c|1)B. abc) printf(%dn,d); else if(c-1=d)=1) printf(%dn,d+1); else printf(%dn,d+2);执行后输出的结果是_。A.编译时有错,无结果B.4C.2D.3本题的考查点是关系表达式和逻辑表达式。 关系表达式用来进行两个数据的比较,比较的结果为逻辑真或逻辑假。C语言不提供逻辑型数据,而是用整数0表示逻辑假,即比较不成立;用整数1表示逻辑真,即比较成立。 和关系表达式一样,逻辑表达式的值也是用整数1表示逻辑真,用整数0表示逻辑假。 本题中abc即相当于(ab)c因为ab成立,所以其值为1,然后比较1与c的大小,1c不成立,所以不执行printf语句,然后判断(c-1=d)=1成立,此时执行printf语句,打印d+1=3。 故本题答案为D。C语言中用于结构化程序设计的三种基本结构是_。A. for、while、do-whileB. if、switch、breakC. 顺序结构、选择结构、循环结构D. if、for、continue本题的考查点是程序的基本结构。 结构化程序由若干个基本结构组成。每一个基本结构可以包含一个或若干个语句。有三种基本结构: 1、顺序结构,先执行A操作,再执行B操作,两者是顺序执行的关系; 2、选择结构,P代表一个条件,当P条件成立时执行A,否则执行B。只能执行A或B之一。两条路径汇合在一起然后出口; 3、循环结构,有两种循环结构: (1)当型循环结构,当P条件成立(真)时,反复执行A操作。直到P为假时才停止特环。 (2)直到型循环结构,先执行A操作,再判断P是否为假,若P为假,再执行A,如此反复,直到P为真为止。 故本题答案为C。以下4个选项,不能看作一条语句的是_。A. if(b=0)m=1;n=2;B. a=0,b=0,c=0;C. if(a0);D. ;if语句是用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。 在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。选项D中没有将两个操作语句括起来,不能看作一条语句。故本题答案为A。若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。s=a;for(b=1;b=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是_。A. s=a+c;B. s=a+b;C. s=s+c;D. s=b+c;本题的考查点是赋值语句。 本题s的初值是a,然后b从1循环到c,每循环一次,s都加1,也就是到了c,加了1*c,所以程序所实现的功能实际上是s=a+c。故本题答案为A。请读程序: #include main() int a, b ; for(a = 1 , b = 1 ; a = 20) break ; if (b%3 = 1) b += 3 ; continue ; b -= 5 ; printf(%dn, a) ; 上面程序的输出结果是_。A.8B.7C.9D.10本题的考查点是break语句和continue语句。 %是求余运算符,执行第一次循环时,条件(b%3 = 1)为真,b=4,继续下一次循环,如此反复,当b=22时,条件(b = 20)为假,跳出循环,此时共循环8次,即a=8。故本题答案为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=%dn,a,b);该程序的输出结果是_。A. a=1,b=1B. a=2,b=1C. a=1,b=0D. a=2,b=2在这个switch语句中,因为x的值为1,所以执行case 1:后面的a+,这样a = 1。但又由于其下没有break语句,所以其后面的语句(a+;b+)也将被执行,这样一来,a = 2,b = 1。 本题答案为B。下面程序 main() int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b!=15) if(!ok1) x=1; else if(ok2) x=10; x=-1; printf(%dn,x); 的输出是_。A.0B.1C.不确定的值D.-1 本题的考查点是判断语句的循环嵌套。 第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断.如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如何变化,最后的x值依然为-1。故本题答案为D。下面程序 main() int x=32; printf(%dn,x=x1); 的输出是_。A.64B.160C.120D.100本题的考查点是位运算。 是C语言中规定的左移运算符,例如,a=a2,这个语句即是将a的二进制数左移两位,左移一位相当于该数乘于2,左移两位相当于该数乘以2的2次方。所以,x1=32*2=64。故本题答案为A。以下叙述正确的是_。A. C语言可以不用编译就能被计算机识别执行B. C语言出现的最晚、具有其他语言的一切优点C. C语言比其他语言高级D. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式本题的考查点是C语言的特点。 C语言主要有如下一些特点: 1、语言简洁、紧凑,使用方便、灵活; 2、运算符丰富; 3、数据结构丰富,具有现代化语言的各种数据结构; 4、具有结构化的控制语句; 5、语法限制不太严格,程序设计自由度大; 6、C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7、生成目标代码质量高,程序执行效率高; 8、用C语言写的程序可移植性好。但是所有的语言都不可能没有任何缺点,C语言也不例外,C语言是高级语言,需要通过编译才能被计算机识别。本题答案为D。有以下程序main() int i; for(i=0;i3;i+) switch(i) case 1: printf(%d,i); case 2: printf(%d,i); default: printf(%d,i); 执行后输出的结果是_。A. 012B. 011122C. 012020D. 120本题的考查点是switch语句。 switch语句在执行时先计算表达式i的值,当表达式i的值与某一个case中的常量表达式的值相等时,就执行该case后面的语句系列,接着再执行后面各个case中的语句序列,一直到执行完default后面的语句序列,然后结束switch。如果所有case中的常量表达式的值都没有与表达式i的值相匹配,就只执行default后面的语句序列。break语句与switch语句配合使用,可以强行控制程序流程退出switch。 由于本题没有与break语句配合使用,因此在执行完case 1以后,还要继续执行case2和defult。当i=0时,执行defult语句,输出0;当i=1时,执行case 1语句,输出1,因为没有break控制程序流程退出,所以继续执行下面的语句,输出11,以此类推。 故本题答案为B。以下程序的输出结果是_。 main() char st20=hello0t; printf(%d%dn,strlen(st),sizeof(st); A.520B.99C.1320D.2020本题主要考查C语言的字符串与库函数。C语言中字符串是以0字符结束的,且strlen()函数计算的是0字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。 本题答案为A。设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是_。A. c1&c2B. c1c2C. c2D. c1|c2本题考的是位运算。 “”是按位异或运算,当对应位上的二进制数值相同时,异或的结果为0,对应位上的二进制数值不同时,异或的结果为1,因为c1,c2的值相同,所以异或的结果为0,所以A为正确答案。 “&”是按位与运算符(只有当所有对应位上的数都不相同时结果才为0,所以c1&c2的值并不可能为0)。 “”是按位取反(由于十进制92转化成二进制并不是全为1,所以即使取反也不能得到全为0的答案)。 “|”是按位或运算(由于十进制92转化为二进制也不是全为0,所以按位或运算后也不会全为0)。 故本题正确答案为B。若程序中定义了以下函数double myadd(double a,double b)return(a+b);并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是_。A. double myadd(double a, b);B. double myadd(double x, double y);C. double myadd(double b, double a);D. double myadd(double,double);对函数的“定义”和“说明”不是一回事。“定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。而“说明”则是对已定义的函数的返回值进行类型说明(或称“申明”),它只包括函数名、函数类型、以及一个空的括弧,不包括形参和函数体。对被调函数进行说明的作用是告诉系统:在本函数中将要用到的某函数是XX类型。也就是说明该函数的返回值的类型,以便在主调函数中按此类型对函数值作相应的处理。 本题选项A中,对变量b的类型没有说明,默认的为整型,不合题意。故本题答案为A。以下叙述中正确的是_。A. 花括号“”和“”只能作为函数体的定界符B. C程序中注释部分可以出现在程序中任意合适的地方C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分本题的考查点是C程序设计的初步知识。 选项A,C程序中/*/表示注释部分,注释只是给人看的,对编译和运行不起作用,可以加在程序中任何位置,所以选项A是对的; 选项B,函数体是函数的主体,从左花括号开始,到与之匹配的右花括号结束。 选项C,一个C程序中必须有且只能有一个由“main”命名的主函数,其他函数由用户自行命名。 选项D,C语句是组成C程序的基本单位,具有独立的程序功能。所有的C语句都以分号结尾。故本题答案为B。有以下程序main() int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(%d,%dn,k,n);程序运行后的输出结果是_。A.3,3B.1,1C.2,2D.4,4本题的考查点是循环和continue语句。 continue语句是结束本次循环。n从0开始循环,判断n%3!=0是否成立,为真,跳出循环,继续判断,为假,执行 k-,并结束循环,输出k、n的值。n等于0、1、2时,都跳出循环继续判断,当n=3时,n%3!=0为假,执行k-,k的值变为3。故本题答案为A。以下4组用户定义标识符中,全部合法的一组是_。 _main If txt intenclude -max REAL k_2sin turbo 3COM _001A. B. C. D. C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。 中的-max不符合要求,-既不是字母、数字,也不是下划线; 中的3COM第一个字符为数字,不合法; 中的int和C语言的关键字重名,不合法。故本题答案为A。以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空:#define N 3#define M 4void LineMax(int xNM) int i,j,p; for(i=0;iN;i+) p=0; for(j=1;jM;j+) if(xip(y)?(x):(y)main()int a = 5, b = 2,c = 3, d = 3, t;t = MAX(a + b, c + d)*10;printf(%dn, t);本题的考查点是宏定义。 宏替换后,表达式t = MAX(a + b, c + d)*10即变为:t = (a+b)(c+d) ? (a+b) : (c + d)*10; 由于(a+b)(c+d)为真, 所以t = (a+b),即为7。 故本题答案为:7。以下程序的输出结果是 。main() int a=0; a+=(a=8); printf(%dn,a);本题的考查点是表达式。 表达式a+=8相当于a=a+8,对表达式逐步求解过程如下: a+=(a+8)此时,a的值赋值为8,而不再是0; a+=8 a=a+8 a=16 故本题答案为16。下列程序段的输出结果是_。main() char b=Hello,you; b5=0; printf(%sn,b);字符串中,数值0或符号0表示字符串的结束。本题中,b5被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。以下程序运行后的输出结果是_。main() int a,b,c; a=25; b=025; c=0x25; printf(%d %d %dn,a,b,c); 本题考查的是格式字符的输出。变量a、b、c分别为十进制、八进制、十六进制的25,格式字符d所代表的含义是,以带符号的十进制形式输出整数(正数不输出符号),所以本题a=25则输出值为25;b=025转换为10进制:b=2*8+5=16+5=21,则输出的值为21;c=0x25转换为10进制:c=2*16+5=32+5=37,则输出的值为37,而且printf中三个%d之用的是空格,所以输出的几个数字之间也必须是空格。所以本题答案是25 21 37 或【NN】25 21 37.给定程序modi.c中,函数fun的功能是:计算并输出下列级数的前N项之和SN,直到SN+1大于q为止,q的值通过形参传入。 2 3 4 N+1 SN = + + + + 1 2 3 N 例如,若q的值为:50.0,则函数值为:49.394948。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!第1 处内容填写有误 第1处操作错误 题面要求操作:内容为double n;double s,t; 实际操作结果:内容为intn;doubles,t;第2 处内容填写有误 第2处操作错误 题面要求操作:内容为return t; 实际操作结果:内容为returns;函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。 例如,当a=45,b=12。调用该函数后,c=2154。 注意:部分源程序存在文件prog.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。void fun(int a, int b, long *c) int a_up,a_low,b_up,b_low; a_up=a/10; /*求正整数a的十位数*/ a_low=a%10; /*求正整数a的个位数*/ b_up=b/10; /*求正整数b的十位数*/ b_low=b%10; /*求正整数b的个位数*/ *c=b_low*1000+b_up*100+a_low*10+a_up; /*将a数的十位和个位数依次放在c数的个位和十位上,b数的十位和个位数依次放在c数的百位和千位上*/给定程序的功能是计算scroe中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。 例如,当score=10,20,30,40,50,60,70,80,90,m=9时,函数返回的人数应该是4,below=10,20,30,40。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!第1 处内容填写有误 第1处操作错误 题面要求操作:内容为if(scorei aver) belowj+ = scorei ; 实际操作结果:内容为if(scoreiaver)belowj+=_1_;第2 处内容填写有误 第2处操作错误 题面要求操作:内容为n = fun(score, 9, below) ; 实际操作结果:内容为n=fun(score,9,_2_);第3 处内容填写有误有以下程序main() int p7=11,13,14,15,16,17,18,i=0,k=0; while(i7&pi%2)k=k+pi;i+; printf(%dn,k);执行后输出的结果是_24_。已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_scanf(%d,%d,%d,&i,&j,&k);_。以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是_sum=0.0;_。有以下程序main() int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(%dn,s);程序执行后的输出结果是_自然数110中偶数之和_。通过for(i=1;i0;选项A是将一个逗号表达式的值赋给一个变量; 选项C是自增运算; 选项B中(i+1)是一个常量,常量不能进行自增运算; 选项D是将一个整数赋给一个变量。若有说明语言:int a,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是_。A. scanf(%d%d%d,a,b,*d);B. scanf(%d%d%d,&a,&b,d);C. scanf(%d%d%d,&a,&b,&d);D. scanf(%d%d%d,a,b,d);t为int类型,进入下面的循环之前,t的值为0,while(t=1) .则以下叙述中正确的是_。A. 循环控制表达式不合法B. 循环控制表达式的值为1C. 循环控制表达式的值为0D. 以上说法都不对下面的程序 main() int x=3; do printf(%dn,x-=2); while(!(-x) ); _。A. 是死循环 B. 输出的是3和0 C. 输出的是1 D. 输出的是1和-2在第一次循环时,先计算表达式x-=2,所以输出1,-x为0,判断表达式的值为非零,返回重新执行该语句; 在第二次循环时,表达式x-=2,即-2,所以输出-2,-x为-3,判断表达式的值为零,循环结束。以下程序的输出结果是_11,10 _。 #include main() int i=10,j=10; printf(%d,%dn,+i,j-); +i是先对i进行加1运算,再使用i的值;j-是先使用j值,再对j进行减1运算。所以,程序的打印结果应当为11,10。设ch是char型变量,其值为A,且有下面的表达式 ch=(ch=A&ch=Z)?(ch+32):ch上面表达式的值是_a _。条件表达式的一般形式为:表达式1?表达式2:表达式3,条件运算符的执行顺序:先求解表达式1,若非0则求解表达式2,此时表达式2的值就作为整个表达式的值,若表达式1的值为0,则求解表达式3,此时表达式3的值就作为整个表达式的值。本题中,表达式1的值为1,所以整个表达式的值为表达式(ch+32)的值,即为a。以下选项中非法的表达式是_。A. (char)(65+3)B. i=j=0C. 0=x100D. x+1=x+1 选项A中,0=x100在C语言中是一个合法的关系表达式,但它并不代表数学式0=x100。在计算0=x100时,根据从左到右的结合性,先计算0=x,其结果只能是0或1,然后再比较0100或1100。 选项B中,根据运算符的优先级,先判断j=0是否成立,其结果只能是0或1,然后再将0或1赋给i。 选项C中,(char)(65+3)为类型强制转换,将数值型数据转换为字符型。选项D中,赋值运算符的作用是将一个数据赋给一个变量,此项中等号左半部分不合要求。若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是_-12_ C语言中对赋值运算的运算顺序是自右向左。本题中,计算a*a之后,a的值依然为3,表达式a*a的值为9;a-=9,a=3-9=-6;a+=-6,a=-6+-6=-12。有以下程序main() int i=1,j=1,k=2; if(j+|k+)&i+) printf(%d,%d,%dn,i,j,k);执行后输出的结果是_2,2,2_。本题的考查点是逻辑表达式。 形如(表达式 1)&(表达式 2)&.的逻辑表达式在计算时,先计算表达式1,如果其值是逻辑真或非0,就接着计算表达式2,直至计算到第一个为逻辑假的表达式时,就可判定整个逻辑表达式为逻辑假,其后的表达式将不被计算。 形如(表达式 1)|(表达式 2)|.的逻辑表达式在计算时,先计算表达式1,如果其值是逻辑假或0,就接着计算表达式2,直到计算到第一个为逻辑真的表达式时,就可判定整个逻辑表达式为逻辑真,其后的表达式将不被计算。 根据以上的描述可知,本题中j+值为2,为真,k+不被计算,然后计算i+为2,所以i=2,j=2,k=2。下列条件语句中,功能与其他语句不同的是_。A. if(a=0) printf(%dn,x); else printf(%dn,y);B. if(a=0) printf(%dn,y); else printf(%dn,x);C. if (a!=0) printf(%dn,x); else printf(%dn,y);D. if(a) printf(%dn,x); else printf(%dn,y);此题考的是if语句中逻辑表达式值的判断。 if(a)表示a值为真(即不等于0都为真)的话,就输出x的值,否则输出y的值;if(a=0)表示如果a与0等值,即a不为真,就输出y的值,否则输出x的值,此与选项A等价;再看选项C,a不等于0,即为真,输出x,否则输出y,与前两个都同意;而选项D恰好与前几项的意思相反,它是a为0时,输出x,为真时输出y。若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。s=a;for(b=1;b0); 在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。选项D中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论