C语言程序设计复习题0519 1.docx

上传人:b****2 文档编号:2571545 上传时间:2023-05-04 格式:DOCX 页数:19 大小:27.56KB
下载 相关 举报
C语言程序设计复习题0519 1.docx_第1页
第1页 / 共19页
C语言程序设计复习题0519 1.docx_第2页
第2页 / 共19页
C语言程序设计复习题0519 1.docx_第3页
第3页 / 共19页
C语言程序设计复习题0519 1.docx_第4页
第4页 / 共19页
C语言程序设计复习题0519 1.docx_第5页
第5页 / 共19页
C语言程序设计复习题0519 1.docx_第6页
第6页 / 共19页
C语言程序设计复习题0519 1.docx_第7页
第7页 / 共19页
C语言程序设计复习题0519 1.docx_第8页
第8页 / 共19页
C语言程序设计复习题0519 1.docx_第9页
第9页 / 共19页
C语言程序设计复习题0519 1.docx_第10页
第10页 / 共19页
C语言程序设计复习题0519 1.docx_第11页
第11页 / 共19页
C语言程序设计复习题0519 1.docx_第12页
第12页 / 共19页
C语言程序设计复习题0519 1.docx_第13页
第13页 / 共19页
C语言程序设计复习题0519 1.docx_第14页
第14页 / 共19页
C语言程序设计复习题0519 1.docx_第15页
第15页 / 共19页
C语言程序设计复习题0519 1.docx_第16页
第16页 / 共19页
C语言程序设计复习题0519 1.docx_第17页
第17页 / 共19页
C语言程序设计复习题0519 1.docx_第18页
第18页 / 共19页
C语言程序设计复习题0519 1.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计复习题0519 1.docx

《C语言程序设计复习题0519 1.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题0519 1.docx(19页珍藏版)》请在冰点文库上搜索。

C语言程序设计复习题0519 1.docx

C语言程序设计复习题05191

一、填空题

7.C程序一个函数的定义由__________和____________两部分组成。

8.C语言的数据类型可分为基本类型型、构造类型、__指针类型______和__空类型______。

9.C语言在判断一个量是否为“真”时,以_0___代表“假”,以_1___代表“真”。

10.C语言中的break语句只能用于_switch_____和__循环____语句。

12.对于数组x[5][5],*(x+2)+3表示___x[2][3]_______,x[3]+2表示___x[3][2]_______。

13.若定义:

struct{inty,m,d;}today则为today分配内存_6___字节。

16.C语言程序的三种基本结构是顺序、选择、循环。

17.一个C程序有且仅有一个main函数。

18.C语言描述“x和y都大于或等于z”的表达式是x>=z&&y>=z。

19.C语言可以用来实现循环的结构化语句是for、while、dowhile。

20.数组名表示数组在内存的地址。

21.inta=3,*p=&a;*p+2的值是5。

22.变量的作用域是指变量的有效范围,在作用域内可以引用该变量。

按作用域来说,变量可以分为___局部_____变量和__全局____变量。

23.如果程序中已有intk;*p;p=k;通过指针变量,将数值10赋值给k的

句是____*p=10______。

24.设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则

逻辑表达式(m=a

25.有下列程序段:

s=1.0;

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

s=s+1.0/(k*(k+1));

printf(“%f\n”,s);

试填空,使下列的程序段的功能完全与之等同。

s=0.0;

k=0;______;

d=0.0;

do{s=s+d;____k=k+1;________;

d=1.0/(k*(k+1));}while(__k<=10______);

printf(“%f\n”,s);

28.当函数的返回值的类型与函数定义的类型不一致时,系统出错

29.指针变量是把内存中另一个数据的_地址____作为其值的变量。

n

30.下列程序的功能是计算s=∑k!

请填空。

k=0

longf(intn)

{inti;longs;

s=1;

for(i=1;_s<=n______;i++)s*=i;

return__s_____;}

main()

{longs;intk,n;

scanf(“%d”,&n);

s=__0_______;

for(k=0;k<=n;k++)s+=_____f(k)____;

printf(“%ld\n”,s);}

二、单项选择题(每小题2分,共70分)

1.设有语句:

inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a

中的数组元素的不正确引用是(D)。

Aa[p-a]B*(&a[i])Cp[i]D*(&(a+i))

3.以下描述中不正确的是(B)。

A数组是一批类型相同的若干个元素的集合

B数组的各个元素的类型可以不同

C数组在内存中占用一块连续的存储空间

D数组是一种构造类型

4.可用作C语言用户标识的一组标识符(B)。

AviodBa3_b3CForD2a

define_123-abcDO

WORDIFCasesizeof

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

main()

{inta=0,i;for(i=1;i<5;i++){

switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;}}

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

A31B13C10D20

8.下列程序中,while循环次数是(D)。

main()

{inti=0;

while(i<10){

if(i<1)continue;

if(i==5)break;

i++;}}

A1B10C6D死循环,不能确定次数

9.以下说法中正确的是(C)。

AC语言程序总是从第一个函数开始执行

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

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

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

10.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是(B)。

A地址传递B值传递C由用户指定传递方式

D由实参传给形参,并由形参传回来给实参

11.设有:

inta[10],i=5;,以下对数组元素引用不正确的是(D)。

Aa[9]Ba[0]Ca[i]Da[i+5]

12.若有定义:

inti,j,*p=&i,则与i=j等价的语句是(B)。

Ai=*p;B*p=*&j;Ci=&j;Di=**p;

13.设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0

的表达式是(D)。

Aa&&bBa<=bCa||b+c&&b-cD!

((a

c||1)

14、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:

( A )

A、任意

B、第一个函数必须是主函数,其他函数任意

C、必须完全按照执行的顺序排列

D、其他函数可以任意,主函数必须在最后

15、下面不是C语言合法标识符的是:

( B )

A、abc  B、5n C、_4m D、x3

16、下列能正确表示a≥10或a≤0的关系表达式是:

( C )

A、a>=10ora<=0B、a<=10||a>=0

C、a>=10||a<=0D、a>=10&&a<=0

17、表达式17%4的值为:

( B )

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

18、与x*=y等价的赋值表达式是:

( C )

A.x=yB.x=x-y

C.x=x*yD.x=x+y

8、下述哪一个不是结构化程序基本结构:

( D )

A.顺序    B.选择    C.循环      D.嵌套

18、以下为C语句的是:

( B )

A.a=8  B.a++;C.if(a>8)   D.#include

19、以下程序的输出结果是:

( B )

main()

{intx=10,y=3;

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

}

A)0B)1C)3D)不确定

20、若有以下语句

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

i=a[0]*a[1]+a[2]*a[3];

i的值为____D____

A、2B、5C、3D、以上都不对

22、以下程序的输出结果是:

(D  )

main()

{intx=10,y=10;

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

}

A、1010B、99C、910D、109

23、已知字符A的ASCII码为十进制的65,下面程序的输出是:

( C )

main()

{

charch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

}

A、67,DB、B,C

C、C,DD、不确定的值

25、以下程序执行后sum的值是:

( C )

main()

{inti,sum;

for(i=1;i<6;i++)sum+=i;

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

}

 A、15  B、14  C、不确定  D、0

26、下列合法的数组定义是:

( D )

A、inta[]=”string”;B、inta[5]={0,1,2,3,4,5};

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

27、下面程序段的输出结果是:

( C )

intj;

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

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

printf(“%d”,x[j][2-j]);

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

28、已知inta[][3]={1,2,3,4,5,6,7};,则数组a的第一维的最大值是:

( D )。

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

29、有以下程序

main()

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

inti,s=0;

for(i=0;i<4;i++)s+=aa[i][1];

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

}

程序运行后的输出结果是:

( B )

A、11  B、19  C、13  D、20

30.关于C语言的叙述中,不正确的是(D )。

 A. C程序可由一个或多个函数组成

 B. C程序必须包含一个main()函数

 C. C程序的基本组成单位是函数 

D. 注释说明只能位于一条语句的后面

31.C语言程序从main函数开始执行,所以这个函数要写在(D)

[A]程序文件的开始[B]程序文件的最后

[C]它所调用的函数的前面[D]程序文件的任何位置

32.对于C语言源程序,以下叙述错误的是( C)。

 A. 可以有空语句

 B. 函数之间是平等的,在一个函数内部不能定义其它函数

 C. 程序调试时如果没有提示错误,就能得到正确结果

 D. 注释可以出现在语句的前面

33.已知inta;使用scanf函数输入一个整数给变量a,正确的函数调用是(B)。

[A]scanf("%d",a);

[B]scanf("%d",&a);

[C]scanf("%f",&a);

[D]scanf("%lf",&a);

34.以下(D)是正确的变量名。

A.5fB.ifC.f.5D._f5

6.以下(A)是不正确的字符串常量。

[A]'abc'[B]"12'12"[C]"0"[D]""

36.语句a=(3/4)+3%2;运行后,a的值为(B)。

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

37.已知doublea=5.2;则正确的赋值表达式是(A)。

A.a+=a-=(a=4)*(a=3)B.a=a*3=2

C.a%3D.a=double(-3)

39.若有定义:

int k,i=2,j=4; 则表达式 k=(++i)*(j--) 的值是(B )。

 A. 8 B. 12 C. 6D. 9

41.C语言对if嵌套语句的规定:

else总是与(B  )配对。

 A. 第一个if B. 之前最近的且尚未配对的if 

C. 缩进位置相同的if D. 之前最近的if

42.若有定义:

intx=1,y=2,z=4;则以下程序段运行后z的值为(B)。

if(x>y)z=x+y;

elsez=x-y;

A.3B.-1C.4D.不确定

43.下列数组定义中,正确的是(A)。

A.inta[5]={0};B.inta[]={012};

C.inta[5]=0;D.inta[];

44. 若有定义:

int a[3]={0,1,2};则a[1]的值为(B )。

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

45.有如下定义 int a[][3]={1,2,3,4,5,6,7,8,9,10};则数组a的行数是( C )。

 A. 2 B. 3 C. 4 D. 无法确定的

48.设有以下定义语句:

structstudent

{

intnum;

charname[10];

floatscore;

}wang,zhang;

则变量wang所占的内存字节数是(B)。

A.14B.16C.18D.20

 

50.一个程序的执行是从A。

(A)本程序的main函数开始,到main函数结束

(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

(C)本程序的main函数开始,到本程序文件的最后一个函数结束。

(D)本程序文件的第一个函数开始,到main函数结束。

51.以下叙述正确的是C。

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

(B)C程序每行中只能写一条语句。

(C)C语言本是没有输入输出语句。

(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

52.以下叙述不正确的是D。

(A)逗号运算符的运算级最低。

(B)ABC和abc是两个不同的变量。

(C)若a和b类型相同,在执行a=b后,b的自身值不变。

(D)‘a’和“a”是完全等价的常量。

53.intx=3,y=2;则表达式x+=x*=y+8的值为C。

(A)28(B)30(C)60(D)17

54.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为B。

(A)2.7(B)3.7(C)4.7(D)4.03

55.执行下面两个语句后,输出的结果为___D__。

charc1=98;

printf(“%d%c”,c1,c1-32);

(A)9766(B)98b(C)b66(D)98B

56.执行下面语句后的结果为。

y=10;x=y++;

(A)x=10,y=10(B)x=11,y=11(C)x=10,y=11(D)x=11,y=10

57.Charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型是。

(A)double(B)char(C)int(D)float

58.C语言中要求操作数必须是整数的运算符是。

(A)/(B)%(C)!

=(D)=

59.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是。

(A)123,4(B)1234(C)123;4(D)

60.以下关于运算符优先顺序的描述中正确的是________

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

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

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

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

61.下列程序段中,功能与其它程序段不同的是。

(A)for(i=1,p=1;i<=5;i++)p*=i;

(B)for(i=1;i<=5;){p=1;p*=i;i++;}

(C)i=1;p=1;while(i<=5){p*=i;i++;}

(D)i=1;p=1;do{p*=i;i++;}while(i<=5);

62.C语言规定else总是与配对。

(A)缩进位置相同的if(B)同一行上的if

(C)其之前最近的if(D)其之后最近的if

63.以下程序的运行结果为______。

main( )

{intn;

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

{if(n%3==0)continue;printf(“%d”,n);}

}

(A)12457810(B)369(C)12(D)12345678910

64.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是。

(A)把x和y按从大到小排列(B)把x和y按从小到大排列

(C)无确定结果(D)交换x和y中的值

65.变量的指针,其含义是指该变量的_____

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

66.以下函数调用语句中含有个实参。

func((e1,e2),(e3,e4,e5));

(A)2(B)3(C)5(D)语法错误

67.以下正确的描述是________

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

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

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

(D)goto语句只能用于退出多层循环

68.以下程序运行的结果是。

main()

{inta=2,b=3,c=2;

if(a

if(a

c--;

else

c+=1;

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

}

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

68.inta[4]={2,3,4},I;

i=a[0]*a[1]+a[2]*a[3];

i的值为。

(A)2(B)4(C)6(D)10

69.以下正确的函数定义形式是。

(A)doublefun(intx,inty);

(B)doublefun(intx;inty)

(C)doublefun(intx,inty)

(D)doublefun(intx,y)

70.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。

(A)float型(B)int型(C)long型(D)double型

71.若有定义inta[4]={1,2,3};

请问a[a[a[0]]]的值是。

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

72.以下正确的描述是____________

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

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

(C)函数的定义和函数的调用均不可以嵌套

(D)函数的定义和函数的调用均可以嵌套

73.以下不正确的说法是____________

(A)在函数内的复合语句中定义的变量在本函数范围内有效

(B)在不同函数中可以使用相同名字的变量

(C)形参是局部变量

(D)函数调用结束后,静态局部变量的值仍然保留。

74.已有定义:

intx=3,y=4,z=5;

则表达式!

(x+y)+z-1&&y+z/2的值是。

(A)6(B)0(C)2(D)1

75.main()

{intn[4]={1,2,3,4},k;

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

{if(k/2)break;

n[k]++;

}

printf(“%d\n”,n[++k]);

}

执行后输出的结果是。

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

77.以下程序运行结果是。

main()

{inta[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];

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

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

if(b

b=a[i][j];

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

}

(A)5(B)7(C)4(D)1

78.以下程序运行结果是。

main()

{chars[50]=”Iamastudent”,c;

inti,num=0,word=0;

for(i=0;c=s[i];i++)

if(c==’’)word=0;

elseif(word==0)

{word=1;num++;}

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

}

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

79.以下程序运行结果是。

#include

main()

{chars[50]=”1234567”,*p=s;

inti;

i=*(p+5)-*(p+2);

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

}

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

80.以下程序运行结果是。

main()

{inta[]={1,2,3,4,5,6,7,8,9},i,j,k;

for(i=0,j=8;i

{k=a[i];a[i]=a[j];a[j]=k;}

printf(“%d\n”,a[1]+a[5]);

}

(A)11(B)12(C)13(D)14

80.以下程序运行结果是。

main()

{intx[]={1,2,3},s,*p=x,i;

for(i=0,s=1;i<3;i++,p++)

s*=*p;

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

}

(A)2(B)4(C)6(D)8

三、判断题(每题2分,共20分)

(0)1、“a”和‘a’均是占用1个字节的内存空间的数据。

(0)2、在C语言中,函数体中变量的隐含存储类别是自动变量auto。

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

(1)4、函数的实参和形参可以是相同的名字。

(0)5、外部类型的变量作用范围大,编程中应多用外部变量。

(1)6、使用strcat函数可以实现两个字符串的复制。

(1)7、如有定义inta[2][3];则数组a的最后一个元素为a[1][2]。

 

(0)8、如有定义inta[3][4]={0};则数组a的所有元素初值均为0。

 

(0)9、如有定义chara[]=”student”;则数组a的长度为7。

 

(1)10、利用break语句可以提前终止循环的执行。

四.程序分析题

阅读程序,将其运行结果填在答题卡相应题目的横线上。

1.#include"stdio.h"

voidmain()

{

inta[]={1,2,3,4,5,6},*p;

p=a;*(p+3)+=2;

printf("%d,%d\n",*p,*(p+3));

}

16

2.补充以下缺省的程序,实现求两个整型数的和:

intsum(intx,inty)

{

intz;

z=x+y;

returnz;

}

main()

{

inta,b,s;

printf(“pleaseenteraandb:

”);

scanf(“%d%d”,&a,&b);

s=sum(a,b)

printf(“%d+%d=%d\n

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2