C语言试题(标准答案)

一.单选题(每小题2分,共20小题40分)

1.1-1.5    B D A C B                1.6-1.10    C A D B C

1.11-1.15  A D D C B                1.16-1.20   D A B C A

二.填空题(每空2分,共10空20分)

2.1        52        。

2.2       10         ;       12         ;       120        。

2.3       110        。

2.4       0x801005   ;       0x801014   。

2.5       2          ;       5          。

2.6       自动       。

三.简答题(每小题4分,共5小题20分)

3.1全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?

答:可以。(2分)

在不同的C文件中以static形式来声明同名全局变量。(2分)

3.2引用与指针有什么区别?

答:(1) 引用必须被初始化,指针不必;(1分)

(2) 引用初始化以后不能被改变,指针可以改变所指的对象;(1.5分)

(3) 不存在指向空值的引用,但是存在指向空值的指针。(1.5分)

3.3堆栈溢出一般是由什么原因导致的?

答:没有回收垃圾资源。(或答:没有释放无用的资源。)(4分)

3.4队列和栈有什么区别?

答:队列先进先出,(2分)栈后进先出。(2分)

3.5编译工作区的时候,往往会遇到错误码为“0x00000002”的编译错误,查找相应的错误描述却没有找到,出现此种情况的原因是什么?应该怎样处理?

答:原因是编译过程产生了不可预知的错误。(2分)

解决办法有:尝试重启电脑或禁用分布式编译采用单机编译。(2分)

四. 编程题(每小题10分,共2小题20分)

4.1编写函数实现一个整数的逆序输出,整数由参数n表示,例如n=1234,则输出4321,要求不可以使用任何C库函数,函数原型如下:void inv(int n);

答题评分标准:

1、 考虑了负数的情况:3分

2、 使用了临时变量:2分

3、 有打印并打印格式正确:1分

4、 有相应的注释:1分

5、 结果完全正确:3分

参考程序:

void inv(int n)

{

int tmpNum = n;   // 使用了临时变量:2分

if (tmpNum < 0)   // 考虑了负数的情况:3分

{

// 负数

k = 0;

tmpNum = -tmpNum;

printf("-");

}

while(tmpNum)

{

printf("%d", tmpNum%10);  // 打印正确:1分

tmpNum = tmpNum / 10;

}

}

4.2求2~2000的所有素数并打印在屏幕上,有足够的内存,要求尽量快。

答题评分标准:

1、 保存找到的素数,使用全局数组和全局变量而非临时申请的空间:3分

2、 判断素数的关键循环:3分

3、 有打印并打印格式正确:1分

4、 有相应的注释:1分

5、 结果完全正确:2分

参考程序:

int findvalue[2000] = {2};  // 使用了全局数组和全局变量:3分

static int find = 1;

bool adjust(int value);

void GetPrimeNumbers(void)

{

for (int i = 2; i <= 2000; i++)

{

if (adjust(i))      // 有打印判断并打印语句正确:1分

{

printf("%d ", i);

}

}

}

bool adjust(int value)

{

assert(value>=2);

if (value == 2)

{

return true;

}

for (int i = 0; i < find; i++)    // 判断素数的关键循环:3分

{

if (value % findvalue[i] == 0)

{

return false;

}

}

findvalue[find++] = value;

return true;

}

时间: 2024-10-10 22:28:46

C语言试题(标准答案)的相关文章

DB2系统管理试题标准答案

1. 如果需要创建一个表,并把表中的索引数据和其他数据分开存储,则应该 A.建立两个SMS表空间分别存储索引数据和其他数据 B.建立两个DMS表空间分别存储索引数据和其他数据 C.建立一个DMS表空间存储索引数据,再建立一个SMS表空间存储其他数据 D.建立一个SMS表空间存储索引数据,再建立一个DMS表空间存储其他数据    2.创建一个DMS类型的表空间,可以使用以下哪两种文件系统对象作为容器? A.目录 B.文件 C.DEVICE    3.如果用户在SQL语句中没有指定数据库对象的SCH

这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题

这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题. 一.Linux操作系统知识 1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 2.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解? 3.企业中Linux服务器系统分区标准是什么?(以硬盘为300G,内存16G为例) 4.某一天突然发现Linux系统文件只读,该怎么办呢?完整操作步骤. 5.安装一台系

JAVA可能问的几个面试题问题及问题的标准答案

问题一:你希望工作环境是怎样的? 标准答案:我对环境没有苛求,我会努力适应环境的. 注:此问题是在测试你的求职心态,是以自己为中心还是以工作为中心. 问题二:你觉得自己有哪些缺点? 标准答案:说一些对这个职位无关紧要的小缺点吧,或者说自己的“缺点”是没有工作经验. 注:此问题极为阴险,让你自己说出缺点,省得他们费力面试了,大家千万不要上当,真的列数自己的 缺点. 问题三:提一些令你尴尬的问题,比如:你专业课怎么成绩这么差呀?你英语怎么还没过六级呀? 标准答案:见机行事吧……这些问题的借口应该事先

java面试题及答案java面试题及答案

java面试题及答案(基础题122道,代码题19道) JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始

Linux面试题汇总答案

转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点 来标识.4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块.5. 链接分为: 硬链接 和 符号链接 .6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息.7. 某文件的权限为:d-rw-_r--_r

Linux面试题及答案(转)

一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点 来标识.4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块.5. 链接分为: 硬链接 和 符号链接 .6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息.7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属

面试题收集-java面试题及答案(基础题122道,代码题19道)

JAVA相关基础知识1.面向对象的特征有哪些方面?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派

2019最新iOS面试题及答案

1. Object-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-C的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系. 2. import 跟#include 又什么区别,@class呢, #import<> 跟 #import"&qu

阿里Jvm必问面试题及答案

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译.Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性. Java内存结构? <阿里Jvm必问面试题及答案> 方法区和对是所有线程共享的内存区域:而java栈.本地方法栈和程序员计数器是运行是线

非常全的linux面试笔试题及答案

非常全的linux面试笔试题及答案 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点来标识.4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块.5. 链接分为: 硬链接 和 符号链接 .6. 超级块包含了i节点表 和 空闲块表等重要的文件系统信息.7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八