最近在复习C语言基础,做这本书的习题.可惜没搜索到答案,就自己做了.
题目用电脑(mac环境下的xcode的c语言测试控制台)敲过的,就会直接给出来,不做标记.(意味着:基本不会错)
如果是自己做的,就会在前面标记一个 * .(意味着:个人水平所限,有可能是错的,嘻嘻,请指教)
1.设有如下定义:
若要使p指向data中的a域,正确的赋值语句是___。
A.p=&a; B.p=data.a; C.p=&data.a; D.*p=data.a;
答案:C
2.设有如下定义:
下面各输入语句中错误的是___。
A.scanf("%d",&(*p).age); B.scanf("%s",&std.name);
C.scanf("%c",&std[0].sex); D.scanf("%c",&(p->sex));
*答案:
这道题我打在电脑上,怎么都不很迷茫
3.有以下程序:
程序运行后的输出结果是___。
A.10 B.11 C.20 D.21
答案:B
4.以下程序的输出结果是___。
A.10 B.11 C.51 D.60
答案:C
5.有以下程序:
执行后输出结果是___。
A.产生语法错 B.随机值 C.A D.65
答案:C
6.以下程序的输出结果是___。
A.4 B.5 C.6 D.0
答案:D
7.设有如下枚举类型定义:
enum language{Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举量Fortran的值为___。
A.4 B.7 C.102 D.103
答案:C
8.若要声明一个类型名STP,使得定义语句“STP s;”等价于“char *s;”,以下选项中正确的是___。
A.typedef STP char *s; B.typedef *char STP;
C.typedef STP char; D.typedef char STP;
答案:D
9.若有以下说明和定义:
typedef int *INTEGER;
INTEGER p,*q;
以下叙述正确的是___。
A.p是int型变量 B.p是基类型为int的指针变量
C.q是基类型为int的指针变量 D.程序中可用INTEGER代替int类型名
答案:B
10.有以下程序:
程序运行后的输出结果是___。
A.10 B.20 C.30 D.40
答案:D
二、填空题
1.已有定义如下:
以下语句调用malloc()函数,使指针p指向一个具有struct node类型的动态存储空间,请填空。
p=(struct node *)malloc(_sizeof(struct node)__);
2.下面程序的运行结果是:。
答案:在xcode上打印出来是80. 我也不太懂