2021智慧树知到(山东理工大学)《C语言编程新思路》章节测试答案共14章(6)

A、#define POWER(x) x*x

B、#define POWER(x) (x)*(x)

C、#define POWER(x) (x*x)

D、#define POWER(x) ((x)*(x))

答案:D

5、在“文件包含”预处理语句的使用形式中,当#include后面的文件名用” ”(双引号)括起时,寻找被包含文件的方式是()。

A、直接按系统设定的标准方式搜索目录

B、现在源程序所在目录搜索,再按系统设定的标准方式搜索

C、仅仅搜索源程序所在目录

D、仅仅搜索当前目录

答案:B

6、有以下程序: #define ADD(x) x+x #include "stdio.h" int main(void) { int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf("sum=%d",sum); return 0; } 该程序的运行结果是()。

A、sum=9

B、sum=10

C、sum=12

D、sum=18

答案:B

7、若有如下宏定义: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出结果是()。 int a; a=Y; printf("%d ",Z); printf("%d ",- -a);

A、7 6

B、12 6

C、12 5

D、7 5

答案:D

8、以下程序的运行结果是()。 #define MAX(A,B) (A)>(B)?(A): (B) #define PRINT(Y) printf(“Y=%d ”,Y) #include “stdio.h” int main(void) { int a=1,b=2,c=3,d=4,t; t=MAX(a+b,c+d) PRINT(t); return 0; }

A、Y=3

B、Y=7

C、Y=0

D、存在语法错误

答案:B

9、以下程序的输出结果是()。 #include <stdio.h> #define MUL(x,y) (x)*y #include “stdio.h” int main(void) { int a=3,b=4,c; c=MUL(a++,b++); printf("%d",c); return 0; }

A、12

B、15

C、20

D、16

答案:A

10、用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是()。

A、#define f(x) 4*x*x+3*x+2

B、#define f 4*x*x+3*x+2

C、#define f(a) (4*(a)*(a)+3*(a)+2)

D、#define (4*a*a+3*a+2) f(a)

答案:C

第十二章测试

1、C语言规定结构体变量系统分配给它的存储空间是()。

A、该结构体中最后一个成员所需的存储空间

B、该结构体中所有成员所需存储空间的总和

C、该结构体中第一个成员所需的存储空间

D、该结构体中占用最大存储空间的成员所需的存储空间

答案:B

2、以下对结构体变量s 中成员age的合法法引用是()。 #include<string.h> struct student {int age; int num; } s,*p; p=&s;

A、student.s.age

B、student.age

C、p->age

D、s->age

答案:C

3、有如下定义: struct date {int y ; int m ; int d ;}; struct person { char name[20]; char sex; struct date birthday; }a; 对结构体变量a的出生年份进行赋值时,下面正确的赋值语句是()。

A、y =1958

B、birthday.y=1958

C、a.birthday.y =1958

D、a.y =1958

答案:C

4、设有以下说明语句 struct stu { int a; float b; }stutype; 则以下叙述不正确的是()。

A、struct 是结构体类型的关键字

B、struct stu 是用户定义的结构体类型名

C、stutype 是用户定义的结构体类型名

D、a 和 b 都是结构体成员名

答案:B

5、以下结构体类型说明和变量定义中正确的是()。

A、typedef struct {int n; char c;} REC; REC x,y;

B、struct REC; {int n; char c;}; REC x,y;

C、typedef struct REC ; {int n=0; char c=’A’; } x,y;

D、struct {int n; char c; } REC x,y;

答案:A

6、下面程序的运行结果是()。 struct st { int n; int a[20]; }; void f(int *a, int n) { int i; for(i=0;i<n;i++) a+=I; } int main() { int i; struct st x={10,{2,3,1,6,8,7,5,4,10,9}}; f(x.a, x.n); for(i=0;i<s.n;i++) printf(”%d,”,x.a); }

A、2,4,3,9,12,12,11,11,18,18,

B、3,4,2,7,9,8,6,5,11,10,

C、2,3,1,6,8,7,5,4,10,9,

D、1,2,3,6,8,7,5,4,10,9,

答案:A

7、以下关于typedef 的叙述错误的是()。

A、typedef只是将已存在的类型用一个新的名字来代表

B、用typedef可以增加新类型

C、用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D、用typedef为类型说明一个新名,通常可以增加程序的可读性

答案:B

8、下面程序的运行结果是()。 #include <stdio.h> #include <string.h> typedef struct{ char name[9];char sex; float score[2]; } stu; stu f(stu a) {stu b={“zhao”,’m’,85.0,90.0}; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i<2;i++) a.score=b.score; return a; } int main() {stu c={"qian",'f',95.0,92.0},d; d=f(c); printf(“%s,%c,%2.0f,%2.0f\n”,d.name,d.sex,d.score[0],d.score[1]); }

A、qian,f,95,92

B、qian,m,85,90

C、zhao,m,85,90

D、zhao,f,95,92

答案:C

9、以下程序运行后的输出结果是()。 #include <stdio.h> struct S {int n; int a[20];}; void f(struct S *p) { int i,j,t; for(i=0;i<p->n-1;i++) for(j=i+1;j<p->n;j++) if(p->a>p->a[j]) { t=p->a; p->a=p->a[j]; p->a[j]=t; } } int main() { int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++) printf(”%d,”,s.a); }

A、10,9,8,7,6,5,4,3,2,1,

B、1,2,3,4,5,6,7,8,9,10,

C、2,3,1,6,8,7,5,4,10,9,

D、10,9,8,7,6,1,2,3,4,5,

答案:B

10、有以下程序段 typedef struct node { int data; struct node *next; }NODE; NODE *p; 以下叙述正确的是()。

A、NODE *p;语句出错

B、p 是指向struct node 结构体变量的指针的指针

C、p 是struct node 结构体变量

D、p 是指向struct node 结构体变量的指针

答案:D

11、若定义如下结构,则能打印出字母M的语句是()。 struct person{ char name[9]; int age;}; struct person class[10]={"Wujun",20, "Liudan",23, "Maling",21, "zhangming",22};

A、printf("%c\n",class[3].name);

B、printf("%c\n",class[2].name[0]);

C、printf("%c\n",class[2].name[1]);

D、printf("%c\n",class[3].name[1]);

答案:B

12、以下程序段的运行结果是()。 union { int n; char str[2]; }t; t.n=80; t.str[0]='a'; t.str[1]=0; printf("%d\n", t.n);

A、80

B、a

C、0

D、97

答案:D

13、以下对C语言中共用体类型数据的叙述正确的是()。

A、可以对共用体变量名直接赋值

B、一个共用体变量中可以同时存放其所有的成员

C、一个共用体变量中不能同时存放其所有成员

D、共用体类型定义中不能出现结构体类型的成员

答案:C

14、若有以下说明和定义语句,则下面引用形式中不正确的是 ()。 struct student { int age; int num; }; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; struct student *p; p=stu;

A、(p++)->num

B、p++

C、(*p).num

D、p=&stu.age

答案:D

15、以下scanf函数调用语句中,对结构体变量成员的不正确引用是()。 struct pupil {char name[20 ]; int age ; int sex; }pup[5],*p; p=pup;

A、scanf(“%s“,pup[0].name);

B、scanf(“%d“,&pup[0].age);

C、scanf(“%d“,&sex);

D、scanf(“%d“,P->age);

答案:C

16、当说明一个共用体变量时系统分配给它的内存是()。

A、各成员所需内存量的总和

B、结构中第一个成员所需内存量

C、成员中占内存量最大者所需的容量

D、结构中最后一个成员所需内存量

答案:C

17、设有以下说明,则下面不正确的叙述是()。 union data { int i; char c; float f; }un;

A、un所占的内存长度等于成员f的长度

B、un的地址和它的各成员地址都是同一地址

C、un可以作为函数参数

D、不能对un赋值,但可以在定义un时对它初始化

答案:C

18、定义结构体类型变量teach1,不正确的是()。

A、struct teacher {int num; int age; }; struct teacher teach1;

B、struct teacher {int num; int age; }teach1;

C、struct {int num; int age; }teach1;

D、struct {int num; int age; }teacher; struct teacher teach1;

答案:D

19、下面程序的运行结果是()。 #include <stdio.h> union data { int i; char c; double d; }a[2]; void main() {printf("%d\n",sizeof(a)); }

A、16

B、8

C、4

D、2

答案:A

20、以下对结构体变量stul中成员age的非法引用是()。 struct student {int age; int num; }stul,*p; p=&stul;

A、stul.age

B、student.age

C、p->age

D、(*p).age

答案:B

第十三章测试

1、运行下列程序,输出结果为()。 #include <stdio.h> int main() { int x=040; printf("%d\n",x=x<<1); return 0;}

A、100

B、160

C、120

D、64

答案:D

2、如有short int a,b,若要通过a=a&b使a的低8位置0,高8位不变,则b应该是()。

A、0xff00

B、0x0000

C、0x00ff

D、0xffff

答案:A

3、下列描述正确的是()。

A、用C语言可直接进行位运算,因此C语言是一种低级语言。

B、参加位运算的数据可以是任何类型的数据。

C、在一个数左移时被溢出的高位中不包含1的情况下,左移1位相当于该数乘以2。

D、有表达式y=~5,则y的值等于-5.

答案:C

4、若有short int a=0x5566; 则执行a= a|0xff00 后,a的值是()。

A、0x5500

B、0x0066

C、0x5566

D、0xff66

答案:D

5、a为任意整数,能将变量a清零的表达式为()。

A、a=~a

B、a=a^a

C、a=a&a

D、a=a|a

答案:B

6、如有short int a,b; ,若要通过a=a|b使a的低8位置1,高8位不变,则b应该是 ()。

A、0xff00

B、0x0000

C、0x00ff

D、0xffff

答案:C

7、运行下列程序,输出结果为()。 #include <stdio.h> int main() { printf("%d\n",12>>2); return 0; }

A、0

B、1

C、3

D、4

答案:C

8、若有short int a=0x5566; 则执行a= a&0x00ff 后,a的值是()

A、0x0066

B、0x5500

C、0x00ff

D、0x5566

答案:A

9、表达式5+3<<2的值为()。

A、32

B、17

C、16

D、11

答案:A

10、若有short int a=0x7700; ,则执行a=a^0x00ff后,a的值是()。

A、0x0000

B、0x7700

C、0x77ff

D、0xffff

答案:C

第十四章测试

1、关于文件,下列理解不正确的是()。

A、C语言把文件看作是字节的序列,即由一个个字节数据顺序组成

B、所谓文件一般指存储在外部介质上数据的集合

C、系统自动在内存区为每一个正在使用的文件开辟一个缓冲区

以上相关的更多内容请点击智慧树查看,该题目的答案为网上收集整理仅供参考!

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

大家都在搜

相关推荐:

猜您喜欢