2012江苏省计算机等级考试c语言试题答案 下载本文

1、光纤通信常用波分多路复用技术提高通信容量;

2、电缆调制解调技术(Cable MODEM) 采用频分多路和时分多路复用技术

3、在无线广播系统中,收音机能收听多个不同的电台节目,采用频分多路复用技术 4、传输电视信号的有线电视系统,采用频分多路复用技术

5、计算机局域网内的数据帧以时分多路复用方式共享传输介质(P146)

18、下列有关文本与文本处理的叙述中,错误的是___(18)___。 A. 文本信息在计算机中存储时,汉字均为双字节编码,非汉字字符均为单字节编码 B. 文本输入可以是键盘输入,也可以是联机手写输入、语音输入等

C. DOC文档、HTML网页、PDF文档均为丰富格式文本,但它们的格式标记方式不同 D. 文本中的字符可以使用不同的字体,不同字体的同一个汉字,其机内码相同 第18题A注释:根据南大“大学计算机信息技术教程(第5版修订本)”P228-231,同内汉字代码使用的汉字基本上是双字节,GB18030已扩展到4字节,台湾地区汉字编码采用Bog5(大五码)。非汉字字符也有两种:单字节的ASCII码,双字节的汉字化的英文等字符。 19、在未压缩的情况下,存储一幅分辩率为1024×1024的24位彩色数字图像需要的存储空间大约为___(19)____。

A. 24KB B.3MB C. 8MB D. 24MB 第19题注释:根据南大“大学计算机信息技术教程(第5版修订本)”P237表5-1。 存储空间为1024×1024×24/8/1024/1024=3MB 20、文件扩展名通常用于标识文件的类型。下列4个文件扩展名中,属于数字波形声音文件的是__(20)__。

A. .WAV B. .MIDI C. .AVI D. .MPG 第20题注释:根据南大“大学计算机信息技术教程(第5版修订本)”P248。

WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源

MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法。

AVI就是Audio Video Interleave是一种视频音频交叉存取格式。微软公司在1992年推出了AVI技术及其应用。

MPG又称MPEG(Moving Pictures Experts Group)即动态图像专家组,由国际标准化组织ISO(International Standards Organization)与IEC(International Electronic Committee)于1988年联合成立,专门致力于运动图像(MPEG视频)及其伴音编码(MPEG音频)标准化工作。

第二部份 C语言程序设计

一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分) 21、以下有关C语言函数的描述中,错误的是____(21)_____。

A. 一个完整的C程序可以有多个函数,其中必须有且只能有一个名为main的函数 B. 当一个C程序包含多个函数时,先定义的函数先执行 C. 函数可以嵌套调用

D. 函数不可以嵌套定义

22、以下程序段在编译时不会报错的是______(22)_______。

A. #define double 2 B. #define a 2

void main() void main() { double a=2; } { int a=0; } C. #define a 2 D. #define a 2 void main() int x=a; { a++; } void main() { x++; } 第22题D注释:#define宏定义的是符号常量,不是变量,C语言不准给常量赋值。本题附合要求的只有答案D 23、已知声明“int x=0,y=2;”,则执行语句“y=--x||++y;”后,变量y的值是___(23)____。

A. 0 B. 1 C. 2 D. 3

第23题B注释: 此题赋值号运算符是14级,逻辑或是12级,变量自增或自减是2级。赋值号右边逻辑表达式,先进行“--x”,x值为-1,其逻辑值为1,按照规定,逻辑或右边不进行运算,即将逻辑值1赋给了变量y。所以最后变量y存储为1;变量x存储为-1。 24、已有预处理命令“#include ”和声明“int a=4,b;”,以下语句中语法正确的是__(24)___。

A. if(a%2=1) b=a; B. if(sqrt(a)%2) b=a; C. if(a==1) b=a; D. if(a==1) b=*a;

第24题C注释:A的赋值符是最后运算,不可能给常量赋值:error C2106: '=' : left operand must be l-value

B错误信息:error C2296: '%' : illegal, left operand has type 'double '

D错误信息:error C2100: illegal indirection非法定向,*a是指针变量的值。 25、以下函数中能正确实现n!(n<13)计算的是__(25)__。

A. long fact(long n) B. long fact(long n)

{ { if(n<=1) return 1; return n*fact(n-1); else return n*fact(n); } }

C. long fact(long n) D. long fact(long n) { static long s,i; { long s=1,i; for(i=1;i<=n;i++) s=s*i; for(i=1;i<=n;i++) s=s*i; return s; return s; } } 第25题D注释:选项C函数中由于用了static,s的初始值为0,阶乘为0;选项A、B无显示。 选项D调试图如下:

26. 以下叙述正确的是_______(26)_____。

A. char s[11]= \C Language\等价于 char s[11]; s= \C Language\B. char s[11]= \C Language\等价于 char s[11]; s[11]= \C Language\C. char *s= \C Language\等价于 char *s; s= \C Language\D. char *s= \C Language\等价于 char *s; *s= \C Language\

第26题注释:清华大学出版社“C程序设计(第四版)”P:256。字符串定义与赋值有两种指针形式:char *s= \C Language\或char *s; s= \C Language\

P:158,字符串定义与赋值只有一种数组形式:char s[]= \C Language\或char s[]= {\C Language\

27. 以下叙述错误的是_____(27)_____。

A. 函数外声明的变量是全局变量 B. 函数内声明的变量是局部变量 C. 局部变量的生存周期总是与程序运行的时间相同 D. 形式参数的生存周期与所在函数被调用执行的时间相同 第27题C注释:局部变量的生存周期与所在函数运行的时间相同。

28. 已有声明“int a[3][3]={1,2,3,4,5},*p1=a[0],(*p2)[3]=a;”,以下选项不能输出5的语句是___(28)________。

A. printf(\); B. printf(\); C. printf(\; D. printf(\); 第28题B注释: 选项A采用二级数组元素输出,正确;选项C采用指针形式输出,正确;p2是清华大学出版社“C程序设计(第四版)”P:250的“指向由m个元素组成的一级数组的指针变量”,定义形式为int (*p2)[4]; p=a;引用形式为“*(*(p2+i)+j)”或“p2[1][1]”

29. 已有如下定义和声明:

struct data { int a; char b; float c;} s={123}; char m;

以下语句正确的是:___(29)____。 A. s=5; B. s={4,5,6}; C. s.a=5; D. m=s; 第29题C注释:清华大学出版社“C程序设计(第四版)”P:297-298。结构体赋值规定,象上面一样,在定义时赋值;或象选项C,对成员赋值;或结构体变量变量相互夙值等。 30.若要求数据文件myf.dat被程序打开后,文件中原有的数据均被删除,程序写入此文件的数据可以在不关闭文件的情况下被再次读出。则调用fopen函数时的形式为“fopen(\,\(30)_____\”。 A. w B.w+ C. a+ D. r 第30题C注释:清华大学出版社“C程序设计(第四版)”P:335-336“fopen”表10.1。 文件使用方式 r w a r+ w+ a+ 含义 为了输入数据,打开一个文本文件 为了输出数据,打开一个文本文件 向文本文件尾添加数据 为了读和写,打开一个文本文件 为了读和写,建立一个文本文件 为了读和写,打开一个文本文件,但写是尾部追加 如果指定文件不存在 出错 建立新文件 出错 出错 建立新文件 出错 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分) ? 基本概念 1、 已有声明“int a,h;”且a和b的值均大于0,表达式“a%b+a/b*b==a”的值为______(1)___。 (答案1)

第1题注释:清华大学出版社“C程序设计(第四版)”P:378附录D。“%、/、*”是3级;“+”是4级;“==”是7级,为最后运算。分三种情况,试其答案: 若a为5,b为2,“等于运算符”左边运算为数值5,其逻辑值为1,“等于运算符”右边逻辑值为1,则运算结果为1; 若a为2,b为5,“等于运算符”左边运算为数值2,其逻辑值为1,“等于运算符”右边逻辑值为1,则运算结果为1; 若a为2,b为2,“等于运算符”左边运算为数值2,其逻辑值为1,“等于运算符”右边逻辑值为1,则运算结果为1; 由此推得本题答案为:1

2、已有声明“double x=3.5;”,表达式“(int)x+x”值的类型是_______(2)___语句。(double) 第2题注释:根据清华大学出版社“C程序设计(第四版)”P:54第4点“不同类型数据间的混合运算”和56第5点“强制类型转换运算符”说明,答案应该是“double”或“双精度”。 3、已有定义“#define M(a,b,c) a*b-c”,执行语句“printf(\”时的输出为___(3)___。(7) 第3题注释:根据清华大学出版社“C程序设计(第四版)”P:41规定,宏定义定义的是“符号常量”,它在C源程序编译前被替换。所以输出库函数中常量为:2+3*2+3-4=7 4、表示“当x取值在[1,

10]范围内时y取值1,否则y取值-1”所使用的C表达式为