西安交通大学16年9月课程考试《程序设计基础》作业考核试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题(共30 道试题,共60 分。
)V 1. 要打开A盘上user子目录下名为的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A.
fopen("A.\user\","r")
B.
fopen("A.\\user\\","r+")
C.
fopen("A.\user\","rb")
D.
fopen("A.\\user\\","w")
满分:2 分
2. 若使用一维数组名作函数实参,则以下正确的说法是()。
A. 必须在主调函数中说明此数组的大小
B. 实参数组类型与形参数组类型可以不匹配
C. 在被调用函数中,不需要考虑形参数组的大小
D. 实参数组名与形参数组名必须一致
满分:2 分
3. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
A. 字符串读入后不会自动加入'\0'
B. fp是file类型的指针
C. fgets函数将从文件中最多读入n-1个字符
D. fgets函数将从文件中最多读入n个字符
满分:2 分
4. 设C语言中,int类型数据占2个字节,则short类型数据占()。
A. 1个字节
B. 2个字节
C. 4个字节
D. 8个字节
满分:2 分
5. 若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。
A. printf("%d",&p);
B. printf("%d",*i);
C. printf("%d",*p);
D. printf("%d",p);
满分:2 分
6. 下列标识符中,不合法的C语言用户自定义标识符是()。
A. printf
B. enum
C. _
D. sin
满分:2 分
7. 以下只有在使用时才为该类型变量分配内存的存储类说明是()。
A. auto和static
B. auto和register
C. register和static
D. extern和register
满分:2 分
8. 若k为int型变量,则以下程序段的执行结果是()。
k=-8567;printf("|%06D|\n",k);
A. 格式描述符不合法,输出无定值
B. 输出为|%06D|
C. 输出为|0-8567|
D. 输出为|-8567|
满分:2 分
9. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。
A. 0
B. 语法错
C. 1
D. "假"
满分:2 分
10. C语言中,要求运算数必须是整型的运算符是()。
A. ^
B. %
C. !
D. >
满分:2 分
11. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A. int
B. float
C. double
D. 不确定
满分:2 分
12. 以下叙述中不正确的是()。
A. 一个好的程序应该有详尽的注释
B. 在C程序中,赋值运算符的优先级最低
C. 在C程序中,j++;是一条赋值语句
D. C程序中的#include和#define均不是C语句
满分:2 分
13. 以下运算符中,优先级最高的运算符是()。
A. =
B. !=
C. *(乘号)
D. ()
满分:2 分
14. C语言中的文件类型只有()。
A. 索引文件和文本文件两种
B. ASCII文件和二进制文件两种
C. 文本文件一种
D. 二进制文件一种
满分:2 分
15. 下列程序段的输出结果为()。
Float k=;printf("%%%",k*100);
A. %%
B. %%
C. %
D. .857
满分:2 分
16. 以下对C语言函数的描述中,正确的是()。
A. C程序必须由一个或一个以上的函数组成
B. C函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个程序文件中
满分:2 分
17. 若有下列定义和语句,则对a数组元素的非法引用是()。
Int a[2][3],(*pt)[3];pt=a;
A. pt[0][0]
B. *(pt+1)[2]
C. *(pt[1]+2)
D. *(a[0]+2
满分:2 分
18. static struct {int a1;float a2;char a3;}a[10]={1,,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()。
A. a[1]
B. a[-1]
C. a[0]
D. a[10]
满分:2 分
19. 以下标识符中,不能作为合法的C用户定义标识符的是()。
A. putchar
B. _double
C. _123
D. INT
满分:2 分
20. 以下选项中,与k=n++完全等价的表达式是()。
A. k=n,n=n+1
B. n=n+1,k=n
C. k=++n
D. k+=n+1
满分:2 分
21. 下列程序的输出结果是()。
main(){int x=1,y=0,a=0,b=0;switch(x){(y){++;break;++;break;}++;b++;break;++;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
满分:2 分
22. 对以下说明语句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. 因为数组长度与初值的个数不相同,所以此语句不正确
满分:2 分
23. 函数rewind的作用是()。
A. 使位置指针重新返回文件的开头
B. 将位置指针指向文件中所要求的特定位置
C. 使位置指针指向文件的末尾
D. 使位置指针自动移至下一个字符位置
满分:2 分
24. 若用数组名作为函数的实参,传递给形参的是()。
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
满分:2 分
25. 下列程序的输出结果为()。
main(){int m=7,n=4;floata=,b=,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}
A.
B.
C.
D.
满分:2 分
26. 若二维数组a有m列,则在a[i][j]前的元素个数为()。
A. j*m+I
B. i*m+j
C. i*m+j-1
D. i*m+j+1
满分:2 分
27. 若有说明int a[3][4];则a数组元素的非法引用是()。
A. a[0][2*1]
B. a[1][3]
C. a[4-2][0]
D. a[0][4]
满分:2 分
28. 以下叙述中错误的是()。
A. 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B. 在程序结束时,应当用fclose函数关闭已打开的文件
C. 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D. 不可以用FILE定义指向二进制文件的文件指针
满分:2 分
29. 下列四个选项中,均是C语言关键字的选项是()。
A. auto、enum、include
B. switch、typedef、continue
C. signed、union、scanf
D. if、struct、type
满分:2 分
30. 以下叙述正确的是()。
A. 在C程序中,main函数必须位于程序的最前面
B. C程序的每行中只能写一条语句
C. C语言本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
满分:2 分
二、多选题(共10 道试题,共20 分。
)V 1. 下列为c语言的关键字是()
A. if
B. struct
C. union
D. Int
满分:2 分
2. 在定义int a[2][3];之后,对a的引用正确的有()。
A. a[0][2]
B. a[1,3]
C. a[1>2][!1]
D. a[2][0]
满分:2 分
3. 下面那些为合法整型常量()
A. 190
B. 0xf
C. 0765
D. 0xk
满分:2 分
4. 以下合法的十六进制数是()。
A. oxff
B. 0Xabc
C. 0x01
D. 0X9X
满分:2 分
5. 以下4个选项中,可以看作是一条语句的有()。
A. {;}
B. a=0,b=0,c=0;
C. if(a>0);
D. if(b==0)m=1;n=2;
满分:2 分
6. 以下关于数组描述错误的是()。
A. 数组的大小是固定的,但可以有不同的类型的数组元素
B. 数组的大小是可变的,但所有数组元素的类型必须相同
C. 数组的大小是固定的,所有数组元素的类型必须相同
D. 数组的大小是可变的,可以有不同的类型的数组元素
满分:2 分
7. 正确的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++;}
满分:2 分
8. 有定义语句.int x,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。
A. 1112<回车>
B. 11,<空格>12<回车>
C. 11,12<回车>
D. 11,<回车>12<回车>
满分:2 分
9. 以下不正确的叙述是
A. 在C程序中,每行只能写一条语句
B. 若a是实型变量,C程序中允许赋值A=10,因此实型变量中允许存放整型
C. 在C程序中,无论是整数还是实数,都能被准确无误地表示
D. 在C程序中,%是只能用于整数运算的运算符
满分:2 分
10. 关于while语句与do-while语句,以下正确的是()。
A. while是当型结构
B. do-while是直到型结构
C. 两者有区别
D. 两者无区别
满分:2 分
三、判断题(共10 道试题,共20 分。
)V 1. continue语句可用于switch语句,也可用于for、while和do循环语句中。
()
A. 错误
B. 正确
满分:2 分
2. #define命令是在编译之前处理的。
()
A. 错误
B. 正确
满分:2 分
3. C语言中,feof函数用来判断即将读入的是否是文件结束标志,它可用于二进制文件,但不能用于文本文件。
()
A. 错误
B. 正确
满分:2 分
4. 一个C源程序可以由一个main()函数和若干个其它函数组成。
()
A. 错误
B. 正确
满分:2 分
5. C语言中,函数的隐含存储类别是extern()
A. 错误
B. 正确
满分:2 分
6. C中的变量必须“先定义,后使用”,函数也不例外。
()
A. 错误
B. 正确
满分:2 分
7. 若有int a,b;则a=(b*b>b)的值是1。
()
A. 错误
B. 正确
满分:2 分
8. 若有static int a[10];则a数组的10个元素的值都是0。
()
A. 错误
B. 正确
满分:2 分
9. 在C程序中“%”是只能用于整数运算的运算符,而“/”是既可以用于整数运算又可以用于实数运算的运算符。
()
A. 错误
B. 正确
满分:2 分
10. 在C的if语句中,用作判断的表达式只能是关系表达式或逻辑表达式。
()
A. 错误
B. 正确
满分:2 分。