基础c语言模拟题含答案.docx
- 文档编号:4456245
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:17
- 大小:21.29KB
基础c语言模拟题含答案.docx
《基础c语言模拟题含答案.docx》由会员分享,可在线阅读,更多相关《基础c语言模拟题含答案.docx(17页珍藏版)》请在冰豆网上搜索。
基础c语言模拟题含答案
一、单选题:
(每题1.5分,共60分)
1、C程序是( )
A.顺序执行
B.从Main函数开始
C.从函数体开始
D.任意语句
答案:
B
2、以下说法中正确的是( )。
A.C语言程序中是从第一定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
答案:
C
3、算法的表示方法有________。
A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B.高级语言,汇编语言,机器语言
C.C语言,QBASIC语言,InterDev
D.图形图像法,描述法,编程法
E.计算机语言
答案:
A
4、以下选项中,非法的字符常量是( )
A.'\t'
B.'\17'
C."n"
D.'\xaa'
答案:
C
5、以下所列的C语言常量中,错误的是
A.0xFF
B.1.2e0.5
C.2L
D.'\72'
答案:
B
6、下列变量名合法的是( )
A.#1
B.$567
C.a-b
D.m_number
答案:
D
7、下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A.0160x8f018
B.0abc0170xa
C.010-0x110x16
D.0a127ff-123
答案:
D
8、sizeof(float)是
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
答案:
B
9、C语言中,double类型数据占( )个字节,char类型数据占( )个字节
A.1
B.2
C.4
D.8和1
答案:
D
10、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A.c=b=a;
B.(a=c)‖(b=c);
C.(a=c)&&(b=c);
D.a=c=b;
答案:
C
11、若已定义x和y为double型,则表达式:
x=1,y=x+3/2的值是( )
A.1
B.2
C.2.0
D.2.5
答案:
C
12、执行语句x=(a=3,b=a--)后x,a,b的值为;
A.332
B.322
C.323
D.232
答案:
C
13、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
A.a\bre\'hi\'y\\\bou
B.a\bre\'hi\'y\bou
C.re'hi'you
D.abre'hi'y\bou
答案:
C
14、在下列运算符中,优先级别最高的是
A.<=
B.=
C.%
D.&&
答案:
C
15、若执行下面的程序时从键盘上输入3和4,则输出是
main()
{
int a,b,s;
a=3,b=4;
scanf("%d%d",&a,&b);
s=a+b;
printf("%d\n",s--);
printf("%d\n,--s);
}
A.7,7
B.7,5
C.6,7
D.7,6
答案:
B
16、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )。
#include
main()
{ int x;
seanf(”%d”,&x);
if(x++>5)printf(”%d”,x);
else printf(”%d\n”,x--);}
A.7和5
B.6和3
C.7和4
D.6和4
答案:
A
17、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,
则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为:
A.0
B.1
C.2
D.3
答案:
C
18、逻辑运算符两侧运算对象的数据类型
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
答案:
D
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、判断字符型变量x是否是大写字母的正确的表达式______.
A.'A'<=x<='Z'
B.(x>=A)&&(x<=Z)
C.('A'<=x)&&('Z'=>x)
D.(x>='A')&&(x<='Z')
答案:
D
21、有如下程序
main0
{ int x=1,a=0,b=0;
switch(x){
case 0:
b++;
case 1:
a++
case 2:
a++;b++
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
答案:
A
22、已知 int x=10,y=20,z=30;以下语句执行后x,y,z的值是
if(x>y)
z=x;x=y;y=z;
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20
答案:
B
23、以下程序的输出结果是
main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if(x < y)
if(y!
=10)
if(!
ok1)
a=1;
else
if(ok2) a=10;
a=-1;
printf("%d\n",a);
}
A.1
B.0
C.-1
D.值不确定
答案:
C
24、i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是
for (i=5; i; i--)
for(j=0; j < 4; j++){…}
A.20
B.24
C.25
D.30
答案:
A
25、以下程序的输出结果是
main( )
{ int x=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
26、执行语句:
for (i=1;i++ < 4;);后,变量i的值是______.
A.3
B.4
C.5
D.不定
答案:
C
27、以下程序的输出结果是
{ 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
28、有以下程序段
int k=0
while(k=1)k++;
while 循环执行的次数是
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行1次
答案:
A
29、在while(x)语句中的x与下面条件表达式等价的是( )。
A.x==0
B.x==1
C.x!
=0
D.x!
=1
答案:
C
30、执行下面的程序段后,变量k中的值为
s[0]=k; k=s[1]*10;
A.不定值
B.33
C.30
D.10
答案:
A
31、若有说明:
int a[10];则对a数组元素的正确引用是
A.a[10]
B.a[3,5]
C.a(5)
D.a[10-10]
答案:
D
32、设有数组定义:
char array[]=”China”;,则数组array所占的空间为( )。
A.4个字节
B.5个字节
C.6个字节
D.7个字节
答案:
C
33、从下列选项中选择不会引起二义性的宏定义是( )。
A)#define POWER(X)X*X B)#define POWER(X)(X)*(X)
C)#define POWER(X)(X*X) D)#define POWER(X)((X)*(X))
A.A
B.B
C.C
D.D
答案:
D
34、在说明语句:
int *f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
答案:
D
35、 若有说明:
int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是
A.i=*p;
B.p*=*&j;
C.i=&j;
D.i=**p;
答案:
D
36、下面程序的输出是
main()
{ char x=040;
printf("%d\n",x=x<<1);
}
A.100
B.160
C.120
D.64
答案:
D
37、C语言中____函数的递归调用。
A.允许
B.不允许
C.由用户自己而定
D.不确定
答案:
A
38、关于建立函数的目的,以下正确的说法是
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
答案:
B
39、有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是
A.3
B.4
C.5
D.有语法错
答案:
A
40、以下函数
fff(float x)
{
printf(”%d\n”,x*x);
}
的类型是( )。
A.与参数x的类型相同
B.void类型
C.int类型
D.无法确定
答案:
C
填空题:
(每题1.5分,共24分)
1、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________
答案:
4,8
2、设有以下变量定义,并已赋确定的值
charw;intx;floaty;doublez;
则表达式:
w*x+z-y所求得的数据类型为__________。
答案:
double
3、设x和y均为int型变量,且x=1,y=2,则以下表达式:
0+x/y的值为___。
答案:
0
4、若a是int型变量,则计算表达式后a的值为_______
a=25/3%3
答案:
2
5、语句:
x++;?
++x;x=x+1;?
x=l+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)
答案:
X+=1
6、若变量已正确定义,以下语句段的输出结果是——。
x=0;y=2;z=3;
switch(x)
{
caseO:
switch(y==2)
{
case1:
printf(”*”);break;
case2:
printf(”%”);break;
}
case1:
switch(z)
{
case1:
printf(”$”);
case2tprintf(”$”);break;
d
答案:
*#
7、设x,y、z均为int型变量,请写出描述“x或Y中至少有一个小于Z”的表达式——。
答案:
x
8、已知charch;则判断ch是英文字符的逻辑表达式是_______________
答案:
(ch<='z'&&ch>='a')||(ch<='Z'&&ch>='A')
9、表示条件:
10 答案: (X>10&&X<100)||X<0 10、请写出以下程序的输出结果——。 #include main() { inta=100: if(a>100) printf(”%d\n”,a>100); else pIintf(”%d\n”,a<=100);} 答案: ! &&|| 11、下面程序的功能是: 输出100以内能被3整除且个位数为6的所有整数,请填空。 #include main() {inti,j; for(i=0;______________;i++) {j=i*10+6; if(________)continue; printf("%d",j); } } 答案: i<10,j%3! =0 12、下面程序的功能是: 将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。 请填空。 #include #include main() {chara[]="clanguage",t; inti,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j<=k;_______________) if(_______________ 答案: j+=2 a[i]>a[j] 13、读入一个1到9的数a,求s=a+aa+aaa+…+aa…a(共20项)。 请对下述程 序填空,其中temp保存当前处理项aa…a。 (每个空分别以序号标注,如: (1) ____) #include main() { intI; longa,s,temp; s=temp=0; printf("Pleaseenteranumber(1-9)"); scanf( (1)____); s=a; for(I=1; (2)____;(3)____) 答案: "%lf",&a,i<20,i++,a+a*10,temp 14、下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存人数组b,并按每行3个元素 输出数组b。 请填空。 #include main() {inta[10],b[10],i; for(i=0;_________;i++) scanf(”%d”,&a[i]); for(i=1;__________;i++) b[i]=a[i]-a[i-1]; for(i=1;i<10;i++) {printf(”%3d”,b 答案: i<10i<10i%3==0 15、下面程序的功能是: 将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。 #include #include main() {chara[]=”clanguage”,t; inti,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j if(___________) {t=a[i];a[i]=a 答案: i+=2 a[ij>a[j] 16、阅读以下程序并填空,该程序是求阶乘的累加和。 S=0! +1! +2! +…+n! #include longf(intn) { inti: longs; s=________; for(i=1;i<=n;i++) s=________; returns; } main() { longs; intk,n; scanf(”% 答案: 1s*i0f(k) 程序设计题: (请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分) 1、编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数。 答案: main() { inti,num=0; for(i=100;i<=200;i++) { if((i%3==2)&&(i%5==3)) num=num+1; } printf("\n%d",num); } 本题答案: 6 2、回文数是指正读和反读都一样的正整数。 例如3773等都是回文数。 求出[1000,9999]以内的回文数是6的倍数的最大回文数。 答案: main() { inta1,b1,a2,b2,i,hwm; for(i=1000;i<=9999;i++) { a1=i/1000; b1=i/100-a1*10; b2=i/10-a1*100-b1*10; a2=i%10; if((a1==a2)&&(b1==b2)&&(i%6==0)) hwm=i; } printf("所求的最大回文数为%d",hwm); } 参考答案: 3、编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数。 该数是一个完全平方数,第1、2位数字之和为12,第3、4位数字之积为24。 答案: #include main() {intn=0; inta,b,c,d,e,m; for(m=32;m<=99;m++) { e=m*m; a=e/1000;/*a为千位*/ b=(e%1000)/100;/*b为百位*/ c=((e%1000)%100)/10;/*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基础 语言 模拟 答案