《C语言程序设计》期中考试试卷课程编号:03402513试卷类型:A卷考试形式:笔试考试日期:注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。
4.草稿纸用试卷的背面。
一、单项选择题(1空1分,共20分)1、C语言程序的基本结构是(【1】) 。
【1】 A) 函数 B) 语句 C) 字符 D) 程序行2、一个C程序的执行是(【2】) 。
【2】A) 从本程序的主函数开始,到本程序的主函数结束B)从本程序的第一个函数开始,到本程序的最后一个函数结束C) 从本程序的主函数开始,到本程序的最后一个函数结束D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。
【3】 A) 一个C源程序必须有且只能有一个主函数B) 一个C源程序可以含一个或多个子函数C) 在C源程序中注释说明必须位于语句之后D) C源程序的基本结构是函数4、下面不属于C语言保留字的是(【4】) 。
【4】 A) short B) ELSE C) extern D) for5、下列四个叙述中,正确的是(【5】) 。
【5】 A) 库函数也是C语言本身的组成部分B) C语言中的输入输出操作是由相应语句完成的C) 库函数是C编译系统提供的功能函数D) 标题文件(头文件)可以在程序的函数内部调用6、下列四组数据类型中,C语言允许的一组是(【6】)。
【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、双精度型、布尔型 D) 整型、实型、复型7、在C语言中不同数据类型的的长度是(【7】)。
【7】 A) 固定的 B) 由用户自己定义的C) 任意的 D) 与机器字长有关8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。
【8】 A) 016 0xbf 18 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0A12 7FF -1239、下列四组转义字符中,合法的一组是(【9】)。
【9】 A)‘\t’‘\\’‘\n’ B)‘\’‘\017’‘\x’C)‘\018’‘\f’‘\xab’ D)‘\\0’‘\101’‘xif’10、在C语言中,一个整型数据占两个字节,则int型数据的取值范围是(【10】)。
【10】 A) 32767 ~ -32768 B) 0 ~ 65535C) 127 ~ -128 D) 0 ~ 25511、经char w; int x; float y; double z;说明后,表达式 w*x+z-y的类型是(【11】)。
【11】 A) float B) char C) int D) double12、以下能正确定义变量a, b和c并为它们赋值的语句是(【12】)。
【12】 A) int a=5; b=5; c=5; B) int a,b,c=5;C) a=5,b=5,c=5; D) int a=5, b=5, c=5;13、在C语言中,用于表示逻辑“真”的值是(【13】)。
【13】 A) T B) 1 C) -1 D) 非零值14、经int a=7; float x=2.5, y=4.7;说明后,表达式 x+a%3*(int)(x+y)%2/4 的值是(【14】)。
【14】 A) 2.500000 B) 2.750000 C) 3.500000 D) 0.00000015、若在一个表达式中含有int、 long int、 unsigned int和char类型的常量和变量,则该表达式的类型是(【15】)。
【15】 A)int型 B)char型 C)unsigned int型 D)long int型16、在C语言中,如果一个int型数据占2个字节,则unsigned int型数据取值范围是(【16】)。
【16】 A) 0~ 255 B) 0~ 32767 C) 0~ 65535 D) 0~ 214748364717、在C语言中,下列四个长整型数中合法的是(【17】)。
【17】 A) 0L B) 4962 C) 0.054838743 D) 2.1869e1018、若有说明语句:char c=‘\101’; 则变量c(【18】)。
【18】 A) 包含一个字符 B) 包含两个字符C) 包含三个字符 D) 说明不合法19、设变量a为整型,f为实型,i为双精度型,则表达式10+‘a’+i*f 的数据类型是(【19】)。
【19】A)int型 B)float型 C)double型 D)不确定20、下列四个字符常量中,正确的是(【20】)。
【20】 A)“c” B)“\” C)‘W’ D)‘\w’二、单项选择题(每空2分,共40分)21、执行printf("%x,%o,%d\n",-1,-1,-1);后的输出结果是(【21】)。
【21】 A) -1, -1, -1 B) ffff, -01, -1C) ffff, 32767, -1 D) ffff, 177777, -122、已有定义int a=-2; 以下叙述中正确的是(【22】)。
【22】 A) 整型变量的输出格式符只有%d一种B) %x是格式符的一种,它可以用于任何一种类型的数据C) %x是格式符的一种,其变量的值按十六进制输出,但格式符 %32x是错误的D) %32x格式符中,数字32规定了输出字符的宽度23、若有定义: int x=3, y=2; float a=2.5, b=3.5; 则表达式(x+y)%2+(int)a/(int)b的值是(【23】)。
【23】 A) 0 B) 2 C) 1.5 D) 124、设int a=5, b=6, c=7, d=8, m=2, n=2; 则执行(m=a<b)&&(n=c<d)后,n的值为(【24】)。
【24】 A) 2 B) 1 C) 3 D) 425、设ch是char型变量, 其值为‘A’, 则表达式ch=(ch>=‘A’&& ch<=‘z’)? (ch+32): ch 的值是(【25】)。
【25】 A) Z B) a C) z D) A26、表达式5!=3的值是(【26】)。
【26】 A) T B) 非零值 C) 0 D) 127、若希望当A的值为奇数时, 表达式的值为"真", A的值为偶数时, 表达式的值为"假",则下面不能满足要求的表达式是(【27】)。
【27】 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%228、为表示关系y在闭区间【x,z】内,应使用的C语言表达式是(【28】)。
【28】 A) (x<=y)&&(y<=z) B)(x<=y)AND(y<=z)C) x<=y<=z D)(x<=y)&(y<=z)29、设有以下语句:int x=10; x+=3+x%(-3); 则x的值是(【29】)。
【29】 A) 14 B) 15 C) 11 D) 1230、sizeof(double)是(【30】)。
【30】 A) 一种函数调用 B) 一个双精度表达式C) 一个整型表达式 D) 一个不合法的表达式31、设x为int型变量,则执行语句x=10; x+=x-=x-x; 后, x的值为(【31】)。
【31】 A) 10 B) 20 C) 40 D) 3032、设x、y、z、s均为int型变量,且初值均为1,则执行语句s=++x||++y&&++z;后,s的值为(【32】)。
【32】 A) 不定值 B) 2 C) 1 D) 033、设x和y均为int型变量, 则执行以下语句:x+=y; y=x-y; x-=y; 的功能是(【33】)。
【33】 A) 把x和y从大到小排列 B) 把x和y从小到大排列C) 无确定结果 D) 交换x和y的值34、putchar()函数可以向终端输出一个(【34】)。
【34】 A) 整型变量表达式值 B) 实型变量值C) 字符串 D) 字符或字符型变量值35、若有代数式(3ae)/(bc), 则下列C语言表达式中,错误的是(【35】)。
【35】 A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*336、若给定条件表达式(S)? (a++) : (a--),则与表达式S等价的是(【36】)。
【36】 A) 和(S==0)等价 B) 和(S==1)等价C) 和(S!=0)等价 D) 和(S!=1)等价37、以下四条语句中,有语法错误的是(【37】)。
【37】 A) if(a>b) m=a; B) if(a<b) m=b;C) if((a=b)>=0) m=a; D) if((a=b;)>=0) m=a;38、下列各程序段中,不能实现1+2+3+...+10求和的是(【38】)。
【38】 A) int i=0,s=0;while(i<=10) {s+=i,i++;}B) int i,s;for(s=0,i=1;i<11;i++) s+=i;C) int i=0,s=0;do {s+=i;,++i;}while(i<=10);D) int i,s;for(s=0,i=1;i<=10;)s+=i;39、下列一维数组说明中,不正确的是(【39】)。
【39】 A) float a[5+6]; B) int n=10, a[n];C) #define LONG 10 D) float a[10], b[9] ;int a[LONG+5] ;40、下列一维数组初始化语句中,正确的是(【40】)。
【40】 A) int a[5]={,2,,3,5}; B) int a[5]={ };C) int a[5]={5*2}; D) int a[]=(0,2,0,3,7);三、填空题(每空2分,共30分)41、定义 int a=12, b=12;后,语句 printf("%d,%d\n",--a,++b);的输出结果是(【41】)。
42、已知 int x=43, y=0; char ch=‘A’; 则表达式(x>=y&&ch<‘B’&&!y)的值是(【42】)。
43、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n", a, b, c); 则输出结果是(【43】)。