C语言2-结构体类型数组

C语言2-结构体类型数组

C语言程序设计教案

C#实现二进制数组与结构体互转

本文介绍4个方法来实现二进制数组与结构体互转。Marshal 记得要引入命名空间System.Runtime.InteropServices; 方法一: public static byte[] StructToBytes(object structObj) { //得到结构体的大小 int size = Marshal.SizeOf(structObj); //创建byte数组 byte[] bytes = new byte[size]; //分配结构体大小的内存空间 IntPtr structPtr = Marshal.AllocHGlobal(size); //将结构体拷到分配好的内存空间 Marshal.StructureToPtr(structObj, structPtr, false); //从内存空间拷到byte数组 Marshal.Copy(structPtr, bytes, 0, size); //释放内存空间 Marshal.FreeHGlobal(structPtr); //返回byte数组 return bytes; } 方法二:

///

/// byte数组转结构体 /// /// byte数组 /// 结构体类型 /// 转换后的结构体 public static object BytesToStuct(byte[] bytes, Type type) { //得到结构体的大小 int size = Marshal.SizeOf(type); //byte数组长度小于结构体的大小 if (size > bytes.Length) { //返回空 return null; } //分配结构体大小的内存空间 IntPtr structPtr = Marshal.AllocHGlobal(size); //将byte数组拷到分配好的内存空间 Marshal.Copy(bytes, 0, structPtr, size); //将内存空间转换为目标结构体 object obj = Marshal.PtrToStructure(structPtr, type);

C语言中指针和数组名的用法,结构体与共用体的总结

C语言中指针和数组名的用法,结构体与共用体的总结 2010-01-11 19:38 在C语言中,指针和数组名通常都可以混用。 例如 char *p; 访问时,*p跟p[0]是一样的,*(p+1)跟p[1]是一样的。 对于数组 char b[5]; 访问时,b[0]跟*b是一样的,b[2]跟*(b+2)是一样的。 在一般的通信中(例如串口),通常都使用字节传输。而像float,long int 之类的, 有4字节。我的方法就是取它的地址,强制转换为char型指针,然后当作数组来用。 float x; SBUF=((char*)&x)[0]; SBUF=((char*)&x)[1]; SBUF=((char*)&x)[2]; SBUF=((char*)&x)[3]; 接收时,刚好倒过来。 更有趣的是,对于数组形式,数组名和后面的偏移量可以随便换。 char buff[10]; //或者用 char *buff=&buffer; buff[3]=0xaa; 3[buff]=0xaa; //两者是一样的 因此,我认为编译器是这么做的:对于形如xxx[yyy]这样的表达式,会转化为*(xxx+yyy), 因此写成xxx[yyy]或者写成yyy[xxx]都无所谓了... c语言结构体与共用体学习笔记1 Author:yuexingtian Date:Thursday, June 12, 2008 1结构变量的赋值 测试结果:

{ struct stu { int num; char *name; char sex; float score; }boy1,boy2; boy1.num=15; https://www.360docs.net/doc/8c10055454.html,="yuexingtian"; printf("input sex and score\n"); scanf("%c %f",&boy1.sex,&boy1.score); boy2=boy1; printf("Number=%d\nName=%s\n",boy2.num,https://www.360docs.net/doc/8c10055454.html,); printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score); getch(); } 说明: 本程序中用赋值语句给num和name两个成员赋值,name是一个字符串指针变量。用scanf函数动态地输入sex和score成员值,然后把boy1的所有成员的值整体赋予boy2。最后分别输出boy2的各个成员值。本例表示了结构变量的赋值、输入和输出的方法。 2结构变量的初始化 对结构变量的初始化(还拿上例举例)

单元数组与结构数组

一、实验目的 1.熟悉MATLAB软件使用 2.进行字符串的输入输出练习 3.练习元胞数组的创建、查看和更改 4.结构数组的创建,加入元胞数组并查看 二、实验设备 装有MATLAB的计算机。 三、实验内容 四、实验步骤和结果 1.代码 clear,A='Dalian maritime is not far from seaside'; p=findstr(A,'si')%findstr的使用 b='please input your name'; B=input(b,'s')%input 使用输入的字母以字符串形式放入B x='1'; y=x+1%字符对应的数字加1y2=str2num(x)+1%字符转化为数字加1 1.运算结果: p = 36%si出现于36位置 please input your name My name is hanmeiqi B = My name is hanmeiqi y =

50 y2 = 2 2.代码 clear B{1, 1}=('2220172652'); B{1, 2}='韩美奇'; B{2, 1}=zeros(3,3); B{2, 2}={12,34;56,78};%元胞数组 a=size(B);%计算单元数组维度 b1=B{1,2}%大括号能查看内容 b2=B(1,2)%小括号查看数据结构b3=B{2}%相当于B{2,1} b4=B{4}%相当于B{2,2} b5=B(2) b6=B(4) I1=eye(size(B{2, 1}))%创建和B{2, 1}维度相同的单位矩阵 C1=B{2, 1}+I1 B{2,1}=C1%对数据完成修改 D=B(2,2)%数据结构属性 C2=cell2mat(B{2, 2})%将单元数组转化为单精度数值矩阵 I2=eye(size(C2)) E=C2+I2 B{2, 2}=num2cell(E)%将计算后矩阵送回单元数组 B{2,2}%显示输出

C语言结构体习题及答案

第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 2.当定义一个结构体变量时,系统为它分配的内存空间是【】 A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6 4.定义以下结构体数组 struct c { int x; int y; }s[2]={1,3,2,7}; 语句printf("%d",s[0].x*s[1].x)的输出结果为【】 A) 14 B) 6 C) 2 D) 21 5.运行下列程序段,输出结果是【】 struct country { int num; char name[10]; }x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"}; struct country *p; p=x+2; printf("%d,%c",p->num,(*p).name[2]); A) 3,a B) 4,g C) 2,U D) 5,S

6.下面程序的运行结果是【】。 struct KeyWord { char Key[20]; int ID; }kw[]={"void",1,"char",2,"int",3,"float",4,"double",5}; main() { printf("%c,%d\n",kw[3].Key[0], kw[3].ID); } A) i,3 B) n,3 C) f,4 D) l,4 7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 A) 64 B) 114 C) 228 D) 7 8.如果有下面的定义和赋值,则使用【】不可以输出n中data的值。struct SNode { unsigned id; int data; }n,*p; p=&n; A) p.data B) n.data C) p->data D) (*p).data 9.根据下面的定义,能输出Mary的语句是【】。 struct person { char name[9]; int age; }; struct person class[5]={"John",17,"Paul",19,"Mary",18,"Adam",16}; A) printf("%s\n",class[1].name); B) printf("%s\n",class[2].name); C) printf("%s\n",class[3].name);

C语言函数不可以返回数组却可以返回结构体这是为什么呢

C语言函数不可以返回数组却可以返回结构体这是为什么呢 最近有读者问我,为什么C语言函数可以返回结构体,却不可以返回数组。有这样的问题并不奇怪,因为C语言数组和结构体本质上都是管理一块内存,那为何编译器要区别对待二者呢? C语言函数为什么不能返回数组? 在C语言程序开发中,我们不可以编写下面这样的代码: 这其实就是不能在C语言函数中返回数组。但是如果将数组定义在结构体里面,就可以将其返回了,例如下面这段C语言代码,请看:

结构体 s 只有一个数组成员 arr,显然,函数可以返回结构体,即使结构体只有一个数组成员,这是为什么呢? C语言没有严格意义上的“数组类型” 基本上,C语言中的数据结构可以分为两类,第一类数据结构可以被赋值,而第二类数据结构不可以被赋值,数组属于第二类数据结构。 除了数组,还有其他第二类数据结构吗?我想基本上没有了,除非把函数算上。 与函数不能返回数组密切相关的事实是,C语言没有严格意义上的“数组类型”。可能从C语言代码角度来看,似乎有数组类型的变量,但是如果尝试将该变量像其他变量一样使用,得到的实际上是指向数组第一个元素的指针。例如下面这段C语言代码: char a[10], b[10]; a = b; 这并不能把数组 b 的内容拷贝给数组 a,实际上,上面两行C语言代码相当于下面这一行: a = &b[0]; 显然,左边是数组 a,而右边其实是一个指针。即使数组在某种程度上可以看作能够被赋值,但我们有很大几率得到类型不匹配,例如下面这段C语言代码: a = f(); 这里假设 f() 是一个返回数组的函数,它的核心C语言代码如下: char ret[10]; /* ... fill ... */ return ret; 不过按照前面所说的,其实上面的返回语句相当于下面这一句:

C语言程序设计练习题之 数组与结构体

数组与结构体 一、单项选择题 (在每小题列出的四个备选项中只有一个是符合题目要求的。) 1.若有定义int a[4]={1,2,3,4};则a[a[0]+2 * a[2]-a[3]]等于 A.1 B.2 C.3 D.4 2.设有数组定义: char array [ ]="China"; 则数组 array所占的空间为A.4个字节B.5个字节C.6个字节D.7个字节 3.设有定义char a[]="xyz",b[]={'x','y','z'}; ,则语句cout< using namespace std;

数组结构体总结

数组结构体总结 数组定义:数组是有序的并且具有相同类型的数据的集合。一维数组1、一般形式:类型说明符数组名[常量表达式];例如:int a[10]; 元素为a[0]----a[9].2、常量表达式中不允许包含变量,可以包含常量或符号常量。3、数组元素下标可以是任何整型常量、整型变量或任何整型表达式。4、可以对数组元素赋值,数组元素也可以参与运算,与简单变量一样使用。5、使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素。6、需要整体赋值时只可以在定义的同时整体赋值。如int a[10]={0,1,2,3,4,5,6,7,8,9};正确。int a[10]; a[10]={0,1,2,3,4,5,6,7,8,9};错误。或者用内存拷贝函数7、可以只给一部分元素赋值。例如:int a[10]={5,8,7,6};后面没有赋值的元素值默认为0。8、对全部数组元素赋值时可以不指定数组长度,例如:int a[10]={0,1,2,3,4,5,6,7,8,9};可以写成int a[]={0,1,2,3,4,5,6,7,8,9}; 但是,既不赋初值,也不指定长度是错误的。例如:int a[];错误。9、指向数组元素的指针int a[10], *p; //下面这两句是等价的: p=&a[0]; p=a; 根据地址运算规则, a+1为a[1]的地址, a+i就为a[i]的地址。

下面我们用指针给出数组元素的地址和内容的几种表 示形式。 (1). p+i和a+i均表示a[i]的地址, 或者讲, 它们均指向数组第i号元素, 即 指向a[i]。 (2). *(p+i)和*(a+i)都表示p+i和a+i所指对象的内容, 即为a[i]。 (3). 指向数组元素的指针, 也可以表示成数组的形式, 也就是说, 它允许 指针变量带下标, 如p[i]与*(p+i)等价。 二维数组1、一般形式:类型说明符数组名[常量表达式1][常量表达式2];例如:int a[3][4];可以看成是包含3个一维数组,每个一维数组里包含4个元素。一共3*4=12个元素。所有元素为a[0][0],a[0][1],a[0][2],a[0][3] a[1][0],a[1][1],a[1][2],a[1][3] a[2][0],a[2][1],a[2][2],a[2][3] ┏━━━━┓ ┏━┳━┳━┳━┓ a─→┃ a[0] ┃─→┃0 ┃1 ┃2 ┃3 ┃ ┣━━━━┫ ┣━╋━╋━╋━┫ ┃ a[1] ┃─→┃4 ┃5 ┃6 ┃7 ┃ ┣━━━━┫ ┣━╋━╋━╋━┫ ┃ a[2] ┃─→┃8 ┃9 ┃10┃11┃ ┗━━━━┛ ┗━┻━┻━┻━┛a代表二维数组的首地

C语言程序设计 结构体和共用体(12.2.15)--实验9结构体数组作函数参数

实验9 结构体数组作函数参数 【实验任务】学生成绩管理系统V5.0 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,考试科目为数学(MT)、英语(EN)和物理(PH)。参考例12.7,定义结构体类型,用结构体数组作函数参数,编程实现如下菜单驱动的学生成绩管理系统: (1)录入每个学生的学号、姓名和各科考试成绩; (2)计算每门课程的总分和平均分; (3)计算每个学生的总分和平均分; (4)按每个学生的总分由高到低排出名次表; (5)按每个学生的总分由低到高排出名次表; (6)按学号由小到大排出成绩表; (7)按姓名的字典顺序排出成绩表; (8)按学号查询学生排名及其考试成绩; (9)按姓名查询学生排名及其考试成绩; (10)按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,对每门课程分别统计每个类别的人数以及所占的百分比; (11)输出每个学生的学号、姓名、各科考试成绩,以及每门课程的总分和平均分。 要求程序运行后先显示如下菜单,并提示用户输入选项: 1.Append record 2.Caculate total and average score of every course 3.Caculate total and average score of every student 4.Sort in descending order by total score of every student 5.Sort in ascending order by total score of every student 6.Sort in ascending order by number 7.Sort in dictionary order by name 8.Search by number 9.Search by name 10.Statistic analysis for every course 11.List record 0.Exit Please enter your choice: 然后,根据用户输入的选项执行相应的操作。 题 【思考】 动态单链结构数组编实现 (1)考例 参12.9~例12.11,用向表代替体,程上述程序。 础删记录插记录会动态链与结构数组(2)在(1)基上,增加“除”和“入”的功能,体表体的优 不同点和缺点。 【实验目的】 在实验“学生成绩管理系统V4.0”的基础上,通过增加任务要求,熟悉结构体类型、结构体数组作函数参数、模块化程序设计方法,体会应用结构体类型代替普通的数组类型实现数据库管理的优越性。

C语言结构体数组介绍

C语言结构体数组介绍 数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。 方法和结构变量相似,只需说明它为数组类型即可。例如: 1.struct stu{ 2.int num; 3.char*name; 4.char sex; 5.float score; 6.}boy[5]; 定义了一个结构数组boy,共有5个元素,boy[0]~boy[4]。每个数组元素都具有struct stu的结构形式。对结构数组可以作初始化赋值。例如: 1.struct stu{ 2.int num;

3.char*name; 4.char sex; 5.float score; 6.}boy[5]={ 7.{101,"Li ping","M",45}, 8.{102,"Zhang ping","M",62.5}, 9.{103,"He fang","F",92.5}, 10.{104,"Cheng ling","F",87}, 11.{105,"Wang ming","M",58}; 12.} 当对全部元素作初始化赋值时,也可不给出数组长度。计算学生的平均成绩和不及格的人数。 1.struct stu{ 2.int num; 3.char*name; 4.char sex; 5.float score; 6.}boy[5]={ 7.{101,"Li ping",'M',45}, 8.{102,"Zhang ping",'M',62.5},

C语言结构体习题及答案知识讲解

C语言结构体习题及 答案

第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 2.当定义一个结构体变量时,系统为它分配的内存空间是【】 A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6 4.定义以下结构体数组 struct c { int x; int y; }s[2]={1,3,2,7}; 语句printf("%d",s[0].x*s[1].x)的输出结果为【】 A) 14 B) 6 C) 2 D) 21

5.运行下列程序段,输出结果是【】 struct country { int num; char name[10]; }x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"}; struct country *p; p=x+2; printf("%d,%c",p->num,(*p).name[2]); A) 3,a B) 4,g C) 2,U D) 5,S 6.下面程序的运行结果是【】。 struct KeyWord { char Key[20]; int ID; }kw[]={"void",1,"char",2,"int",3,"float",4,"double",5}; main() { printf("%c,%d\n",kw[3].Key[0], kw[3].ID); } A) i,3 B) n,3 C) f,4 D) l,4 7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 A) 64 B) 114 C) 228 D) 7 8.如果有下面的定义和赋值,则使用【】不可以输出n中data的值。 struct SNode { unsigned id; int data; }n,*p; p=&n; A) p.data B) n.data C) p->data D) (*p).data 9.根据下面的定义,能输出Mary的语句是【】。

matlab字符串单元数组与结构体作业答案

1.编制一个脚本,查找给定字符串中指定字符出现的次数和位置; str=['hopes,dreams,hold up,hold up']; >> findstr(str,'o') %位置 ans = 2 15 23 >> a=findstr(str,'o'); n=length(a) %次数 n = 3 2.编写一个脚本,判断输入字符串中每个单词的首字母是否为大写,若不是则将其修改为大写,其他字母为小写。 >> str='i have a dream come true'; nlength=length(str); for k=1:nlength if (k==1 || isspace(str(k-1)))&&(str(k)<='z'&&str(k)>='a') str(k)=char(double(str(k))-32); end end disp(str); I Have A Dream Come True

3.创建2×2 单元数组,第1、2 个元素为字符串,第三个元素为整型变量,第四个元素为双精度(double)类型,并将其用图形表示。 >> A=cell(2,2) A(1,1)={'beijing'}; A(2,1)={'BEIJING'}; A(1,2)={uint8(5)}; A(2,2)={[1,2;4,7]} cellplot(A) A = [] [] [] [] A = 'beijing' [ 5] 'BEIJING' [2x2 double]

4.创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。然后使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次等。 >> student=struct('name',{'bam','mark','jimin'},'number',{1,2,3},'scores',{[75 ,89,82],[93,78,90],[85,62,77]} ,'subject',{'english,math,chinese','english, math,chinese','english,math,chinese'}) student = 1x3 struct array with fields: name number scores subject >> student(1) ans = name: 'bam' number: 1 scores: [75 89 82] subject: 'english,math,chinese' >> student(2) ans =

(完整版)Matlab学习心得系列——005.结构数组

005. 结构数组 编程语言要描述日常生活中的某一类事物,就是要赋予这类事物一个公共名称(类名),再把这类事物具有的各种属性分别存放为若干变量(数据元素),这就是“结构体”。结构体里再加上若干操作其数据元素的函数(成员函数),就是“类”。然后,“类”就可以作为新的数据类型定义对象(类的实例化),再操作这些对象,实现编程需要。 以上就是面向对象的编程思想(适合C++或Java。 例如,描述学生,就用一个学生类Stude nt;学生属性:学号、 姓名、专业;实现操作:学生转专业。(粗略C++代码) class Student { private: // 数据元素一般设为该类的私有数据,防止属性被随意修改 int number; string name; string major; public:// string 定义字符串 // 成员函数一般设为可公共访问 Student(int num, string n, string m); // 类构造函数用于生成具体对象,必须与类名相同 void ChangeMajor(String newmajor); } Student:: Student(int num, string n, string m) { number = num; name = n; major = m; } void Student:: ChangeMajor(String newmajor) // Student:: 表示函数是来自Student 类 { major = newmajor; } // 下面是使用Student 类:

Student s1; // 用Student 类定义一个“学生”对象s1 s1. ChangeMajor(“ Math ”// );把学生s1 的专业修改为“ Math ” 可见,借助结构体或类的编程,既能与现实世界中的事物建立自然的对应(符合思维习惯),又能实现模型化的“批量生产”(用“类” 可以整体性地、一遍一遍地建立对象、操作对象)。这也是结构体或类(面向对象编程)的优势所在。 回到Matlab ,元胞数组只是呆板的堆放数据的仓库,结构数组则具有了与实际对象所对应的结构属性,这等同于“ C 语言的结构体”、“C++或Java的类的数据成员部分”。 结构数组是由若干个结构(struct )组成,每个结构都包含多个结构域(fields);数据必须存放在结构域中,可以是任何类型、任意大小的数据。例如,多个图形对象构成一个结构数组,每个图形对象就是一个结构,图形对象的一个属性对应一个结构域。 即,结构数组(矩阵)的元素是结构,每个结构包含若干结构域。 结构数组的创建 1. 用直接赋值语句创建 例1创建学生的结构数组,每个结构包含学号、姓名两个结构域(属性) stude nt(1). nu mber = '001';

matlab单元数组与结构体数组

在前面章节已经介绍了几种MATLAB7.0常用的数据类型。本章将介绍两种特殊的数据类型,即单元数组和结构体数组,这两种数据类型的特点是允许用户将不同但是相关的数据类型集成到一个单一的变量。这样,因为相关的数据可以通过一个单元数组或是结构体的数组进行组织和访问,数据的管理就变得相对要容易一些。 ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ? >> c(1,1)={'abc'}; ? >> c(1,2)={eye(2)}; ? >> c(2,1)={[1 2;3 4]}; ? >> c(2,2)={[1 2]}; ? >> c ? c = ? 'abc' [2x2 double] ? [2x2 double] [1x2 double] ? ====================================================== >> c{1,1}='abc'; >> c{1,2}=eye(2); >> c{2,1}=[1 2;3 4]; >> c{2,2}=[1 2]; >> c c = 'abc' [2x2 double] [2x2 double] [1x2 double] ? >> c={'abc',eye(2);[1 2;3 4],[1 2]} ? c = ? 'abc' [2x2 double]

?[2x2 double] [1x2 double] ?cell(n)生成一个n*n阶的置空单元数组; ?cell(m,n) 或cell([m,n])生成一个m*n阶的置空单元数组; >> a=cell(2) a = [] [] [] [] >> a{1,1}=[1 2;2 2] a = [2x2 double] [] [] [] >> a{1,2}=['MATLAB7.0'] a = [2x2 double] 'MATLAB7.0' [] [] ?一是直接在命令窗口中输入单元数组的名字; ?二是使用函数celldisp(c)来输出。 ?想得到单元数组中某一个单元的值时,可以采用c(m,n)或c{m,n}的格式输出。但是它们得到的结果表示形式是不同的。 ?函数celldisp(c)更适用于具有大量数据的单元数组的显示。 ?c{m,n} 和celldisp(c)显示的结果形式相同。 ?celldisp(a,’name’)在窗口中显示的单元型变量的内容的名称为name。 ? ?>> c={'abc',eye(2);[1 2;3 4],[1 2]}; ?>>c(1,2) ?ans = ?[2x2 double] ?>> c{1,2} ?ans = ? 1 0 ?0 1 ?>> celldisp(c) ?c{1,1} = ? abc

结构体数组排序

1、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 【参考答案】 void fun( STREC a[] ) { int i,j; STREC t; for(i=1;i=l&&a[i].s<=h) /*将分数高于l,低于h的学生记录存入结构体数组b中*/ b[j++]=a[i]; return j; /*返回分数范围内的学生人数*/ }

数组和结构题库

第四章数组和结构 一、选择题 1. 有结构型定义如下: struct person { char name[20]; int age; int sex; }w[5],*p=w; 那么下面scanf语句中对结构变量成员不正确的引用是()。 A.scanf(“%s”,w[0].name); B.scanf(“%d”,&w[0].age); C.scanf(“%d”, &(p->sex)); D.scanf(“%d”, p->age); 答:D 2. 处理字符串必须调用(1),且首先要声明预编译命令(2)。不能用赋值运算符“=”对字符串赋值,应调用(3)函数;也不能用关系运算符“= =”、“>”、“<”对字符串进行比较,应调用(4)函数。 答案:(1)字符串库函数(2)# include (3)strcpy (4)strcmp 3. 有如下程序段: char str[14]={"I am "}; strcat(str, "sad !"); scanf("%s", str); printf("%s", str); 当输入为happy!时,输出的结果是()。 (A)I am sad! (B)happy! (C)I am happy! (D)happy!ad! 答案:(B) 4. 以下对二维数组a进行不正确初始化的是。 A.int a[ ] [3]={3,2,1,1,2,3}; B.int a[ ] [3]={{3,2,1},{1,2,3}; C.int a[2] [3]={{3,2,1},{1,2,3}}; D.int a[ ] [ ]={{3,2,1},{1,2,3}}; 答案:D 5. 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while (i

相关主题
相关文档
最新文档