视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
2014年4月高级语言程序设计(一)试题及答案
2025-09-29 22:31:04 责编:小OO
文档
2014年4月高级语言程序设计(一)试题

 一、单项选择题(本大题共15小题,每小题2分,共30分)

 1.表达式9%45+15/6*2的值是 D

A.4 B.5 C.10

2.设int a[10];,则数组a的下标正确的使用范围是 A

A.0到9到1到9 到10

3.执行语句printf("%c",'A'+3);后输出结果是 D

A.3 B.A C.D

4.设int ml=60,m2=80,m3=100;,表达式m3>m2>ml的值是  A.0 B.1 C.60

5.下列程序段执行后,变量n的值是 C

Static int n;

do {n=n+1;} while(n<1000);

A.1 B.999 C.1000

6.设int a,b,c;,执行语句printf ("%d",(a=1,b=2,c=3));后输出结果是 B

A.6 B.3 C.2

7.设int n=2;,执行语句n+=n-=n-n;后n的值是 C   1、n+=n-=0  2 、n+=2  3、n=4;

A.0 B.2 C.4

8.设int a[2][3]={1,2,3,4,5};,数组元素a[1][1]的值是 D

A.1 B.2 C.4

9.设int a=10,b=20,c=1,d=2;,执行语句if(ad&&(c=10)||c==100)d=200;后,c和d的值分别是A

A.1和2和2和2 和200 

10.下列数组初始化后,元素值不全为0的是 B

A.int a[5]={0};  B.int a[5]={'0'} a[0]=48 ; C.static int a[5]; [5]={0,0,0,0,0};

11.设int a[]={11,21,31,41,51,61},*p=a;,表达式*p++的值是 A

A.11 B.21 C.31

12.设Struct t {  int a; float b; char c[10];  }x[2]={{1,6.6,"Dollar"},{2,9.8,"Pound"}};

则执行语句printf("%d,%s",x[1].a,x[1].c);后输出结果是 D

A.1,Dollar B.2,Dollar C.1,Pound

13.设char sl[10]="Better",s2[10]="Life";,执行语句printf("%s",strcat(s1,s2));后输出结果是 B

A.LifeBetter  B.BetterLife C.Better  strcat:连接字符串

14.下列程序段的输出结果是  C

int n=6; while(n>3) {  n--; if(n%2==0) continue; printf("%nd",n); }

A.13  B.35 C.53

15.下列程序的输出结果是 B

int a=l;

int f ()

{ int a=2;return a;}

void main()

{printf("%d,%d",a,f());}

A.1,1 B.1,2 C.2,1

二、填空题(本大题共10小题,每小题2分,共20分)

16.指针变量中存放的是_地址_____。

17.设int a;,从键盘输入数据给变量a的输入语句是___scanf("%d",&a);___。

18.break语句除可在循环语句中使用外,还可以用于___switch 语句___。

19.一个源程序中允许有多个函数,但必须有且只能有一个__主函数____。

20.设int m[10],*p;,使指针变量p指向数组m首元素的语句是__*(p=m)++___。

21.运算符+=、&&、<和!中,优先级最低的是____+=__。

22.设int x=12;,执行语句X>>=2;后X的值是__3 _。x>>2等价于 x=x>>2 x>>2等价于x的二进制右移2位(x/2的次)

23.计算使用的系统函数是_pow_____。

24.设char s[20]="Computer";,则strlen(s)的值是_8_____。

25.表达式(int)(3.5+1/2)的值是__3____。  1/2=0 

三、程序分析题(本大题共4小题,每小题4分,共16分)

阅读下列程序,将输出结果写到答题纸上。

26.void main()

{

int k,m;

for(m=3;m<12;m++)

{  for(k=2;ki;

if(k==m)  printf("%2d",m);

}

}  3  5  7  11 //   %md    以宽度m输出整型数,不足m时,左补空格   

27.#define N  5

void main()

{

int k, sl=0,s2=0;

for(k=1;kswitch(k%4)

{  case1:

case 2:sl+=1;break;

case3:

case0:s2+=1;break;

}

printf("s1=%d,s2=%dn",s1,s2);

} s1=2 s2=2n

28.int f(intt)

{

int b;

static int c=3;

b=c+t;

c++;

return b;

}

void main()

{

int i,k;

for(i=1;i<3;i++)

{(i);

printf("%2d",k);

}

printf("\\n");

}  4  6  // static int c=3; c为静态变量

29.int f(int n)

{

if(n=2)return 0;

else return(n+f(n-2));

}

void main()

{

int a=10;

printf("%d\\n",f(a));

}  0   这里if(n=2) 为永真 不是==2

四、程序填充题(本大题共3小题,每小题6分,共18分) 

30.求a、b和c的最大值并输出。

#include

int f(int x,__int y ____) /*第一空*/

{return(____y>x__?y∶x);} /*第二空*/

void main()

{

int a=3,b=4,c=5,d;

_____d_=f(f(a,b),f(a,c)); /*第三空*/

printf("%dn",d);

}

31.计算并输出结果。

#include

void main()

{

float sum;

float fun(int);

_____sum_=fun(10); /*第一空*/

printf("sum=%.4f\\n",sum);

}

float fun(___int___n)  /*第二空*/

{

int f=1,i;

float m=0;

for(i=1;i<=n;i++)

{ m+=1.0/i*f;

____f__第三空*/

}

return m;

}

32.将一维数组逆序存放后输出。例如int a[3]={1,2,3},逆序存放后int a[3]={3,2,1}。

include

void move(int*p,int n);

void main()

{

int i,n=6,a[6]={1,2,3,4,5,6};

move(a,5);

for(i=0;i}

void move(int*p,int n)

{

__int k__,c__; /*第二空*/

for(k=0;k<=n/2;k++)

{c=p[k];p[k]=p[n-k];__p[n-k]=_c___;} /*第三空*/

}

五、程序设计题(本大题共2小题,每小题8分,共16分)

33.计算1到100的平方根,并将结果保存至二进制文件root.dat。

#include

#include

void main()

{

     double gen = 0;

     int sum=0,i; 

for(i=1;i<=100;i++)

         sum+=i;  

         gen=sqrt(sum);       

    FILE *fp;

    fp=fopen("f:/root.txt

    fwrite(&gen, sizeof(double),1,fp)  ;

    fclose(fp); }

34.从键盘输入10个整数,由大到小排序后输出。

#include // 冒泡排序

void main()

{

 int i, j, temp; 

 int a[10]; 

 printf("请输入10个整数:\\n");

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

 {

    scanf("%d,", &a[i]);

 } 

for (j = 0; j < 10; j++)

 {

for (i = 0; i < 10- j; i++)

  {

     if (a[i] < a[i + 1])

         {

           temp = a[i]; 

           a[i] = a[i + 1]; 

           a[i + 1] = temp;

         }

    }

 }  

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

 {

    printf("%d ", a[i]);

 }      

}    

 

//快速排序

#include "stdio.h" 

void main()

{

    int a[10],i,j,k,t ;

 printf("enter the array\\n");

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

     scanf("%d",&a[i]);

 

for(i=0;i<10-1;i++)

  {k=i;

for(j=i+1;j<10;j++)

if(a[j]>a[k]) k=j;

     t=a[k] ;

     a[k]=a[i]; 

     a[i]=t; 

  }

  

 printf("the sorted array :\\n");

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

   printf("%d ",a[i]);

 printf("\\n");

}下载本文

显示全文
专题