c语言笔试模拟题以及答案.docx
- 文档编号:10738021
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:20
- 大小:22.68KB
c语言笔试模拟题以及答案.docx
《c语言笔试模拟题以及答案.docx》由会员分享,可在线阅读,更多相关《c语言笔试模拟题以及答案.docx(20页珍藏版)》请在冰点文库上搜索。
c语言笔试模拟题以及答案
c语言笔试模拟题以及答案
一、单选题:
(每题1.5分,共60分)
1、C语言程序的基本单位是_______.
A.语句
B.函数
C.程序行
D.字符
答案:
B
2、C语言程序由()组成
A.子程序
B.过程
C.函数
D.主程序段程序
答案:
C
3、算法的表示方法有________。
A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B.高级语言,汇编语言,机器语言
C.C语言,QBASIC语言,InterDev
D.图形图像法,描述法,编程法
E.计算机语言
答案:
A
4、以下程序的输出结果是
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}
A.17,021,0x11
B.17,17,17
C.17,0x11,021
D.17,21,11
答案:
D
5、下列变量定义中合法的是
A.short_a=1-.le-1;
B.doubleb=1+5e2.5;
C.longdo=0xfdaL;
D.float2_and=1-e-3;
答案:
A
6、C语言中合法的字符常量是____
A.'\084'
B.'\X43'
C.'ab'
D."\0"
答案:
B
7、下面说法中正确的是( )
A.int型和long型运算先将int型转换成unsigned型,再转换
B.两个float型运算结果为double型
C.只要表达式中存在double型,所有其他类型数据都必须转
D.表达式中的类型转换与运算顺序有关
答案:
C
8、以下不正确的叙述是
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
答案:
D
9、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
答案:
B
10、下列运算符中优先级最高的是
A.<
B.+
C.&&
D.!
=
答案:
B
11、若变量已正确定义并赋值,下面符合C语言语法的表达式是
A.a:
=b+1
B.a=b=c+2
C.int18.5%3
D.a=a+7:
c+b
答案:
B
12、设CH是字符型变量,其值为'A',下列表达式的值是
CH=(CH>='A'&&CH<='Z')?
(CH+32):
CH
A.A
B.a
C.z
D.Z
答案:
B
13、表达式18/4*sqrt(4.0)/8值的数据类型为
A.int
B.float
C.double
D.不确定
答案:
C
14、在C语言中,要求运算数必须是整型的运算符是
A./
B.%
C.!
D.>
答案:
B
15、以下说法中正确的是
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句
答案:
D
16、下面程序的输出是
main()
{
inta=-1,b=4,k;
k=(a++<=0)&&(!
(b--<=0));
printf("%d%d%d%\n",k,a,b);
}
A.003
B.012
C.103
D.112
答案:
C
17、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值是
A.1
B.2
C.3
D.4
答案:
B
18、若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0
B.(exp!
=0)
C.(exp==1)
D.(exp!
=1)
答案:
B
19、为表示关系X≥Y≥Z应使用C语言表达式:
__
A.(X>=Y)&&(Y>=Z)
B.(X>=Y)and(Y>=Z)
C.(X≥Y≥Z)
D.(X≥Y)&(Y≥Z)
答案:
A
20、能正确表示逻辑关系:
"a≥=10或a≤0"的C语言表达式是
A.a>=10ora<=0
B.a>=0||a<=10
C.a>=10&&a<=0
D.a<=0||a>=10
答案:
D
21、下面的程序是______
main()
{intx=3,y=0,z=0;
if(x==y+z)printf("****");
elseprintf("####");
}
A.有语法错误不能过通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
答案:
D
22、执行下面语句后的输出为()
inti=-1;
if(i<=0)printf("****\n")
elseprintf("%%%%\n")
A.****
B.%%%%
C.%%%%C
D.有语法错,不能执行
答案:
D
23、若运行以下程序时,从键盘输入ADescriptor
#include
main()
{charc;
intv0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case'a':
case'A':
case'e':
case'E':
case'i':
case'I':
case'o':
case'O':
case'u':
case'U':
v1+=1;
default:
v0+=1;v2+=1;
}
}while(c!
='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=12,v1=4,v2=12
答案:
D
24、以下程序的输出结果是
main( )
{ int n=4;
while(n--)printf("%d",--n);
}
A.20
B.31
C.321
D.210
答案:
A
25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空。
#include
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(______)
printf("%d",i);
}
A.i%9=5
B.i%9!
=5
C.(i-5)%9!
=0
D.i%9==5
答案:
D
26、以下程序的输出结果是
{int i,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
答案:
B
27、以下程序的输出结果是
#include
#include
main()
{charb1[8]="abcdefg",b2[8],*pb=b1+3;
while(--pb>=b1)strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A.8
B.3
C.1
D.7
答案:
D
28、下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空
#include
main()
{inta,b,t;
scanf("%d%d",&a,&b);
while(___________)
{if(a>b)
{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A.!
a=b
B.a!
=b
C.a==b
D.a=b
答案:
B
29、下面程序的输出结果是( )。
#include
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf(”%d%d”,x--,y);
}
A.10192
B.9876
C.10990
D.101091
答案:
D
30、以下程序的输出结果是
main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d ",x[i][i]);
}
A.52
B.91
C.53
D.97
答案:
B
31、若有说明:
inta[3][4]={0};则下面正确的叙述是
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
答案:
D
32、以下程序的输出结果是
main()
{chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;
inti;
i=8;
p=a+i;
printf("%s\n",p-3);
}
A.6
B.6789
C.'6'
D.789
答案:
B
33、以下程序的输出结果是
#define f(x) x*x
main( )
{ int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
A.9
B.6
C.36
D.18
答案:
C
34、若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
答案:
D
35、请选出正确的程序段
A)int*p; B)int*s,k;
scanf("%d",p); *s=100;
… …
C)int*s,k; D)int*s,k;
char*p,c; char*p,e;
s=&k; s=&k;
p=&c; p=&c;
A.
B.
C.
D.
答案:
C
36、在位运算中,操作数每右移一位,其结果相当于
A.操作数乘以2
B.操作数除以2
C.操作数乘以4
D.操作数除以4
答案:
B
37、请读程序:
#include
voidFUN(intS[])
{static intJ=0;
do
{
S[J]+=S[J+1];
}
while(++J<2);
}
main()
{int K,A[10]={1,2,3,4,5};
for(K=1;K<3;K++)FUN(A);
for(K=0;K<5;K++) printf("%d",A[K]);
}
上面程序输出结果是
A.34756
B.23445
C.35745
D.12345
答案:
C
38、下列程序段的输出结果是( )。
#include
voidfun(int*x,int*Y)
{printf(”%d%d”,*X,*Y);*X=3;*Y=4;}
main()
{intX=1,Y=2;
fun(&y,&x);
prinff(”%d%d”,x,Y);
}
A.2143
B.1212
C.2121
D.2134
答案:
A
39、下面程序的输出结果是( )。
#include
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
P=a:
printf(”%d\n”,*P+9);
}
A.0
B.1
C.10
D.9
答案:
C
40、分析以下程序的运行结果( )。
#include
func(inta,intb)
{
intc;
e=a+b;
retumc;
}
main() 。
{
intx=6,r;
r=func(x,x+=2);
printf(”%d\n”,r);
}
A.14
B.15
C.16
D.17
答案:
C
填空题:
(每题1.5分,共24分)
1、在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为_______;一个int型数据在内存中所占的字节数为_______
答案:
1,2
2、设有以下变量定义,并已赋确定的值
charw;intx;floaty;doublez;
则表达式:
w*x+z-y所求得的数据类型为__________。
答案:
double
3、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为_________
x+=n++
答案:
10,6
4、若有定义:
intb=7;floata=2.5,c=4.7;则下面表达式的值为______
a+(int)(b/3*(int)(a+c)/2)%4
答案:
5.500000
5、若有定义:
inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
答案:
1
6、以下程序不用第三个变量,实现将两个数进行对调操作:
#include
main()
{inta,b;
scanf("%d%d",&a,&b);
printf("a=%db=%d\n",a,b);
a=a+b;
b=(________);
a=a-b;
printf("a=%db=%d\n",a,b);}
答案:
a-b
7、直接使用printf()的格式符输出十六进制数。
本题程序如下:
﹟include﹤stdio.h﹥
voidmain()
{
intI;
scanf("%d",&I);
printf("%d(10)﹤=﹥%x(16)﹨n",I,I);
}
输入100的执行结果为__________。
答案:
100(10)<=>64(16)
8、在c语言中,关系运算符的优先级别是——。
答案:
<,>,<=,>=,==,!
=
9、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是——。
答案:
x>5||x<-5
10、下列程序段的输出结果是_____________。
intn='c';
switch(n++)
{default:
printf("error");break;
case'a':
case'A':
case'b':
case'B':
printf("good");break;
case'c':
case'C':
printf("pass");
case'd':
case'D':
printf("warm");
}
答案:
passwarm
11、设有以下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为_________。
答案:
8921
12、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空
intn=0,c;
c=getchar();
while(_______)
{if(______)n++;
c=getchar();
}
答案:
c!
='\n',c>='0'&&c<='9'
13、以下程序的运行结果是__________________
main()
{staticchara[]={'*','*','*','*','*'};
inti,j,k;
for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j
for(k=0;k<5;k++)printf("%c",a[k]);
}
}
答案:
****
****
****
****
14、若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是____,a[2][1]得到的初值是______。
答案:
0
6
15、若有定义语句:
chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝。
(注:
不得使用逗号表达式)
while([i]){d[j]=_____________;j++;i++;}
d[j]=0;
答案:
s[i++]
16、以下函数用以求x的y次方,请填空。
doublefun(doublex,inty)
{
inti:
doublez=1.0:
for(i-1;i_________;i++)
z=________;
returnz:
}
答案:
<=yz*x
程序设计题:
(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)
1、设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番?
答案:
main()
{
intn;
floata,s;
for(s=0,n=0,a=45600.0;s<=3*45600.0;n++)
{
a=a+a*0.08;
s=a;
}
printf("%d\n",n);
}
本题参考答案:
15
2、编程序求1+3+5+7+9+…这样的数之和。
如果累加数大于900时,则程序终止并输出结果。
答案:
main()
{
inti=1,sum=0;
while(sum<=900)
{
sum=sum+i;
i=i+2;
}
printf("\n%d",sum);
}
参考答案:
936
3、编程序求1~125的平方根的和并输出结果。
(保留小数点两位)
答案:
include"math.h"
main()
{floata,s=0;
clrscr();
for(a=1;a<=125;a++)
{s=s+sqrt(a);
}
printf("%.2f",s);
}
本题答案:
937.08
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔试 模拟 以及 答案