2自动化系复习答案.docx

上传人:b****5 文档编号:6849566 上传时间:2023-01-11 格式:DOCX 页数:17 大小:34.28KB
下载 相关 举报
2自动化系复习答案.docx_第1页
第1页 / 共17页
2自动化系复习答案.docx_第2页
第2页 / 共17页
2自动化系复习答案.docx_第3页
第3页 / 共17页
2自动化系复习答案.docx_第4页
第4页 / 共17页
2自动化系复习答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

2自动化系复习答案.docx

《2自动化系复习答案.docx》由会员分享,可在线阅读,更多相关《2自动化系复习答案.docx(17页珍藏版)》请在冰豆网上搜索。

2自动化系复习答案.docx

2自动化系复习答案

一、填空题

1.若用数组名作为函数调用的实参,则传递给形参的是数组的首地址.

2.C语言规定:

函数的定义不能嵌套;但函数的调用可以嵌套。

3.在C语言中实参和与其对应的形参各占用独自的存储单元。

4.C语言规定,函数返回值的类型是由定义该函数时所指定的函数类型决定的。

5.指针变量是专门存放变量地址的变量。

6.C语言规定,程序中用到的变量必须“先定义,后使用。

7.在一个C程序中main函数可以出现在程序文件的最前头,也可放在程序最后,或在一些函数之前,或在另一些函数后。

8.C语言的基本数据类型包括整形,实型,字符型数据。

9.结构化程序由三种基本控制结构组成的,这三种基本控制结构分别是顺序结构,选择结构,循环结构。

10.C语言规定:

二维数组在内存中的存储方式是先放第一行元素,再放第二行元素。

11.算法具有5个特性,这5个特性分别是有穷性,确定性,有零个或多个输入;有一个或多个输出,有效性。

12.C语言规定,标识符的第一个字符必须是字母或下划线。

13.函数的递归调用指的是在调用一个函数的过程中又出现直接或间接地调用该函数。

14.定义一个联合类型的变量时,系统分配给它的内存是成员中最长的成员所占的空间。

15.定义函数时,在函数名后面的圆括号中出现的参数称为形式参数(简称形参)。

16.从变量的生存周期角度分类,变量可以分为静态存储类型和动态存储类型。

17.C语言提供的预处理功能主要有宏定义、文件包含和条件编译。

18.在C语言中,用零来表示逻辑“假”,用非零值来表示逻辑“真”。

19.循环的嵌套是指在某一种循环结构的语句中,包含另一个循环结构。

20.数组指的是相同类型的若干变量按有序的形式组织起来数据元素的集合。

21.调用函数时,在函数名后面列出的参数称为实际参数。

22.共用体(联合)类型的变量在内存中所占的字节数为最长的成员所占字节数。

23.设有数组定义为inta[][4]={{1,2},{3},{4,5,6}};则值为5的数组元素为a[2][1]。

24.C语言规定,标识符由英文字母,阿拉伯数字,下划线三类字符构成,且第一个字符必须是字母或下划线。

25.一个函数直接或间接地调用自身,称为递归调用。

26.C语言中的函数从用户使用的角度分类,可以分为库函数和用户自定义函数。

27.break用在循环语句中,其作用是终止语句,并跳出循环体或开关体。

28.按照变量的作用范围分类,变量可以分为全局变量和局部变量。

29.C语言提供的预处理功能主要有宏定义、文件包含和条件编译。

二、判断题

1.如果在一个C复合语句中定义了一个变量,则该变量在本程序范围内均有效。

(错)

2.C语言中可以使用字符数组或字符指针处理字符串。

(对)

3.在C程序中,无论是整数还是实数,都能被准确地表示。

(错)

4.若已有定义staticcharstr[10];,要将键盘输入的字符串"anapple"赋给str,应使用gets(str);语句(对)

5.如果有初始化语句charc[]="aboy";(字母a后有一个空格)则数组的长度自动定义为6。

(对)

6.C程序的执行都是从主函数开始,并结束于主函数中的某条语句,。

(对)

7.自动存储类别的局部变量离开所在函数,其存储空间将释放。

(对)

8.在主函数中定义的变量称为全局变量。

(错)

9.在C语言中,switch语句后一对圆括号中表达式的类型必须是整型。

(错)

10.函数调用可以作函数的实参,不可以做函数的形参。

(对)

11.按变量地址存取变量值的方式称为“直接访问”方式。

(对)

12.C语言中不同数据类型的长度与机器字长有关。

(对)

13.C语言规定只有主函数可以调用其他函数。

(错)

14.若a、b均为整数,且b≠0,则表达式a/b*b+a%b的值是a。

(对)

15.定义函数时,如果省略函数返回值的数据类型,则默认为空类型。

(错)

16.程序编译预处理的工作是在编译之前完成的。

(对)

17.C语言中的数组、枚举类型、浮点型和共用体类型都是构造类型。

(错)

18.为整型变量,则表达式a与a!

=0是等价的。

(对)

19.避免嵌套if-else的二义性,C语言规定:

else与其之前最近的未配对的if配对。

(对)

20.定义一个结构体变量时,系统分配给它的内存空间大小是结构体中各成员所需内存量的总和。

(对)

21.若已定义inta;则printf("%d",(a=10,a+=10,a++));的输出是10。

(错)

22.putchar()函数的参数可以是字符常量或字符变量。

(对)

23.C语言中主函数的名字不一定用main表示。

(错)

24.只有一个分号构成的C语句称为空语句。

(对)

25.定义函数时,如果省略函数返回值的数据类型,则函数没有返回值。

(错)

26.while语句的循环体至少被执行一次。

(错)

27.如果函数的形参与实参的类型不一致,以实参类型为准。

(错)

三、单项选择题

1.C语言程序的基本结构是(A)

A.函数B.语句C.字符D.程序行

2.下列合法的字符常量是(C)

A.’x1’B.’\019’C.’f’D.’\\0’

3.定义inta;后,语句printf("%d\n",(a=3*3,a*4,a+11));的输出是(B)。

A.65B.20C.15D.10

4.a为整型变量,不能正确表达区间(10,15)的C语言表达式是(A)。

A.10

C.a>10&&a<15D.!

(a<=10)&&!

(a>=15)

5.以下能正确定义变量a,b和c并为它们赋值的语句是(D)

A.inta=5;b=5;c=5;B.inta,b,c=5;

C.a=5,b=5,c=5;D.inta=5,b=5,c=5;

6.若已定义x和y为实型变量,则表达式x=1,y=x+3/2的值是(C)。

A.1B.2C.2.0D.2.5

7.在C语言中,如果一个int型数据占2个字节,则int型数据取值范围是(B)。

A.0~255B.-32768~32767C.0~65535D.0~2147483647

8.以下四条语句中,有语法错误的是(D)。

A.if(a>b)m=a;B.if(a

C.if((a=b)>=0)m=a;D.if((a=b;)>=0)m=a;

9.运行下面程序段后,i的值是(B)。

inti;

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

printf("%d",i);

A.9B.0123456789C.0D.10

10.若有说明chars1[5],s2[7];要给s1和s2赋值,下列语句中正确的是(C)。

A.scanf("%s%s",&s1,&s2);B.gets(s1,s2);

C.gets(s1);gets(s2);D.s1=getchar();s2=getchar();

11.若在C语言中未说明函数的类型,则系统默认该函数的返回值是(C)。

A.float类型B.long类型C.int类型D.double类型

12.当定义一个结构体变量时,系统为它分配的内存空间是(D)

A.结构中一个成员所需的内存容量

B.结构中第一个成员所需的内存容量

C.结构体中占内存容量最大者所需的容量

D.结构中各成员所需内存容量之和

13.若有说明inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B)

A.2B.3C.4D.无确定值

14.下面程序段的运行结果是(D)

charc[5]={‘a’,’b’,’\0’,’c’,’\0’};

printf(“%s”,c);

A.‘a’’b’B.abcC.abcD.ab

15.运行下面程序段的输出结果是(A)

inta[7]={1,3,5};

printf("%d\n",a[3]);

A.0B.5C.3D.不确定数

16.若定义intb[7],*p=b;则p+3表示(A)

A.元素b[3]的地址B.元素b[4]的地址C.元素b[4]的值D.元素b[3]的值

17.若函数定义为int型,变量z为float类型,则该函数体内的语句return(z)返回的值是(A)。

A.int类型B.float类型C.int或float均可D.不确定

18.sizeof(int)的值是(B)

A.1B.2C.16D.不能确定

19.定义以下结构体类型

structs

{inta;

floatf;

}a[3];

语句printf("%d",sizeof(a))的输出结果为(C)

A.4B.12C.18D.6

20.执行下列程序后,x和z的值是(D)

main()

{intx,y=1,z;

if(x=z=y)

x=3;

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

}

A.3,0B.0,0C.0,1D.3,1

21.下列(A)是符合C语言语法规则的字符型常量。

A.‘\t’B.‘\97’C.”A”D.”\0”

22.设变量a为字符型,f为无符号整型,i为单精度型,则表达式25+‘b’+i*f的数据类型是(D)。

A.int型B.float型C.不确定D.double型

23.下列(C)运算符要求其操作数必须是整型或字符型数据。

A.+B./C.%D.-

24.经inta=11;floatx=3.8,y=4.9;定义后,表达式x+a%9*(int)(x+y)%6/4的值是(B)。

A.5.9B.4.8C.4.9D.5.8

25.设x、y、t均为int型变量,则执行语句:

x=y=1;t=--x&&++y;后,y的值为(B)。

A.不定值B.1C.4D.3

26.设a为整型变量,不能正确表达数学关系:

32

A.a>32&&a<37B.a==33||a==34||a==35||a==36

C.32

(a<=32)&&!

(a>=37)

27.若i和k都是int型变量,有以下for语句

for(i=0,k=-1;k=1;k++)

printf(“*****\n”);

下面关于语句执行情况的叙述中正确的是(B)。

A.循环体执行两次B.构成无限次循环

C.循环体一次也不执行D.循环体执行一次

28.若a为int类型,且其值为4,则执行完表达式a+=a-=a*a后,a的值是(A)。

A.-24B.9C.-12D.6

29.下列合法的数组定义是(D)。

A.inta[]=”string”;B.chara[]={“012”,”345”};

C.inta[5]={0,1,2,3,4,5};D.chara[]=”string”;

30.有以下程序

#include

main()

{intk=0x11;

printf("%d\n",k++);}

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

A.12B.11C.17D.18

31.下面程序运行后,输出结果是(A)。

#include

main()

{charp1[7]="abc",p2[]="ABC",str[50]="xyz";

strcpy(str,strcat(p1,p2));

printf("%s",str);

}

A.abcABCB.xyzabcC.xyzabcABCD.xyzABC

32.有以下程序

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i+2;

printf("%d\n",a[2][1]);

}

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

A.9B.2C.5D.7

33.若有以下说明语句:

inta[12]={5,1,2,3,4,5,6,7,8,9,10,11};

charc=’a’,d,g;

则值为4的表达式是(C)。

A.a[g-c]B.a[3]C.a[‘e’-c]D.a[‘d’-‘c’]

34.定义以下结构体类型

structs

{shorta;

charb;

floatf;}x;

语句printf("%d",sizeof(x))的输出结果为(B)。

A.8B.7C.6D.5

35.假定w、x、y、z、m均为int型变量,有如下程序段:

w=4;x=3;y=2;z=1;

m=(w

w:

x;m=(m

m:

y;m=(m

m:

z;

则该程序运行后,m的值是(D)

A.4B.3C.2D.1

36.以下程序的输出结果是(C)

main()

{inta=3,b=4,c=0,d;

d=!

a&&!

b||!

c;

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

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

37.以下程序执行后的输出结果是(A)

main()

{inti=3,j=3,k=4;

if((j++||k++)&&i++)

printf("%d,%d,%d\n",i,j,k);

}

A.4,4,4B.3,3,4C.3,3,5D.3,3,4

38.下列程序段的输出结果是(A)。

int*p,*q,k=5,j=7;

p=&j;q=&k;p=q;(*p)++;

printf("%d",*q);

A.6B.5C.8D.7

39.执行下面程序段后,c3中的值是(D)。

intc1=4,c2=5,c3;

c3=c1/c2;

A.0.8B.4/5C.1D.0

40.有以下程序

main()

{inti;

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

switch(i)

{case1:

printf("%d",i);

default:

printf("%d",i);

case2:

printf("%d",i);

}

}

执行后输出结果是(B)

A.011122B.001112C.012020D.120

四、程序填空

1.下面的程序的功能是输出600~800之间所有素数。

本程序中利用自定义函数prime()判断一个整数是否为素数(如果整数x不能被2~x-1之间的任意一个数所整除,则x是素数)。

要求每行输出10个素数。

#include

(1)intprime(intm);//函数的原型声明

voidmain()

{intk,s=0;

(2)for(k=301;k<300;k+=2)//判断300~500之间的每一个奇数

if(prime(k))

{

printf("%5d",k);

s++;

(3)if(s%10==0)//每行输出10个素数

printf("\n");

}

printf("\ns=%d\n",s);

}

intprime(intm)

{inti;

for(i=2;m%i!

=0;i++);

(4)return(m==i);}//返回函数的值

2.下列程序将输入的整数num按逆序输出,算法是:

先输出个位数,然后将该数缩小10倍,再输出新的个位数,直到缩小后的数为0。

请选择正确的答案完成填空。

#include

voidmain()

{intc,num;

printf("Enteranumber:

");

(5)scanf(“%d”,&num);;//输入变量num的值

(6)do{c=num%10+'0';//计算变量num的个位数

(7)putchar(c);或printf(“%c”,c);;//输出num的个位数

(8)}while(num=num/10或num/=10>0);//变量num缩小10倍

}

3.斐波那契数列的第1项和第2项都是1。

下面的程序用来计算斐波拉契数列1,1,2,3,5,8,13,21,...第7项的值,请选择正确答案填入程序空白处。

斐波那契数列的构成规律:

#include

(9)longfib(intg)//函数的形参声明

{switch(g)

{case0:

return0;

case1:

(10)case2:

return1;//数列的1、2项*/

}

(11)return(fib(g-1)+fib(g-2));//数列的其余各项

}

main()

{intk;

(12)k=fib(7);//数列的第7项

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

4.有一个3行4列的矩阵,要求计算出其中值最大的元素的值,以及其所在的行号和列号。

#include

voidmain()

{inti,j,row=0,column=0,max;

(13)inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};//数组的定义及初始化

(14)max=a[0][0];//用数组的第一个元素给存放最大值的变量max赋初值

(15)for(i=0;i<=2;i++)//行下标的变化

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

(16)if(a[i][j]>max)//判断最大值

{max=a[i][j];

row=i;

column=j;

}

}

五、读程序写结果

1.下列程序段的输出结果是k=4s=6。

intk,s;

for(k=0,s=0;k<10;k++)

if(s>k)break;

elses+=k;

printf("k=%ds=%d",k,s);

2.下列程序段的输出是*#*#。

main()

{intk;

for(k=1;k<5;k++){

if(k%2)printf("*");

elsecontinue;

printf("#");}}

3.运行下面的程序段,输出结果是ebcegf。

inti=0;

chars1[10]="abc",s2[10]="efg";

strcat(s1,s2);

while(s1[i++]!

='\0')

s2[i]=s1[i];

puts(s2);

4.以下程序运行后的输出结果是:

817。

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;m=i+a+b;return(m);}

main()

{intk=4,m=1,p;

p=func(k,m);printf(“%d”,p);

p=func(k,m);printf(“%d\n”,p);}

5.写出下列程序结果:

m=5,n=3。

#include

intm=10;

voidf(intn)

{n=8/n;m=m/2;}

main()

{intn=3;

f(n);

printf(“m=%d,n=%d\n”,m,n);}

6.有以下程序程序的执行结果是:

7。

#include

intf(intn);

voidmain()

{inta=2,s;

s=f(a);s=s+f(a);printf("%d\n",s);}

intf(intn)

{

staticinta=1;

n+=a++;

returnn;

}

7.以下程序执行后输出结果是:

3025。

#include

inta=5;

voidfun(intb)

{inta=10;

a+=b;printf("%d",a);

}

main()

{intc=20;

fun(c);a+=c;printf("%d\n",a);}

8.以下程序运行后,如果输入的是123450<回车>,输出结果为:

345756

#include

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{default:

printf(“%d”,s+1);break;

case1:

printf(“%d”,s+2);

case2:

printf(“%d”,s+3);break;

case3:

printf(“%d”,s+4);

}

scanf(“%d”,&s);

}

}

9.下面程序运行后,输出结果是:

atody

#include

voidmain()

{chars[]="today",c;

inti,j=0;

for(i=1;i<5;i++)

if(s[j]>s[i])

{c=s[j];s[j]=s[i];s[i]=c;}

printf("%s\n",s);}

10.以下程序执行后的输出结果是:

s<3,4>=39

intn,a,s=0,p=1,i;

n=3;a=3;

for(i=1;i<=n;++i)

{p=p*a;s+=p;}

printf("\ns(%d,%d)=%d",a,i,s);

11.以下程序运行后的输出结果是:

10,8

intd=2;

fun(intp)

{intd=4;

d+=p++;printf("%d,",d);}

main()

{inta=6;

fun(a);

d+=a++;printf("%d\n",d);

}

12.写出下列程序结果:

n=11

#include

voidmain()

{

chars[]="120354xy7s89f1w4";

inti,n=0;

for(i=0;s[i]!

=0;i++)

if(s[i]>='0'&&s[i]<='9')n++;

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

}

13.有以下程序程序的执行结果是:

BcDeFg

#include

voidmain()

{charb,c;inti;

b='B';c='b';

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

{if(!

(i%2))

putchar(i+b);

else

putchar(i+c);}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1