c语言模拟试卷答案,c语言笔试模拟题以及答案

2015-05-31 06:30:01

阅读( 40 )

一、单选题:(每题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( )

{ int k=17;

printf(“%d,%o,%x \n”,k,k,k);

}

A. 17,021,0×11

B. 17,17,17

C. 17,0×11,021

D. 17,21,11

答案: D

5、 下列变量定义中合法的是

A. short _a=1-.le-1;

B. double b=1+5e2.5;

C. long do=0xfdaL;

D. float 2_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. int 18.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()

{

int a=-1,b=4,k;

k=(a++<=0)&&(!(b–<=0));

printf(“%d%d%d%\n”,k,a,b);

}

A. 0 0 3

B. 0 1 2

C. 1 0 3

D. 1 1 2

答案: C

17、 设有:int a=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 > =10 or a< =0

B. a > =0||a < =10

C. a > =10 && a < =0

D. a =10

答案: D

21、 下面的程序是______

main()

{ int x=3,y=0,z=0;

if (x==y+z) printf(“****”);

else printf(“####”);

}

A. 有语法错误不能过通过编译

B. 输出****

C. 可能通过编译,但是不能通过连接,因而不能运行

D. 输出####

答案: D

22、 执行下面语句后的输出为( )

int i= -1;

if (i < =0)printf(“****\n”)

else printf(“%%%%\n”)

A. ****

B. %%%%

C. %%%%C

D. 有语法错,不能执行

答案: D

23、 若运行以下程序时,从键盘输入 ADescriptor ( 表示回车),则下面程序的运行结果是

#include

main()

{char c;

int v0=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. 2 0

B. 3 1

C. 3 2 1

D. 2 1 0

答案: A

25、 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。

#include

main()

{int i;

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()

{ char b1[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()

{int a,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()

{int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf(”%d%d”,x–,y);

}

A. 10 1 9 2

B. 9 8 7 6

C. 10 9 9 0

D. 10 10 91

答案: 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);

}

A. 5 2

B. 9 1

C. 5 3

D. 9 7

答案: B

31、 若有说明: int a[3][4]={0};则下面正确的叙述是

A. 只有元素a[0][0]可得到初值0

B. 此说明语句不正确

C. 数组a中各元素都可得到初值,但其值不一定为0

D. 数组a中每个元素均可得到初值0

答案: D

32、 以下程序的输出结果是

main( )

{ char a[10]={’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,0},*p;

int i;

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、 若有说明语句

char a[]=”It is mine”;

char *p=”It is mine”;

则以下不正确的叙述是

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

void FUN(int S[])

{ static int J=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

void fun(int *x,int *Y)

{printf(”%d%d”,*X,*Y);*X=3;*Y=4;}

main()

{int X=1,Y=2;

fun(&y,&x);

prinff(”%d%d”,x,Y);

}

A. 2 1 4 3

B. 1 2 1 2

C. 2 1 2 1

D. 2 1 3 4

答案: A

39、 下面程序的输出结果是( )。

#include

main()

{int a[]={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(int a,int b)

{

int c;

e=a+b;

retum c;

}

main() 。

{

int x=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、 设有以下变量定义,并已赋确定的值

char w; int x; float y; double z;

则表达式:w*x+z-y所求得的数据类型为__________。

答案: double

3、 若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为_________

x+=n++

答案: 10,6

4、 若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为______

a+(int)(b/3*(int)(a+c)/2)%4

答案: 5.500000

5、 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为

答案: 1

6、 以下程序不用第三个变量,实现将两个数进行对调操作:

#include

main()

{ int a , b ;

scanf (“%d%d” , &a , &b);

printf(“a=%d b=%d\n” , a , b );

a=a+b;

b=(________);

a=a-b;

printf(“a=%d b=%d\n”,a,b);}

答案: a-b

7、 直接使用printf()的格式符输出十六进制数。本题程序如下:

﹟include ﹤ stdio.h ﹥

void main()

{

int I;

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

10、 下列程序段的输出结果是 _____________ 。

int n=’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()

{ int n1,n2;

scanf(“%d”,&n2);

while(n2!=0)

{ n1=n2%10;

n2=n2/10;

printf(“%d”,n1);

}

}

程序运行后,如果从键盘上输入1298;则输出结果为_________。

答案: 8921

12、 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空

int n=0,c;

c=getchar();

while( _______ )

{if( ______ ) n++;

c=getchar();

}

答案: c!=’\n’,c > =’0′&&c < =’9′

13、 以下程序的运行结果是 __________________

main()

{ static char a[]={‘*’,'*’,'*’,'*’,'*’};

int i,j,k;

for(i=0;i < 5;i++)

{

printf(“\n”);

for(j=0;j < i;j++) printf(“%c”,’ ‘);

for(k=0;k < 5;k++) printf(“%c”,a[k]);

}

}

答案: ****

****

****

****

14、 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是____,a[2][1]得到的初值是______。

答案: 0

6

15、 若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)

while(){ d[j]= _____________;j++;i++;}

d[j]=0;

答案: s[i++]

16、 以下函数用以求x的y次方,请填空。

double fun(double x,int y)

{

int i:

double z=1.0:

for(i-1;i_________;i++)

z=________;

return z:

}

答案: <=y z*x

程序设计题:(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)

1、 设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番?

答案: main()

{

int n;

float a,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()

{

int i=1,sum=0;

while(sum < =900)

{

sum=sum+i;

i=i+2;

}

printf(“\n%d”,sum);

}

参考答案: 936

3、 编程序求1~125的平方根的和并输出结果。(保留小数点两位)

答案: include “math.h”

main()

{float a,s=0;

clrscr();

for(a=1;a < =125;a++)

{s=s+sqrt(a);

}

printf(“%.2f”,s);

}

本题答案:937.08

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值