2014年本科插班生考试《高级语言程序设计》课程试卷概论

更新时间:2023-05-02 18:42:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(A 卷)第 1 页 共 11 页

1

韩山师范学院2014年本科插班生考试试卷

计算机科学与技术 专业 高级语言程序设计 试卷(A 卷)

一、填空题(每空1分,共10分)

1.C 程序是由_________构成的,它包括___________和__________两部分。 2.一个C 文件是一个字节流或_____________流。

3. 在C 语言中,&运算符作为单目运算符时表示的是__________运算,作为双目运算符时表示的是__________运算。

4. 在16位PC 机环境下,字符常量‘a ’在内存中应占_____个字节,字符串“a ”应占________个字节。

5. 数组在内存中占用一段连续的存储空间,它的首地址由___________表示。

6. 当a=9,b=40,c=3时,表达式 a>b!= c 的值是 _______。 二、单项选择题(每题1.5分,共30分)

(A卷)第 1 页共11 页

1.下述程序段的输出结果是()。

int x=11;

int y=x++;

printf(″%d,%d″,(x++,y),y++);

A、11,10

B、11,11

C、10,10

D、10,11

2.下面各选项中,均是C语言标识符的选项组是()。

A、for china to

B、long_123 short56 _do

C、void union _342

D、text.txt _023 _3ew

3.有以下程序,执行后输出结果是()。

main()

{ int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;

pa=a;

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

if(i<2) pa[1][i] = pa[1][i]-1;

else pa[1][i]=1;

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);

}

A、7

B、6

C、8

D、无确定值

4. 算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是()。

A、有零个输入或多个输入

B、高效性

C、有穷性

D、确定性5.在位运算中,操作数每右移一位,其结果相当于()。

A、操作数除以16

B、操作数乘以16

C、操作数除以2

D、操作数乘以2

6. 下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。

A、*pz

B、a

C、px

D、&a

1

(A卷)第 1 页共11 页

7.以下描述错误的是()。

A、C程序中,函数可以直接或间接的调用自己

B、函数调用时,函数名必须与所调用的函数名字完全一致

C、函数说明语句中的类型必须与返回值的类型一致

D、实参数可以与形参个数不一致

8.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()。

A、 x||y

B、 x|y

C、x&y

D、x^y

9.若int k=10;则执行下列程序后,变量k的正确结果是()。

main( )

{ int k=10;

switch(k)

{ case 9;k+=1;

case 10 ;k+=1;

case 11;k+=1;break;

default;k+=1

}

printf(″%d\n″,k);

}

A、12

B、1

C、10

D、9

10.下面有关for循环的正确描述是( )

A、 for循环只能用于循环次数已经确定的情况

B、 for循环是先执行循环体语句,后判定表达式

C、在for循环中,不能用break语句跳出循环体

D、 for循环体语句中,可以包含多条语句,但要用花括号括起来11.阅读下面程序,则程序的输出结果为()。

#include ″stdio.h″

main ( )

1

(A卷)第 1 页共11 页

{ int c[ ]= {1, 2, 3, 1, 5, 2};

int *p;

p=c;

printf(″%d ″,*p);

printf(″%d\n″,*++p);

}

A、1,2

B、2,1

C、1,1

D、2,2

12.当a=2, b=3, c=6, d=4时,执行下面一段程序后,x的值为()。

if (a

if(c

else if(a

if(b

else x=3;

else x=6;

else x=7;

A、1

B、2

C、3

D、6

13.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

s=a;

for(b=1;b<=c;b++) s=s+1;

则与上述程序段功能等价的赋值语句是()。

A、s=a+b;

B、s=a+c;

C、s=s+c;

D、s=b+c;

14.下面的程序运行后,全局量t.x和t.s的正确结果为()。

struct tree

{ int x;

char *s;

}t;

func(struct tree t)

{ t.x=5;

1

(A卷)第 1 页共11 页

t.s="car";

return(0);

}

main()

{ t.x=3;

t.s="minicar";

func(t);

printf("%d, %s", t.x, t.s);

}

A、5, car

B、1, car

C、3, minicar

D、5, minicar 15.以下能对二维数组C进行正确的初始化的语句是()。

A、int c[3][]={{3},{3},{4}};

B、int c[][3]={{3},{3},{4}};

C、int c[3][]={{3},{3},{4},{5}};

D、int c[][3]={{3},{},{3}};

16. 阅读如下程序段,则程序在先后输入blue和sky后,输出结果是()。main ( )

{ char a [30], b [30];

int k;

gets (a);

gets (b);

k=strcmp(a, b);

if (k>0) puts (a);

else if (k<0) puts (b) ;

}

A、bluesky

B、sky

C、blue

D、没有输出结果

17. 有以下程序

char *scmp(char *s1, char *s2)

{ if(strcmp(s1,s2)<0)

1

(A卷)第 1 页共11 页

return(s1);

else return(s2);

}

main()

{ int i; char string[20], str[3][20];

for(i=0;i<3;i++) gets(str[i]);

strcpy(string,scmp(str[0],str[1]));

strcpy(string,scmp(string,str[2]));

printf("%s\n",string);

}

若运行时依次输入:abc、abcd和abba三个字符串,则输出结果为()。

A、abcd

B、abca

C、abc

D、abba

18.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是( )。

for(i=5;i>0;i--)

for(j=0;j<4;j++){…}

A、20

B、24

C、25

D、30

19. 若已定义了如下的共用体类型变量x,则x所占用的内存字节数为()。

union data

{ int i;

char ch;

double f;

}x;

A、7

B、11

C、8

D、10

20. 如果文件1包含文件2,文件2中要用到文件3的内容,而文件3中要用到文件4的内容,则可在文件1中用三个#include命令分别包含文件2、文件3和文件4。在下列关于这几个文件包含顺序的叙述中,正确的一条是()。

A、文件4应出现在文件3之前,文件3应出现在文件2之前

1

(A 卷)第 1 页 共 11 页

1 B 、文件2应出现在文件3之前,文件3应出现在文件4之前

C 、文件3应出现在文件2之前,文件2应出现在文件4之前

D 、出现的先后顺序可以任意

三、阅读程序,将运行结果写到各题右侧的空白处(每题4分,共20分) 1.

#define MCRA(m) 3*m

#define MCRB(n,m) 4*MCRA(n)+m

main()

{ int i=3,j=2;

printf("%d\n",MCRB(j,MCRA(i)));

}

2.

struct s

{ int x,y;

} data[2]={100,10,20,200};

main()

{ struct s *p=data;

printf("%d\n",++(p->x));

}

3.

#include

main()

{int number,digit,s=0;

scanf(“%d”,&number);/*假若运行时,输入number 的值为12123*/ do

{digit=number%10;

number/=10;

(A卷)第 1 页共11 页

s+=digit;

}while(number!=0);

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

}

4.

#include

main()

{

int i,j;

for(i=4;i>=1;i--)

{printf("* ");

for(j=1;j<=4-i;j++)

printf("* ");

printf("\n");

}

}

5.

void fun(int *n)

{ while((*n)--);

printf("%d",++(*n));

}

main()

{ int a=100;

fun(&a);

}

1

(A 卷)第 1 页 共 11 页

1 四、阅读程序或程序段,填空(每题4分,共20分)

1. 用以下程序计算1到100的整数的累加和。

main()

{int i,sum=0;

i=1;

for(___________________________)

{sum+=i;

i++;

}

printf(″sum=%d \n″,______________);

}

2.下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。

#include <stdio .h >

main( )

{ int r,m,n ;

scanf(″%d%d ″,&m,&n);

if (m

r=m%n ;

while(r) {m=n ;n=r ;r=_________;}

printf(″%d\n ″,n) ;

}

3.512个瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天能卖完。

#include ″stdio.h ″

main( )

(A卷)第 1 页共11 页

{int day,x1,x2;

day=0;x1=512;

while (____________________)

{x2=___________;x1=x2;day++;}

printf(″day=%d\n″,day);

}

4. 下面程序用变量count统计文件中字符的个数。

#include “stdio.h”

main()

{ FILE *fp;long count=0;

if((fp=fopen(″letter.dat″, ______________))==NULL)

{printf(″ cannot open file\n″);exit(0)}

while(!feof(fp)) {__________________________________;count++;} printf(″count=%ld\n″;count);

fclose(fp);

}

5. 以下函数的功能是删除字符串s中的所有数字字符。

void dele (char *s)

{ int n=0,i;

for(i=0; s[i]; i++)

if(_______________________)

s[n++]=s[i];

s[n]=___________________;

}

1

(A 卷)第 1 页 共 11 页

1 五、编程题(每题10分,共20分)

1.求1+1/2+1/4+……+1/50的值, 并输出结果。

2.从键盘输入20个学生的学号和一门课程成绩,统计计算出全班平均成绩,并输出低于平均分的学生学号和成绩。

本文来源:https://www.bwwdw.com/article/pkke.html

Top