结构体
结构体是C/C++中最典型的复合类型结构,解决了C/C++过程设计中变量类型单一的问题,广泛用于各种链表甚至其他数据结构中,是重点基础,这里是关于结构体(struct)相关的教程与配套题目
-
有以下程序:#include <stdio.h> struct S { int x,y; }; main() { struct S data[3] = {4,3,2,0,8,1}; int i; for(i=0;i<3;i++) printf("%d%d;",data[i].x, data[i].y>>1); printf("\n"); }程序运行后的输出结果是()。
-
有如下程序:#include <stdio.h> struct S { int x,y; }; main() { struct S data[2] = {4,3,1,9}; int i; for(i=0;i<2;i++) printf("%d,%d;",data[i].x, data[i].y>>1); }程序运行后的输出结果是()。
-
以下叙述中正确的是()。
-
设有定义:struct { char mark[12]; int num1; double num2; }t1,t2;若变量均已正确赋初值,则以下语句中错误的是()。
-
有如下程序:struct person { char name[10]; char sex; float weight; }zhangsan, *ptr; ptr=&zhangsan;若要从键盘读入姓名给结构体变量zhangsan的name成员,输入项错误的是()。
-
有如下定义:struct st { char name[12]; int age; char sex; }std[10], *p=std;以下语句错误的是()。
-
有以下结构体说明、变量定义和赋值语句struct STD { char name[10]; int age; char sex; }s[5],*ps; ps = &s[0];则以下scanf函数调用语句有错误的是()。
-
若有以下定义:struct tt{char name[10];char sex;} aa={"aaaa",'F'},*p=&aa;则错误的语句是()。
-
有以下程序:#include<stdio.h> struct S{int a;int *b;}; main() { int x1[] = {3,4},x2[] = {6,7}; struct S x[] = {1,x1,2,x2}; printf("%d,%d\n",*x[0].b,*x[1].b); }程序的运行结果是()。
-
有如下定义:struct { int num; char name[10]; struct { int y; int m; int d; }birth; }s,*ps=&s;以下对内嵌结构体成员的引用形式错误的是()。
-
设有以下程序段:struct MP3 { char name[20]; char color; float price; }std,*ptr; ptr=&std;要引用结构体变量std中的color成员,下列写法中错误的是()。
-
设有如下定义:struct{int n;char c;}a[2], *p=a;则以下错误引用结构体成员n的是()。
-
有以下定义和语句:struct workers { int num; char name[20]; char c; struct { int day; int month; int year; }s; }st;ruct workers w,*pw; pw=&w;能给w中year成员赋1980的语句是()。
-
有以下程序段struct st { int x; int *y; }*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c;以下选项中表达式的值为11的是()。
-
设有定义:struct{int n;float x;}s[2],m[2]={{10,2.8},{0,0.0}};则以下赋值语句中正确的是()。
-
设有定义:struct complex {int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是()。
-
有以下定义:struct data { int i;char c;double d; } x;以下叙述中错误的是()。
-
若有定义:typedef int T[10]; T *a[20];则与上述定义完全等价的说明语句是()。
-
若有定义:typedef int* T; T a[20];则以下与上述定义中a类型完全相同的是()。
-
设有如下语句typedef struct Date { int year; int month; int day; } DATE;则以下叙述中错误的是()。