国家计算机二级C语言考试复习知识点

2026/4/29 22:49:15

例1.请分析下列程序的输出结果。 main() { int s,t,a,b;

sanf(“%d%d”,&a,&b); s=1;t=1;

if(a>0) s=s+1; if(a>b) t=s+1; else if(a==b) t=s; else t=2*s;

printf(“%d\\n”,t); }

若运行时输入5 10 回车,则程序的执行结果是?

main() { int s,t,a,b;

sanf(“%d%d”,&a,&b); s=1;t=1;

if(a>0) {s=s+1; if(a>b) t=s+1;} else if(a==b) t=s; else t=2*s;

printf(“%d\\n”,t); }

若运行时输入5 10 回车,则输出结果是?

例2.分析下列程序的输出结果 main()

{ int a=4,b=3,c=5,t=0; if(a

printf(“%d %d %d\\n”,a,b,c); }

main()

{ int a=4,b=3,c=5,t=0; if(a

printf(“%d %d %d\\n”,a,b,c); }

联想交换的思想:若要交换a和b的值,通常的做法是: {t=a;a=b;b=t;}

3.条件运算符和条件表达式

条件运算符:? :

是唯一一个三目运算符。优先级别高于赋值运算,结合方向自右向左。 格式:表达式1 ?表达式2 :表达式3

执行方式:先求“表达式1”的值,若其值为“真”,求出“表达式2”的值作为整个条件表达式的值;若其值为“假”,求出“表达式3”的值作为整个表达式的值。

例如:max=a>b?a:b; 相当于:if(a>b) max=a; else max=b;

a>b?a:c>d?c:d

相当于a>b?a:(c>d?c:d)

注意:表达式1、2、3的值不要求具有相同的类型,最后结果的类型为表达式2、3中较高类型的一种。如:(x=6)>(y=5)?1:1.5 表达式的值是 1.0而不是1。

4.switch语句

格式:

switch(表达式)

{ case 常量表达式1:语句1;break; case 常量表达式2:语句2;break; …

case 常量表达式n:语句n;break; default :语句n+1;break; }

说明:

(1) switch、case、default、break都是关键字。花括号里面的语句叫做switch

语句体。Switch语句体中可以没有break语句和default部分。

(2) Switch语句的圆括号中表达式的值必须是整型或是字符型,不能为实型。

case后的表达式可以是求得整型量的常量表达式,但是常量表达式中不能含有变量。

(3) 执行Switch语句时,首先计算Switch后圆括号的表达式的值,然后将这

个值与语句体中case后的常量表达式的值相比较,如果某个常量表达式的值与之相等,则执行该case后的语句块;如果没有任何一个常量表达式的值与之相等,则执行default后的语句块。

(4) 在执行的时候如果遇到break语句,则跳出switch语句。如果执行完一

个case或者default语句块后没有遇到break,则继续顺序往下执行,知道遇到break语句或者语句体被执行完毕为止。

(5) default最多只能有一个,通常出现在switch语句的最后部分,但也可以

出现在case之间或所有的case之前。

四.试题分析

1.2008年4月试题分析:

(17)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是

A)kk>='A'&&kk<='Z' B)!(kk>='A'||kk<='Z')

C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91) (18)当变量c的值不为2、4、6时,值也为“真”的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) (19)若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b;

printf(\ 其输出结果是

A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序 #include 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; case 3: a++; b++; }

printf(“a=%d,b=%d\\n”,a,b); }

程序的运行结果是

A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1

2.2007年9月试题分析

(20)有以下计算公式

?xy????x(x?0)(x?0)

若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是 A) if(x>=0) y=sqrt(x); B) y=sqrt(x); else y=sqrt(-x); if(x<0) y=sqrt(-x); C) if(x>=0) y=sqrt(x); D) y=sqrt(x>=0?x :-x); if(x<0) y=sqrt(-x);

(21)设有条件表达式:(EXP)? i++ :j-- ,则以下表达式中与(EXP)完全等价的是

A)(EXP==0) B)(EXP!=0) C)(EXP==1) D)(EXP!=1) (23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是 A)isupper(c) B)'A'<=c<='Z' C)'A'<=c&& c <='Z' D)c <=('z'-32)&&('a'-32)<= c (7)以下程序的功能是:输出a、b、c三个变量中的最小值。请填空。 #include main( )

{ int a,b,c,t1,t2;

scanf(\ t1= a

3.2007年4月试题分析

(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C )

A)if(x++); B)if(x>y&&y!=0); C)if(x>y) x- - D)if(y<0) {;} else y++; else x++;

(21)以下选项中,当x为大于1的奇数时,值为0的表达式( ) A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0 (22)以下叙述中正确的是(C )

A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同 (23)有以下程序( ) main() {int k=5,n=0; do

{switch(k)

{case1: case3:n+=1; break; default;n=0;k--;


国家计算机二级C语言考试复习知识点.doc 将本文的Word文档下载到电脑
搜索更多关于: 国家计算机二级C语言考试复习知识点 的文档
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219