程序设计基础
一、单选题(每题2分,共60分)
1. 以下对C语言函数的描述中,正确的是( )。 A. C程序必须由一个或一个以上的函数组成 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个程序文件中 2. 在C语言中,char型数据在内存中的存储形式是( )。 A. 补码B. 反码C. 原码D. ASCII码 3. 以下叙述中不正确的是( )。 A. 一个好的程序应该有详尽的注释
B. 在C程序中,赋值运算符的优先级最低 C. 在C程序中,j++;是一条赋值语句
D. C程序中的#include和#define均不是C语句
4. 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为( )。 A. fclose()B. close()C. fread()D. fwrite
5. 设C语言中,int类型数据占2个字节,则short类型数据占( )。 A. 1个字节B. 2个字节C. 4个字节D. 8个字节
6. 已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是( A. 一个整数,代表要读入的数据项总数 B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址 D. 一个存储区,存放要读的数据项
7. 在C语言中,形参的缺省存储类是( )。 A. autoB. registerC. staticD. extern
8. 以下标识符中,不能作为合法的C用户定义标识符的是( )。 A. putcharB. _doubleC. _123D. INT
9. 在C语言中,能代表逻辑值“真”的是( )。 A. TrueB. 大于0的数C. 非0整D. 非0的数
10. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是( )。 A. 0B. 语法错C. 1D. \假\
11. 函数rewind的作用是( )。 A. 使位置指针重新返回文件的开头
B. 将位置指针指向文件中所要求的特定位置 C. 使位置指针指向文件的末尾
D. 使位置指针自动移至下一个字符位置 12. 以下正确的说法是:在C语言中( )。
A. 实参和与其对应的形参各占用独立的存储单元 B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元 D. 形参是虚拟的,不占用存储单元
。 ) 13. 对以下说明语句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. 因为数组长度与初值的个数不相同,所以此语句不正确 14. C语言中要求对变量作强制定义的主要理由是( )。 A. 便于移植B. 便于写文件
C. 便于编辑预处理程序的处理D. 便于确定类型和分配空间 15. 若有说明int a[3][4];则a数组元素的非法引用是( )。 A. a[0][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]
16. 以下只有在使用时才为该类型变量分配内存的存储类说明是( )。 A. auto和staticB. auto和register C. register和staticD. extern和register
17. int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为( )。 A. 1B. 2C. 3D. 不一定
18. 下列程序的输出结果是( )。main(){char c1=97,c2=98;printf(\ A. 9798B. 97bC. a98D. ab
19. char a[]=\输出前5个字符的语句是( )。 A. printf(\20. 以下运算符中,优先级最高的运算符是( )。 A. ||B. %C. !D. ==
21. 以下的选择中,正确的赋值语句是( )。 A. a=1,b=2B. j++C. a=b=5;D. y=int(x)
22. 若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为( )。 A. printf(\ C. printf(\23. 以下叙述中正确的是( )。
A. 在程序的一行上可以出现多个有效的预处理命令行 B. 使用带参的宏时,参数的类型应与宏定义时的一致 C. 宏替换不占用运行时间,只占编译时间
D. 在以下定义中CR是称为\宏名\的标识符#defineCR045 24. C语言中,要求运算数必须是整型的运算符是( )。 A. ^B. %C. !D. >
25. 若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为( )。
A. scanf(\ C. scanf(\
26. 结构体类型的定义允许嵌套是指( )。
A. 成员是已经或正在定义的结构体型B. 成员可以重名 C. 结构体型可以派生D. 定义多个结构体型 27. 逻辑运算符两侧运算对象的数据类型( )。 A. 只能是0或1B. 只能是0或非0正数
C. 只能是整型或字符型数据D. 可以是任何类型的数据 28. 以下运算符中,优先级最高的运算符是( )。
A. =B. !=C. *(乘号) D. ()
29. 关于建立函数的目的,以下正确的说法是( )。 A. 提高程序的执行效率B. 提高程序的可读性 C. 减少程序的篇幅D. 减少程序文件所占内存
30.下列程序的输出结果是( )。main(){int x=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.a=1,b=2 B. a=2,b=1 C. a=1,b=1D. a=2,b=2
二、多选题(每题2分,共20分)
1. 设有以下定义int a=0;double b=1.25;cha rc='A';#defined2则下面语句中正确的是( )。 A. a++;B. b++;C. c++; D. d++;
2. 若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是( )。 A. a=b=c=d=100; B. d++; C. c+b;D. d=(c=22)-(b++);
3. C语言中三种基本的类型为( )。 A. int B. charC. floatD. struct
4. 关于while语句与do-while语句,以下正确的是( )。 A. while是当型结构B. do-while是直到型结构 C. 两者有区别D. 两者无区别
5. 以下选项中不合法的字符常量是( )。 A. \
6. t为int类型,进入下面的循环之前,t的值为0do{???}while(t==1);则以下叙述中正确的是( )
A. 循环控制表达式的值为0B. 循环控制表达式的值为1 C. 循环控制表达式合法D. 以上说法都不对
7. 关于for(表达式1,表达式2,表达式3)循环,以下正确的是( )。 A. 三个表达式都不可省略B. 表达式1可以省略 C. 表达式2可以省略D. 表达式3可以省略 8. 下面那些为合法整型常量( ) A. 190B. 0xfC. 0765D. 0xk
9. 下列为c语言的关键字是( ) A. ifB. structC. unionD. Int 10. 以下不正确的叙述是( )
A. 在C程序中,每行只能写一条语句
B. 若a是实型变量,C程序中允许赋值A=10,因此实型变量中允许存放整型 C. 在C程序中,无论是整数还是实数,都能被准确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 三、判断题(每题2分,共10分)
1. 若a=2,b=-4;则执行a||b++后,b为-4。( ) A. 错误B. 正确
2. 格式字符%md中的m只能为正,不能为负。( ) A. 错误B. 正确