C语言课后练习及答案

  • 格式:doc
  • 大小:238.00 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作业A:

一、单项选择题

1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?()

A)int B)char C)long D)float

2、若x 为unsigned int 型变量,则执行下列语句后x值为()

x = 65535;

printf(“%d\n”,x);

A)65535 B)1 C)无定值D)-1

3、有以下程序

main()

{int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a

printf(″%d,%d\n″,k,m);

程序运行后的输出结果是()

A)0,0 B) 0,1 C)1,0 D)1,1

4、在C语言中,如果下面的变量都是int类型,则输出的结果是()。

sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;

printf("%d\n",pad);

A) 7 B) 6 C) 5 D) 4

5、以下程序的输出结果是()。

main()

{ int a=4,b=5,c=0,d;

d=!a&&!b||!c;

printf("%d\n",d);

}

A)1 B)0 C)非0的数D)-1

6、当执行以下程序段时()。

x=-1;

do{

x=x*x;

}while(!x);

A)循环体将执行一次B)循环体将执行两次

C)循环体将执行无限次D)系统将提示有语法错误

7、全局变量的存储类型可以定义为()。

A)auto或static B)extern或register

C)auto或extern D)extern或static

8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。

A)auto B)register

C)extern D)static

9、已知:int a, x; 则正确的赋值语句是()。

A)a=(a[1]+a{2})/2; B)a*=*a+1;

C)a=(x=1, x++, x+2); D)a="good";

10、已知:int a, *p=&a; 则下列函数调用中错误的是()。

A)scanf("%d", &a); B)scanf("%d", p);

C)printf("%d", a); D)printf("%d", p);

11、下述程序的输出结果是()。

#include

void main( )

{ struct complex

{ int x ;

int y;

} cnum[2]={1,3,2,7};

printf(“%d”, cnum[0].y/cnum[0].x*cnum[1].x) ;

}

A)0 B)1 C)3 D)6

12、下述程序的输出结果是()。

#include

void main( )

{ union

{ unsigned char c ;

unsigned int i[4];

}z ;

z.i[0]=0x39 ;

z.i[1]=0x36;

printf(“%c”,z.c);

}

A)6 B)9 C)0 D)3

13、下述关于C语言文件操作的结论中,()是正确的。

A)对文件操作必须先关闭文件

B)对文件操作必须先打开文件

C)对文件操作顺序无要求

D)对文件操作前必须先测试文件是否存在,然后再打开文件

14、以下程序的输出结果是()。

main()

{ char ch[3][4]={"123","456","78"},*p[3];

int i;

for (i=0;i<3;i++)

p[i]=ch[i];

for (i=0;i<3;i++)

printf("%s",p[i]); }

A)123456780 B)123 456 780 C) 12345678 D) 147

15、对于所定义的二维数组a[2][3],元素a[1][2]是数组的第( )个元素。

A)3 B)4 C)5 D)6

二、判断题

1、赋值运算符的优先级低于关系运算符()。

2、条件运算符的结合方向是“自左向右”()。

3、C语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式出现()。

4、C程序中的函数不能嵌套调用,但可嵌套定义()。

5、若自定义函数要求函数名返回一个值,则该函数体中必须要有return语句()。

6、当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量的首地址()。

7、若有说明:static int a[3][4];,则数组a中各数组元素可在程序的编译阶段得到初值0()。

8、若用数组名作为函数调用时的实参,则实际上传递给形参数组的是数组的第一个元素的值()。

9、利用指针和结构体类型可以构成表、树等复杂的数据结构()。

10、共用体变量的地址和它的各成员的地址都是同一地址()。

11、printf函数中的“%0”格式参数表示用来输出unsigned型数据()。

12、在一个C程序中,所有要使用的变量和要调用的函数都必须在main( )函数中定义()。

13、赋值运算符的结合性是“自右至左”()。

14、一个C程序可以由多个源程序文件组成()。

15、do-while语句构成的循环,当while语句中的表达式的值为零时结束循环()。

三、写出下面各程序的运行结果

1、#include

main ( )

{int i=0, j=0, k=0, m;

for (m=0; m<4; m++)

switch (m)

{case 0: i=m++;

case 1: j=m++;

case 2: k=m++;

case 3: m++;

}

printf(“\n%d, %d, %d, %d”, i, j, k, m);

}

2、#include

main ( )

{int i=1;

while (i<=15)

if (++i% 3!=2)

continue;

else

printf(“%d”, i);

}

3、#include

add1(int a[ ], int n)

{ int i;

for(i =0;i

} main()

{ static int array[ ]={0,1,2,3,4,5,6,7,8,9}; int j;

add1(array,10);

for(j=0;j<10;j++)

printf(“%d”,array[j]);

}

4、union data

{ long w;

float x;

int y;

char z;

} beta;

main( )

{ beta.w=123456;

beta.y=888;

beta.x=3.14;

beta.z=‟x‟;

printf(“%c”,beta.y);

}

5、# include

typedef struct student{

char name[10];

long sno;

float score;

}STU;

main( )

{

STU a={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0) d=b;

if(strcmp(,)>0) d=c;

printf("%ld%s\n",d.sno,p->name);

}

四、程序填空

1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结