C语言试题
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语言试题的更多相关文章
- 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 ...
- 第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题
第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 1.原题呈现 2.试题答案 3.题目解析 因博客园无法打出公式等,所以给你们几个小编推荐的链接去看看,在这里小编深感抱歉! https ...
- C语言程序试题
一个无向连通图G点上的哈密尔顿(Hamiltion)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路劲.一种求解无向图上哈密尔顿回路算法的基础实现如下: 假设图G存 ...
- C语言面试
最全的C语言试题总结 第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被 ...
- NOIP2017普及组初赛试题及答案
普及组C++语言试题 一.单项选择题(共 20 题,每题 1.5 分,共计 30 分:每题有且仅有一个正确选项) 1.在 8 位二进制补码中,10101011 表示的数是十进制下的( ). A. 43 ...
- NOIP2018初赛 解题报告(C++普及)
第24届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 竞赛时间:2018 年 10 月 13 日 14:30~16:30 选手注意: 1.试题纸共有 7 页,答题纸共有 2 页,满分 100 ...
- NOIp2018普及组初赛试卷
第二十四届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)
- NOIP2018初赛普及组原题&题解
NOIP2018初赛普及组原题&题解 目录 NOIP2018初赛普及组原题&题解 原题&答案 题解 单项选择题 第$1$题 第$2$题 第$3$题 第$4$题 第$5$题 第$ ...
- 李洪强iOS经典面试题134-C语言
可能碰到的iOS笔试面试题(4)--C语言 C语言,开发的基础功底,iOS很多高级应用都要和C语言打交道,所以,C语言在iOS开发中的重要性,你懂的.里面的一些问题可能并不是C语言问题,但是属于计 ...
随机推荐
- vbnet 进程监控,监控Acad开启的数量,并且添加到开机启动
1# 自定义函数,添加到注册表 Public Sub StartRunRegHKLM() REM HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Micro ...
- POJ 2187 凸包+旋转卡壳
思路: 求个凸包 旋转卡壳一下 就求出来最远点对了 注意共线情况 也就是说 凸包如果有一堆点共线保留端点即可 //By SiriusRen #include <cmath> #incl ...
- linux C编程 gdb的使用
linux C编程 gdb的使用 通常来说,gdb是linux在安装时自带的,在命令行键入"gdb"字符并按回车键会启动gdb调试环境. 1.gdb的基本命令 命令 说明 file ...
- WebApi实现IHttpControllerSelector问题
一.让Web API路由配置也支持命名空间参数/// <summary> /// controller /// 选择器 /// </summary> ...
- leetcode343 Integer Break
思路: 将n不断拆分3出来直至其小于或等于4. 实现: class Solution { public: int integerBreak(int n) { ] = {, , , }; ) retur ...
- Javascript DOM 编程艺术(第二版)读书笔记——DOM基础
1.DOM是什么 D=document(文档) O=object(对象) M=Model(模型) DOM又称节点树 一些术语: parent(父) child(子) sibling(兄弟) ...
- Win7 下 PB (PowerBuilder) Insert Control 崩溃的解决办法
环境: WIN7 x86 PB8.0, x64系统目录不同,不过也可以试试 Insert -> OLE... -> Insert Control - 崩溃 如果网上提供的办法解决不了你 ...
- Redis应用场景[分享]
Redis应用场景[分享] 1.取最新N个数据的操作2.排行榜应用 取TOPN操作3.需要精确设定过期时间的应用4.计数器应用(文章阅读数.评论数)5.Uniq操作,获取某段时间所有数据排重值6.实时 ...
- 从Element.getElementsByTagName方法说起
一.getElementsByTagName方法: 我们先看几个解释:1)W3C:getElementsByTagName() 方法可返回带有指定标签名的对象的集合.没有说明返回值的具体类型.2)菜鸟 ...
- Redis系列(十一)--阿里云开发规范
本文主要介绍阿里云Redis的开发规范,主要从以下几个方面说明: 1.键值设计 2.命令使用 3.客户端使用 4.相关工具 一.键值设计 1.key name设计 1).[建议]:可读性和可管理性 以 ...