沈阳师范大学大一上册C语言PTA题目集以及答案(第八章 编译预处理)

1-1
#define MAX 100和 int MAX=100;的效果相同,都是定义一个变量MAX并使其值为100。

(2分)

F
作者
周强
单位
青岛大学
1-1
答案正确
(2 分)
1-2
include <stdoi.h>;是正确的编译预处理命令。

(2分)

F
作者
颜晖
单位
浙大城市学院
1-2
答案正确
(2 分)
1-3
若有宏定义:#define S(a,b) t=a;a=b;b=t 由于变量t没定义,所以此宏定义是错误的。

(2分)

F
作者
王从银
单位
吉首大学
1-3
答案正确
(2 分)
1-4
C语言中,编译预处理后,所有的符号常量名和宏名都用相应的字符串替换。

(2分)

T

作者
黄隆华
单位
怀化学院
1-4
答案正确
(2 分)
1-5
#define ADD(X,Y) X+Y 的效果完全等同于定义一个函数ADD(X,Y)。

(2分)

F
作者
周强
单位
青岛大学
1-5
答案正确
(2 分)
1-6
预处理命令的前面必须加一个“#”号。

(2分)

T

作者
王从银
单位
吉首大学
1-6
答案正确
(2 分)
1-7
调用printf函数前,应使用编译预处理命令#include <stdio.h>。

(2分)

T

作者
颜晖
单位
浙大城市学院
1-7
答案正确
(2 分)
2-1
在“文件包含”预处理语句的使用过程中,当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( )。

(2分)

D.
先在源程序所在目录搜索,再按系统设定的标准方式搜索

作者
张高燕
单位
浙大城市学院
2-1
答案正确
(2 分)
2-2
若a、b、c、d、t均为int型变量,则执行以下程序段后的结果为( )。

#define MAX(A,B) (A)>(B)?(A):(B)
#define PRINT(Y) printf(“Y=%d\n”,Y);

a=1;b=2;c=3;d=4;
t=MAX(a+b,c+d);
PRINT(t);
(2分)

D.
Y=7

作者
张高燕
单位
浙大城市学院
2-2
答案正确
(2 分)
2-3
下列程序段的输出结果是( )。

#define M(x, y) x / y
printf("%d", M(10,2+3));
(2分)

D.
8

作者
张高燕
单位
浙大城市学院
2-3
答案正确
(2 分)
2-4
C语言的编译系统对宏命令的处理( )。

(2分)

C.
在对源程序中其他语句正式编译之前进行的

作者
张高燕
单位
浙大城市学院
2-4
答案正确
(2 分)
2-5
以下描述不正确的是( )。

(2分)

B.
宏名必须用大写字母表示

作者
张高燕
单位
浙大城市学院
2-5
答案正确
(2 分)
2-6
下列程序段的输出结果是( )。

#define MA(x, y) ((x)*(y))
printf("%d", MA(5, 4+2)-7);
(2分)

B.
23

1

作者
张高燕
单位
浙大城市学院
2-6
答案正确
(2 分)
2-7
若有以下宏定义:

#define N 2
#define Y(n) ((N+1)n)
则执行语句“z=2
(N+Y(5));”后的结果是( )。

(2分)

D.
z=34

作者
张高燕
单位
浙大城市学院
2-7
答案正确
(2 分)
2-8
以下正确的叙述是( )。

(2分)

B.
宏替换不占用运行时间,只占用编译时间

作者
张高燕
单位
浙大城市学院
2-8
答案正确
(2 分)
2-9
请读程序:

#include<stdio.h>
#define LETTER 0
int main()
{
        char str[20]=“C Language”,c;
        int i;
        i=0;
        while((c=str[i])!=‘\0’)
        {
            i++;
            #if LETTER
                if(c>=‘a’&&c<=‘z’)
                    c=c-32;
            #else
                if(c>=‘A’&&c<=‘Z’)
                    c=c+32;
            #endif
            printf(“%c”,c);
        }
        return 0;

}
上面程序的运行结果是

(2分)

A.
c language

作者
jinr
单位
浙江大学
2-9
答案正确
(2 分)
2-10
C语言程序中,要使用数学库函数(例sqrt、sin等),需要在程序最前面加上包含文件的预处理命令( )

(2分)

A.
#include <math.h>

作者
C课程组
单位
武汉理工大学
2-10
答案正确
(2 分)
2-11
下列选项中不会引起二义性的宏定义是( )。

(2分)

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

作者
张高燕
单位
浙大城市学院
2-11
答案正确
(2 分)
2-12
关于宏的叙述中正确的是。

(2分)

B.
宏替换不占用运行时间,但占用编译时间

作者
陈英
单位
南昌航空大学
2-12
答案正确
(2 分)
4-1
下列程序段的输出结果是
5

#define CIR® r*r
int a=1,b=2,t;
t=CIR(a+b);
printf("%d\n",t);
作者
张高燕
单位
浙大城市学院
4-1
答案正确
(1 分)
4-2
下列程序段的输出结果是
12345678

#define N 2
#define M N+1
#define NUM (M+1)*M/2
int i;
for(i=1;i<=NUM;i++)
printf("%d",i);
作者
张高燕
单位
浙大城市学院
4-2
答案正确
(1 分)
4-3
阅读以下程序并回答问题。

#include <stdio.h>
#define S(x) 3 < (x) < 5
int a, n;
void f1(int n)
{ for(; n >= 0; n–){
if(n % 2 != 0) continue;
printf("%d “, n); /%d后面有1个空格/
}
printf(”\n");
}
double f2(double x, int n)
{ if(n == 1) return x;
else return x * f2(x, n-1);
}
int main(void)
{
int a = 9 ;
printf("%d,%d\n", a, S(a));
f1(4);
printf("%.1f\n", f2(2.0, 3));
printf("%d,%d\n", n, S(n));
return 0;
}
(1)程序运行时,第1行输出
9,1

(2)程序运行时,第2行输出
4 2 0

(3)程序运行时,第3行输出
8.0

(4)程序运行时,第4行输出
0,1

作者
张高燕
单位
浙大城市学院
4-3
答案正确
(4 分)
4-4
下列程序段的输出结果为
5,11

#define f(a,b,x) a*x+b
printf("%d,%d\n", f(1,2,3), f(f(1,2,3),4,2));
作者
张高燕
单位
浙大城市学院
4-4
答案正确
(1 分)
4-5
阅读以下程序并回答问题。

#include <stdio.h>
#define T© (c == c == c)
double f1()
{ int x;
return x = 7%4;
}
void f2(int n)
{ for(; n >= 1; n–)
printf("%2d", n%3);
printf("\n");
}
double f3(int n)
{ if(n == 1) return 1.0;
else return n + f3(n-1);
}
int main(void)
{ printf("%d,%d\n", T(5), T(1));
printf("%.1f\n", f1());
f2(4);
printf("%.1f\n", f3(3));
return 0;
}
(1)程序运行时,第1行输出
0,1

(2)程序运行时,第2行输出
3.0

(3)程序运行时,第3行输出
1 0 2 1

(4)程序运行时,第4行输出
6.0

作者
张高燕
单位
浙大城市学院
4-5
部分正确
(2 分)
4-6
阅读以下程序并回答问题。

#include <stdio.h>
#define T© ((© >= ‘0’) && (© <= ‘9’) ? © - ‘0’ : -1)
void f1(char ch)
{ switch(ch){
case ‘0’: printf(“0”);
case ‘1’: printf(“1”);
case ‘2’: printf(“2”); break;
case ‘3’: printf(“3”);
default: printf(“9”);
}
printf("\n");
}
double f2()
{ return (double)(5/2);
}
double f3(int n)
{ if(n == 1) return 1.0;
else return 1.0 + 1.0/f3(n-1);
}
int main(void)
{ printf("%d,%d\n", T(‘7’), T(‘a’));
f1(‘1’);
printf("%.1f\n", f2());
printf("%.3f\n", f3(4));
return 0;
}
(1)程序运行时,第1行输出
7,-1

(2)程序运行时,第2行输出
12

(3)程序运行时,第3行输出
2.0

(4)程序运行时,第4行输出
1.667

作者
张高燕
单位
浙大城市学院
4-6
答案正确
(4 分)
4-7
下列语句的运算结果为
7,-13

#define F(x) x - 2
#define D(x) x * F(x)
printf("%d,%d", D(3), D(D(3))) ;
作者
张高燕
单位
浙大城市学院
4-7
答案正确
(1 分)
4-8
C语言的编译预处理功能主要包括
宏定义

文件包含

条件编译

作者
张高燕
单位
浙大城市学院
4-8
答案正确
(3 分)

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值