c语言程序填空 功能:输出结果为:,[G]福建省C语言二级考试(选择+填空+程序填空+输出结果)...

本文深入探讨了C语言中的预处理指令,包括宏定义、条件编译等,并通过实例解析了预处理命令的使用。同时,文章详细讲解了指针的概念和操作,如指针变量的声明、指针算术运算以及指针在数组和函数中的应用。通过实例展示了如何正确地使用宏定义避免二义性,以及如何进行有效的指针操作。
摘要由CSDN通过智能技术生成

29

main()

{ int a=3,b=5,c; c=2*MIN(a,b); printf(\ } A. 3 B. 5 C.6 D.10

51407下列#include命令中,正确的是( A )。 A. #include \ B. #include [math.h] C.#include (math.h) D.#include {math.h} 51408下面程序的输出结果是( C )。 #include #define MON 1

#define TUE 2*MON #define WED 3*TUE void main()

{printf(\ } A. 2 B. 3 C.4 D.5

51409下面错误的叙述是( A )。

A. 预处理命令行必须位于C源程序的起始位置 B. 在C语言中,预处理命令行都以\开头

C.C程序在开头可以不包含预处理命令行:#include D.C语言的预处理可以实现宏定义和条件编译的功能

51410以下程序的运行结果是( B )。 #define MUL(r) r*r main()

{int a=2,b=3,c; c=MUL(a+b)*2; printf(\ } A. 10 B. 14 C.36 D.50

51411下面程序的运行结果是( C )。 #define N 10

#define K(x) x*x #define T(x) (x*x) main( )

{int a,b; a=9%K(N); b=9%T(N); printf(\ } A. 9,9 B. 9,90 C.90,9 D.90,90

51412以下在任何情况下计算平方数时都不会引起二义性的宏定义是( D )。 A. #define XPF(x) x*x B. #define XPF(x) (x)*(x)

30

C.#define XPF(x) (x*x) D.#define XPF(x) ((x)*(x)) 51413以下程序的运行结果是( C )。 #define X a+b main( )

{ int a=3,b=4,s1; s1=2*X;

printf(\ } A. 14 B. 6 C.10 D.8

51414下面叙述错误的是( C )。

A. “#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE B. 预处理命令行都必须以“#”开头

C.预处理命令行必须以分号结束 D.C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率

51415下面叙述正确的是( A )。

A. 宏展开不占用运行时间,只占用编译时间 B. 预处理命令也是C语句,必须以分号结束

C.一个源程序只能有一个预编译处理命令行 D.宏名必须用大写字母表示

51416下面叙述错误的是( D )。

A. “#inclue ”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令 B. “#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE C.C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 D.宏定义也是C语句,必须在行末加分号

51417若有定义:#define PI 3,则表达式PI*2*2的值为( A )。 A. 12 B. 4

C.322 D.不确定

51418若有定义:#define F 2+3,则表达式F*F的值为( C )。 A. 25 B. 13 C.11 D.17

51500下程序的运行结果是( A )。 void ast (int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; } main()

{ int a=4,b=3,c,d; ast(a,b,&c,&d);

printf(\ } A. 7,1 B. 1,7

C.7,-1 D.c、d未赋值,编译出错

31

51501有以下语句: int a[5]={0,1,2,3,4},i; int *p=a; 设0≤i<5,对a数组元素不正确的引用是( C )。 A. *(&a[i]) B. a[p-a] C.*(*(a+i)) D.p[i]

51502若有定义int *p1,*p2; 则错误的表达式是( A )。 A. p1+p2 B. p1-p2 C.p151503以下叙述错误的是( D )。

A. 存放地址的变量称为指针变量 B. NULL可以赋值给任何类型的指针变量

C.一个指针变量只能指向类型相同的变量 D.两个相同类型的指针变量可以作加减运算

51504以下程序段运行后,表达式*(p+4)的值为( B )。 char a[]=\ char *p; p=a;

A. 'n' B. 'a'

C.存放'n'的地址 D.存放'a'的地址

51505以下程序段运行后,表达式*(p++)的值为( A )。 char a[5]=\ char *p=a;

A. 'w' B. 存放'w'的地址 C.'o' D.存放'o'的地址

51506若有定义: int *p,k=4; p=&k; 以下均代表地址的是( C )。 A. k, p B. &k, &p C.&k, p D.k, *p

51507若有定义:double *q,p;则能给输入项读入数据的正确程序段是( B )。 A. q=&p;scanf(\ B. q=&p;scanf(\C.*q=&p;scanf(\ D.*q=&p;scanf(\

51508若已定义: int q=5; 对① int *p=&q;和② p=&q; 这两条语句理解错误的是( C )。 A. ①是对p定义时初始化,使p指向q;而②是将q的地址赋给p B. ①和②中的&q含义相同,都表示给指针变量赋值

C.①是对p定义时初始化,使p指向q;而②是将q的值赋给p所指向的变量 D.①和②的执行结果都是把q的地址赋给p

51509下面语句错误的是( A )。

A. int *p; *p=20; B. char *s=\C.char *str=\ D.char *str;str=\

51510若有定义int a[2][3],*p=a;,则能表示数组元素a[1][2]地址的是( D )。 A. *(a[1]+2) B. a[1][2] C.p[5] D.p+5

32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值