《c语言程序设计》第8章作业,《C语言程序设计》第8章作业.doc

struct {

int year;//年

int month;//月

int day;//日

}date;

void main()

{

int i,loop=0,sum=0;

scanf("%d-%d-%d",&date.year,&date.month,&date.day);

if((date.year%4==0&&date.year%100!=0)||(date.year%400==0))loop=1;

for(i=1;iname="xiaojie";

C、

D、

5、下面定义了一个通信录结构friends_list、结构变量friend1

struct friends_list{

int num;//编号

char name[10];//姓名

char telephone[13];//电话

intage;//年龄

}friend1;

正确使用结构变量friend1的语句是

A、friend1.name="xiaojie";

B、friend1->name="xiaojie";

C、strcpy(friend1.name,"xiaojie");

D、strcpy(friend1->name,"xiaojie");

6、5、下面定义了一个日期结构date、结构变量date1和date2

struct date{

int year;

int month;

int day;

}date1={2000,1,1},date2;

对结构变量date2正确操作的语句是

A、date2=date1;

B、strcpy(date2,date1);

C、date2={2010,12,1};

D、date2={2010-12-1};

7、下面定义了一个日期结构struct date

struct date{

int year;

int month;

int day;

}date1;

结构类型占用的内存空间可用sizeof来计算,正确的sizeof格式是

A.sizeof(date1)

B.sizeof(struct date)

C.sizeof(struct date date1)

D.sizeof(date)

A、A正确

B、B正确

C、A和B都正确

D、C和D都正确

8、下面定义了一个平面点结构struct point、结构变量point1和结构指针p

struct point{

double x;

double y;

}point1,*p=&point1;

欲将点(100,100)赋值给point1,则不正确的操作语句是

A、point1.x=100;point1.y=100;

B、*p.x=100;*p.point1.y=100;

C、(*p).x=100;(*p).point1.y=100;

D、p->x=100;p->y=100;

9、关于嵌套结构的定义描述,正确的是:

A、在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型

B、在定义嵌套的结构类型时,必须先定义主结构类型,再定义成员的结构类型

C、在定义嵌套的结构类型时,成员的结构类型和主结构类型的先后顺序无关紧要

D、以上描述都不正确

10、设 int *p , I ;以下正确合理的语句是( )。

A、*p=10;

B、i=p;

C、i=*p;

D、i=2*p+1;

11、设 char s[10] ; int I ; 以下引用数组 s 中元素正确的表达式是( )。

A、S(i+2);

B、*(s+i)

C、*(&s+i)

D、*((s++)+i)

12、若有定义和语句

int **pp, *p, a=10, b=20;

pp=&p;

p=&a;

p=&b;

printf("%d,%d\n",*p,**pp);

则输出结果是( )。

A、10,20

B、10,10

C、20,10

D、20,20

13、若定义 char s[20]="programming",*ps=s ;则不能代表字符 o 的表达式是( )。

A、ps+2

B、s[2]

C、ps[2]

D、ps+=2,*ps

14、若有定义和语句

char *s1="12345" , *s2="1234";

printf("%d\n" ,strlen(strcpy(s1,s2)));

则输出结果是( )。

A、4

B、5

C、9

D、10

15、若定义 int a[ ] ={1, 2, 3, 4, 5 , 6, 7 , 8 , 9 , 10}, *p=a ;

则值为 3 的表达式是 ( )。

A、p+=2,*(p++)

B、p+=2,*++p

C、p+=3,*p++

D、++*p

16、设有以下一段程序

char s[ ]="Hello";

char *p=s ;

执行完上面程序段后,*(p+5) 的值为 ( ) 。

A、o

B、\0

C、o 的地址

D、不确定的值

17、已知:int *p;使用如下语句动态申请一个int型的存储单元,应当使用。

p=________malloc(sizeof(int));

A、int

B、int *

C、(* int)

D、(int *)

18、已知:char s1[4]="12";char *ptr;则执行以下语句后的输出为。

ptr=s1;

printf("%c\n",*(ptr+1));

A、字符2

B、字符1

C、字符2的地址

D、不确定

19、已知:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示数组a中元素的表达式是。

A、*p

B、a[10]

C、*a

D、a[p-a]

20、若x是整型变量,p是整型指针变量,则正确的赋值表达式是__________。

A、*p=*x;

B、*p=&x;

C、p=x;

D、p=&x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值