2016年韩山师范学院本科插班生《C语言程序设计》试卷

更新时间:2023-03-08 06:24:36 阅读量: 综合文库 文档下载

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

(A卷)第 1 页 共 11 页

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

计算机科学与技术 专业 高级语言程序设计 试卷(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.下述程序段的输出结果是( )。

int x=11; int y=x++;

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

1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 20 评卷人 二、单项选择题(每题1.5分,共30分)

1

(A卷)第 2 页 共 11 页

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(\}

A、7 B、6 C、8 D、无确定值 4. 算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。

A、有零个输入或多个输入 B、高效性 C、有穷性 D、确定性 5.在位运算中,操作数每右移一位,其结果相当于()。

A、操作数除以16 C、操作数除以2

B、操作数乘以16 D、操作数乘以2

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

A、*pz B、a C、px D、&a

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

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

B、函数调用时,函数名必须与所调用的函数名字完全一致 C、函数说明语句中的类型必须与返回值的类型一致

2

(A卷)第 3 页 共 11 页

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

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

int *p; p=c;

printf(″%d ″,*p);

3

(A卷)第 4 页 共 11 页

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

if(b

else

x=7;

B、2

C、3

D、6

x=3;

x=6;

A、1

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;

t.s=\return(0); } main()

4

(A卷)第 5 页 共 11 页

{ t.x=3; t.s=\

func(t);

printf(\}

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

17. 有以下程序

char *scmp(char *s1, char *s2) { if(strcmp(s1,s2)<0) return(s1); else return(s2); } main()

B、sky

C、blue

D、没有输出结果

5

(A卷)第 6 页 共 11 页

{ 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(\ }

若运行时依次输入: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之前 B、文件2应出现在文件3之前,文件3应出现在文件4之前 C、文件3应出现在文件2之前,文件2应出现在文件4之前 D、出现的先后顺序可以任意 得分 评卷人 6

(A卷)第 7 页 共 11 页

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

1.

#define MCRA(m) 3*m

#define MCRB(n,m) 4*MCRA(n)+m main() { int i=3,j=2;

printf(\} 2.

struct s { int x,y;

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

{ struct s *p=data; printf(\} 3.

#include main()

{int number,digit,s=0;

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

{digit=number; number/=10; s+=digit;

}while(number!=0); printf(“%d\\n”,s);

7

(A卷)第 8 页 共 11 页

} 4.

#include main() { int i,j;

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

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

printf(\printf(\} } 5.

void fun(int *n) { while((*n)--);

printf(\ } main() { int a=100;

fun(&a); } 得分 评卷人 四、阅读程序或程序段,填空(每题4分,共20分)

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

8

(A卷)第 9 页 共 11 页

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

while(r) {m=n ;n=r;r=_________;} printf(″%d\\n″,n) ; }

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

#include ″stdio.h″ main( ) {int day,x1,x2;

day=0;x1=512;

while (____________________)

9

(A卷)第 10 页 共 11 页

{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]=___________________; } 得分 评卷人 五、编程题(每题10分,共20分)

10

(A卷)第 11 页 共 11 页

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

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

11

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

Top