当前位置:首页 > C语言课件及补充练习题
{ printf(“%s\\n”, (*p).name); } main()
{ struct stu students[3]={ {9801,”Zhang”,20}, {9802,”Wang”,19}, {9803,”Zhao”,18} }; fun(students+2); }
输出结果是
A)Zhang B)Zhao C)Wang D)18
二、填空题:
1.定义struct{ int x; int y;} s[2]={{1,2},{3,4}},*p=s;
则表达式++p->x的值为 , 表达式(++p)->x的值为 。
2.有以下说明和语句,可用a.day引用结构体成员day,请写出引用结构体成员a.day 的其它两种形式 、 。
3.定义struct{ int x; char *y;} tab[2]={{1,”ab”},{2,”cd”}}, *p=tab;
则表达式*p->y的结果为 ,表达式*(++p)->y的结果为 。
4.结构体类型的数据特性是 ,使用结构体处理数据的场合是
三 、判断题:
1.结构体和数组一样,属于构造数据类型。( ) 2.在结构体中,各成员应该具有不同的数据类型。( ) 3.结构体可以作为函数的参数。( )
4.结构体和数组不一样,结构体属于构造数据类型,数组是基本数据类型。( ) 5.在程序中使用结构体时,一般不允许把结构体作为 一个整体参加操作处理,而应
通过对结构体的各个成员项的引用来实现各种运算和操作。( )
6.在程序中,可以将一个结构体变量作为一个整体赋给另一个同类型的结构体变量。(7.枚举类型变量可用于while和for语句中的循环控制参数。( )
二、 程序阅读题:
1.程序如下:
struct n_c{int x; char c;}; main()
{ struct n_c a={10,?x?}; func(a);
printf(“%d%c”,a.x,a.c); }
func(struct n_c b)
{ b.x=20; b.c=?y?; }
该程序的运行结果是:
41
) 2. #include
三、 程序填空题:
1.下面是从键盘上输入一个日期,计算该日是该年中第几天,并从屏幕上显示出来。 程序如下:
struct date{int d; int m; int y;}; main() {struct date ymd; printf(“Enter year-month-day:”); scanf(“%d-%d-%d”,&ymd.y,&ymd.m,&ymd.d); printf(“The Passed days:%d\\n”,days ( )); }
int days(struct date pd)
{static int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}}; int number,i,lp; number=pd.d;
lp=pd.y%4= =0 && pd.y0!=0| |pd.y@0= =0;
for (i=1; i } 2.下面的程序从终端上为结构数组接收5个人的年龄、性别和姓名,然后输出。 程序如下: struct man{char name[20]; unsigned age; char sex[7]}; main() { struct man person[5]; data_in(person); data_out(person); 42 } data_in(struct man *p) { struct man *q= ; for (;p {printf(“age:sex:name”); scanf(“%u,%s”,p->age,p->sex); ; } } data_out(struct man *p) { struct man *q= ; for (;p 第九章 位运算 一、 单项选择题: 1. 在C语言中,要求运算数必须是整型或字符型的运算符是 A. % B.& C.! D.|| 2. 表达式a>b||~c&d的运算顺序是 A.~,&,>,|| B.~,||,&,> C.~,&,||,> D.~,>,&,|| 3. 若x=5,y=7,则x&y的结果是 A. 0 B.5 C.7 D.12 4. 若x=5,y=8,则x&y的结果是 A.0 B.5 C.8 D.13 5. 在执行完以下C语句后,B的值是 char Z=?A?; int B; B=((241&15)&&(Z|?a?)); A.0 B.1 C.true D.false 6. 下面程序段的输出结果是 int x=20; printf(“%d\\n”,~x); A.02 B.-20 C.-21 D.-11 7. 执行以下语句后,z的二进制值是 char x=3,y=6,z; z=x^y<<2; A. 00010100 B.00011011 C.00011100 D.00011000 43 8. 有程序: struct bit { unsigned a_bit:2; unsigned b_bit:2; unsigned c_bit:1; unsigned d_bit:1; unsigned e_bit:2; unsigned word:8; } main() { struct bit *p; unsigned int modeword; printf(“Enter the mode word(HEX):”); scanf(“%x”,&modeword); p=(struct bit *)&modeword; printf(“\\n”); printf(“a_bit:%d\\n”,p->a_bit); printf(“b_bit:%d\\n”,p->b_bit); printf(“c_bit:%d\\n”,p->c_bit); printf(“d_bit:%d\\n”,p->d_bit); printf(“e_bit:%d\\n”,p->e_bit); } 若运行时,输入:98 则以上程序的运行结果是 A.a_bit:1 B.a_bit:2 C.a_bit:2 D.a_bit:1 b_bit:2 b_bit:1 b_bit:1 b_bit:2 c_bit:0 c_bit:0 c_bit:1 c_bit:2 d_bit:1 d_bit:1 d_bit:0 d_bit:0 e_bit:2 e_bit:2 e_bit:2 e_bit:1 二、 填空题: 1. 与表达式a&=b等价的另一书写形式是 。 2. 以下程序段运行后的输出结果是 int a=1,b=2; if(a&b) printf(“* * *\\n”); esle printf(“$ $ $\\n”); 3. 设有char a,b若要通过a&b运算屏蔽掉a中的其它位,只保留第3和第7位(从 右边开始),则b的二进制是 44 name,p->age,p->sex); }
共分享92篇相关文档