《C语言程序设计》练习二
c语言中struct
二、多项选择题
在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。
1.若有定义int a[5];,则对a数组元素或地址的引用错误的有(      )
A.&a[5]                    B.a[2]
C.a++                    D.*a
E.a[0]
2. 若定义 char c[11]; 可将字符串″I am a boy″ 赋给数组c,下面正确的选项有
(      ) 
A. c=″I am a boy″;                    B. getchar(c);
C. gets(c);                    D. scanf(″%s″,c);
E. for(i=0;i<10;i++) scanf(″%c″,&c[i]);c[10])=\0;
3. 若有如下定义和语句,则能正确表示数组a首元素地址的表达式有(      )
int  a[10], *p;
p=a;
A. a[0]                    B. a
C. p+1                    D. p
E. *p
4.下面各选项中,能正确进行字符串操作的有(      )
A. char s[ ]={′a′, ′b′, ′c′, ′d′, ′e′, ′\0′};
B. char s[10];s=″abcde″;
C.char s[10];strcpy(s, ″abcde″)
D.char s[10];getchar(s);
E.char s[10];gets(s);
5.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有(      )
double a[5],*p1
p1=a;
A.a    B.p1+1
C.*p1    D.&a[1]
E.p1
6.设有定义:int a[2][3];下面关于数组元素引用正确的有(     )
A.a[0][3]    B.a[0][0]
C.a[2][1]    D.a[1][2]
E.a[2][3]
7.设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有(      )
A.a[2]    B.*a
C.*a+2    D.a[0]+2
E.&a[0][2]
8.设有定义及赋值:(      )
int a[10]={0,1,2,3,4,5,6,7,8,9},*p;
p=a;
则引用a中值为5的元素的正确形式是
A.a[5]          B.a[4]      C.*(a+5)        D.p[5]      E.*(p+5)
9.若有定义及赋值:int  *p,a[4],i;p=a,则可以表示数组元素值的形式是(      )
A.*(a+i)                    B.a+i
C.&a[i]                    D.a[i]
E.*(p+i)
10.若有定义:int  y[4][4],( p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是(     )
A. printf (″%d\n″,&y[2][0]);    B. printf (″%d\n″, y[2][0]);
C. printf (″%d\n″,p[2][0]);    D. printf (″%d\n″, y[2]);
E. printf (″%d\n″, ( (y+2));
11.设变量Vo5的地址已赋给指针变量inV,则下列关系表达式的值为1的有(      )
A.Vo5==&inV    B.Vo5==* inV
C.inV==* Vo5    D.inV==&Vo5
E.Vo5==inV
12.以下关于函数和变量的说法中正确的有(      )
A.不同函数中可以使用相同名字的变量
B.形式参数是局部变量
C.一个函数内部定义的变量只能在本函数范围内有效
D.在一个函数内部的复合语句中定义的变量可在本函数范围内有效
E.如果全局变量与函数内定义的局部变量同名,则在函数内局部变量无效
13.设有关于结构体类型的定义:(      )
  struct food
{
char name[20];
int kind;
}myfood*p;
下面各个选项中语句都正确的是
A.p=&myfood;                    B.p=&myfood;
  p->kind=5;                      strcpy(p->name,rice);
C.p=&myfood;                    D.strcpy(myfood. name, pie);
p.kind=7;                      p=&myfood;
E.p=&myfood,p->kind=6;
  strcpy(myfood.name, apple pie);
14.设有关于结构体类型的定义:(     )
struct car
      {
        char*name;
        float price;
        struct car *next;
    }*p,*head=NULL;
下面各选项中正确的有
A.p=(struct car*)MALLOC(sizeof (struct car);
B.p=(struct car*)malloc (sizeof (struct car);
C.p.next=head;
D.p->next=head;
E.p=(struct car *)malloc (sizeof(car);
15.设有关于结构体类型的定义:(    )
    struct data
    {
        int num;
        struct data *next;
    } *p,* head=NULL;
    下列语句中正确的有
A.p=(struct data *)malloc(sizeof(struct data));
B.p=(struct data )malloc(sizeof(struct data));
C.p=(struct data *)malloc(sizeof(data));
D.p->next=head;
E.p.next=head;
16.设有关于结构体类型的定义:
struct  worker
{
int  id;
char  name;
float  salary;
} wl={102035,″Lihua″,2560.50}, p;
下列选项中语句语法正确的有(      )
A. p=wl;    B. p=&wl;
C. p->id=wl->id    D. p->id=wl.id;
E. p.salary=wl.salary;
17. 在C语言中,关于符号FILE下面说法正确的有(      )
A. FILE是C的关键字
B. FILE表示一种关于文件参数的结构体类型
C. FILE表示一种关于文件参数的结构体变量
D. FILE*可以用来说明文件指针
E. 文件指针指向的变量的数据类型是FILE
18.在C语言中,下面关于文件说法正确的有(      )
A.按数据的组织形式,可分为文本文件和二进制文件
B.文件只能是ASCII码文件
C.文件能用fopen( )函数打开
D.文件只能是二进制文件
E.对打开的文件可以进行读或写操作
1
2
3
4
5
AC
CE
BD
ACE
AE
6
7
8
9
10
BD
CDE
ACDE
ADE
BCE
11
12
13
14
15
BD
ABC
ABDE
BD
AD
16
17
18
BD
BDE
ACE

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