首页 理论教育 C语言编译预处理和指针实操|全真模拟3合1

C语言编译预处理和指针实操|全真模拟3合1

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:A)在C 语言中,预处理命令行都以“#”开头B)预处理命令行必须位于C 源程序的起始位置C)#include 必须放在C 程序的起始位置D)C 语言的预处理不能实现宏定义和条件编泽的功能2.以下程序的输出结果是()。A)宏定义行中定义了标识符N 的值为整数100B)上述宏定义行实现将100 赋给标示符NC)在运行时用100 替换标识符ND)在编译程序对C 源程序进行预处理时用100 替换标识符N11.以下程序的输出结果是()。

(单选题)

1.关于C 语言预处理命令的叙述中正确的是(  )。

A)在C 语言中,预处理命令行都以“#”开头

B)预处理命令行必须位于C 源程序的起始位置

C)#include 必须放在C 程序的起始位置

D)C 语言的预处理不能实现宏定义和条件编泽的功能

2.以下程序的输出结果是(  )。

A)14.0

B)7.5

C)程序有错无输出结果

D)31.5

3.关于宏的叙述中正确的是(  )。

A)宏名称必须用大写字母表示

B)宏定义必须位于源程序中所有语句之前

C)宏调用比函数调用耗费时间

D)宏替换没有数据类型限制

4.以下程序的输出结果是(  )。

A)33 B)143

C)28 D)197

5.设#define IsDIV(k,n)((k%n==l)? 1:0),则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是(  )。

A)判断m 是否能被5 和7 同时整除

B)判断m 被5 或者7 整除是否余1

C)判断m 被5 和7 整除是否都余1

D)判断m 是否能被5 或者7 整除

6.以下程序的输出结果是(  )。

A)0 B)10 C)-12 D)-20

7.以下程序的输出结果是(  )。

A)64,10 B)10,64 C)10,10 D)64,64

8.以下程序的输出结果是(  )。

A)12 12 B)12 7 C)1211 D)117

9.关于预处理命令的叙述中错误的是(  )。

A)预处理命令行的最后不能以分号表示结束

B)C 程序对预处理命令行的处理是在程序执行的过程中进行的

C)#define MAX 是合法的宏定义命令行

D)在程序中凡是以“#”开始的语句行都是预处理命令行

10.关于#define N 100 的叙述中正确的是(  )。

A)宏定义行中定义了标识符N 的值为整数100

B)上述宏定义行实现将100 赋给标示符N

C)在运行时用100 替换标识符N

D)在编译程序对C 源程序进行预处理时用100 替换标识符N

11.以下程序的输出结果是(  )。

A)17,37 B)49,289 C)17,289 D)49,2401

12.以下程序的输出结果是(  )。

A)9 B)8 C)7 D)6

13.关于#include 的叙述中正确的是(  )。

A)在包含文件中,不得再包含其他文件

B)#include 命令行不能出现在程序文件的中间

C)在一个程序中,允许使用任意数量的#include 命令行

D)虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接

14.以下程序的输出结果是(  )。

A)21 B)20 C)10 D)11

15.设void fun(int n,char *s){……},则下面对函数指针的定义和赋值均正确的是(  )。

A)void *pf();*pf=fun;

B)void (*pf)(int, char*); pf=fun;

C)void *pf();pf=fun;

D)void (*pf)(int,char); pf=&fun;

16.关于int(*f)(int);的叙述中正确的是(  )。

A)f 是基类型为int 的指针变量

B)f 是指向int 类型一维数组的指针变量

C)f 是指向函数的指针变量,该函数具有一个int 类型的形参

D)f 是函数名,该函数的返回值是基类型为int 类型的地址

17.关于变量和地址的叙述中正确的是(  )。

A)语句p=NULL;执行后,指针p 指向地址为0 的存储单元

B)语句“p=NULL;”与“p=\0;”是等价的语句

C)“int* p1;int **p2; int *p3;”都是合法的定义指针变量的语句

D)指针变量只能通过求地址运算符(&)来获得地址值

18.关于函数参数的叙述中正确的是(  )。

A)函数的形参类型不能是指针类型

B)函数的类型不能是指针类型

C)基类型不同的指针变量可以相互混用

D)设有指针变量为“double *p”,则“p+l”将指针p 移动8 个字节

19.关于int* func(int a[10],int n);的叙述中正确的是(  )。

A)说明中的a[10]写成a[]或*a 效果完全一样

B)形参a 对应的实参只能是数组名

C)func 的函数体中不能对a 进行移动指针(如a++)的操作

D)只有指向10 个整数内存单元的指针,才能作为实参传给a

20.设int x=0,*p;下列赋值语句正确的是(  )。

A)*p=x; B)p=NULL;

C)p=x; D)*p=NULL;

21.关于地址的叙述中错误的是(  )。

A)改变函数形参的值,不会改变对应实参的值

B)函数可以返回地址值

C)当在程序的开头包含头文件stdio.h 时,可以给指针变量赋NULL

D)可以给指针变量赋一个整数作为地址值

22.设float x;则以下对指针变量p 进行定义且赋初值的语句中正确的是(  )。

A)floa t*p=1; B)float *p=&x;

C)float p=&x; D)int *p=(float)x;

23.以下程序的输出结果是(  )。

A)2,1,2,1 B)1,2,2,1(www.xing528.com)

C)1,2,1,2 D)2,1,1,2

24.没有编译错误的程序段是(  )。

A)char* sp, s[10]; sp="Hello";

B)char* sp: s[10];s="Hello";

C)char str1[10]= "computer",str2[10];str2=str1:

D)char mark[];mark="PROGRAM";

25.设float a[10],*s=a;以下能够代表数组元素a[3]的是(  )。

A)(*s)[3] B)*s[3]

C)*s+3 D)*(s+3)

26.以下程序的输出结果是(  )。

A)4 B)3

C)2 D)1

27.若int a[2][3],*p[3];则以下语句中正确的是(  )。

A)p[0]=&a[1][2]; B)p[O]=a;

C)*p+=1; D)p=a;

28.若int year=2009, *p=&year;以下不能使变量year 中的值增至2010 的语句是(  )。

A)(*p)++; B)++(*p);

C)*p++; D)*p+=1;

29.若float a,*p=&a;以下叙述中错误的是(  )。

A)定义语句中的*号是一个说明符

B)定义语句中的p 只能存放float 类型变量的地址

C)定义语句中*p=&a 把变量a 的地址作为初值赋给指针变量p

D)定义语句中的*号是一个间址运算符

30.若int x[10], *pt=x;则对x 数组元素的正确引用是(  )。

A)*(x+3) B)*&x[10]

C)*(pt+10) D)pt+3

31.以下程序的输出结果是(  )。

A)5.00 B)4.0 C)4.21 D)5.0

32.以下程序的输出结果是(  )。

A)STRING??? B)PROGRAM

C)STRING ? D)STRING?

33.以下程序的输出结果是(  )。

A)4 B)3

C)1 D)2

34.以下程序的输出结果是(  )。

A)7 B)8

C)9 D)0

35.以下程序的输出结果是(  )。

A)3,4,8,10, B)1,4,5,9,

C)1,0,7,0, D)1,2,3,4,

36.以下程序的输出结果是(  )。

A)2,2,3,4,5, B)6,2,3,4,5,

C)1,2,3,4,5, D)2,3,4,5,6,

37.以下程序的输出结果是(  )。

A)b,B,b,A B)a,B,a,B

C)a,B,B,a D)b,B,B,A

38.以下程序的输出结果是(  )。

A)3,5,5,3,5 B)3,5,3,5,5

C)5,3,5,3,5 D)5,3,3,5,5

39.以下程序的输出结果是(  )。

A)17 B)22 C)24 D)23

40.以下程序的输出结果是(  )。

A)0 0 B)3 4

C)7 1 D)4 3

41.以下程序的输出结果是(  )。

A)90 B)99 C)00 D)09

42.若运行时从键盘上输入OPEN THE DOOR,以下程序的输出结果是(  )。

A)OPEN THE DOOR B)open the door

C)oPEN tHE dOOR D)OpenThe Door

43.以下程序的输出结果是(  )。

A)321,cba B)123,abc

C)abc,123 D)1bc,a23

44.以下函数的功能是(  )。

A)统计x 和y 所指字符串中相同的字符个数

B)统计x 和y 所指字符串中最前面连续相同的字符个数

C)将y 所指字符串赋给x 所指存储空间

D)查找x 和y 所指字符串中是否有'\0'

45.以下函数的功能是(  )。

A)计算s 所指字符串的长度

B)比较两个字符串的大小

C)计算s 所指字符串占用内存字节的个数

D)将s 所指字符串复制到字符串t 中

46.以下程序的输出结果是(  )。 (说明:字母A 的ASCII 码值是65)

A)YT B)YE C)BT D)BY

47.以下程序的输出结果是(  )。

A)Morning B)fternoon

C)orning D)Afternoon

48.以下程序的输出结果是(  )。

A)Program B)Prohsbn

C)Progsbn D)Prphsbn

49.以下程序的输出结果是(  )。

A)ab B)*****a*b

C)a*b**** D)a*b

50.以下函数的功能是(  )。

A)使指针a 指向b 所指字符串

B)检查a 和b 所指字符串中是否有'\0'

C)将a 所指字符串赋给b 所指空间

D)将a 所指字符串和b 所指字符串进行比较

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

我要反馈