您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 2011高级语言程序设计试卷1及答案
一、选择题:(共20题,每题1.5分,共30分)1.C语言属于(A)A.高级语言B.低级语言C.中级语言D.机器语言2.下列全部属于合法的用户标识符的是(A)A.A1P_0dSB.float2la_AC.*ahykkD._123tempmain3.C语言中运算对象必须是整型的运算符为(A)A.%B./C.=D.=4.设有inti;charc;floatf;以下结果为整数的表达式是(B)A.i+fB.i/cC.c+fD.i+c+f5.逗号表达式(a=5*3,a+20),a+15的值是(B)A.35B.30C.40D.206.设有语句chara='\72';则变量a(A)A.包含一个字符B.包含两个字符C.包含3个字符D.说明不合法7.若有以下定义和语句,则输出结果是(B)charc1='b',c2='e';printf(%d,%c\n,c2-c1,c2-'a'+'A');A.2,MB.3,EC.2,ED.不确定8.设有如下程序段,则下面说法中正确的是(C)intk=10;while(k=0)k=k-1;A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次9.当pi=3.1415926时,printf(%-7.2f,pi);的输出结果是(C)(注:□代表空格)A.3.14159B.3.14C.3.14□□□D.□□□3.1410.下列运算符中,优先级最高的是(D)A.!B.+C.||D.()11.表达式a==b&&b==c计算的优先级别是(C)A.((a==b)&&b)==c)B.(a==(b&&b))==cC.(a==b)&&(b==c)D.a==((b&&b)==c12.已知x=45,ch=’B’,y=0;则表达式(x=y&&ch’b’&&!y)的值是(C)A.0B.语法错C.1D.“假”13.下列关于switch语句和break语句的结论中,正确的是(B)A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C.在switch语句中必须使用break语句D.break语句不能在switch语句中使用14.若变量c为char类型,能正确判断出c为小写字母的表达式是(D)A.'a'=c='z'B.(c='a')||(c='z')C.('a'=c)and('z'=c)D.(c='a')&&(c='z')15.执行语句for(i=0;i++3;);后,变量i的值为(C)A.2B.3C.4D.516.已知:inta[10];则对a数组元素的正确引用是(D)A.a[10]B.a[3.5]C.a(5)D.a[0-9]17.对字符数组str赋初值,str不能作为字符串使用的一个是(D)A.charstr[]=shanghai;B.charstr[]={shanghai};C.charstr[9]={'s','h','a','n','g','h','a','i'};D.charstr[8]={'s','h','a','n','g','h','a','i'};18.以下对C语言函数的有关描述中,正确的是(A)A.在C语言中,调用函数时,根据实参传递给形参值的不同,通常有值传递方式和地址传递方式两种。B.C函数既可以嵌套定义,又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中19.已知p1和p2为指针变量,且已指向同一个整型数组中的元素,a是一个整型变量,则下面无意义的语句是(D)A.a=*p1;B.a=*p1+*p2;C.a=p1-p2;D.p1=a-p2;20.已知:inta[]={1,2,3,4,5,6,7,8,9,10.11.12},*p=a;则值为3的表达式是(A)A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.*(&a[0][0]+6)二、判断题:(共10题,每题1分,共10分)1.C语言中不能使用关键字作为标识符。()2.C语言的标识符命名规则中,第一个字符可以为字符‘#’或‘&’。()3.C语言对字母的大小写不敏感。()4.C语言中,符号常量由命令#define来定义。()5.逻辑运算符的运算优先级都要低于算术运算符。()6.for循环只能用于循环次数已经确定的情况。()7.break语句不仅能够用在循环语句中,还可用在switch语句中。()8.给出以下定义charx[]=abcdefg,y[]={'a','b','c','d','e','f','g'};则数组x和数组y的长度相同。()9.函数的形式参数是局部变量。()10.指针变量是一种特殊类型的变量,用来存放另一个变量的地址。()题号12345678910答案√××√××√×√√三、程序填空题(2题5空,4分/空,共20分)1.自定义函数fun的功能是返回形参p所指向的长度为n的整数数组中最小值所在的下标(下标从0开始计算)。fun(int*p,intn){inti,j;____(1)D____;for(i=0;in;i++)if(p[i]p[j])____(2)C____;return(j);}A.j=1B.j=i++C.j=iD.j=02.下列程序是从键盘上输入一个字符串(长度小于80),然后统计该字符串的长度并输出。#includestdio.hvoidmain(){chars[80];intn,i;scanf(%s,_____(1)A_____);_______(2)D________;while(s[____(3)B_____]!='\0')n++;printf(%d\n,n);}A.sB.i++C.n=0,i=1D.n=0,i=0E.s[80]F.i四、编程题:(共2题,每题20分,共40分)1.从键盘输入3个整数,求其中的最大数和最小数,并输出结果。#includestdio.hvoidmain(){intx,y,z,max,min;printf(Pleaseinputthreeintegernumber:);scanf(%d%d%d,&x,&y,&z);min=max=x;if(x==y&&y==z)printf(x=y=z,max=min=%d\n,max);else{if(ymax)max=y;if(zmax)max=z;if(ymin)min=y;if(zmin)min=z;printf(max=%d,min=%d\n,max,min);}}2.从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。#includestdio.hvoidmain(){inta[3][3],b[3]={0};inti,j;printf(请输入一个三行三列的整数矩阵:\n);for(i=0;i3;i++)for(j=0;j3;j++)scanf(%d,&a[i][j]);for(i=0;i3;i++)for(j=0;j3;j++)b[i]=b[i]+a[i][j];for(i=0;i3;i++)printf(该矩阵第%d行元素的平均值是:%.2f\n,i+1,b[i]/3.0);}五、选择题:(共20题,每题1.5分,共30分)1.下列四个选项中,均是合法的整型常量的选项是(A)A.160–0XFFFF011B.-0XCDF01A0XEC.-01986,0120688D.-0X48a2e50x2.下列四个选项中,均是不合法的浮点数的选项是(B)A.160.0.12e3B.1232e4.2.e5C.180.0123e4D.e3.2341e33.合法的C语言字符常数是(A)A.'\t'B.AC.54D.A4.在C语言中,要求运算数一定是整型的运算符是(D)A./B.++C.!=D.%5.字符串常量”mine”的字符个数是(B)A.4B.5C.6D.76.以下属于非法的C语言转义字符的是(B)A.'\b'B.'0xf'C.'\037'D.'\'7.若x、y、z均为int型变量,则执行以下语句后的输出是(A)x=(y=(z=10)+5)-5;printf(x=%d,y=%d,z=%d\n,x,y,z);y=(z=x=0,x+10);printf(x=%d,y=%d,z=%d\n,x,y,z);A.x=10,y=15,z=10B.x=10,y=10,z=10x=0,y=10,z=0x=0,y=10,z=0C.x=10,y=15,z=10D.x=10,y=10,z=10x=10,y=10,z=0x=10,y=10,z=08.在以下一组运算符中,优先级最高的运算符是(C)A.=B.=C.%D.&&9.已知:intx;floaty;所用的scanf调用语句格式为:scanf(“x=%d,y=%f”,&x,&y);为了将数据10和66.6分别赋给x和y,正确的输入应当是(A)A.x=10,y=66.6回车B.10,66.6回车C.10回车66.6回车D.x=10回车y=66.6回车10.已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(C)(注:□表示空格,CR表示回车)inta1,a2,;charc1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A.10□A□20BCRB.10□A□20□BCRC.10A20BCRD.10A20□BCR11.能正确表达:“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是(C)A.(x=1)&&(x=10)&&(x=200)&&(x=210)B.(x=1)||(x=10)||(x=200)||(x=210)C.(x=1)&&(x=10)||(x=200)&&(x=210)D.(x=1)||(x=10)&&(x=200)||(x=210)12.假定所有变量均已正确说明,下列程序段运行后x的值是(B)a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A.34B.4C.35D.313.若变量c为char类型,能正确判断出c为大写字母的表达式是(D)A.'A'=c='Z'B.(c='A')||(c='Z')C.('A'=c)and('Z'=c)D.(c='A')&&(c='Z')14.若给定条件表达式:(!n)?(c++):(c--),则与表达式n等价的表达式是(A)A.n==0B.n==1C.n!=0D.n!=115.已知:inta=4,b=5,c;则执行表达式c=a=ab后变量a的值为(A)A.0B.1C.4D.516.定义inti=1;执行语句while(i++5);后,i的值是(D)A.3B.4C.5D.617.合法的数组说明是(B)A.inta[]=“string”;B.inta[]={0,1,2,3,4,5};C.chara=“string”;D.chara[]={0,1,2,3,4,5};18.当调用函数时,实参是一个数组名,则向函数传送的是(B)A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值19.函数调用:strcat(strcpy(str1,str2),str3)的功能是(C)A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3中20.已知:inta[]={1,2,3,4,5,6,7,8,9,10.11.12},*p=a;则(*p)的值是(A)A.1B.2C.3D.a六、判断题:(共10题,每题1分,共10分)1.C语言中能使用关键字作为标识符。()2.C语言的标识符命名规则中
本文标题:2011高级语言程序设计试卷1及答案
链接地址:https://www.777doc.com/doc-3023128 .html