2017年西安交通大学习题答案《程序设计基础》答案_第1页
2017年西安交通大学习题答案《程序设计基础》答案_第2页
2017年西安交通大学习题答案《程序设计基础》答案_第3页
2017年西安交通大学习题答案《程序设计基础》答案_第4页
2017年西安交通大学习题答案《程序设计基础》答案_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《程序设计基础》习题一答案一、单项选择题(本大题共20小题,每小题2分,共40分)1.inta[10];合法的数组元素的最小下标值为()。A:10B:9C:1D:0答案:D2.以下运算符中优先级最低的是()。A:&&B:&C:||D:|答案:C3.若使用一维数组名作函数实参,则以下正确的说法是()。A:必须在主调函数中说明此数组的大小B:实参数组类型与形参数组类型可以不匹配C:在被调用函数中,不需要考虑形参数组的大小D:实参数组名与形参数组名必须一致答案:A4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。A:一个整数,代表要读入的数据项总数B:一个文件指针,指向要读的文件C:一个指针,指向要读入数据的存放地址D:一个存储区,存放要读的数据项答案:C5.对以下说明语句inta[10]={6,7,8,9,10};的正确理解是()。A:将5个初值依次赋给a[1]至a[5]B:将5个初值依次赋给a[0]至a[4]C:将5个初值依次赋给a[6]至a[10]D:因为数组长度与初值的个数不相同,所以此语句不正确答案:B6.下列程序的输出结果是()。main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}A:a=1,b=0B:a=2,b=1C:a=1,b=1D:a=2,b=2答案:B7.下列程序的输出结果为()。main(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}A:27.000000B:27.500000C:28.000000D:28.500000答案:A8.若k为int型变量,则以下程序段的执行结果是()。k=-8567;printf("|%06D|\n",k);A:格式描述符不合法,输出无定值B:输出为|%06D|C:输出为|0-8567|D:输出为|-8567|答案:B9.下列程序段的输出结果为()。intx=3,y=2;printf("%d",(x-=y,x*=y+8/5));A:1B:7C:3D:5答案:C10.chara[]="Thisisaprogram.";输出前5个字符的语句是()。A:printf("%.5s",a);B:puts(a);C:printf("%s",a);D:a[5*2]=0;puts(a);答案:A11.下列程序的输出结果是()。main(){charc1=97,c2=98;printf("%d%c",c1,c2);}A:9798B:97bC:a98D:ab答案:B12.以下选项中合法的实型常数是()。A:5E2.0B:E-3C:.2E0D:1.3E答案:C13.C语言中的文件类型只有()。A:索引文件和文本文件两种B:ASCII文件和二进制文件两种C:文本文件一种D:二进制文件一种答案:B14.以下叙述不正确的是()。A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C程序的基本组成单位是函数D:在C程序中,注释说明只能位于一条语句的后面答案:D15.以下运算符中,优先级最高的运算符是()。A:||B:%C:!D:==答案:C16.执行以下程序段后,输出结果和a的值是()。inta=10;printf("%d",a++);A:10和10B:10和11C:11和10D:11和11答案:B17.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是()。A:a>=10ora<=0B:a>=0|a<=10C:a>=10&&a<=0D:a>=10ǁa<=0答案:D18.以下叙述中错误的是()。A:二进制文件打开后可以先读文件的末尾,而顺序文件不可以B:在程序结束时,应当用fclose函数关闭已打开的文件C:在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D:不可以用FILE定义指向二进制文件的文件指针答案:D19.下列程序段的输出结果为()。floatk=0.8567;printf("%06.1d%%",k*100);A:0085.6%%B:0085.7%C:0085.6%D:.857答案:B20.若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为()。A:scanf("%d",p);B:scanf("%d",&p);C:scanf("%d",*p);D:scanf("%d",**p);答案:A21.经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是()。A:p=p+2;B:p=a[5];C:p=a[2]+2;D:p=&(j+2);答案:A22.以下对二维数组a的正确说明是()。A:inta[3][]B:floata(3,4)C:doublea[1][4]D:floata(3)(4)答案:C23.经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微机上的值分别为()。charx=65;floaty=7.3;inta=100;doubleb=4.5;A:2,2,2,4B:1,2,2,4C:1,4,2,8D:2,4,2,8答案:C24.以下叙述中不正确的是()。A:一个好的程序应该有详尽的注释B:在C程序中,赋值运算符的优先级最低C:在C程序中,j++;是一条赋值语句D:C程序中的#include和#define均不是C语句答案:B25.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。A:fclose()B:close()C:fread()D:fwrite答案:A26.staticstruct{inta1;floata2;chara3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()。A:a[1]B:a[-1]C:a[0]D:a[10]答案:C27.函数的形式参数隐含的存储类型说明是()。A:externB:staticC:registerD:auto答案:D28.可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的形式存在磁盘上()。A:内存B:缓冲区C:文件D:寄存器答案:C29.若用数组名作为函数的实参,传递给形参的是()。A:数组的首地址B:数组第一个元素的值C:数组中全部元素的值D:数组元素的个数答案:A30.doublex;scanf("%lf",&x);不可以赋值给x变量的常量是()。A:123B:100000C:A'D:"abc"答案:D31.以下的选择中,正确的赋值语句是()。A:a=1,b=2B:j++C:a=b=5;D:y=int(x)答案:C32.要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。A:fopen("A:\user\abc.txt","r")B:fopen("A:\\user\\abc.txt","r+")C:fopen("A:\user\abc.txt","rb")D:fopen("A:\\user\\abc.txt","w")答案:B33.与实际参数为实型数组名相对应的形式参数不可以定义为()。A:floata[];B:float*a;C:floata;D:float(*a)[3];答案:C34.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。A:自动(auto)B:静态(static)C:外部(extern)D:寄存器(register)答案:A35.下面有关for循环的正确描述是()。A:for循环只能用于循环次数已经确定的情况B:for循环是先执行循环循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D36.下列语句的结果是()。main(){intj;j=3;printf("%d,",++j);printf("%d",j++);}A:3,3B:3,4C:4,3D:4,4答案:D37.执行下列程序后,其输出结果是()。main(){inta=9;a+=a-=a+a;printf("%d\n",a);}A:18B:9C:-18D:-9答案:C38.以下函数调用语句中实参的个数是()。func((e1,e2),(e3,e4,e5));A:2B:3C:5D:语法错误答案:A39.下列四个选项中,均是C语言关键字的选项是()。A:autoenumincludeB:switchtypedefcontinueC:signedunionscanfD:ifstructtype答案:B40.下列数组说明中,正确的是()。A:staticcharstr[]="China";B:staticcharstr[];str="China";C:staticcharstr1[5],str2[]={"China"};str1=str2;D:staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);答案:A41.C语言中,要求运算数必须是整型的运算符是()。A:^B:%C:!D:>答案:B42.以下不能正确定义二维数组的选项是()。A:inta[2][2]={{1},{2}};B:inta[][2]={1,2,3,4};C:inta[2][2]={{1},2,3};D:inta[2][]={{1,2},{3,4}};答案:D43.设intx=1,y=1;表达式(!x||y--)的值是()。A:0B:1C:2D:-1答案:B44.下列选项中正确的语句组是()。A:chars[8];s={"Beijing"};B:char*s;s={"Beijing"};C:chars[8];s="Beijing";D:char*s;s="Beijing";答案:D45.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为()。A:printf("%d",*(a+5));B:printf("%d",p[5]);C:printf("%d",*(p+5));D:printf("%d",*p[5]);答案:D46.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。A:intB:floatC:doubleD:不确定答案:C47.以下叙述正确的是()。A:在C程序中,main函数必须位于程序的最前面B:C程序的每行中只能写一条语句C:C语言本身没有输入输出语句D:在对一个C程序进行编译的过程中,可发现注释中的拼写错误答案:C48.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为()。A:1B:2C:3D:不一定答案:A49.C语言中,定义结构体的保留字是()。A:unionB:structC:enumD:typedef答案:B50.逻辑运算符两侧运算对象的数据类型()。A:只能是0或1B:只能是0或非0正数C:只能是整型或字符型数据D:可以是任何类型的数据答案:D51.以下叙述中正确的是()。A:C语言的源程序不必通过编译就可以直接运行B:C语言中的每条可执行语句最终都将被转换成二进制的机器指令C:C源程序经编译形成的二进制代码可以直接运行D:C语言中的函数不可以单独进行编译52.下列程序的输出结果是()。main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}A:a=1,b=0B:a=2,b=1C:a=1,b=1D:a=2,b=2答案:B53.若二维数组a有m列,则在a[i][j]前的元素个数为()。A:j*m+iB:i*m+jC:i*m+j-1D:i*m+j+1答案:B54.用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()。longa=0xffffff;intb;charc;A:0ffffff和0x61B:-1和98C:-1和97D:指向同一地址答案:C55.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。A:地址传递B:单向值传递C:由实参传给形参,再由形参传回实参D:传递方式由用户指定答案:B56.以下数值中,不正确的八进制数或十六进制数是()。A:0x16B:16C:-16D:0xaaaa答案:C57.以下运算符中,优先级最高的运算符是()。A:*=B:>=C:(类型)D:+答案:C58.以下选项中,与k=n++完全等价的表达式是()。A:k=n,n=n+1B:n=n+1,k=nC:k=++nD:k+=n+1答案:A59.结构体类型的定义允许嵌套是指()。A:成员是已经或正在定义的结构体型B:成员可以重名C:结构体型可以派生D:定义多个结构体型答案:A60.用户定义的函数不可以调用的函数是()。A:非整型返回值的B:本文件外的C:main函数D:本函数下面定义的答案:C二.多选题(本大题共20小题,每小题2分,共40分)1.以下对C语言中的函数描述不正确的有()。A:可以嵌套定义,不可以嵌套调用B:不可以嵌套定义,可以嵌套调用C:可以嵌套定义,也可以嵌套调用D:嵌套定义和嵌套调用都不允许答案:ACD2.以下叙述正确的是()。A:预处理命令行都必须以"#"开始B:在程序中凡是以"#"开始的语句行都是预处理命令行C:C程序在执行过程中对预处理命令行进行处理D:#defineABCD是正确的宏定义答案:ABD3.以下描述错误的是()。A:continue语句的作用是重新开始一次循环体的执行B:只能在循环体内和switch语句体内使用break语句C:在循环体内使用break语句和continue语句的作用相同D:从多重循环嵌套中退出是,只能使用goto语句答案:CD4.有定义语句:intx,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。A:1112<回车>B:11,<空格>12<回车>C:11,12<回车>D:11,<回车>12<回车>答案:BCD5.以下合法的十六进制数是()。A:oxffB:0XabcC:0x01D:0X9X答案:BC6.以下描述正确的是()。A:调用函数时,实参可以是表达式B:调用函数时,实参与形参可以共用内存单元C:调用函数时,将为形参分配内存单元D:调用函数时,实参与形参的类型必须一致答案:ACD7.以下选项中合法的表达式是()。A:0<=x<100B:i=j==0C:(char)(65+3)D:x+1=x+1答案:ABC8.设有以下定义inta=0;doubleb=1.25;charc='A';#defined2则下面语句中正确的是()。A:a++;B:b++;C:c++;D:d++;答案:ABC9.以下对二维数组a进行正确初始话的是()。A:staticcharword[]='Turbo\0';B:staticcharword[]={'T','u','r','b','o','\0'};C:staticcharword[]={"Turbo\0"};D:staticcharword[]="Turbo\0";答案:BCD10.符合C语言语法的实型常量是()。A:1.2E0.5B:3.14.159EC:.5E-3D:E15答案:ABD11.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是()。A:a=b=c=d=100;B:d++;C:c+b;D:d=(c=22)-(b++);答案:ABD12.以下关于数组描述错误的是()。A:数组的大小是固定的,但可以有不同的类型的数组元素B:数组的大小是可变的,但所有数组元素的类型必须相同C:数组的大小是固定的,所有数组元素的类型必须相同D:数组的大小是可变的,可以有不同的类型的数组元素答案:ABD13.以下正确的if语句形式是()。A:if(x>y&&x!=y);B:if(x==y)x+=y;C:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D:if(x<y){x++;y++;}答案:ABD14.以下叙述中正确的是()。A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main()函数C:C源程序的基本组成单位是函数D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC15.以下合法的十六进制数是()。A:oxffB:0XabcC:0x01D:0X9X答案:BC16.以下选项中,合法的字符常量是()。A:'\t'B:'\17'C:"n"D:'\xaa'答案:ABD17.以下用户标识符,其中合法的是()。A:returnB:f2_G3C:A3-3D:abc答案:BD18.以下可以定义为用户标识符的有()。A:scanfB:shortC:_3com_D:int答案:AC19.以下选项中合法的表达式是()。A:0<=x<100B:i=j==0C:(char)(65+3)D:x+1=x+1答案:ABC20.以下不符合C语言语法的实型常量是()。A:1.2E0.5B:3.14.159EC:.5E-3D:E15答案:ABD21.4个选项中,可以看作是一条语句的有()。A:{;}B:a=0,b=0,c=0;C:if(a>0);D:if(b==0)m=1;n=2;答案:ABC22.以下选项中,合法的字符常量是()。A:'\t'B:'\17'C:"n"D:'\xaa'答案:ABD23.以下描述正确的是()。A:使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成B:while循环是先判断表达式,后执行循环语句C:do-while和for循环均是先执行循环语句,后判断表达式D:for,while和do-while循环中的循环体均可以由空语句构成答案:ABD24.以下关于数组描述错误的是()。A:数组的大小是固定的,但可以有不同的类型的数组元素B:数组的大小是可变的,但所有数组元素的类型必须相同C:数组的大小是固定的,所有数组元素的类型必须相同D:数组的大小是可变的,可以有不同的类型的数组元素答案:ABD25.以下选项中不是C语言合法整数的是()。A:10110B:0386C:0XffaD:x2a2答案:BD26.若以下选项中的变量已正确定义,则不正确的赋值语句是()。A:x1=26.8%3B:x=3*x+xC:x3=0x12D:x4=1+2=3;答案:AD27.下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。A:只能是0或1B:只能是0或非0正数C:可以是整型或字符型数据D:可以是任何类型的数据答案:ABD28.下列选项中是C语言合法标志符的有()。A:good_morningB:mainC:stdio.hD:8abc答案:AB29.以下对switch语句和break语句中描述错误的有()。A:在switch语句中必须使用break语句B:break语句只能用于switch语句C:在switch语句中,可以根据需要使用或不使用break语句D:break语句是switch语句的一部分答案:ABD30.以下叙述中正确的是()。A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main()函数C:C源程序的基本组成单位是函数D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC31.下对C语言中的函数描述不正确的有()。A:可以嵌套定义,不可以嵌套调用B:不可以嵌套定义,可以嵌套调用C:可以嵌套定义,也可以嵌套调用D:嵌套定义和嵌套调用都不允许答案:ACD32.设有以下定义inta=0;doubleb=1.25;charc='A';#defined2则下面语句中正确的是()。A:a++;B:b++;C:c++;D:d++;答案:ABC33.对do-while语句描述正确的是()。A:do-while语句构成的循环可以使用break语句退出循环B:do-while语句构成的循环必须使用break语句退出循环C:do-while语句构成的循环,当while中的表达式值为非零时结束循环D:do-while语句构成的循环,当while中的表达式值为零时结束循环答案:AD34.以下可以定义为用户标识符的有()。A:scanfB:shortC:_3com_D:int答案:AC35.以下选项中不是C语言合法整数的是()。A:10110B:0386C:0XffaD:x2a2答案:BD36.以下叙述中正确的是()。A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main()函数C:C源程序的基本组成单位是函数D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC37.以下正确的if语句形式是()。A:if(x>y&&x!=y);B:if(x==y)x+=y;C:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D:if(x<y){x++;y++;}答案:ABD38.以下选项中不是C语言合法整数的是()。A:10110B:0386C:0XffaD:x2a2答案:BD39.以下关于数组描述错误的是()。A:数组的大小是固定的,但可以有不同的类型的数组元素B:数组的大小是可变的,但所有数组元素的类型必须相同C:数组的大小是固定的,所有数组元素的类型必须相同D:数组的大小是可变的,可以有不同的类型的数组元素答案:ABD40.以下描述正确的是()。A:使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成B:while循环是先判断表达式,后执行循环语句C:do-while和for循环均是先执行循环语句,后判断表达式D:for,while和do-while循环中的循环体均可以由空语句构成答案:ABD41.对do-while语句描述正确的是()。A:do-while语句构成的循环可以使用break语句退出循环B:do-while语句构成的循环必须使用break语句退出循环C:do-while语句构成的循环,当while中的表达式值为非零时结束循环D:do-while语句构成的循环,当while中的表达式值为零时结束循环答案:AD42.在定义inta[2][3];之后,对a的引用正确的有()。A:a[0][2]B:a[1,3]C:a[1>2][!1]D:a[2][0]答案:AC43.以下用户标识符,其中合法的是()。A:returnB:f2_G3C:A3-3D:abc答案:BD44.以下选项中不合法的字符常量是()。A:"B"B:'\010'C:68D:D答案:ACD45.正确的if语句形式是()。A:if(x>y&&x!=y);B:if(x==y)x+=y;C:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D:if(x<y){x++;y++;}答案:ABD46.以下叙述正确的是()。A:C语言严格区分大小写英文字母B:C语言用";"作为语句分隔符C:C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上.D:可以使用/*…*/对C程序中的任何部分作注释答案:ABCD47.以下描述正确的是()。A:调用函数时,实参可以是表达式B:调用函数时,实参与形参可以共用内存单元C:调用函数时,将为形参分配内存单元D:调用函数时,实参与形参的类型必须一致答案:ACD48.若以下选项中的变量已正确定义,则不正确的赋值语句是()。A:x1=26.8%3B:x=3*x+xC:x3=0x12D:x4=1+2=3;答案:AD49.下列选项中是C语言合法标志符的有()。A:good_morningB:mainC:stdio.hD:8abc答案:AB50.以下4个选项中,可以看作是一条语句的有()。A:{;}B:a=0,b=0,c=0;C:if(a>0);D:if(b==0)m=1;n=2;答案:ABC51.以下叙述正确的是()。A:预处理命令行都必须以"#"开始B:在程序中凡是以"#"开始的语句行都是预处理命令行C:C程序在执行过程中对预处理命令行进行处理D:#defineABCD是正确的宏定义答案:ABD52.以下选项中不合法的字符常量是()。A:"B"B:'\010'C:68D:D答案:ACD53.以下用户标识符,其中合法的是()。A:returnB:f2_G3C:A3-3D:abc答案:BD54.以下选项中,合法的字符常量是()。A:'\t'B:'\17'C:"n"D:'\xaa'答案:ABD55.以下选项中合法的表达式是()。A:0<=x<100B:i=j==0C:(char)(65+3)D:x+1=x+1答案:ABC56.以下4个选项中,可以看作是一条语句的有()。A:{;}B:a=0,b=0,c=0;C:if(a>0);D:if(b==0)m=1;n=2;答案:ABC57.设有以下定义inta=0;doubleb=1.25;charc='A';#defined2则下面语句中正确的是()。A:a++;B:b++;C:c++;D:d++;答案:ABC58.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是()。A:a=b=c=d=100;B:d++;C:c+b;D:d=(c=22)-(b++);答案:ABD59.以下叙述正确的是()。A:C语言严格区分大小写英文字母B:C语言用";"作为语句分隔符C:C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上.D:可以使用/*…*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论