2011年10月15日江苏省高校C语言二级考试笔试试卷_答案及剖析
后,我国发布并开始执行新的GB18030汉字国家编码标准。GB18030一方面与GB2312和GBK保持向下兼容性。。。。。。
19、语音在数字化时常用的取样频率为8kHz,量化位数为8bits。若声道数为2,则每分钟的数字语音数据量在未压缩量大约为___19____。 A. 64KB
B.128KB C. 1MB D. 2MB 第19题注释:根据南大“大学计算机信息技术教程(第5版修订本)”P248, 波形声音的码率=取样频率×量化位数×声道数=8×8×2=128kb/s。 换算为每分钟的兆字节为128×000×60/8/1024/1024=0.9155MB/m≈1MB/m
20、数字图像文件有多种文件类型,不同类型的文件各有其特点。在下列4种文件类型中,能够将多种图片保存在一个文件中且能产生动画效果的是__20__。
A. BMP B. JPG C. GIF D. PNG 第20题注释:根据南大“大学计算机信息技术教程(第5版修订本)”P239,GIF的突出的是,它可以将多张图像保存在同一个文件中,显示时按按预先规定的时间间隔逐一进行显示,形成动画效果。
第 5 页 共 16 页
2011年10月15日江苏省高校C语言二级考试笔试试卷_答案及剖析
第二部份 C语言程序设计
一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)
21、某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是____(21)_____。
A. #define P 3.14; B. #define P(3.14) C. #define P =3.14; D. #define P 3.14 22、下列四个选项中,属于C语言关键字的是______(22)_______。
A. Float B. single C. double D. real
第22题注释:清华大学出版社“C程序设计”P365附录B规定只有32个小写的关键字,除此以外均不是关键字:包括附录B的大写字等等。本题附合要求的只有答案C
23、已知某编译系统中signed int 类型数据长度是16位,该类型数据的最大值是___(23)____。
A. 32767 B. 32768 C. 127 D. 65535
第23题注释: 此题signed int 类型数据长度是16位,意指TC3.0环境,在VC++6.0数据长度是32位。所以最大值=215-1=32767(清华大学出版社“C程序设计”P43表3-1) 24、以下关于if语句和switch语句的叙述中错误的是__(24)___。
A. if语句和switch语句都可以实现算法的选择结构 B. if语句和switch语句都能实现多路(两路以上)选择 C. if语句可以嵌套使用 D. switch语句不能嵌套使用 第24题注释:清华大学出版社“C程序设计”P104说明。switch语句多路功能都能用if语句实现嵌套处理,但程序冗长。switch语句无法实现嵌套嵌套使用。
25、已知声明“char *s1=\China\,s2[10],*s3=\Nanjing\,*s4;”,以下字符串赋值语句在执行时可能出现错误的是__(25)__。
A. strcpy(s3,s1); B. strcpy(s4,s1); C. strcpy(s2,s1); D. strcpy(s2,s3); 第25题注释:清华大学出版社“C程序设计”P:374和P251。字符串数组变量在定义和初始化时,s2[10]形式可以在初始化不赋值;但*s4形式初始化不赋值,在采用strcpy(s4,s1);时在编译时会产生“local variable 's4' used without having been initialized”警告,无法得出结果;而非编译错误。
建议该题正确命题是:已知声明“char *s1=\China\,s2[10],*s3=\Nanjing\,*s4;”,以下字符串赋值语句在执行时可能不能获得显示结果的是__(25)__。
26. 已有声明“int x=0,*p=&x;”,以下语句中有语法错误的是_______(26)_____。
A. printf(\); B. printf(\); C. printf(\); D. printf(\); 第26题注释:清华大学出版社“C程序设计”P:221。变量x的值可以有如下形式输出: x *p ;&x指输出变量x所在的地址;*x错误的原因是x是变量,不是指针!!编译时会产生“error C2100: illegal indirection”非法重定向的致命错误! 27. 以下叙述错误的是_____(27)_____。
A. 在函数外可以声明变量
B. 变量声明的位置决定了该变量名的使用范围
第 6 页 共 16 页
2011年10月15日江苏省高校C语言二级考试笔试试卷_答案及剖析 C. 函数调用时在函数内声明的变量所得到的值将无法保存到该函数的下一次调用 D. 在函数外声明的变量,其值可以保存到该程序运行结束
第27题注释:清华大学出版社“C程序设计”P:195。在被函数中含static声明的变量,具有两大特征:不初始化赋值,自动取0;每次函数调用开始,该项变量的起始值为上一次最终运行的结果。
28. 已有声明“int t=1;”,则执行printf(\);时输出的结果是___(28)________。
A. 1 B. 6 C. 2 D. 7 第28题注释:清华大学出版社“C程序设计”P65逗号表达式;P57自增、自减运算符 29. 已有声明“static char *p=\;”,则执行puts(p+2));时输出结果是___(29)____。
A. Apple B. Cpple C. pple D. ple 30. 以下选区项均欲声明变量p,其中错误的是:___(30)____。
A. typedef struct Person B. struct Person
{ char name[20]; { char name[20]; int age; int age; }Per; };
Per p; struct Person p; C. struct D. struct
{ char name[20]; { char name[20]; int age; int age; }Per; }p; Per p; 第30题注释:清华大学出版社“C程序设计”P282和P315。按照结构体定义规定C.定义中Per是结构体变量,不是结构体变量类型,不准对其他变量定义!
二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分) ? 基本概念
1、 C语言源程序中用十六进制表示整型常数必须以______(1)___开头。 (0x)
第1题注释:清华大学出版社“C程序设计”P48表3-3。记住字符常量六种表示形式,可以推论所有结果:以'A'为例,一种存储格式;六种赋值格式;三种输出格式。 存储在计算机存储器形式:0100 0001
用%d输出:65 用%x输出:41 用%c输出:A 用十六进制形式赋值:char x=0x41; 或 char x= '\\x41 '; 用八进制形式赋值:char x=0101; 或 char x= '\\101 '; 用十进制形式赋值:char x=65; 或 char x= 'A'; 由此推论本题答案为:0x
2、 如果一个循环结构体至少要执行一遍,则最适合描述该循环结构的语句是_______(2)___语句。(do while) 第2题注释:在三种循环语句(do {}while();,while(){},for())中后两种都要判别条件是否满足才能开始循环;而第一种循环,先做第一次循环体,后根据条件来判别跳出,还是继续做循环。
3、若要声明一个无符号整型变量x,则正确的声明形式是“___(3)___int x;”。(unsined) 第3题注释:清华大学出版社“C程序设计”P43表3-1。
4、已有声明“int n=12;double a=n/=5;”后,a的值为_______(4)_________。(2.000000)
第 7 页 共 16 页
2011年10月15日江苏省高校C语言二级考试笔试试卷_答案及剖析
第4题注释:清华大学出版社“C程序设计”P56。要理解C语言运算的“左结合性”,还是“右结合性”。符合右结合性的有:赋值运算符、自加或自减运算符。这里等于,先运算n=n/2;后n赋为2,后来以2赋给双精度变量a,所以其值为2.000000 5、若有数据类型定义如下:
union A{float a1;float a2;};
则表达式sizeof(union A)的值是_______(5)___。(4)
第4题注释:清华大学出版社“C程序设计”P308。union为共同体,它有三种标准定义: union A{float a1;float a2; }a,b,c;
union A{float a1;float a2; }; union A a,b,c; union {float a1;float a2; }a,b,c;
共同体所占内存容量是它的成员最长字节数,所以答案是4。
sizeof的功能:能测试变量、表达式、类型说明符在内存中所占的空间(单位:字节):
printf(\); 对于TC30显示为2;对于VC++则为4 printf(\);其显示值为4 printf(\);其显示值为8
第5题命题欠妥处:A是共同体名,不是变量,而sizeof()测试要求是变量、表达式、类型说明符,否则出现编译错误!! 此题建议改为:
若有数据类型定义如下:
union A{float a1;float a2;}B;
则表达式sizeof(B)的值是_______(4)___。 调试程序:
include
{ union A{float a1;float a2;} B; printf(\ 显示为4 见下面在VC++环境下调试结果:
? 阅读程序(13分)
6、以下程序运行时,输出到屏幕的结果为_______(6)___。
#include
enum color{BLACK,YELLOW,BLUE=3,GREEN,WHITE}; void main()
{ char *colorname[]={\ enum color c1=GREEN,c2=BLUE;
printf(\); }
(答案:(6) Yellow)
第 8 页 共 16 页