《高级语言程序设计》复习题及答案.docx

上传人:b****7 文档编号:8894869 上传时间:2023-02-02 格式:DOCX 页数:40 大小:35.28KB
下载 相关 举报
《高级语言程序设计》复习题及答案.docx_第1页
第1页 / 共40页
《高级语言程序设计》复习题及答案.docx_第2页
第2页 / 共40页
《高级语言程序设计》复习题及答案.docx_第3页
第3页 / 共40页
《高级语言程序设计》复习题及答案.docx_第4页
第4页 / 共40页
《高级语言程序设计》复习题及答案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

《高级语言程序设计》复习题及答案.docx

《《高级语言程序设计》复习题及答案.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》复习题及答案.docx(40页珍藏版)》请在冰豆网上搜索。

《高级语言程序设计》复习题及答案.docx

《高级语言程序设计》复习题及答案

一、选择题

1.以下叙述正确的是():

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行只能写一条语句

C)C语言使用库函数实现输入输出操作

D)注释中的拼写错误会影响编译结果

2、以下说法中正确的是()

A)C语言程序总是从第一个的函数开始执行

B)C语言程序总是从main()函数开始执行

C)在C语言程序中,要调用的函数必须在main()函数中定义

D)C语言程序中的main()函数必须放在程序的开始部分

3、下列选项种说法正确的是()

A)函数由声明部分和执行部分两部分组成

B)语言中main函数一定在程序的开始部分

C)C语言程序总是从第一个定义的函数开始执行

D)C程序的每行中只能写一条语句

4、设有说明:

inta;floatb;charc;doubled;则表达式1.3*a+2*b*c+d*(int)2.6值的类型为()。

A)doubleB)charC)floatD)int

5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()

A)必须为字母

B)必须为下划线

C)必须为字母或下划线

D)可以是字母、数字和下划线中任一种字符

6、以下不正确的C语言标识符是()。

A)ABCB)abcC)a_bcD)void

7、下列运算符中优先级最高的是()

A)

=

8、以下选项中属于C语言中合法关键字的是()

A)FloatB)abcC)intD)CASE

9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为()

x=(i=4,j=16,k=32)

A)4B)16C)32D)52

10、在C语言中,要求数据必须是整型的运算符是()

A)/B)++C)!

=D)%

11、若整型变量x的值为8,则下列表达式中值为1的表达式是

A)x+=x-=xB)x%=x-1C)x%=x%=3D)x/=x+x

12、若w=1,x=2,y=3,z=4,则条件表达式“w>x?

w:

y

y:

z”的值是()

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

13、有以下程序,程序运行后的输出结果是。

main()

{inti=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

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

}

A)123B)234C)223D)233

14、下面程序的输出结果是

main()

{intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez=-1+x;

printf(“%d\n”z);

}

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

15、执行下列语句后,a的值为()

main()

{inta=5;

printf(“%d\n”,(a=3*5,a*4,a+5));

}

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

16、下列程序段中,有错误的行是()

列定行号intx=0,y=10;

2switch(x)

3{case3:

4case–1:

y=y-2;break;

5casey+1:

x+=5;

6default:

printf(“%d,%d”,x,y);}

A)4B)3C)5D)无错误

17、若i为整型变量,则以下循环执行次数是()。

#include"stdio.h"

voidmain()

{inti;

for(i=2;i==0;)

printf("%d",i--);

}

A)无限次B)0次C)1次D)2次

18、若有以下定义,double a[10];则a数组元素下标的上、下限分别为()

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

19、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是()

A)调用可以作为独立的语句存在B)调用可以作为一个函数的实参

C)调用可以出现在表达式中D)调用可以作为一个函数的形参

20、定义如下变量和数组:

inti;

intx[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句

for(i=0;i<3;i++)printf("%d",x[i][2-i]);

输出结果是()

A)159B)147C)357D)369

21、以下不能正确定义二维数组的选项是

A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};

C)inta[2][2]={{1},2,3};D)inta[2][]={{1,2},{3,4}};

22、若有以下定义:

inta[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++的值是

A)10B)11C)20D)21

23、函数的嵌套调用是指

A)直接调用本函数

B)在定义函数时,又定义另一个函数

C)间接调用本函数

D)被调用函数又调用另一个函数

24、下列说法正确的是

A)被调用函数必须先调用,后声明

B)用户自定义函数的类型若未指出,则系统默认为void

C)全局变量不能与局部变量同名

D)实参可以是任意表达式

25、以下描述正确的是()

A)continue语句的作用,是结束整个循环语句的执行

B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)多层循环嵌套中不可以使用break语句

26、若有说明语句:

“inta[3][4];”,则对数组元素的正确引用格式是()

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a

(2)

(1)

27、若有说明:

“inta[3][4]={0};”,则下面正确的叙述是()

A)只有元素a[0][0]可得到初值0

B)此数组说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0

D)数组a中每个元素均可得到初值0

28、定义数组a和b的语句是:

“chara[]=“ABCDEF”;charb[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};”

则以下叙述正确的是()

A)a和b数组完全相同B)a与b数组元素个数相同

C)a和b中都存放字符串D)a数组比b数组元素个数多

29、语句“int(*ptr)();”的含义是()

A)ptr是指向一维数组的指针变量

B)ptr是指向int型数据的指针变量

C)ptr是指向函数的指针,该函数返回一个int型数据

D)ptr是一个函数名,该函数返回值是指向int型数据的指针

30、若有定义:

“int*p[4];”,则标识符p是()

A)一个指向整型变量的指针

B)一个指针数组名

C)一个指针,它指向一个含有四个整型元素的一维数组

D)无效的数组名

31、在C语言中()

A)函数定义可以嵌套,但函数调用不可以嵌套

B)函数定义不可以嵌套,但函数调用可以嵌套

C)函数定义和调用都可以嵌套

D)函数定义和条用都不能嵌套

32、下面程序的输出结果是()

#include

voidmain()

{inti,j,x=0;

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

{x++;

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

{if(j%2)continue;

x++;}

x++;

}

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

A)4B)6C)8D)12

33、执行下列语句后,m的值为()

intm=1,x=2,y=3,z=4;

m=m

m:

x;

m=m

m:

y;

m=m

m:

z:

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

34、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()

inta[10];

for(i=0;i<=9;i++)scanf(“%d”,);

A)aB)&a[i]C)a[i]D)&a[0]

35、下列叙述正确的是()

A)do-while语句构成的循环不能用其它语句构成的循环来代替

B)do-while语句构成的循环只能用break语句退出

C)用do-while语句构成的循环,在while后的表达式为非零时结束循环

D)用do-while语句构成的循环,在while后的表达式为零时结束循环

36、下列程序的输出结果为()

#include“stdio.h”

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

{b+=3;continue;}

b+=5;}

printf(“%d,%d”,a,b);

}

A)8,20B)8,22C)7,20D)7,22

37、设inta[5]={10,15,20,25,30};

int*p;p=a+2;则表达式++*p的值为()

A)20B)15C)16D)21

38、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b的值分别为()

(a=w>x)&&(b=y>z);

A)0和0B)5和0C)0和6D)5和6

39、下列语句的输出为()

intx=-1;

printf(“%d,%u,%o”,x,x,x);

A)–1,-1,-1B)–1,32767,-177777

C)–1,32768,177777D)–1,65535,177777

40、下列函数调用语句中的实参个数为()

fun((a+b,x,y),fun(x,(x+z)));

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

41、设有数组定义:

chararray[]=”china”;则数组array所占的内存空间为()

A)4个字节B)5个字节C)6个字节D)7个字节

42、以下程序段的运行结果是()。

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

printf(“%s”,c);

A)’a’’b’B)abC)abcD)ab

43、若C程序中出现死循则违背了算法的()

A)有效性B)确定性

C)有穷性D)有一个或多个输出

44、设inta=20;则执行表达式:

a/=a+a后,a的值是()

A)0B)1C)20D)40

45、intx,y,z,m=5,n=5;则执行下面语句后的z值是()

x=(--m==n++)?

--m:

++n;

y=m++;

z=n;

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

46、执行下列程序段后,i的正确结果是()

inti=10;

switch(i)

{case9:

i+=1;

case10:

i++;

case11:

++i;

default:

i+=i;}

printf("%d",i);

A)10B)11C)12D)24

47、若有定义:

inta[10];。

则以下表达式中不能代表数组元素a[1]的地址的是()

A)&a[0]++B)&a[1]C)&a[0]+1D)a+1

48、变量的指针,其含义是指该变量的()

A)值B)地址C)变量名D)一个标志

49、有以下函数定义:

voidfun(intn,doublex)

{……}

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()

A)fun(inty,doublem);B)k=fun(10,12.5);

C)fun(x,n);D)voidfun(n,x);

50、设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。

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

51、若inta,b;scanf("%d%d",&a,&b);不可以用()作为输入的分隔符。

A),B)空格C)回车D)TAB键

52、下面关于运算符优先顺序的描述中正确的是:

()

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

53、为了判断两个字符串s1和s2是否相等,应当使用()。

A)if(s1==s2)B)if(s1=s2)

C)if(strcpy(s1,s2))D)if(strcmp(s1,s2)==0)

54、以下对二维数组进行正确初始化的是()。

A)inta[2][3]={{1,2},{3,4},{5,6}};

B)inta[][3]={1,2,3,4,5,6};

C)inta[2][]={1,2,3,4,5,6};

D)inta[2][]={{1,2},{3,4}};

55、若用数组名作为函数调用时的实参,则实际上传递给形参的是()。

A)数组的首地址B)数组的第一个元素值

C)数组中全部元素的值D)数组元素的个数

56、以下错误的描述是()。

A)不同的函数中可以使用相同的变量名

B)形式参数是局部变量

C)一个函数内部定义的变量只能在本函数范围内有效

D)在一个函数内部的复合语句中定义的变量可以在本函数范围内有效

57、下列程序的运行结果是()

main()

{inti=10;

int*p=&i;

i=8;

printf(“%d”,*p);

}

A)10B)8C)程序错误,不能运行D)结果不确定

58、C语言中,double类型的数据占字节数为()

A)1B)2C)4D)8

59、可在C程序中用作用户标识符的一组标识符是()

A)as_b3_123If

B)For-abccase

C)2cDOSIG

D)voiddefineWORD

60、以下字符中,不正确的C语言转义字符是()

A)‘\\’B)‘\018’C)‘\Xaa’D)‘\t’

61、C语言中,数据在内存中都以()形式存放

A)原码B)反码C)ASCll码D)补码

62、下列运算符中,优先级最高的是()

A)&&B)!

C)++D)||

63、有输入语句:

scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为11,b为12,c为13,则从键盘输入数据的正确形式应当是()。

A)111213B)11,12,13

C)a=11b=12c=13D)a=11,b=12,c=13

64、为表示关系-1≤x≤1应使用的c语言表达式是()

A)-1≤x≤1B)-1=

C)-1==-1&&x<=1

65、若有以下定义:

doublea;intb;

floatc;chard;

则表达式a*b/d+(d-c)值的类型为()

A)floatB)intC)charD)double

66、下列程序输出的结果是()

main()

{inta=18;

a+=a-=a*a;

printf("%d",a);

}

A)-612B)9C)0D)36

67、break语句()

A)只能出现在if语句中B)只能出现在循环体中

C)可用在循环体和switch语句中D)可用在函数中的任何语句

68、如intk=11;则执行语句k=1/3*++k;后k取值为()

A)12B)3C)4D)0

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

main()

{intx=12,y=012;

printf("%d%d\n",x--,--y);

}

A)129B)1111C)1112D)1211

70、设intx=1,y=5;表达式(!

x||y--||++x)的值是()

A)0B)1C)5D)4

71、如果k为整数,则while循环执行次数()

k=10;

while(0)k=k-1;

A)一次都不执行B)1C)10D)无限次

72、有以下程序()

fun(inta,intb)

{if(a>b)returnb;

elsereturnb;

}

main()

{intx=3,y=8,z=6,r;

r=fun(x,y+z);

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

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

A)3B)6C)8D)14

73、若有说明:

intn=17,*p=&n,*q=p;,则以下非法的赋值语句是()

A)p=q;B)*p=*q;C)n=*q;D)p=n;

74、以下程序的功能是:

按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

main()

{intn,k;

floatscore,sum,ave;

sum=0.0;

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

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

{scanf(“%f”,&score);sum+=score;}

ave=sum/4.0;

printf(“NO%d:

%f\n”,n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。

这条语句是()

A)sum=0.0;B)sum+=score;

C)ave=sun/4.0;D)printf(“NO%d:

%f\n”,n,ave);

75、数组定义为chara[10]={‘a’,‘b’,‘c’};该数组包括的元素个数是()

A)3B)9C)4D)10

76、下面程序的输出结果是()

main()

{intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez=-1+x++;

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

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

77、有以下程序

main()

{  int  a[]={0,1,2,3,4,5,6,7,8,9},*p;

for(p=&a[9];p>=a;p--)

 printf("%d,",*p);

}

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

A)0123456789

B)2,3,4,5,6,7,8,9,10,1

C)0,1,2,3,4,5,6,7,8,9,

D)9,8,7,6,5,4,3,2,1,0,

78、执行循环语句:

for(x=y=0;y!

=250||x<4;x++)y+=50;

其循环体执行的次数为()

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

79、如intx=14;下列求商y(需小数结果)的表达式哪一个不对()

A)y=x/(5+.0)B)y=x/5.C)y=1.*x/5D)y=x/5*1.0

80、设有以下程序段()

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则:

A)运行程序段后输出0B)运行程序段后输出1

C)程序段中的控制表达式是非法D)程序无法运行

81、有以下程序,程序运行后的输出结果是()

#include"stdio.h"

voidmain()

{inti=0,j=2,m=3,n;

n=i++<=1&&j>=2&&m++;

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

}

A)2,2,4,1B)2,2,3,1C)1,2,4,1D)2,1,3,1

82、下面程序的输出结果是()

#include

voidmain()

{inti,x=1,y=0,a=0,b=0;

switch(x)

{case1:

b++;

case2:

a++;b++;break;

case3:

a++;b++;

}

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

}

A)2,1B)2,2C)1,2D)4,2

二、程序分析及填空

1.C语言的基本数据类型中,有两种实数类型变量,一种是float型,另一种是()型。

2.若程序中有语句“scanf(“a=%d,b=%d”,&a,&b);”,在执行程序时,要输入3和5两个数,应该键入()。

3.包含数学类库函数的头文件名称是()。

4.字符串“ab\034\\\x79”的长度为()。

5.数组元素作函数参数进行的是传递,数组名作函数参数进行的是____传递。

6.设有函数调用语句f(x1,x1+x2,f1(x1,x2));则函数f()实参的数目有____个。

7.在数组 intscore[10]={1,2,3,4,5,6}中,元素定义的个数有个,其中score[8]的值为。

8.C语言源程序文件的后缀是经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。

结构化程序由、、三种基本结构组成。

9、C语言提供的三中逻辑运算符是____________、____________、____________。

10、若a=1,b=4,c=3,则表达式!

(a

c&&1的值是_______________。

11、在C语言中,若对函数类型未加说明,则函数的隐含类型为类型。

12、在C语言中,唯一的一个三目运算符是。

13、以下程序运行后的输出结果是____________。

#include

voidmain()

{intm=5;

if(m++>5)printf("%d\n",m);

elseprintf("%d\n",m--);}

14、以下程序运行后的输出结果是。

#include

voidmain()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecont

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

当前位置:首页 > 人文社科 > 广告传媒

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

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