C语言自测练习Word格式文档下载.docx

上传人:b****4 文档编号:16637673 上传时间:2022-11-25 格式:DOCX 页数:22 大小:31.47KB
下载 相关 举报
C语言自测练习Word格式文档下载.docx_第1页
第1页 / 共22页
C语言自测练习Word格式文档下载.docx_第2页
第2页 / 共22页
C语言自测练习Word格式文档下载.docx_第3页
第3页 / 共22页
C语言自测练习Word格式文档下载.docx_第4页
第4页 / 共22页
C语言自测练习Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言自测练习Word格式文档下载.docx

《C语言自测练习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言自测练习Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

C语言自测练习Word格式文档下载.docx

=y<

=zB.x<

=y,y<

=zC.x<

=y||y<

=zD.!

(x>

y)&

&

y<

=z

15.下面实型常量的错误形式是(D)。

【e前必须有数字,后必须是整数】

A.-253.000B.-253.C.0.253e3D.2.53e+3.5

16.已知inti=3,j;

j=++i;

则i和j的值分别为()。

A.i=3,j=4B.i=4,j=4C.i=4,j=3D.i=3,j=3

17.下列表达式的值为0的是(C)。

A.3%5B.3/5.0C.3/5D.3<

5

18.执行scanf(“%c%c”,&

语句使变量a、b分别为'

A'

和'

B'

,正确输入是(C)。

A.AB<

回车>

B.AB<

回车C.A,B<

D.A<

B<

19.C语言程序由函数组成,它的(B)。

A.主函数必须在其它函数之前,函数内可以嵌套定义函数

B.主函数可以在其它函数之后,函数内不可以嵌套定义函数

C.主函数必须在其它函数之前,函数内不可以嵌套定义函数

D.fopen(“D.主函数必须在其它函数之后,函数内可以嵌套定义函数

20.为程序输入数据,而打开文本文件file1,正确的函数调用是(A)。

解释(好好看完)

A.fopen(“file1”,“r”)B.fopen(“file1”,“w”)c.fopen(“file1”,“rb”)D.fopen(“file1”,“wb”)

21.已知intx=1;

表达式!

0)?

x+1:

x-1的结果为(C)。

A.1B.0C.2D.x<

22.ax2+bx+c的C语言表达式是(C)。

A.ax*x+bx+cB.a×

x+b×

x+cC.a*x*x+b*x+cD.a·

x+b·

x+c

23.循环for(i=1;

i<

=100;

i++){if(i>

10)break;

printf(“*”);

};

输出的*号个数是()。

A.100B.101C.10D.11

24.在调用函数时,实参和形参都是简单变量,它们之间的数据传递方式是(D)。

A.双向地址传递B.单向值传递C.由用户决定

D.由实参传递给形参,也可以由形参传递给实参

25.下面定义语句中错误的是(C)。

A.inta[]={1,2};

B.char*p=”CHINA”;

C.intn=5,a[n];

D.intx=’A’;

26.定义二维数组a[3][4]中,其中元素a[1][2]的地址为()。

A.aB.a[0]C.a[1]D.a[1]+2

27.有如下程序,其输出结果是(D)。

例题

#include<

stdio.h>

voidmain()

{intx=1,a=0,b=0;

switch(x){case0:

b++;

case1:

a++;

case2:

b++;

};

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

}

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

28.下面对C语言正确的描述是()。

A.写程序时,大小写字母没有区别B.源程序经编译连接后,可生成可执行文件

C.每个语句和数据定义的最后可以没有分号

D.语言允许直接访问物理地址,可以进行位运算,它属于低级语言

29.下列选项中不是C语句的是()。

A.++tB.;

C.k=i=j;

D.{a/=b=1;

b=a%2;

30.以下程序的输出是()。

voidmain(){inta=9;

a+=a-=a+a;

printf(“%d”,a);

}

A.18B.9C.-18D.-9

31.设x和y均为int变量,语句组x+=y;

y=x-y;

x-=y;

的功能是(d)。

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

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

32.以下程序的输出是(A)。

voidmain(){intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

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

A.27.000000B.27.500000C.28.000000D.28.500000

33.在下列选项中,没有构成死循环的程序段是()。

A.inti=100;

while

(1){i=i%100+1;

if(i>

100)break;

}B.for(;

;

);

C.intk=0;

do{++k;

}while(k>

=0);

D.ints=36;

while(s);

--s;

34.以下while循环不断输出读入的字符,当读入回车换行符时结束循环。

正确的程序段是()。

A.while(ch=getchar()==’\N’B.while((ch=getchar())==’\n’

C.while((ch=getchar())!

=’\N’D.while((ch=getchar())!

=’\n’

35.若以下对fun的调用是正确的:

x=fun(fun(a,b,c),(a+b,a+c),a+b+c);

则fun函数的形参个数为()。

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

36.以下叙述中正确的是()。

A.在函数中必须要有return语句B.函数中可以有多个return语句,但只执行其中的一个

C.return语句中必须要有一个表达式D.函数值并不总是通过return语句传回调用处

37.以下正确的定义语句是()。

A.intn=5,a[n][n];

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

C.inta[][3];

D.inta[][]={{1,2,},{3,4},{5,6}};

38.在程序运行时某局部变量始终占据固定的存储单元,其存储类别应该是()。

A.autoB.registerC.staticD.extern

39.C语言规定,标识符的第一个字母必须是()。

A.字母B.数字C.下划线D.字母或下划线

40.下面不正确的字符常量是()。

A.“c”B.‘Y’C.‘w’D.‘9’

41.下面4组选项中,均是正确的八进制或十六进制的选项是()。

A.016B.0abcC.010D.0a12

0x8f017-0x117ff

0180xa0x16-123

42.下面程序段的输出结果是()。

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

printf(“%d\n”,*(p+2));

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

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

A.floatB.intC.voidD.double

44.若二维数组a有m列,则在a[i][j]之前的元素个数为()。

A.j*m+iB.i*m+jC.j*m+i+1D.i*m+j+1

45.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()。

A.“ab+”B.“wb+”C.“rb+”D.“ab”

46.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是()。

for(i=5;

i;

i--)for(j=0;

j<

4;

j++){……}

A.20B.24C.25D.30

47.在以下一组运算符中,优先级别最高的是()。

A.<

=B.=C.%D.&

48.以下叙述中正确的是()。

A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数

C.main函数必须放在其他函数之前D.所有被调函数一定要在调用之前进行定义

49.以下程序运行市,若从键盘输入:

102030<

,输出的结果是()。

{inti=0,j=0,k=0;

scanf(“%d%*d%d”,&

i,&

j,&

k);

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

A.102030B.10020C.10300D.103030

50.若执行以下程序时,从键盘上输入9<

,输出结果是()。

{intn;

scanf(“%d”,&

n);

if(n++<

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

elseprintf(“%d\n”,n--);

A.11B.10C.9D.8

51.以下程序运行后的输出结果是()。

{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

52.下面程序运行后的输出结果是()。

voidmain(){inta=5,b=4,c=6,d=0;

printf(“%d\n”,d=a>

b?

(a>

c?

a:

c):

(b));

A.5B.4C.6D.0

53.下面程序运行后的输出结果是()。

voidmain()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<

7&

p[i]%2){k=k+p[i];

i++;

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

A.58B.56C.45D.24

54.以下能正确定义一维数组的是()。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={‘A’,‘B’,‘C’};

D.inta[5]=”0123”;

55.已有定义:

intn=2,*p=&

n,*q=p;

以下非法的赋值语句是()。

A.p=q;

B.*p=*q;

C.n=*q;

D.p=n;

56.下面程序运行后的输出结果是()。

#definef(x)x*x

voidmain(){inti;

i=f(4+4)/f(2+2);

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

A.28B.22C.16D.4

57.C语言中的简单数据类型包括()。

A.整型、实型、逻辑型B.整型、实型、字符型

C.整型、字符型、逻辑型D.整型、实型、字符型、逻辑型

58.已知inti=5;

执行语句i+=i;

后i的值是()。

A.10B.11C.12D.ABC答案都不对

59.C语言中下列运算符的操作数必须是int型的是()。

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

60.已知:

intx,y,z,w;

scanf(“%4d-%3d-%2d-%1d”,&

x,&

y,&

z,&

w);

printf(“%4d+%3d+%2d+%1d”,x,y,z,w);

若输出结果为:

1234+123+12+1,则正确的输入形式为()。

A.1234123121B.1234123121C.1234-123-12-1D.1234+123+12+1

61.执行语句:

printf(“Theprogram\’snameisc:

\\tools\book.txt”);

后输出为()。

A.Theprogram’snameisc:

tools\book.txtB.Theprogram’snameisc:

\tools\book.txt

C.Theprogram’snameisc:

\\tools\book.txtD.Theprogram’snameisc:

\toolook.txt

62.以下语句有语法错误的是()。

A.if(x>

y);

B.if(x!

=y)scanf(“%d”,x)elsescanf(“%d”,y);

C.if(x==y)x+=y;

D.if(x<

y){x++;

y++;

63.下列关于switch语句和break语句的结论中,正确的是()。

A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句;

C.在switch语句中必须使用break语句D.switch语句是break语句的一部分

64.若inti=10;

执行下列程序段后,变量i的正确结果是()。

switch(i){case9:

i+=1;

case10:

case11:

default:

A.10B.11C.12D.13

65.执行语句for(i=0;

i++<

3;

);

后变量i的值为()。

66.要说明一个有10个int型元素的数组,应当选择语句()。

A.inta[10];

B.inta[2,5];

C.inta[];

D.int*a[10];

67.已知:

inta[10];

则对a数组元素正确应用的是()。

A.a[10]B.a[2.5]C.a(5)D.a[10-10]

68.在C语言中,二维数组元素在内存中的存放顺序是()。

A.按行存放B.按列存放C.由用户自己定义D.由编译器决定

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

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

70.一个C语言程序总是从()开始执行。

A.主过程B.主函数C.子程序D.主程序

71.C语言中函数()。

A.可以嵌套定义B.不可以嵌套调用

C.可以嵌套调用,但不能递归调用D.嵌套调用和递归调用均可

72.C语言中函数返回值得类型是由()决定的。

A.return语句中的表达式类型B.调用该函数的主调函数类型

C.调用函数时临时D.定义函数时所指定的函数类型

73.若int*p,a;

则语句p=&

中的运算符&

的含义是()。

A.位与运算B.逻辑与运算C.取指针运算D.取变量地址运算

74.已知:

charb[5],*p=b;

则正确的赋值语句是()。

A.b=“abcd”;

B.*b=“abcd”;

C.p=“abcd”;

D.*p=“abcd”;

75.设x、y均为整型变量,且x=10、y=3,则以下语句的输出结果是()。

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

A.10,3B.9,3C.9,2D.10,2

76.若有定义intx,y;

并已正确赋值,则以下选项中与表达式(x-y)?

(x++):

(y++)中的(x-y)等价的是()。

A.(x-y>

0)B.(x-y<

0)C.(x-y<

0||x-y>

0)D.(x-y==0)

77.以下程序的输出结果是()。

voidmain(){inta=3;

printf(“%d\n”,(a+=a-=a*a));

A.-6B.12C.0D.-12

78.若x是整型变量,表达式(x=10/4)的值是()。

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

79.有以下程序,运行后的输出结果是()。

voidmain(){inta=0,b=0;

a=10;

b=20;

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

A.a+b=10B.a+b=30C.30D.出错

80.以下非法的赋值语句是()。

A.n=(i=2,++i);

B.j++;

C.++(i+1);

D.x=j>

0;

81.设有数组定义:

chararray[]=“China”;

则数组array所占的空间为()。

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

82.有以下程序,若运行时从键盘输入:

6,5,65,66<

,则输出结果是()。

voidmain(){chara,b,c,d;

scanf(“%c,%c,%d,%d”,&

b,&

c,&

d);

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

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

83.程序段:

intn=1;

printf(“%d%d%d\n”,n,++n,n--);

的输出结果是()。

A.111B.122C.123D.121

84.在宏定义#definePI1.11596中,用宏名PI代替的是一个()。

A.单精度数B.双精度数C.常量D.字符串

85.在C语言程序中,在函数内部定义的变量称为()。

A.全局变量B.局部变量C.静态变量D.寄存器变量

86.在C语言中,合法的字符常量是()。

A.‘\084’B.‘0x43’C.‘ab’D.‘\0’

87.已知字母‘A’的ASCII码为十进制65,则程序段:

charch1,ch2;

ch1=‘A’+‘5’-‘3’;

ch2=‘A’+‘6’-‘3’;

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

A.67,DB.B,CC.C,DD.不确定的值

88.已知p为指针变量,a为数组名,i为整型变量,下列赋值语句不正确的是()。

A.p=&

B.p=a;

a[i];

D.p=10;

89.若要定义a为3×

4的二维数组,正确的定义语句是()。

A.floata(3,4);

B.floata[3][4];

C.floata3.4;

D.floata[3,4];

90.在下面语句中,其含义为“p为指向含n个元素的一维数组的指针变量”的是()。

A.intp[n]B.int*p()C.int*p(n)D.int(*p)[n]

二.填空题

1.一个良好的算法是由3种基本结构按照一定规律组成的,这3种基本结构是顺序结构、和循环结构。

2.函数strcmp返回的值等于零时,说明两个字符串。

3.设a=1,b=2,c=3,d=4,则表达式a<

b?

a:

c<

d?

d的结果是。

4.C语言程序在函数中结束程序的运行。

5.设a=2、b=3、c=4为整型变量,则执行语句a*=16+(b++)-(++c);

后a的值是。

6.在定义函数时,用类型加以说明,函数不返回值。

7.在函数内定义的变量称为。

8.设有定义charw;

intx;

floaty;

doublez;

并已赋确定的值,则表达式w*x+z-y的类型为。

9.C语言程序是由函数组成,程序的执行都是从开始的。

10.已知intb=2,a=3;

表达式a*=b,a+b的结果是。

11.结构化程序设计的三种基本结构是、、。

12.设i,j,k均为int型变量,则执行for(i=0,j=10;

=j;

i++,j--)k=i+j;

循环后k值为。

13.设有数据定义intk=4,*p=&

k;

则表达式p==&

k的值为。

14.函数调用时,实参和形参均为数组名,其传递方式为。

15.若ch已定义为字符型变量,且已赋值,判断ch中是否为字母的表达式为。

16.已知uniontype{inti;

double*p;

}temp;

则系统为temp分配的空间为字节。

17.若有定义和语句:

chars[12]=“abook!

”;

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

则输出结果是。

18.设有变量定义:

inti;

floatf;

charname[50];

当执行语句scanf(“%2d%f%2s”,&

f,name);

时,输入字符55566777后,name的值是。

19.若有函数定义fun(doublea){returna*a*a;

},则函数返回值的类型是。

20.以下语句实现将整型变量a和b的值对调的功能:

a=b;

b=t;

21.若有语句chark,*p;

要将指针变量p指向字符型变量k,则C语句为。

22.有inta=3,b=4,c=5;

则表达式!

(a+b)+c-1&

b+c/2的值为。

23.若有函数max(a,b),为了使指针变量p指向函数max,则正确的赋值语句是。

24.若intx=5,n=5;

则表达式x+=n++后,x的值是。

25.假设m是一个3位数,从左到右用a、b、c表示各位的数字,则从左到右用各个数字是bac的3位数的表达式是。

26.数学表达式

对应的C语言表达式是。

27.若有定义doublea=5.5,b=2.5;

则表达式(int)a+b/b的值是。

28.若已将fp正确定义为文件指针变量,欲以“读”方式打开已存在的二进制文件“d1.dat”,请填写函数fopen的参数。

fp=fopen();

29.表达式3*7%2

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

当前位置:首页 > 求职职场 > 简历

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

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