C语言自测练习.docx

上传人:b****8 文档编号:27641939 上传时间:2023-07-03 格式:DOCX 页数:32 大小:34.25KB
下载 相关 举报
C语言自测练习.docx_第1页
第1页 / 共32页
C语言自测练习.docx_第2页
第2页 / 共32页
C语言自测练习.docx_第3页
第3页 / 共32页
C语言自测练习.docx_第4页
第4页 / 共32页
C语言自测练习.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C语言自测练习.docx

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

C语言自测练习.docx

C语言自测练习

C语言自测练习

一.单项选择题

1.为了避免嵌套的条件语句if-else的二义性,C语言规定:

else与(B)配对。

A.缩进位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if

2.已知:

inty;执行语句y=5%3;则变量y的结果是(A)。

A.2B.-2C.1D.-1

3.具有相同类型的指针变量与数组a,不能进行的操作是(D)。

A.p=a;B.*p=a[0];C.p=&a[0];D.p=&a;

4.用于函数返回值的语句是(A)。

A.returnB.continueC.breakD.printf

5.设intm=1,n=2;则m++==n的结果是(A)。

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

6.设inta=2,b=2;则++a+b的结果是(D)。

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

7.已知:

inta,b;用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是(A)。

A.,B.空格C.回车D.Tab

8.凡在函数中未指定存储类别的变量,其隐含的存储类别为(A)。

A.autoB.staticC.externD.register

9.若对函数类型未加显示说明,则函数的隐含类型是(C)。

A.voidB.doubleC.intD.char

10.在inta[5]={1,3,5};语句中,数组元素a[1]的值是(C)。

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

11.已知inta=3,*p=&a;则*p的值是(D)。

A.变量a的地址值B.无意义C.变量p的地址值D.3

12.已知struct{inti;charc;floata;}test;则sizeof(test)的值是(D)。

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

13.C语言中合法的变量名是(B)。

A.2xB.x_1C.doubleD.x*2

14.数学表达式x≤y≤z,C语言中的正确表达式是(D)。

A.x<=y<=zB.x<=y,y<=zC.x<=y||y<=zD.!

(x>y)&&y<=z

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

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

16.已知inti=3,j;j=++i;则i和j的值分别为(B)。

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分别为'A'和'B',正确输入是(A)。

A.AB<回车>B.AB<回车C.A,B<回车>D.A<回车>B<回车>

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

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

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

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

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

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

A.fopen(“file1”,“r”)B.fopen(“file1”,“w”)

C.fopen(“file1”,“rb”)D.fopen(“file1”,“wb”)

21.已知intx=1;表达式!

(x>0)?

x+1:

x-1的结果为(B)。

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

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

A.ax*x+bx+cB.a×x×x+b×x+cC.a*x*x+b*x+cD.a·x·x+b·x+c

23.循环for(i=1;i<=100;i++){if(i>10)break;printf(“*”);};输出的*号个数是(C)。

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

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

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]的地址为(D)。

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

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

#include

voidmain()

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

switch(x){case0:

b++;case1:

a++;case2:

a++;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语言正确的描述是(B)。

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

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

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

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

A.++tB.;C.k=i=j;D.{a/=b=1;b=a%2;}

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

#includevoidmain(){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)。

#include

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.B.27.C.28.D.28.

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

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循环不断输出读入的字符,当读入回车换行符时结束循环。

正确的程序段是(D)。

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)。

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

36.以下叙述中正确的是(B、C、D)。

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

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

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

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.在程序运行时某局部变量始终占据固定的存储单元,其存储类别应该是(C)。

A.autoB.registerC.staticD.extern

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

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

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

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

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

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

0x8f017-0x117ff

0180xa0x16-123

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

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语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。

A.floatB.intC.voidD.double

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

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类型,则以下程序段中内循环体的总的执行次数是(A)。

for(i=5;i;i--)for(j=0;j<4;j++){……}

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

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

A.<=B.=C.%D.&&

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

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

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

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

102030<回车>,输出的结果是(C)。

#include

voidmain()

{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<回车>,输出结果是(B)。

#include

voidmain()

{intn;scanf(“%d”,&n);if(n++<10)printf(“%d\n”,n);elseprintf(“%d\n”,n--);}

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

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

#include

voidmain()

{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.下面程序运行后的输出结果是(C)。

#include

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.下面程序运行后的输出结果是(D)。

#include

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.以下能正确定义一维数组的是(B)。

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;以下非法的赋值语句是(D)。

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

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

#include#definef(x)x*x

voidmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}

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

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

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

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

58.已知inti=5;执行语句i+=i;后i的值是(A)。

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

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

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,则正确的输入形式为(C)。

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

61.执行语句:

printf(“Theprogram\’snameisc:

\\tools\book.txt”);后输出为(D)。

A.Theprogram’snameisc:

tools\book.txtB.Theprogram’snameisc:

\tools\book.txt

C.Theprogram’snameisc:

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

\toolook.txt

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

A.if(x>y);B.if(x!

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

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

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

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

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

64.若inti=10;执行下列程序段后,变量i的正确结果是(D)。

switch(i){case9:

i+=1;case10:

i+=1;case11:

i+=1;default:

i+=1;}

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

65.执行语句for(i=0;i++<3;);后变量i的值为(C)。

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

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

A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];

67.已知:

inta[10];则对a数组元素正确应用的是(D)。

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

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

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

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

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

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

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

71.C语言中函数(D)。

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

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

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

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

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

73.若int*p,a;则语句p=&a;中的运算符&的含义是(D)。

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

74.已知:

charb[5],*p=b;则正确的赋值语句是(C)。

A.b=“abcd”;B.*b=“abcd”;C.p=“abcd”;D.*p=“abcd”;

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

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

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

76.若有定义intx,y;并已正确赋值,则以下选项中与表达式(x-y)?

(x++):

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

A.(x-y>0)B.(x-y<0)C.(x-y<0||x-y>0)D.(x-y==0)

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

#includevoidmain(){inta=3;printf(“%d\n”,(a+=a-=a*a));}

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

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

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

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

#includevoidmain(){inta=0,b=0;a=10;b=20;printf(“a+b=%d\n”,a+b);}

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

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

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

81.设有数组定义:

chararray[]=“China”;则数组array所占的空间为(C)。

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

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

6,5,65,66<回车>,则输出结果是(A)。

#includevoidmain(){chara,b,c,d;

scanf(“%c,%c,%d,%d”,&a,&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)。

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

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

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

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

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

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

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)。

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

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

A.p=&i;B.p=a;C.p=&a[i];D.p=10;

89.若要定义a为3×4的二维数组,正确的定义语句是(B)。

A.floata(3,4);B.floata[3][4];C.floata3.4;D.floata[3,4];

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

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

a:

c

a:

d的结果是1。

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

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

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

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

8.设有定义charw;intx;floaty;doublez;并已赋确定的值,则表达式w*x+z-y的类型为double。

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

10.已知intb=2,a=3;表达式a*=b,a+b的结果是8。

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

12.设i,j,k均为int型变量,则执行for(i=0,j=10;i<=j;i++,j--)k=i+j;循环后k值为10。

13.设有数据定义intk=4,*p=&k;则表达式p==&k的值为1。

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

15.若ch已定义为字符型变量,且已赋值,判断ch中是否为字母的表达式为ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’。

16.已知uniontype{inti;double*p;}temp;则系统为temp分配的空间为2字节。

17.若有定义和语句:

chars[12]=“abook!

”;printf(“%d\n”,strlen(s));则输出结果是7。

18.设有变量定义:

inti;floatf;charname[50];当执行语句scanf(“%2d%f%2s”,&i,&f,name);时,输入字符55566777后,name的值是77。

19.若有函数定义fun(doublea){returna*a*a;},则函数返回值的类型是int。

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

t=a;a=b;b=t;

21.若有语句chark,*p;要将指针变量p指向字符型变量k,则C语句为p=&k。

22.有inta=3,b=4,c=5;则表达式!

(a+b)+c-1&&b+c/2的值为1。

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

24.若intx=5,n=5;则表达式x+=n++后,x的值是10

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

当前位置:首页 > 初中教育 > 中考

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

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