C语言程序设计的试题Word格式.docx
《C语言程序设计的试题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计的试题Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b
5、若变量a,i已正确定义,且i已正确赋值,合法的语句是。
A)a==1B)++i;
C)a=a++=5;
D)a=int(i);
6、已知:
intt=0;
while(t=1){...}
则以下叙述正确的是。
A)循环控制表达式的值为0B)循环控制表达式的值为1
C)循环控制表达式不合法D)以上说法都不对
7、若变量已正确说明为float型,要通过语句scanf("%f%f%f",a,b,c);
给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是。
A)10回车22回车33回车B)10.0,22.0,33.0回车
C)10.0回车22.033.0回车D)1022回车33回车
[解析]遇到"%d%d%d"或"%f%f%f"不能用逗号作几个数据间的分隔符。
8、有如下程序:
main()
{
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
[解析]根据x=1,执行case1,接着并未退出switch,而是执行case2。
即找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
9、有以下程序
{inti=1,j=1,k=2;
if((j++||k++)i++)
%d,%d,%d\n"
i,j,k);
执行后输出结果是。
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
[解析]本题关键在于k保持原值2不变,因为或运算只需要检验j++是否为真即可判断整个表达式j++||k++为真,相当于没有执行k++。
10、有如下程序
{floatx=2.0,y;
if(x0.0)y=0.0;
elseif(x10.0)y=1.0/x;
elsey=1.0;
%f\n"
y);
该程序的输出结果是。
A)0.000000B)0.250000C)0.500000D)1.000000
11、有如下程序:
{intn=9;
while(n6){n--;
printf("
%d"
n);
A)987B)876C)8765D)9876
[解析]第一遍循环n=9,执行n--,输出n现值8,以此类推得到B答案。
12、在下列选项中,没有构成死循环的是。
A)inti=100;
while
(1)
{i=i%100+1;
if(i100)break;
B)for(;
;
);
C)intk=10000;
do{k++;
}while(k10000);
D)ints=36;
while(s)--s;
[解析]A选项if表达式的条件是假,而while表达式是真,构成死循环;
B选项相当于while
(1),无终止的执行循环体;
C选项第一次执行循环后k=10001,自此后k10000恒为真,无终止循环;
D答案选项当s自减至0时,while表达式为假,跳出循环。
13、设intx=1,y=1;
表达式(!
x||y--)的值是。
A)0B)1C)2D)-1
14、有以下程序
floatfun(intx,inty)
{return(x+y);
{inta=2,b=5,c=8;
%3.0f\n"
fun((int)fun(a+c,b),a-c));
程序运行后的输出结果是。
A)编译出错B)9C)21D)9.0
[解析](int)fun(a+c,b)为(int)fun(10,5),经调用后值为15;
接着计算fun((int)fun(a+c,b),a-c)为fun(15,-6),经调用后值为9。
15、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是。
A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的`形参
16、若有以下调用语句,则不正确的fun函数的首部是。
{…
inta[50],n;
…
fun(n,a[9]);
A)voidfun(intm,intx[])B)voidfun(ints,inth[41])
C)voidfun(intp,int__s)D)voidfun(intn,inta)
[解析]把数组a中9号元素的地址传递给fun的函数参数,本题的考点是用什么来做函数的形参。
A选项用不定长度的数组x作形参;
B选项用长度小于50的数组h作形参;
C用指针变量__s作形参;
显然D中形参变量a只是普通的整形变量,不能接收来自于实参9号元素的地址。
17、fseek函数的正确调用形式是。
A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)
C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)
18、若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是。
A)EOFB)-1C)1D)NULL
19、若有说明语句:
charc=\72;
则变量c。
A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定
20、若有说明inta[3][4];
则a数组元素的非法引用是。
A)a[0][2__1]B)a[1][3]C)a[4-2][0]D)a[0][4]
21、设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是。
A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名
22、在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式
23、若运行时给变量x输入12,则以下程序的运行结果是。
{intx,y;
scanf("
x);
y=x12?
x+10:
x-12;
%d\n"
A)0B)22C)12D)10
24、以下说法正确的是。
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
25、表达式0x13^0x17的值是。
A)0x04B)0x13C)0xE8D)0x17
26、有以下程序
#defineF(X,Y)(X)__(Y)
{inta=3,b=4;
F(a++,b++));
A)12B)15C)16D)20
27、下列程序执行后的输出结果是。
voidfunc(int__a,intb[])
{b[0]=__a+6;
}
{inta,b[5];
a=0;
b[0]=3;
func(a,b);
b[0]);
A)6B)7C)8D)9
[解析]func(a,b)中两个参数分别把整形变量a的地址传递给指针变量__a、把数组b(即数组名作实参)首元素的地址传递给形参数组b[]。
因此在func()函数中,b[0]=__a+6=0+6=6。
28、若有下面的程序段:
chars[]="
china"
char__p;
p=s;
则下列叙述正确的是。
A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等
C)s数组长度和p所指向的字符串长度相等D)__p与s[0]相等
29、有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;
in-1;
i++)
for(j=i+1;
jn;
j++)
if(a[i]a[j]){t=a[i];
a[i]=a[j];
a[j]=t;
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa[3],5);
i10;
i++)printf("
%d,"
aa[i]);
\n"
A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,
[解析]sort(aa[3],5)的作用是把数组aa的第3号元素及其后续4个元素(一共5个元素)由大到小排列,其他元素原样输出。
30、以下程序的运行结果是。