C语言补充练习题(8)

2018-12-17 15:24

}

main()

{ float score[10],aver;int i;

printf(“\\ninput 10 scores:”);

for(i=0;i<10;i++)scanf(“%f”,&score[i]);

aver= ; printf(“\\naverage score is %5.2f\\n”,aver);

}

第七章 C程序的模块化设计

一、 单项选择题:

1.在宏定义# define E 2.71828中,宏名E代替一个 ⑴ ;在其后程序中使用2.71828,

可以用 ⑵ 表示

⑴ A. 单精度数 B. 双精度数 C. 常数 D. 一个字符串 ⑵ A. E B. e C. EXP D. EXP( ) 2.# define PI 3.141593 # include

main ()

{ printf (“PI=%f\\n”,PI); } 程序运行结果为

A. 3.141593=3.141593 B. PI=3.141593

C. 3.141593=PI D. 程序有错误,无结果 3.有宏定义: #define MULT1(a,b) a*b #define MULT2 (a,b) (a)*(b)

在后面程序中有宏引用: y=MULT1(3+2, 5+8); z=MULT2(3+2, 5+8); 则y和z的值是

A. y=65, z=65 B. y=21, z=65 C. y=65, z=21 D. y=21, z=21 4.格式1 #include “文件名” 格式2 #include <文件名>

下面4个结论, 是正确的。

A. 格式1中的文件名能带路径,而格式2不能 B.格式1中的文件名不能带路径,而格式2能 C.如果被包含文件在当前目录下,两种格式都能用

D.如果文件名中不带路径,格式1能搜索当前目录和C编译环境指定的标准

方式检查其它目录,而格式2不行。

5.C编译系统对宏命令的处理是 A. 和其它C语句同时进行编译的; B. 在对其它成分正式编译之前处理的;

C. 在程序执行时进行代换处理的; D. 在程序连接时处理的。

36

6.有#define N 80 和 printf(“*******”); 以下说法中正确的是

A. 两者都是C语句 B. 前者是C语句,后者不是 C. 前者不是,而后者是C语句 D. 两者都不是C语句 7.程序 #define f(x) x*x

main()

{ int a=6,b=2,c; c=f(a)/f(b); printf(“%d\\n”,c); } 的输出结果是

A. 9 B. 6 C. 36 D. 18 8.头文件的扩展名可以是

A. .h和.obj B. .h和.c C. .c和.obj D. 任意

二、 填空题:

1.宏展开是在______时进行的,不分配______,不进行值的______处理。 2.宏替换不占______时间,只占______时间。 3.以下的for循环体共执行循环 次。

# define “stdio.h” # define N 2 # define M N+1

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

{ int i,n=0;

for (i=1; i<=NUM; i++) { n++ ; printf (“%d”,n); } printf(“\\n”); }

4.文件包含使用 命令,其作用是将一已知文件的内容 到命令处。 5.写出判断x是否是奇数的宏定义,宏名为isodd: 。 6.C语言的编译预处理命令主要有三类: 、 、 。 7.若所需头文件file1.h恰巧在源文件目录下,则应用 形式来实现。

三、 判断题

1.宏替换时先求出实参表达式的值,然后代入形参运算求值。( ) 2.宏名无类型,其参数也无类型。( )

3.使用宏次数多时,宏展开后源程序不会变长。( )

4.调用函数只能得到一个返回值,而用宏可以得到几个结果。( )

5.在一被包含文件中又可以包含另一被包含文件,文件包含是可以嵌套的。( ) 6.用一个指定的标识符来代表一个字符串,它的一般形式为 #define 标识符 字符串;( )

7.在宏定义#define PI 3.l4l59中,如果将1误输成小写的L,则编译时不出错,

运行时出错。( )

8.取消PI的宏定义为 #undef PI 0 ( )

四、程序阅读题

1. #define POWER(x) x*x

37

#include main()

{ int x=5, y=3; int t, z; t=POWER(x+y); z=POWER(x*y); printf(“%d, %d\\n”,t,z); }

该程序的运行结果为:

2.main()

{int b=5;

#define b 2

#define f(x) b*(x)

int y=3; printf(“%d\\n”,f(y+1)); #undef b

printf(“%d\\n”,f(y+1)); #define b 3

printf(“%d\\n”,f(y+1)); }

该程序的运行结果为:

五、程序填充题:

1.求数组中的最大元素,在调试程序时如下: N 10 #define TEST 1

main()

{ int i,max,a[N];

# if TEST

for (i=0; i< ,i++) a[i]=10+i; # else

for (i=0; i

第八章 构造数据类型

一、

单项选择题:

1.设有以下语句:

struct st{int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,?\\0?},*p; p=&a[0];

则表达式 的值是6。

38

A. p++ ->n B. p->n++ C. (*p).n++ D. ++p->n 2.若有下面的说明和定义,则sizeof(struct aa)的值是 。 struct aa{int r1; double r2; float r3;} mya;

A. 8 B. 10 C. 12 D. 14 3. 若程序中有下面的说明和定义: struct abc{int x; char y;} struct abc s1,s2; 则会发生的情况是 。

A. 编译出错 B. 程序将顺利编译、连接、执行 C. 能顺利通过编译、连接,但不能执行 D. 能顺利通过编译,但连接出错 4.选择出k的正确值 。

enum {a,b=5,c,d=4,e} k; k=e;

A.3 B. 4 C. 5 D. 6 5.选择出不正确的函数定义: 。 A. struct tree func(s) B. int *func(s) struct tree s[]; char *s[]; { { ... ... } }

C. struct tree *func(s) D. int *func(s) char **s; char *s[10][]; { { ... ...

} }

6.若有以下的说明,则在scanf函数调用语句中对结构体变量成员的不正确引用方

式为 。

struct pupil { char name[20]; int age; int sex; } pup[5], *p; p=&pup[0];

A.scanf(“%s”, pup[0].name); B. scanf(“%d”, &pup[0].age); C. scanf(“%d”, &(p->sex)); D. scanf(“%d”, &p->age); 7. 设有100个学生的考试成绩数据表如下形式:

学号NO

姓名NAME 39

成绩SCORE 整型 字符型数组 实型

在下面结构体数组的定义中,不正确的是:

A. struct student B. struct stud [100]

{ {

int no; int no;

char name [10]; char name [10]; float score; float score; }; }; struct student stud[100];

C. struct student D. struct

{ {

int no; int no; char name [10]; char name [10]; float score; float score; } stud[100]; ]stud[100]; 8. 设有一结构体类型变量定义如下:

struct date

{ int year; int month; int day; }; struct worklist { char name [20]; char sex; struct date birthday; }person;

若要对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是:

A. year=1976 B. birthdat.year=1976 C. person.birthday.year=1976 D. person.year=1976

9.有以下程序

#include struct stu { int num;

char name[10]; int age; };

void fun(struct stu *p)

40


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

下一篇:《祭十二郎文》优秀教案

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

马上注册会员

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