假设 sizeof(int) 的值为4,已知数组定义:int a[3]; 则sizeof(a[0])的值为______。
A.4
B.12
C.0
D.3
第1题:
以下不能定义为用户标识符的是()。A)Main B)_0C)_int D)sizeof
第2题:
已知: union { int i; char c; float a; }st;则sizeof(st)的值是______。
A.4
B.5
C.6
D.7
第3题:
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
下面一段程序从给定的数组b中找出值最小的元素,并输出该元素的数组下标、内存地址minaddr以及元素值本身。函数findmin负责在给定的数组中查找最小值,并返回最小值所在的内存地址,函数有三个参数:array是所要处理的数组;size是数组的大小;index负责从函数返回具有最大值的元素在数组中的数组下标。请填充空白,使其成为一个合乎要求的完整程序。
【程序】
//程序开始
include<iostream.h>
int *findmin(int *array, int size, int &index);
void main()
{
/****** 变量定义部分 ***********/
int b[10] = {34, 34, 23, 89, 1, 2, 13, 42, 5, 54};
(1);
int idx;
/******* 寻找最小值 ************/
minaddr = findmin(b, sizeof(b)/sizeof(int), idx);
/******* 输出最小值的有关信息 ************/
cout << "Min value index: "<<idx<<end1
<<"Min value address: "<<minaddr<<end1
<<"Min value: "<<(2)<<end1;
}
/******* 函数findmin的定义部分 ************
int *findmin(int *array, int size, int &index)
{
int min = 0;//max 是当前具有最小值的数组元素下标值
for(int i = 1;(3); i++)
{
if(array[i]<(4))
min = i;
}
(5);
return array + min;//返回最小值所在内存地址
}
第4题:
设有定义语句:int a[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是【 】。
第5题:
若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是( )
A.p=2 *(int *)malloc(sizeof(int));
B.p=(int*)calloc(2*sizeof(int));
C.p=(int*)malloc(2* sizeof(int));
D.p=2 *(int*)calloc(sizeof(int));
第6题:
有以下定义和语句,则sizeof(a) 的值是【 】,而sizeof(a,share)的值是【 】
struct date
{ int day;
int mouth;
int year;
union{int share1;
float share2;
}share;
}a;
第7题:
A.3
B.4
C.5
D.9
第8题:
经下列语句定义后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC机上的值分别为______。char x=65;float y=7.3;int a=100;double b=4.5;
A.2,2,2,4
B.1,2,2,4
C.1,4,2,8
D.2,4,2,8
第9题:
若有下面的说明和定义: union un { char s[10]; long d[3]; }ua; struet std { char c[10];double d;int a; union un vb; }a;则printf("%d\n", sizeof(struct std)+sizeof(union un));输出的值为______。
A.34
B.52
C.54
D.64
第10题:
第11题:
数组定义与赋初值语句如下:int[]a={1,2,3,4,5};则a[2]的值为()。
第12题:
3
4
5
9
第13题:
已知有变量datal定义如下: union data { int i; char ch; float f; }datal; 则变量datal所占的内存存储空间可表示为(57)。
A.sizeof(int)
B.sizeof(char)
C.sizeof(float)
D.SiZCOf(mt)+sizeof(char)+sizeof(float)
第14题:
● 已知有变量 data1 定义如下:
union data
{ int i;
char ch;
float f;
} data1;
则变量 data1 所占的内存存储空间可表示为 (57) 。
(57)
A. sizeof(int)
B. sizeof(char)
C. sizeof(float)
D. sizeof(int)+sizeof(char)+sizeof(float)

第15题:
若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A.p=2*(int*)malloc(sizeof(int));
B.p=(int*)mall0c(2*sizeof(int));
C.p=(int*)malloc(2*2);
D.p=(int*)calloc(2,sizeof(int));
第16题:
设int a[4];int *p=a,则sizeof (p)和sizeof (a)的值分别是______ 。
A.4和4
B.16和4
C.16和16
D.4和16
第17题:
有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。( )
第18题:
有以下定义和语句,则sizeof(a.share)的值是( )。
struct date
{ unsigned int day;
unsigned int mouth;
unsigned int year;
union{int share1;
float share2;
}share;
}a;
第19题:
下列x的值是int x;x= sizeof 2.25*4;
第20题:
若有如下定义和声明: struct s { int m;char ch;double x; union t {char a[6];int b[3];}tt;}ss; 则sizeof(struets)的值是( )
A.6
B.14
C.17
D.20
第21题:
试题二(共15分)
阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。
【说明1】
设在某C系统中为每个字符型数据分配1个字节,为每个整型(int)数据分配4个字节,为每个指针分配4个字节,sizeof(x)用于计算为x分配的字节数。
【C代码】
#include <stdio.h>
#include <string.h>
int main()
{ int arr[5]={10,20,30};
char mystr[]="JustAtest\n";
char *ptr= mystr;
printf("%d%d%d\n", sizeof(int),sizeof(unsigned int),sizeof(arr));
printf("%d%d\n",sizeof(char),sizeof(mystr));
printf("%d%d%d\n",sizeof(ptr),sizeof(*ptr),strlen(ptr));
return 0;
}
【问题1】(8分)
请写出以上C代码的运行结果。
【说明2】
const是C语言的一个关键字,可以用来定义“只读”型变量。
【问题2】(4分)
(1)请定义一个“只读”型的整型常量size,并将其值初始化为10;
(2)请定义一个指向整型变量a的指针ptr,使得ptr的值不能修改,而ptr所指向的目标变量的值可以修改(即可以通过ptr间接修改整型变量a的值)。
注:无需给出整型变量a的定义。
【问题3】(3分)
某C程序文件中定义的函数f如下所示,请简要说明其中static的作用,以及形参表“const int arr[]”中const的作用。
static int f(const int arr[])
{
/*函数体内的语句省略*/
}
【问题1】
4 4 20
1 11
4 1 10
【问题2】
(1)const int size=10;或int const size=10,
(2)int*const ptr=&a;
【问题3】
static的作用:说明f是内部函数(或局部函数),只能在本文件中调用它。
const的作用:在函数f中不能修改数组元素的值,若修改,编译时会报错。
第22题:
若有定义inta[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof()/sizeof(a[0])的值为()
第23题:
设有数组定义语句:inta[10];若要将这些元素值保存在磁盘中,以下错误的形式是()
第24题: