错题集

♀尐吖头ヾ 提交于 2019-12-29 20:36:17

1设有以下结构体类型说明和变量定义,则变量a在内存中所占的字节数是 。(VC环境中)
struct stud
{char num[6];
int s[4];
double ave;
}a;

标准答案:
32
我的答案
24
这个主要考的是结构体所占内存的相关内容
注:排列时要以最大字节数的类型为基准,来排列
不够的就补位。
此题最大字节数是8所以以8为基准第一排6+2
第二排8
第三排8
第四排8
所以一共占字节4*8=32.所以答案是32字节。
2.
对于两个类型相同的指针变量,不能进行( )运算?

A: +
B: -
C: =
D: ==

标准答案:A 您的答案:D
注两个指针变量不能相加。
3.
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。

A: 地址传递
B: 单向值传递
C: 由实参传给形参,再由形参传回实参
D: 传递方式由用户指定

标准答案:B 您的答案:D .
4.
若fp是指向某文件的指针,且已经读到文件的末尾,则函数feof(fp)的返回值是( )

A: EOF
B: NULL
C: 0
D: 非零值

标准答案:D 您的答案:A
5.
以下关于return语句的叙述中正确的是( )

A: 一个自定义函数中必须有一条return语句
B: 一个自定义函数中可以根据不同情况设置多条return语句
C: 定义成viod类型的函数中可以有带返回值的return语句
D: 没有return语句的自定义函数在执行结束时不能返回到调用处

标准答案:B 您的答案:C .
6.
已知 int x=10, y=20, z=30; 以下语句执行后x, y, z的值是( )。
if(x>y)
z=x;x=y;y=z;

A: x=10,y=20,z=30 
B: x=20,y=30,z=30
C: x=20,y=30,z=10 
D: x=20,y=30,z=20

标准答案:B 您的答案:A .经典换值。********重点。
7.
若有以下定义,且0≤i<4,则不正确的赋值语句是_______.
int b[4][6], *p, *q[4];

A: q[i] = b[i];
B: p = b;
C: p = b[i]
D: q[i] = &b[0][0];

标准答案:B 您的答案:D .
8

语句int(*prt)();的含义是____________。

A: prt是一个指向一维数组的指针变量
B: prt是指向int型数据的指针变量
C: prt是指向函数的指针,该函数返回一个int型数据
D: prt是一个函数名,该函数的返回值是指向int型数据的指针

标准答案:C 您的答案:D
9.

若有以下定义,则说法错误的是( )。
int a=100,*p=&a ;

A: 声明变量p,其中*表示p是一个指针变量
B: 变量p经初始化,获得变量a的地址
C: 变量p只可以指向一个整形变量
D: 变量p的值为100

标准答案:D 您的答案:B
10.

下面判断正确的是____________。

A: char *a=“china”;等价于char *a; a=“china”;
B: char str[10]={“china”};等价于char str[10];str[]={“china”};
C: char *s=”china”;等价于char *s; *s=”china”;
D: char c[4]=”abc”,d[4]=”abc”;等价于char c[4]=d[4]=”abc”;

标准答案:A 您的答案:C
11.

下面不能正确进行字符串赋值操作的是( )。

A: char s[6]={“ABCDE”};
B: char s[5]={‘A’,'B’,'C’,'D’,'E’};
C: char *s;s=”ABCDE”;
D: char *s; scanf(“%s”,s);

标准答案:B 您的答案:C
12.

若有说明:char language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};
则表达式
language[1]>*language[3]比较的是______________。

A: 字符F和字符P
B: 字符串BASIC和字符串JAVA
C: 字符B和字符J
D: 字符串FORTRAN和字符串PASCAL

标准答案:C 您的答案:B 这个是字符数组只会取一个字符
13.

有以下定义和语句,则对a数组元素地址的正确引用为________________。
int a[2][3], (*p)[3];
p=a;

A: *(p+2)
B: p[2]
C: *(p[1]+1)
D: (p+1)+2

标准答案:C 您的答案:B
14.

若int (*p)[5];,其中,p是_______。

A: 5个指向整型变量的指针
B: 指向5个整型变量的函数指针
C: 一个指向具有5个整型元素的一维数组的指针
D: 具有5个指针元素的一维指针数组,每个元素都只能指向整型量

标准答案:C 您的答案:D
15.

以下正确的定义语句和赋值语句是_________。

A: int b[3][5],(*p)[3],(*q)[5];p=b;q=b;
B: float b[3][5],*p[3];p[0]=b[0];p[2]=*b+4;
C: double b[3][5],s[5][3],*q;q=b;s=q;
D: int b[10],*q;char *s;q=b;s=b;

标准答案:B 您的答案:A
16.

已有函数max(a,b),为了使函数指针变量p指向函数max,则下面选项中赋值方法正确的是( )。

A: p=max
B: *p=max
C: p=max(a, b)
D: *p=max(a, b )

标准答案:A 您的答案:D
17.

若有说明:int i, j=2,*p=&i;, 则能完成i=j赋值功能的语句是( )

A: i=*p
B: p=&j
C: i=&j
D: i=**p

标准答案:B 您的答案:A
18.

若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i<10)。

A: p[i]
B: ((a+i))
C: a[p-a]
D: *(&a[i])

标准答案:B 您的答案:C
19.

指针、数组名、函数名都是地址。
标准答案:Y 您的答案:N
这些名都是地址
20.

语句*–p;执行之后p指向的内存单元被改变。
标准答案:N 您的答案:Y
内存单元是不会改变的.
21.
*后跟指针名,表示该指针变量所指针地址的_____。
标准答案:
值&!@内容

您的答案:
数值

是值
22.

在C程序中,指针变量能够赋 地址 值或 ___________ 值。
标准答案:
NULL&!@空

您的答案:
空值

是NULL\空
23.

若两个指针变量指向同一个数组的不同元素,则可以进行减法运算和____运算。
标准答案:
赋值&!@关系

您的答案:
加法
指针变量不可以相加只可以相减和赋值。
24.

所有的函数调用前都必须进行函数原型说明。
标准答案:N 您的答案:Y
25.

若要“向文本文件尾增加数据”,在fopen函数中应使用的文件方式是( )。

A: “ab+”
B: “a”
C: “ab”
D: “a+”

标准答案:B 您的答案:D
二进制文本后面都有‘b’;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!