您好,欢迎访问三七文档
(A卷)第1页共13页C语言程序设计考试题A注意事项:1.答题前,请先在试卷和机读卡上对应位置用钢笔准确清楚的填写上本人姓名和学号,机读卡的科目栏里填写年级和专业的简称,并用2B铅笔填涂学号(必须填在前8列,剩最右边的一列不填涂);2.试卷答案必须用2B铅笔在机读卡上按对应题号准确、清楚涂写,答在试卷上无效;3.本试卷共74个小题,机读卡上按【1】~【80】的编号顺序涂写。【1】~【60】每题1分,【61】~【80】每题2分,共100分。1.在C语言中,要求参加运算的数必须是整数的运算符是【1】(A)/(B)*(C)%(D)=2.以下不正确的说法是【2】(A)全局变量、静态变量的初值是在编译时指定的(B)静态数值型变量如果没有指定初值,则其初值为0(C)局部变量如果没有指定初值,则其初值不确定(D)函数中的静态变量在函数每次调用时,都会重新赋初值3.已知:inta[]={1,2,3,4},x,*pt=&a[1];则执行语句“x=(*--pt)++;”之后,变量x的值为【3】(A)1(B)2(C)3(D)44.已知:intx,*p=&x;则下列输入输出x值的函数调用中错误的是【4】(A)scanf(“%d”,&x);(B)scanf(“%d”,p);(C)printf(“%d”,x);(D)printf(“%d”,p);5.在说明一个结构体变量时系统分配给它的存储空间是【5】(A)该结构体中第一个成员所需的存储空间(B)该结构体中最后一个成员所需的存储空间(C)该结构体中占用最大存储空间的成员所需的存储空间(D)该结构体中所有成员所需的存储空间的总和6.C语言中函数返回值的类型是由【6】决定的(A)return语句中的表达式类型(B)调用该函数的主调函数类型(C)调用函数时临时(D)定义函数时所指定的函数类型7.设有数组定义:chararray[]=China;则数组array所占的空间为【7】(A卷)第2页共13页(A)4个字节(B)5个字节(C)6个字节(D)7个字节8.凡在函数中未指定存储类别的变量,其隐含的存储类别为【8】(A)自动(auto)(B)静态(static)(C)外部(extern)(D)寄存器(extern)9.下列选项中是非法的C语言转义字符的是【9】(A)'\b'(B)'\'(C)'\037'(D)'\xf'10.下面说法正确的是【10】(A)函数定义可以嵌套,但函数调用不能嵌套(B)函数定义不可以嵌套,但函数调用可以嵌套(C)函数定义和调用均不能嵌套(D)函数定义和调用均可以嵌套11.语句“staticinti=10;”中,“i=10”的含义是【11】(A)将变量i初始化为10(B)只说明了一个静态变量(C)与“autointi=10;”在功能上等价(D)给变量i赋值为1012.下述对C语言字符数组的描述中错误的是【12】(A)字符数组可以存放字符串(B)字符数组中的字符串可以进行整体输入输出(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值(D)字符数组的下标从0开始13.有以下说明和语句,且0=i10,则下面【13】是对数组元素地址的正确表示inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;(A)&(a+1)(B)a++(C)&p(D)&p[i]14.若有以下说明和语句,则p2-p1的值为【14】inta[10],*p1,*p2;p1=a;p2=&a[5];(A)5(B)6(C)10(D)错误的表达式15.已知:chars[10],*p=s;则在下列语句中,错误的语句是【15】(A)p=s+5;(B)s=p+5;(C)s[2]=p[4];(D)p[0]=’a’;16.已知:chars[10];inti=1;则在下列引用数组元素的表达式中,错误的表示形式是【16】(A)s[i](B)*(s+i)(C)*s(D)*((s++)+i)17.已知:chara[5],*p=a;则正确的赋值语句是【17】(A)a=”abcd”;(B)*a=”abcd”;(C)p=”abcd”;(D)*p=”abcd”;18.设有inti;charc;floatf;以下结果为整数的表达式是【18】(A卷)第3页共13页(A)i+f(B)i*c(C)c+f(D)i+c+f19.以下使变量i的运算结果为4的表达式是【19】(A)inti=0,j=0;(B)inti=1,j=0;(i=3,(j++)+i);j=i=((i=3)*2);(C)inti=1,j=1;(D)inti=1,j=1;(j==1)?(i=1):(i=3);i+=j+=2;20.设charch;以下正确的赋值语句是【20】(A)ch=’123’;(B)ch=’\xff’;(C)ch=’\08’;(D)ch=’’\’’;21.设n=10,i=4,则赋值运算n%=i+1执行后,n的值为【21】(A)0(B)3(C)2(D)122.逗号表达式(a=3*5,a*4),a+15运算后,a的值为【22】(A)60(B)30(C)15(D)9023.若有说明intx,y;不能实现以下函数关系的程序段是【23】(A)if(x0)y=-1;(B)if(x=0)elseif(x==0)y=0;if(x0)y=1;elsey=1;elsey=0;elsey=-1;(C)y=0;(D)y=-1;if(x=0)if(x!=0){if(x0)y=1;}if(x0)y=1;elsey=-1;elsey=0;24.设有说明ints[2]={0,1},*p=s;则下列错误的C语句是【24】(A)s+=1;(B)p+=1;(C)*p++;(D)(*p)++;25.为了判断两个字符串s1和s2是否相等,应当使用【25】(A)if(s1=s2)(B)if(s1==s2)(C)if(strcmp(s1,s2)==0)(D)if(strcpy(s1,s2))26.一个C程序执行是从【26】(A)第一个函数开始,直到最后一个函数结束(B)第一个语句开始,直到最后一个语句结束)0(1)0(0)0(1xyxyxy(A卷)第4页共13页(C)从main()函数开始,在main()函数中结束(D)从main()函数开始,直到源文件中的最后一个函数27.下列选项中是C语言提供的合法的数据类型关键字的是【27】(A)string(B)Int(C)integer(D)char28.以下程序段intk=0;while(k=1)k++;while循环执行的次数是【28】(A)无限次(B)有语法错,不能执行(C)一次也不执行(D)执行1次29.在下面的条件语句中(其中s1和s2表示C语言的语句),只有一个在功能上与其它三个语句不等价,它是【29】(A)if(p)s1;elses2;(B)if(p==0)s1;elses2;(C)if(p!=0)s1;elses2;(D)if(p==0)s2;elses1;30.若intk=10;执行下列程序后,变量k的正确结果是【30】switch(k){case9:k+=1;case10:k+=1;case11:k+=1;default:k+=1;}(A)10B)11(C)12(D)1331.若数组名作实参而指针变量作形参,函数调用实参传给形参的是【31】(A)数组的长度(B)数组第一个元素的值(C)数组所有元素的值(D)数组第一个元素的地址32.以下错误的描述是【32】(A)break语句不能用于循环语句和switch语句外的任何其他语句(B)在switch语句中使用break语句或continue语句的作用相同(C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环(D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环33.for(表达式1;;表达式3)可理解为【33】(A)for(表达式1;0;表达式3)(B)for(表达式1;1;表达式3)(C)for(表达式1;表达式1;表达式3)(D)for(表达式1;表达式3;表达式3)34.设intk;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是【34】(A)无限次和0次(B)0次和无限次(C)都是无限次(D)都是0次(A卷)第5页共13页35.有以下程序段:intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n3);此处do~while循环的结束条件是【35】(A)p值不等于12345并且n的值小于3(B)p值等于12345并且n的值大于等于3(C)p值不等于12345或者n的值小于3(D)p值等于12345或者n的值大于等于336.下列各程序段中,没有构成死循环的是【36】(A)inti=10;(B)inty=1;while(1)for(;y=10;y++);{i=i+i%10;if(i==10)break;}(C)intk=100;(D)ints=4;dowhile(--s){++k;s--;}while(k=100);37.以下四个关于循环语句的结论中,只有一个是错误的,它是【37】(A)可以用while语句实现的循环一定可以用for语句实现(B)可以用for语句实现的循环一定可以用while语句实现(C)可以用while语句实现的循环一定可以用do~while语句实现(D)可以用do~while语句实现的循环一定可以用while语句实现38.已知intj,i=1;则执行j=-i++;后,i和j的值为【38】(A)1-1(B)11(C)2-1(D)2139.以下正确的函数定义是【39】(A)doublefun(intx,inty)(B)doublefun(intx,y){z=x+y;returnz;}{intz;z=x+y;returnz;}(C)fun(x,y)(D)doublefun(intx,inty){intx,y;doublez;{doublez;z=x+y;returnz;}z=x+y;returnz;}(A卷)第6页共13页40.若x为整型变量,以下定义指针的正确语句是【40】(A)intp=&x;(B)intp=x;(C)int*p=&x;(D)p=x;41.在C语言中,如果下面的变量都是int类型,则输出的结果是【41】sum=a=5;a=sum++,a++,++a;printf(%d\n,a);(A)5(B)6(C)7(D)842.以下正确的说法是【42】(A)实参变量与其对应的形参变量各占用独立的存储单元(B)实参变量与其对应的形参变量共占用一个存储单元(C)只有当实参变量与其对应的形参变量同名时才占用相同的存储单元(D)形参变量是虚拟的,不占用存储单元43.若i为整型变量,则以下循环执行次数是【43】for(i=2;i!=0;)printf(%d,i--);(A)无限次(B)0次(C)2次(D)1次44.对以下说明语句的正确理解是【44】inta[10]={1,2,3,4};(A)将4个初值依次赋给a[1]至a[4](B)将4个初值依次赋给a[0]至a[3](C)将4个初值依次赋给a[6]至a[9](D)因为数组长度与初值个数不一致,所以此语句不正确45.已知:charstr1[20],str2[10]=”books”;则在程序中能够将字符串“books”赋给数组str1的正确语句是【45】(A)str1=”books”;(B)strcpy(str1,str2);(C)str1=str2;(D)strcpy(str2,str1);46.以下不正确的说法是【46】(A)在不同函数中可以使用相同名字的变量(B)形式参数是局部变量(C)在函数内定义的变量只在本函数范围内有定义(D)在函数内的复合语句中定义的变量在本函数范围内有定义47.已知一个函数的定义如下:doublefun(intx,doubley){……}则该函数正确的函数原型声明为【47】(A卷)第7页共13页(A)doubl
本文标题:C程序设计考试题A
链接地址:https://www.777doc.com/doc-2907714 .html