本科C语言模拟一含答案.docx

上传人:b****5 文档编号:3296257 上传时间:2022-11-21 格式:DOCX 页数:16 大小:22.97KB
下载 相关 举报
本科C语言模拟一含答案.docx_第1页
第1页 / 共16页
本科C语言模拟一含答案.docx_第2页
第2页 / 共16页
本科C语言模拟一含答案.docx_第3页
第3页 / 共16页
本科C语言模拟一含答案.docx_第4页
第4页 / 共16页
本科C语言模拟一含答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

本科C语言模拟一含答案.docx

《本科C语言模拟一含答案.docx》由会员分享,可在线阅读,更多相关《本科C语言模拟一含答案.docx(16页珍藏版)》请在冰豆网上搜索。

本科C语言模拟一含答案.docx

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

{ int k=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()

int a=-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、设有:

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>=10ora<=0

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

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

  D.a<=0||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 < CR > ( < CR > 表示回车),则下面程序的运行结果是

#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.20

  B.31

  C.321

  D.210

 答案:

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 < stdio.h >

#include < string.h >

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.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、若有说明:

 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.2143

  B.1212

  C.2121

  D.2134

 答案:

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;

  c=a+b;

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1