c语言笔试模拟题以及答案Word文档下载推荐.docx
- 文档编号:1093284
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:32
- 大小:24.54KB
c语言笔试模拟题以及答案Word文档下载推荐.docx
《c语言笔试模拟题以及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言笔试模拟题以及答案Word文档下载推荐.docx(32页珍藏版)》请在冰点文库上搜索。
&
D.!
=
11、若变量已正确定义并赋值,下面符合C语言语法的表达式是
A.a:
=b+1
B.a=b=c+2
C.int18.5%3
D.a=a+7:
c+b
12、设CH是字符型变量,其值为’A'
下列表达式的值是
CH=(CH>
=’A'
CH<
=’Z'
)?
(CH+32):
CH
A.A
B.a
C.z
D.Z
13、表达式18/4*sqrt(4.0)/8值的数据类型为
A.int
B.float
C.double
D.不确定
14、在C语言中,要求运算数必须是整型的运算符是
A./
B.%
C.!
D.>
15、以下说法中正确的是
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句
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
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
18、若有条件表达式(exp)?
a++:
b–,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0
B.(exp!
=0)
C.(exp==1)
D.(exp!
=1)
19、为表示关系X≥Y≥Z应使用C语言表达式:
__
A.(X>
=Y)&
(Y>
=Z)
B.(X>
=Y)and(Y>
C.(X≥Y≥Z)
D.(X≥Y)&
(Y≥Z)
20、能正确表示逻辑关系:
”a≥=10或a≤0″的C语言表达式是
A.a>
=10ora<
=0
B.a>
=0||a<
=10
C.a>
=10&
a<
D.a<
=0||a>
=10
21、下面的程序是______
{intx=3,y=0,z=0;
if(x==y+z)printf(“****”);
elseprintf(“####”);
A.有语法错误不能过通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
22、执行下面语句后的输出为()
inti=-1;
if(i<
=0)printf(“****\n”)
elseprintf(“%%%%\n”)
A.****
B.%%%%
C.%%%%C
D.有语法错,不能执行
23、若运行以下程序时,从键盘输入ADescriptor<
CR>
(<
表示回车),则下面程序的运行结果是
#include<
stdio.h>
{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
24、以下程序的输出结果是
main( )
{ int n=4;
while(n–)printf(“%d“,–n);
A.20
B.31
C.321
D.210
25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;
若分成7个零件一组,则多3个零件;
若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空。
{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
26、以下程序的输出结果是
{int i,j,x=0;
for(i=0;
i<
2;
{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
27、以下程序的输出结果是
stdio.h>
string.h>
{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
28、下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空
{inta,b,t;
scanf(“%d%d”,&
a,&
b);
while(___________)
{if(a>
b)
{t=a;
a=b;
b=t;
printf(“%d,%d\n”,a,b);
A.!
a=b
B.a!
=b
C.a==b
D.a=b
29、下面程序的输出结果是( )。
#include<
stdio.h>
{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
30、以下程序的输出结果是
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
4;
i+=2)printf(“%d ”,x);
A.52
B.91
C.53
D.97
31、若有说明:
inta[3][4]={0};
则下面正确的叙述是
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
32、以下程序的输出结果是
{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
33、以下程序的输出结果是
#define f(x) x*x
{ int a=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
A.9
B.6
C.36
D.18
34、若有说明语句
chara[]=”Itismine”;
char*p=”Itismine”;
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
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=&
p=&
c;
p=&
A.
B.
C.
D.
36、在位运算中,操作数每右移一位,其结果相当于
A.操作数乘以2
B.操作数除以2
C.操作数乘以4
D.操作数除以4
37、请读程序:
voidFUN(intS[])
{static intJ=0;
do
S[J]+=S[J+1];
while(++J<
2);
{int K,A[10]={1,2,3,4,5};
for(K=1;
K<
3;
K++)FUN(A);
for(K=0;
5;
K++) printf(“%d”,A[K]);
上面程序输出结果是
A.34756
B.23445
C.35745
D.12345
38、下列程序段的输出结果是( )。
voidfun(int*x,int*Y)
{printf(”%d%d”,*X,*Y);
*X=3;
*Y=4;
{intX=1,Y=2;
fun(&y,&
x);
prinff(”%d%d”,x,Y);
A.2143
B.1212
C.2121
D.2134
39、下面程序的输出结果是( )。
{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
40、分析以下程序的运行结果( )。
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
填空题:
(每题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
{inta,b;
scanf(“%d%d”,&
a,&
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‘b’:
case‘B’:
printf(“good”);
case‘c’:
case‘C’:
printf(“pass”);
case‘d’:
case‘D’:
printf(“warm”);
passwarm
11、设有以下程序:
{intn1,n2;
scanf(“%d”,&
n2);
while(n2!
{n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
程序运行后,如果从键盘上输入1298;
则输出结果为_________。
8921
12、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空
intn=0,c;
c=getchar();
while(_______)
{if(______)n++;
c!
=’\n’,c>
=’0′&
c<
=’9′
13、以下程序的运行结果是__________________
{staticchara[]={‘*’,'
*’,'
*’};
inti,j,k;
5;
printf(“\n”);
i;
j++)printf(“%c”,’‘);
for(k=0;
k<
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(){d[j]=_____________;
j++;
i++;
d[j]=0;
s[i++]
16、以下函数用以求x的y次方,请填空。
doublefun(doublex,inty)
inti:
doublez=1.0:
for(i-1;
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时,则程序终止并输出结果。
inti=1,sum=0;
while(sum<
=900)
sum=sum+i;
i=i+2;
printf(“\n%d”,sum);
参考答案:
936
3、编程序求1~125的平方根的和并输出结果。
(保留小数点两位)
include“math.h”
{floata,s=0;
clrscr();
for(a=1;
a<
=125;
a++)
{s=s+sqrt(a);
printf(“%.2f”,s);
飞漫软件MiniGUI面试题,主要是C和C++方面的,请在一个小时内完成。
C语言
-
1、完成字符串拷贝可以使用sprintf、strcpy及memcpy函数,请问这些函数
有什么区别,你喜欢使用哪个,为什么?
2、变量的声明和定义有什么区别?
3、请写出下面代码在32位平台上的运行结果,并说明sizeof的性质:
stdlib.h>
intmain(void)
chara[30];
char*b=(char*)malloc(20*sizeof(char));
printf(“%d\n”,sizeof(a));
printf(“%d\n”,sizeof(b));
printf(“%d\n”,sizeof(a[3]));
printf(“%d\n”,sizeof(b+3));
printf(“%d\n”,sizeof(*(b+4)));
return0;
4、请完成以下题目。
注意,请勿直接调用ANSIC函数库中的函数实现。
a)请编写一个C函数,该函数给出一个字节中被置1的位的个数,并请
给出该题的至少一个不同解法。
b)请编写一个C函数,该函数将给定的一个字符串转换成整数。
c)请编写一个C函数,该函数将给定的一个整数转换成字符串。
d)请编写一个C函数,该函数将一个字符串逆序。
e)请编写一个C函数,该函数在给定的内存区域搜索给定的字符,并返回
该字符所在位置索引值。
f)请编写一个C函数,该函数在一个字符串中找到可能的最长的子字符串,
该字符串是由同一字符组成的。
5、给出演示上述函数功能的一个简单程序,并请编写对应的Makefile文件。
若应聘嵌入式软件高级工程师,请作答以下题目:
6、我们需要编写一个图形相关的应用程序,需要处理大量图形(Shape)信息,
图形有矩形(Rectangle),正方形(Square),圆形(Circle)等种类,应用
需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准
输出上打印信息的方式做为示意)。
a)请用面向对象的方法对以上应用进行设计,编写可能需要的类
b)请给出实现以上应用功能的示例性代码,从某处获取图形信息,
并且进行计算和绘制
c)如果你的Square继承自Rectangle,请给出理由,如果不是,
请给出理由,并且请比较两种方式的优劣
d)请问你所编写的类,在如下代码中会有何表现,请解释
voidtest_rectangle_area(Rectangle&
r)
r.set_width(10);
r.set_height(15);
assert(r.area()==150);
1.一、选择题
1.以下叙述正确的是_C____。
A.在C程序中main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的错误
2.下列四组字符串中都可以用作C语言程序标识符的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔试 模拟 以及 答案