TYPE=02 AND KENID=33000001 <<< 4,3 A
C语言源程序经过编译、链接后生成的可执行文件扩展名是______。 (A).exe (B).cpp (C).c (D).obj >>>
TYPE=02 AND KENID=33000001 <<< 4,3 D
C语言程序要正确地运行,必须要有______。
(A)printf函数 (B)scanf函数 (C)自定义的函数 (D)main函数 >>>
TYPE=02 AND KENID=33000001 <<< 4,3 D
以下均为合法用户标识符的是______。 (A)do,xyz,_printf (B)3a,_tt,IF (C)void,ff,s_v
(D)_pix,IF,big_tree >>>
TYPE=02 AND KENID=33000001 <<< 4,3 B
以下叙述中正确的是______。
(A)C语言程序从源程序中第一个函数开始执行
(B)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 (C)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 (D)main可作为用户标识符,用以命名任意一个函数作为主函数 >>>
TYPE=02 AND KENID=33000001 <<< 4,3 C
以下叙述中错误的是______。
(A)C语言是一种结构化程序设计语言
(B)结构化程序有顺序、选择和循环三种基本结构 (C)使用三种基本结构构成的程序只能解决简单问题 (D)结构化程序设计提倡模块化的设计方法 >>>
TYPE=01 AND KENID=33000001 <<< 1,3 函数
C语言程序的基本单位是【 函数 】。 >>>
TYPE=01 AND KENID=33000001 <<< 1,3 编辑
编写C语言源程序时,需要使用【 编辑 】器将源代码输入到计算机中。 >>>
TYPE=04 AND KENID=33000001 <<< 2,3 A
C语言源程序中可以有多处注释。 >>>
TYPE=04 AND KENID=33000001 <<< 2,3 B
C语言源程序中,main函数必须写在其他函数之前。 >>>
TYPE=04 AND KENID=33000001 <<< 2,3 B
编写C语言源程序时,必须采用“缩进”方式。 >>>
第二章
TYPE=02 AND KENID=33000002 <<<
4,3 C
以下属于合法数据类型关键字的是______。
(A)Long (B)shot (C)char (D)doubel >>>
TYPE=02 AND KENID=33000002 <<< 4,3 C
以下不合法的数值常量是______。
(A)011 (B)1e1 (C)8.0E0.5 (D)0xabcd >>>
TYPE=02 AND KENID=33000002 <<< 4,3 D
以下正确的字符常量是______。
(A)\"T\" (B)'\\\\'' (C)' (D)'T' >>>
TYPE=02 AND KENID=33000002 <<< 4,3 A
以下不合法的字符常量是______。
(A)\"a\" (B)'\\77' (C)'\\n' (D)'\\x5c' >>>
TYPE=02 AND KENID=33000002 <<< 4,3 D
表达式3.6-5/2+1.2+5%2的值是______。
(A)4.3 (B)4.8 (C)3.3 (D)3.8 >>>
TYPE=02 AND KENID=33000002 <<< 4,3 B
以下均是合法常量的是______。 (A)038,.5e-6,0xE (B)12.,0Xc33,3.6e0 (C).17,4e1.5,0ade
(D)0x6A,30_000,3.e7 >>>
TYPE=02 AND KENID=33000002 <<< 4,3 A
以下均是非法常量的是______。 (A)0x2g,0ff,E5 (B)'\\\\','\\21',12,456 (C)028,04567,0xffff (D)0xaa,'a',\"a\" >>>
TYPE=02 AND KENID=33000002 <<< 4,3 B
设有说明语句:int i=5; char c='A'; double d=3.14; ,以下结果为整型的表达式是______。
(A)i/2+d (B)i/2*c (C)c+d/2 (D)i/2+c+d >>>
TYPE=02 AND KENID=33000002 <<< 4,3 C
若变量均已正确定义并赋值,以下合法的赋值语句是______。
(A)x+n=i; (B)x=n%2.5; (C)x=y==5; (D)x=5=4+1; >>>
TYPE=02 AND KENID=33000002 <<< 4,3 C
以下变量说明语句中,合法的是______。
(A)float 5_five=3.4; (B)int _xyz=29 (C)double a1=6.2e4; (D)short do=3; >>>
TYPE=02 AND KENID=33000002 <<< 4,3 C
设有说明语句:int x=1; double y=1.0;,以下不符合C语言语法的表达式是________。
(A)++x,y=x-- (B)x=(int)(y/3) (C)x=x+10=x+y (D)(double)x/3 >>>
TYPE=02 AND KENID=33000002 <<< 4,2 A
设有说明语句:int x,a,b,c; double d=3.14; ,以下不符合C语言语法的表达式是______。
(A)d%3 (B)d+=-1
(C)x=(a=-1,b=-3,a*b) (D)a+=(a=3)*(b=2)*(c=1) >>>
TYPE=02 AND KENID=33000002 <<< 4,3 B
以下能正确定义且赋初值的语句是______。
(A)int n1=n2=-1; (B)char c=32; (C)float f; (D)double x=12.3E2.5; >>>
TYPE=02 AND KENID=33000002 <<< 4,3 D
设有说明语句:char s=\"AA\"; ,下面说法正确的是______。 (A)变量s中包含1个字符 (B)变量s中包含2个字符 (C)变量s中包含3个字符 (D)说明语句不合法 >>>
TYPE=02 AND KENID=33000002 <<< 4,2 A
设有说明语句:int i=2; ,以下选项的四个表达式中与其他三个表达式的值不相同的是______。
(A)i++ (B)i+=1 (C)++i (D)i+1 >>>
TYPE=02 AND KENID=33000002 <<< 4,3 B
若变量均已正确定义并赋值,以下合法的赋值表达式是______。 (A)x=3+b=x+3 (B)x=(b=x+3,3+b)
(C)x=3+b,b++,x+3 (D)x+=3=x+3 >>>
TYPE=02 AND KENID=33000002 <<< 4,3 C
若已定义x和y为double类型,表达式(x=1,y=x+3/2)的值是______。 (A)1 (B)2 (C)2.0 (D)2.5 >>>
TYPE=02 AND KENID=33000002 <<< 4,2 C
与数学式子2乘以y的n次方除以(2x+1)对应的C语言表达式是______。 (A)2*y^n/(2*x+1) (B)2*y**n/(2*x+1)
(C)2*pow(y,n)/(2*x+1) (D)2*pow(n,y)/(2*x+1) >>>
TYPE=02 AND KENID=33000002 <<< 4,2 D
设有说明语句:int k=7,x=12; ,以下表达式中值为3的是______。 (A)x=k%5 (B)x%=(k-k%5)
(C)x%=k-k%5 (D)x=5-(k%=5) >>>
TYPE=02 AND KENID=33000002 <<< 4,3 D
设有说明语句:int n=7,i=3; ,执行赋值运算n%=i+1后,变量n的值是______。
(A)0 (B)1 (C)2 (D)3 >>>
TYPE=02 AND KENID=33000002 <<< 4,2 B
以下与k=i++完全等价的表达式是______。 (A)i=i+1,k=i (B)k=i,i=i+1 (C)k=++i (D)k+=i+1 >>>
TYPE=02 AND KENID=33000002
<<< 4,3 C
能正确表示数学关系:“-5≤a≤5”的C语言表达式是______。 (A)a>=-5 and a<=5 (B)a>=-5 or a<=5 (C)a>=-5 && a<=5 (D)a>=-5 || a<=5 >>>
TYPE=02 AND KENID=33000002 <<< 4,2 D
以下选项中,当k为大于1的奇数时,值为0的表达式______。
(A)k%2==1 (B)k/2 (C)k%2!=0 (D)k%2==0 >>>
TYPE=02 AND KENID=33000002 <<< 4,2 C
若变量均已正确定义并赋值,以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是________。
(A)(x-y>0) (B)(x-y<0)
(C)(x-y<0 || x-y>0) (D)(x-y==0) >>>
TYPE=02 AND KENID=33000002 <<< 4,3 A
已知大写字母'A'的ASCII码是65,小写字母'a'的ASCII码是97,则字符常量'\\101'是______。
(A)字符'A' (B)字符'a' (C)字符'e' (D)非法的常量 >>>
TYPE=01 AND KENID=33000002 <<< 1,3 double
设有说明语句:int i; float f; double d; ,表达式5-2*i+d/f值的数据类型为【 】。 >>>
TYPE=01 AND KENID=33000002 <<< 1,3 1
设有说明语句:char k='\\77'; ,变量k中包含【 1 】个字符。 >>>
TYPE=01 AND KENID=33000002 <<< 1,3 字符型
C语言中的基本数据类型包括整型、实型和【 字符型 】。 >>>
TYPE=01 AND KENID=33000002 <<< 1,3 67
已知大写字母'A'的ASCII码是65,若变量k是int类型,则执行了语句:k='A'+2.8; 后变量k的值是【 】。 >>>
TYPE=01 AND KENID=33000002 <<< 1,2 5
字符串\"A\\x11T\\101C\"的长度是【 】。 >>>
TYPE=01 AND KENID=33000002 <<< 1,3 int
设有说明语句:int k=5; double t; ,执行语句t=(double)k;之后,变量k的数据类型是【 】。 >>>
TYPE=01 AND KENID=33000002 <<< 1,2 double
表达式2+sqrt(4)值的数据类型为【 double 】。 >>>
TYPE=01 AND KENID=33000002 <<< 3,3 1 4 8
在Visual C++ 6.0环境中,一个char型变量在内存中占【1 】个字节,一个int型变量在内存中占【 4 】个字节,一个double型变量在内存中占【 8 】个字节。 >>>
TYPE=01 AND KENID=33000002 <<< 2,3 6 6
若变量x、y均为int型,则表达式(x=3,x+3,y=3,x+y)的值是【 】,表达式y=(y=3,x=y,x+3)的值是【 】。 >>>
TYPE=04 AND KENID=33000002 <<< 2,3 A-
可以把一个字符常量赋给一个整型变量。 >>>
TYPE=04 AND KENID=33000002 <<< 2,3 B
说明语句int t1=t2=10;可以把t1、t2定义成int型变量并初始化为10。 >>>
TYPE=04 AND KENID=33000002 <<< 2,3 A
k1=k2=k3=10;是一条合法的赋值语句。 >>>
TYPE=04 AND KENID=33000002 <<< 2,2 A
可以把define定义为用户标识符,但不能把if定义为用户标识符。 >>>
TYPE=04 AND KENID=33000002 <<< 2,2 A
设有说明语句:int x=3,y=5; ,当执行语句x=x+y; y=x-y; x=x-y;后,变量x和y的值实现了交换。 >>>
TYPE=04 AND KENID=33000002 <<< 2,3 B
在C语言的运算符中,条件运算符的优先级最低。 >>> 第三章
TYPE=02 AND KENID=33000003 <<< 4,3 B
设有说明语句:double x=123.56; ,对于语句printf(\"%-8.2e\\n\,以下说法正确的是______。 (A)输出为-1.24e+002 (B)输出为1.24e+002
(C)输出为12.36e+001
(D)输出格式描述符的域宽不够,不能输出 >>>
TYPE=02 AND KENID=33000003 <<< 4,3 C
printf函数被称为______输出函数。
(A)字符 (B)整数 (C)格式 (D)浮点 >>>
TYPE=02 AND KENID=33000003 <<< 4,3 A
scanf函数是一个______函数。
(A)标准库 (B) 用户定义 (C)无参 (D)地址 >>>
TYPE=02 AND KENID=33000003 <<< 4,3 D
getchar函数的原型声明包括在头文件______中。
(A)string.h (B)math.h (C)conio.h (D)stdio.h >>>
TYPE=02 AND KENID=33000003 <<< 4,3 A
在printf函数的\"格式控制字符串\"中,%5d表示______。 (A)输出宽度为5 (B)输出5个数
(C)输出数据时保留5位小数 (D)输出5个d >>>
TYPE=02 AND KENID=33000003 <<< 4,3 D
设有说明语句:double x; ,下列选项中正确的是______。 (A)scanf(\"%d\(B)scanf(\"%f\ (C)scanf(\"%lf\(D)scanf(\"%lf\ >>>
TYPE=02 AND KENID=33000003 <<< 4,3 C
对语句scanf(\"%c%c%c\和语句
scanf(\"%c,%c,%c\的输入,以下说法正确的是______。 (A)都以空格作为间隔
(B)前者以空格作为间隔,后者以逗号作为间隔 (C)前者不以空格作为间隔,后者以逗号作为间隔 (D)都以逗号作为间隔 >>>
TYPE=02 AND KENID=33000003 <<< 4,2 B
以下程序段的输出结果是(符号□表示空格)______。 double x=3.14;
printf(\"|%5.0f|\\n\ (A)|3.14□| (B) |□□□□3| (C)|□□3.0| (D)|□□□3.| >>>
TYPE=02 AND KENID=33000003 <<<
4,3 D
语句printf(\"x=%10.5f\\n\的输出结果是______。 (A)x=2345.67800 (B)x=12345.6780 (C)x=12345.678 (D)x=12345.67800 >>>
TYPE=02 AND KENID=33000003 <<< 4,3 B
对于如下程序段:
int x=2010,y=2012; printf(\"%d\\n\以下叙述中正确的是______。 (A)输出结果为:2002 (B)输出结果为:2012 (C)输出结果不确定
(D)运行时产生出错信息 >>>
TYPE=02 AND KENID=33000003 <<< 4,2 B
以下程序运行时,若输入数据为:11 11,则输出结果是______。 #include scanf(\"%d%o\ y+=x; printf(\"%d\\n\ } (A)22 (B)20 (C)18 (D)11 >>> TYPE=02 AND KENID=33000003 <<< 4,3 D 设有说明语句:int x=3,y=5; ,以下不合法的赋值语句是______。 (A)x*=3; (B) x/=y; (C) x+=3; (D) x||=y; >>> TYPE=02 AND KENID=33000003 <<< 4,2 A 设有说明语句:int x; ,执行语句x=10; x+=x-=x;后,变量x的值为______。 (A)0 (B)10 (C)20 (D)30 >>> TYPE=02 AND KENID=33000003 <<< 4,2 D 设有说明语句:int i,j; char c; ,若要通过语句scanf(\"%d%c%d\使变量i,j得到数值8,变量c得到字符'A',正确的输入是(符号□表示空格)______。 (A)8,A,8 (B)8□A□8 (C)8□A8 (D)8A8 >>> TYPE=02 AND KENID=33000003 <<< 4,3 D 设有说明语句:int i,j ,若从键盘给i、j输入数据,以下不正确的输入语句是______。 (A)scanf(\"%d%d\ (B)scanf(\"%dW%d\ (C)scanf(\"%d,%d\(D)scanf(\"%d%d\>>> TYPE=02 AND KENID=33000003 <<< 4,3 B 设有说明语句:float x,y,z; ,要通过语句scanf(\"%f%f%f\给x赋值11.0,y赋值22.0,z赋值33.0,以下不正确的输入形式是______。 (A)11.0<回车> 22.0<回车> 33.0<回车> (B)11.0,22.0,33.0<回车> (C)11.0<回车> 22.0 33.0<回车> (D)11 22<回车> 33<回车> >>> TYPE=02 AND KENID=33000003 <<< 4,2 B 有程序段: int i; float f; char name[20]; scanf(\"%2d%f%s\ 若从键盘上输入566777abc 后,变量f的值是______。 (A)566777.0 (B)6777.0 (C)777.0 (D)0.0 >>> TYPE=02 AND KENID=33000003 <<< 4,2 B 设有说明语句:char c; ,不能用于判断变量c中的字符是否为大写字母的表达式是______。 (A)isupper(c) (B)'A'<=c<='Z' (C)'A'<=c&&c<='Z' (D)(c<='z'-32)&&('a'-32<=c) >>> TYPE=02 AND KENID=33000003 <<< 4,3 C 已知字符大写字母'A'的ASCII码是65,设有说明语句:char c1='A',c2='D'; ,则语句printf(\"%d,%d\\n\的输出结果是______。 (A)A,B (B)A,68 (C)65,66 (D)65,68 >>> TYPE=02 AND KENID=33000003 <<< 4,3 A 设有说明语句:int x=1; ,语句printf(\"%d\\n\的输出结果是______。 (A)-1 (B)0 (C)1 (D)2 >>> TYPE=02 AND KENID=33000003 <<< 4,2 D 以下表达式中,不能将字符变量c中的大写字母转换为对应小写字母的是______。 (A)c=(c-'A')%26+'a' (B)c=c+32 (C)c=c-'A'+'a' (D)c=('A'+c)%26-'a' >>> TYPE=02 AND KENID=33000003 <<< 4,2 A 以下程序运行后的输出结果是______。 #include { int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */ printf(\"a+b=%d\\n\ } (A)a+b=10 (B)a+b=30 (C)10 (D)30 >>> TYPE=02 AND KENID=33000003 <<< 4,2 B 若要求从键盘读入含有空格字符的字符串,应使用函数______。 (A)getch (B)gets (C)getchar (D)scanf >>> TYPE=02 AND KENID=33000003 <<< 4,2 B 以下四个程序中,完全正确的是______。 (A)#include { /*programming*/ printf(\"programming!\\n\"); } (B)#include { /*/ programming /*/ printf(\"programming!\\n\"); } (C)#include { /*/*programming*/*/ printf(\"programming!\\n\"); } (D)include { /*programming*/ printf(\"programming!\\n\"); } >>> TYPE=02 AND KENID=33000003 <<< 4,2 D 以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是______。 #include { /* Beginning */ int r; float s; scanf(\"%d\ s=pi*r*r; printf(\"s=%f\\n\ } (A)注释语句书写位置错误 (B)存放圆半径的变量r不应该定义为整型 (C)输出语句中格式描述符非法 (D)计算圆面积的赋值语句中使用了非法变量 >>> TYPE=02 AND KENID=33000003 <<< 4,3 A 设有说明语句:int k=1,m=2; double d=7.3; ,以下表达式中错误的是______。 (A)k>=m=k (B)k++ (C)k%(int)d (D)d>m>k >>> TYPE=02 AND KENID=33000003 <<< 4,3 A 设有说明语句:int a=2,b=3,c=4; ,以下选项中值为0的表达式是______。 (A)(!a==1)&&(!b==0) (B)(a>> TYPE=02 AND KENID=33000003 <<< 4,3 D 执行以下程序段后,变量k的值是______。 int k=0,c=3; k=(k>c?c:k); (A)3 (B)2 (C)1 (D)0 >>> TYPE=02 AND KENID=33000003 <<< 4,2 C 以下程序运行后的输出结果是______。 #include int x=102,y=012; printf(\"%2d,%2d\\n\ } (A)10,01 (B)02,12 (C)102,10 (D)102,12 >>> TYPE=02 AND KENID=33000003 <<< 4,3 D 以下4个选项中,不能看作一条语句的是______。 (A){;} (B)a=0,b=0,c=0; (C)if(a>0); (D)if(b==0) m=1;n=2; >>> TYPE=01 AND KENID=33000003 <<< 1,3 B,66 已知大写字母'A'的ACSII码是65,设有说明语句:char ch='B'; ,则语句printf(\"%c,%d\的输出结果是【 】 >>> TYPE=01 AND KENID=33000003 <<< 1,2 25,37 以下程序运行后的输出结果是【 】。 #include printf(\"%d,%d\ } >>> TYPE=01 AND KENID=33000003 <<< 1,2 88 以下程序运行后的输出结果是【 】。 #include { int x=0210; printf(\"%X\ } >>> TYPE=01 AND KENID=33000003 <<< 1,3 2 以下程序运行后的输出结果是【 】。 #include { int a=1,b=2,c=3; if(a) printf(\"%d\ else printf(\"%d\ } >>> TYPE=01 AND KENID=33000003 <<< 1,2 12,34 若在运行以下程序时输入:1234567<回车>,则输出结果是【 #include < stdio.h > void main() { int a=1,b; scanf(\"%2d%2d\ printf(\"%d,%d\ } 】。 >>> TYPE=01 AND KENID=33000003 <<< 1,3 Z 以下程序运行后的输出结果是【 】。 #include printf(\"%c\ } >>> TYPE=01 AND KENID=33000003 <<< 1,2 6,5,A 若在运行以下程序时输入:65 65<回车>,则输出结果是【 #include char a,b,c; scanf(\"%c%c%d\ printf(\"%c,%c,%c\ } >>> TYPE=01 AND KENID=33000003 <<< 1,3 3,3.00 以下程序运行后的输出结果是【 】。 #include double d; int i; d=i=10/3; printf(\"%d,%.2f\ } >>> TYPE=01 AND KENID=33000003 <<< 1,3 Visual C++,Visual 】。 以下程序运行后的输出结果是【 】。 #include printf(\"%s,%.6s\ } >>> TYPE=01 AND KENID=33000003 <<< 1,3 d=11.6; 设有说明语句:double d=11.555; ,语句printf(\"d=%.1f;\的输出结果是【 】。 >>> TYPE=04 AND KENID=33000003 <<< 2,2 A 以下程序运行后的输出结果是:16,20。 #include int x=016,y=16; printf(\"%o,%o\ } >>> TYPE=04 AND KENID=33000003 <<< 2,3 A 以下程序运行后的输出结果是:i=5,d=5.50。 #include int i=5; double d=5.5; printf(\"i=%d,d=%.2f\ } >>> TYPE=04 AND KENID=33000003 <<< 2,2 B 设有说明语句:int a,b; ,对于语句scanf(\"%d%*d%d\,当输入为:1□2□3时(符号□表示空格),将1赋给a,将2赋给b。 >>> TYPE=04 AND KENID=33000003 <<< 2,3 B 语句printf(\"%4d\的输出结果是:1234 。 >>> TYPE=04 AND KENID=33000003 <<< 2,3 B printf函数中的格式字符,不必区分大小写。 >>> TYPE=04 AND KENID=33000003 <<< 2,3 A a+=a=2;是一条合法的赋值语句,赋值后a的值为4。 >>> TYPE=04 AND KENID=33000003 <<< 2,2 B 以下程序运行时,若输入字母'g',则输出结果是:a。 #include char c1; c1=getchar(); printf(\"%c\ } >>> TYPE=04 AND KENID=33000003 <<< 2,2 A 以下程序运行时,若输入数据为66 6666,则输出结果是:i=66,c=6。 #include int i; char c; scanf(\"%2d%4c\ printf(\"i=%d,c=%c\ } >>> TYPE=04 AND KENID=33000003 <<< 2,3 A scanf函数的功能是按格式控制字符串规定的格式,从指定的输入设备上输入数据。 >>> TYPE=04 AND KENID=33000003 <<< 2,3 A scanf函数中的地址表列是由地址项组成的。 >>> 第四章 TYPE=02 AND KENID=33000004 <<< 4,3 B 判断字符型变量c1是否为大写字母的正确表达式为______。 (A) 'Z'<=c1<='Z' (B) (c1>='A') &&(c1<='Z') (C) ('A'>=c1)||('Z'<=c1) (D) (c1>='a')&&(c1<='Z') >>> <<< 4,3 C 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是______。 (A) 0 (B) 语法错 (C) 1 (D)“假” >>> <<< 4,2 C 设a=3,b=4,c=5,则逻辑表达式\"!(a+b)*c-1&&b+c%2\"的值是______。 (A) -1 (B) 0 (C) 1 (D) 2 >>> <<< 4,3 D 请从以下表达式中选出a为偶数时值为0的表达式______。 (A) a%2==0 (B) !a%2!=0 (C) a/2*2-2==0 (D) a%2 >>> <<< 4,3 D 能正确表示a和b同时为正或同时为负的逻辑表达式是______。 (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 >>> <<< 4,3 C 能正确表示逻辑关系:\"0≤a≤10\"的C语言表达式是______。 (A) 0<=a<=10 (B) a>=0,a<=10 (C) a>=0 &&a<=10 (D) a>=0‖a<=10 >>> <<< 4,3 C 对y在[3,23]或[100,200]范围内为真的表达式为______。 (A) (y>=3)&&(y<=23)&&(y>=100)&&(y<=200) (B) (y>=3)||(y<=23)||(y>=100)||(y<=200) (C) (y>=3)&&(y<=23)||(y>=100)&&(y<=200) (D) (y>=3)||(y<=23)&&(y>=100)||(y<=200) >>> <<< 4,3 D 在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式______。 (A) 只能用逻辑表达式 (B) 只能用逻辑表达式或关系表达式 (C) 只能用关系表达式 (D) 可用任意表达式 >>> <<< 4,3 B 为避免嵌套的条件语句if-else的二义性,C语言规定:else与______配对。 (A) 缩排位置相同的if (B) 其之前最近的if (C) 其之后最近if (D) 同一行上的if >>> <<< 4,3 A 下列运算符中优先级最低的是______。 (A) *= (B) && (C) + (D) != >>> <<< 4,2 B 设ch是字符型变量,其值为A,且有下面的表达式: ch=!(ch>='A'&&ch<='z')?ch:(ch+32),则表达式的值是______。 (A) A (B) a (C) 2 (D) z >>> <<< 4,2 B 设ch是字符型变量,其值为b,且有下面的表达式: ch!=(ch>='a'&&ch<='z')?ch:(ch-32),则表达式的值是______。 (A) B (B) b (C) 1 (D) 0 >>> <<< 4,3 D 设a=4,b=3,c=2,d=1,则表达式a>> <<< 4,3 A 能正确表示a、b不能同时为零的逻辑表达式是______。 (A) a==0&&b!=0||a!=0&&b==0 (B) (a==0)||(b==0) (C) (a!=0)||(b!=0) (D) a*b==0 >>> <<< 4,1 B 读程序,程序运行结果是【 】。 #include { int a=5,b=4,c=3,d=2; if (a>b>c) printf(\"%d\\n\ else if ( (c-1>=d) ==1) printf(\"%d\\n\ else printf(\"%d\\n\ } (A) 2 (B) 3 (C)4 (D)5 >>> <<< 4,3 B 表达式2<3&&8<=(a=10)的结果是______。 (A) 0 (B) 1 (C) False (D) True >>> <<< 4,3 B 若i为整型变量,且有程序段如下,则输出结果是______。 i=122; if(i%2) printf(\"####\"); else printf(\"****\"); (A) #### (B) **** (C) ####**** (D) 有语法错误, 无输出结果 >>> <<< 4,2 A 若变量都已正确说明,则以下程序段输出为______。 int a=2,b=1,c,d; if (a==b) c=d=a; else c=b; d=b; printf(\"c=%d,d=%d\ (A) c=1,d=1 (B) c=1,d=2 (C) c=2,d=1 (D) c=2,d=2 >>> TYPE=02 AND KENID=04000020 <<< 4,2 C 请阅读以下程序: # include { int a=2,b=0,c=0; if(a=b+c) printf(\"###\"); else printf(\"&&&\"); } 以上程序______。 (A) 有语法错不能通过编译 (B) 可以通过编译但不能连接 (C) 输出&&& (D) 输出### >>> <<< 4,3 B 以下______为不正确的if语句。 (A) if(x (D) if(x 读程序,程序运行结果是【 】。 #include if (m++>5) printf(\"%d\\n\ else printf(\"%d\\n\} (A) 4 (B) 5 (C)6 (D) 7 >>> <<< 4,2 B 设int a = 2,b = 3, x = 1;则执行语句 if (a>2) if (b>2) x = 2 ; else x = 3; 后 x 的值是______。 (A) 0 (B) 1 (C) 2 (D) 3 >>> <<< 4,3 A 以下if语句语法正确的是______。 (A) if (x>0) (B) if (x>0) printf ( \"%f \ { x=x+y; printf (\"%f \else printf (\"%f\ else printf (\"%f \ (C) if (x>0) (D) if(x>0) {x=x+y ; printf (\"%f \{ x=x+y ; printf (\"%f\ else printf (\"%f\else printf (\"%f\>>> <<< 4,2 B 读程序,程序运行结果是【 】。 # include { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf(\"%d, %d, %d\\n\ } (A) 1, 0, 6 (B) 1, 0, 7 (C) 1, 1, 6 (D) 1, 1, 7 >>> <<< 4,2 A 读程序,程序运行结果是【 】。 #include { 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) a=2,b=1 (B) a=2,b=2 (C) a=1,b=2 (D) a=1,b=1 >>> <<< 4,2 A 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是______。 (A) if (x>0) y=1; (B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; (C) y=-1; (D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; >>> <<< 4,2 B 读程序,程序运行结果是【 】。 #include { float x=2.0,y; if(x<0.0) y=0.0; else if(x<5.0) y=1.0/x; else y=1.0; printf(\"%4.1f\\n\ } (A) 0.0 (B) 0.5 (C) 1.0 (D) 不确定 >>> <<< 4,2 C 以下程序段中不能根据x值正确计算出y值的是______。 (A) if(x>0) y=1; (B) y=0; else if(x==0) y=0; if(x>0) y=1; else y=-1; else if(x<0) y=-1 ; (C) y=0; (D) if(x>=0) if(x>=0); if(x>0) y=1; if(x>0) y=1 ; else y=0; else y=-1; else y=-1; >>> <<< 4,2 A 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。 (A) if((a>b)&&(b>c)) k=1; (B) if((a>b)||(b>c)) k=1 else k=0; else k=0; (C) if(a<=b) k=0; (D) if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; >>> <<< 4,2 D 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w 若有条件表达式(expression) ?a++:b--,则以下表达式中能完全等价于表达式(expression)的是______。 (A) (expression==0) (B) (expression!=0) (C) (expression==1) (D) (expression!=1) >>> <<< 4,2 D 若有以下定义: float x;int a,b;则正确的switch 语句是______。 (A) switch(x) (B) switch(x) { case 1.0:printf(\"*\\n\"); { case 1:printf(\"*\\n\"); case 2.0:printf(\"**\\n\"); } case 2:printf(\"**\\n\"); } (C) switch (a+b) (D) switch (a+b); { case 1,2:printf(\"*\\n\"); { case 1:case 2: printf(\"*\\n\"); } >>> TYPE=01 AND KENID=33000004 <<< 1,3 1 已知a=2.5,b=2,c=3.6,表达式a>b&&c>a || ab的值是【 】。 >>> <<< 1,3 x>2||x<-2 表示\"整数x的绝对值大于2\"时值为\"真\"的C语言表达式是【 】。 >>> <<< 1,3 ! C语言提供的三种逻辑运算符是&& 、||和【 】。 >>> <<< 1,3 1 已知a=3,b=-4,c=5,表达式!(a>b)+(b!=c)||(a+b)&&(b-c)的值是【 】。 >>> <<< 1,2 (3+a)*(b+8)+sin(45)<=log(x) 表达式(3+a)(b+8)+sin45°≤lnx的C语言表达式是【 】。 >>> <<< 1,2 (0<=a&&a<=5)&&(a!=3) 表达式0≤a≤5且a≠3的C语言表达式是【 】。 >>> <<< 1,2 c=c+5 以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如'a'变成'f','w'变成'b'。请在空中填入正确内容。 #include { char c; c=getchar(); if(c>='a'&&a<='u') 【 】; else if(c>='v'&&c<='z') c=c-21; putchar(c); } >>> <<< 1,2 b>a>0 阅读下面程序: #include { int s, t, a, b; scanf(\"%d%d\ s=1; t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf(\"s=%d, t=%d\ 为了使输出结果t=4, 输入量a和b应满足的条件是【>>> <<< 1,2 3 以下程序运行后的输出结果是【 】。 #include { int a=1, b=2, c=3; if (a) { if (b<0) c=0; } else c++ ; printf(\"%d\\n\ } >>> <<< 1,2 3 运行下面的程序,从键盘上输入3, #include { int x; scanf(\"%d\",&x); if(x>5)printf(\"%d\",x); else printf(\"%d\\n\",x--); } 程序运行结果是【 3 】。 >>> 】。 <<< 1,2 'c' 读程序,程序运行结果是【 】。 #include if(m++> 'b') printf(\" %c\\n\ else printf(\"%c\\n\} >>> <<< 1,2 0.500000 读程序,运行时输入2.0(回车) #include { float a,b; scanf(\"%f\ if (a>10.0) b=1.0/a; else if((a<0.5)&&(a!=2.0))b= 1.0/(a+2.0); else if(a<10.0) b= 1.0/a ; else b=10.0; printf(\"%f\\n\ } 程序运行结果是【 】。 >>> TYPE=04 AND KENID=33000004 <<< 2,3 B switch选择结构中必须有default子句。 >>> <<< 2,3 B 如果x>y或ay&&a>> <<< 2,3 A 假定变量x,y,z在说明时已赋初值,则if ((x=y+5)>0) z=x;是正确的。 >>> <<< 2,3 B int a=1,b=0,c=1;,则!(a+b)+c-0&&b+c/2的值为1。 >>> <<< 2,3 B 语句if(a) x=1;与 if(a==0)x=1;等价。 >>> <<< 2,3 A if (x>0) {x=x+y ; printf (\"%f \语句语法是正确的。 >>> <<< 2,3 A if语句后面的表达式并不限于是关系表达式或逻辑表达式,而可以是任意表达式。if语句中可以再嵌套if语句。 >>> <<< 2,3 A !b==c||d>> <<< 2,3 B 5>0 && 4>2的结果为假。 >>> <<< 2,3 A a&&b&&c逻辑表达式中,当a为假时将不再计算b和c的值了。 >>> 第五章 TYPE=02 AND KENID=05000001 <<< 4,3 C 执行程序段: x=-1; do { x=x*x;} while(!x); 的结果是______。 (A)死循环 (B)循环执行2次 (C)循环执行一次 (D)有语法错误 >>> TYPE=02 AND KENID=05000001 <<< 4,3 D 有以下程序: #include { while(putchar(getchar())!='?'); } 当输入\"hello?\"时,程序的执行结果是______。 (A)hello (B)dijob (C)dijob? (D)hello? >>> TYPE=02 AND KENID=05000001 <<< 4,3 D 以下程序的输出为______。 #include void main( ) { int y=5; while (y--); printf (\"y=%d\\n\(A)y=0 (B)无限循环,无结果输出 (C)y=1 (D)y=-1 >>> TYPE=02 AND KENID=05000001 <<< 4,3 A 设有程序段: int x=0,s=0; while(x!=0) s+=++x; printf(\"%d\则运行程序段后______。 (A)输出0 (B)输出1 (C)控制表达式是非法的 (D)执行无限次 >>> TYPE=02 AND KENID=05000001 <<< 4,3 C 设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是______。 (A)while 循环执行10次 (B)循环是无限循环 (C)循环体语句一次也不执行 (D)循环体语句执行一次 >>> TYPE=02 AND KENID=05000002 <<< 4,3 B C语言的do-while循环中,循环由do开始,用while结束;而且在while表达式后面的______不能丢,它表示do-while循环的结束。 (A)\\n (B)“;” (C)“%” (D) “,” >>> TYPE=02 AND KENID=05000002 <<< 4,3 C 以下能正确计算1×2×3×4...×10的程序段是______。 (A)do {i=1; s=1; s=s*i; i++;} while(i<=10); (B)do {i=1; s=0; s=s*i; i++;} while(i<=10); (C)i=1; s=1; do {s=s*i; i++;} while(i<=10); (D)i=1; s=0; do {s=s*i; i++;} while(i<=10); >>> TYPE=02 AND KENID=05000002 <<< 4,3 C 以下描述中正确的是______。 (A)由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 (B)do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。 (C)在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。 (D)do-while循环中,根据情况可以省略while。 >>> TYPE=02 AND KENID=05000002 <<< 4,3 D 下面程序段的输出结果是______。 int x=3; do{printf(\"%3d\ (A)1 2 (B)3 2 (C)2 3 (D)1 -2 >>> TYPE=02 AND KENID=05000003 <<< 4,3 C C语言的for语句中的表达式可以部分或全部省略,但两个______不可省略。当三个表达式均省略后,因缺少判断条件,循环可能会无限制地进行下去,形成死循环。 (A)“<” (B)“++” (C)“;” (D)“,” >>> TYPE=02 AND KENID=05000003 <<< 4,3 B 对于for(表达式;;表达式3)可理解为______。 (A)for(表达式;0;表达式3) (B)for(表达式;1;表达式3) (C)for(表达式;表达式1;表达式3) (D)for(表达式;表达式3;表达式3) >>> TYPE=02 AND KENID=05000003 <<< 4,3 B 若i为整型变量,则以下循环执行的次数是______。 for(i=2;i==0;) printf(\"%d\ (A)无限次 (B)0次 (C)1次 (D)2次 >>> TYPE=02 AND KENID=05000003 <<< 4,3 C 以下for循环的执行次数是______。 for(x=0,y=0;(y=3)&&(x<4);x++,y++); (A)是无限循环 (B)循环次数不定 (C)执行4次 (D)执行3次 >>> TYPE=02 AND KENID=05000003 <<< 4,3 A 设i为整型量,执行循环语句for(i=50;i>=0;i-=10);后,i值为______。 (A)-10 (B)0 (C)10 (D)50 >>> TYPE=02 AND KENID=05000003 <<< 4,3 D 下面有关for循环的正确描述是______。 (A)for循环只能用于循环次数已经确定的情况。(B)for循环是先执行循环体语句,后判断表达式。 (C)在for循环中,不能用break语句跳出循环体。(D)for循环的循环体语句中,可以包含多条语句,但要用花括号括起来。 >>> TYPE=02 AND KENID=05000003 <<< 4,3 A 下面有关for循环的正确描述是______。 (A)for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。(B)for语句的三个表达式都是可以省略的,可以写成for( )。 (C)在for语句中,至少会执行循环体语句一次。 (D)for(;;) ; 是一条语法上错误的语句。 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 在下列选项中,没有构成死循环的程序段是______。 (A)int i=100; while (1) {i=i%100+1; if(i>100)break;} (B)for(;;); (C)int k=1000; do{--k;} while (k); (D)int s=36; while(s>=0) ; --s; >>> TYPE=02 AND KENID=05000003 <<< 4,5 A 以下程序段的输出结果是______。 int x,i; for (i=1;i<=100;i++) { x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) printf(\"%d \ (A)25 67 (B)26 68 (C)27 69 (D)28 70 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 以下程序段的输出结果是______。 #include for ( ;i<=10; ) { i++; if (i%3==0) printf(\"%d \ else continue;} } (A)3 (B)3 6 (C)3 6 9 (D)3 6 9 10 >>> TYPE=02 AND KENID=05000005 <<< 4,3 B 以下正确的描述是______。 (A)continue语句的作用是结束整个循环的执行。 (B)只能在循环体内和switch语句内使用break语句。 (C)在循环体内,使用break语句和使用continue语句的作用是相同的。( D)从多层循环嵌套中退出时,只能使用goto语句。 >>> TYPE=02 AND KENID=05000005 <<< 4,3 D 下面程序段,______。 for(t=1;t<=100;t++) { scanf(\"%d\ if (x<0) continue; printf(\"%3d\ } (A)当x<0时整个循环结束 (B)当x>=0时什么也不输出 (C)printf函数永远也不执行 (D)最多允许输出100个非负整数 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 以下为死循环的程序段是______。 (A)for(i=1; ; ) {if (++i%2==0) continue; if (++i%3==0) break; } (B)short int i; i=100; do { if (i<0) break;} while(++i); (C)for(i=1; ; ) if (++i<10) continue; (D)i=100; while(i--); >>> TYPE=02 AND KENID=05000004 <<< 4,3 D 以下程序输出结果为______。 #include for(i=1;i<=3;i++) { b=i%3; while (b-->=0) k++; } printf(\"%d,%d\\n\ } (A)3,-1 (B)6,-1 (C)3,0 (D)6,-2 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 以下描述正确的是______。 (A)goto语句只能用于退出多层循环。 (B)switch语句中不能出现continue语句。 (C)只能用continue语句来终止本次循环。 (D)在循环中break语句不能独立出现。 >>> TYPE=02 AND KENID=05000005 <<< 4,3 B 以下不正确的描述是______。 (A)break语句不能用于循环语句和switch语句外的任何其他语句。 (B)在switch语句中使用break语句或continue语句的作用相同。 (C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。 (D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 以下叙述正确的是______。 (A)for循环中的break; 语句表示:当条件成立时中止程序执行。 (B)for循环中的continue; 语句表示:当条件成立时中止本层循环。 (C)for循环中的break; 语句表示:当条件成立时中止本层循环。 (D)for循环中的break; 语句表示:当条件成立时暂停本次循环。 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 下面程序的运行结果是______。 #include for(i=0;i<2;i++) { x++; for(j=0;j<=4;j++) { if(j%2) continue; x++; } x++; } printf(\"x=%d\\n\} (A)x=6 (B)x=8 (C)x=10 (D)x=12 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 下面程序段输出的i值是______。 #include for(i=1;i<=50;i++) if((i*i>=130)&(i*i<=180))break; printf(\"%d\\n\} (A)10 (B)11 (C)12 (D)13 >>> TYPE=02 AND KENID=05000005 <<< 4,3 C 下面程序段在执行完成后,a的值为:______。 int j=0,k=0,a=0; while(j<3) { j++; a=a+1; k=0; while(k<=2) { k++; if(k%2!=0) continue; a=a+1; } a=a+1; } (A)6 (B)8 (C)9 (D)10 >>> TYPE=01 AND KENID=05000001 <<< 1,3 4 下面程序的运行结果是___________。 #include while(a*a*a<=50) ++a; printf(\"%d\\n\} >>> TYPE=01 AND KENID=05000001 <<< 1,3 Ifmmp 当运行下面程序时,从键盘键入Hello?<回车>,则下面程序的运行结果是【 】。 #include while((c=getchar())!='?') putchar(++c); } >>> TYPE=01 AND KENID=05000002 <<< 1,3 40 执行下面程序后,k值是【 】。 #include { int k=1,n=452; do { k*=n%10; n/=10; } while(n); printf(\"%d\\n\} >>> TYPE=01 AND KENID=05000002 <<< 1,3 k=14 n=-1 当运行以下程序时,从键盘键入1 2 3 4 5 -1 <回车>,则下面程序的运行结果是【 】。 #include { int k=0,n; do { scanf(\"%d\printf(\"k=%d n=%d\\n\>>> TYPE=01 AND KENID=05000003 <<< 1,3 10 以下程序输出结果为【 】。 #include\"stdio.h\" void main() { int i; for(i=0;i<10;i++); printf(\"%d\>>> TYPE=01 AND KENID=05000003 <<< 1,3 55 下面程序的运行结果是【 】。 #include { int a=0,i;for(i=1;i<=5;i++) a+=i*i;printf(\"%d\\n\} >>> TYPE=01 AND KENID=05000005 <<< 1,2 x=6 下列程序的输出结果为【 】。 #include for(i=0;i<3;i++) {if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; } x++; } printf(\"x=%d\\n\ } >>> TYPE=01 AND KENID=05000005 <<< 1,2 6 设x和y均为int型变量,则执行以下的循环后,y值为【 】。 for(y=1,x=1;y<=50;y++) { if(x>=10) break; if (x%2==1){ x+=5; continue;} x-=3; } >>> TYPE=01 AND KENID=05000005 <<< 1,2 abcDEF 在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为【 】。 #include while((ch=getchar( ))!='\\n') {if(ch>='A' && ch<='Z') ch=ch+32; else if(ch>='a'&&ch<'z') ch=ch-32;printf(\"%c\ printf(\"\\n\"); } >>> TYPE=01 AND KENID=05000005 <<< 1,2 7,7 运行以下程序后,如果从键盘上输入student#<回车>,则输出结果为【 】。 #include { int v1=0,v2=0; char ch; while((ch=getchar( ))!='#') switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;} printf(\"%d,%d\\n\>>> TYPE=01 AND KENID=05000004 <<< 1,2 6 运行下面程序后,输出结果为【 6 】。 #include for(i=1;i<=10;i+=4) for(j=3;j<=10;j+=4) m++; printf(\"%d\\n\ } >>> TYPE=01 AND KENID=05000004 <<< 1,1 a!=b 下面程序的功能是将从键盘上输入的一对数,由小到大排序输出。当输入一对相等数时结束循环。请将程序补充完整。 #include { int a,b,t; scanf(\"%d%d\ while(【 】) { if (a>b) {t=a;a=b;b=t;} printf(\"%d,%d\\n\ scanf(\"%d%d\ } } >>> TYPE=01 AND KENID=05000004 <<< 2,1 c-=30 c-=26 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请将程序补充完整。 #include while ((c=getchar())!='\\n') { if (c>='a' && c<='z') 【 】; if (c>'Z' && c<='Z'+2) 【 】; printf(\"%c\\n\ } } >>> TYPE=01 AND KENID=05000004 <<< 1,3 c=getchar() 下面程序的功能是从键盘输入的一组字符中分别统计出大写和小写字母的个数,当输入换行符时结束输入。请将程序补充完整。 #include { int m=0,n=0; char c; while ( (【 】)!='\\n') { if (c>='A' && c<='Z') m++; if (c>='a' && c<='z') n++; } printf(\"m=%d,n=%d\\n\} >>> TYPE=01 AND KENID=05000004 <<< 2,2 c!='\\n' c>='0'&&c<='9' 下面程序段是从键盘输入的字符中统计数字字符个数,用换行符结束循环。请将程序补充完整。 int n=0,c; c=getchar(); while(【 】) { if(【 】) n++; c=getchar(); } >>> TYPE=01 AND KENID=05000003 <<< 2,1 t=t*i t=-t/i 下面程序的功能是计算1-3+5-7+...-99+101的值。请将程序补充完整。 #include { int i,t=1,s=0; for(i=1;i<=101;i+=2) {【 】; s+=t;【 】;} printf(\"%d\\n\} >>> TYPE=01 AND KENID=05000003 <<< 1,2 x*2+y*4==90 鸡兔共有30只,脚共有90个,下面程序是计算鸡兔各有多少只。请将程序补充完整。 #include for(x=1;x<=29;x++) {y=30-x; if (【 】)printf(\"%d,%d\\n\ } >>> TYPE=01 AND KENID=05000004 <<< 2,1 j=1 k>=0&&k<=6 下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有的方案。请将程序补充完整。 #include { int i,j,k; printf(\"\\n 红 白 黑 \\n\"); for(i=0;i<=3;i++) for(【 】;j<=5;j++) { k=8-i-j; if (【 】) printf(\" %3d %3d %3d \\n\ } } >>> TYPE=01 AND KENID=05000004 <<< 2,1 i%3==2&&i%5==3&&i%7==2 j%5==0 下面程序的功能是用do-while 语句求1-1000之间满足“用3除余2、用5除余3、用7除余2”的数,且一行只打印5个数。请将程序补充完整。 #include { printf(\"%4d\j=j+1; if (【 】) printf(\"\\n\"); } i=i+1; }while(i<1000); } >>> TYPE=04 AND KENID=03000008 <<< 2,3 B while语句do-while语句无论什么情况下,二者的执行结果都一样。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 A C语言的while、do-while和for几个循环语句,可以相互嵌套。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 B 用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 B 要使for(表达式1;表达式2;表达式3){循环体}不形成死循环,表达式2一定不能省略。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 A while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 B continue语句的功能就是结束本层循环。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 A 对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 A break语句不能用于循环语句和switch语句之外的任何其它语句。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 B 在多层循环嵌套中,可以共用一个continue结束各层的本次循环。 >>> TYPE=04 AND KENID=03000008 <<< 2,3 B 三种循环(for循环、while循环和do-while循环)可以互相嵌套,但必须使用相同的循环控制变量。 >>> 第六章 TYPE=02 AND KENID=33000006 <<< 4,3 B 在VC6.0中有定义语句:short int a[15]; 则数组a占用的字节数是________。 (A) 15 (B) 30 (C) 60 (D) 120 >>> <<< 4,3 C 若有数组定义语句:int a[3]={6}; float b[3]; double c[3]={1.2,-56.7,38}; 则以下判断哪一个不成立________。 (A) a[0]的初值为6 (B) c[1]的初值为-56.7 (C) b[1]的初值为0 (D) b[0]的初值为随机值 >>> <<< 4,3 A 有定义语句:int i; double a[4]; 若通过键盘输入为数组a的4个元素赋值,输入时不同数据之间使用默认分隔符,则下面正确的输入语句是________。 (A) for(i=0;i<4;i++) scanf(\"%lf\ (B) for(i=0;i<4;i++) scanf(\"%f\ (C) for(i=0;i<4;i++) scanf(\"%lf\\n\ (D) for(i=0;i<4;i++) scanf(\"%f,\>>> <<< 4,3 D 若有数组定义语句:int a[][3]={{2},{4,5},{6,8,9}},b[][3]={2,4,5,6,8,9}; 则a[1][2]和b[1][2]的初值分别为________。 (A)5,4 (B) 0,4 (C) 随机值,9 (D) 0,9 >>> <<< 4,3 C 以下二维数组定义中正确的是________。 (A) int a[][4]; (B) float b[3][]; (C) #define N 5.6 double c[(int)N][3]; (D) #define N 3 double d[N++][5]; >>> <<< 4,3 A 已知以下程序段的运行结果为“6 5 4 3 2 1”,则下划线所在位置应填入的代码是________。 #define N 6 int a[N]={1,2,3,4,5,6},i,t; for(i=0;i<________;i++) {t=a[i]; a[i]=a[N-i-1];a[N-i-1]=t;} for(i=0;i 在VC6.0中定义二维数组并初始化:int a[][3]={1,2,3,4,5,6,7}; 则以下判断中不正确的是________。 (A) 数组a包含9个元素 (B) a[1][2]的初值为6 (C) a[2][2]的初值为0 (D) 在程序中引用a[2][3]会导致编译错误 >>> <<< 4,3 B 以下程序段的输出结果是________。 int a[4][4]={{1},{2,3},{4,5,6},{7,8,9,10}},s=0,i; for(i=0;i<4;i++) s+=a[i][i]+a[i][3-i]; printf(\"%d\\n\ (A) 20 (B) 32 (C) 12 (D) 随机值 >>> <<< 4,3 C 若有定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; char c='a'; 则值为4的合法表达式是________。 (A) a[4] (B) a['d'-'c'] (C) a['d'-c] (D) a[100.0-c] >>> <<< 4,3 D 以下在VC6.0中会导致编译错误的语句是________。 (A) #define N '6' int a[N-0x30]={N}; (B) int a[]={21.3,0.96,5,47.8}; (C) int a[][3]={10,20,30,40}; (D) int a[5]={1,2,3,4,5,6,7}; >>> <<< 4,3 C 以下程序段的输出结果是________。 int a[7]={9,15,7,-3,0,11,15},m,n,i; for(m=n=0,i=1;i<7;i++) if(a[i]>a[m]) m=i; else if(a[i](A) 15,-3 (B) 6,3 (C) 1,3 (D) 2,4 >>> <<< 4,3 B 以下说法正确的是________。 (A) 可以在程序的不同位置对数组的长度进行动态更新。 (B) 二维数组可以看成是特殊的一维数组,它的每个元素都是一个一维数组。 (C) 即使不对数组进行初始化,系统也会自动为数组元素赋予默认初值。 (D) 在定义二维数组并对其进行初始化时,允许省略列下标。 >>> <<< 4,3 D 以下程序段用冒泡法对数组a进行由大到小排序,则下划线所在位置应填入的代码是________。 int a[5]={29,47,14,110,8},i,j,t; for(i=0;i<=3;i++) for(j=0;j<=________;j++) if(a[j]>> <<< 4,3 C 若有以下程序段,则数组b中列下标为偶数的元素之和是________。 int a[12],b[3][4],i,j; for(i=0;i<12;i++) a[i]=i+1; for(i=0;i<3;i++) for(j=0;j<4;j++) b[i][j]=a[i*4+j]; (A) 42 (B) 15 (C) 36 (D) 24 >>> <<< 4,3 D 在VC6.0中有定义语句:double a[5]={23.7,1.08,-6.5,43.4,0.69}; int i; 则下列语句中错误的是________。 (A) for(i=0;i<5;i++) a[i]=getchar(); (B) for(i=0;i<5;i++) a[i]+='a'; (C) for(i=0;i<5;i++) printf(\"%f\\n\(D) for(i=0;i<5;i++) scanf(\"%lf\>>> <<< 4,3 D 下列程序段在运行时,若通过键盘输入的数据为“1 3 47 9 23 15 11 32 19 2”,则输出结果是________。 int a[10],b[10],i,j,cnt=0; for(i=0;i<10;i++){ scanf(\"%d\ for(j=2;j<=a[i]/2;j++) if(a[i]%j==0) break; if(j>a[i]/2) b[cnt++]=a[i]; } for(i=cnt-1;i>=0;i--) printf(\"%d \ (A) 2 19 11 23 47 3 (B) 2 3 11 19 23 47 (C) 1 2 3 11 19 23 47 (D) 2 19 11 23 47 3 1 >>> <<< 4,3 A 以下程序段用选择法对数组a进行由小到大排序,则下划线所在位置应填入的代码是________。 int a[5]={86,12,57,39,165},i,j,t; for(i=0;i<=3;i++) for(j=________;j<=4;j++) if(a[j]>> TYPE=04 AND KENID=33000006 <<< 2,3 B 数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型或者字符串类型。 >>> <<< 2,3 B 若需定义一个包含2行3列共6个元素的二维整型数组a,并对其最后1行的3个元素进行初始化,可用如下语句实现: int a[][3]={{5,6,7}}; >>> <<< 2,3 B C语言程序在编译过程中,编译器会检查数组下标是否越界。 >>> <<< 2,3 A 以下程序段在运行时,若通过键盘输入“1 2 3 4 5 6”,则输出结果为“1 4 2 5 3 6”。 int a[2][3],b[3][2],i,j; for(i=0;i<2;i++) for(j=0;j<3;j++){scanf(\"%d\for(i=0;i<3;i++) for(j=0;j<2;j++) printf(\"%d \>>> <<< 2,3 B 在定义数组时,只允许使用整型常量表达式来定义数组的长度,其值必须是正整数。 >>> <<< 2,3 A 对于数值型数组而言,只能单个引用数组元素,不能一次引用整个数组。 >>> <<< 2,3 B 若在以下程序段的下划线位置添加代码“a[i]%2&&a[i]/10”,则输出结果为数组a包含的两位数奇数。 int a[8]={5,8,22,13,75,46,129,63},i; for(i=0;i<8;i++) if(________) printf(\"%d \>>> <<< 2,3 A 以下程序段的输出结果是:1 5 10 10 5 1。 int a[6][6],i,j; for(i=0;i<6;i++) {a[i][0]=1; a[i][i]=1;} for(i=2;i<6;i++) for(j=1;j>> <<< 2,3 B 若有以下定义语句,则数组a的最后一个元素是a[8]。 #define N 3 #define M N+2 double a[M*N]; >>> <<< 2,3 B 若在程序中定义数组并进行初始化:int a[5]={12.3,8.67f,'x',45}; 则程序被编译时会报错。 >>> <<< 2,3 A 以下程序段在运行时,若通过键盘输入“41”,则输出结果为“101001”。 int a[32],n,cnt=0,i; scanf(\"%d\ do{a[cnt++]=n%2; n/=2;}while(n); for(i=cnt-1;i>=0;i--) printf(\"%d\>>> TYPE=01 AND KENID=33000006 <<< 1,3 地址 数组名是一个【 地址 】常量,不能对它进行自增、自减和赋值运算。 >>> <<< 2,3 high=mid-1 low=mid+1 以下程序段用折半查找法在数组a中查找指定数值x,请填空。 double a[7]={1.5,6.2,8.94,11.3,14.9,20.1,35.7},x; int low=0,high=6,mid; scanf(\"%lf\while(low<=high){ mid=(low+high)/2; if(a[mid]>x) 【 】 else if(a[mid] if(low>high) printf(\"数组中不存在数值%f\\n\>>> <<< 1,3 31 以下程序段的输出结果是【 】。 int a[4][4]={1,2,3,4,5,6,7,8,9,10},i,j,s=0; for(i=0;i<4;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf(\"%d\\n\>>> <<< 1,3 &a[i++] 以下程序段通过键盘输入为数组中的所有元素赋值,请填空。 int a[10],i=0; do scanf(\"%d\【 】); while(i<10); >>> <<< 1,3 a[i] int a[10]={3,5,8,12,20,39},k,n=6,i=0,j; scanf(\"%d\while(【 】) i++; for(j=n-1;j>=i;j--) a[j+1]=a[j]; a[i]=k; >>> <<< 1,3 d+=month[i] 以下程序段计算2010年的某月某日是当年的第几天,请填空。 int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},m,d,i; printf(\"请输入月份和日数:\"); scanf(\"%d%d\for(i=1;i a[i][k]=a[i][k-1] 以下程序段重排二维数组的每1行:以每行的第1个元素m为比较标准,该行中小于m的数都放在m的左侧,大于m的数都放在m的右侧。请填空。 int a[3][6]={{6,8,9,5,7,2},{3,1,5,6,2,8},{8,3,8,4,9,7}},m,n,i,j,k; for(i=0;i<3;i++){ m=a[i][0]; for(j=1;j<6;j++) if(a[i][j] for(k=j;k>0;k--) 【 】; a[i][0]=n; } } >>> 第七章 TYPE=02 AND KENID=33000007 <<< 4,3 C 关于函数的定义,以下正确的描述是________。 (A) 如果函数不返回值,可以省略类型说明符 (B) 可以在同一程序中定义同名的函数,只要保证它们的返回值类型或形参列表不相同即可 (C) 同一函数中的形参名必须唯一,但可以与其他函数中的变量同名 (D) 如果函数体为空,则函数最外层的一对花括号可以省略 >>> <<< 4,3 A 若有函数定义:int fun(){double x=23.5; return x;},则函数的返回结果是________。 (A) 23 (B) 23.0 (C) 23.5 (D) 24 >>> <<< 4,3 A 在函数调用过程中,如果函数A调用函数B,函数B又调用函数A,则这种函数调用被称为________。 (A) 间接递归调用 (B) 直接递归调用 (C) 间接循环调用 (D) 直接循环调用 >>> <<< 4,3 D 以下程序的输出结果是________。 #include int fun(int x){return ++x;} void main(){ int i=0; while(fun(i)<10) i++; printf(\"%d\\n\} (A) 11 (B) 10 (C) 8 (D) 9 >>> <<< 4,3 B 关于函数调用时的参数传递,以下错误的描述是________。 (A) 实参可以是常量、变量或表达式 (B) 形参可以是常量、变量或表达式 (C) 实参与形参的个数相等、类型一致 (D) 实参必须有确定的赋值 >>> <<< 4,3 D 若有以下程序,则下划线所在位置应填入的语句是________。 #include res=fun(3.7f,4.5f); printf(\"%f\\n\} double fun(float x,float y) {return x*y;} (A) double fun(float); (B) double fun(); (C) float fun(float,float); (D) double fun(float,float); >>> <<< 4,3 D 用一维数组名作为函数的实参时,传递给对应形参的是________。 (A) 整个数组 (B) 第一个数组元素的地址 (C) 数组的首地址 (D) (B)和(C)都是正确的 >>> <<< 4,3 C 以下程序的输出结果是________。 #include void fun(int b[5],int n){ int i,t; for(i=0;i int a[5]={9,7,5,3,1},i; fun(a,5); for(i=0;i<5;i++) printf(\"%d \} (A) 1 3 5 7 9 (B) 3 1 9 7 5 (C) 9 7 5 3 1 (D) 编译时报错 >>> <<< 4,3 B 在C语言程序中定义全局变量,如果该变量使用关键字static作为存储类别说明符,则它的作用域是________。 (A) 整个程序范围 (B) 定义该变量的源文件范围 (C) main函数内部 (D) 从定义该变量的位置开始直至程序结束 >>> <<< 4,3 A 若有数组定义语句int a[6];和函数调用语句fun(a); 则在fun函数的定义中,对形参数组array的错误定义方式是________。 (A) void fun(int array[int N=6]) (B) void fun(int array[10]) (C) void fun(int array[]) (D) void fun(int array[3]) >>> <<< 4,3 C 以下程序执行完毕后,变量res的值是________。 #include int fun(int n){ int X=15; return X%n?++X:--X; } void main(){ double res; res=X/fun(3); } (A) 1.0 (B) 2.1875 (C) 2.0 (D) 2.5 >>> <<< 4,3 D 以下说法正确的是________。 (A) 在函数中可以使用多条return语句来返回多个处理结果 (B) 在函数中最多只能有一条return语句 (C) 一个函数不可能既是被调用函数,又是主调函数 (D) 如果函数值的类型与返回值的类型不一致,以函数值类型为准 >>> <<< 4,3 B 以下程序执行完毕后,变量s的值是________。 #include void main(){ int i,s=0; for(i=1;i<5;i++) s+=fun(i); } (A) 10 (B) 33 (C) 15 (D) 153 >>> <<< 4,3 D 以下程序的输出结果是________。 #include if(n==2) return n; else return n*fun(n-2); } void main(){printf(\"%d\\n\ (A) 105 (B) 2 (C) 35 (D) 递归无法正常结束 >>> <<< 4,3 C 以下说法错误的是________。 (A) 局部变量使用static作为存储类别说明符,其生存期将得到延长 (B) 自动变量一定是局部变量 (C) 全局变量使用static作为存储类别说明符,其作用域将被扩大 (D) 寄存器变量的分配方式采用动态分配 >>> <<< 4,3 A 下列程序在运行时,若通过键盘输入的数据为“24”,则输出结果是________。 #include for(i=2;i<=n/2;i++) if(n%i==0) return 0; return 1; } int fun(int n){ int i; for(i=3;i<=n/2;i++) if(isprime(i)&&isprime(n-i)) return i; return 0; } void main(){ int x; scanf(\"%d\ if(x%2==0&&x>=6) printf(\"%d,%d\\n\} (A) 5,19 (B) 7,17 (C) 0,0 (D) 11,13 >>> <<< 4,3 B 以下说法正确的是________。 (A) 在函数定义时,如果不明确指定函数的返回值类型,则默认返回值类型为“void” (B) 所有的函数都是平行的,一个函数并不从属于另一个函数 (C) 属于一个C语言程序的不同文件中不允许定义同名的全局变量 (D) 函数被调用时形参才分配存储单元,函数调用结束后形参不释放占据的存储单元 >>> TYPE=04 AND KENID=33000007 <<< 2,3 B 在C语言中定义无参函数时,函数名后的一对圆括号可以保留,也可以省略。 >>> <<< 2,3 A 被调用函数执行过程中形参值的变化不会影响主调函数中的实参值。 >>> <<< 2,3 B 以下函数的功能是计算1+1/2+1/3+...+1/n。 double fun(int n){ int i; double s=0.0; for(i=1;i<=n;i++) s+=1/i; return s; } >>> <<< 2,3 B 如果被调用函数的定义出现在主调函数之前,必须使用函数原型对其进行声明。 >>> <<< 2,3 A 以下程序的输出结果是:2 3 4 5 6 7。 #include for(i=0;i<6;i++) b[i]++; } void main(){ int a[6],i; for(i=0;i<6;i++) a[i]=i+1; fun(a); for(i=0;i<6;i++) printf(\"%d \} >>> <<< 2,3 A 在函数中使用全局变量,可以得到一个以上的处理结果。 >>> <<< 2,3 B C语言不允许嵌套定义函数,因此在main函数内部不可能出现“double fun(int a,float b);”这样的语句。 >>> <<< 2,3 A 在定义静态局部变量时如果不对其进行初始化,则系统会自动为该变量赋默认初值。 >>> <<< 2,3 B 以下程序的功能是输出二维数组中每行元素的平均值,则在下划线所在位置应填入的代码是“avg(x)”。 #include for(i=0;i<5;i++) s+=a[i]; return s/5; } void main(){ int x[3][5]={{8,12,1,7,5},{4,14,6},{2,9,3,3}},i; for(i=0;i<3;i++) printf(\"%f\\n\} >>> <<< 2,3 A 以下函数的功能是输出m和n(m>n)两个正整数的最大公约数,则在下划线所在位置应填入的代码是“gcd(n,m%n)”。 int gcd(int m,int n){ if(n==0) return m; else return __________; } >>> <<< 2,3 A 若有函数定义:static int fun(){......},表明fun函数只能被所在文件内的函数调用,而不能被其他文件内的函数所调用。 >>> TYPE=01 AND KENID=33000007 <<< 1,3 嵌套调用 在一个函数调用过程中又调用另一个函数称为函数的【 】。 >>> <<< 1,3 s+=t*i 以下程序的功能是输出1-3+5-7+...+45-47+49的运算结果,请填空。 #include for(i=1;i<=n;i+=2) {【 】; t=-t;} return s; } void main(){printf(\"%d\\n\>>> <<< 1,3 fun(a[i]) 以下程序的功能是将二维数组中每行的最大值与该行的第一个元素进行互换,请填空。 #include for(m=0,i=1;i<4;i++) if(x[m] int a[3][4]={{6,9,15,10},{24,17,8,16},{33,29,7,40}},i; for(i=0;i<3;i++) 【 】; } >>> <<< 1,3 8 以下程序执行完毕后,变量x的值是【 】。 #include int fun(int n){return n>2?fun(n-1)+fun(n-2):1;} void main(){int x=fun(6);} >>> <<< 1,3 4 5 6 1 2 3 以下程序在运行时,如果通过键盘输入“1 2 3 4 5 6”,则输出结果是【 】。 #include void fun(int n){while(cnt s+=fun1(i) 以下程序的功能是输出1+(1+2)+(1+2+3)+(1+2+3+4)的运算结果,请填空。 #include int fun2(int i){ static int s=0; 【 】; return s; } void main(){ int i,s; for(i=1;i<5;i++) s=fun2(i); printf(\"%d\\n\ } >>> <<< 1,3 9 4 5 8 7 以下程序的输出结果是【 】。 #include void fun(int x){ int a[5],i,j; a[t++]=x; if(t==5) for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(a[i]>a[j]) {t=a[i]; a[i]=a[j]; a[j]=t;} } void main(){ int a[5]={9,4,5,8,7},i; for(i=0;i<5;i++) fun(a[i]); for(i=0;i<5;i++) printf(\"%d \} >>> 第八章 TYPE=02 AND KENID=33000008 <<< 4,3 D 若有语句:int i,*p=&i; 则均表示变量地址的选项是________。 (A) *&p,*p,&i (B) i,p,&*i (C) *&i,&i,*p (D) &i,p,&*p >>> <<< 4,3 C 以下程序的输出结果是________。 #include void fun(int *p1,int *p2){ int *p; *p=*p1; *p1=*p2; *p2=*p; } void main(){ int x=5,y=8; fun(&x,&y); printf(\"%d,%d\\n\} (A) 5,8 (B) 8,5 (C) 程序运行时报错 (D) 程序编译时报错 >>> <<< 4,3 B 若有语句:int x=6,*p=&x; 则下面正确的表达式是________。 (A) ++&x (B) (*p)-- (C) &(x+5) (D) p=1000 >>> <<< 4,3 D 若有语句:int a[10],*p1=a+8,*p2=&a[3]; 则p1-p2的值是________。 (A) 20 (B) 4 (C) 16 (D) 5 >>> <<< 4,3 A 以下程序段执行完毕后,变量a和b的值分别是________。 int a=4,b=5,*p1=&a,*p2=&b; a=2*(*p1%-*p2)+5; b=*p1**p2++; (A) 13,65 (B) -3,-15 (C) -3,-18 (D) 13,78 >>> <<< 4,3 B 以下程序段调用scanf函数为变量x赋值,则填入下划线所在位置的错误代码是________。 int x,*p=&x; scanf(\"%d\ (A) &x (B) *p (C) p (D) &*p >>> <<< 4,3 D 若有语句:int a[]={1,3,2,7,3,4},*p=a+3,k; 则变量k的值不等于3的选项是________。 (A) k=(p++,*p++) (B) k=(p-=2,*p--) (C) k=(p--,*--p) (D) k=(p++,*++p) >>> <<< 4,3 C 以下程序段在运行时,若通过键盘输入“2 6 9 7 5”,则输出结果是________。 int a[5],*p,t; for(p=a;pfor(p=a;p(A) 2 6 9 7 5 (B) 7 5 9 2 6 (C) 5 7 9 6 2 (D) 6 2 7 9 5 >>> <<< 4,3 A 若有定义:int a[10],*p=a; 则表示数组元素a[3]的错误选项是________。 (A) *(a+=3) (B) *(p+=3) (C) *(a+3) (D) p[3] >>> <<< 4,3 C 以下程序执行完毕后,变量a和b的值分别是________。 #include void fun(int *p,int *q){ int *t; if(*p>*q) {t=p; p=q; q=t;} } void main(){ int a=13,b=9; fun(&a,&b); } (A) 9,13 (B) 13,13 (C) 13,9 (D) 9,9 >>> <<< 4,3 D 以下程序输出数组a中的最小值,则下划线所在位置应填入的代码是________。 #include int findmin(int *p,int n){ int *m,*q=p+n; for(m=p;p void main(){ int a[6]={21,17,34,9,12,45}; printf(\"%d\\n\} (A) p 以下说法正确的是________。 (A) 可以将整型常量作为存储单元地址存放到指针变量中。 (B) 指针变量的值是指针。 (C) 可以采用为数组名重新赋值的方法使其指向不同的元素。 (D) 使用地址值作为实参、指针变量作为形参,形参值的改变可以使实参值发生变化。 >>> <<< 4,3 A 以下对程序输出结果的判断中,正确的是________。 #include void fun(int x,int a[50]){ do{ *a++=x%10; x=x/10; printf(\"%d\ }while(x); } void main(){ int x=6985,a[50]; fun(x,a); } (A) 程序能正常运行,输出结果为5896 (B) 程序编译时报错,因为形参数组名不能进行自增运算 (C) 程序能正常运行,输出结果为6985 (D) 程序能正常运行,输出结果为随机数 >>> <<< 4,3 C 若有函数定义:double fun(int a[10]){...},则在对该函数进行原型声明时,错误的声明语句是________。 (A) double fun(int []); (B) double fun(int b[10]); (C) double fun(int a); (D) double fun(int *a); >>> <<< 4,3 B 若有语句:int x,*p=&x; 则与该语句等价的语句是________。 (A) int x,*p; *p=&x; (B) int x,*p; p=&x; (C) int x,*p; *p=x; (D) int x,*p; p=x; >>> TYPE=04 AND KENID=33000008 <<< 2,3 B 当两个指针变量指向同一数组时,两个指针变量相减的差值即为两个指针变量相隔的字节个数。 >>> <<< 2,3 A 如果某个指针变量赋值为0,表示该指针变量不指向任何变量。 >>> <<< 2,3 B 若有语句:int x[]={5,7,3,8},*p=x+2,y; y=++*p--; 则变量y的值是3。 >>> <<< 2,3 B 若有函数定义:int fun(int *a){return *a;},则函数的返回值是形参a中存放的地址值。 >>> <<< 2,3 A 以下程序段的功能是交换变量a和b的值。 int a=9,b=7,*p=&a,*q=&b; *p=*p+*q-(*q=*p); >>> <<< 2,3 B 以下程序段在数组a中查找数值x,则在下划线所在位置应填入的代码是“*p!=x”。 double a[5]={1.4,0.78,23.6,-4.5,19.3},x,*p=a; scanf(\"%lf\ for(p=a;__________;p++); if(p>> <<< 2,3 A 以下程序段的输出结果是75。 int x=61,a[100],*p=a; while(x){ *p++=x%8; x=x/8; } for(p=p-1;p>=a;p--){printf(\"%d\>>> <<< 2,3 A 以下程序执行完毕后,全局变量X和局部变量r的值分别是0和5。 #include int fun(int x,int *p){ static int m=5; X*=m-x; m=++*p; return m; } void main(){ int a=2,b=3,r; r=fun(fun(a,&b),&b); } >>> <<< 2,3 B 以下程序执行完毕后,main函数中数组a各元素的值依次是1、9、6、5、8、7、3。 #include void fun(int a[],int n,int m){ int i,t,*p; for(i=1;i<=m;i++){ t=*(a+n-1); for(p=a+n-2;p>=a;p--) *(p+1)=*p; *a=t; } } void main(){ int a[7]={8,7,3,5,1,9,6}; fun(a,7,3); } >>> TYPE=01 AND KENID=33000008 <<< 1,3 指针变量 作为形参的数组名并不表示数组的首地址,其实质是一个【>>> <<< 1,3 15 以下程序执行完毕后,变量x的值是【 】。 #include void fun(int *p,int m,int n){ if(n<=m) fun(p,m/2,2*n); *p+=n; } void main(){ int x=0; fun(&x,16,1); } >>> <<< 1,3 *p<*q?fun(p,q):1 】。以下程序对数组a进行由大到小排序,请填空。 #include void fun(int *p,int *q){ int t; t=*p; *p=*q; *q=t; } void main(){ int a[N]={1,2,3,4,5,6},*p,*q; for(p=a;pfor(q=p;q>> <<< 1,3 fun(a,&n) 以下程序的功能是将1到100之间能被7或11整除的所有整数放在数组a中,并将这些数的个数放在变量n中,请填空。 void fun(int *p,int *q){ int x; for(x=1;x<=100;x++) if(x%7==0||x%11==0){*p++=x; (*q)++;} } void main(){ int a[1000],n=0; 【 】; } >>> <<< 1,3 1 5 9 8 6 以下程序段的输出结果是【 】。 int a[5]={6,5,9,8,1},*p,*q; for(p=q=a+2;qif(*p>*q) {*p=*p+*q; *q=*p-*q; *p=*p-*q;} for(p=a;p>> <<< 1,3 8 若有语句:int a[7]={2,5,3,4,7,8,1},*p=a+1; 则p[*(a+*(a+2))]的值是【 】。 因篇幅问题不能全部显示,请点此查看更多更全内容return *m; }