c语言试题.docx
《c语言试题.docx》由会员分享,可在线阅读,更多相关《c语言试题.docx(12页珍藏版)》请在冰豆网上搜索。
![c语言试题.docx](https://file1.bdocx.com/fileroot1/2023-1/24/8825123d-cc41-4323-8b05-a5226ae9c87b/8825123d-cc41-4323-8b05-a5226ae9c87b1.gif)
c语言试题
□判断题
1.char类型数据内部采用整数存储方式,因此它和int型数据可以互为通用
&A.对
口B.错
2.在C语言中,保存字符串“B'实质上是保存字符’B'和'\0'两个符号。
因A.对
打B.错
3.在进行赋值转换时,变量的类型被自动转换为赋值号右边的表达式值的类型。
A.对
曰B.错
4.假定已有整型变量x的定义,则(x+1)++是一个合法的表达式。
21A.对
凸B.错
5.两个变量交换数据时常使用一个工作变量。
日A.对
B.错
6.在C语言中用0表示逻辑值“真”,用非0表示逻辑值“假”。
匕1A.对
口B.错
7.while后的表达式只能是逻辑或关系表达式。
日A.对
胡B.错
8.语句while(E);中的表达式E等价于E!
=0
旦A.对
B.错
9.函数strcpy(str1,st⑵是将字符串str2连接到字符串strl之后
打A.对
*B.错
10.在C语言中引用数组元素时,其数组的下标可以是任何类型的表达式。
胡A.对
*B.错
11.C程序中所有的全局变量都是静态存储的
*A.对
口B.错
12.有参的宏,其参数参与运算,宏替换要先完成参数的计算,然后再执行替换
丄A.对
*B.错
13.typedef的作用是给数据类型取一个别名。
*A.对
打B.错
14.结构体变量可以整体赋值,但不能整体比较
打A.对
日B.错
15.语句inti,*p=&i;是正确的C定义。
国A.对
AB.错
16.文件正常关闭时返回1。
A.对
*B.错
•-单选题
1.有以下程序
#include"stdio.h"
voidmain()
{floata=b=2,result;
result=a/b;
printf("result=%f\n",result);}
正确的说法是()。
図A.因为变量声明问题导致编译岀错
土B.因为result=a/b;语句有误导致编译岀错
C.输岀结果为result=2.000000
㈡D.输岀结果为result=1.000000
2.下列程序运行时输入34,则程序的输岀结果是()
#include"stdio.h"
intmulti(inta,intb)
{returna*b;}
voidmain()
{intx,y,t;
printf("Pleaseinputtwointegers(xandy):
");
scanf("%d%d",&x,&y);
t=multi(x,y);
printf("%d\n",t);}
A.3
B.4
C.7
13D.12
3.如果将一个函数的返回值类型说明为void,则表示。
日A.该函数可以返回任意类型的值
紀IB.该函数不能返回任何值
已C.该函数可以返回基本类型的值
D.该函数是main函数,是程序运行的起点
4.对于int型常量,不正确的是。
凸A.029
B.-25
C.0X2A
D.-0X28
5.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。
4A.2.500000
B.4.50000
C.3.500000
c
D.0.00000
6.已知i、j、k为int型变量,若从键盘输入:
1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句
是()。
C
A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
*C.scanf("%d,%d,%d",&i,&j,&k);
L3D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
7.设有定义:
intk=1,m=2;floatf=7;,则以下选项中错误的表达式是
胡A.k=k+=k
胡B.-k++
*C.k%int(f)
D.f=k%m
8.表达式:
(int)((double)9/2)-(9)%2的值是。
A.0
B.3
t-3C.4
冷D.5
9.以下程序运行后输岀的结果是。
#include
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);}
A.0,0
DIB.1,0
口C.3,2
二D.1,2
10.执行以下程序段后,x的值为。
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B');
A.true
*B.1
tzlC.false
PID.O
11.已知intx=10,y=20,z=30;,以下语句执行后x,y,z
if(x>y)
z=x;x=y;y=z;
printf("%d,%d,%d",x,y,z);
㈡A.10,20,30
B.20,30,20
胡C.20,30,10
岡D.20,30,30
12.下列程序的输岀结果是。
#inlude"stdio.h"
main()
{inta=0,b=0,c=0;
if(++a>0||++b>0)++c;
printf("%d,%d,%d",a,b,c);}
A.0,0,0
B.1,1,1
日C.1,0,1
胡D.0,1,1
13.设有定义inti;,则表达式(i=1,i=10)?
i++||++i:
++i
A.10
的值是
的值是
日B.1
C.2
二D.3
14.
C语言表达式为
为表示关系x>y>z,应使用的
胡A.(x>=y)&&(y>=z)
B.(x>=y)and(y>=z)
卜丿C.x>=y>=z
胡D.(x>=Y)&&(Y>=z)
15.有以下程序
#include"stdio.h"
voidmain()
{inti,s=1;
for(i=1;i<50;i++)
if(!
(i%5)&&!
(i%3))s+=i;
printf("%d\n",s);}
程序的输岀结果是()。
A.409
戸IB.277
C.1
*D.91
16.下述程序的输岀结果是
#include"stdio.h"
voidmain()
{inta=0,b=0,c=0,i;
for(i=0;i<4;i++)
switch(i)
{case0:
a=i++;
case1:
b=i++;
case2:
c=i++;
case3:
i++;
}
printf("%d,%d,%d,%d\n",a,b,c,i);}
A.0,1,3,4
B.1,2,3,4
卫C.0,1,2,5
D.0,2,3,4
17.以下程序运行后的输岀结果是
#include"stdio.h"
voidmain()
{inti,j,x=O;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++){if(j%2)continue;x++;}
x++;
}
printf("x=%d\n",x);}
A.x=4
D.x=12
18.
>=8)break;
以下程序的输岀结果是。
#include"stdio.h"voidmain(){inta=1,b;for(b=1;b<=10;b++){if(a
if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}
日A.3
*B.4
C.5
日D.6
19.以下程序输岀结果是。
#include"stdio.h"voidmain(){inti=0,s=0;for(;;){if(i==3||i==5)continue;
if(i==6)break;i++;s+=i;};printf("%d\n",s);}
已A.10
B.13
巨C.21
胡D.程序进入死循环
20.下面程序的运行结果是。
#include
main()
{inta[5],i;
for(i=0;i<5;i++)
{a[i]=9*(i-2+4*(i>3))%5;
printf("%2d",a[i]);}}
凶A.-3-4044
B.-3-4043
C.-3-4042
f刖D.-3-4040
21.下面程序的运行结果是。
#include
main()
{chars[12]="abook!
";
printf("%d",strlen(s));}
口A.6
21B.7
匕1C.10
r
D.12
22.设有定义:
chara[80];inti=0;,以下不能将一行带有空格的字符串(不超过80个字符)正确读入的是
A.gets(a);
'刖B.while((a[i++]=getchar())!
='\n');a[i]='\0';
+C.scanf("%s",a);
D.do{scanf("%c",&a[i]);}while(a[i++]匸'\n');a[i]='\O';
23.下面程序的运行结果是。
#include"stdio.h"main(){chars[]="012xy";inti,n=0;for(i=0;s[i]!
=0;i++)
if(s[i]>='a'&&s[i]<='z')n++;printf("%d\n",n);}
C.
D.
24.在C语言中,函数返回值类型在定义时可以缺省,此时函数值的隐含类型是
hA.void
B.float
C.double
D.int
25.以下叙述中正确的是。
*A.局部变量说明为static,其生存期将得到延长
口B.全局变量说明为static,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.属于不同函数的局部变量不能同名
26.下列的结论中只有是正确的。
*A.所有的递归程序均可以采用非递归算法实现
B.只有部分递归程序可以用非递归算法实现
C.所有的递归程序均不可以采用非递归算法实现
D.以上三种说法都不对
27.下列程序的输出结果是。
#include"stdio.h"intfun(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;}voidmain()
{inta=4,b=3,c=5,d=6;fun(a,b,c,d);printf("%d%d\n",c,d);}
口A.169
B.43
日C.259
D.56
28.在定义一个共用体变量时,系统分配给它的内存是
日A.各成员所需内存之和
B.第一个成员所需内存
日C.成员中占用内存最大者
D.任意一个成员所需内存
29.以下程序段是计算学生的三门功课平均分,空白处对函数average正确调用方式是。
structStudent
{charname[10];intscore1;intscore2;intscore3;}stu;intfloataverage(structStudentstu)
{intaver;aver=(stu.score1+stu.score2+stu.score3)/3;returnaver;}main(){struct
Strudentstu;intaver;stu.score1=78;stu.score2=86;stu.score3=75;printf(“averag
is:
%d”,aver);}
r
A.average(stu);
30.变量的指针,其含义是指该变量的
日A.值
*B.地址
C.名
㈡D.一个标志
31.若有定义语句:
doublea,*p=&a;以下叙述中错误的是。
旦A•定义语句中*是一个间接访问运算符
B•定义语句中*号只是一个说明符
巨C.定义语句中p只能存放double类型变量的地址
D.定义语句中,*p=&a把变量a的地址作为初始赋给指针变量p
32.设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是
A.写操作结束后可以从头开始读
已B.只能写不能读
C.可以在原有内容后追加
D.可以随意读和写
33.系统的标准输入文件是指
A.显示器
曰B.硬盘
*C.键盘
口D.软盘
问答题
1.从键盘上输入任意字符,判断其是否为数字字符。
回答:
[此文档可自行编辑修改,如有侵权请告知删除,感谢您的支持,我们会努力把内容做得更
好]