C语言试题

[说明]:

1、本试题中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用;

2、如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐,X86(80586)CPU处理器(32位小字节序处理器);

3、试卷需要回收再利用,请在答题纸上答题;

4、本试题满分为100分,答题时间为120分钟。

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

1、SVN典型工作流程中,在对工作对象做出修改前,先要进行(  )操作。

A. checkout    B. update    C. revert    D. commit

2、修改处理问题的时候,如果是平台共性问题,应在其他平台上对这个问题进行(  )处理。

A.同时        B.同理      C.同仁     D.同步

3、修改代码时添加注释的Qicker快捷命令是?

A. mbg    B. abg    C. dbg    D. mbe

4、通过什么工具可以获取一台未知版本的手机的版本号?

A.SourceInsight    B.Eclipse    C.META    D. Catcher

5、新增文件时添加文件头部声明的Qicker快捷命令是?

A. func    B. file    C. fi    D. hi

6、一个32位的机器,该机器的指针是多少位?

A. 8      B. 16     C. 32   D. 64

7、以下关于const关键字描述哪个是不正确的?

A. 表示常量和可以修改的变量; B. 可以修饰参数,作为输入参数;

C. 修饰函数,防止以外的改动; D. 修饰类的成员函数,不改变类中的数据成员。

8、比较如下两段代码:

Typedef struct EXAMPLE_STRU

{

unsigned int valid: 1;

unsigned int degree: 2;

PERSON person;

unsigned int set_flg: 1;

} EXAMPLE;

typedef struct EXAMPLE_STRU

{

unsigned int valid: 1;

unsigned int degree: 2;

unsigned int set_flg: 1;

PERSON person ;

} EXAMPLE;

左右两边定义的结构所占用的内存空间相差几个字节?

A. 0    B. 1    C. 2    D. 4

9、如下哪个方法是用来保护可重入函数的全局变量的?

A. 开中断    B. 互斥锁    C. 管道    D. 消息队列

10、下面关于函数的描述不正确的是?

A. 一个函数仅完成一件功能。 B. 为简单功能编写函数。

C. 函数的规模没有限制,写多少行都可以。 D. 不要设计多用途面面俱到的函数。

11、如下哪个例子的设计中不适合使用关键字volatile?

A. 手机电源键 B. 硬件时钟

C. 多线程中被多个任务共享的变量 D. 3D渲染引擎

12、优化函数结构时,下面描述的原则哪个是不正确的?

A. 不能影响模块功能的实现。

B. 仔细考查模块或函数出错处理及模块的性能要求并进行完善。

C. 通过分解或合并函数来改进软件结构。

D. 提高函数间接口的复杂度。

13、正式的软件产品中应该把断言及其他调测开关关掉是为了?

A. 防止无法重启系统 B. 减少程序代码空间

C. 提高系统的稳定性 D. 加快软件运行速度

14、如下关于效率的描述不正确的是?

A. 不应花过多的时间拼命地提高调用不很频繁的函数代码效率。

B. 尽量减少循环嵌套层次

C. 要追求紧凑的代码

D. 尽量用乘法或其它方法代替除法,特别是浮点运算中的除法

15、有如下程序代码:

#define OK              0

#define ERR             1

#define ERROR           (-1)

#define BUFFER_SIZE     256

char *GetMemory(unsigned long ulSize)

{

char *pcBuf = NULL;

pcBuf = (char *)malloc(ulSize);

if(NULL == pcBuf)

{

return ERROR;

}

return pcBuf;

}

void Test(void)

{

char *pszBuf = NULL;

pszBuf = GetMemory(BUFFER_SIZE);

if(NULL != pszBuf)

{

strcpy(pszBuf, "Hello World!\r\n");

printf(pszBuf);

free(pszBuf);

}

return;

}

如下描述正确的是:

A、pszBuf指向的内存不能超过255

B、GetMemory函数的异常分支返回了-1,是一个非法地址

C、GetMemory中异常分支没有释放空间

D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放

16、如下关于测试维护的描述正确的是?

A. 可以通过“试”来解决问题 B. 清理、整理或优化后的代码只要经过测试即可

C. 通过手工备份的方式实现对代码版本进行维护 D. 代码版本升级要经过严格测试

17、如下宏定义不存在风险的是?

A. #define RECTANGLE_AREA( a, b ) ((a) * (b))

B. #define RECTANGLE_AREA( a, b ) (a) * (b)

C. #define RECTANGLE_AREA( a, b ) (a * b)

D. #define RECTANGLE_AREA( a, b ) a * b

18、如下代码:

#define SQUARE( a ) ((a) * (a))

int a = 5;

int b;

b = SQUARE( a++ );

执行完之后a和b的值是多少?

A. a = 6 b = 25 B. a = 7 b = 25 C. a = 7 b = 30 D. a = 7 b = 36

19、有如下代码:

#define SQUARE( a ) ((a) * (a))

int a = 5;

int b;

使用宏的方法正确符合规范的是?

A. b = SQUARE( a++ ); B. b = SQUARE( ++a );

C. b = SQUARE( a ); a++; D. b = SQUARE( (a)++ );

20、有下列程序代码:

#include

void main()

{

union

{

int     k;

char    i[2];

}*s, a;

s = &a;

s->i[0] = 0x19;

s->i[1] = 0x18;

printf("%x\n", a.k);

}

输出结果是?

A. 不可预知 B. 1819 C. 1918 D. 180019

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

1、设有以下说明和定义:

typedef union

{

long i;

int k[5];

char c;

} DATE;

struct data

{

int cat;

DATE cow;

double dog;

} too;

DATE max;

则语句 printf("%d", sizeof(struct date) + sizeof(max)); 的执行结果是:_______。

2、请写出下列代码的输出内容:______;______;______。

#include

int main(void)

{

int  a, b, c, d;

a = 10;

b = a++;

c = ++a;

d = 10*a++;

printf("%d ",b);

printf("%d ",c);

printf("%d ",d);

return 0;

}

3、写出下列代码的输出内容:______。

#include

int inc(int a)

{

return(++a);

}

int multi(int*a, int*b, int*c)

{

return (*c = *a**b);

}

typedef int(FUNC1) (int in);

typedef int(FUNC2) (int*, int*, int*);

void show(FUNC2 fun, int arg1, int*arg2)

{

FUNC1 p = &inc;

int temp = p(arg1);

fun(&temp, &arg1, arg2);

printf("%dn", *arg2);

}

main()

{

int a;  //局部变量a为0;

show(multi, 10, &a);

return 0;

}

4、有如下代码:

unsigned char *p1;

unsigned long *p2;

p1=(unsigned char *)0x801000;

p2=(unsigned long *)0x810000;

请问:p1 + 5 =        ;p2 + 5 =       。

5、写出下列代码的输出:          ;          。

main()

{

int a[5] = {1, 2, 3, 4, 5};

int *ptr = (int *)(&a+1);

printf("%d", *(a+1));

printf("%d", *(ptr-1));

}

6、Heap是堆,Stack是栈,Stack的空间由操作系统自动分配/释放,Heap的空间      分配/释放,Stack空间有限,Heap是很大的自由存储区。

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

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

2、引用与指针有什么区别?

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

4、队列和栈有什么区别?

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

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

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

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

void GetPrimeNumbers(void);

原文:http://www.cnblogs.com/lexuele/p/4691544.html

c语言文件操作可重入,C语言试题相关推荐

  1. 按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...

    学生成绩管理系统(c语言结构体以及文件操作)实验报告精选 C程序设计 实验报告 编号: 姓名院系学号任课教师于萧指导教师实验地点实验时间实验名称文件操作同 组 人无预习报告(对实验主要内容的认识)得分 ...

  2. C语言文件英文,c语言文件操作(国外英文资料).doc

    c语言文件操作(国外英文资料) 韧仔欠鳖佳刀寺男拒姚友畔庶炳告舞漾容验熬销避暇庆茅奠哑栓障于筏茸兔厘万寿日击悯汤糠毛塞丈河汤忧寸绞忧择曹酪泛磋牵卧国叛株咙麓独檀烈钎熬酪夫栓线夹蔗屏矾疙陋柱狂茅悬匈队八 ...

  3. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  4. 基于存储的C语言文件操作常规问题分析(文本文件与二进制文件)

    基于存储的C语言文件操作常规问题分析(文本文件与二进制文件) 问题描述 文本文件与二进制文件 数据写入文本乱码问题 fopen和open 流式文件操作常用函数 直接I/O文件操作常用函数 问题描述 我 ...

  5. c语言文件资源,C语言文件操作

    C语言文件操作 1第八章 文件v文件系统 概述v标准文件操作2.文件 文件是存储在外部存储介质上的信息的集合.每个文件有唯一的文件名(主名.后缀)来标识. 计算机实现按名对文件进行读.写等有关操作.广 ...

  6. C语言——文件操作(2)文件的读写操作

    之前,我讲解了文件的基本情况与读写模式,看到这篇博客的小伙伴们先参考这篇博客: C语言--文件操作详解(1)_ 接下来,我会继续讲解文件操作的第二大步:文件读/写操作. 目录 A.文件的顺序读写 一. ...

  7. Go语言如何实现可重入锁?

    前言 哈喽,大家好,我是asong.前几天一个读者问我如何使用Go语言实现可重入锁,突然想到Go语言中好像没有这个概念,平常在业务开发中也没有要用到可重入锁的概念,一时懵住了.之前在写java的时候, ...

  8. C语言 文件操作的头文件

    C语言 文件操作的头文件 计算机文件是以计算机硬盘为载体存储在计算机上的信息集合,是存储在某种长期储存设备上的一段数据流.在C语言中用一个指针变量指向一个文件,这个指针称为文件指针.通过文件指针就可对 ...

  9. [C语言]文件操作函数

    [C语言]文件操作函数 ​ 本文主要学习**fopen,fclose,fgetc,fgets,fputc,fputs,fwrite,fread,feof**这几个文件操作函数. ​ 以上函数,需要导入 ...

  10. c语言 freopen txt_C语言文件操作函数freopen详解

    C语言文件操作函数freopen详解 今天做USACO 用到了文件的操作. 之前做USACO只是格式化的.些 写 freopen("xxx.in","r",st ...

最新文章

  1. 启示—地点IT高管20在职场心脏经(读书笔记6)
  2. ASP编程常用的15个非常有用的代码及用法
  3. boost::hana::remove_at用法的测试程序
  4. java 导出excel二维表,如何轻松将EXCEL二维统计表转为数据清单?
  5. 列出最少8种开源软件_您的公司可以支持和维持开源的8种方式
  6. 计算机组成原理的实验节拍,一种计算机组成原理的实验装置
  7. linux过滤重复字符串,linux – 从制表符分隔文件中删除重复的单词/字符串
  8. 剑指_5替换空格(Python)
  9. MongoDB数据同步工具mongosync
  10. Linux内核4.14版本——mmc框架——mmc硬件总线扫描流程(以sd card为例)
  11. python日历_用python做日历
  12. 网络安全等级保护合规一览
  13. flask入门和进阶五(关注功能的实现Followers)
  14. 《狂飙》壁纸太帅,Python自动切换太酷(8)
  15. ArcGIS GeoEvent 使用教程(二)
  16. 【考研数学】数一-数学概念anki卡片合集-547张-23000字-22电子科大考研上岸整理
  17. mysql列插入数据
  18. CentOS安装MySql和配置
  19. iMAG(爱码哥)新建应用
  20. 软件开发基于JavaScript实现快速转换文本语言

热门文章

  1. 01电子记账本-微信小程序
  2. VLAN tag格式
  3. 用python根据最新的汇率,假设你要出国留学要换外币,输入一定数量的人民币,比如1000元人民币, 按照中国银行的现钞卖出价,输出可换到对应的加元和澳元分别是多少。
  4. Cts框架解析(19)-设备状态的分类以及恢复模式的分类
  5. 计算机声卡驱动程序,教大家如何安装声卡驱动【详细步骤】
  6. java代码压缩文件
  7. 1-学习GPRS_Air202(Air202开发板介绍)
  8. RBAC模型整合数据权限
  9. 为什么说程序员的前三年不要太看重工资水平?
  10. vue的基础总结(vue的非脚手架总结)