c语言试题.docx
《c语言试题.docx》由会员分享,可在线阅读,更多相关《c语言试题.docx(14页珍藏版)》请在冰豆网上搜索。
![c语言试题.docx](https://file1.bdocx.com/fileroot1/2022-10/28/a7922f71-e193-43bc-9413-f6ca4f937bd3/a7922f71-e193-43bc-9413-f6ca4f937bd31.gif)
c语言试题
窗体顶端
判断题
1.char类型数据内部采用整数存储方式,因此它和int型数据可以互为通用。
A.对
B.错
2.在C语言中,保存字符串“B”实质上是保存字符'B'和'\0'两个符号。
A.对
B.错
3.在进行赋值转换时,变量的类型被自动转换为赋值号右边的表达式值的类型。
A.对
B.错
4.假定已有整型变量x的定义,则(x+1)++是一个合法的表达式。
A.对
B.错
5.两个变量交换数据时常使用一个工作变量。
A.对
B.错
6.在C语言中用0表示逻辑值“真”,用非0表示逻辑值“假”。
A.对
B.错
7.while后的表达式只能是逻辑或关系表达式。
A.对
B.错
8.语句while(E);中的表达式E等价于E!
=0。
A.对
B.错
9.函数strcpy(str1,str2)是将字符串str2连接到字符串str1之后。
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.对
B.错
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
D.12
3.如果将一个函数的返回值类型说明为void,则表示_________。
A.该函数可以返回任意类型的值
B.该函数不能返回任何值
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的值是()。
A.2.500000
B.4.50000
C.3.500000
D.0.00000
6.已知i、j、k为int型变量,若从键盘输入:
1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是()。
A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.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
C.4
D.5
9.以下程序运行后输出的结果是________。
#include
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);}
A.0,0
B.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
C.false
D.0
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.为表示关系x≥y≥z,应使用的C语言表达式为______。
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
B.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=0;
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
B.x=8
C.x=6
D.x=12
18.以下程序的输出结果是_______。
#include"stdio.h"voidmain(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;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
D.-3-4040
21.下面程序的运行结果是______。
#include
main()
{chars[12]="abook!
";
printf("%d",strlen(s));}
A.6
B.7
C.10
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]='\0';
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);}
A.
B.
C.
D.
24.在C语言中,函数返回值类型在定义时可以缺省,此时函数值的隐含类型是________。
A.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