内容发布更新时间 : 2024/11/19 5:52:57星期一 下面是文章的全部内容请认真阅读。
计算机学院2011-2012学年第2学期C语言程序设计考试试卷
A卷(或B卷): A卷 闭卷(或开卷):闭卷 考试时间:2012年 6 月 27日
专业 班级 学号 学生姓名
题号 题分 得分 一 10 二 10 三 10 四 10 五 20 六 20 七 20 总分 100 核对人
注意:试卷后面附有运算符的优先级和结合性表。
得分 评卷人 一、 单项选择题(在下面每小题的A、B、C、D四个选项中,只有一个选项
是正确的,请选择正确的选项并填写到括号内,选择正确得分。本大题 共10小题,每小题1分,共10分。)
1、下列选项中,不是合法标识符的是 【 】
A、INT B、_123 C、test D、2nd 2、已知ch是字符变量,下面正确的表达式是 【 】
A、ch='120' B、ch='\\xFF' C、ch='\\08' D、ch='\\’ 3、执行语句for(i=1;i++<4; ) ; 后,变量i的值是 【 】
A、3 B、4 C、5 D、不定 4、设有变量声明语句 short a=-5; 则变量a的二进制补码形式是 【 】
A、00101 B、11101 C、11011 D、11010
5、与声明:char str[10]={‘a’,’b’,’c’,’\\0’};相等的声明是 【 】
A、char str[10]=“abc\\0”; B、char *str=“abc”; C、char str[]=“abc”; D、char str[10]=“abc”;
6、下面程序段运行的结果是 【 】
char s[6]={'x','y','z','\\0','1','2'}
puts(s);
A、'x''y''z' B、xyz C、xyz 12 D、乱码。 7、int (*p)[5]; 定义的是 【 】 A、p是一个指针数组,该数组中的每一个元素都是一个整型指针;
B、p是一个数组的指针,该指针指向一个长度为5的整型数组; C、p是一个函数指针,该指针指向一个参数为5的函数; D、p是一个指针函数,该函数的返回值为一个整型指针; 8、假设变量说明为:int k=1;
则语句 k--||k ,k++;运算完后,k的值是 【 】 A、-1 B、0 C、1 D、2 9、已知宏定义: #define M y*y+3*y
则表达式 s=3*M+4*M+y*M 编译预处理后的结果是 【 】 A、 s=3*(y*y+3*y)+4*(y*y+3*y)+y*(y*y+3*y); B、 s=3*(y*y)+3*y+4*(y*y)+3*y+y*(y*y)+3*y; C、 s=3*y*y+3*y+4*y*y+3*y+y*y*y+3*y;
D、 s=3*(y*y)+(3*y)+4*(y*y)+(3*y)+y*(y*y)+(3*y); 10、以下scanf函数调用选项中,错误的是 【 】
struct T{
char name[20]; int age; int sex; } a[5],*pa=a;
A、scanf(\ C、scanf(\ 得分 评卷人 B、scanf(\D、scanf(\
二、 多项选择题(下面每小题的A、B、C、D备选项中,有两个或两个以上
的选项是正确的,请选择正确的选项并填写到括号内,多选、少选、错
选均不得分。本大题共5小题,每小题2分,共10分。)
1、 以下表达式中,能正确根据表达式C=(F-32)?5?9,由华氏温度F计算出
摄氏温度(C设C、F均为float类型)的有 【 】 A、 C=5/9*(F-32) B、C=(F-32)*5/9 B、 C=5*(F-32)/9 D、C=(F-32)/9*5
2、以下声明正确的有 【 】
A、int I,k=5,*j; B、int m,b[m];
C、int z[10]={0,1,2,3,4}; D、char str[]=\
3、以下表达式中,表达式等价的有 【 】
A、x/=2 B、x>>1 C、x=x/2 D、x=1/2*x 4、若有定义 int name[5][10];则下面的表达中,代表地址的有 【 】
A) name B) name[0] C) &name[1] D) name[0][0] 5、 以下关于外部变量说法正确的有 【 】
A、程序开始运行时,系统首先就为外部变量在静态区分配存储空间; B、整个程序运行结束后,被外部变量占用的存储单元才被收回; C、外部变量的生命周期是永久的,存在于整个程序的执行期间; D、如果定义时,没有对外部变量显示初始化,其缺省初值为0;
得分 评卷人 三、 填空题(本大题共10小题,每小题1分,共10分。)
本大题的第1题至第5题请参考下面的说明,请计算出表达式的值和类型并填入各题前面的括号中,各题的表达式相互无关。
char c1='\\x41',c2;
short int m=3,n=6,i=0x35F7,j=0xF315; float x=12.0,y=20.0;
【 】 1、m+++n,m+n++,++n 【 】 2、c2=c1+n-m 【 】 3、m=~(i&j>>2) 【 】 4、m%5 && n%7 【 】 5、n+y 本大题的第6小题至第10小题请参考下面的说明,请计算出表达式的值并填入各题前面的括号中,各题的表达式相互无关。
typedef union longChar{ long ld;
2
unsigned char larr[4]; }longType;
longType l1,l2; struct T{
long id; int itype;
unsigned char *s;
}a[]={{100,1,l1.larr},{101,2,l2.larr}},*p=a; long k; char c;
l1.ld=0x,l2.ld=0x0a0b0c0d; 【 】6、k=p->id+1; 【 】7、c=p->s[3]<<2; 【 】8、c=*((p+1)->s);
【 】9、c=!(p->itype==1)?*p->s:*((*p).s+2); 【 】10、c=(++p->s)[1];
得分 评卷人 四、 判断改错题 (先判断下面各题中是否存在错误;如果存在错误, 请改正之;否则不必改。本大题共5小题,每小题2分,共10分。) 1、本小题的程序段如下:
char s1[20]; s1=\
2、以下代码依次给数组a的每一个元素赋值:
int i=0,a[5]; while(i++ < 5)
scanf(\
2
3、定义完成计算多项式f(x)=x+3x+5的宏。
#define f(x) x*x+3*x+5
4、本小题的程序段如下:
int p1=1,p2=2;
C语言程序设计试卷 共11页 第 3页