一、选择题(每题1分,总计8)
1.在Win2K下,32C语言程序中有如下类型的数据,其在存储器中占的字节数为(D
struct lpa
{
  char a:1;
  char b:5;
  int c;
  char m;
};
A6    B7    C9    D12
2.下列代码中对指针的操作正确的有( B
#define    MAX    10
A
int fun( void)
{
  char *a=NULL;
char *b=NULL;
  a=malloc( sizeof(char)* MAX);
  b=a;
  free(a);
  if(b!=NULL)
*b=’0’;
……
  return 0;
}
B
int fun(void)
{
  char *a=NULL;
  char *b=NULL;
  a=malloc( sizeof(char)* MAX);
  b=a;
  ……
  free(a);
  a=NULL;
  b=NULL;
  ……
  return 0;
}
C
int fun(void)
{
  char *a=NULL;
  char *b=NULL;
  unsigned int i;
  a=malloc( sizeof(char)* MAX);
  b=a;
  for(i=0;i<MAX;i++)
*(b++)=i;
  free(b);
  free(a);
  return 0;
}
D
int fun(void)
{
  char *a=NULL;
  int  *b=NULL;
  a=malloc( sizeof(char)* MAX);
  b=a+9;
  *b=15;
  ……
  return b;
}
3.有如下代码
typedef struct ptrblock {
char *ptr;
char  name[10];
} Node_t;
main()
{
  Node_t *p;
  p = (PB *)malloc(sizeof(Node_t));
  p->ptr = malloc(10);
  ……
  [内存释放语句]
}
请问下面哪段代码正确完成了内存释放(C
A
free(p);
free(p->ptr);
B
free(p->ptr);
free(p->name);
free(p);
C
free(p->ptr);
free(p);
D
free(p);
free(p->ptr);
free(p->name);
4.读下列代码:
char a=100;
char b=150;
unsigned char c;
c=(a<b)? a:b;
请问c的值为(
A100    B150    C-106    D204
5.有下列代码:
int main(void)
{
  int i=1,j=2,k=3;
  if(i++==1&&(++j==3||k++==3))
k+=2;
  printf(“%d %d %d\n”,i,j,k);
}
程序的运行结果为( C
A1 2 3    B2 3 4    C2 3 5    D2 3 6
6.下列函数声明中有语法错误的有:(
Ac语言中struct. int func (float      p[][] , int n);
B int func (float    *p[] ,  int n);
C int func (float      p[] ,  int n);
D int func (float    (*p)[] ,  int n);
7.下列选项中可以作为C语言合法常量的有( A 
A-80.
B-080
C-8e1.0
D-80.0e
8.变量定义如下:
char s[10], *p;
char c ;
p = &c  ;
则下列语句不正确的有(CD 
Ap=s+4;
B*p=s[0];
Cs=”sist”;
Ds=p+1;
9. 以下序列中不符合堆定义的是____D____
102871007982628442221268
102100878482796862422212
122242626879828487100102
102874279826268100841222
10. 一个具有767个结点的完全二叉树,其叶子结点个数为__B_____
A. 383  B. 384  C. 385  D. 386
11. 若一个具有n个结点、k条边的非连通无向图是一个森林(n>k,则该森林中必有___C__棵树。
A. k      B. n      C. nk    D. n+k
12.将两个长度为n的递增有序表归并成一个长度为2n的递增有序表,最少需要进行关键字比较__A____次。
          A. 1    B. n1    C. n    D. 2n
13. n个元素进行快速排序时,最坏情况下的时间复杂读为___D____
      A. 0 (log2n)  B. 0 (n)    C. 0 (nlog2n)    D. 0 (n2)
1  C语言命令参数的表达形式是 (D)
    A) main(int argc,int argv)      B)  main(int argc,char argv[])
    C) main(int argc,char*argv)    D)  main(int argc,char*argv[])
( )  2  C语言中,要求运算数必须是整形的运算符是 D
    A) /    B) ++  C) !=    D) %
( )  3  C语言中,数组名作为参数传递给函数,作为实参数的数组名被处理为 D
      A) 该数组的长度            B) 该数组的元素个数
      C) 该数组中各元素的值      D)该数组的首地址
()设有如下: A
      int  *ptr[];
    则一下叙述中正确的是
ptr是指向一维数组的指针变量
ptr是指向int型数据的指针变量
ptr是指向函数的指针,该函数返回一个int型数据
ptr是一个函数名,该函数的返回值是指向int形数据的指针
()若以下变量均是整形,且num=sum=7;则执行表达式  B
        sum=num++;
        sum++;
        ++numsum的值为
        A)  7  B) 8  C) 9  D) 10
()  6 设整数a用两个字节表示。表达式a&0x7FFF的作用是:(0111111111111111C
      A)  a的最低位为0;    B) a的最低位为1
      C)  a的最高位为0;    D) a的最高位为1
()类型定义:(字符串自动加\0)
      char S[3]=“AB”;
      char *p;
  在执行了语句P=S之后,*(P+2)的值是(C)。
    A) ‘B’  B)  ‘\0’  C)不确定  D字符’B’的地址
()8 设有如下定义:
    struct  sk{int a;float b;}data,*p;
  若有p=&data;,则对data中的a的域的正确引用是
  A)(*P).data.a            B) (*P).a
  C) P->data.a            D)p.data.a
( )  9 若希望当A的值为奇数时,表达式的值为A的值为偶数表达式的值为为。则以下不能满足要求的表达式:C
    A)  A%2 = =1  B) !(A%2 = = 0)  C) !(A%2)    D) A%2
( )  10 下面程序的功能是将字符串s中所有的字符c的删除,请选择填空
  #include <stdio.h>
  main(){

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。