C语言复习题文档格式.docx
《C语言复习题文档格式.docx》由会员分享,可在线阅读,更多相关《C语言复习题文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
![C语言复习题文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/20/db68457c-268e-4db4-8ae2-44e0437a8342/db68457c-268e-4db4-8ae2-44e0437a83421.gif)
(n)
10.sub()和Sub()是不同的函数(y)
11.在C程序中,函数中所定义的局部变量与全局变量同名时,局部变量屏蔽全局变量。
(y)
12.全局外部变量定义命令必须写在函数之外。
13.指针变量算术运算只能可作+、—运算。
(y)
14.如有定义floata[10];
可定义表达式a=a+1。
(n)
15.在逻辑表达式的计算中,必须所有的逻辑远算符都被执行后,才会结束表达式的计算(n)
16.数组名作为函数实际参数,传送的是地址(y)
17.若变量pointer是指针变量,命令pointer=0x2000;
是正确的赋值命令.(n)
18.intc[2][]={{1,2},{3,4}};
是正确的二维数组定义命令。
(n)
19.printf("
%5.3f\n"
123456.12345);
输出为23456.123(n)。
20.变量定义char*(pa)[4];
说明pa是用于二维数组处理的指针。
21.用命令scanf("
%s"
name);
对字符数组进行输入操作,当键入“IamaStudent”时,数组的内容为“I”。
(y)
22.表达式‘B’+a’-‘A’的结果是’b’(y)
23.while(){;
}表示无限循环(n)
24.switch(j){……..}语句中的变量j可以是浮点型变量(n)
25.全局变量的不加存储方式修饰符时,说明其存储类型为auto(n)
26.指针变量本身没有指针(n)
27.用关键字“struct”定义的内容是数据类型(n)
二、单项选择题:
(1)若有定义数组命令“intb[][3]={{1,2,3},{4,5},{6,7}}”,则b数组第1维的长度是()
A)2B)3C)4D)无确定值
b[2][2]的值是()
A)0B)1C)7D)无确定值
(2)C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。
A)必须为字母或下划线。
B)必须为下划线。
C)必须为字母D)可以是字母、数字和下划线中的任一种字符。
(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是。
A)-100x8f-011B)010-0x110xf1
C)0abc-0170xcD)0a12-0x123-0xa
(4)以下选项中非法的表达式是()
A)0<
6x<
100B)i3=j3==0
C)(char)(65+3)D)x+y==x+z
(5)若有定义:
inta=7;
floax=2.5,y=4.7;
则表达式
x+a%3*(int)(x+y)%2/4的值是()。
A)2.750000B)0.00000C)3.500000D)2.500000
(6)已有定义:
inta=8,则以下表达式中b的值不等于2的是:
()
A)b=a/3B)b=10-(a++)C)b=a%2D)b=a>
3?
2:
1
(7)已知ch是字符型变量,下面不正确的赋值语句是()。
A)ch=5+9;
B)ch='
a+b'
C)ch='
\0'
D)ch='
7'
+'
6'
(8)设x,y和int型变量,且x=3,y=4,z=5则下面表达式中使x值为0的是()。
A)!
((z<
y)&
&
(x-=3))B)(x-y-1)&
y
C)(z-y)||(!
(x-=3))D)y||z&
(x-=3)
(9)设有程序段
intk=10;
while(k=0)k=k-1;
以下描述正确的是()。
A)循环体语句一次也不执行。
B)循环是无限循环。
C)while循环语句执行十次。
D)循环体语句执行一次。
(10)设有定义“chars[12]={“abcdef”};
”则命令“printf(“%d\n”,strlen(s));
”的输出结果为()
A)随机值B)7C)6D)12
(11)当a=1,b=3,c=5d=4时,则执行完下面一段程序后,x的值是()。
if(a<
b)
if(c<
d)x=1;
else
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1B)3C)2D)6
(12)下面程序的运行结果是。
#include"
stdio.h"
voidmain()
{inta=1,b=10
do
{b-=a;
a++;
}
while(b--<
0);
printf("
a=%d,b=%d\n),a,b);
A)a=3,b=11B)a=4,b=9
C)a=1,b=-1D)a=2,b=8
(13)调用函数时,若实参是一个数组名,则向函数对应的形参传送的是()
A)数组长度B)数组的首地址
C)数组第一个元素的值D)整个数组元素的值
(14)若有说明:
inta[10];
则对a数组元素的正确引用是()。
A)a[10]B)a[10-10]C)a(5)D)a[3.5]
(15)根据定义和数据的输入方式,输入语句的正确形式为。
已有定义:
floatf1,f2;
数据输入方式:
4.25,3.5
A)scanf("
%f%f"
&
f1,&
f2);
B)scanf("
%f,%f"
C)scanf("
%3.2f%2.1f"
D)scanf("
%2.1f%3.2f"
(16)有以下程序
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
intm,(*p)[3]=a;
m=(*(*p))*(*(*(p+1)+2));
printf("
%d\n"
m);
}
执行后输出的结果是()
A)3B)4C)1D)6
(17)以下if语句语法正确的是。
A)if(x>
0)B)if(x>
0)printf("
%f"
-x)
{x=x+y;
printf("
x);
}elseprintf("
%f"
-x);
elseprintf("
-x);
C)if(x>
0)D)if(x>
0)
{x=x+y;
};
peintf("
x)}
-x);
(18)下列程序的输出结果是()
voidmain()
{inti;
for(i=’A’;
i<
’I’;
i++,++i)printf(“%c”,i+32);
printf(“\n”);
A)编译不通过,无输出B)acegC)acegiD)abcdefghi
(19)下列程序的输出结果是()
voidmain()
{inta=2,*p=&
a;
printf("
%d%d"
(*p)++,*p;
)
A)23B)22C)2D)21
(20)逻辑运算符两侧运算对象的数据类型。
A)只能是0或1B)可以是整型、字符型或实型数据
C)只可以是整型或字符型数据D)只能是0或非0正数
(21)以下for循环的执行次数是。
for(x=0,y=0;
(y=123)&
(x<
4);
x++);
A)无限次。
B)4次。
C)0次。
D)3次。
(22)下面的程序段。
for(t=1;
t<
=100,t++)
{scanf("
%d"
&
x);
if(x<
0)continue;
%3d"
t);
A)当x<
0时整个循环结束B)当x>
=0时什么也不输出
C)printf函数永远也不执行D)最多允许输出100个非负整数
(23)若有说明intm[5],*p;
将键入数据保存于数组第一个元素m[0],以下正确的语句段是()。
A)p=m;
B)p=&
m;
scanf("
%d"
*p);
p);
C)p=&
m[0];
D)p=m;
scanf("
*p)sacnf(“%d”,p);
(24)下面程序的运行结果是。
a=1;
b=2;
c=2;
while(a<
b<
c){t=a;
a=b;
b=t;
c--;
printf("
%d,%d,%d"
a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
(25)若有说明:
inta[3][4];
则对数组元素的非法引用是。
A)a[0][2*1]B)a[0][4]C)a[4-2][0]D)a[1][3]
(26)对以下说明的正确理解是:
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)因长度与初值个数不同,故语句错误
(27)若二维数组a有m列,则在a[i][j]前的元素个数为
A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1
(28)已定义以下函数
voidfun(char*p2,char*p1)
{while((*p2=*p1)!
='
\0'
{p1++;
p2++;
}}
函数的功能是()