77范文网 - 专业文章范例文档资料分享平台

c语言答案

来源:网络收集 时间:1970-01-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C语言基础

一、选择题(每题3分)

1.指针运算:int *p1, *p2; int value;

p1 = (int *)0x500; p2 = (int *) 0x518; value = p2-p1;问:value的值? A 8 B 4 C 2 D 6 答案:D

2、void main(void)

{ char x = 127; char a = x + 1; long b = x + 1;

printf(\}请问输出多少 _____

A: 128, 128 B: -128, -128 C: 128, -128 D: -128, 128

答案:D

3.下面堆(Heap)与栈(stack)的差别叙述不正确的是

A) Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。 B) C中的malloc函数分配的内存空间即在堆上 C)局部非静态变量和函数的入参都在栈中分配。

D) 程序中定义变量尽可能从堆中分配,因为堆的效率比栈高

答案:D

4. 定义如下变题和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是

for(i=0;i<3;i++)printf(“%d”,x[i][0]);

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9 答案:B

5.关于sizeof下列哪些说法是正确的(A)

A)sizeof运算符在编译阶段执行。 B)sizeof的参数不可以是常量。 C)sizeof运算符在程序运行阶段执行。 D)sizeof运算符与系统字节对齐没有关系。

6.关于strlen和sizeof,下列哪些说法是正确的(B) A)sizeof函数是在程序运行阶段执行。 B)strlen函数是在程序运行阶段执行。 C)sizeof函数的结果跟字节序有关系。 D)strlen函数的结果跟字节对齐有关系。

7.关于编译的说法哪些是正确的(AB)

A)#if #endif等标志符在预编译阶段处理。

B)宏定义在预编译阶段就已进行分析并替换到程序中。 C)全局变量定义在堆中。 D)全局变量定义在栈中。

8.请问编译器将1##2理解为_C__

A、\、'1'和'2' C、12 D、1>>2

9.二维整形数组a[][]中,a[i]代表一维数组名,本身不占实际的内存单元,也不存放a数组

中各个元素的值。(B) A 正确 B 错误

10.struct s

{

int x, *y; } *p;

int data[5]={0, 1, 2, 3, 4}; struct s array[5]= {

0, &data[0], 1, &data[1], 2, &data[2], 3, &data[3], 4, &data[4] };

void main ( ) {

p=&array[0];

printf(\}

程序输出结果为:( B) A. 0 B. 1 C. 2 D. 3 E. 4

11.如下题,请问tmp是什么类型变量? C

typedef int (*test) ( float * , float*)

test tmp;

(a) 一个函数的指针(此函数有两个float指针形参) (b) int

(c) 一个函数的指针(此函数有两个float指针形参,且返回值为int) (d) 语法错

12.若已建立如下图所示的单向链表结构 ,

在该链表结构中,指针 p 、 s 分别指向图中所示结点,则不能将 s 所指的结点插入到链表末尾仍构成单向链表的语句组是 A A) p =p->next; s->next=p; p->next=s; B) p =p->next; s->next=p->next; p->next=s; C) s->next=NULL; p=p->next; p->next=s; D) p=(*p).next; (*s).next=(*p).next; (*p).next=s; 13.执行以下程序段后,m的值为 A int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A) 15 B) 14 C) 13 D) 12

14.下列说法正确的是:( D )

A、全局变量定义在可被多个.C文件包含的头文件中.

B、char* (*p)(int); 声明了一个参数为int的函数指针,它的返回值是char类型。 C、char a[5]; char *p; 则我们可以这样赋值a = p;

D、我们可以这样声明一个int型数组的指针 int (*pa)[5]. 15.下面程序打印出的结果是:result is _ . B #define MUL(x) x*2 #define ADD(x) x++

int main(int argc, char* argv[])

{

int a = 5; int b = 2; int c = 0; c = MUL(ADD(a+b)); printf(\ return; }

A, 11 B, 9 C, 14 D, 16 16.以下程序运行后,输出结果是:_____ B________ main() {

static char a[]=\ char *p1,*p2; int k; p1=a; p2=b;

for(k=0;k<=7;k++) {

if (*(p1+k)==*(p2+k)) {

printf(\c\

} }

printf(\}

A) ABCDEFG B) CDG C) abcdefgh D) abCDefGh

17.给出以下定义: char acX[ ]= \

char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( C )

A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度 18..在函数内部定义的变量(静态变量、寄存器变量等特殊变量除外)的内存是在栈内存中,所以在定义函数内部的变量的时候,一定要保证栈不能够溢出。如果临时变量

占用空间较大,应该使用内存申请的方式,这样该变量指向的内存就是在堆内存中了。A A. 正确 B. 错误 19.设有以下宏定义:

#define N 3

#define Y(n) ((N+1)*n) /*这种定义在编程规范中是严格禁止的*/ 则执行语句:z = 2 * (N + Y(5 + 1));后,z的值为( C ) A) 出错 B) 42 C) 48 D)54

20. 0x12345678 在采用BigEndian中内存的排列顺序是__A____,在采用LittleEndian内存中的排列顺序是___C____.

(答案从左到右内存地址依次增加)

A.12 34 56 78 B.34 12 78 56 C.78 56 34 12 D.56 78 12 34 二、填空题(每题4分)

1. typedef union {

long a; char b[6];

}un; sizeof(un) = __8___

2.在一个双向链表中,若指针p所指结点不是首结点,也不是尾结点,则把p从链表中删除,

应执行语句___p->prev->next = p->next__________;

___p->next->prev = p->prev_________ ; ___free(p);_______________ __。

链表的数据结构如下: struct LINK{ char data; struct LINK *prev; struct LINK *next; }

3.不同对齐方式下的结构大小,下面程序的输出结果是什么?

Typedef struct student1{

Char name[10]; Long sno; Char sex;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言答案在线全文阅读。

c语言答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/293308.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: