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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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);

C语言试题的更多相关文章

  1. C语言试题(标准答案)

    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.1 ...

  2. 第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题

    第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 1.原题呈现 2.试题答案 3.题目解析 因博客园无法打出公式等,所以给你们几个小编推荐的链接去看看,在这里小编深感抱歉! https ...

  3. C语言程序试题

    一个无向连通图G点上的哈密尔顿(Hamiltion)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路劲.一种求解无向图上哈密尔顿回路算法的基础实现如下: 假设图G存 ...

  4. C语言面试

    最全的C语言试题总结 第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被 ...

  5. NOIP2017普及组初赛试题及答案

    普及组C++语言试题 一.单项选择题(共 20 题,每题 1.5 分,共计 30 分:每题有且仅有一个正确选项) 1.在 8 位二进制补码中,10101011 表示的数是十进制下的( ). A. 43 ...

  6. NOIP2018初赛 解题报告(C++普及)

    第24届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 竞赛时间:2018 年 10 月 13 日 14:30~16:30 选手注意: 1.试题纸共有 7 页,答题纸共有 2 页,满分 100 ...

  7. NOIp2018普及组初赛试卷

    第二十四届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)

  8. NOIP2018初赛普及组原题&题解

    NOIP2018初赛普及组原题&题解 目录 NOIP2018初赛普及组原题&题解 原题&答案 题解 单项选择题 第$1$题 第$2$题 第$3$题 第$4$题 第$5$题 第$ ...

  9. 李洪强iOS经典面试题134-C语言

    可能碰到的iOS笔试面试题(4)--C语言   C语言,开发的基础功底,iOS很多高级应用都要和C语言打交道,所以,C语言在iOS开发中的重要性,你懂的.里面的一些问题可能并不是C语言问题,但是属于计 ...

随机推荐

  1. Java经典算法之折半查找(二分法)

    采用二分法时,数据应是有序并且不重复的 与小时候玩的猜数游戏是一样的,会让你猜一个他所想的1~100之间的数,当你猜了一个数后,他会告诉你三种选择中的一个,比他想的大,或小,或猜中了,为了能用最少的次 ...

  2. GG_Model 类库与数据库表对应建立实体类

    3.4.GG_Model 类库与数据库表对应建立实体类 我这里不教大家写代码,直接用TT模板自动生成,省去写代码的麻烦. A. 三个文件MysqlDbhelper.ttinclude .mysqlMa ...

  3. c++ swap函数

    swap(a,b)也就是把a和b的值互换. 头文件:#include<algorithm>,swap要加using namespace std:

  4. hdu5926Mr. Frog’s Game

    Mr. Frog's Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  5. Math teacher's homework

    Title:[Math teacher's homework] Description 题目大意:给你n个数m1,m2...mn,求满足X1 xor X2 xor ... xor Xn=k,0< ...

  6. 【转】mysql INSERT的用法

    转自:http://www.cnblogs.com/ggjucheng/archive/2012/11/05/2754938.html insert的语法 INSERT [LOW_PRIORITY | ...

  7. JS获取到时间转换成字符串类型

    JS获取到时间格式为:/Date(1479279579047)/ 提供一个函数可将其转换为“yyyy-MM-dd”和“yyyy-MM-dd hh:mm:ss” //时间日期转换成string func ...

  8. Python之绘图和可视化

    Python之绘图和可视化 1. 启用matplotlib 最常用的Pylab模式的IPython(IPython --pylab) 2. matplotlib的图像都位于Figure对象中. 可以使 ...

  9. MySQL 帮助类 MySQLHelper

    /// <summary> /// MySqlHelper操作类 /// </summary> public sealed partial class MySQLHelper ...

  10. PHP fSQL Tutorial

    PHP fSQL Tutorial This tutorial is designed to give a brief overview of the PHP fSQL API since versi ...