C语言专题复习 北京化工大学
- 格式:pdf
- 大小:70.30 KB
- 文档页数:2
北京化工大学北方学院课程设计报告课程名称c语言课程设计设计题目学生信息管理系统专业、班级信工0803学号 080201071姓名吴文锋指导教师鲁小利设计时间2011.08.29—2011.09.212011年9 月20 日引言(简要说明设计题目的目的、意义、内容、主要任务等)设计目的:1.巩固和加深对C语言知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.掌握利用C语言进行简单系统设计的基本思路和方法4.提高运用C语言解决实际问题的能力5.掌握书写实验设计说明文档的能力设计内容:1.问题分析及解决方案框架确定。
2.详细设计和编码3.程序调试与测试4.完成课程设计报告5.学生信息包括:学号姓名年龄出生年月性别电话地址英语数学语文平均成绩总成绩。
设计“学生信息管理系统”,使之能提供以下功能:系统以菜单方式工作;学生信息录入功能;学生信息保存功能;按学号排序功能;工资信息插入功能;查询功能:按姓名查询、按编号查询;输出功能:按全部清单,按工资段,按月份;学生信息的删除功能:按姓名,按学号;主要任务:1.以学校学生信息管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;2.完成系统结构设计和算法设计;3.完成系统的软件开发和测试工作;4.撰写设计说明书;正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。
正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。
)1.设计说明与依据:整个学生信息管理系统的设计是为了方便对学生信息情况的管理和了解,也是为了方便学生对自己信息的查询。
根据学生查询极其管理者管理的需求,系统简单而全面的设计了录入,查询,插入,排序,按不同选择输出,删除,保存七项基本功能2.系统各模块(函数)的组成、功能整个系统的编程主要包括一个主函数模块,结构体,和多个功能模块其中结构体学生信息包括:学号姓名年龄出生年月性别电话地址英语数学语文平均成绩总成绩。
目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。
大学生C语言期末考试试题汇总第1-3章习题一、单项挑选题1C语言属于()。
A.机器语言B.低级语言C.中级语言D.高级语言2一个C程序可以包含随意多个不同名的函数,但有且仅有一个。
A.函数B.主函数C.includeD.过程3系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才干运行?A.编辑?编译B.编译?衔接C.编辑?改错D.编辑?衔接4C语言程序从开头执行。
A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数5C语言程序是由构成的。
A.一些可执行语言B.main函数C.函数D.包含文件中的第一个函数6一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是。
A.有效性B.有穷性C.有零个或多个输入D.有零个或多个输出7设变量a是整型,f是实型,i双精度型,则表达式10+’a’+i*f 值的数据类型。
A.intB.floatC.doubleD.不确定8在C语言中,变量所分配的内存空间大小是由。
A.均为一个字节B.由用户自己定义C.由变量的类型打算D.是随意的9执行scanf (“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分离为3和4,则正确的输入办法为。
A. 3 ,4B.a:3 b: 4C.a=3,b=4D. 3 410在算术表达式中允许使用的括号类型是。
A.{ }B.[ ]C.( )D.以上三项皆错11存储以下数据,占用存储字节最少的是。
A. 0B. ‘0’C. “0”D. 0.012设n=10,i=4,则运算n%=i+1执行后,n 的值是。
A.0B.3C.2D.113C语言中运算对象必需是整型的运算符是。
A.%B. /C. =D.〈=14已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是.A .0 B. 1 C. 5 D. 615若有以下类型说明语句:char w;int x;float y;double z;则表达式w-x*y/z的结果为类型A.floatB.charC.intD.double16在C语言的库函数中,可以输出char型变量x值的语句是。
C++总复习题一、单项选择题1.说明虚函数的关键字是()。
A. inlineB. virtualC. defineD. static2.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。
A. mainB. MAINC. nameD. function3.cout是某个类的标准对象的引用,该类是()。
A. ostreamB. istreamC. stdoutD. stdin4.如果在类外有函数调用CPoint::func();则函数func()是类CPoint的()。
A.私有静态成员函数B. 公有非静态成员函数C. 公有静态成员函数 B. 友元函数5. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。
A. publicB. protectedC. private D.static6.一个类的所有对象共享的是()。
A. 私有数据成员B. 公有数据成员C. 保护数据成员D. 静态数据成员7.动态联编所支持的多态性称为()。
A. 虚函数B. 继承C. 编译时多态性D. 运行时多态性8.定义类模板时要使用关键字()。
A. constB. newC. deleteD. template9.对虚基类的定义()。
A.不需要使用虚函数B. 必须使用虚函数C. 必须使用privatD. 必须使用public10.类型转换函数()。
A. 不能带有参数B. 只能带一个参数C. 只能带2个参数D. 只能带3个参数参考答案:1.B 2.A 3.A 4.C 5.C 6.D 7.D 8.D 9.A 10.A1.下面有关重载函数的描述中,正确的是()。
A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的析构函数。
C语言期末总复习参考试卷一、选择题(共22分)1.下列变量名中合法的是____ 。
A) B.C.Tom B)3a6b C)_6a7b D) $ABC2.C程序的执行是从____开始执行A)第一条语句B)主函数C)命令行D)第一个出现的函数3.已知ch是字符型变量,下面不正确的赋值语句是____。
A)ch=‘a+b’; B) ch=‘\0’;C)ch=‘7’+‘9’; D)ch=5+9;4. 与语句while(x);等价的语句是______。
A) while(x==0);B) while(x!=0);C) while(x!=1);D) while(~x);5. 已知int i;float f;下列语句正确的是______。
A)(int f)%i B) int(f)%i C) int(f%i) D) (int)f%i6.若int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为6的表达式为_____ 。
A) *(p+6) B)*p+6 C)*p+=5 D)p+67.以下为一维整型数组a的正确说明是_________.A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];8.温度华氏和摄氏的关系是: C=5/9(F-32)。
已知:float C,F;由华氏求摄氏的正确的赋值表达式是____。
A)C=5/9(F-32) B)C=5*(F-32)/9 C)C=5/9*(F-32) D)三个表达式都正确9.若有以下说明和语句:struct worker{ int no;char *name;}work, *p=&work;则以下引用方法不正确的是____。
A)work.no B)(*p).no C)p->no D)work->no 10.为了判断两个字符串s1和s2是否相等,应当使用____。
北京化工大学北方学院2010——2011学年第一学期《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方无效。
(答题纸在本套试卷的第9页上)一、选择题(每小题2分,共40分)1、下列描述中,不属于面向对象思想主要特征的是()。
A. 封装性B. 多态性C. 继承性D. 跨平台2、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.03、考虑下面的函数原型声明:void test (int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. test (5);B. test (5,8);C. test (5,'#');D. test (0,0,'*');4、已知函数fun的原型为int fun(int, int, int);下列重载函数原型中错误的是()。
A. char fun(int, int);B. double fun(int, int, double);C. int fun(int, char*);D. float fun(int, int, int);5、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;6、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
大学计算机C语言期末模拟考试考题类型:单选题 总分:70.0 共55题[不包含随机题]1. (本题分值:1.0)C语言的基本单位是A.函数B.源程序C.语句D.程序行参考答案:A所属章节:C语言概述考题难度:1考题序号:2命题教师:北京化工大学 信息科学与技术学院 夏涛2. (本题分值:1.0)在C程序中,main()函数的位置是A.必须作为第一个函数;B.必须作为最后一个函数;C.可以任意;D.必须放在它所调用的函数之后;参考答案:C所属章节:C语言概述考题难度:1考题序号:6命题教师:北京化工大学 信息科学与技术学院 夏涛3. (本题分值:1.0)以下不正确的C语言标识符是A.intB.a_1_2C.ab1exeD._x参考答案:A所属章节:C语言概述考题难度:1考题序号:201命题教师:北京化工大学 信息科学与技术学院 夏涛4. (本题分值:1.0)以下叙述中正确的是A.C语言程序中注释部分可以出现在程序中任意合适的地方B.花括号“{”和“}”只能作为函数体的定界符C.构成C语言程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语言语句之间的分隔符,不是语句的一部分参考答案:A所属章节:C语言概述考题难度:1考题序号:1912命题教师:长沙理工大学 计算机与通信工程学院 左利芳5. (本题分值:1.0)一个C程序的执行是从A.本程序的main 函数开始,到main函数结束B.本程序文件中的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main 函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束参考答案:A所属章节:C语言概述考题难度:1考题序号:1982命题教师:长沙理工大学 计算机与通信工程学院 左利芳6. (本题分值:1.0)C语言中最简单的数据类型包括A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型参考答案:B所属章节:数据类型、运算符与表达式考题难度:1考题序号:1312命题教师:北京化工大学 信息科学与技术学院 夏涛7. (本题分值:1.0)以下选项中正确的定义语句是A.double a;b;B.double a=b=7;C.double a=7,b=7;D.double,a,b;参考答案:C所属章节:数据类型、运算符与表达式考题难度:1考题序号:1512命题教师:北京化工大学 信息科学与技术学院 夏涛8. (本题分值:1.0)下列不正确的转义字符是A.'\\B.'\"'C.'\074'D.'\0'参考答案:A所属章节:数据类型、运算符与表达式考题难度:1考题序号:1170命题教师:北京化工大学 信息科学与技术学院 夏涛9. (本题分值:1.0)在C语言中,有表达式 x=abs(8-10), 则x的值为( )A.-2B.2C.18D.80参考答案:B所属章节:数据类型、运算符与表达式考题难度:1考题序号:1605命题教师:湖南人文科技学院 计算机科学技术系 朱素英10. (本题分值:1.0)设有说明语句:char a=’\72’;则变量aA.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法参考答案:A所属章节:数据类型、运算符与表达式考题难度:1考题序号:995命题教师:北京化工大学 信息科学与技术学院 夏涛11. (本题分值:2.0)设以下变量均为int类型,则值不等于7的表达式是( )A.(x=y=6,x+y,x+1)B.(x=6,x+1,y=6,x+y)C.(x=y=6,x+y,y+1)D.(y=6,y+1,x=y,x+1)参考答案:B所属章节:数据类型、运算符与表达式考题难度:2考题序号:280命题教师:北京化工大学 信息科学与技术学院 夏涛12. (本题分值:2.0)已知字母A的ascii码值为十进制65,且c2为字符型,则执行语句c2=’a’+’6’-‘3’;后,c2中的值是( )A.dB.68C.cD.不确定的值参考答案:A所属章节:数据类型、运算符与表达式考题难度:2考题序号:286命题教师:北京化工大学 信息科学与技术学院 夏涛13. (本题分值:2.0)设x为int型变量,则执行以下语句后,x的值为( )。
C语言程序设计专升本精选样卷一、判断题(每小题2.5 分,共 100分)()1、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是 0()2、省略else的if语句的一般形式如下,若表达式的值为"真",则执行语句1;否则,就什么也不做。
if (表达式) 语句1()3、if(a>0);不能看作是一条合法的条件语句()4、函数的实参传递到形参有两种方式:值传递和地址传递。
()5、全局静态变量的作用域限制在定义它的源文件内,只能为该源文件内的函数公用。
()6、c语言中,所有的变量在使用前都必须先声明。()7、以下两个程序段等价,其功能是计算s=1+2+ (10)()8、关于 c 语言c 语言是结构化程序设计语言。
()9、条件运算符?和:是一对运算符,不能分开单独使用。
()10、在c语言中,一行可以书写多个语句()11、函数调用时,如果把数组名作实参,则形参数组元素的值发生变化时,实参数组元素的值同时发生变化。
()12、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。()13、注释会影响程序的运行。
()()14、case后面不必有空格,紧接着是变量表达式。
()15、c程序中的常量就是在程序运行过程中其值不能被改变的量。
()16、switch语句中的default必须出现在所有case之后。
()17、break 语句可以用来跳出整个循环语句()18、continue语句只能用于三个循环语句中。 ( )()19、无论哪种循环语句,都必须给出循环结束条件。
()20、break语句可用于循环体内,它将退出该重循环。
()21、用strcat(字符串1,字符串2)连接两个字符串函数时,将字符串1后面的'\0'取消,只在新串的最后保留一个'\0'。
()22、以下定义了一个一维数组str,该数组可以存放81个字符型数据。
目录目录 (1)单元练习题一C语言基础知识 (3)一、判断题 (3)二、单项选择题 (4)三、读程序选择题 (7)四、程序填空题 (8)五、编程题 (10)单元练习题二C语言程序结构 (10)一、判断题 (10)二、单项选择题 (11)三、读程序选择题 (18)四、程序填空题 (30)五、编程题 (35)单元练习题三数组 (36)一、判断题 (36)二、单项选择题 (37)三、读程序选择题 (39)四、程序填空题 (43)五、编程题 (49)单元练习题四函数 (49)二、单项选择题 (50)三、读程序选择题 (52)四、程序填空题 (60)五、编程题 (63)单元练习题五预处理 (63)一、判断题 (63)二、单项选择题 (64)三、读程序选择题 (64)四、程序填空题 (65)五、编程题 (65)单元练习题六指针 (66)一、判断题 (66)二、单项选择题 (66)三、读程序选择题 (67)四、程序填空题 (74)五、编程题 (77)单元练习题七结构体与共用体 (78)一、判断题 (78)二、单项选择题 (78)三、读程序选择题 (79)四、程序填空题 (83)单元练习题八文件 (84)一、判断题 (84)二、单项选择题 (84)三、读程序选择题 (84)四、程序填空题 (85)五、编程题 (87)第一章C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题(正确的填A,错误的填B)R1.在C语言中,逗号运算符的优先级最低。
(A)2.在C语言可执行程序的开始执行点是程序中第一个函数。
(B)3.“5ch”是合法的变量名。
(B)4.C语言程序书写格式自由,一行可以写几个语句,一个语句可以分写在多行上。
(A)5.当输入数据时,必须指明变量的地址,如scanf("%f",&f) (A)N6.表达式i++与++i在任何场合功能完全相同。
(B)7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
北华大学C语言题库精简打印版(全)一、判断题 - 正确篇1. 字符常量的长度肯定为1.Y2. 在调用函数时,实参把值传送给对应位置上的形参,形参的值不能传给实参.Y3. 在程序中凡是以#号开始的语句行都是预处理命令行Y4. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.Y5. 在程序中,APH和aph是两个不同的变量.Y6. 在Turbo C中,int型数据在存中占2个字节.Y7. 在C语言中8.9e1.2是不正确的实型常量.Y8. 在C语言中,变量必需先定义后使用.Y9. 在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double.Y10. 在C语言的函数中,可以有也可以没有形参Y11. 在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套Y12. 在C语言程序设计中,"/*"和"*/"之间的容是C语言的注释Y13. 在C程序中,逗号运算符的优先级最低.Y 14. 在C程序中,j++;是一条赋值语句.Y15. 在 C 语言中,此定义和语句是合法的:enum aa { a=5,b,c}bb;bb=(enum aa)5;Y16. 用fopen("file","r+");打开的文件"file"可以进行修改.Y17. 一个字符变量只能存储一个字符.Y18. 一个指针变量只能指向同一类型变量. Y19. 一个C程序必须由一个或一个以上的函数组成.Y20. 也可用其它编辑软件创建ASCII数据文件用在C程序中.Y21. 位段定义中允许长度为零的无名字段.Y22. 同一数组的元素在存中存储是连续存放的,占有连续的存储单元.Y23. 数组说明 int a[3][3]={1,2,3,4,5}; 是正确的.Y24. 数 -32100可以赋值给int型和long int型变量.Y25. 设x、t均为int型变量,则执行语句"x=10;t=x&&x<=10;"后,t的值为1.Y26. 三种循环(while语句for语句do-while语句)都可以用来处理同一个问题,一般它们可以相互代替.Y27. 若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5.Y28. 若有int a[3][4];*(a+1)+2表示a[1][2]元素的地址. Y29. 若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5.Y30. 若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变.Y31. 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};Y32. 枚举类型的数据不能从键盘上直接输入、输出.Y33. 结构体类型的定义允许嵌套.Y34. 将整数以二进制形式存盘比以ASCII 形式存盘省空间、运算快.Y35. 将一维双精度实数数组x的下标为i的变量的地址赋给指针变量p的语句为:double *p,x[10];int i=5;p=&x[i];Y36. 将数组a的首地址赋给指针变量p的语句是p=a;Y37. 共用体类型变量不能被初始化.Y38. 共同体变量所占的存长度等于最长的成员的长度.Y39. 对指针变量的初始化int a,*pa=&a,*pc=0;是正确的.Y40. 对文件进行读写操作,必须先打开,可调用函数fopen().Y41. 对枚举类型名的定义enum a {sum=9,mon=-1,tue};是正确的.Y42. 对结构体类型的变量的成员可以象普通变量一样参与各种运算.Y43. 动态存储分配,可调用函数malloc(),如int *p;p=(int *)malloc(sizeof(p));Y44. 当定义一个结构体变量时,系统分配给它的存是各成员所需存量的总和.Y45. 当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址.Y46. 不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以文件的形式存在磁盘上.Y47. x*=y+8 等价于 x=x*(y+8).Y48. while 和for循环都是先判断表达式的值,后执行循环体语句.Y49. typedef long int BIGGY;的作用是给长整型起了一个别名BIGGY.Y50. static char a[]="This is a program.";printf("%s",a);是正确的.Y51. rewind(fp);可使fp所指文件的位置返回到文件的开头.Y52. r_1_2是C语言合法的用户定义标识符.Y53. int n; scanf("%d",&n); int a[n]; 是不合法的.Y54. int i=3,j=5; if(i>j);是正确的.Y55. int i,*p=&i;是正确的C说明.Y56. int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.Y57. int *p[6];定义了6个下标变量的整型指针.Y58. fseek()函数一般用于二进制文件.Y59.for(i=4;i>1;i--)for(j=1;j<i;j++)p utchar('#');输出为######.Y60. do-while循环是先执行循环体语句,后判断表达式的值.Y61. C语言中,文件由字符(字节)序列组成.Y62. C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的.Y63. C语言程序中,当调用函数时实参和形参各占一个独立的存储单元Y64. char c;c=getchar();该程序段的功能是将用户从键盘输入的字符赋给变量c.Y65. char *s1="hello",*s2;s2=s1;是正确的.Y66. char (*p)[6]; 若p值为1000,则p++;后p值为1006.Y67. a=(b=4)+(c=6) 是一个合法的赋值表达式.Y68. 0x173是"正确"的十六进制常数.Y69. #define 和printf 都不是C语句.Y 判断题 - 错误篇70. 执行表达式(int)i后,i的类型一定变为整型.N71. 在一个C程序中,main函数必须出现在所有函数之前.N72. 在C语言中,为句构成的循环, while 后一对圆括号中表达式的值应该是1.N73. 在C语言中,调用函数必须在一条独立的语句中完成.N74. 在C程序中,每行中只能写一条语句 .N75. 在C程序中,赋值运算符的优先级最低.N76. 语句 printf("%f%%",1.0/3);输出为0.333333.N77. 与 if(E) 语句中的(E)等价的表达式是 (E==0).N78. 用户定义的函数也可调用main函数.N79. 以下各数均不是合法的八进制数:256、03A2、-0127.N80. 已知ch是字符型变量,则ch="\";是正确的赋值语句.N81. 一个变量可以同时被定义为多种类型.N82. 一个include 命令可以指定多个被包含的文件.N83. 数组说明int a[3][3]={1,2,3,4,5,6,7} ;是正确的.N84. 数组定义 int a[10]; 占存10个字节.N85. 数组定义 int a(10);是正确的.N86. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的.N87. 若i =3,则printf("%d",-i++);输出的值为 -4.N88. 若a是实型变量,在执行了a=5;后,a将变为整型变量.N89. 若a和b的类型相同,在执行了a=b;后,b中的值将丢失.N90. 任何结构体类型的变量都可以互相赋值.N91. 枚举类型的数据与字符串在使用上相同.N92. 结构体类型只有一种.N93. 将函数fun的入口地址赋给指针变量p 的语句是p=fun();N94. 函数的定义和函数的调用均可以嵌套.N95. 函数strlen("ASDFG\n")的值是7.N96. 定义结构体的保留字是struc.N97.调用scanf()函数进行字符数组输入时,空格和换行符都可以作为字符串的一部分而能读入.N98. 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值.N99. 程序中的变量代表存中的一个存储单元,它的值不可以随时修改.N100.参加位运算的数据可以是任何类型的数据.N101.static char str[]="China";没有定义数组元素个数.N102.sqrt(m)是求m平方的函数.N103.inta[]={3.1,5.8,6.7,-3.6},i;for(i =0;i<4;i++)printf("%d",a[i]);能输出数组元素a[2]的值. N104.int k=8567;printf("|%-6d|\n",k);的输出为|008567|.N105.int i=3,j=5; if(i>j) ; j++; else i++;是正确的.N106.int a[2][3];按照它在存的排列次序,a数组的所有元素是a[0][0]、a[1][0]、a[0][1]、a[1][1]、a[0][2]、a[1][2].N107.inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则p+5相当于a[5].N108.if语句后面的控制表达式只能使用关系表达式或逻辑表达式.N109.if(strcmp(temp,str)>0)中的条件是当字符串temp大于字符串str为真时.N110.if (j=0) i+ +; else i- -; i的值为11.N111.for(m=22;m<1000;m++)if(m%3==0&&m%7!=0)break;是当m能被3整除或m不能被7整除时,结束本次循环进入下次循环.N112.for(i=0,k=-1;k=1;k++,i++)printf(" *\n"); 循环体一次也不执行.N113.C语言中字符型、整型、实型都能用八进制表示.N114.C语言中的文件类型只有文本文件一种.N115.C语言中的文件类型只有二进制文件一种.N116.C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的.N117.C程序中有调用关系的所有函数必须放在同一个源程序文件中.N118.continue语句不只用于循环语句中.N119.char a[10]="abcdefg"; printf("%6s\n",a);只输出前六个字符.N120.char *s;*s='H';是正确的.N121.#include "stdio.h" 是每个程序中必须写的.N二、选择题A篇1. 以下数据中,不正确的数值或字符常量是(A).(A).c(B).66(C).0xaa(D).502. 设j和k都是int类型,则for循环语句:for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);(A)(A).最多执行10次(B).最多执行9次(C).是无限循环(D).循环体一次也不执行3. char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是(A).(A).strcat(a2,a1);(B).strcpy(a2,a1);(C).strcat(a1,a2); (D).strcpy(a1,a2);4. 以下正确的说法是:在C语言中(A).(A).实参和与其对应的形参各占用独立的存储单元(B).实参和与其对应的形参共占用一个存储单元(C).只有当实参和与其对应的形参同名时才共占用存储单元(D).形参是虚拟的,不占用存储单元5. 下列字符序列中,是C语言保留字的是(A).(A).sizeof(B).include(C).scanf(D).sqrt6. 以下选项中,与k=n++完全等价的表达式是(A).(A).k=n,n=n+1(B).n=n+1,k=n(C).k=++n(D).k+=n+17. 在位运算中,操作数每左移一位,其结果相当于(A).(A).操作数乘以2(B).操作数除以2(C).操作数除以4(D).操作数乘以48. 以下程序的运行结果是(A).main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}(A).12457810(B).369(C).12(D).12345678909. inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A).(A).1(B).2(C).3(D).不一定10. 下列定义数组的语句中正确的是(A).(A).#define size 10 char str1[size],str2[size+2];(B).char str[];(C).int num['10'];(D).int n=5; int a[n][n+2]; 11. C语言中运算对象必须是整型的运算符是(A).(A).%=(B)./(C).=(D).〈=12. C语言中 while 和 do-while 循环的主要区别是(A).(A).do-while 的循环体至少无条件执行一次(B).while的循环控制条件比 do-while的循环控制条件更严格(C).do-while 允许从外部转到循环体(D).do-while 的循环体不能是复合语句13. 16.在C语言中,形参的缺省存储类别是(A).(A).auto(B).register(C).static(D).extern14. 从键盘上输入某字符串时,不可使用的函数是(A).(A).getchar()(B).gets()(C).scanf()(D).fread()15. 以下数据中,不正确的数值或字符常量是(A).(A).8.9e1.2(B).10(C).0xff00(D).82.516. 以下不是无限循环的语句为(A).(A).for(y=0,x=1;x>++y;x=i++) i=x;(B).for(;;x++=i);(C).while(1){x++;}(D).for(i=10;;i--) sum+=i;17. while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是(A).(A).t>=1e-5&&t<=-1e-5(B).fabs(t)<1e-5&&!s/10(C).fabs(t)<1e-5(D).s/10==018. 以下叙述中正确的是(A).(A).构成C程序的基本单位是函数(B).可以在一个函数中定义另一个函数(C).main()函数必须放在其它函数之前(D).所有被调用的函数一定要在调用之前进行定义19. 函数 rewind 的作用是(A).(A).使位置指针重新返回文件的开头(B).将位置指针指向文件中所要求的特定位置(C).使位置指针指向文件的末尾(D).使位置指针自动移至下一个字符位置20. C语言程序中,当调用函数时(A).(A).实参和虚参各占一个独立的存储单元(B).实参和虚参可以共用存储单元(C).可以由用户指定是否共用存储单元(D).计算机系统自动确定是否共用存储单元21. 当定义一个结构体变量时,系统分配给它的存是(A).(A).各成员所需存量的总和(B).结构中第一个成员所需存量(C).结构中最后一个成员所需存量(D).成员中占存量最大者所需的容量22. 下列变量定义中合法的是(A).(A).short _a=1-.1e-1;(B).double b=1+5e2.5;(C).long do=0xfdaL;(D).float 2_and=1-e-3;23. 若有说明语句:char c='\72';则变量c(A).(A).包含1个字符(B).包含2个字符(C).包含3个字符(D).说明不合法,c的值不确定24. 结构体类型的定义允许嵌套是指(A).(A).成员是已经或正在定义的结构体型(B).成员可以重名(C).结构体型可以派生(D).定义多个结构体型25. 先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).(A).c='a';(B).c="a";(C).c="97";(D).C='97'26. 下列数组说明中,正确的是(A).(A).static char str[]="China";(B).static char str[]; str="China";(C).static char str1[5],str2[]={"China"}; str1=str2;(D).static char str1[],str2[];str2={"China"};strcpy(str1,str2);27. 若有int *p=(int *)malloc(sizeof(int));则向存申请到存空间存入整数123的语句为(A).(A).scanf("%d",p);(B).scanf("%d",&p);(C).scanf("%d",*p);(D).scanf("%d",**p); 28. 以下叙述中正确的是 (A).(A).C程序中注释部分可以出现在程序中任意合适的地方(B).花括号"{"和"}"只能作为函数体的定界符(C).构成C程序的基本单位是函数,所有函数名都可以由用户命名(D).分号是C语句之间的分隔符,不是语句的一部分29. 执行下面程序后,输出结果是(A).main(){ int a=45,b=27,c=0;c=max(a,b);printf("%d\n",c);}int max(int x,int y){ int z;if(x>y) z=x;else z=y;return(z);}(A).45(B).27(C).18(D).7230. 设有以下语句, 若0<k<4,下列选项中对字符串的非法引用是(A).charstr[4][2]={"aaa","bbb","ccc","ddd"},* strp[4];int j;for (j=0;j<4;j++)strp[j]=str[j];(A).strp(B).str[k](C).strp[k](D).*strp31. 9以下语句中,循环次数不为10次的语句是(A).(A).for(i=1;i<10;i++);(B).i=1;do{i++;}while(i<=10);(C).i=10;while(i>0){--i;}(D).i=1;m:if(i<=10){i++;goto m;}32. 14以下不能正确进行字符串赋初值的语句是(A).(A).char str[5]="good!";(B).char str[]="good!";(C).char *str="good!";(D).char str[5]={'g','o','o','d'};33. 18若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为(A).(A).p=&x[i];(B).p=x;(C).p=x[i]; (D).p=&(x+i)34. C语言的if语句嵌套时,if与else的配对关系是(A).(A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对(B).每个else总是与最外层的if配对(C).每个else与if的配对是任意的(D).每个else总是与它上面的if配对35. 16以下正确的函数定义形式是(A).(A).double fun(int x,int y)(B).double fun(int x;int y)(C).double fun(int x,int y);(D).double fun(int x,y);36. 18经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是(A)(A).p=a+2;(B).p=a[5];(C).p=a[2]+2;(D).p=&(j+2);37. 17enum a {sum=9,mon=-1,tue};2char a[]="This is a program.";输出前5个字符的语句是(A).(A).printf("%.5s",a);(B).puts(a);(C).printf("%s",a);(D).a[5*2]=0;puts(a);选择题B篇38. C语言源程序的基本单位是(B).(A).过程(B).函数(C).子程序(D).标识符39. 下列程序的输出结果是(B).main(){char c1=97,c2=98;printf("%d %c",c1,c2);}(A).97 98(B).97 b(C).a 98(D).a b40. 下列四个选项中,均是C语言关键字的选项是(B).(A).auto enum include(B).switch typedef continue(C).signed union scanf(D).if struct type41. 以下能对二维数组a进行正确初始化的语句是(B).(A).int a[2][]={{1,0,1},{5,2,3}}; (B).int a[][3]={{1,2,3},{4,5,6}};(C).int a[2][4]={{1,2,3},{4,5},{6}};(D).int a[][3]={{1,0,1}{},{1,1}};42. 以下对枚举类型名的定义中正确的是(B).(A).enum a={sun,mon,tue};(B).enum a {sun=9,mon=-1,tue};(C).enum a={"sun","mon","tue"};(D).enum a {"sun","mon","tue"};43. 以下选项中合法的用户标识符是(B).(A).long(B)._2Test(C).3Dmax(D).A.dat44. 以下叙述中正确的是(B).(A).C语言的源程序不必通过编译就可以直接运行(B).C语言中的每条可执行语句最终都将被转换成二进制的机器指令(C).C源程序经编译形成的二进制代码可以直接运行(D).C语言中的函数不可以单独进行编译45. 以下叙述中不正确的是(B).(A).一个好的程序应该有详尽的注释(B).在C程序中,赋值运算符的优先级最低(C).在C程序中,j++;是一条赋值语句(D).C程序中的#include和#define均不是C语句46. 若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a 和b的值分别是(B).(A).a=3,b=4(B).a=4,b=3(C).a=4,b=4(D).a=3,b=347. 9.假定所有变量均已正确定义,下列程序段运行后x的值是(B).k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;else x=3;(A).14(B).4(C).15(D).348. 给数组a的所有元素分别赋值为1、2、3、……的语句是(B).(A).for(i=1;i<11;i++)a[i]=i;(B).for(i=1;i<11;i++)a[i-1]=i; (C).for(i=1;i<11;i++)a[i+1]=i;(D).for(i=1;i<11;i++)a[0]=1;49. C语言中不可以嵌套的是(B).(A).函数调用(B).函数定义(C).循环语句(D).选择语句50. int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是(B)(A).2(B).3(C).4(D).不一定51. 若k为int型变量,则以下程序段的执行结果是(B).k=-8567; printf("|%06D|\n",k);(A).格式描述符不合法,输出无定值(B).输出为|%06D|(C).输出为|0-8567|(D).输出为|-8567|52. fseek函数的正确调用形式是(B).(A).fseek(文件类型指针,起始点,位移量)(B).fseek(fp,位移量,起始点)(C).fseek(位移量,起始点,fp)(D).fseek(起始点,位移量,文件类型指针)53. 下列表达式中,可作为C合法表达式的是(B).(A).[3,2,1,0](B).(3,2,1,0)(C).3=2=1=0(D).3/2/1/054. 以下程序的输出结果为(B).main(){int a=1,b=2,c=3,d=4,e=5;printf("%d\n",func((a+b,b+c,c+a),(d+e )));}int func(int x,int y){return(x+y);}(A).15(B).13(C).9(D).函数调用出错55. 以下标识符中,不能作为合法的C用户定义标识符的是(B).(A).a3_b3(B).void(C)._123(D).IF 56. 假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是(B).(A).7(B).8(C).9(D).257. 以下程序段的输出结果为(B).for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');(A).无(B).######(C).#(D).###58. 设C语言中,int类型数据占2个字节,则unsigned类型数据占(B).(A).1个字节(B).2个字节(C).4个字节(D).8个字节59. 对 for(表达式1; ;表达式3) 可理解为(B).(A).for(表达式1;0;表达式3)(B).for(表达式1;1;表达式3)(C).for(表达式1;表达式1;表达式3)(D).for(表达式1;表达式3;表达式3)60. C语言中,定义结构体的保留字是(B).(A).union(B).struct(C).enum(D).typedef61. 设C语言中,int类型数据占2个字节,则short类型数据占().B(A).1个字节(B).2个字节(C).4个字节(D).8个字节62. 对 for(表达式1; ;表达式3) 可理解为(B).(A).for(表达式1;0;表达式3)(B).for(表达式1;1;表达式3)(C).for(表达式1;表达式1;表达式3)(D).for(表达式表达式3;表达式3)63. C语言允许函数类型缺省定义,此时函数值隐含的类型是().B(A).float(B).int(C).long(D).double64. 若有int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(B).(A).非法,2 (B).&a[1][0],2(C).&a[0][1],3(D).a[0][0],465. 以下叙述正确的是(B).(A).可以把define和if定义为用户标识符(B).可以把define定义为用户标识符,但不能把if定义为用户标识符(C).可以把if定义为用户标识符,但不能把define定义为用户标识符(D).define和if都不能定义为用户标识符66. sizeof(float)是(B).(A).一个双精度型表达式(B).一个整型表达式(C).一种函数调用(D).一个不合法的表达式67. 对 for(表达式1; ;表达式3) 可理解为(B).(A).for(表达式1;0;表达式3)(B).for(表达式1;1;表达式3)(C).for(表达式1;表达式1;表达式3)(D).for(表达式1;表达式3;表达式3)68. 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是(B).(A).i=*p;(B).*p=*&j;(C).i=&j;(D).i=**p;69. 下面四个选项中,均是不合法的浮点数的选项是(B).(A).160. 0.12 e3(B).123 2e4.2 .e5(C).-.18 123e4 0.0(D).-e3 .234 1e370. 在一个C程序中(B).(A).main函数必须出现在所有函数之前(B).main函数可以在任何地方出现(C).main函数必须出现在所有函数之后(D).main函数必须出现在固定位置71. 若二维数组a有m列,则在a[i][j]前的元素个数为(B).(A).j*m+i(B).i*m+j(C).i*m+j-1(D).i*m+j+172. 若有下列定义,则对a数组元素地址的正确引用是(B).int a[5],*p=a;(A).&a[5](B).p+2(C).a++(D).&a73. 2下列字符序列中,不可用作C语言标识符的是(B).(A).b70(B).#ab(C).symbol(D).a_174. 15以下不正确的说法是:C语言规定(B).(A).实参可以是常量,变量或表达式(B).形参可以是常量,变量或表达式(C).实参可以为任何类型(D).形参应与其对应的实参类型一致75. 3下列数据中,为字符串常量的是(B).(A).A(B)."house"(C).How do you do.(D).$abc76. 17在位运算中,操作数每右移一位,其结果相当于(B).(A).操作数乘以2(B).操作数除以2(C).操作数乘以16(D).操作数除以1677. 以下所列的C语言常量中,错误的是(B).(A).0xFF(B).1.2e0.5(C).2L(D).'\72'78. 为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量.(A).auto(B).register(C).static(D).extern79. 10int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为().B(A).1(B).2(C).3(D).不一定80. 以下不正确的定义语句是(B).(A).doublex[5]={2.0,4.0,6.0,8.0,10.0};(B).int y[5]={0,1,3,5,7,9};(C).char c1[]={'1','2','3','4','5'};(D).char c2[]={'\x10','\xa','\x8'};81. C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(B).(A).地址传递(B).单向值传递(C).由实参传给形参,再由形参传回给实参(D).由用户指定的传递方式82. 以下程序的输出结果是(B).main(){ char s[]="123",*p;p=s;printf("%c%c%c\n",*p++,*p++,*p++);}(A).123(B).321(C).213(D).31283. 以下语句中,不能实现回车换行的是(B).(A).printf("\n");(B).putchar("\n");(C).fprintf(stdout,"\n");(D).fwrite("\n",1,1,stdout);选择题C篇84. 设C语言中,int类型数据占2个字节,则long类型数据占(C).(A).1个字节(B).2个字节(C).4个字节(D).8个字节85. 以下叙述正确的是(C).(A).在C程序中,main函数必须位于程序的最前面(B).C程序的每行中只能写一条语句(C).C语言本身没有输入输出语句(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误86. 以下数值中,不正确的八进制数或十六进制数是(C).(A).0x16(B).016(C).-16(D).0xaaaa87. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是(C).(A).0(B).语法错(C).1(D).假88. 能将高级语言编写的源程序转换为目标程序的是(C).(A).程序(B).解释程序(C).编译程序(D).编辑程序89. 以下关于运算符优先顺序的描述中正确的是(C). (A).关系运算符<算术运算符<赋值运算符<逻辑运算符(B).逻辑运算符<关系运算符<算术运算符<赋值运算符(C).赋值运算符<逻辑运算符<关系运算符<算术运算符(D).算术运算符<关系运算符<赋值运算符<逻辑运算符90. 以下叙述中不正确的是(C).(A).表达式a&=b等价于a=a&b(B).表达式a|=b等价于a=a|b(C).表达式a!=b等价于a=a!b(D).表达式a^=b等价于a=a^b91. 12.以下不能对二维数组a进行正确初始化的语句是(C).(A).int a[2][3]={0};(B).int a[][3]={{1,2},{0}};(C).int a[2][3]={{1,2},{3,4},{5,6}};(D).int a[][3]={1,2,3,4,5,6};92. 下列语句中,不正确的是C(A).static char a[2]={1,2};(B).static int a[2]={'1','2'};(C).static char a[2]={'1','2','3'};(D).static char a[2]={'1'};93. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(C).(A).a[1](B).a[-1](C).a[0](D).a[10]94. 以下字符中不是转义字符的是(C).(A).'\a'(B).'\b'(C).'\c'(D).'\\'95. 以下数据中,不正确的数值或字符常量是(C).(A).0(B).5L(C).o13(D).986196. 若输入ab,程序运行结果为(C).main(){ static char a[2];scanf("%s",a);printf("%c,%c",a[1],a[2]);}(A).a,b(B).a, (C).b,(D).程序出错97. 下列程序段的输出结果为(C).int a=7,b=9,t;t=a*=a>b?a:b;printf("%d",t);(A).7(B).9(C).63(D).4998. 下面四个选项中,均是不合法的用户标识符的选项是(C).(A).A P_0 do(B).float la0 _A(C).b-a goto int(D)._123 temp int99. 在C语言中,调用函数除函数名外,还必须有(C).(A).函数预说明(B).实际参数(C).( )(D).函数返回值100. 下面判断正确的是(C).(A).char *a="china";等价于char *a;*a="china";(B).char str[10]={"china"};等价于charstr[10];str[]={"china"};(C).char *s="china";等价于char *s;s="china";(D).char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";101. char *s1="hello",*s2;s2=s1;则(C)(A).s2指向不确定的存单元(B).不能访问"hello"(C).puts(s1);与puts(s2);结果相同(D).s1不能再指向其它单元102. 若a是float型变量,b是unsigned型变量,以下输入语句中合法的是(C).(A).scanf("%6.2f%d",&a,&b);(B).scanf("%f%n",&a,&b);(C).scanf("%f%3o",&a,&b);(D).scanf("%f%f",&a,&b);103. C语言执行程序的开始执行点是(C).(A).程序中第一条可以执行语言(B).程序中第一个函数(C).程序中的main函数(D).包含文件中的第一个函数104. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(C).(A).字符串读入后不会自动加入'\0' (B).fp是file类型的指针(C).fgets函数将从文件中最多读入n-1个字符(D).fgets函数将从文件中最多读入n个字符105. 若有说明 int a[3][4];则对a数组元素的正确引用是(C).(A).a[2][4](B).a[1,3](C).a[1+1][0](D).a(2)(1)106. C程序中的宏展开是在(C).(A).编译时进行的(B).程序执行时进行的(C).编译前预处理时进行的(D).编辑时进行的107. 设有说明int (*ptr)[M];其中标识符ptr是(C).(A).M个指向整型变量的指针(B).指向M个整型变量的函数指针(C).一个指向具有M个整型元素的一维数组的指针(D).具有M个指针元素的一维指针数组,每个元素都只能指向整型量108. 若有char a[80],*s=a;不正确的输入语句是(C).(A).scanf("%s",s);(B).gets(s);(C).fscanf(stdin,"%c",s);(D).fgets(s,80,stdin);109. 以下选项中合法的实型常数是(C).(A).5E2.0(B).E-3(C)..2(D).1.3E110. 以下常量中,能够代表逻辑"真"值的常量是(C).(A).'\0'(B).0(C).'0'(D).NULL111. 以下标识符中,不能作为合法的C 用户定义标识符的是(C).(A).putchar(B)._double(C).123_(D).INT112. 7经过以下语句定义后,表达式z+=x>y?++x:++y的值为(C).int x=1,y=2,z=3;(A).2(B).3 (C).6(D).5113. 8以下运算符中优先级最低的是(C).(A).&&(B).&(C).||(D).|114. char a[10];不能将字符串"abc"存储在数组中的是(C).(A).strcpy(a,"abc");(B).a[0]=0;strcat(a,"abc");(C).a="abc";(D).inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;115. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C).(A).整型常量(B).整型表达式(C).整型常量或整型表达式(D).任何类型的表达式116. 以下各选项企图说明一种新的类型名,其中正确的是(C).(A).typedef v1 int;(B).typedef v2=int;(C).typedef int v3;(D).typedef v4: int;117. 9执行语句 for(i=1;i++<4;); 后变量 i 的值是(C).(A).3(B).4(C).5(D).不定118. 1以下程序段的执行结果是(C).double x;x=218.82631; printf("%-6.2e\n",x);(A).输出格式描述符的域宽不够,不能输出(B).输出为21.38e+01(C).输出为2.2e+02(D).输出为-2.14e2119. 以下运算符中,优先级最高的运算符是(C).(A).||(B).%(C).!(D).==(C).98,c120. C语言规定,在一个源程序中,main 函数的位置(C).(A).必须在最开始(B).必须在系统调用的库函数的后面(C).可以任意(D).必须在最后121. 当顺利执行了文件关闭操作时,fclose函数的返回值是(C).(A).-1(B).True(C).0(D).1122. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C).(A).char s[10]="abcdefg";(B).char t[]="abcdefg",*s=t;(C).char s[10];s="abcdefg";(D).char s[10];strcpy(s,"abcdefg");123. 在C语言中,函数的隐含存储类别是(C).(A).auto(B).static(C).extern(D).无存储类别124. 若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(C).(A).int p=&x;(B).int *p=x;(C).int *p=&x;(D).*p=*x;125. 切换编辑窗和信息窗的命令键是(C).(A).F2(B).F3(C).F6(D).F9126. 在以下给出的表达式中,与do--while(E)语句中的(E)不等价的表达式是(C).A).(!E==0)(B).(E>0||E<0)(C).(E==0)(D).(E!=0)127. 用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是(C).long a=0xffffff;int b; char c;(A).0ffffff 和0x61(B).-1和98(C).-1和97(D).指向同一地址128. 以下对二维数组a的正确说明是(C).A).int a[3][](B).float a(3,4)(C).double a[1][4](D).float a(3)(4)129. 在C语言的函数中,下列正确的说法是(C). (A).必须有形参(B).形参必须是变量名(C).可以有也可以没有形参(D).数组名不能作形参130. char *s1="hello",*s2;s2=s1;则(C).(A).s2指向不确定的存单元(B).不能访问"hello"(C).puts(s1);与puts(s2);结果相同(D).s1不能再指向其它单元131. 以下不正确的if语句形式是(C).(A).if(x>y&&x!=y);(B).if(x==y) x+=y;(C).if(x!=y) scanf("%d",&x) else scanf("%d",&y);(D).if(x<y) {x++;y++;}选择题D篇132. C语言中,double类型数据占(D).(A).1个字节(B).2个字节(C).4个字节(D).8个字节133. 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是(D).(A).552(B).144(C).264(D).-264134. 下列程序的输出为(D).main(){ int y=10;while(y--) ;printf("y=%d\n",y);}(A).y=0(B).while构成无限循环(C).y=1(D).y=-1135. 以下能正确定义数组并正确赋初值的语句是(D).(A).int N=5,b[N][N];(B).int a[1][2]={{1},{3}};(C).int c[2][]={{1,2},{3,4}};(D).int d[3][2]={{1,2},{34}};136. 若有说明: int a[][4]={0,0};则下面不正确的叙述是(D).(A).数组a的每个元素都可得到初值0(B).二维数组a的第一维大小为1(C).因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1(D).有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 137. C语言规定,函数返回值的类型是由(D).(A).return语句中的表达式类型所决定(B).调用该函数时的主调函数类型所决定(C).调用该函数时系统临时决定(D).在定义该函数时所指定的函数类型所决定138. 则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(D).(A).if(strcmp(s1,s1)>0)puts(s2);(B).if(strcmp(s2,s1)>0)puts(s2);(C).if(strcmp(s2,t)>0)puts(s2);(D).if(strcmp(s1,t)>0)puts(s2);139. 下列选项中正确的语句组是(D).(A).char s[8]; s={"Beijing"};(B).char *s; s={"Beijing"}(C).char s[8]; s="Beijing";(D).char *s; s="Beijing";140. 以下叙述中错误的是(D).(A).二进制文件打开后可以先读文件的末尾,而顺序文件不可以(B).在程序结束时,应当用fclose函数关闭已打开的文件(C).在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据(D).不可以用FILE定义指向二进制文件的文件指针141. 以下数组定义中不正确的是(D).(A).int a[2][3];(B).int b[][3]={0,1,2,3};(C).int c[100][100]={0};(D).intd[3][]={{1,2},{1,2,3},{1,2,3,4}};142. 函数的形式参数隐含的存储类型说明是(D).(A).extern(B).static(C).register(D).auto143. 在定义构造数据类型时,不能(D).(A).说明变量(B).说明存储类型(C).初始化(D).末尾不写分号144. 具有相同类型的指针变量p与数组a,不能进行的操作是(D).(A).p=a;(B).*p=a[0];(C).p=&a[0];(D).p=&a;145. 8.下列运算符中,不属于关系运算符的是(D).(A).< (B).>(C).>=(D).!146. 15.以下错误的描述是:函数调用可以(D).(A).出现在执行语句中(B).出现在一个表达式中(C).做为一个函数的实参(D).做为一个函数的形参147. 18.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D).(A).p=q;(B).*p=*q;(C).n=*q;(D).p=n;148. 下列字符序列中,可用作C标识符的一组字符序列是(D).(A).S.b,sum,average,_above(B).class,day,lotus_1,2day(C).#md,&12x,month,student_n!(D).D56,r_1_2,name,_st_1149. double x;scanf("%lf",&x);不可以赋值给x变量的常量是(D).(A).123(B).100000(C).'A'。
22题目:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main 函数中输出。
请编写fun函数。
/**********Program**********/intmin,i;min=x[0];for(i=1;i<n;i++){if(x[i]<min) min=x[i];}return min;/********** End **********/23题目:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。
例如:7是素数,8不是素数。
请编写fun函数。
素数是仅能被1和自身整除的数/**********Program**********/inti;int j;j= 1;for(i=2;i<n;i++){if(n%i==0) j= 0;}return j;/********** End **********/29题目:请编写一个函数fun,函数的功能是:统计出若干个学生的平均成绩,最高分以及得最高分的人数。
/**********Program**********/inti;float sum=0,ave;Max=array[0];for(i=0;i<n;i++){ if(Max<array [i]) Max=array [i];sum=sum+array [i]; }ave=sum/n;for(i=0;i<n;i++)if(array [i]==Max) J++;return(ave);/********** End **********/40题目:请编写函数fun,它的功能是:判断m是否为素数。
主函数的功能是:求出100到200之间的素数的个数。
/**********Program**********/inti,k=1;if(m<=1) k=0;for(i=2;i<m;i++)if(m%i==0) k=0;return k;/********** End **********/47.题目:编写函数fun,函数的功能是:计算并输出给定整数n的所有因子之和(不包括1与自身)。
北京化工大学计算机基础考试题及答案一、单选题1、软件与程序的区别是()A、程序价格便宜、软件价格昂贵B、程序是用户自己编写的,而软件是由厂家提供的C、程序是用高级语言编写的,而软件是由机器语言编写的D、软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分【答案】D2、下列四条叙述中,有错误的一条是()A、两个或两个以上的系统交换信息的能力称为兼容性B、当软件所处环境(硬件/支持软件、发生变化时,这个软件还能发挥原有的功能,则称该软件为兼容软件C、不需调整或仅需少量调整即可用于多种系统的硬件部件,称为兼容硬件D、著名计算机厂家生产的计算机称为兼容机【答案】D3、在计算机中对以下几个部件访问速度最快的是()A、光盘B、RAMC、硬盘D、软盘【答案】B4、下列四条描述中,正确的一条是()A、鼠标器是一种既可作输入又可作输出的设备B、激光打印机是非击打式打印机C、Windows是一种应用软件D、PowerPoint是一种系统软件【答案】B5、最先实现程序存储的计算机是()A、ENIACB、EDSACC、EDVACD、UNIVA【答案】B6、下列打印机中,打印效果最佳的一种是()A、点阵打印机B、激光打印机C、热敏打印机D、喷墨打印机【答案】B7、下列字符中,ASCII码值最大的是()A、kB、aC、QD、M【答案】D8、下列四个不同进制的无符号整数中,数值最小的是()A、(10010010)2B、(221)8C、(147)10D、(94)【答案】B9、软件与程序的区别是()A、程序价格便宜、软件价格昂贵B、程序是用户自己编写的,而软件是由厂家提供的C、程序是用高级语言编写的,而软件是由机器语言编写的D、软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分【答案】D10、在计算机中对以下几个部件访问速度最快的是()A、光盘B、RAMC、硬盘D、软盘【答案】B11、目前计算机应用最广泛的领域是()A、人工智能和专家系统B、科学技术与工程计算C、数据处理与办公自动化D、辅助设计与辅助制造【答案】C12、在学校里,能用于打印蜡纸的打印机是()A、激光打印机B、针式打印机C、喷墨打印机D、热敏式打印机【答案】B13、下列四条描述中,正确的一条是()A、鼠标器是一种既可作输入又可作输出的设备B、激光打印机是非击打式打印机C、Windows是一种应用软件D、PowerPoint是一种系统软件【答案】B14、内存储器存储容量的大小取决于()A、字长B、地址总线的宽度C、数据总线的宽度D、字节数15、计算机中最小的数据单位是()A、位B、字节C、字长D、字【答案】A16、微型计算机使用的键盘中,Shift键是()A、换档键B、退格键C、空格键D、回车换行键【答案】A17、微型计算机中常用的英文词bit的中文意思是()A、计算机字B、字节C、二进制位D、字长【答案】C18、在学校里,能用于打印蜡纸的打印机是()A、激光打印机B、针式打印机C、喷墨打印机D、热敏式打印机【答案】B19、微型计算机的性能主要取决于()A、内存B、中央处理器C、硬盘D、显示卡【答案】B20、下列四条叙述中,属RAM特点的是()A、可随机读写数据,且断电后数据不会丢失B、可随机读写数据,断电后数据将全部丢失C、只能顺序读写数据,断电后数据将部分丢失D、只能顺序读写数据,且断电后数据将全部丢失【答案】B21、IBM PC/AT 微型机采用的CPU芯片是()A、Z-80B、8086C、8088D、80286【答案】D22、下列设备中,属于输出设备的是()A、扫描仪B、显示器C、触摸屏D、光笔【答案】B23、CD-ROM 常作为多媒体套件中的外存储器,它是()A、只读存储器B、只读光盘C、只读硬盘D、只读大容量软盘24、微机中的内存储器采用的是()A、磁芯存储器B、磁泡存储器C、磁表面存储器D、半导体存储器【答案】D25、能对二进制数据进行移位和比较操作的计算机工作部件是()A、累加器B、运算器C、控制器D、寄存器【答案】B26、IBM PC/AT 微型机采用的CPU芯片是()A、Z-80B、8086C、8088D、80286【答案】D27、已知一补码为10000101,则其真值用二进制表示为()A、-000010B、-1111010C、-000000D、-1111011【答案】D28、微机的内存储器比外存储器(1)(C ),内存储器可与微处理器(2)( D)交换信息,内存储器根据工作方式的不同又可分为(3)(D )和(4)(D )。
●20100614期末考试复习专题
注:本次作业所有的练习均要有错误提示,如:找不到相应文件提示、空间不足提示等。
每一个操作都尽量写成一个自定义函数。
✧文件读入输出相关
在E盘下建立文件in.txt文件(自己设计数据),同时在E盘下建立out.txt 文件,将读入的数据输出到out.txt文件里。
✧顺序表相关练习
1、在E盘下建立数据文件in.txt(数据乱序),建立顺序表,将in.txt的数据初始化顺序表,将顺序表中数据按从小到大的顺序排序。
显示顺序表中数据。
2、建立顺序数据文件in1.txt,in2.txt如下:
In1.txt:12345678910
In2.txt:246810121416
建立顺序表:sj1,sj2,sj3,用in1.txt中的数据初始化sj1,用in2.txt中的数据初始化sj2,初始化sj3的长度为sj1+sj2长度。
将sj1中的数据存入sj3中。
分三个自定义函数分别进行以下操作:
(1)将sj2中的数据插入sj3中,使sj3仍按从小到大的顺序排列;
(2)将sj3中的数据在sj2中查找,不存在的数据从sj3表中删去;
(3)将sj2中的数据在sj3中查找,若有相同的数据,在sj3中删去,若sj3中不存在的,则插入到sj3中。
✧结构体相关练习
1、建立数据文件in.txt(乱序),建立双向空链表,用in.txt中数据初始化双向链表,从两个方向显示链表数据。
2、建立数据文件in.txt(乱序),建立空链表,用in.txt中的数据初始化链表
(1)对链表排序;
(2)读入数据X,将X插入到相应位置,使链表仍保持升序。
(3)显示链表长度及数据。
3、建立升序数据文件in.txt,建立空链表,并用in.txt中数据对链表初始化,读入X,将第X位置上的数据删去,显示链表长度及数据。
链表栈相关练习
建立空链表,从链盘读入以下操作命令,并进行相关操作:
(1)push X:将数据X压入栈顶;
(2)pop:将栈顶数据弹出并输出,若栈为空则提示;
(3)empty:返回true,表示栈空,返回false,表示栈未空;
(4)display:显示栈中数据。
提示:以上每个练习都是各个数据结构的相关操作,同学们可以将每个操作做成一个自定义函数,在主函数里进行一个菜单说明(如:输入“1”进行初始化操作,输入“2”进行排序操作等),把各个操作集合到一个程序里进行。