计算机二级

根据下列的定义,能打印出字母P的语句是( )。 struct stu {char name[10]; int age; }; struct sm s[10]={"John",11, "Pau1",12, "Mary",11, "adam",12 };A.printf("%c",s[3].name);B.printf("%c",s[3].name[1]);C.printf("%c",s[2].name[1]);D.printf("%c",s[1].name[0]);

题目

根据下列的定义,能打印出字母P的语句是( )。 struct stu {char name[10]; int age; }; struct sm s[10]={"John",11, "Pau1",12, "Mary",11, "adam",12 };

A.printf("%c",s[3].name);

B.printf("%c",s[3].name[1]);

C.printf("%c",s[2].name[1]);

D.printf("%c",s[1].name[0]);

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

根据下列定义,能打印出字母P的语句是( )。

struct stu{char name[10];

int age;

};

struct stu s[10]={"John",11,

"Pau1",12,

"Mary",11,

"adam",12

};

A.primf("%c",s[3].name};

B.primf("%c",s[3].name[1]);

C.printf("%c",s[2].name[1]);

D.printf("%c",s[1].name[0]);


正确答案:D
解析:本题主要考查按结构数组元素方式引用结构成员。字母P为"Paul"的第一个字母,是结构体 s[1]的name成员的第一个元素的值,即s [1].name[0]的值。

第2题:

有以下说明和定义语句 struct student {int age;char num[8]; }; struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}}; struct student*p=stu;以下选项中引用结构体变量成员的表达式错误的是______。

A.(p++)->num

B.p->num

C.*p.num

D.stu[0].age


正确答案:C

第3题:

下列语句段中,正确的是( )。

A.struct{int x;float y;int a[2];unsigned b[3];char name[10];};

B.struct stu{unsigned a[3];unsigned b[4];}x;int*p=&x.a;

C.struct stu{int a;float x[4];}y={1,1.0};float data=y.x;

D.struct nd{int a,b;unsigned c[2]=5;};


正确答案:A
解析: 本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式:
struct结构类型名称
{ 数据类型 成员名1;
数据类型 成员名2;

数据类型 成员名n;
};
struct为关键字,是结构的标识符;{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

第4题:

有以下程序:

#include<

struct stu { int num;char name[10];int age;}

void fun(struct stu*p)

{ printf("%s\n",(*p).name);}

main

{ struct stu students[3]={{9801,"Zhang".20}, {9802,"Wang",19},{9803,"Zhao",1 8}}

fun(students+2); }

输出的结果是( )。

A.Zhang

B.Zhao

C.Wang

D.18


正确答案:B
从实参传递过去的是结构体系数组的第3个元素,所以输出的name为Zhao。

第5题:

C数组名称是指针变量吗?

看这段程序,可是执行。#include <stdio.h>int main(int argc, char *argv[]){ struct info { char name[33]; int age; }; struct info aa[3]={"meng",20,"juan",29,"an",59}; struct info *p=aa; for(int i=0;i<3;i++,p++) printf("%-6s %d\n",p->name,p->age);}将其改成这样:#include <stdio.h>int main(int argc, char *argv[]){ struct info { char name[33]; int age; }; struct info aa[3]={"meng",20,"juan",29,"an",59}; //struct info *p=aa; for(int i=0;i<3;i++,aa++) printf("%-6s %d\n",aa->name,aa->age);}为什么就执行不了呢


C数组名称是指针变量吗 C数组名是个指针常量指向数组首元素的地址,常量是 不能自加或者自减的,所以 不能 aa++

第6题:

根据下列的定义,能打印出字母P的语句是( )

struct stu {char name[10];

int age;

};

stmct stu s[10]={"John",11,

"Paul",12,

"Mary",11,

"adam",12

}:

A.printf("%c",s[3].name);

B.printf("%c",s[3].name[1]);

C.printf("%c",s[2].name[11]);

D.printf("%c",s[1].name[0]);


正确答案:D
解析:本题主要考查按结构数组元素方式引用结构成员。字母P为“Paul”的第一个字母,是结构体s[1]的name成员的第二个元素的值,即s [1].name[0]的值。

第7题:

设有如下定义 struct ss { char name[10]; int age; char sex; } std[3],* p=std; 下面各输入语句中错误的是

A.scanf("%d",&(*p).age);

B.scanf("%s",&std.name);

C.scanf("%c",&std[0].sex);

D.scanf("%c",&(p->sex));


正确答案:B
解析:程序定义中std为一数组

第8题:

有以下说明和定义语句 struct student { int age;char num[8]; struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; struct student *p=stu;}; 以下选项中引用结构体变量成员的表达式错误的是

A.(p++)->num

B.p->num

C.(*p).num

D.stu[3].age


正确答案:D
解析:结构体变量也有地址,因此可以把它的地址赋值给一个指针变量,然后通过该指针变量来引用结构体的成员,选项A和选项B就是通过指针变量来引用结构体的成员,也可以通过结构体数组元素的成员引用,而在选项D中stu[3].age不正确,因为结构体数组stu共有三个元素,其下标应该为0,1,2。

第9题:

有如下定义

struct person{char name[9];int age;};

struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};

根据上述定义,能输出字母M的语句是

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0]);


正确答案:B

第10题:

有以下程序includestruct STU{char name[10];int num;};void f(char*name, intnum){s

有以下程序 #include <string.h> struct STU { char name[10]; int num; }; void f(char *name, int num) { struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() { struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n",p->name,p->num); } 程序运行后的输出结果是

A.SunDan 20042

B.SunDan 20044

C.LiSiGuo 20042

D.YangSan 20041


正确答案:A
解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。

更多相关问题