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