c语言结构体指针题,C语言复习题指针结构体.docx

C语言复习题指针结构体

C语言复习题_指针&结构体一、选择1、若有以下定义:char s[20]="programming",*ps=s; 则不能代表字符'o'的表达式是A。A) ps+2 B) s[2] C) ps[2] D) ps+=2,*ps2、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是B。 A) *pB) a[10] C) *a D) a[p-a]3、已知 int *p,a; p=&a; 这里的运算符 & 的含义D。A) 位与运算B) 逻辑与运算 C) 取指针内容 D) 取变量地址4、定义结构体如下:struct student { int num; char name[4]; int age; }; 则printf(“%d”,sizeof(struct student))的结果为: 12。5、若有定义如下:int i=3,*p=&i; 显示i的值的正确语句是B。A) printf(“%d”,p);B) printf(“%d”,*p); C) printf(“%p”,*p);D) printf(“%p”,p);6、在定义结构体时,下列叙述正确的是A。A) 系统不会分配空间B) 系统会按成员大小分配空间 C) 系统会按最大成员大小分配空间D) 以上说法均不正确7、指针是一种D。A) 标识符  B) 变量  C) 运算符  D) 内存地址8、定义struct s {int x; char y[6];} s1;,请问正确的赋值是C。A) s1.y=”abc”;B) s1->y=”abc”;C) strcpy(s1.y,”abc”);D) s1.strcpy(y,”abc”);9、已知定义“int x = 1, *p”,则合法的赋值表达式是A。A) p = &x B) p = x C) *p = &x D) *p = *x10、在C语句中,&后跟指针变量名,表示该指针变量的C。A) 值 B) 别名 C) 地址 D) 类型二、程序填空1、下面程序的功能是实现数组元素中值的逆序。#include void invert(int *s, int num);int main( ){ int i, n=5, a[5]={1,2,3,4,5}; 1; //调用函数逆序for(i=0;i<5;i++) 2;//输出逆序后的数组元素return 0;}void invert(int *s, int num){int *t,k;t=s+num;while( 3){k=*s;*s=*t;*t=k; 4 ; 5 ;}}答:(1) invert(a,n-1); (2) printf(“%4d”,a[i]) (3) sstruct TIME{int hour, minute, second;};void InputTime(struct TIME *p){scanf("%d : %d : %d", &p->hour, &p->minute, &p->second);}void OutputTime(struct TIME p){printf("%02d:%02d:%02d", p.hour, p.minute, p.second);}int Sub(struct TIME x, struct TIME y){i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值