西安交通大学17年9月课程考试《程序设计基础》作业考核试题
一、单选题(共 30 道试题,共 60 分。)
1. 可将C源程序存在磁盘上,还可将数据按数据类型分别以()的形式存在磁盘上。 A. 内存 B. 缓冲区 C. 文件 D. 寄存器 正确答案:
2. 若二维数组a有m列,则在a[i][j]前的元素个数为()。 A. j*m+I B. i*m+j C. i*m+j-1 D. i*m+j+1 正确答案:
3. 在位运算中,操作数每右移一位,其结果相当于()。 A. 操作数乘以2 B. 操作数除以2 C. 操作数乘以16 D. 操作数除以16 正确答案:
4. int a[10];合法的数组元素的最小下标值为()。 A. 10 B. 9 C. 1 D. 0
正确答案:
5. 若执行fopen函数时发生错误,则函数的返回值是()。 A. 地址值 B. 0 C. 1 D. EOF 正确答案:
6. 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。 A. EOF B. 0
C. 非零值 D. NULL 正确答案:
7. 以下选项中,与k=n++完全等价的表达式是()。 A. k=n,n=n+1 B. n=n+1,k=n C. k=++n D. k+=n+1 正确答案: 8. 下列程序的输出结果为()。m=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(\A. 27.000000 B. 27.500000 C. 28.000000 D. 28.500000 正确答案:
9. 结构体类型的定义允许嵌套是指()。 A. 成员是已经或正在定义的结构体型 B. 成员可以重名 C. 结构体型可以派生 D. 定义多个结构体型 正确答案:
10. 变量的指针,其含义是指该变量的()。 A. 值 B. 地址 C. 名
D. 一个标志 正确答案:
11. 以下叙述正确的是()。
A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 正确答案:
12. 若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为()。A. printf(\B. printf(\C. printf(\D. printf(\正确答案:
13. 以下数值中,不正确的八进制数或十六进制数是()。 A. 0x16 B. 016
main(){int
C. -1 D. 0xaaaa 正确答案:
14. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。 A. int B. float C. double D. 不确定 正确答案:
15. 以下叙述中正确的是()。
A. 在程序的一行上可以出现多个有效的预处理命令行 B. 使用带参的宏时,参数的类型应与宏定义时的一致 C. 宏替换不占用运行时间,只占编译时间
D. 在以下定义中CR是称为\宏名\的标识符#defineCR045 正确答案:
16. 以下语句中,不能实现回车换行的是()。 A. printf(\B. putchar(\
C. fprintf(stdout,\D. fwrite(\正确答案:
17. C语言中,要求运算数必须是整型的运算符是()。 A. ^ B. % C. ! D. >
正确答案:
18. 关于建立函数的目的,以下正确的说法是()。 A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅
D. 减少程序文件所占内存 正确答案:
19. 以下叙述中不正确的是()。 A. 一个好的程序应该有详尽的注释
B. 在C程序中,赋值运算符的优先级最低 C. 在C程序中,j++;是一条赋值语句
D. C程序中的#include和#define均不是C语句 正确答案:
20. 以下正确的说法是()。
A. 用户若需调用标准库函数,调用前必须重新定义
B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统根本不允许用户重新定义标准库函数
D. 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 正确答案:
21. 若有说明int a[3][4];则a数组元素的非法引用是()。 A. a[0][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4] 正确答案:
22. 下列程序的输出结果是()。main(){char c1=97,c2=98;printf(\A. 9798 B. 97b C. a98 D. ab
正确答案:
23. 以下选项中合法的实型常数是()。 A. 5E2.0 B. E-3 C. .2E0 D. 1.3E 正确答案:
24. 下列程序段的输出结果为()。Int x=3,y=2;printf(\A. 1 B. 7 C. 3 D. 5
正确答案:
25. 在C语言中,char型数据在内存中的存储形式是()。 A. 补码 B. 反码 C. 原码 D. ASCII码 正确答案:
26. double x;scanf(\不可以赋值给x变量的常量是()。 A. 123 B. 100000 C. A' D. \正确答案:
27. 以下对C语言函数的描述中,正确的是()。 A. C程序必须由一个或一个以上的函数组成 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个程序文件中 正确答案:
28. 已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是()。 A. 一个整数,代表要读入的数据项总数 B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址 D. 一个存储区,存放要读的数据项 正确答案:
29. 若使用一维数组名作函数实参,则以下正确的说法是()。 A. 必须在主调函数中说明此数组的大小 B. 实参数组类型与形参数组类型可以不匹配 C. 在被调用函数中,不需要考虑形参数组的大小 D. 实参数组名与形参数组名必须一致 正确答案:
30. C语言中要求对变量作强制定义的主要理由是()。 A. 便于移植 B. 便于写文件
C. 便于编辑预处理程序的处理 D. 便于确定类型和分配空间 正确答案:
西安交通大学17年9月课程考试《程序设计基础》作业考核试题
二、多选题(共 10 道试题,共 20 分。)
1. 以下描述正确的是()。
A. 使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成 B. while循环是先判断表达式,后执行循环语句
C. do-while和for循环均是先执行循环语句,后判断表达式 D. for,while和do-while循环中的循环体均可以由空语句构成 正确答案:
2. 关于while语句与do-while语句,以下正确的是()。 A. while是当型结构
B. do-while是直到型结构 C. 两者有区别 D. 两者无区别 正确答案:
3. 以下叙述正确的是()。
A. 预处理命令行都必须以\开始
B. 在程序中凡是以\开始的语句行都是预处理命令行 C. C程序在执行过程中对预处理命令行进行处理 D. #defineABCD是正确的宏定义 正确答案:
4. 下面有关for循环的正确描述是()。 A. for循环只能用于循环次数已经确立的情况 B. for循环先执行循环体语句后判断表达式 C. 在for循环中能用break语句跳出循环体
D. for循环的循环体语句中可以包含多条语句,但必须用花括号括起来 正确答案:
5. 有定义语句.int x,y;若要通过scanf(\语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。 A. 1112<回车>
B. 11,<空格>12<回车> C. 11,12<回车>
D. 11,<回车>12<回车> 正确答案:
6. 以下关于typedef的叙述正确的是()。
A. 用typedef可以定义各种类型名,但不能用来定义变量 B. 用typedef可以增加新类型
C. 用typedef只是将已存在的类型用一个新的名字来代表 D. 使用typedef便于程序的通用 正确答案:
7. 在定义int a[2][3];之后,对a的引用正确的有()。 A. a[0][2] B. a[1,3] C. a[1>2][!1] D. a[2][0] 正确答案:
8. 以下对switch语句和break语句中描述错误的有()。 A. 在switch语句中必须使用break语句 B. break语句只能用于switch语句
C. 在switch语句中,可以根据需要使用或不使用break语句 D. break语句是switch语句的一部分 正确答案:
9. 下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。 A. 只能是0或1
B. 只能是0或非0正数 C. 可以是整型或字符型数据 D. 可以是任何类型的数据 正确答案:
10. t为int类型,进入下面的循环之前,t的值为0do{???}while(t==1);则以下叙述中正
确的是()
A. 循环控制表达式的值为0 B. 循环控制表达式的值为1 C. 循环控制表达式合法 D. 以上说法都不对 正确答案:
西安交通大学17年9月课程考试《程序设计基础》作业考核试题
三、判断题(共 10 道试题,共 20 分。)
1. 结构类型变量所占内存长度等于成员的长度;而共享体类型变量所占用的内存长度是各成员的内存长度之和,每个成员分别占用其自己的内存单元。() A. 错误 B. 正确 正确答案:
2. 格式字符%md中的m只能为正,不能为负。() A. 错误 B. 正确 正确答案:
3. break语句可用于switch语句,也可用于for、while和do循环语句中。() A. 错误 B. 正确 正确答案:
4. continue语句可用于switch语句,也可用于for、while和do循环语句中。() A. 错误 B. 正确 正确答案:
5. 一个包含命令include可以包含几个头文件。() A. 错误 B. 正确 正确答案:
6. 数组类型不是C的基本数据类型,而是一种构造类型。() A. 错误 B. 正确 正确答案:
7. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是p=n;。() A. 错误
B. 正确 正确答案:
8. 若有static int a[10];则a数组的10个元素的值都是0。() A. 错误 B. 正确 正确答案:
9. 数组名代表数组的起始地址。() A. 错误 B. 正确 正确答案:
10. 表达式 ’a’A. 错误 B. 正确 正确答案:
和 “a”是不同的,前者长度为1,后者长度为2。()
西安交通大学17年9月课程考试《程序设计基础》作业考核试题



