c语言复习试题.docx

上传人:b****5 文档编号:24684103 上传时间:2023-05-31 格式:DOCX 页数:34 大小:30.69KB
下载 相关 举报
c语言复习试题.docx_第1页
第1页 / 共34页
c语言复习试题.docx_第2页
第2页 / 共34页
c语言复习试题.docx_第3页
第3页 / 共34页
c语言复习试题.docx_第4页
第4页 / 共34页
c语言复习试题.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

c语言复习试题.docx

《c语言复习试题.docx》由会员分享,可在线阅读,更多相关《c语言复习试题.docx(34页珍藏版)》请在冰豆网上搜索。

c语言复习试题.docx

c语言复习试题

《C语言程序设计》试题库

一、选择题

1、一个c语言程序的执行是从()

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

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

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

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

8、以下选项中不合法的用户标识符是()

A、abc.cB、fileC、MainD、PRINTF

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

A、必须为字母B、必须为下划线C、必须为字母或下划线

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

10、以下选项中不合法的用户标识符是()

A、_123B、printfC、A$D、Dim

11、c语言中运算对象必须是整型的运算符是()

A、%B、/C、!

D、**

13、若变量已正确定义并赋值,符合C语言语法的表达式是()

A、a=a+7;B、a=7+b+c,a++C、int(12.3%4)D、a=a+7=c+b

19、若有定义:

inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为()。

A、1.4B、1C、2.0D、2

20、char型数据在内存中的存储形式是()

A、补码B、反码C、原码D、ASCII码

23、若变量a是int类型,并执行了语句:

a=’A’+1.6;则正确的叙述是()。

A、a的值是字符CB、a的值是浮点型

C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上1

24.、以下选项中合法的字符常量是()。

A、“B”B、’\010’C、68D、D

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

A、0B、1C、3D、不确定的值

main()

{intx=10,y=3;

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

}

29、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是()

A、read(a,b,c);

B、scanf(“%d%d%d”a,b,c);

C、scanf(“%D%D%D”,&a,&b,&c);

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

A、floatB、charC、intD、double

32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是()

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

A、!

B、%C、-=D、&&

40、下列运算符中优先级最低运算符是()

A、||B、!

=C、〈=D、+

41、为表示关系x≥y≥z,应使用的C语言表达式是()

A、(x>=y)&&(y>=z)B、(x>=y)AND(y>=z)

C、(x>=y>=z)D、(x>=y)&(y>=z)

43、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()。

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

45、以下程序的输出是()

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

main()

{inta=2,b=-1,c=2;

if(b

if(b<0)c=0;

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

46、设a,b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()

A、a&&bB、a<=bC、a||b+c&&b-cD、!

((a

c||1)

47、以下程序的输出是()

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

main()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

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

}

49、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()

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

A、x=10,y=20,z=30B、x=20,y=30,z=30

C、x=20,y=30,z=10D、x=20,y=30,z=20

50、以下程序的运行结果是()

main(){intm=5;

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

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

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

51、若执行以下程序时从键盘上输入3和4,则输出结果是()

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

main()

{inta,b,s;

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

s=a;

if(a

s*=s;

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

}

52、运行以下程序,输出()

A、****B、&&&&

C、####&&&&D、有语法错误不能通过编译

main()

{intk=-3;

if(k<=0)printf(“****\n”);

elseprintf(“&&&&\n”);

}

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

main(){intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez=z+1;

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

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

57、以下程序段,intk=10;while(k=0)k=k+1;则下面描述中正确的是()。

A、while循环执行10次B、循环是无限循环

C、循环体语句一次也不执行D、循环体语句执行一次

58.以下程序中,while循环的循环次数是()。

main()

{

inti=0;

while(i<10)

{

if(i<1)break;

i++;

}

}

A、1B、10C、6D、死循环,不能确定次数

60、若执行以下程序时从键盘上输入9,则输出结果是()

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

main()

{intn;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

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

}

62、对于下面①,②两个循环语句,()是正确的描述。

①while

(1);②for(;;);

A、①②都是无限循环B、①是无限循环,②错误

C、①循环一次,②错误D、①②皆错误

63、语句while(!

E);中的表达式!

E等价于()

A、E==0B、E!

=1C、E!

=0D、E==1

64、下面程序段运行结果是()

x=y=0;while(x<15)y++,x=x+(++y);

pirntf(“%d,%d”,y,x);

A、20,7B、6,12C、20,8D、8,20

65、设有以下程序段intx=0,s=0;

while(!

x!

=0)s+=++x;

printf(“%d”,s);则()

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

C、程序段中的控制表达式是非法的D、程序段执行无限次

66、下面程序段的运行结果是()

intn=0;while(n++<=2);printf(“%d”,n);

A、2B、3C、4D、有语法错误

67、下面程序的运行结果是()

#include

main(){intnum=0;

while(num<=2)

{num++;printf(“%d”,num);}}

A、1B、12C、123D、1234

68、c语言中while和do-while循环的主要区别是()

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

for(i=2;i==0;)printf(“%d”,i--);

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

72、下面程序的运行结果是()

#include

main(){inty=10;

do{y--;}while(--y);

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

A、-1B、1C、8D、0

74、下面程序段的运行结果是()

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

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

A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=27

76、以下程序段输出结果是()

A、9B、1C、11D、10

intk,j,s;

for(k=2;k<6;k++,k++)

{s=1;

for(j=k;j<6;j++)s+=j;

}

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

78、以下程序段输出结果是()

A、10B、9C、10D、9

9898

8787

76

intn=10;

while(n>7)

{n--;

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

}

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

A、741B、852C、963D、875421

main()

{inty=10;

for(;y>0;y--)

if(y%3==0)

{printf(“%d”,--y);continue;}

}

86、C语言中,字符(char)型数据在微机内存中的存储形式是()

A、反码B、补码C、EBCDIC码D、ASCII码

87、设有定义语句chara=‘\72’;,则变量a()

A、包含1个字符B、包含2个字符

C、包含3个字符D、包含4个字符

88、C语言中不合法的字符常量是()

A、‘\xff’B、‘\65’C、‘&’D、‘\028’

89、C语言中不合法的字符串常量是()

A、“121”B、‘y=’C、“\n\n”D、“ABCD\x6d”

90、判断char型变量c是否为大写字母的最简单且正确的表达式是:

()

A、‘A’<=c<=‘Z’B、(c>=‘A’)&(c<=‘Z’)

C、(‘A’<=c)AND(‘Z’>=c)D、(c>=‘A’)&&(c<=‘Z’)

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

A、因输出格式不合法,无正确输出B、65,90

C、A,YD、65,89

main()

{charc1=’A’,c2=’Y’;

printf(“%d,%d\n”,c1,c2);

}

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

A、因变量无定义输出不定值B、0C、-1D、1

#include“stdio.h”

main()

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

99、以下程序的输出结果是

A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7

voidsub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

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

103、在c语言中,引用数组元素时,其数组下标的数据类型允许是()

A、整型常量B、整型表达式C、整型常量或整型表达式

D、任何类型的表达式

104、以下对一维整型数组a的正确说明是()

A、inta(10);B、intn;scanf(“%d”,&n);inta[n];

C、intn=10,a[n];D、#defineSIZE10int[SIZE];

105、以下能对一维数组a进行正确初始化的语句是()。

A、inta[10]=(0,0,0,0,0);B、inta[10]={};

C、inta[]={10,12,56};D、inta[]={‘10*1’};

106、以下对二维数组a的正确说明是()。

A、inta[3][];B、floata(3,4);C、doublea[1][4];D、floata(3)(4);

107、若有说明:

inta[3][4];则对a数组元素的正确引用是()。

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

(2)

(1)

108、若有说明:

inta[3][4];则对a数组元素的非法引用是()。

A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]

109、以下能对二维数组a进行正确初始化的语句是()。

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

C、inta[2][4]={1,2,3},{4,5}{6}};D、inta[][3]={{1,0,1}{},{1,1}};

111、若有说明:

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

A、只有元素a[0][0]可得到初值0B、数组a中每个元素均可得到初值0

C、数组a中各元素都可得到初值,但不一定为0D、此说明语句不正确

113、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为()。

(假设a[0][0]位于数组的第一个位置上。

A、i*m+jB、j*m+IC、i*m+j-1D、i*m+j+1

114、对以下说明语句的正确理解是()。

inta[10]={6,7,8,9,10};

A、将5个初值依次赋给a[1]至a[5]B、将5个初值依次赋给a[0]至a[4]

C、将5个初值依次赋给a[6]至a[10]D、因为数组长度与初值的个数不相同,所以此语句不正确

115、若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。

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

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

intk;

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

则下面语句的输出结果是()。

for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);

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

117、下面是对s的初始化,其中不正确的是()。

A、chars[5]={“abc”};B、chars[5]={‘a’,’b’,’c’};

C、chars[5]=””;D、chars[5]=”abcdef”;

122、有下面的程序段

chara[3],b[]=”China”;

a=b;printf(“%s”,a);则()。

A、运行后将输出ChinaB、运行后将输出Ch

C、运行后将输出ChiD、编译出错

123、判断字符串a和b是否相等,应当使用()。

A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))

124、判断字符串s1是否大于字符串s2,应当使用()。

A、if(s1>s2)B、if(strcmp(s1,s2))

C、if(srtcmp(s2,s1)>0)D、if(strcmp(s1,s2)>0)

128、以下正确的函数定义形式是()。

A、doublefun(intx,inty)B、doublefun(intx;inty)

C、doublefun(intx,inty);D、doublefun(intx,y);

130、以下正确的说法是()。

在C语言中

A、实参和与其对应的形参各占用独立的存储单元

B、实参和与其对应的形参共占用一个存储单元

C、只有当实参和与其对应的形参同名时才共占用存储单元

D、形参是虚拟的,不占用存储单元

131、以下不正确的说法是()。

C语言规定

A、实参可以是常量、变量或表达式B、形参可以是常量、变量或表达式

C、实参可以为任意类型D、形参应与其对应的实参类型一致

132、以下正确的说法是()。

A、定义函数时,形参的类型说明可以放在函数体内

B、return后边的值不能为表达式

C、如果函数值的类型与返回值类型不一致,以函数值类型为准

D、如果形参与实参的类型不一致,以实参类型为准

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

A、float型B、int型C、long型D、double型

134、C语言规定,函数返回值的类型是由()。

A、return语句中的表达式类型所决定

B、调用该函数时的主调函数类型所决定

C、调用该函数时系统临时决定

D、在定义该函数时所指定的函数类型所决定

135、下面函数调用语句含有实参的个数为()。

Func((exp1,exp2),(exp3,exp4,exp5));

A、1B、2C、4D、5

138、若用数组名作为函数调用的实参,传递给形参的是()。

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

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

143、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()

A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)

144、以下程序的运行结果是()

sub(intx,inty,int*z)

{*z=y-x;}

main(){inta,b,c;

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);}

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

A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7

146、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()

main(){int*p,*q,a,b;

p=&a;printf(“inputa:

”);

scanf(“%d”,*p);

……}

A、*p表示的是指针变量p的地址

B、*p表示的是变量a的值,而不是变量a的地址

C、*p表示的是指针变量p的值

D、*p只能用来说明p是一个指针变量

148、若有说明:

int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()

A、p1=&m;p2=&p1;B、p1=&m;p2=&n;*p1=*p2;

C、p1=&m;p2=p1;D、p1=&m;*p2=*p1;

149、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是()

A、c=*p1+*p2;B、p2=c;C、p1=p2;D、c=*p1*(*p2)

150、下面判断正确的是()

A、char*a=”china”;等价于char*a;*a=”china”;

B、charstr[10]={“china”};等价于charstr[10];str[]={”china”};

C、char*a=”china”;等价于char*s;s=”china”;

D、charc[4]=”abc”,d[4]=”abc”;等价于charc[4]=d[4]=”abc”;

151、下面能正确进行的字符串赋值操作的是()

A、chars[5]={“ABCDE”};B、chars[5]={‘A’,’B’,’C’,’D’,’E’};

C、char*s;s=”ABCDE”;D、char*s;scanf(“%s”,s);

152、若有以下定义,则对a数组元素的正确因用是()

inta[5],*p=a;

A、*&a[5]B、a+2C、*(p+5)D、*(a+2)

153、若有定义:

inta[2][3];则对a数组的第i行第j列元素值得正确引用为()

A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j

154、若有以下定义和语句,则对a数组元素地址的正确引用为()

inta[2][3],(*p)[3];p=a;

A、*(p+2)B、p[2]C、p[1]+1D、(p+1)+2

158、库函数strcpy用以复制字符串。

若有以下定义和语句:

charstr1[]=”string”,str2[8],*str3,*str4=”string”;

则对库函数strcpy的不正确调用是()

A、strcpy(str1,”HELLO1”);B、strcpy(str2,”HELLO2”);

C、strcpy(str3,”HEELO3”);D、strcpy(str4,”HELLO4”);

159、若已定义:

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

其中0<=i<=9,则对a数组元素的引用不正确的是()

A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))

160、以下程序段给数组所有元素输入数据,应在下划线处填入的是

A、a+(i++)B、&a[i+1]C、a+iD、&a[++i]

main()

{inta[10],i=0;

while(i<10)scanf(“%d”,___):

……}

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

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

main()

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

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

}

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

A、6B、8C、4D、2

main()

{inta[]={2,4,6,8},*p=a,i;

for(i=0;i<4;i++)a[i]=*p++;

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

}

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

A、1,5,9,B、1,4,7,C、3,5,7,D、3,6,9,

main()

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

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

printf("%d,",x[i][2-i]);}

176、以下能正确进行字符串赋值、赋初值的语句组是()

A、chars[5]={‘a’,’e’,’i’,’o’,’u’};

B、char*s;s=”good!

”;

C、chars[5]=”good!

”;

D、chars[5];s=”good”;

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

charstr[]=”ABCD”,*p=str;

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

A、68B、0C、字符

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

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

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

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