2017年西安交通大学习题答案《程序设计基础》答案

  • 格式:doc
  • 大小:130.00 KB
  • 文档页数:30

《程序设计基础》习题一答案 一、单项选择题(本大题共20小题,每小题2分,共40分) 1.int a[10];合法的数组元素的最小下标值为()。 A:10 B:9 C:1 D:0 答案:D 2.以下运算符中优先级最低的是()。 A:&& B:& C:|| D:| 答案:C 3.若使用一维数组名作函数实参,则以下正确的说法是()。 A:必须在主调函数中说明此数组的大小 B:实参数组类型与形参数组类型可以不匹配 C:在被调用函数中,不需要考虑形参数组的大小 D:实参数组名与形参数组名必须一致 答案:A 4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer 代表的是()。 A:一个整数,代表要读入的数据项总数 B:一个文件指针,指向要读的文件 C:一个指针,指向要读入数据的存放地址 D:一个存储区,存放要读的数据项 答案:C 5.对以下说明语句 int a[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:因为数组长度与初值的个数不相同,所以此语句不正确 答案:B 6.下列程序的输出结果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B 7.下列程序的输出结果为()。 main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf("%f\n",x); } A:27.000000 B:27.500000 C:28.000000 D:28.500000 答案:A 8.若k为int型变量,则以下程序段的执行结果是()。 k=-8567; printf("|%06D|\n",k); A:格式描述符不合法,输出无定值 B:输出为|%06D| C:输出为|0-8567| D:输出为|-8567| 答案:B 9.下列程序段的输出结果为()。 int x=3,y=2; printf("%d",(x-=y,x*=y+8/5)); A:1 B:7 C:3 D:5 答案:C 10.char a[]="This is a program.";输出前5个字符的语句是()。 A:printf("%.5s",a); B:puts(a); C:printf("%s",a); D:a[5*2]=0;puts(a); 答案:A 11.下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 12.以下选项中合法的实型常数是()。 A:5E2.0 B:E-3 C:.2E0 D:1.3E 答案:C 13.C语言中的文件类型只有()。 A:索引文件和文本文件两种 B:ASCII文件和二进制文件两种 C:文本文件一种 D:二进制文件一种 答案:B 14.以下叙述不正确的是()。 A:一个C源程序可由一个或多个函数组成 B:一个C源程序必须包含一个main函数 C:C程序的基本组成单位是函数 D:在C程序中,注释说明只能位于一条语句的后面 答案:D 15.以下运算符中,优先级最高的运算符是()。 A:|| B:% C:! D:== 答案:C 16.执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A:10 和 10 B:10 和 11 C:11 和 10 D:11 和 11 答案:B 17.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是()。 A:a>=10 or a<=0 B:a>=0|a<=10 C:a>=10&&a<=0 D:a>=10‖a<=0 答案:D 18.以下叙述中错误的是()。 A:二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B:在程序结束时,应当用fclose函数关闭已打开的文件 C:在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 D:不可以用FILE定义指向二进制文件的文件指针 答案:D 19.下列程序段的输出结果为()。 float k=0.8567; printf("%06.1d%%",k*100); A:0085.6%% B:0085.7% C:0085.6% D:.857 答案:B 20.若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存 空间存入整数123的语句为()。 A:scanf("%d",p); B:scanf("%d",&p); C:scanf("%d",*p); D:scanf("%d",**p); 答案:A

21.经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是()。 A:p=p+2; B:p=a[5]; C:p=a[2]+2; D:p=&(j+2); 答案:A 22.以下对二维数组a的正确说明是()。 A:int a[3][] B:float a(3,4) C:double a[1][4] D:float a(3)(4) 答案:C 23.经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为()。 char x=65; float y=7.3; int a=100; double b=4.5; A:2,2,2,4 B:1,2,2,4 C:1,4,2,8 D:2,4,2,8 答案:C 24.以下叙述中不正确的是()。 A:一个好的程序应该有详尽的注释 B:在C程序中,赋值运算符的优先级最低 C:在C程序中,j++;是一条赋值语句 D:C程序中的#include和#define均不是C语句 答案:B 25.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。 A:fclose() B:close() C:fread() D:fwrite 答案:A 26.static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是()。 A:a[1] B:a[-1] C:a[0] D:a[10] 答案:C 27.函数的形式参数隐含的存储类型说明是()。 A:extern B:static C:register D:auto 答案:D 28.可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的 形式存在磁盘上()。 A:内存 B:缓冲区 C:文件 D:寄存器 答案:C 29.若用数组名作为函数的实参,传递给形参的是()。 A:数组的首地址 B:数组第一个元素的值 C:数组中全部元素的值 D:数组元素的个数 答案:A 30.double x;scanf("%lf",&x);不可以赋值给x变量的常量是()。 A:123 B:100000 C:A' D:"abc" 答案:D 31.以下的选择中,正确的赋值语句是()。 A:a=1,b=2 B:j++ C:a=b=5; D:y=int(x) 答案:C 32.要打开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") 答案:B 33.与实际参数为实型数组名相对应的形式参数不可以定义为()。 A:float a[]; B:float *a; C:float a; D:float (*a)[3]; 答案:C 34.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。 A:自动(auto) B:静态(static) C:外部(extern) D:寄存器(register) 答案:A 35.下面有关 for 循环的正确描述是()。 A:for 循环只能用于循环次数已经确定的情况 B:for 循环是先执行循环循环体语句,后判断表达式 C:在 for 循环中,不能用 break 语句跳出循环体 D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 答案:D 36.下列语句的结果是()。 main() { int j; j=3; printf("%d,",++j); printf("%d",j++); } A:3,3 B:3,4 C:4,3 D:4,4