如何把数组打印出来中,d后面紧跟着出来的应是哪一个数字

以下试题来自:
单项选择题以下叙述中错误的是(
)。A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用函数fclose( )关闭已打开的文件C.在利用函数fread( )从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用FILE定义指向二进制文件的文件指针
为您推荐的考试题库
你可能感兴趣的试题
1A.longB._2TestC.3DmaxD.A.dat2A.-4B.1C.4D.83A. typedef STP char *s;B. typedef *char STP;C. typedef STP *D. typedef char* STP ;4A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息D.可以通过赋初值的方式确定数组元素的个数5
A.r->next=q; q->next=r-> p->next=r;
B.q->next=r-> p->next=r; r->next=q;
C.p->next=r; q->next=r-> r->next=q;
D.q->next=r-> r->next=q; p->next=r;
热门相关试卷
最新相关试卷当前位置: >>
武汉大学C语言题库
卷 211.scanf 函数被称为______输入函数。 A.字符 B.整数 C.格式 D.浮点 2.下面正确的字符常量是______。 A. &c& B. '\\'' C. 'W' D. ' 3.scanf 函数按______串规定的格式输入数据。 A.格式控制 B.特殊 C.具体安排 D.功能 4
.不正确的 C 程序描述是______。 A.每个语句和数据定义的最后必须有个分号 B.一个 C 程序的书写格式要求严格,一行只能写一个语句 C. C 语言的本身没有输入输出语句 D.一个 C 程序总是从 main()函数开始执行 5.C 语言具有低级语言的能力,主要指的是_____。 A.程序的可移植性 B.具有控制流语句 C.能直接访问物理地址,可进行位操作 D.具有现代化语言的各种数据结构 6.以下叙述中正确的是_____。 A. C 语言的源程序不必通过编译就可以直接运行 B. C 语言中的每条可执行语句最终都将被转换成二进制的机器指令 C. C 源程序经编译形成的二进制代码可以直接运行 D. C 语言中的函数不可以单独进行编译 7.以下程序段(n 所赋的是八进制数) int m=32767,n=032767; printf(&%d,%o\n&,m,n);执行后输出结果是_____。 A.
8.C 语言程序由______组成。 A.子程序 B.主程序和子程序 CCABCBAC C.函数 D.过程 D9.若有以下定义,则值为 3 的表达式是______。 int k=7, x=12; A. x%=(k%=5) B. x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5) 10.下列关于单目运算符++、--的叙述中正确的是______。 A. 它们的运算对象可以是任何变量和常量 B. 它们的运算对象可以是 char 型和 int 型变量,但不能是 float 型变量 C. 它们的运算对象可以是 int 型变量,但不能是 double 型和 float 型变量 D. 它们的运算对象可以是 char 型变量、int 型变量和 float 型变量D11.若 ch 为 char 型变量,a 为 int 型变量,(已知字符 a 的 ASCII 十进制代码为 97)则执行以 下语句后的输出为_____。 C char ch; int a; ch='a'; a=12; printf(''%x,%o,'',ch,ch,a); printf(''k=%%d\n'',k); A. 61,141,12,k=%d B 输出项与格式描述符个数不符,输出为零值或不定值 C. 61,141,k=%d1 / 65 D. 6l,141,k=%12 12.scanf 函数的&格式控制串&中,%3d 表示_____。 A.输入宽度为 3 B.3 个数输入 C.3 位小数A D.3*d D B13.下列算术运算符中,只能用于整型数据的是_____。 A. C B. + C. / D. % 14.若变量已正确定义并赋值,下面符合 C 语言语法的表达式是______。 A.a=a+7; B.a=7+b+c,a++ C.int 12.3%4 D.a=a+7=a+b 15.设 n=10,i=4,则执行赋值运算 n%=i+1 后,n 的值是______。 A. 0 B. 3 C. 2 D. 1 16.设已定义 x 为 double 类型变量, 则语句 x=213.82631; printf(&%-6.2e\n&,x);____。 A.输出格式描述符的域宽不够,不能输出 B.输出为 21.38e+01 C.输出为 2.14e+02 D.输出为-2.14e2 17.下列四组选项中, 均不是 C 语言关健字的是______。 A. define B. gect C. include D. while IF char scanf go Type printf case powACA18.已定义 x 为 float 型变量,则语句 x=213.82631; printf(&%-4.2f\n&,x); ______。 A.输出格式描述符的域宽不够,不能输出 B.输出为 213.83 C.输出为 213.82 D.输出为-213.82B1.设 int a=2,b=2;有表达式++a+b,则 b 的结果是 2。 2.在变量说明中给变量赋初值的方法是: a=b=c=10; intT F3.在 scanf(&%d,%d&,&a,&b); 语句中, 可以使用一个或多个空格作为两个输入数之间的间隔。 F 4.在 scanf(&%c%c&,&c1,&c2);语句中,当输入为字符 a,b 时,将 a 赋给 c1,将 b 赋给 c2. F 5 用户标识符中可以出现下划线,但它不可以放在用户标识符的开头。 F 6 程序 main() {int i=5; printf(&%d,%d\n&,++i,i++); }的运行结果是 6,6。 7 输入语句的格式为: scanf(&%d,%d,%d&,a,b,c);是正确的。 8printf 是 C 语言的输出语句。 9 在 C 语言中,要求参加运算的数必须是整数的运算符是%。 10printf 函数是一个标准库函数,它的函数原型在头文件&string.h&中。 11 在使用 scanf 函数之前应包含头文件“math.h” 。2 / 65F F F T F F 12a+==a=2; 是一个合法的赋值语句,赋值后 a 的值为:2。 13scanf 函数中, 如果格式控制串中有普通字符则输入时也要输入该普通字符。 14printf 函数称为格式输入函数, 它的函数原型在头文件&stdio.h&中。F T F15 在 C 语言中的实型变量分为两种类型,它们是 float(实型)和 double(双精度实型) F 。 16 字符串常量是一对单引号括起来的字符序列。 F17C 语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也 可以以整数形式输出。 T 18 在 printf 函数中, 输出项可以是任意合法的表达式。 T19 若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变。 T 20 若 a 是 int 型变量,则执行下面表达式后,a 的值为__________。 a=25/3%3 21 下列程序的输出结果是 16.00,请填空。 #include&stdio.h& void main() { int a=9, b=2; float x= ___________, y=1.1,z; z=a/2+b*x/y+1/2; printf(''%5.2f\n'', z ); } 22 能正确表示&当 ch 为小写字母为真,否则为假&的表达式是_______。 23int i=65; printf(&%d,%c&,i,i);的输出结果是__________。 24C 语言中标识符的首字符_____ ____。 25 以下程序 # include &stdio.h& void main() { int i=10,j=1; printf(&%d,%d\n&,i--,++j); }执行后输出的结果是___________。 2 6.6ch&='a'&&ch&='z' 65,A必须为字母或下划线10,226 下列程序的运行结果是___________。 #include&stdio.h& void main() { int x=6,y,z; x*=18+1; printf(''%d,'',x--); x+=y=z=11; printf(''%d,'',x); x=y==z; printf(''%d\n'',-x++);} 27 已知 a=3,b=-4,c=5,表达式(a&&b)==(a||c)的值是___________。 28 若有语句 int i=-19,j=i%4; printf(&%d\n&,j);则输出的结果是___________。 29 若有以下定义: char c='\010';则变量 c 中包含的字符个数为___________。 30 在 BC 中,printf()函数输出表列的求值顺序是__________。3 / 65114,124,-11 -3 1 从右到左 31 赋值语句由____ _______加上分号构成。赋值表达式卷 221 若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是_____。 A. -3 B. 9 C. -12 D. 6 2 与数学式子 3 乘以 x 的 n 次方除以(2x-1)对应的 C 语言表达式是_____。 A. 3*x^n/(2*x-1) B. 3*x**n/(2*x-1) C. 3*pow(x,n)*(1/(2*x-1)) D. 3*pow(n,x)/(2*x-1) 3 用 C 语言编写的源代码程序______。 A.可立即执行 B.是一个源程序 C.经过编译即可执行 4 下列变量定义中合法的是______。 A. short _a=l-.1e-1; B. double b=1+5e2.5; CCB D.经过编译解释才能执行 C D. float 2_and=1-e-3;C. long ao=0xfdaL5 已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合 C 语言语法的表达式是______。 A A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a-=(b=4)*(a=3) 6 以下程序运行的结果是______。 A #include &stdio.h& void main() { int i=4,x=3,y=2,c=1; printf(&%d\n&,i&x?i:z&y?z:x); } A. 1 B. 2 C. 3 D. 4 7 以下程序的运行结果是____。 #include &stdio.h& void main() {int x=2,y=3,z=1; printf(&%d %d\n&,(x++,++y),z+2); } A. 3 4 B. 4 3 C. 2 3 D. 2 4 8 判断字符型变量 c1 是否为小写字母的正确表达式为______。 A. 'a'&=c1&='z' B. (c1&='A') &&(c1&='z') C. ('a'&=c1)||('z'&=c1) D. (c1&='a')&&(c1&='z') 9 下面四个选项中,均是不正确的八进制或十六进制数的是______。 A. 016 B. 0abc C. 010 D. 0a12 0x8f 017 -0x11 7ff 018 0xa 0x16 -123 10scanf 函数包括在头文件_____中。 A. string.h B. float.h C. stdio.h BDDC D. scanf.h11 设有如下的变量定义: int i=8, K, a, b; unsigned long w=5; double x=l,y=5.2: 则以下符合 C 语言语法的表达式是_____。 A. a+=a-=(b=4)*(a=3) B. x%(-3) C. a=a*3=2 D. y=int(i) 12 设 a 为浮点型变量, 下列选项中正确的是______。 A. scanf(&%d&,&a); B. scanf(&%f&,a); C. scanf(&a); 13 若有 int k = 11;则表达式(k++ * 1/3)的值是______。4 / 65AD D. scanf(&%f&,&a); B A. 0B. 3C. 11D. 1214 以下程序 #include &stdio.h& void main() { int b=-1; a=b; 运行后的输出结果是______。 A. -1 B. 65535 C. 32767 D. -32768printf(&%u&,a); } B15 结构化程序设计所规定的三种基本控制结构是_____。 A.输入、处理、输出 B.树形、网形、环形 C.顺序、选择、循环 D.主程序、子程序、函数 16 赋值语句______赋值。 A.不允许连续 B.允许连续CC.允许对整型数组名B D.允许对浮点数组名 A17 下面四个选项中, 均是合法整型常量的是______。 A. 160 B. -0xcdf C. -01 D. -0x48a 0xffff 01a 986,012 2e5 011 0xe
源程序要正确地运行,必须要有______函数。 A. printf 函数 B.自定义的函数 C. main 函数 D.不需要函数 19 把 k1、k2 定义成基本整型变量,并赋初值 0 的定义语句是 int k1=k2=0; 。 20getchar 函数的功能是接收从键盘输入的一串字符。 21 以下程序段, int cl=2,c2=3,c3; c3=1.0/c2*cl;执行后,c3 中的值是 0。 22 若有以下定义 int m=5,y=2;则执行下面表达式 y+=y-=m*=y 后,y 的值为-16。 23 在 printf 函数中,转义字符\b 的作用是退格。 24 在 printf 函数中,格式字符 d 的意义是:以十进制形式输出带符号整数。 25 设 int n=3;则++n 的结果是 4。 26C 语言中数据有常量与变量之分。 27 设 int a=2,b=2;则(a++)+b 的结果是 5。 28 在 C 程序中,逗号运算的优先级最低。 29 关系运算符的等于是用&=&来表示的。 30 表达式 3.5 + 1/2 + 56%10 的计算结果是 7.5 。 31 设 int a=2,b=2;有表达式(a++)+b,则 a 的结果是 3。 32 在 printf 函数中,格式字符&%5c&可用来输出 5 个字符。 33int a=0,b=1,c=2,x,y; 则!(x=a)&&(y=b)&&c 的值为 1。5 / 65CF F TT T T T T F T F F T F T 34 在 scanf(&%d,%*d,%d&,&a,&b);语句中,当输入为 1,2,3 时,将 1 赋给 a,将 2 赋 给 b。 F 35 设 int n=3;有表达式++n,则 n 的结果是 4。 36getchar()函数得到的字符可以不赋给任何变量,而作为表达式的一部分。 37 已知 int x,y,z;执行语句 x=(y=(z=10)+5)-5;后 x、y、z 的值是 10、15、10。 38 在 printf 函数中,格式控制字符串用于指定输出格式,必须以双引号引起。 T T T T39 若 有 以 下 定 义 : int x=3,y=2;float a=2.5,b=3.5; 则 下 面 表 达 式 的 值 为 ___________ 。 (x+y)%2+(int)a/(int)b 1 40 在输入 a(整型) 、b(单精度) 、c(字符型)时,若用逗号分隔各个数据,则正确的 scanf 函数语句是__________。 scanf(&%d,%f,%c&,&a,&b,&c); 41 阅读程序,写出运行结果_____。 #include&stdio.h& void main() { int a=1,b=4,c=2; float x=-10.5,y=4.0, z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(''%f\n'',z);} 42 若 int 类型数据占两个字节,下列程序的输出结果是_______。 #include &stdio.h& void main() { int k=-1; printf(&%d,%u\n&,k,k); } 43 表达式 x+6y=5x+3y+6 的 C 语言表达式是_______。 44 float f=123.456; printf(&%.2f&,f);的输出结果是_______。 -7.300000_65535_(x+6*y)==(5*x+3*y+6) 123.4645 若有定义:int a=7,b=8,c=9;接着顺序执行下列语句后,变量 c 中的值是______。 7 c=(a-=(b-5)); c=(a%11)+(b=3); 46 若 k 为 int 整型变量且赋值 7, 请写出赋值表达式 k *= k + 3 的运算结果______。 47 表达式 1/3*3 的计算结果是_____。 48 以下程序的输出结果是_______。 #include &stdio.h& void main() { unsigned short a=655; 70 0 655printf(''%d\n'',b=a);} double/双精度49 表达式 pow(2.8,sqrt(double(x)))值的数据类型为______。50 请说明表达式&score&=60?(c='P'):(c='F')&的意义___当 score&=60 条件成立时,该表达式取 c='P'的值,即:'P',否则取 c='F'的值即: ____。 'F'卷 231 若有定义:int a=8,b=5,c;执行语句 c=a/b+0.4;后,c 的值为______。6 / 65B A. 1.4B. 1C. 2.0D. 2 A2 下面四个选项中,均是合法转义字符的是______。 A. '\'' B. '\' C. '\018' D. '\\0'' '\\' '\017' '\f' '\101' '\n' '\&' 'xab' 'x1f' 3 下面四个选项中,均是不合法整型常量的是______。 A. -0f1 B. -0xcdf C. -018 D. -0x48eg -0xffff 017 999 -068 011 12,456 5e2 03f 4 若 a 为整型变量,且有以下语句:a=-017L; printf(''%d\n'',a); 则下面______说法是正确的。 A.赋值不合法 B.输出值为-17 C.输出为不确定值 D.输出值为-15 5 下面四个选项中,均是不合法的转义字符的是______。 A. '\&' B. '\1011' C. '\011' D. '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 6 C 语言提供的合法的数据类型关键字是______。 A.Double B.short C.integer D.Char 7 设 a=1,b=2,c=3,d=4,则表达式 a&b?b:c&d?a:d 的结果为______。 A. 4 B. 3 C. 2 D. 1 8 在一个 C 语言程序中______。 A. main 函数必须出现在所有函数之前 C. main 函数必须出现在所有函数之后 9 表达式 5&3||8&=(a=10)的结果是___。 A. 0 B. 1 C. 非 0 D. 非 1 10 以下不正确的语句(设有 int p,q)是______。 A. p*=3; B. p/=q; C. p+=3; D. p&&=q; 11 以下程序: #include &stdio.h& void main() { int k=2,i=2,m; m=(k+=i*=k); printf(&%d,%d\n&,m,i); 执行后的输出结果是______。 A. 8,6 B. 8,3 C. 6,4 D. 7,4 12 以下程序的输出结果是______。 #include &stdio.h& void main() { int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(&%d,%d\n&, a, b ); } A. 1,2 B. 3,1 C. 3,2 D. 2,1DDBBCB B. main 函数可以在任何地方出现 D. main 函数必须出现在固定位置 BD} C D13 以下程序段的输出结果是______。 printf(&|%10.5f|&,); A.|| B.|| C.|| D.|| 14 以下使 i 的运算结果为 4 的语句是______。7 / 65CD A. int i=0,j=0; (i=3,(j++)+i); C. int i=3,j=1; i=j++;B. int i=1,j=0; j=i=((i=3)*2.; D. int i=1,j=1; i+=j+=2; D15 要把高级语言编写的源程序转换为目标程序,需要使用______。 A.编辑程序 B.驱动程序 C.诊断程序 D.编译程序 16 若有以下定义和语句: char cl='a',c2='f'; printf(''%d,%c\n'',c2-c1,c2-'a'+'B'); 则输出结果是______。 A. 2,M B. 5,! C. 2,E D. 5,G 17 在执行了 a=5; a+=a=5; 之后,a 的结果为______。 A. 5 B. 10 C. 15 D. 20 18 设 int m=1,n=2;则 m++= =n 的结果是______。 A. 0 B. 1 C. 2 D. 3 19 在 printf 函数中,格式字符 s 的意义是:输出单个字符。 20 若 int x=3; printf(&%d&,&x);则系统会报错,没有任何结果。 21 表达式 11/3 的值为 3.666667。 22 以下程序的运行结果是 5,7 #include &stdio.h& void main() {int i=5; printf(&%d,%d\n&,++i,i++); } 23 在 printf 函数中,格式字符 c 的意义是:输出单个字符。 24a&b?a:c&d?c:d 应理解为 a&b?a:(c&d?c:d)。 25 该源程序执行后,屏幕上显示 a=4,b=9.5 #include &stdio.h& void main() { int a=4;float b=9.5;printf(''a=%d,b=%4.2f\n'',a,b);} 26C 语言中,字符数据与整型数据可以互相赋值。 27 在 C 语言中,x=j=0 是一个合法的赋值表达式。 28 在 C 语言中,n=(i=2,++i)是一个合法的赋值表达式。 29 设 int a=2,b,c;则执行 c=b=a--;语句后,b 的结果是 2。 30C 语言中可以把一个字符串赋给一个字符变量。 31 设 int a=2,b,c;则执行 c=b=a--;语句后,a 的结果是 2。 32 在 BC 中,printf()函数输出表列的求值顺序是从左到右。DBAF F FF T TF T T T T F F F33 在 C 语言中, int、char 和 short 三种类型数据在内存中所占用的字节数由所用机器的机 器字长决定。 T 34 若有定义,int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4 的值是 2.750000 。F8 / 65 35 可以把 define 和 if 定义为用户标识符。 36 输入语句的格式为:scanf(&%d,%d,%d&,&a;&b;&c);是正确的。 37 逗号表达式(a=3*5,a*4),a+15 的值为 30。 38max=(a&b)?a:b 可以去掉括号而写为 max=a&b?a:b。 39printf(&%3s&,&CHINA&);的输出结果是__ ______。 40 若 x、i、j 和 k 都是 int 型变量,则计算下面表达式后,x 的值为_____。 x=(i=4,j=16,k=32)F F T T CHINA 3241 由下面的输入语句: scanf(''%f,%le'',&x,&y); 使 x 的值为 78.98,y 的值为 9,写出正确的键盘输入数据形式____。78.98, 一个 C 语言程序总是从____ ______开始执行。 43 在语句中,给变量赋值时,赋值语句必须以_______ ____结尾。 44 对于长整型变量,在 scanf 语句的&格式控制串&中用___ __ 45 以下程序的输出结果是___________。 #include&stdio.h& void main() { int a=0;a+=(a=8); printf(&%d\n&,a);} 46 赋值语句是由赋值表达式加上______ _____构成的。 47 设 x、y 均为整型变量,且 x=10,y=3,则以下语句的输出结果是_________。 printf(&%d,%d &,--x,--y); 48 已知 a=7.5,b=2,c=3.6,表达式 a&b&&c&a||a&b&&!c&b 的值是___________。 49int i=97; printf(&%c&,i);的输出结果是___________。 50 表达式 18/4*sqrt (4.0)/8 值的数据类型为______。 主函数分号/; %ld16分号/;9,20 a double卷 241 对 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) 2 若变量 a,i 已正确定义,且 i 已正确赋值,合法的语句是______。 A. a=l B. ++i; C. a=a++=5; D. a=int(i); 3 若 k,g 均为 int 型变量,则以下语句的输出为______。 int k,g; k=017; g=111; printf(''%d,'',k); printf(''%x\n'',g); A. 15,6f B. f,6f C. f,111 D. 15,111 4 一个 C 语言程序总是从______开始执行的。 A.main 函数 B.文件中的第一个函数9 / 65CBAA C.文件中第一个子函数调用D.文件中的第一条语句 C5 一个 C 语言程序总是从______开始执行的。 A.main 函数 B.文件中的第一个函数 C.文件中第一个子函数调用 D.文件中的第一条语句 6 以下结果为整型的表达式(设有)是_____。 A. i+f B. i*c C. c+f D. i+c+f 7 下面四个选项中,均是正确的数值常量或字符常量的是______。 A. 0.0 B. &a& C. '3' D. +01 0f 3.9E-2.5 011 0xabcd 8.9e 1e1 0xFF00 2e2 '&' '\&' 0a 50 8 下面四个选项中,均是不合法的用户标识符的是______。 A. A B. float C. b-a D. _123 p_0 lao goto temp do _A int INT 9 设 x 为 int 型变量,则执行以下语句段后,x 的值为______。 x = 10 ; x += x -= x - A. 10 B. 20 C. 40 D. 30BDCB10 以下叙述中正确的是_____。 D A.输入项可以是一个实型常量,如:scanf(''a=%d,b=%d''); B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(''a=%d,b=%d''); C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(''%4.2f'', &d); D.当输入数据时,必须指明变量地址,例如:scanf(''%f'',&f); 1 设 X,Y,Z 和 K 都是 int 型变量,则执行表达式 X=(Y=52,Z=26,K=32)后,X 的值为 32。 2 由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式” 。 3C 的字符常量是用双引号括起来的一个字符。 4C 语言的格式输出函数是 scanf() 。 5 若变量已正确定义,则 x3=0x12;是一个正确的赋值语句。 6 设 int a=2,b=2;有表达式(a++)+b,则 b 的结果是 2。 7 逗号表达式(a=3*5,a*4),a+15,a 的值为 30。 T F F T F F8 a 是实型变量,C 语言允许进行以下赋值 a=10;因此可以这样说,实型变量中允许存放整 型值。 F 9 如果 x&y 或 a&b 为真,那么表达式(x&y&&a&b)为真。 10 C 实型变量分为单精度和双精度两种。 三填空10 / 65F T 1 设 x,y 均为 int 型变量,请写出描述&x,y 中有且只有一个为负数&的表达式________。 x&0&&y&=0||y&0&&x&=0 2 已知 a=3,b=-4,c=5,表达式!(a&b)+(b!=c)||(a+b)&&(b-c)的值是_______。 3 若有以下定义: char a; unsigned int b; float c; double d; 则表达式 a*b+c-d 的值的类型为_________。 4 以下程序的运行结果是_______。 #include &stdio.h& void main() {if(2*1==2&2*2==4) printf(&##&); else printf(&**&); } 5 表达式 5%6 的值是_______。 6 阅读程序,写出运行结果_______。 #include&stdio.h& void main() { int a=1,b=4,c=2; a=(a+b)/c; printf(''%d\n'',--a);} #include &stdio.h& void main() { int i;float j;i=18;j=29.4361; printf(''i=%4d,j=%2.2f'',i,j);}运行结果________。 8 设以下变量均为 int 类型,则表达式(x=y=6,x+y,x+1) 的值是______。1double/双精度 **5 1i= 18,j=29.44 79 若变量 a 是 int 类型,并执行了语句:a='A'+1.6;则 a 的值是字符'A'的 ASCII 码值加上 ________。 1 10 下列程序执行后的输出结果是_____。 #include &stdio.h& void main() { char x=0xff; printf(''%d\n'',x--);} -1卷 261.以下程序段中与语句 k=a&b?(b&c?1:0):0;功能等价的是______。 A 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; 2.C 语言的 do_while 循环中, 循环由 do 开始, while 结束; 用 而且在 while 表达式后面的____ __不能丢,它表示 do_while 循环的结束。 B A. \n B. “;” C. “%” D. “,” 3.执行程序段: x=-1; do { x=x*x;} while(!x); 的结果是______。 A. 死循环 B. 循环执行 2 次 C. 循环执行一次 D. 有语法错误 4.下面程序段的输出结果是______。 int i, for(i=1;i&=10;i++)sum+= printf(&%d\n&,i);11 / 65CD A. 10B. 9C. 15D.11 C5.以下叙述正确的是______。 A. for 循环中设置 for(条件)break,当条件成立时中止程序执行。 B. for 循环中设置 for(条件)continue,当条件成立时中止本层循环。 C. for 循环中设置 for(条件)break,当条件成立时中止本层循环。 D. for 循环中设置 for(条件)break,当条件成立时暂停本次循环。 6.下面有关 for 循环的正确描述是______。 A. for 循环只能用于循环次数已经确定的情况。 B. for 循环是先执行循环体语句,后判断表达式。 C. 在 for 循环中,不能用 break 语句跳出循环体。 D. for 循环的循环体语句中,可以包含多条语句。 7.以下能正确计算 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); 8.有以下程序 #include &stdio.h& void main() { int a=5,b=4,c=3,d=2; if (a&b&c) printf(&%d\n&, d); else if ( (c-1&=d) ==1) printf(&%d\n&, d+1); else printf(&%d\n&, d+2); } 执行后输出结果是______。 A. 2 B. 3 C. 4 D. 编译时有错,无结果 9.以下程序段的输出结果是______。 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 &,x); } A. 39 81 B. 42 84 C. 26 68 D. 28 70 10.设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是______。 A. while 循环执行 10 次 B.循环是无限循环 C. 循环体语句一次也不执行 D.循环体语句执行一次 11.有以下程序: #include&stdio.h& void main() { while(putchar(getchar())!='?'); } 当输入&china?&时,程序的执行结果是______。 A. china B. dijob C. dijob?DCBDCD D. china? B12.下面程序的运行结果是______。 #include&stdio.h& void main() { int i,j,x=0; for(i=0;i&2;i++) { x++; for(j=0;j&=3;j++) { if(j%2) x++; } x++; } printf(&x=%d\n&,x); } A. x=4 B. x=8 C. x=6 D. x=1212 / 65 13.若有条件表达式(expression) ?a++:b--,则以下表达式中能完全等价于表达式(expression) 的是______。 B A. (expression==0) B. (expression!=0) C. (expression==1) D. (expression!=1) 14.下面循环的循环次数是______。 int x=3; while(x=0){printf(&%d\n&,x); x--;} A. 3 次 B. 2 次 C. 1 次 D D. 0 次 D15.设 i 为整型量,执行循环语句 for(i=500;i&=0;i-=100);后,i 值为______。 A. 500 B. 0 C. 100 D. -100 16.以下______为不正确的 if 语句。 A. if(x&y); B. if(x!=y) scanf(&%d&,&x) else scanf(&%d&,&y); C. if(x==y) x+=y; D. if(x&y) {x++;y++;} 17.下面程序段运行结果是______。 int i,j,a=0; for(i=0;i&2;i++) { for(j=0;j&4;j++){if (j%2) a++; } a++; } printf(&%d\n&,a); A. 4 B. 5 C. 6 D. 7 19.下面程序段的输出结果是_____。 int i,j,k; for(i=2;i&6;i++,i++) { k=1; for(j=i;j&6;j++) k+=j;} printf(&%d\n&,k); A. 10 B. 9 C. 8BAAD. 11 B循环语句 for(i=0,x=0;!x&&i&=5;i++);的执行次数为______。 A. 5 次 B. 6 次 C. 1 次 D. 无限 21.以下描述正确的是______。 A. goto 语句只能用于退出多层循环 C. 只能用 continue 语句来终止本次循环C B. switch 语句中不能出现 continue 语句 D. 在循环中 break 语句不能独立出现 B22.对于 for(表达式; ;表达式 3)可理解为______。 A. for(表达式;0;表达式 3) B. for(表达式;1;表达式 3) C. for(表达式;表达式 1;表达式 3) D. for(表达式;表达式 3;表达式 3) 23.以下不正确的描述是______。 A. break 语句不能用于循环语句和 switch 语句外的任何其他语句 B. 在 switch 语句中使用 break 语句或 continue 语句的作用相同 C. 在循环语句中使用 continue 语句是为了结束本次循环,而不是终止整个循环的执行 D. 在循环语句中使用 break 语句是为了使流程跳出循环体,提前结束循环 24.下面程序段的输出结果是______。 int x=3; do{printf(&%3d&,x-=2);} while(!(--x)); A. 1 2 B. 3 2 25.请阅读以下程序:13 / 65BDC. 2 3D. 1 -2 #include &stdio.h& void main () { c=getchar(); if ((c&='A'&&c&='Z')||(c&='a'&&c&='z')) printf(&input character is letter\n&); else if (c&='0'&&c&='9') printf(&input character is digit\n&); else printf(&other character\n&); } 若运行时输入大写字母 A,则上面程序的输出结果是______。 A. input character is letter B. input character is digit C.} D. A 26.有如下语句 int x=3; do { printf(&%d\n&,x-=2);} while(!(--x)); 则上面程序段______。 A. 输出的是 1 B. 输出的是 1 和-2 C. 输出的是 3 和 0 D. 是死循环AB1..C 语言的循环语句 for,while,do_while 中,其中用于直接中断最内层循环的语句是 break。 T 2.for 循环语句比 while 循环语句功能更强,凡是用 while 循环能完成的,用 for 循环都能实 现。 T 3.while 循环和 do-while 循环的 while()后一定要有一个分号。 F4.if 语句后面的表达式并不限于是关系表达式或逻辑表达式,而可以是任意表达式。if 语句 中可以再嵌套 if 语句。 T 5.一个 if 语句中可以嵌套一个 switch 语句。 6.若 a、b 均为 int 型变量,且 a=100,则以下的 for 循环是死循环. for (b=100;a!=b;++a,b++) printf(&----\n&); 。 7.if (x=y)&&(x!=0) x+=y; 语句语法是错误的。 8.for(i=0,j=10;i&=j;i++,j--) k=i+j;执行完后,k 的值为 50。 9.以下程序段的输出结果是 987。 int n=10; while (n&7) { n--;printf(&%d &,n);} 10.if(a=5) 语句;if(b) 语句;都是非法的。 TF T FT F11.for 循环可以在表达式 3 中包含使循环趋于结束的操作,但必须是一条表达式语句。F F 12.while 语句 do-while 语句无论什么情况下,二者的执行结果都一样。 13.一个 if 语句中可以嵌套另一个 if 语句。 14.if (x&y) 语句语法是正确的。 F T F15.要使 for(表达式 1;表达式 2;表达式 3){循环体}不形成死循环,表达式 2 一定不能为空。14 / 65 F 1.鸡兔共有 30 只,脚共有 90 个,下面程序是计算鸡兔各有多少只。 #include&stdio.h& void main() { int x,y; for(x=1;x&=29;x++) { y=30-x; if (___________)printf(&%d,%d\n&,x,y); } }x*2+y*4==902.下面程序的功能是从键盘输入的一组字符中分别统计出大写和小写字母的个数,当输入换 行符时结束输入。 #include&stdio.h& void main() { int m=0,n=0; while ( (___________)!='\n') c=getchar() { if (c&='A' && c&='Z') m++; if (c&='a' && c&='z') n++; } printf(&m=%d,n=%d\n&,m,n);} 3.以下程序输出结果为_____ ______。 #include&stdio.h& void main() { int x,y; for(x=30,y=0;x&=10,y&20;x--,y++) x/=2,y+=2; printf(&x=%d,y=%d\n&,x,y);} 4.下面程序使循环结束的条件是____ _______。 #include&stdio.h& void main() { for(k=250;i;i-=5); printf(&%d\n&,i); } 5.若从键盘输入 68,则以下程序输出的结果是___________。 #include&stdio. h& void main() { scanf(&%d&,&a); if(a&50) printf(&%d&,a); if(a&40) printf(&%d&,a); if(a&30) printf(&%d&,a); } 6.若有以下程序 #include &stdio.h& void main() {int p, a=5; if (p=a != 0 ) printf(&%d\n&, p); else printf(&%d\n&, p+2); }执行后输出结果是___________。 7.在执行以下程序时,如果从键盘上输入:ABCdef&回车&,则输出为___________。 #include&stdio.h& void main() { while((ch=getchar( ))!='\n') { if(ch&='A' && ch&='Z') ch=ch+32; else if(ch&='a'&&ch&'z') ch=ch-32; printf(&%c&,ch);}15 / 65x=-1,y=21i==16868681 abcDEF printf(&\n&); } 8.下面程序的运行结果是___________。 #include&stdio.h& void main() { for(i=100;i&=0;i-=10); printf(&%d\n&,i); } 9.以下程序运行后的输出结果是___________。 #include &stdio.h& void main( ) { int a=2, b=1, c=2; if (a) if ( b&0 ) c=0; else c++ ; printf(&%d\n&,c); } 10 下面程序的运行结果是___________。 #include&stdio.h& void main() { int a,i; for( a=1,i=-1;-1&=i&1;i++) { a++; printf(&%2d&,a); } printf(&%2d&,i);} -103-1卷 271 以下程序的输出结果是______。 #include&stdio.h& void main() { int num=0; while(num&=2) { num++; printf(&%d&,num); } } A. 2 B. 1 C. 123 D. 12 2 两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是______。 #include &stdio.h& void main() { 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 CD3 以下描述中正确的是______。 C A. 由于 do-while 循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B. do-while 循环由 do 开始,用 while 结束,因此在 while(表达式)后无需加分号。 C. 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为“假”的操作。 D. do-while 循环中,根据情况可以省略 while。 4 下面程序段的输出结果是______。 int i=10; while(i&7) { i--; printf(& %d&,i); } A. 10 9 8 B. 9 8 7 C. 10 9 8 7 5 若 i 为整型变量,则以下循环执行的次数是______。16 / 65BD. 8 9 10 B for(i=2;i==0;) printf(&%d&,i--); A. 无限次 B. 0 次C. 1 次D. 2 次 A D. 98 D6 执行下面程序段后,i 值是______。 int i=0; do {++i; if(i%2!=0);}while(i&=100); A. 101 B. 100 C. 99 7 若变量都已正确说明,则以下程序段输出为______。 int a=1,b=2,c,d; if (a==b) c=d=a; else c=b; d=b; printf(&c=%d,d=%d&,c,d); A. c=1,d=1 B. c=1,d=2 C. c=2,d=1 D. c=2,d=2 8 以下程序输出结果是______。 #include &stdio.h& void main ( ) { int m=5; if (m++&5) printf(&%d\n&,m); else printf(&%d\n&,m--); } A. 7 B. 6 C. 5BD. 4 D9 在 C 语言中______。 A. 不能使用 do_while 语句构成的循环 B. do_while 语句构成的循环必须用 break 语句才能退出 C. do_while 语句构成的循环,当 while 语句中的表达式为非 0 时结束循环 D. do_while 语句构成的循环,当 while 语句中的表达式为 0 时结束循环 10 在下列选项中,没有构成死循环的程序段是______。 A. int i=100; while (1) {i=i%100+1; if(i&100)} B. for(;;); C. int k=1000; do{--k} while (k) D. int s=36; while(s&=0);++s; 11 以下叙述正确的是______。 A. 可以把 define 和 if 定义为用户标识符 B. 可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符 C. 可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符 D. define 和 if 都不能定义为用户标识符 12 下面有关 for 循环的正确描述是______。 A. for 循环只能用于循环次数已经确定的情况 B. for 循环是先执行循环体语句,后判定表达式 C. 在 for 循环中,不能用 break 语句跳出循环体 D. for 循环体语句中,可以包含多条语句,但要用花括号括起来 13 下面说法中正确的是______。 A.编程时,应该尽量控制嵌套循环的重数。 B.编程时,变量名应尽可能的简短。 C.编程时,应多用 goto 语句,以增强程序的灵活性。 D.编程时,要尽可能的简洁而新颖,可理解性是第二位的。 14 以下程序的输出结果是______。17 / 65CBAAB # include &stdio.h& void main() { int i=0, j=0, k=6; if ((++i&0)||(++j&0)) k++; printf(&%d, %d, %d\n&, i, j, k); } A. 0, 0, 6 B. 1, 0, 7 C. 1, 1, 7 D. 0, 1, 7 15C 语言的 for 语句中的表达式可以部分或全部省略,但两个______不可省略。但当三个表 达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 C A. “&” B. “++” C. “;” D. “,” 16C 语言的 for 语句中的表达式可以部分或全部省略,但两个______不可省略。但当三个表 达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 C A. “&” B. “++” C. “;” D. “,” 17 以下程序段中不能根据 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; C18 设有程序段: int x=0,s=0; while(!x!=0) s+=++x; printf(&%d&,s); ,则运行程序段后______。 B A.输出 0 B.输出 1 C.控制表达式是非法的 D.执行无限次 19 以下的 for 循环,______。for(x=0,y=0;(y!=123)&&(x&4);x++); A.执行 3 次 B.执行 4 次 C.循环次数不定 D.是无限循环 20 请阅读以下程序: #include&stdio. h& void main() { float a,b; scanf(&%f&,&a); 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/ else b=10.0; printf(&%f\n&,b); } 若运行时输入 2.0(回车),则上面程序的输出结果是______。 A. 0.000000 B. 0.500000 C. 1. 000000 D. 0. 语句 while (!e);中的条件!e 等价于___A___。 A. e==0; B. e!=1 C. e!=0 BBD. ~e D22 以下程序输出结果为______。 #include &stdio.h& void main() { int i,b,k=0; for(i=1;i&=5;i++) { b=i%2; while (b--&=0) k++;} printf(&%d,%d\n&,k,b); } A. 3,-1 B. 8,-1 C. 3,0 D. 8,-218 / 65 23 下面程序的运行结果是______。 int y=10; do { y--;} while(--y); printf(&%d\n&,y--); A. -1 B. 1 C. 8 24 下面程序的运行结果是______。 int y=10; do { y--;} while(--y); printf(&%d\n&,y--); A. -1 B. 1 C. 8D D. 0 D D. 0 B25 有如下程序段运行结束后 x 的值为______。 int x,y; for(x=1,y=1;x&=100;x++) { if (y&=20) if (y%3==1) { y+=3;} y-=5; } printf(&%d\n&,x); A. 9 B. 8 C. 7 D. 6 26 循环语句 for(i=100;i;i-=30); 的执行次数为______。 A. 3 次 B. 4 次 C. 5 次 D. 0 次 27 设有程序段:int n=0; while(n++&3); printf(&%d&,n);,则运行结果是______。 A. 2 B. 3 C. 4 D. 以上都不对 28do-while 语句构成的循环只能用 break 语句退出。BCF29C 语言的 While 循环语句中, While 后一对圆括号中的表达式的值决定了循环体是否进行, 因此,进入 While 循环后,一定要有能使表达式的值变为 0 的操作。 T 30C 语言程序的三种基本结构是嵌套结构、递归结构、顺序结构。 31if (x!=y) scanf(&%d&,&x);else scanf(&%d&,&y); 语句语法是错误的。 F F32if 语句执行时, 首先计算紧跟在 if 后面一对圆括号中的表达式的值, 如果表达式的值为非 零(&真&) ,则执行 if 后的&语句&,然后去执行 if 语句后的下一个语句。 T 33 语句 int x=3;do { printf(&%d\n&,x-=2);} while(!(--x)); 输出的是 1 和-2。 34 语句 x=3; do {printf(&%2d&,x--);} while(!x); 的执行结果是 3。 T 35 执行完下面程序段后,k 的值为 0。 int i,j,k; for(i=0,j=10;i&=j;i++,j--) k=j-i;T 36if (x&0) printf ( &%f &,-x )语句语法是正确的。 37for 后的一对圆括号中,可以出现各种形式的与循环控制无关的表达式。 38 用 do-while 语句构成循环时,只有在 while 后的表达式为非 0 时结束循环。 39 若 i 为整型变量,则以下循环 i=0; while(i=0)i++;一次也不执行。 40 各 case 和 default 子句的先后顺序可以变动,而不会影响程序执行结果。 41while 循环的 while()后没有分号,而 do-while 循环的 while()后一定要有一个分号。 42for 循环中,如果表达式 2 为空,则该循环一定是死循环。19 / 65T TT F T F T T T F 43 下面程序的运行结果是___________。 #include&stdio.h& void main() { int a=0,i=0; while(a&=6){++i;a+=i;} printf(&%d\n&,a); } 44 有以下程序 #include&stdio. h& void main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(&%d\n&,x); }执行后输出结果是___________。 45 运行以下程序后,如果从键盘上输入 student#&回车&,则输出结果为________。 #include&stdio.h& void main() { int v1=0,v2=0; while((ch=getchar( ))!='#') switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;} printf(&%d,%d\n&,v1,v2);} 46 若输入整数 12345,以下程序的输出结果为___________。 #include&stdio.h& void main() { int x,y; scanf(&%d&,&x); do{y=x%10;printf(&%d&,y);x/=10;} while(x);} 47 以下程序输出的结果是___________。 #include&stdio.h& void main() { int i,j; for(j=10;j&11;j++){for(i=9;i==j-1;i++)printf(&%d&,j);}} 48 以下程序的运行结果是___________。 #include &stdio.h& void main() {int a,b,c; int s,w=0,t=0; a=-1;b=3;c=3; if(c&0) s=a+b; if(a&=0) {if(b&0) if(c&=0)w=a-b; } else if(c&0)w=a-b; else t=c; printf(&%d,%d,%d\n&,s,w,t); } 49 下面程序的运行结果是___________。 #include&stdio.h& void main() { int a=0,i=0; do{++i;a+=i;} while(a&=6); printf(&%d\n&,a); } 50 以下程序完成的功能是_________。 #include &stdio.h& void main( )20 / 6510-4 7,754321102,0,010输出从键盘上输入数据的绝对值 { int shu; printf(&请输入一个整数%%d:\n&); scanf(&%d&, &shu ); if ( shu & 0 ) shu = - printf(& %d\n&, shu ); } 51 下面是计算 n!的值的程序。 #include&stdio.h& void main() { int i,s,n; s=1; scanf(&%d&,&n); for(i=1;i&=n;i++)___________; printf(&s=%d\n&,s); } 52 以下程序输出结果为______。 #include&stdio.h& void main() { for(i=0;i&10;i++); printf(&%d&,i); } s=s*i10卷 281 下面程序段,______。 for(t=1;t&=100;t++) {scanf(&%d&,&x);if (x&0) printf(&%3d&,t); } A. 当 x&0 时整个循环结束 B.当 x&=0 时什么也不输出 C.printf 函数永远也不执行 D.最多允许输出 100 个非负整数 2 以下为死循环的程序段是______。 A. for(i=1; ; ) {if (++i%2==0) if (++i%3==0) } B. i=32767; do { if (i&0)} while(++i); C. for(i=1; ; ) if (++i&10) D. i=1; while(i--); 3 下面程序段输出的 i 值是______。 for(i=1;i&=100;i++)if((i*i&=150)&(i*i&=200)) printf(&%d\n&,i); A. 10 B. 11 C. 12 D. 13 4 下面程序段的运行结果是______。 for(y=1;y&10;) y=((x=3*y, x+1), x-1); printf(&x=%d,y=%d&,x,y); A. x=27,y=27 B. x=12,y=13 C. x=15,y=14 D. x=y=27 5 以下程序段中循环语句的执行次数为______。 int i=0; do { }while(i==0); A. 0 次 B. 1 次 C.无限次 DCDCC D.有语法错误 C6 若有以下定义::int a,b;则正确的 switch 语句是______。 A. switch(x) B. switch(x) { case1.0:printf(&*\n&); { case1,2:printf(&*\n&); case2.0:printf(&**\n&); } case 3:printf(&**\n&); } C. switch (a+b) D. switch (a+b); { case 1:printf(&\n&); { case 1:printf(&*\n&); case 1+2:printf(&**\n&); } case 2:printf(&**\n&); }21 / 65 7 下面程序段输出的结果是______。 int x,y,z; x=20;y=40;z=60; while(x&y)x+=4,y-=4;z/=2; printf(&%d,%d,%d&,x,y,z); A. 40,36,30 B. 32,28,7 C. 32,28,30CD. 32,28,7.5 B8 定义如下变量: int n=25; 则下列循环的输出结果是______。 while(n&22) { n--; printf(& %d&,n); } A. 22 23 24 B. 24 23 22 C. 25 24 23 D. 25 24 23 22 9 以下程序的运行结果是_____。 #include &stdio.h& void main() { char m='b'; if(m++& 'b') printf(& %c\n&,m); else printf(&%c\n&,m--); } A. 'a' B. 'b' C. 'c' D. 'd' 9 在 C 语言中,if 语句后的一对圆括号中,用以决定分支流程的表达式______。 A. 只能用逻辑表达式 B. 只能用逻辑表达式或关系表达式 C. 只能用关系表达式 D. 可用任意表达式 10 下列程序段的运行结果是______。 int a,b,c,t; a=2;b=1;c=1; while (a&b&c) { t=a;a=b;b=t;c--;}; printf(&%d,%d,%d\n&,a,b,c); A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1 11 有如下程序 #include &stdio.h& void main() {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(&%f\n&,y); } 该程序的输出结果是______。 A. 0.000000 B. 0.250000 C. 0.500000CDDC D. 1.000000 A12 与 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; else y=0; 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; 13 下面程序段在执行完成后,a 的值为:______。 int j=0,k=0,a=0; while(j&2) { j++; a=a+1; k=0; while(k&=3)22 / 65C { k++; if(k%2!=0) a=a+1; } a=a+1; } A. 4 B. 6 C. 8D. 10 A14 以下程序段的输出结果是______。 int i=5; for ( ;i&=15; ) { i++; if (i%4==0) printf(&%d &,i);} A. 8 12 16 B. 8 12 C. 12 16 D. 8 15 若 i 为整型变量,且有程序段如下,则输出结果是______。 i=322; if(i%2==0) printf(&####&); else printf(&****&); A. #### B. **** C. ####**** D. 有语法错误, 无输出结果 16 下列程序段中的循环体______。 int n=1;do{n=++n*5;}while(n=10); A.执行 1 次 B.执行 2 次 C.不执行 17 执行下面程序段后,b 的值是______。 int a=0,b=0; do{a++;++a;b+=a;}while(a&20); A. 100 B. 110 C. 120AD D.执行无限次 B D. 90 D18 以下程序的输出为____。 #include&stdio.h& void main( ) { int y=10; while (y--); printf (&y=%d\n&, y);} A. y=0 B. 无限循环,无结果输出 C. y=1 D. y=-119 若有程序段: int m=15; while(!m==0) {m+=m; printf(&test...&); } 以下说法中正确的是 ______。 B A. 循环体语句执行一次。 B. 循环执行无限次 C. 循环体语句一次也不执行 D. 循环执行两次 20 设有程序段: x=y=0; while(x&10) x++;y++; printf(&%d,%d\n&,x,y); ,则运行结果是______。 B A. 0,0 B. 10,1 C. 10,10 D. 1,10 21 以下 for 循环的执行次数是______。for(x=0,y=0;(y=123)&&(x&4);x++); A.是无限循环 B.循环次数不定 C.执行 4 次 D.执行 3 次 C22 若有如下程序段: int n=0; while(n++&=2) printf(&%d&,n); 则正确的执行结果是_____。D A. 3 B. 2 C. 1 D. 123 23 以下正确的描述是______。 A. continue 语句的作用是结束整个循环的执行 B. 只能在循环体内和 switch 语句内使用 break 语句 C. 在循环体内,使用 break 语句和使用 continue 语句的作用是相同的 D. 从多层循环嵌套中退出时,只能使用 goto 语句 24 设 int a=9,b=8,c=7, x=1;则执行语句 if (a&7) if (b&8) if (c&9) x=2 ;else x=3;后 x 的值是_____。 A. 0 B. 2 C. 1 D. 323 / 65BC 25for(表达式 1;表达式 2;表达式 3)中,表达式 1 和表达式 3 可以同时都为逗号表达式。 T 26 用 do-while 语句构成循环时,只要 while 后的表达式为 0 时就结束循环。 T27for(表达式 1;表达式 2;表达式 3)中,表达式 1 和表达式 3 不能同时都是逗号表达式。 F 28if (x&0) {x=x+ printf (&%f &, x);} else printf (&%f&, -x) ; 语句语法是正确的。 29case 语句后一定要加 break 语句。 T F30C 语言中 while 与 do-while 语句的主要区别是 do-while 的循环体至少无条件执行一次。 T 31continue 语句的功能就是结束本层循环。 32break 语句的作用就是结束本层循环。 33for 循环和 while 循环一样,也是先判断表达式(条件)再执行语句(循环体) 。 F T T34C 语言中 while 和 do_while 循环的主要区别是 do_while 的循环体必须至少无条件执行一 次 T 35int i=0; while (i=2) i++;中循环次数是无数次。 36switch 选择结构中必须有 default 子句。 37for( ; ; ) {循环体} ,会无终止地执行循环体。 38 在多层循环嵌套中,可以共用一个 continue 结束各层的本次循环。 T F T F39 用 while 循环时,循环变量的初始化在 while 语句之前完成;用 do-while 循环时,循环变 量的初始化在 do-while 语句之后完成。 F 40 当运行以下程序时,从键盘键入 1 2 3 4 5 -1 &回车&,则下面程序的运行结果是_______。 k=14 n=-1 #include&stdio.h& void main() { int k=0,n; do { scanf(&%d&,&n); k+=n; } while(n!=-1); printf(&k=%d n=%d\n&,k,n); } 41 下面程序的输出结果是_____。 #include&stdio.h& void main() { int x=2; while(x--); printf(&%d\n&,x); } 42 下面程序运行的结果是___________。 #include&stdio.h& void main() { int i=1,a=0,s=1; do { a=a+s*i; s=-s; i++; } while(i&=10); printf(&a=%d&,a);} 43 下面程序是找出整数的所有因子。24 / 65-1a=-1 #include&stdio.h& void main() { int x,i; scanf(&%d&,&x); i=1; for( ; _____; ) { if (x%i==0) printf(&%3d&,i); i++; } } 44 以下程序输出结果为________。 #include&stdio.h& void main() { int x=-5; do { printf(&%3d&,x+=2);} while (!(x++)); } 45 运行下面程序后,输出结果为____。 #include&stdio.h& void main() { int i=0,sum=1; do{sum+=i++;} while(i&5); printf(&%d\n&,sum); } 46 下面程序运行的结果是________。 #include&stdio.h& void main() { int x=2; do { printf(&*&); x--; } while(!x==0);} 47 以下程序的运行结果是________。 #include &stdio.h& void main() {int a,b,c,d; a=c=0; b=1; d=20; if(a) d=d-10; else if(!b) if(! c)d=15; else d=25; printf(&%d&,d); }i&=x-311**2048 下面程序的功能是将从键盘上输入的一对数,由小到大排序输出。当输入一对相等数时 结束循环。 #include&stdio.h& void main() { int a,b,t; scanf(&%d%d&,&a,&b); while(___________) a!=b { if (a&b) {t=a;a=b;b=t;} printf(&%d,%d\n&,a,b); scanf(&%d%d&,&a,&b); } } 49 下面程序的运行结果是_____。 #include&stdio.h& void main() { int a,s,n, a=2;s=0;n=1;count=1; while(count&=7) { n=n*a; s=s+n; ++ } printf(&%d&,s); } 254卷 291 设有:char a[4][5]; 则数组 a 占用的内存字节数是______。25 / 65D A. 12B. 24C. 40D. 202 若有以下定义语句:double a[5],*p=a;int i=2;对 a 数组元素错误的引用是______。 D A.*a B.*&a[4] C.*(p+i) D.p[5] 3 若定义数组并初始化 char a[20]= &Hello&; printf(&%d&, strlen(a));语句的结果是哪一个 ______。 D A. 20 B. 6 C. 不确定 D. 5 4 若主函数中有以下定义和语句:main(){double a[3][4];fun(a);}则正确的 fun 函数的首部 是______。 D A.void fun(double*s) B.fun(double*s[4]) C.fun(double(*s)[3])) D.void fun(double(*s )[4]) 5 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='e', 则数值为 2 的表达式是__ ____。 A.str['g'-c] B.str[2] C.str['d'-'c'] D.str['d'-c] 6 下列数组定义正确的是______。 A. int a[]; B. char a[100]={68,69,70}; C. int n=100,a[n]; D. char n=4,a[n]={&abc&};BB7 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为 2 的元素是__ ____ C A. s[1][3] B. s[0][3] C. s[0][2] D. s[1][2] 8 若要把“abcde”存放在一个一维字符数组中,下面错误的是______。 A.char a[8]={&abcde&}; B.char a[7]={&abcde&}; C.char a[6]={&abcde&}; D.char a[5]={&abcde&}; 9 若定义数组并初始化 int a[2][3]={{1,2,3},{4,5,6}}; for(i=0;i&2;i++) for(j=0;j&3;j++) printf(&%d&,a[i][j]);语句的结果是哪一个______。 A. 1,2,3,4,5,6 B. 1 2 3 4 5 6 C. 123456 D.1, 2, 3, 4, 5, 6 10 若定义数组并初始化 int a[10]={ 1,2,3,4},以下语句哪一个不成立______。 A. a[8] 的值为 0 B. a[1] 的值为 1 C. a[3] 的值为 4 D. a[9] 的值为 0 11 指出以下错误语句______。 A. int n=10,a[n]; B. int n,a[10]; C. int a[10]={1,2,3}; D. int a[10]={1,2,3,4,5,6,7,8,9,10}; 12 以下描述中正确的是______。 A. 数组名后面的常量表达式用一对圆括弧括起来 B. 数组下标从 1 开始 C. 数组下标的数据类型可以是整型或实型 D. 数组名的规定与变量名相同 DCBAD13 以下选项中不能正确把 cl 定义成结构体变量的是_____。 B A.typedef struct B.struct color cl{{} COLOR;} ;COLOR26 / 65 C.struct color D.struct{ int red;{ int red;int green;int green;int blue;int blue;}cl;} cl; 14 执行下面的程序段后,变量 k 中的值为______。 int k=3,s[2]; s[0]=k;k=s[1]*10; A.不定值 B.33 C.30 D.10 15 指出以下错误语句_____。 A. char a[10]={'0','1','2','3','4','5','6','7','8','9'}; C. char a[2]= {&1&,&2&}; AC B. char a[10]={'0','1 ','2','3'}; D. char a[2]= {'a’,'b’}; B16 若有以下定义和语句,则输出结果是______。 char string[ ]=&Sunny&; printf(&%.3s&,string); A. Su B. Sun C. Sunn D. Sunny 17 指出以下错误语句_____。 A. int a[2][3]= {{1,2,3},{4,5,6}}; B. int b[2][3]= {1,2,3,4,5,6}; C. int a[][]={{1,2,3},{4,5,6}}; D. int a[][3]= {{1,2,3},{4,5,6}}; 18 以下程序的输出结果是______。 #include &stdio.h& void main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i&3;i++) for(j=0;j&=i;j++) s+=a[i][j]; printf(&%d&,s); } A. 18 B. 19 C. 20 D. 21 19 阅读程序: #include &stdio.h& void main() { char a[10]; int i; for(i=1;i&=5;i++) scanf(&%c&,&a[i]); printf(&%c&,a[0]); } 设从键盘输入字符串:abcde,则程序的输出结果是______。 A. a B.空格 C.不确定 D.0 CAC20 若有以下说明:int w[3][4]o={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为 4 的表达 式是______。 D A.*w[1]1 B.p,*(p1) C.w[2][2] D.p[1][1] 21 下面程序的输出是___。 #include &stdio.h& void main() { enum team {my,your=4,his,her=eis10}; printf(“%d%d%d%d、n” ,my,your,his,her);} A.0 1 2 3 B.0 4 0 10 C.0 4 5 15 D.1 4 5 15 22 若定义数组并初始化 char a[10]={&hello&}; printf(&%s&, ______。 A. hello B. &hello& C. 'hello' D. &hello & Ca);语句的屏幕输出结果是 A23 已知有定义 char b[10];下面对 b 数组元素表示不正确的是______。 A.b[i=2] B.b[!0] C. b[i=0] D. b[i=0,3X4]27 / 65D 24 若定义数组 int a[10] ,其数组元素的下标下限为______。 A. 1 B. 0 C. 9 D. 10B25 若定义数组并初始化 char a[20]=&Hello&; 使用函数调用 strcpy(a,&world&)后, printf(&%s&, a) 语句的结果是哪一个______。 C A. Hello B. Hello word C. world D. 不确定 26 void fun(doubles[10], int *n){ … … }main(){ double arr[10] ; int n ; … … fun( arr, &n); …… }则以下叙述中正确的是______。 B A.调用 fun 函数时系统将为形参 s 开辟 10 个 double 型存储单元 B.调用 fun 函数时系统将为形参 s 开辟 1 个存储单元 C.调用 fun 函数时形参 s 中的值将传回主函数 D.fun 函数中的形参 s 是一个一维数组名 27 设有:char a[]={&I am a student.&}; 则 a 在内存中占用的字节数是______。 A. 15 B. 12 C. 16 D. 32 28 下列选项中正确的语句组是______。 A.char s[8]; s={&Beijing&}; B.char *s; s={&Beijing&}; C.char s[8]; s=&Beijing&; D.char *s; s=&Beijing&; 29 设有:int a[4][5]; 则数组 a 占用的内存字节数是______。 A. 12 B. 24 C. 40 D. 20 30 指出以下编译时报错的错误语句______。 A. char str[]=&hello, world!&; B. char str[10]=&hello, world!&; C. char str[20]=&hello, world!&; D. char str[20]; str[]=&hello, world!&; CDCD31 已知 int 类型变量在内存中占用2个字节,定义数组 int b[8]={2,3,4};则数组 b 在内存中 所占字节数为______。 D A. 3 B. 6 C. 8 D. 16 32 若定义数组并初始化 int a[10]={ 1,2,3,4},以下语句哪一个成立______。 A. 若引用 a[10],编译时报错 B. 若引用 a[10],连接时报错 C. 若引用 a[10],运行时出错 D. 若引用 a[10],系统不报错 33C 语言中实现字符串输入的库函数是______。 A. gets(字符数组) B. puts(字符数组) C. strlen (字符串) D. strcmp(字符串 1,字符串 2) 34 若字符串串长为 n 个字节,则其占用内存空间为 n+1 个字节。 CAT35 设已定义:float a[5][4];并赋值,要求每行输出 4 个数,则以下输出二维数组 a 的程序段 是正确的: for(i=0;i&5;i++) for(j=0;j&4;j++) printf(&%f&,a[i][j]); printf(&\n&); F 36 定义一维数组 int a[10];则语句 for(i=0;i&10;i++) scanf(&%d&,a[i]);是正确的。 F37 对二维数组元素赋初值:int a[3][4]={5,12,7,4,8,3,9,24,11,2,6,4,}, 则其中数组元素 a[2][2] 的值为 3。 F28 / 65 38 下面字符串赋值的方式是正确的: char str1[10];str1=&string&。 39C 语言中数组所占存储单元的多少仅由数组的长度决定。 40 可以把二维数组看作是一种特殊的一维数组:它的每一个元素又是一个一维数组。F F T41 数组是 C 语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构 类型。T T 42 定义字符数 组 c[6],可以使用格式符 %s 实现字符串整体的输入和输出,则语 句 scanf(&%s&,&c);是正确的。 F 43 数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变 量来定义数组长度。 T 44 给二维数组的全部元素赋初值,可以不指定第二维的长度,但第一维的长度不能省略。F 45 由于二维数组在内存中是按行存放的,因此二维数组的初始化也是按行进行赋值的。 T 46 用字符串为字符数组赋初值:char c[ ]={&BOY&};则数组 c 的长度是 3。 47 在字符数组中,每一个元素只能存放一个字符。 48 二维数组在内存中占用一串连续的存储单元。 49 main() { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i&3;i++) for(j=i+1;j&3;j++) a[j][i]=0; for(i=0;i&3;i++) { for(j=0;j&3;j++) printf(&%d &,a[i][j]); printf(&\n&);}} 输出:___123\n056\n009___ 50 以下程序运行后的输出结果是: main() { int i,n[]={0,0,0,0,0}; for(i=1;i&=4;i++) { n[i]=n[i-1]*2+1; printf(&%d &,n[i]);}} 输出:_______ 1 3 7 15 F T T卷 301 以下数组定义中正确的是______。 A. float f[3,4]; B. int a[ ][4]; C. char c(3); D. double d[3+2][4]; 2 一维数组初始化时,若对部分数组元素赋初值,则下面正确的说法是______。 A. 可以只对数组的前几个元素赋初值 B. 可以只对数组的中间几个元素赋初值 C. 可以只对数组的后几个元素赋初值 D. 以上说法全部正确 DA29 / 65 3 若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10};char c='a'; 则数值为 4 的表达式是___。D A. a['f'-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 4 当执行下面程序时,输出结果是______。 #include &stdio.h& void main() { int i; char b[6]={&12345&}; for(i=0;i&=4;i++) printf(&%C&,b[i]); } A.&12345& B.'1''2''3''4''5' C.12345 CD.1,2,3,4,5 A5 用数组名作为函数调用时的实参,实际上传送给形参的是______。 A. 数组首地址 B. 数组的第一个元素值 C. 数组中全部元素的值 D. 数组元素的个数 6 若已有 char b[10]={'0','1','2','3','4'},则______。 A.元素 b[5]到 b[9]没有被赋值 B.元素 b[5]到 b[9]不存在 C.元素 b[5]到 b[9]自动为空字符 D.元素 b[5]到 b[9]自动为 0 字符 8 决定数组所占内存单元多少的是______。 A. 数组的长度 B. 数组的类型 C. 数组在初始化时被赋值的元素的个数 D. 数组元素的个数及其类型 9 已知有 char a[]={&I\nsee\&ABC\&&};a 数组的长度是______。 A.7 B.8 C.9 D.10 10 若定义数组并初始化 char a[10]={&HELLO&},该数组的元素中 a[2]是______。 A. 'L' B. 'E' C. 'H' D. 'O' 11 设有数组定义: char a[2][3]={{'a','b'},{'e'}};则数组 a 所占空间的字节数为______。 A.3 B.2 C.5 D.6 12 数组初始化时,下面说法错误的是______。 A.当对一维数组的全部元素赋初值时,可以不指定长度 B.当对二维数组的全部元素赋初值时,可以省略维数 C.用字符串对一维字符数组赋值时,可以不指定长度 D.用字符串对二维字符数组赋值时,可以省略维数CDDADB13 如已有定义:int a[4]; 若要把 10,20,30,40 分别赋值给数组 a 的 4 个元素,下面正确的赋值方 式是_____。 C A. scanf(&%d%d%d%d&,a[0],a[1],a[2],a[3]); B. scanf(&%s&, a) C. a[0]=10;a[1]=a[0]+10;a[2]=a[1]+10;a[3]=a[2]+10; D. a={10,20,30,40}; 14 若定义数组并初始化 char a[10]={'0','1 ','2','3','4','5','6','7','8','9'},指出以下会导致错误的语句 ______。 A A. printf(&%s&,a[0]); B. printf(&%c&,a[4]); C. printf(&%x&, A); D. printf(&%s&, A); 15 设定义了:char a[10]={'1','2','3','4','5'}; 则 a[5]的正确初值是______。 A. '5' B. 5 C. '\0' D. ' '30 / 65C 16 以下程序的输出结果是_____。 #include &stdio.h& void main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf(&%d%d%d%d\n&,a[0][3],a[1][2],a[2][1],a[3][0]); } A.0650 B. 1470 C. 5430 D.输出值不确定 17 下面程序的输出是______。 #include &stdio.h& void main() { struct cmplx int x;inf y;}cnum[2]={1,3,2,7}; printf(“%d、n” ,cnum[0].y/cnum[0].x*cnum[1].x);} A.0 B.1 C.3 D.6 18 若定义数组并初始化 int i,j,a[2][3]= {{1,2},{3,4},{5,6}}; for(i=0;i&2;i++) for(j=0;j&3;j++) printf(&%d&, a[i][j]);语句的结果是哪一个______。 A. 1,2,3,4,5,6 B. 1 2 3 4 5 6 C. 120340 D. 1 2 0 3 4 0 19 若定义数组并初始化 int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立______。 A. 表达式 b[1][2]的值为 1 B. 表达式 b[1][2]的值为 4 C. 表达式 b[1][2]的值为 6 D. 表达式 b[1][2]的值为 2 20 下述对 C 语言字符数组的描述中错误的是______。 A.字符数组可以存放字符串 B.字符数组中的字符串可以整体输入、输出 C.可以在赋值语句中通过运算符“=”对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 21 设有程序: #include &stdio.h& void main() { int i,a[5]; printf(&Please input number:\n&); for (i=0;i&=4;i++) scanf(&%d&,( )); ... ... printf(&输出数组:\n&); for(i=0;i&=4;i++) printf(&%d,&,( )); } 则在程序中的两个括号中应填入______。 A. a[i]和&a[i] B. &a[i]和&a[i] C. &a[i]和 a[i]ADCCCC D. a[i]和 a[i] A22 若定义数组并初始化 int a[10]={ 1,2,3,4},以下语句哪一个不成立______。 A. a[10]是 a 数组的最后一个元素的引用 B. a 数组中有 10 个元素 C. a 数组中每个元素都为整数 D. a 数组是整型数组 23 已定义:float a[5]; 则数组 a 可引用的元素有______。 A. a[1]~a[5] B. a[0]~a[5] C. a[1]~a[4] D. a[0]~a[4]D24 设有定义:char a[][5]={{'*'},{'*',' ','*'},{'*',' ',' ',' ','*'},{'*',' ','*'},{'*'}}; 则 a[0][0]和 a[4][4] 的初值分别为______。 D A. *,* B. 空格,空格 C. 空白符,* D. *,空白符31 / 65 25 设有程序段: #define N 3 #define M N+2 float a[M][N]; 则数组 a 的元素个数和最后一 个元素分别为______。 D A. 15,a[5][3] B. 15,a[3][5] C. 8,a[4][2] D. 15,a[4][2] 26 下面程序的输出是______。 #include &stdio.h& void main( ) {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(“%d、n” ,*(p2));} A.3 B.4 C.1 D.2 27 阅读程序: f(int b[],int n) { int i,r=1; for(i=0;i&=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3); printf(&%d\n&,x); } 以上程序的输出结果是______。 A. 720 B. 6 C.24 D. 120 AD28 若有数组定义 char str[10]={&1234567&};则执行 printf(&%.3s&,str);后,输出结果是___。A A. 输出第 1,第 2,第 3 个元素的值 B. 输出 str[1],str[2],str[3]的值 C. 输出全部元素 D. 输出格式描述不正确 29 在对二维数组初始化时,错误的说法是______。 D A.可对二维数组的全部元素赋初值 B.可对二维数组的部分元素赋初值 C.给二维数组的全部元素赋初值时,可以不指定第一维的长度但第二维的长度不能省略 D.给二维数组的全部元素赋初值时,可以不指定第二维的长度但第一维的长度不能省略 30 若定义数组并初始化 char a[20]= &Hello&; printf(&%s&, strupr(a);语句的结果是哪一个 ______。 C A. hello B. Hello C. HELLO D. 不确定 31 已定义:int a[15]; 则数组 a 占用的内存单元数是______。 A. 15 B. 16 C. 30 D. 32 C32 若定义数组并初始化 char a[20]= &Hello&;使用函数调用 strcat(a,& world&)后, printf(&%s&, a) 语句的结果是哪一个______。 B A. Hello B. Hello word C. world D. 不确定 33 以下数组定义中,不正确的是______。 A. int b[3][4]; B. int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}}; C. int b[200][100]={0}; D. int c[ ][3]={{1,2,3},{4,5,6}}; 34 指出以下错误语句______。 A. 用#define N 10 语句定义了 n 后,可以使用 char str[N+1];语句定义数组 B. 在用#define N 10 语句定义了 n 后,可以使用 char str[N];语句定义数组 C. 在用#define n 10 语句定义了 n 后,可以使用 char str[n];语句定义数组 D. int x=10; int a[x]; 35 可以用如下的语句定义数组 a:int n=10,a[n];32 / 65BDF 36 设需定义一个有 15 个元素的数组 a,并对其前 5 个元素赋初值,可用如下语句实现:int a[]={1,2,3,4,5}; F 37 数组中的所有元素必须属于同一种数据类型。 38 定义数组: int a[10]; 则数组 a 的最后一个元素是 a[9],数组 a 共有 9 个元素。 F 30 语句 printf(“%d\n”,strlen(“\t\”\065\xff\n”))输出项不合法,无正常输出。 T F F31 在计算机中二维数组的元素是按行顺序存放的,即在内存中,先顺序存放二维数组第一 行的元素,再顺序存放二维数组第二行的元素,以此类推。 T 32 数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。 33 设定义了:char c[]={&girl&}; 则字符数组 c 在内存中占用 5 个字节的内存单元。 34C 语言只能单个引用数组元素而不能一次引用整个数组。 F T T35 设 已 定 义 : double a[5][5]; 则 数 组 a 在 内 存 中 的 存 放 顺 序 是 : a[0][0],a[0][1],a[0][2], ... ,a[4][3],a[4][4] 。 T 36 在 C 语言中,可以用表达式:&AbcDE&&&ABC&比较字符串的大小。 F37 设已定义: char a[3][5]; 则可用语句 scanf(&%s&,a); 给数组 a 输入 15 个字符之内的字符 T 38 设有 int a[2][3],元素 a[1][2]是数组中第六个元素。 39C 语言数组的下标从 0 开始,下标必须是整数型的常量或变量。 40C 语言中数组元素用数组名后带圆括弧的下标表示。 41#include&stdio.h& void main( ) { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf(&%d%d%d%d\n&,a[0][3],a[1][2],a[2][1],a[3][0]);} 输出:_________ 0650 42 #include&stdio.h& #include&string.h& void main( ) { char ss[10]={&1,2,3,4,5&}; gets(ss); strcat(ss,&6789&); printf(&%s\n&,ss);} 如果输入 ABC,则输出:_____ T T FABC6789卷 311 下面给出的是使用 typedef 定义一个新数据类型的 4 项工作,如果要正确定义一个新的数 据类型, 进行这 4 项工作的顺序应当是______。 A 1.把变量名换成新类型名 2.按定义变量的方法写出定义体 3.用新类型名定义变量 4.在最前面加上关键字 typedef A. 2,4,1,3 B. 1,3,2,4 C. 2,3,4,1 D. 4,2,3,1 2 设有以下链表,则不能将 q 所指的结点插入到链表末尾的是______。33 / 65C A. q-&next=NULL;p=p-&p-&next=q; B. p=p-&q-&next= p-& p-&next=q; C. p=p-&q-&next= p-&next=q; D. p=(*p).(*q).next= (*p). (*p).next=q; 3 阅读程序,选择正确的输出结果______。 #include &stdio.h& void main() { union { int i[2]; char c[4]; } t, *s = &t; s-&i[0] = 0x39; s-&i[1] = 0x38; printf(&%c\n&,s-&c[0]); } A. 39 B. 9 C. 38 4 设有以下定义,则不正确的引用是______。 struct student { }stu,*p; p=& A. stu.age B. p-&age C. (*p).age D. *p.age 5 设有以下说明 union { }a; 则错误的叙述是______。 A. a 所占的内存长度等于成员 f 的长度 B. a 的地址和它的各成员地址都是同一地址 C. a 可以作为函数参数 D. 不能对 a 赋值,也不能在定义 a 时对它初始化 6 阅读程序,选择正确的输出结果______。 #include &stdio.h& void main() { union { }t; t.c = 'A'; t.i = 1; printf(&%d,%d&,t.c , t.i); } A. 65,1 B. 65,65 C. 1,1 BD. 8 DCCD. 以上都不对 A7 结构体类型变量所占内存是______。 A. 各成员所需内存的总和 B. 结构体中第一个成员所需内存量 C. 结构体中占内存量最大者所需内存量 D. 结构体中最后一个成员所需内存量 对结构体类型变量定义不正确的是______。 A. #define STUDENT struct student B.struct student STUDENT { { } } C. struct D. struct { { } }34 / 65D 8 设有以下定义,则不正确的引用是______。 struct student { }*p; A. ( p++)-&num B. p++ C. (*p).num D. p=&student.age 9 设有以下定义,p 指向 num 域的是______。 struct student { char name[10]; }stu,*p; A. p=&stu. B. *p=stu. C. p=(struct student *)&(stu.num); D. p=(struct student *)stu. 10 设有以下定义,则不正确的引用是______。 struct student { char name[10]; }stu[5],*p; p= A. scanf(&%s&,stu[0].name); B. scanf(&%d&,&stu[0].age); C. scanf(&%c&,&(p-&sex)); D. scanf(&%d&, p-&age); 11 阅读程序,选择正确的输出结果_____。 #include &stdio.h& void main() { union { short int i[2]; char c[4]; } t, *s = &t; s-&i[0] = 0x39; s-&i[1] = 0x38; printf (&%x\n&,s-&k); } A. 390038 B. 380039 C. 3938DCDBD. 383912 以下对 C 语言中共用体类型数据的正确叙述是______。 C A. 一旦外定义了一个共用体变量,即可引用该变量或该变量中的任意成员。 B. 一个共用体变量中可以同时存放其所有成员。 C. 一个共用体变量中不能同时存放其所有成员。 D. 共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体 类型定义中。 13C 语言中结构体类型变量在程序执行期间______。 A. 所有成员一直驻留在内存中 B. 只有一个成员驻留在内存中 C. 部分成员驻留在内存中 D. 没有成员驻留在内存中 14 选择一种格式填入,使下面程序段中指针 p 指向一个整型变量。 int *p; p=_______maclloc(sizeof(int)); A. int B. int * C. (* int) D. (int *) 15 设有以下说明 union { } 则 sizeof(test)的值是______。 A. 4 B. 5 C. 6 D. 735 / 65ADA 16 已知:union u{ }现在执行&temp.ch= 'a'& ,temp.i 的值为______。C A. 266 B. 256 C. 97 D. 1 17 以下程序的输出结果是______。 typedef union {long a[2]; int b[4]; char c[8];}UN; UN main() {printf(&%d\n&,sizeof(u));} A. 32 B. 16 C. 8 D. 24 18 以下程序输出为______。 #include &stdio.h& mai() {struct birthday {int year,month, } printf(&%d\n&,sizeof(struct birthday)); } A. 6 B. 8 C. 10 CAD. 12 B19 下面对枚举类型名的正确定义是______。 A. enum a={one,two,three}; B. enum a {one=9,two=-1,three}; C. enum a={&one&,&two&,&three&}; D. enum a {&one&,&two&,&three&}; 20 有以下定义: struct student { } 则下面叙述正确的是__ABD____。 A. struct 是结构体类型的关键字 C. stu 是用户定义的结构体类型名ABD B. struct stu 是用户定义的结构体类型 D. num 和 score 是结构体成员名 F F T T F T F T T T21 共用体类型变量的地址及其中所有成员的起始地址都不相同。 22 共用体类型变量必须在不同时间内维持相同类型的成员值。 23C 语言中可以用 typedef 为类型定义新的类型名。 24 可以用指向结构体的指针作为函数参数。 25 同数组一样,可以对链表中的结点进行随机存取。 26 链表在内存中可以是不连续存放的。 27C 语言中可以用 typedef 同#define 一样,都是在预编译时处理的。 28 枚举型变量只能取枚举类型定义中的某个枚举值,不能是其它值。 29 链表是动态地进行存储分配的一种结构。 30 链表中各结点的联系是通过指针来实现的。36 / 65 31 结构体类型变量中各成员名不能与程序中的其他变量同名。 32 结构体类型变量中的成员不能是结构体类型。 33 共用体也称为联合。 34 可以把结构体类型变量作为整体进行输入、输出。 35 在 C 编译系统中,枚举元素不能被赋值。F F T F T36 在 C 语言中,可以定义不同类型的数据共享同一段内存区域,这种形式的数据构造类型 称为结构体。 F 37 结构体类型变量中各成员共用一段内存。 38C 语言中可以用 typedef 来定义变量。 39 共用体类型变量在定义时进行的初始化,只能根据第一个成员的类型来进行。 40 在 C 编译系统中,将枚举元素作为常量来处理。 41 结构体类型变量可以在定义时赋初值。 42 共用体类型变量可以在不同时间内维持不同类型的成员值。 43 共用体中的所有成员是以同一个地址开始存放。 44 下面程序的输出结果是________。 struct stu { int x,*y; }*p; int d[4]={10,20,30,40}; struct stu a[4]={50,&d[0],60, &d[1],70, &d[2] ,80,&d[3]}; main() { p=a; printf(&%d,&,++p-&x); printf(&%d,&,(++p)-&x); printf(&%d\n&,++(*p-&y)); } 45 设有以下定义: union { }u; 则共用体变量 u 在内存中占的字节数是________。 46 以下程序的运行结果是________。 union un { }; union un s[4];37 / 65F F T T T T T 51,60,214 2,3 union un *p; main() { int n=1,i; for(i=0;i&4;i++) {s[i].a=n; s[i].b=s[i].a+1; n=n+2; } p=&s[0]; printf(&%d,&,p-&a); printf(&%d&,++p-&a); } 47 以下程序段定义一个结构体,使有两个域 data 和 next,其中 data 存放整形数据,next 为 指向下一个结点的指针。 struct object{ _________} struct object *next 已知有如下定义: struct student { char name[10]; char address[50]; } 则系统为 stu 分配的内存单元为______。6948 在程序的横线上填入适当的内容使程序能输出结构体变量 stu 所占内存字节数。 struct student { char name[20]; }; main() { printf(&stu size:%d\n&,____________); sizeof(stu)卷 321 已有数组定义 int a[3][4];和函数调用语句 f(a); ,则在 f 函数的说明中,对形参数组 array 的错误定义方式是______。 B A. f(int array[ ][6]) B. f(int array[3][ ]) C. f(int array[ ][4]) D. f(int array[2][5]) 2 执行下列程序后, 变量 a 的值应为_____。 int f(int x) {return x+3;} main() {int a=1; while(f(a)&10) a++;} A. 11 B. 10 C. 9 D. 7 3 下面函数 f(double x) {printf(“%6d?n”,x);} 的类型为______。 A. 实型 B. void 类型 C. int 类型 D. A、B、C 均不正确 4 用数组名作为函数调用时的实参,实际上传递给形参的是______。 A. 数组的首地址 B. 数组的第一个元素的值 C. 每一个数组元素 D. 数组元素的个数38 / 65DCA 5 以下说法中正确的是____。 A. 形参是全局变量,其作用范围仅限于函数内部。 B. 形参是全局变量,其作用范围从定义之处到文件结束。 C. 形参是局部变量,其作用范围仅限于函数内部。 D. 形参是局部变量,其作用范围从定义之处到文件结束。 6 以下程序: #include &stdio.h& f(int x) { } main() { float a=3.14; a=f(a); printf(&%.2f\n&,a); } 执行结果为______。 A. 3 B. 3.14 C. 3.00 D. 0 7 在一个源文件中定义的全局变量的作用域为______。 A. 本文件的全部范围。 B. 本程序的全部范围。 C. 本函数的全部范围。 D. 从定义该变量的位置开始至本文件结束。 8 以下正确的说法是:建立函数的目的之一是______。 A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅 D. 减少程序文件所占内存 9 有以下程序 #include &stdio.h& void sort(int a[],int n) { int i,j,t; for(i=0;i&n-1;i+=2) for(j=i+2;j&n;j+=2) if(a[i]&a[j]) { t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i&10;i++) printf(&%d,&,aa[i]); printf(&\n&); } 其输出结果是______。 A. 1,2,3,4,5,6,7,8,9,10, B. 10,9,8,7,6,5,4,3,2,1, C. 9,2,7,4,5,6,3,8,1,10, D. 1,10,3,8,5,6,7,4,9,2,CCDBC10 在函数调用过程中,如果函数 A 调用了函数 B,函数 B 又调用了函数 A,则______。 B A. 称为函数的直接递归调用 B. 称为函数的间接递归调用 C. 称为函数的循环调用 D. C 语言中不允许这样的递归调用 11 下列说法中正确的是_____。 A. 调用函数时,实参变量与形参变量可以共用内存单元。 B. 调用函数时,实参的个数、类型和顺序与形参可以不一致。 C. 调用函数时,形参可以是表达式。 D. 调用函数时,将为形参分配内存单元。 12 执行下列程序后, 变量 a 的值应为______。 f1(float x) {return x+1.3;} main() { a=f1(2.4);} A. 3.7 B. 3 C. 4 D. 不确定39 / 65DB 13 C 语言中,函数返回值的类型是由______决定的。 A. 调用函数时临时 B. return 语句中的表达式类型 C. 调用该函数的主调函数类型 D. 定义函数时,所指定的函数类型 14 下列各种存储类型的变量中,必须定义在函数体外的是______。 A. 自动变量类型 B. 寄存器类型变量 C. 内部静态类型变量 D. 外部静态变量 15 关于函数的调用,以下错误的描述是______。 A. 出现在执行语句中 B. 出现在一个表达式中 C. 作为一个函数的实参 D. 作为一个函数的形参 16 凡在函数中未指明存储类别的变量,其隐含的存储类别为_____。 A. register B. auto C. static D.extern 17 若有以下函数定义,则在主函数中正确的调用语句是______。 void fun(int array[][5]) { ………..} main() { int a[3][5], …….. } A. fun(a[3][5]); B. b=fun(a); C. fun(a); D. fun(a) 18 以下函数 f 返回值是_____。 f(int x){} A. void 类型 B. int 类型 C. float 类型 D. 无法确定返回值类型 19 定义为 void 类型的函数,其含义是______。 A. 调用函数后,被调用的函数没有返回值。 B. 调用函数后,被调用的函数不返回。 C. 调用函数后,被调用的函数的返回值为任意的类型。 D. 以上三种说法都是错误的。 20 当全局变量与函数内部的局部变量同名时,则在函数内部______。 A. 全局变量有效 B. 局部变量有效 C. 全局变量与局部变量都有效 D. 全局变量与局部变量都无效 21 在函数体中:auto int b,c=3;与 int b,c=3; 两者等价。 22 函数调用可以作为一个函数的实参。DDDBCBABT T23 数组名做函数的参数时,可以只在主调函数中定义数组,被调用函数只需要确定名称就 可以了. F 24 以数组名作为参数时,数据传送方向是“双向的”,即形参值可以传回给实参。 25 定义函数时,形参的类型说明可放在函数体内。 T F26 在同一源文件中,外部变量与局部变量同名时,则在局部变量的作用范围内,外部变量 不起作用。 T 27 函数的嵌套调用就是在调用一个函数的过程中,又调用另一个函数。 28 下面的程序有一个整型输出值。 main() { a=pp(); printf(&%d&,a); } void pp() { }40 / 65T F 29 除了利用实际参数和形式参数在各函数之间传递数据外,利用全局变量,也可以在各函 数间传递数据。 T 30 在 C 函数中,当以数组名作为参数时,对形参变量的操作不会影响到调用函数中的实参 变量,即形参值不能传回给实参。 F 31 局部静态变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都 不释放。 T 32 不同函数中定义的变量,其作用范围都限制在各自的函数内,在内存中占据的存储单元 也各不相同。 T 32 若调用 C 标准库函数,调用前必须重新定义。 33C 语言中,void 类型的函数不用在主调函数中声明。 34 在 C 语言中,最好使用全局变量。 34 下面程序的输出结果是___________。 #include &stdio.h& #define MAX 3 int a[MAX]; main( ) { fun1( ); fun2(a); printf(&\n&);} fun1( ) { int k , t=0; for(k=0; k&MAX; k++,t++) a[k]=t+t; } fun2(int b[]) { for(k=0;k&MAX;k++)printf(&%d&,b[k]); } 35 #include&stdio.h& fun(int a) { auto int b=0; static int c=3; b=b+1; c=c+1; return (a+b+c); } main() { int a=2,i; for(i=0;i&3;i++) printf(&%d &,fun(a)); F F F 024 }运行结果为___________。78936 从存储类别看,C 语言中没有给出存储类别的局部变量一律隐含定义为___类别。 自动存储 37 下列程序的运行结果是___________。 #include &stdio.h& int d=1; fun(int p) { int d=5; d+=p++; printf(&%d,&,d); } main( ) { int a=3; fun(a); d+=a++; printf(&%d&,d); } 38C 语言中不能被别的函数调用的函数是________。41 / 658,4main 函数 39 以下程序执行的结果是________。 #include &stdio.h& int x=2; main(){ func(x); printf(&x=%d\n&,x); } func(int x) {x=4}

我要回帖

更多关于 php从数组中取出来 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信