云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第三章(C语言程序设计同步练习指导)

第三章(C语言程序设计同步练习指导)

  • 62 次阅读
  • 3 次下载
  • 2026/4/22 23:13:29

a+=1;

if(y

printf(\}

答:x=5,y=4,a=1

33.下面程序的输出是( )。 main() {

int x=2; while(x--);

printf(\ } 答:-1

循环while(x--);的循环体为一条空语句。当x为0时,循环结束,执行x—后,x的值为-1。 34.以下循环体的执行次数是( )。 main() { int i,j;

for(i=0,j=1;i<=j+1;i+=2,j--)printf(\A)3 B)2 C)1 D)0 答:C)

35.下列程序执行后的输出结果是( )。 main()

{ int a[3][3], *p, i; p=&a[0][0];

for(i=0;i<9;i++) p[i]=i+1; printf(\答:6

a[0][0]=p[0]=1 a[0][1]=p[1]=2 a[0][2]=p[2]=3 a[1][0]=p[3]=4 a[1][1]=p[4]=5 a[1][2]=p[5]=6 a[2][0]=p[6]=7 a[2][1]=p[7]=8 a[2][2]=p[8]=9 36.下列程序执行后的结果是( )。 main()

{ int i,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2,j++)

if(j>=i)m=1;n++; printf(\答:1

语句n++;并不在循环体内。循环体仅包含语句if(j>=i)m=1;。 37.阅读下列程序: #include #define MAX_COUNT 4 void fun();

64

main() {

int count;

for(count = 1; count <= MAX_COUNT; count++) fun(); }

void fun() {

static int i;

i += 2; printf(\}

上述程序的输出结果是( )。 答:2468

3.4 编译预处理

3.4.1 考试要求

(1)宏定义

不带参数的宏定义;带参数的宏定义。 (2)文件包含 3.4.2 要点指导

1. 宏定义

不带参数的宏定义: #define 宏名 字符串

在编译之前,将宏名替换成字符串。

带参数的宏定义:

#define 宏名(形式参数表) 含形式参数的字符串 宏替换过程:

先把实际参数与形式参数一一对应,再把每个实际参数替换到字符串中

对应形式参数出现的位置,将这个形成的字符串替换到程序中宏名出现的位置。 2.文件包含

文件包含就是在一个文件中把另一个文件的内容包含进来。 文件包含格式:

#include ”文件名” 或#include <文件名>

3.4.3 同步练习

1.以下for 语句构成的循环执行了( )次。 #include #define N 2 #define M N+1

#define NUM (M+1)*M/2 main()

65

{

int i,n=0;

for (i=1;i<=NUM;i++) {

n++;

printf(\ }

printf(\ } 答:8

宏定义NUM先替换为(M+1)*M/2,(N+1+1)*N+1/2,(2+1+1) *2+1/2 2.以下程序的输出结果是( )。 #include

#define FUDGE(y) 2.84+y

#define PR(a) printf(\ #define PRINT1(a) PR(a); putchar('\\n') main () { int x=2;

PRINT1(FUDGE(5)*x); }

A)11 B)12 C)13 D)15 答:12

宏替换过程:

PRINT1(FUDGE(5)*x) PR(FUDGE(5)*x)

printf(\printf(\printf(\3.程序的运行结果是( )。 #define MIN(x,y) (x)<(y)?(x):(y) main()

{ int i=10,j=15,k; k=10*MIN(i,j); printf(\}

A) 10 B) 15 C) 100 D) 150 答:B)

宏替换过程: k=10*MIN(i,j)

k=10*(i)<(j)?(i):(j) k=10*i

4.程序的运行结果是( )。 #define MAX(A,B) (A)>(B)?(A):(B) #define PRINT(Y) printf(\

66

main()

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

答:Y=3

5.程序的运行结果是( )。 #define PT 5.5

#define S(x) PT*x*x main()

{ int a=1,b=2;

printf(\}

答:9.5 宏替换过程: S(a+b) PT*a+b*a+b 5.5*a+b*a+b 5.5*1+2*1+2

6.程序的运行结果是( )。 #define MING 0 main()

{ char str[20]=\ int i=0;

while((c=str[i])!='\\0') {i++; #if MING

if(c>='a'&&c<='z') c=c-32; #else

if(c>='A'&&c<='Z') c=c+32; #endif

printf(\ } }

答:C LANGUAGE

因为MING已定义,因此执行if(c>='a'&&c<='z') c=c-32;,即将小写字母转换成大写字母。 7.下列程序执行后的输出结果是( )。 #define MA(x) x*(x-1) main()

{ int a=1,b=2; printf(”%d\\n”,MA(1+a+b));} 答:8

宏替换过程: 1+a+b*(1+a+b-1)

8.程序的运行结果是( )。

67

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

a+=1; if(y

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com