二级C语言相关考点
1、以下选项中,能用作数据常量的是________。(标准答案: C) (
A) o115 ( B) 0118 ( C) 115L ( D) 1。5e1.5 2、下列叙述中错误的是_______。(标准答案: A) (
A)一个C语言程序只能实现一种算法 ( B)一个C函数可以单独作为一个C程序文件存在 ( C) C程序可以由一个或多个函数组成 ( D) C程序可以由多个程序文件组成 3、设变量已正确定义并赋值,以下正确的表达式是_______。(标准答案: B) (
A) int(15.8%5) ( B) x=y+z+5,++y ( C) x=25%5.0 ( D) x=y*5=x+z 4、以下叙述中错误的是_____________。(标准答案: A)
( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 (
B)C语言源程序经编译后生成后缀为.obj的目标程序
( C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 (
D) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 5、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是___________。(标准答案: D) (
A)大写字母( B)下划线 ( C)数字字符 ( D)连接符 6、以下选项中,合法的一组C语言数值常量是__________。(标准答案: D) (
A) 0x8A 10,000 3.e5 ( B) .177 4e1.5 0abc ( C) 028 。5e—3 -0xf ( D) 12. 0Xa23 4。5e0
7、以下选项中不合法的标识符是__________。(标准答案: C) (
A) print ( B) FOR ( C) &&a ( D) _00
8、若有定义: double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 (
A) i=(a+k)〈=(i+k); ( B) a=a++,i++; ( C) i=a%11; ( D) i=!a; 标准答案: C
11、设有定义: int x=2;,以下表达式中,值不为6的是 (
A) x*=(1+x) ( B) x*=x+1 ( C) x++,2*x ( D) 2*x, x+=2 标准答案: D 12、有以下程序 #include z=x++,y++,++y; printf(”%d,%d,%d\\n”,x,y,z); } 程序运行后的输出结果是 ( A) 2,3,3 ( B) 2,2,1 ( C) 2,3,2 ( D) 2,3,1 标准答案: D 13、以下叙述中错误的是 ( A)使用三种基本结构构成的程序只能解决简单问题 ( B) C语言是一种结构化程序设计语言 ( C)结构化程序由顺序、分支、循环三种基本结构组成 ( D)结构化程序设计提倡模块化的设计方法 标准答案: A 14、以下选项中,能用作用户标识符的是 ( A) 8_8 ( B) unsigned ( C) _0_ ( D) void 标准答案: C 15、 C源程序中不能表示的数制是 ( A)二进制 ( B)十六进制 ( C)十进制 ( D)八进制 标准答案: A 16、若有定义语句: int x=10; ,则表达式x-=x+x的值为 - -2— ( A) 0 ( B) 10 ( C) —20 ( D) —10 标准答案: D 17、以下选项中不合法的标识符是 ( A) &a ( B) print ( C)_00 ( D) FOR 标准答案: A 18、以下关于结构化程序设计的叙述中正确的是 ( A) 一个结构化程序必须同时由顺序、分支、循环三种结构组成 ( B) 有三种基本结构构成的程序只能解决小规模的问题 ( C) 在 C语言中,程序的模块化是利用函数实现的 ( D) 结构化程序使用 goto语句会很便捷 标准答案: C 19、对于一个正常运行的 C程序,以下叙述中正确的是 ( A) 程序的执行总是从 main函数开始,在程序的最后一个函数中结束 ( B) 程序的执行总是从程序的第一个函数开始,在 main函数结束 ( C) 程序的执行总是从 main函数开始 ( D) 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 标准答案: C 20、以下选项中能表示合法常量的是 ( A) 1。5E2。0 ( B) “\\007\" ( C) 1, 200 ( D) ‘\\ ’ 标准答案: B 21、以下定义语句中正确的是 ( A) float a=1, *b=&a, *c=&b; ( B) int a=b=0; ( C) double a=0。0;b=1.1; ( D) charA=65+1,b=’b’; 标准答案: D 22、若变量 x、 y已正确定义并赋值,以下符合 C语言语法的表达式是 ( A) double(x)/10 ( B) x=x+10=x+y ( C) x+1=y ( D) ++x,y=x—— 标准答案: D 23、计算机能直接执行的程序是 ( A) 可执行程序 ( B) 目标程序 ( C) 源程序 ( D) 汇编程序 标准答案: A 24、以下叙述中正确的是 ( A) C语言规定必须用main作为主函数名,程序将从此开始执行 ( B) C语言程序将从源程序中第一个函数开始执行 ( C) main的各种大小写拼写形式都可以作为主函数名,如MAIN, Main等 ( D) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 标准答案: A 25、以下选项中可用作 C程序合法实数的是 ( A) E9 ( B) 9。12E ( C) 3.0e1。2 ( D) .1e0 标准答案: D 26、下列定义变量的语句中错误的是 ( A) float US$; ( B) double int_; ( C) char For; ( D) int _int; 标准答案: A 27、表达式: (int)((double)9/2)-9%2的值是 ( A) 5 ( B) 4 ( C) 0 ( D) 3 标准答案: D 28、以下叙述中错误的是 ( A) 算法正确的程序对于相同的输入一定有相同的结果 ( B) 算法正确的程序可以有零个输 入 ( C)算法正确的程序可以有零个输出 ( D)算法正确的程序最终一定会结束 - —3— 标准答案: C 29、以下叙述中正确的是 ( A) C语言程序中的注释必须与语句写在同一行 ( B) 简单C语句必须以分号结束 ( C) C语句必须在一行内写完 ( D) C程序中的每一行只能写一条语句 标准答案: B 30、以下选项中关于C语言常量的叙述错误的是 ( A) 经常被使用的变量可以定义成常量 ( B) 常量分为整型常量、实型常量、字符常量和字符串常量 ( C) 所谓常量,是指在程序运行过程中,其值不能被改变的量 ( D) 常量可分为数值型常量和非数值型常量 标准答案: A 31、以下选项中,不合法的 C语言用户标示符是 ( A) AaBc ( B) a_b ( C) _1 ( D) a—-b 标准答案: D 32、若变量均已正确定义并赋值,以下合法的C语言赋值语句是 ( A) x=y==5; ( B) x=5=4+1; ( C) x+n=i; ( D) x=n%2。5; 标准答案: A 33、以下选项中关于程序模块化的叙述错误的是 ( A) 把程序分成若干相对独立的模块,可便于编码和测试 ( B) 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序 ( C)把采用分成若干相对独立、功能单一的模块,可便于重复使用这些模块 ( D) 可采用自顶向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 标准答案: D 34、以下叙述中正确的是 ( A) C程序中的注释只能出现在程序的开始位置和语句的后面 ( B) C程序书写格式严格,要求一行内只能写一个语句 ( C) 用C语言编写的程序只能放在一个程序文件中 ( D) C程序书写格式自由,一个语句可以写在多行上 标准答案: D 35、以下不合法的数值常量是 ( A) 1e1 ( B) 0xabcd ( C) 8.0E0.5 ( D) 011 标准答案: C 36、以下关于C语言数据类型使用的叙述中错误的是 ( A) 若只处理“真”和“假”两种逻辑值,应使用逻辑类型 ( B) 若要保存带有多位小数的数据,可使用双精度类型 ( C) 整数类型表示的自然数是准确无误差的 ( D) 若要处理“人员信息\"等含有不同类型的相关数据,应自定义结构体类型 标准答案: A 37、设有定义 intk=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是 ( A) ++k ( B) k++ ( C) k+1 ( D) k+=1 标准答案: B 38、以下叙述中错误的是 ( A) C程序在运行过程中所有计算都以二进制方式进行( B) C程序在运行过程中所有计算都以十进制方式进行 ( C) C程序中字符变量存放的是字符的ASCII值 ( D) 所有C程序都需要编译链接无误后才能运行 标准答案: B 39、以下关于C语言的叙述中正确的是 ( A) C语言中的注释不可以夹在变量名或关键字的中间 ( B) C语言中的变量可以再使用之前的任何位置定义 ( C) 在C语言算数表达式的书写中,运算符两侧的运算数类型必须一致 - —4— ( D) C语言的数值常量中夹带空格不影响常量值的正确表示 标准答案: A 40、以下不合法的字符常量是 ( A) ‘\\018’ ( B) ‘\\\"’ ( C) ‘\\\\’ ( D) ‘\\xcc’ 标准答案: A 41、以下选项中正确的定义语句是 ( A) double a=7,b=7; ( B) doublea;b; ( C) double,a,b; ( D) double a=b=7; 标准答案: A 42、若有定义语句 inta=3,b=2,c=1; 以下选项中错误的赋值表达式是 ( A) a=(b=4)=3; ( B) a=1+(b=c=4); ( C) a=(b=4)+c; ( D) a=b=c+1; 标准答案: A 43、下列叙述中错误的是 ( A) 一个C语言程序只能实现一种算法 ( B) 一个C函数可以单独作为一个C程序文件存在 ( C) C程序可以由一个或多个函数组成 ( D) C程序可以由多个程序文件组成 标准答案: A 44、 C语言源程序名的后缀是 ( A) 。c ( B) .cp ( C) 。obj ( D) 。exe 标准答案: A 45、以下选项中不能用作C程序合法常量的是 ( A) 123 ( B) ‘\\123’ ( C) “\\x7D” ( D) 1,234 标准答案: D 46、表达式a+=a—=a=9的值是 ( A) 0 ( B) -9 ( C) 18 ( D) 9 标准答案: A 47、若有定义语句: intx=12, y=8, z; 在其后执行语句 Z=0。9+x/y; 则 z的值为 ( A) 2.4 ( B) 2 ( C) 1.9 ( D) 1 标准答案: D 48、以下选项中合法的标识符是 ( A) 1—1 ( B) 1__ ( C) 1_1 ( D) _11 标准答案: D 49、表达式3。6-5/2+1。2+5%2的值是 ( A) 4。8 ( B) 4.3 ( C) 3。8 ( D) 3.3 标准答案: C 50、有以下定义: inta; longb; doublex,y; 则以下选项中正确的表达式是 ( A) a=x<>y ( B) a%(int)(x-y) ( C) y=x+y=x 标准答案: B 51、有以下程序 D) (a*y)%b (#include {inta=0,b=0; /*给a赋值 b=20; /*给b赋值*/ printf(“a+b=%d\\n”,a+b); /*输出计算结果*/ } 程序运行后的输出结果 ( A) 出错 ( B) a+b=0 ( C) a+b=30 ( D) a+b=10 标准答案: D 52、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令,关于转换以下说法错误的是 ( A) 一条C语句可能会被转换成零条机器指令 ( B) 某种类型和格式的C语句被转换成机器指令的条数是固定的 ( C) 一条C语句可能会被转换成多条机器指令 ( D) 一条C语句对应转换成一条机器指令 标准答案: D 53、关于C语言的符号常量,以下叙述中正确的是 ( A) 符号常量在整个程序中其中都不会被重新定义 ( B) 符号常量的符号名是标识符,但必须大写 ( C) 符号常量的符号名必须是常量 ( D) 符号常量是指在程序中通过宏定义用一个符号名来代表一个常量 标准答案: D 54、若有以下程序 #include intb=10,a=—11; a%=b%=4; printf(“%d%d\\n\); } 则程序的输出结果是 ( A) 12 ( B) -12 ( C) 1-2 ( D) —1—2 标准答案: B 55、若有以下程序 #include inta=0,b=0, c=0; c=(a—=++a),(a+=b,b+=4); printf(“%d,%d,%d\\n”,a,b,c); } 则程序的输出结果是 ( A) 0,4,0 ( B) 0,4,4 ( C) 1,4,4 ( D) 1,4,1 标准答案: A 56、若有以下程序 #include〈stdio。h> main() { inta=0,b=0,c=0,d; c=(a+=b,,b+=a); /*第4行*/ d=c;; /*第5行*/ ; /*第6行*/ — -6— printf(“%d,%d,%d\\n\,b,c); /*第7行*/ } 编译时出现错误,你认为出错的是 ( A) 第6行 ( B)第5行 ( C)第7行 ( D)第4行 标准答案: D 57、关于算法,以下叙述中错误的是 ( A) 一个算法对于某个输入的循环次数是可以事先估计出来的 ( B) 同一个算法对于相同的输入必须得出相同的结果 ( C) 某个算法可能会没有输入 ( D) 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕 标准答案: D 58、关于C语言的变量,以下叙述中错误的是 ( A) 由三条下划线构成的符号名是合法的变量名 ( B) 所谓变量是指在程序运行过程中其值可以被改变的量( C) 程序中用到的所有变量都必须先定义后才能使用 ( D) 变量所占的存储单元地址可以随时改变 标准答案: D 59、若有以下程序 #include〈stdio.h> main() { inta=-11,b=10; a/=b/=4; printf(“%d %d\\n”,a,b); } ( A) 4 -3 ( B) 5 -3 ( C) -1—2 ( D) 5—2 标准答案: D 60、 #include〈stdio.h> main() { inta=0,b=0,c=0; c=(a+=++b,b+=4); printf(“%d,%d,%d\\n”,a,b,c); } 则程序的输出结果是 ( A) 1,5,1 ( B) —1,4,-1 ( C) -1,4,4 ( D) 1,5,5 标准答案: D 61、以下选项中不属于C语言标识符的是 ( A) 关键字 ( B) 预定义标识符 ( C) 用户标识符 ( D) 常量 标准答案: D 62、以下选项中不属于C语言程序运算符的是 ( A) && ( B) () ( C) sizeof ( D) <> 标准答案: D 63、若变量已正确定义并赋值,以下不能构成C语句的选项是 ( A) A=a+b; ( B) B++; ( C) A?a:b; ( D) a=a+b 标准答案: D 64、若有以下程序段 doublex=5。16894; printf(“%f\\n“,(int)(x*1000+0.5)/(double)1000); 则程序段的输出结果是 ( A) 5.169000 ( B) 5.175000 ( C) 5.170000 ( D) 5.168000 — -7— 标准答案: A 65、以下不能用于描述算法的是 ( A) 文字叙述 ( B) 伪代码和流程图 ( C) 程序语句 ( D) E—R图 标准答案: D 66、以下叙述中合法的实型常量是 ( A) 2.0*10 ( B) .914 ( C) 0 ( D) 3.13e-2.1 标准答案: B 67、以下叙述中正确的是 ( A) 若有 int 4,b=9;执行了 a=b;b=a;之后, a的值为 9, b的值为 4 ( B) 在赋值表达式中,赋值号的右边可以是变量,也可以是表达式 ( C) 若有 int 4,b=9;执行了 a=b后, a的值已由原值改变为 b的值, b的值变为 0 ( D) a是实型变量, a=10在C语言中是允许的,因此可以说:实型变量中可以存放整型数 标准答案: B 68、以下选项中合法的常量是 ( A) sizeof ( B) A% ( C) 5a ( D) _10_ 标准答案: D 69、不能正确表示数学式 的表达式是 ( A) a*b/c ( B) a*(b/c) ( C) a/c*b ( D) a/b*c 标准答案: D 70、 #include 〈stdio。h〉 main() { int a=3; printf(“%d\\n”,a+=a-=a*a); } 程序运行后的输出结果是 ( A) 9 ( B) —12 ( C) 0 ( D) 3 标准答案: B 71、以下叙述中正确的是 ( A) 结构化程序的三种基本结构是循环结构、选择结构、顺序结构 ( B) N-S流程图只能描述简单的顺序结构的程序 ( C) 计算机可以直接处理 C语言程序,不必进行任何转换 ( D) 程序的算法只能使用流程图来描述 标准答案: A 71、以下叙述中正确的是 ( A) 书写源程序时,必须注意缩进格式,否则程序会有编译错误 ( B) 程序的主函数名除了 main外,也可以使用Main或_main ( C) 程序可以包含多个主函数,但总是从第一个主函数处开始执行 ( D) 在 C程序中,模块化主要是通过函数来实现的 标准答案: D 72、 C语言中 double类型数据占字节数为 ( A) 12 ( B) 8 ( C) 4 ( D) 16 标准答案: B 73、以下叙述中正确的是 ( A) 用户自定义标识符必须“见名知意”,如果随意定义,则会出编译错误 ( B) 语言中的关键字不能作变量名,但可以作为函数名 ( C) 标识符的长度不能任意长,最多只能包含 16个字符 ( D) 标识符总是有字母、数字和下划线组成,且第一个字符不得是数字 — -8— 标准答案: D 74、以下叙述中正确的是 ( A) 空语句就是指程序中的空行 ( B) 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的 ( C) 复合语句在语法上包含多条语句,其中不能定义局部变量 ( D) 当用scanf从键盘输入数据时,每行数据在没有按下回车键( Enter键)前,可以任意修改 标准答案: D 75、以下叙述中正确的是 ( A) 程序必须包含所有三种基本结构才能成为一种算法 ( B) 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 ( C)只有简单算法才能在有限的操作步骤之后结束 ( D) 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令 标准答案: D 76、以下叙述中正确的是 ( A) 在C语言程序设计中,所有函数必须保存在一个源文件中 ( B) 结构化程序必须包含所有的三种基本结构,缺一不可 ( C) 只要包含了三种基本结构的算法就是结构化程序 ( D) 在算法设计时,可以把复杂任务分解成一些简单的子任务 标准答案: D 77、以下叙述中正确的是 ( A) 预定义的标识符是C语言关键字的一种,不能另作他用 ( B) 只能在函数体内定义函数,其他地方不允许定义变量 ( C) 常量的类型不能从字面形式上区分,需要根据类型名来决定 ( D) 整型常量和实型常量都是数值型常量 标准答案: D 78、以下叙述中正确的是 ( A) 八进制数的开头要使用英文字母o,否则不能与十进制区分开 ( B) 英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符 ( C) 在C程序中的八进制和十进制,可以是否点数 ( D) 整型变量可以分为int型、 short型、 long型、 unsigned型四种 标准答案: D 79、以下叙述中正确的是 ( A) C语言程序总是从main函数开始执行 ( B) C语言程序所调用的函数必须放在main函数的前面 ( C) C语言程序中main函数必须放在程序开始位置( D) C语言程序总是从最前面的函数开始执行 标准答案: A 80、 C语言程序中,运算对象必须是整型数的运算符是 ( A) % ( B) / ( C) * ( D) && 标准答案: A 81、 #include〈stdio.h> main() { intsum,pad,pAd; sum=pad=5; pAd=++sum,pAd++,++pad; printf(“%d\\n”,pad); } 程序的输出结果是 ( A) 7 ( B) 5 ( C) 8 ( D) 6 标准答案: D — -9— 82、以下四个程序中,完全正确的是 ( A) #include 〈stdio。h> main(); {/*/ programming /*/ printf(\"programming!\\n”); } ( B) #include 〈stdio.h> main() {/* programming */ printf(\"programming!\\n”); } ( C) #include 〈stdio.h〉 main() {/*/* programming */*/ printf(”programming!\\n”); } ( D) include 〈stdio。h> main() {/* programming */ printf(”programming!\\n”); } 标准答案: B 83、有以下程序 #include 〈stdio。h〉 main() { int a=1,b=0; printf(\"%d,\); printf(\"%d\\n\*b); } 程序运行后的输出结果是 ( A) 1,0 ( B) 0,0 ( C) 1,2 ( D) 3,2 标准答案: C 84、有以下程序 #include 〈stdio.h> main() { char a,b,c,d; scanf(\"%c%c\",&a, &b); c=getchar(); d=getchar(); printf(”%c%c%c%c\\n\,b,c,d); } 当执行程序时,按下列方式输入数据(从第 1列开始,个字符) 12 则输出结果是 ( A) 12 ( B) 12 3 ( C) 12 { char c1,c2; c1='A’+'8’-’4’; c2=’A'+’8’-’5’; printf( ”%c,%d\\n\",c1,c2); } 已知字母 A的ASCII 码为65,程序运行后的输出结果是 ( A)输出无定值 ( B) E,D ( C) D,69 ( D) E,68 10 标准答案: D 86、有以下程序 #include 〈stdio。h〉 main() { int a1,a2; charc1,c2; scanf(”%d%c%d%c”,&a1,&c1,&a2,&c2); printf(\"%d,%c,%d,%c”,a1,c1,a2,c2); } 若想通过键盘输入, 使得a1的值为12, a2的值为34, c1的值为字符a, c2的值为字符b, 程序输出结果是: 12,a,34,b 则正确的输入格式是 (以下ㄩ代表空格, A) 12a34b〈CR〉 ( B) 12ㄩa34ㄩ b 87、若变量已正确定义为int型,要通过语句 Scanf(“%d,%d,%d”,&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中语法错误的是(注: □代表一个空格符) ( A) □□□1,2,3〈回车〉 ( B) 1□2□3<回车> ( C) 1,2,3<回车〉 ( D) 1,□□□2,□□□3〈回车> 标准答案: B 88、设变量均已正确定义,若通过 scanf(\"%d%c%d%c”,&a1,&c1,&a2,&c2); 语句为变量a1和a2赋数值10和20,为变量c和c2赋字符X和Y, 以下所示的输入形式正确的是 ( A) 10□X<回车〉 20□Y<回车〉 ( B) 10□X□20□Y〈回车〉 ( C) 10X<回车> 20Y<回车〉 (D) 10□X20□Y〈回车> 标准答案: C 89、设有定义 inta; floatb; 执行 scanf(“%2d%f\",&a,&b); 语句时,若从键盘输入 876 543.0<回车〉 则a和b的值分别是 ( A) 76和543。0 ( B) 87和543。0 ( C) 876和543。0 ( D) 87和6。0 标准答案: D 90、有如下程序段: intx=12; doubley=3.141593; printf(“%d%8。6f\",x,y) 其输出结果是 (A) 123。141593 ( B) 123.141593 ( C) 123。1415930 ( D) 12,3.141593 标准答案: A 91、若有定义: inta,b; 11 通过语句 scanf(“%d;%d”,&a,&b); 能把整数3赋值给变量a, 5赋值给变量b的输入数据是 (A) 35 ( B) 3 5 ( C) 3,5 ( D) 3; 5 标准答案: D 92、阅读以下程序 #include 〈stdio。h〉 main() { int case; float printF; printf(“请输入 2个数: ”); scanf(“%d %f”,&case,&printF); printf(“%d %f\\n”,case,printF); } 该程序在编译时产生错误,其出错原因是 ( A) 定义语句出错, case是关键字,不能用作用户自定义标识符 (B) 定义语句出错, scanf不能作为输入函数使用 ( C) 定义语句出错, printf不能输出擦色的值 (D) 定义语句出错, printF不能用作用户自定义标识符 标准答案: A 93、若有定义 int a; float b; double c; 程序运行时输入: 3 4 5〈回车> 能把3输入给变量a、 4输入给变量b、 5输入给变量c的语句是 (A) scanf(“%d%f%f”,&a,&b,&c); (B) scanf(“%d%lf%lf”,&a,&b,&c); ( C) scanf(“%lf%lf%lf\",&a,&b,&c); (D) scanf(“%d%f%lf\&b,&c); 标准答案: D 94、设有定义 double a,b,c; 若要求通过分别给 a、 b、 c输入1、 2、 3, 输入形式如下( 注: 此处□代表一个空格) 则能进行正确输入的语句 是 ( A) scanf(“%f%f%f”,&a,&b, &c); ( B) scanf(“%lf%lf%lf\",a,b,c); ( C) scanf(“%5.11lf%5.11lf%5.11lf”,&a,&b,&c); ( D) scanf(“%lf%lf%lf\",&a,&b,&c); 标准答案: D 95、以下叙述中正确的是 ( A) scanf和printf是 C语言提供的输入和输出语句 ( B) 由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定 ( C) 由 printf输出的数据都隐含左对齐 ( D) 赋值语句是一种执行语句,必须放在函数的可执行部分 标准答案: D 96、以下叙述中正确的是 ( A) 在使用 scanf函数输入整型或实数时,输入数据之间只能用空格来分隔 12 ( B) 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( C) 使用 printf函数无法输入百分号% ( D) 在 printf函数中,各个输出项只能是变量 标准答案: B 97、以下叙述中正确的是 ( A) 复合语句也被称为语句块,它至少要包含两条语句 ( B) 在scanf函数的格式中,必须有与输出项一一对应的格式转换说明 ( C) scanf函数中的字符串,是提示程序员的。输入数据时不必管它 ( D) 只能在 printf函数中指定输入数据的宽度,而不能在 scanf函数中指定输入数据占的宽度 标准答案: B 13 14 15 16 116、 若有定义 intx, y; 并已正确给变量赋值, 则以下选项中与表达式( x-y) ?( x++):( y++) 中条件表达式 ( x-y)等价的是 A)( x—y〈0) ||x—y〉0) B) (x—y==0) C) ( x-y〈0) D)(x-y〉0) 标准答案: A 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 200、以下叙述中正确的是 A) if 语句只能嵌套一层 B)不能在else 子句中在嵌套if 语句 C)改变if—else 语句的缩进格式,会改变程序的执行流程 D) if 子句和else 子句中可以是任意合法的C 语句 标准答案: D 201、以下叙述中正确的是 A)对于“for(表达式1;表达式2;表达式3)循环体\",只在个别情况下才能换成while B))对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2 的值,以便决定 C)如果根据算法血药使用无限循环(即通常说的“死循环”),则只能使用while 语句 D)只要适当地修改代码,就可以将do—while 与while 相互转换 标准答案: D 202、以下叙述中正确的是 A)在while 语句和do-while 语句中无法使用continue 语句 B)当break 出现在循环体中的switch 语句体内时,其作用是跳出该switch 语句体,并终止循环 C) continue 语句的作用是:在执行完本次循环体中剩余语句后,终止循环 D)只能在循环体内和switch 语句体内使用break 语句 标准答案: D 203、以下叙述中正确的是 A) ‘\\”'是非法的 B) '\\0’表示字符0 C) ”a”表示一个字符常量 D)表达式: ’a’>’b’的结果是“假” 39 标准答案: D 204、以下叙述中正确的是 A)字符常量可以参与任何整数运算 B)转义字符用@符号开头 C)字符变量在定义时不能赋初值 D)同一英文字符的大写和小写形式代表的是同一字符常量 标准答案: A 205、若有定义语句: char a=’\\82’;则变量a A)包含3个字符 B)包含2个字符 C)包含1个字符 D)说明不合法 标准答案: D 206、有以下程序 #include printf(\"%d, %d\\n”, c1, c2); } 程序输出结果是 A) A, Y B) 65,89 C) 65,90 D) 输出格式不合法, 输出出 错信息 标准答案: B 207、若变量已正确定义 for(x=0,y=0;(y!=99&& x〈4);x++) 则以上for循环 A)执行无限次 B)执行次数不定 C)执行3次 D)执行4次 标准答案: D 208、对于while(!E)s; 若要执行循环体s,则E的取值应为: A) E等于0 B) E等于1 C) E不等于1 D) E不等于0 标准答案: A 209、有以下程序 #include printf((x%2)?(“*%d”):(“#%d”), x); printf(“\\n\"); } 程序输出结果是 A) #3*4#5 B)*3#4#5 C)*3*4#5 D)*3#4*5 标准答案: D 210、有以下程序 #include 〈stdio.h> main() { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20)break; if(b%3==1){b=b+3; continue;} b=b+5; } printf(“%d\\n”,a); } 40 程序输出结果是 A)10 B)8 C)7 D)9 标准答案: B 211、 C语言中 char类型数据所占字节数为 A) 3 B) 4 C) 2 D) 1 标准答案: D 212、下列关系表达式中,结果为“假\"的是 A)( 3<4) ==1 B) 3〈=4 C)( 3+4) 〉6 D)( 3! =4) 〉2 标准答案: D 213、若以下选项中的变量 a, b, y均已正确定义并赋值,则语法正确的 switch语句是 A) switch(a*a+b*b) { default :break; case 3:y=a+b; break; case 2:y=a—b; break; } B) switch a*b { case10:y=a+b; default :y=a-b; } C) switch (a+9) { case a:y=a-b; case b:y=a+b; } D) switch (a+b) { case 1:case 3:y=a+b; break; case 0:case 4:y=a-b; } 标准答案: A 214、有以下程序 #include 〈stdio。h〉 main( ) { int a= -2,b=0; while(a++ && ++b) ; printf(“%d,, %d\\n”,a, b); } 程序输出结果是 A) 1, 3 B) 1, 2 C) 0, 2 D) 0, 3 标准答案: B 215、设有定义: int x=0, *p; 紧接着的赋值语句正确的是 A) *p=NULL; B) *p=x; C) p=NULL; D) p=x; 标准答案: C 216、下列叙述中正确的是 A)可以对字符串进行关系运算 B)空字符串不占用内存,其内存空间大小是0 C)两个连续的双引号( ””)是合法的字符串常量 D)两个连续的单引号( '’)是合法的字符串常量 标准答案: C 217、有以下程序 #include 〈stdio.h> int f(int x); main() {int n=1,m; m=f(f(f(n))); printf(”%d\\n”,m); } intf(int x) {return x*2; } 程序运行后的输出结果是________。 41 A) 8 B) 2 C) 1 D) 4 标准答案: A 218、下列叙述中错误的是 A)可以给指针变量赋一个整数作为地址值 B)当在程序的开头包含头文件stdio.h时,可以给指针变量赋 NULL C)函数可以返回地址值 D)改变函数形参的值,不会改变对应实参的值 标准答案: A 219、设已有定义: float x;,则以下对指针变量 p进行定义且赋初值的语句中正确的是 A) float *p=1024; B) float p=&x; C) int *p=(float)x; D) float *p=&x; 标准答案: D 220、以下数组定义中错误的是________。 A) int x[][3]={0}; B) int x[2][3]={1,2,3,4,5,6}; C) int x[][3]={{1,2,3},{4,5,6}}; D) int x[2][3]={{1,2},{3,4},{5,6}}; 标准答案: D 221、有以下程序 void fun( int a[], int n) { int i, t; for(i=0; i〈n/2; i++) { t=a[i]; a[i]=a[n-1—i]; a[n—1-i]=t; } } main() { int k[10]={ 1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2; i<8; i++)printf(\"%d”,k[i]); printf(\"\\n\"); } 程序的运行结果是________. A) 876543 B) 321678 C) 345678 D) 1098765 标准答案: B 222、有以下程序 #define N 4 void fun(int a[][N], int b[]) { int i; for (i=0; i for (i=0; i A) -3,-1,1,3, B) —3,-3,—3,—3, C) —12,—3,0,0, D) 0,1,2,3, 标准答案: A 223、有以下程序 #include 〈stdio.h> intf(int x, int y) { if(x!=y) return ((x+y)/2) ; else return (x); 42 } main() { int a=4, b=5, c=6; printf(”%d\\n\,fun(b,c))); } 程序运行后的输出结果是 A) 6 B) 8 C) 3 D) 12 标准答案: A 224、 有以下程序 #include { int k, (*f)(), a=5, b=10; f=add; .....。 } 则以下函数调用语句错误是 A) k=(*f)(a, b) B)k=f(a, b) C) k=add(a, b) D)k=*f(a, b) 标准答案: D 225、 有以下程序 main() {int n,*p=NULL; *p=&&n; printf(”Inputn:”); scanf(”%d”,&&p); printf(”outputn:\"); printf(\"%d\\n\ 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是 A) printf(\"%d\\n\) scanf(”%d”,&p) C) *p=&n; D) int n,*p=NULL; 标准答案: D 226、 下列定义数组的语句中,正确的是 A) #define N 10 int x[N]; B) int x[0。。10]; C) int N=10; int x[N]; D) int x[]; 标准答案: A 227、 有以下程序 #include 〈stdio。h〉 main() { int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2) {case0:switch(a[i]%2) {case0:a[i]++;break; case1:a[i]--; }break; case1:a[i]=0; } for(i=0;i〈4;i++)printf(”%d\]);printf(”\\n”); } - —43— 程序运行后的输出结果是 A) 2 0 5 0 B) 0 3 0 4 C) 3 3 4 4 D) 3 0 4 0 标准答案: D 228、有以下程序 #include 〈stdio.h> main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0; i〈3; i++) for(j=i;j<=i;j++) t+=b[i][b[j][i]]; printf(”%d\\n”,t); } 程序运行后的输出结果是 A) 3 B) 1 C) 9 D) 4 标准答案: D 229、有以下程序 #include { int a=3, b=4, c=5, d; d=f(f(a, b), f(a, c)); printf(”%d\\n\",d); } 程序运行后的输出结果是 A) 9 B) 7 C) 8 D)10 标准答案: A 230、 若有定义语句: double a, *p=&a ; 以下叙述中错误的是 A) 定义语句中的 * 号是一个说明符 B)定义语句中的 * 号是一个间址运算符 C)定义语句中, *p=&a把变量 a的地址作为初值赋给指针变量 p D)定义语句中的 p只能存放 double类型变量的地址 标准答案: B 231、若有定义语句: double x, y, *px, *py; 执行了 px=&x; py=&y;之后,入语句是 正确的输 A) scanf(”%lf%lf”,x, y); B) scanf(\"%f %f\", x, y); C) scanf(”%f %f” &x, &y); D) scanf(\"%lf %le\, py); 标准答案: D 232、 以下定义数组的语句中错误的是 A) int num[][4]={1,2,3,4,5,6}; B) int num[][3]={ {1,2},3,4,5,6 }; C) int num[2][4]={ {1,2},{3,4},{5,6} }; D) int num[]={ 1,2,3,4,5,6 }; 标准答案: C 233、 有以下程序 #include { int c[10]={1,2,3,4,5,6,7,8,9,0}, i; for (i=0; i<10; i+=2) fun(c[i],c[i+1]); for (i=0;i〈10; i++) printf(”%d,”, c[i]); — —44- printf(”\\n”); } 程序的运行结果是 A) 2,1,4,3,6,5,8,7,0,9, B) 1,2,3,4,5,6,7,8,9,0, C) 0,1,2,3,4,5,6,7,8,9, D) 0,9,8,7,6,5,4,3,2,1, 标准答案: B 234、 有以下程序 main() { int x[3][2]={0}, i; for(i=0;i<3;i++) scanf(”%d”,x[i]); printf(\"%3d%3d%3d\\n”,x[0][0],x[0][1],x[1][0]); } 若运行时输入: 24 6<回车>,则输出结果为 A) 2 4 6 B) 2 4 0 C) 2 0 0 D) 2 0 4 标准答案: D 235、 有以下程序 double f(double x) ; main() { double a=0; int i ; for(i=0;i<30;i+=10) a+=f((double)i ); printf(”3.0f\\n\", a); } double f(double x) { return x*x+1; } 程序的运行结果是 A)500 B)1404 C)401 D)503 标准答案: D 236、若有以下函数首部: int fun(double x[10], int *n) 则下面针对此函数的函数声明语句中正确的是 A) int fun(double x, int *n); B) int fun(double *, int *); C) int fun(double *x, int *n) D) int fun(double, int) 标准答案: B 237、 有以下程序 main() { double m=1, n=2, *p=&m, *q=&n, *r; r=p; p=q; q=r; printf(\"%d, %d, %d, %d\\n”, m, n, *p, *q); } 程序的运行结果是 A) 2,1,2,1 B) 2,1,1,2 C) 1,2,1,2 D) 1,2,2,1 标准答案: D 238、若有以下定义: int x[10], *pt=x;则对数组元素的正确引用是 A) *&x[10] B)*(x+3) C) pt+3 D) *(pt+10) 标准答案: B 239、 有以下程序 main() { int i, s=0, t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=*(t+i); printf(”%d\\n\", s); } — —45— 程序的运行结果是 A)20 B) 25 C) 36 D) 45 240、有以下程序 #include int i; for(i=0;i { int x[ ][M]={{1,2,3},{4},{5,6,7,8},{9,10}}, y[N], i; fun(x, y); for(i=0;i A)1,4,5,9, B) 1,0,7,0, C) 3,4,8,10 D) 1,2,3,4 标准答案: B 241、关于return语句的叙述中正确的是 A)定义成 void类型的函数中可以带返回值的return语句 B)没有 return语句的自定义函数在执行结束时不能返回到调用处 C)一个自定义函数中可以根据不同情况设置多条 return语句 D)一个自定义函数中必须有一条 return语句 标准答案: C 242、已定义以下函数: int fun(int *p){return *p;} fun函数返回值是 A)一个整数 B)形参 p的地址值 C)形参 p中存放的值 D)不确定的值 标准答案: A 243、以下程序段完全正确的是 A) int k,*p=&k; scanf(“%d\", p); B) int *p; scanf(“%d”, p); A) int k,*p=&k; *p=&k; scanf(“%d”, p); D) int *p; scanf(“%d”, &p); 标准答案: A 244、设有定义: double a[10], *s=a;以下能够代表数组元素 a[3]的是 A) *s[3] B)( *s) [3] C)*s+3 D)*(s+3) 标准答案: D 245、有以下程序 void f(int *q) { int i=0; for(; i〈5;i++) (*q)++; } main() { int a[5]={1,2,3,4,5}, i; f(a); for(i=0;i<5;i++) printf(“%d,\",a[i]); } 程序运行后的输出结果是 A) 2,2,3,4,5, B) 6,2,3,4,5 C) 2,3,4,5,6, D) 1,2,3,4,5, - —46- 标准答案: B 246、有以下程序 int fun(int (*s)[4], int n, int k) { int m, i; m=s[0][k]; for(i=1;i main() { int a[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}}; printf(“%d\\n”,fun(a,4.0)); } 程序的运行结果是 A) 4 B) 34 C) 31 D) 32 标准答案: C 247、以下叙述中错误的是 A)用户定义的函数中若没有return语句,则应当定义函数为 void类型 B)函数的 return语句中可以没有表达式 C)用户定义的函数中可以没有 return语句 D)用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值 标准答案: D 248、有以下程序 void fun(char *c, int d) {*c=*c+1; d=d+1; printf(“%c, %c, ”, *c, d); } main() { char b=’a’, a=’A'; fun(&b, a); printf(“%c, %c\\n”, b,a); } 程序的运行结果是 A) a,B,B,a B)b,B,b,A C) a,B,a,B D) b, B, B,标准答案: B 249、下列选项中,能正确定义数组的语句是 A) int num[0。。.2008]; B)int num[ ]; C)int N=2008; int num[N]; C)#define N 2008; int num[N];标准答案: D 250、以下函数实现每行8个输出 w所指数组中的数据 void fun(int *w, int n) { int ; for(i=0;i printf(“\\n”); - —47— } 在横线处应填入的语句是 A) if(i/8==0)contion; B) if(i%8==0)contion; C) if(i%8==0)printf(“\\n”); C) if(i/8==0)printf(“\\n\"); 标准答案: C 251、有以下程序 void fun(char *c) { while(*c) { if(*c>='a’&& *c<=’z’) *c=*c—(‘a'—‘A'); A c++; } } main() { char s[81]; gets(s); fun(s); puts(s); } 当执行程序时从键盘上输入HelloBeijing<回车〉,则程序的输出结果是 A) HELLOBEIJING B) hello beijing C)HelloBeijing D)hEllo Beijing 标准答案: A 252、有以下程序 main() { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,72,5},{4,8,6,1}}; int i,j,k,t; for(i=0;i〈4;i++) for(j=0;j〈3;j++) for(k=j+1;k〈4;k++) if(a[j][i]>a[k][i]) { t=a[j][i]; a[j][i]=a[k][i]; a[k][i]=t; /*排列排序*/ } for(i=0;i<4;i++) printf(“%d,”,a[i][i]); } 程序的运行结果是 A)1,6,2,1, B)4,7,5,2, C) 8,7,3,1, D)1,6,5,7, 标准答案: D 253、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A)函数的实参和其对应的形参共占同一存储单元 B) 形参知识形式上的存在,不占用具体存储单元 C)函数的形参和实参分别占用不同的存储单元 D) 同名的实参和形参占同一存储单元 标准答案: C 254、设有以下函数: void fun(int n,char *s){..。.。。} 则下面对函数指针的定义和赋值均正确的是 A) void *pf(); pf=fun; B)void ( *pf) (int, char);pf=&fun; C)void *pf(); *pf=fun; D) viod (*pf)(int , char*); pf=fun; 标准答案: D 255若要求定义具有10个int 型元素的一维数组a,则以下定义语句中错误的是 — -48- A) int a[5+5]; B) #define N 10 int a[N]; B) #define n 5 int a[2*n]; B) int n=10, a[n]; 标准答案: D 256、有以下程序 main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i〈3;i++) printf(“%d ”, t[2-i][i]); } 程序输出结果是 A) 3 6 9 B) 7 5 1 C) 7 5 3 D) 3 5 7 标准答案: D A) 0987651234 B) 0987654321 C) 4321098765 D) 5678901234 标准答案: D — -49- A) 2 B) 4 C) 1 D) 3 标准答案: D A) 1,4 B) 1,2 C) 2,3 D) 1,3 标准答案: D 262、若有定义语句: int a[2][3], *p[3];则以下语句中正确的是 A) p[0]=&a[1][2]; B) p[1]=&a; C) p=a; D) p[0]=a; 标准答案: A A) 1,2,3,4,5,6,7,8,9,10, B) 3,4,5,6,7,2,1,8,9,10, — -50- C)19,9,8,7,6,5,4,3,2,1, D) 5,4,3,2,1,6,7,8,9,10, 标准答案: B A) 11 23 B) 433 2 C) 12 34 D) 234 4 标准答案: B A) 5.00 B) 0.0 C) 5.21 D) 5 标准答案: A A) 3,5,5,3 B) 5,3,5,3 C) 5,3,3,5 D) 3,5,3,5 - -51- 标准答案: D A) 1,2,6,8,10,12,14,16,9,10, B) 1,2,3,4,5,6,7,8,9,10, C) 1,2,3,4,10,12,14,16,9,10, D) 1,2,6,8,10,12,7,8,9,10, 标准答案: D A) 9 B) 5 C) 61490 D) 61 标准答案: D 272、 若有定义语句: int year=2009, *p=&year; 以下不能使变量year中的值增加至2010的语句是 — -52— A) ++( *p) B) *p+=1 C)( *p) ++ D) *p++; 标准答案: D 273、若有定义语句: int a, b, c, *p=&c; 接着执行以下选项中的语句,则能正确执行的语句是 A) scanf(“%d\", &p); B) scanf(“%d”, a, b, c); C) scanf(“%d%d%d”, a, b, c); D) scanf(“%d”, p); - —53— A)ABEJ B)ABCD C) abcd D)abej 标准答案: D 278、若有以下程序 ( A) 6,6,6 ( B) 6,3,6 ( C) 4,3,4 ( D) 4,3,3 标准答案: D 279、若有以下程序 则程序的输出结果是 ( A) 3,7,7,7,7,7 ( B) 3,3,3,7,7,7 ( C) 7,7,7,3,3,3 ( D) 7,7,7,3,7,7 标准答案: D 280、若有以下程序 则程序的输出结果是 ( A) 5,3,5,3,5 ( B) 3,5,5,3,5 ( C) 3,5,3,5,5 ( D) 5,3,3,5,5 标准答案: C 281若有以下程序 — -54- 则程序输出结果是 ( A) 1,2,3,4,13,14,15,16, ( B) 13,14,15,16,1,2,3,4, ( C) 1,5,9,13,4,8,12,16, ( D) 4,8,12,16,1,5,9,13, 标准答案: C 282若有以下程序 则程序的输出结果是 ( A) 1,10,3,8,5,6,7,4,9,2, ( B) 2,9,4,7,6,5,8,3,10,1, ( C) 10,9,8,7,6,5,4,3,2,1, ( D) 10,1,8,3,6,5,4,7,2,9, 标准答案: D 283、若有以下程序 则程序的输出结果是 ( A) 00000 ( B) 01496 ( C) 014916 ( D) 01234 标准答案: B 284、若有以下程序 则程序的输出结果是 ( A) 9,4,9 ( B) 6,12,12 ( C) 6,4,4 ( D) 6,4,6 标准答案: D 285、若有以下程序 则程序的输出结果是 — —55- ( A) 7,5,7,3,5,7, ( B) 7,7,5,3,3,3, ( C) 7,5,7,3,3,3, ( D) 7,5,5,3,3,3, 标准答案: D 286、若有以下程序 #include if(*s<*t){k=*s; *s=*t;*t=k} return s; } main() {int i=3,j=5,*p=&I,*q=&j,*r; r=f(p,q); printf(“%d,%d,%d, %d\\n”,i,j,*p,*q,*r) } 则程序的输出结果是 ( A) 5,3,3,5,5 ( B) 3,5,3,5,5 ( C) 3,5,5,3,5 ( D) 5,3,5,3,5 标准答案: D 287、有以下程序 #include for(i=0;i { int x[N][N] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},y[N],i; fun(x,y,1); for(i=0;i〈N;i++) printf(“%d ”,y[i]); fun(x,y,0); for(i=0;i A) 1,5,9,13,4,8,12,16, ( B) 13,14,15,16,1,2,3,4, ( C) 4,8,12,16,1,5,9,13, ( D) 1,2,3,4,13,14,15,16, 标准答案: D 288、有以下程序 #include void fun(int a[],int n) { intt,i,j; for(i=0;i〈n;i++) for(j=j+2;j { intc[10]={10,9,8,7,6,5,4,3,2,1},i; fun(c,10); for(i=0;i〈10;i++) printf(“%d\[i]); printf(“\\n”); } 则程序的输出结果是 ( A) 1,10,3,8,5,6,7,4,9,2, ( B) 10,9,8,7,6,5,4,3,2,1,( C) 10,1,8,3,6,5,4,7,2,9, ( D) 2,9,4,7,6,5,8,3,10,1 标准答案: D 289、有以下程序 #include〈stdio.h> intfuna(inta,intb){ returna+b;} main() { intx=6,y=7,z=8,r; r=fun(fun(x,y),z-—); printf(“%d\\n”,r); } 程序运行后的输出结果是 ( A) 15 ( B) 21 ( C) 31 ( D) 20 标准答案: B 290、以下选项中函数形参不是指针的是 ( A) fun(int&p){…} ( B) fun(intp[]){…} ( C) fun(int&a){…} ( D) fun(inta[10]){…} 标准答案: A 291、有以下程序 #include〈stdio。h> main() { inty=1,x,a[6]={ 2,4,6,8,10},*p; p=&a[1]; for(x=0;x<3;x++) y=y+*(p+x); printf(“%d\\n”,y); } 程序运行后的输出结果是 ( A) 19 ( B) 18 ( C) 20 ( D) 17 标准答案: A 292、有以下程序 #include voidfun(int*s,intn,int *k) { inti; for(i=0,*k=i;i〈n;i++) if(s[i]〉s[*k]) ; } main() { inta[5]={1,6,2,8,0},k; fun(a,5,&k); printf(“%d %d\\n\[k]); } 在横线处应填入的内容是 ( A) k=i—s ( B) *k=i-s ( C) k=i ( D) *k=i - —57— 标准答案: D 293、有以下程序 #include for(j=0;j〈2;j++) k=k+*(*(p+i)+j); printf(“%d\\n”,k); } 程序运行后的输出结果是 ( A) 60 ( B) 99 ( C) 108 ( D) 68 标准答案: A 294、有以下程序 #include〈stdio.h〉 intfuna(inta,intb){returna+b;} intfunb(inta,intb){returna-b;} intsss(int(*t)(),intx,int y){return((*t)(x,y));} main() { intx; x=sss(funa,9,3); x+=sss(funb,8,3); printf(“%d\\n\} 程序运行后的输出结果是 ( A) 17 ( B) 22 ( C) 24 ( D) 23 标准答案: A 295、有以下程序 #include〈stdio。h〉 voidfun(inta,int b,intc) {a=b;b=c;c=a;} main() { inta=10,b=20,c=30; fun(a,b,c); printf(“%d,%d,%d\\n”,c,b,a); } 程序运行后的输出结果是 ( A) 30,20,10 ( B) 0,0,0 ( C) 20,30,10 ( D) 10,20,30 标准答案: A 296、有以下程序 #include〈stdio.h> main() { intc[6]={10,20,30,40,50,60},*p,*s; p=a; s=&c[5]; printf(“%d\\n\—p); } 程序运行后的输出结果是 ( A) 5 ( B) 60 ( C) 6 ( D) 50 标准答案: A 297、有以下程序 #include A) 1 ( B) 2 ( C) 3 ( D) 0 标准答案: C