C语言程序设计习题(10)

2019-08-30 22:30

D) 一个变量说明为static存储类是为了限制其它编译单位的引用.

二. 填空题

[12.9] 以下程序的输出结果是______.

main()

{ int a=3, b=2, c=1; c-=++b; b*=a+c;

{ int b=5, c=12; c/=b*2; a-=c;

printf(“%d,%d,%d,”,a,b,c); a+=- -c; }

printf(“%d,%d,%d\\n”,a,b,c); }

[12.10] 以下程序的输出结果是______.

void fun()

{ static int a;

a +=2; printf(“%d”,a ); }

main()

{ int cc;

for(cc=1; cc<=4 ; cc++) fun(); printf(“\\n”) }

第十三章 编译预处理和动态存储分配

一. 选择题

[13.1] 以下程序的输出结果是

A) 15 B) 100 C) 10

D) 150

#define MIN(x,y) (x)<(y)?(x):(y) main()

{ int i,j,k;

i=10: j=15; k=10*MIN(i,j); printf(%d\\n\ }

[13.2] 以下程序中的for循环执行的次数是 A)5 B)6 C)8 D)9

#define N 2 #define M N+1

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

{ int i;

for (i=1:i<=NUM; i++); printf(\

}

[13.3] 以下程序的输出结果是

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

#define FUDGF(y) 2.84+y

#define PR(a) printf(\#define PRINT1(a) PR(a): putchar('\\n') main()

{ int x=2;

PRINT1(FUDGF(5)* x); }

[13.4] 以下程序的输出结果是 A)1 B)7 C)9 D)11

fut(int **s,int P[2][3]) { **s=p[1][1]; } main()

{ int a[2][3]={1,3,5,7,9,11 },*p; p=(int *)malloc(sizeof(int)); fut(&p,a);

printf(\}

[13.5] 若要使指针变量P指向一个double类型的动态存储单元,在下划线处应填入 A)double B)double* C)(*double) D)(double *)

double *p;

p=____________malloc(sizeof(double)); [13.6] 以下程序的输出结果是

A)11.10 B)12.00 C)21.10 D)1.10

void fun(float *p1,float *p2,float *s) { s=(float *)calloc(1,sizeof(float) ); *s=*p1+*p2++; }

main()

{ float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s);

printf(\ }

[13.7] 以下叙述中正确的是

A) 用#include包含的头文件的后缀不可以是\

B) 若一些源程序中包含某个头文件:当该头文件有错时,只需对该头文件进行修

改,

包含此头文件所有源程序不必重新进行编译.

C) 宏命令行可以看做是一行C语句. D) C编译中的预处理是在编译之前进行的.

二. 填空题

[13.8] 以下程序的输出结果是________.

#define PR(ar) printf(\main()

{ int j,a[]={1,3,5,7,9,11,13,15},*p=a+5; for (j=3; j; j--) switch(j) {case 1 :

case 2 : PR(*p++); break; case 3 : PR(*(--p)); } }

[13.9] 下面程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元, 调用outone函数输出此动态存储单元中的数据.请填空.

#include \ getone(int **s)

{ *s=(________)malloc(sizeof(int)); } assone(int *s)

{ scanf(\ outone int *b)

{ printf(\ main() {int *P;

getone(&p); assone(p); outone(p); }

三. 编程题

[13.10] 请写出一个宏定义MYALPHA(C),用以判断C是否是字母字符,若是,得1,否则得0. [13.11] 请写出一个宏定义swap(t,x,y)用以交换t类型的两个参数. 提示:用复合语句的形式.

[13.12] 请编写程序,利用malloc函数开辟动态存储单元,存放输入的三个整数.

然后按从小到大的顺序输出这三个数.

第十四章结构体。共用体和用户定义类型

一. 选择题

[14.1] 根据以下的定义,能输出字母M的语句是

A) printf(\

A) B) printf(\

C) printf(\

D) printf(\

struct person {char name[9];int age; } struct person class[10]={\ \ \ \

[14.2] 以下程序的输出结果是 A)0 B)1 C)3 D)6

main()

{struct cmplx{int x; int y;} cnum[2]={1,3,2,7}; printf(\

[14.3] 若有以下说明和语句,则值为6的表达式是 A)P++->n B)p->n++ c)(*p).n++ D)++p->n

struct st {int n;

struct st *next; };

struct st a[3],*p;

a[0].n=5; a[0].next=&a[1]; a[1].n=7; a[1].next=&a[2]; a[2].n=9; a[0].next='\\0'; p=&a[0];

[14.4] 已知字符0的ASCII代码值的十进制数是48,且数组的第0个元素在低位,以下程

序的输出结果是

A)39 B)9 C)38

D)8

main()

{ union {int i[2]; long k; char c[4]; }r,*s=&r;

s->i[0]=0x39; s->i[1]=0x38; printf(\

[14.5] 以下程序的输出结果是

A) 32 B)16 C) 8 D) 24 typeedef union { long x[2]; int y[4]; char z[8]; } MYTYPE; MYTYPE them; main()

{ printf(“%d\\n”,sizeof(them)); }

[14.6] 以下程序的输出结果是

A) 10 B) 50 C) 51 D) 60 20 60 60 70 20 21 11 31 struct st { int x; int *y; } *p;

int dt[4]={10,20,30,40};

struct st aa[4]={50,&dt[0],60, &dt[0],60, &dt[0],60, &dt[0],}; main() { p=aa;

printf(“%d\\n”,++p->x); printf(“%d\\n”,(++p)->x); printf(“%d\\n”,++(*p->y)); }

[14.7] 若已建立下面的链表结构,指针p,s分别指向图中所示结点,

则不能将s所指的结点插入到链表末尾的语句是

A) s->next=NULL; p=p->next; p->next=s; B) p=p->next;s->next=p->next;p->next=s; C) p=p->next; s->next=p; p->next=s; D) p=(*p).next; (*s).next=(*p).next=s;

head


C语言程序设计习题(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:GIS组合电器概述

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: