淮阴师范学院2021年计算机C语言专升本模拟考试(八卷)及答案_第1页
淮阴师范学院2021年计算机C语言专升本模拟考试(八卷)及答案_第2页
淮阴师范学院2021年计算机C语言专升本模拟考试(八卷)及答案_第3页
淮阴师范学院2021年计算机C语言专升本模拟考试(八卷)及答案_第4页
淮阴师范学院2021年计算机C语言专升本模拟考试(八卷)及答案_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机C语言专升本模拟考试(-)

(总分100分,考试时长60分钟)

一、单项选择题(每小题2分,共100分)

1、以下选项中合法的实型常数是o

A、5E2.0

B、E-3

C、2E0

D、1.3E

2、下列程序段执行后的输出结果为intx=3;inty=10;printfC%d",y^x);

A、0

B、1

C、2

D、3

3、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:if(a<b)

if(c==d)y=0;elsey=l;该语句所表示的含义是。

A、y=0,a

y=l,a2b

B、y=0,a

y=l,aNb且cWd

C^y=0,a

y=l,aVB且CWD

D>y=0,a

y=l,cWd

4、若有以卜程序

#include<stdio.h>

main(){

inta=6,b=0,c=0;

for(;a;){

b+二a;

a-=++c;

)

printf(〃%d,%d,%d\n〃,a,b,c);

}

则程序的输出结果是。

A、0,14,3

B、1,14,3

C、0,18,3

D、0,14,6

5、设有以下定义:inta[3][3]={1,2,3,4,5,6,7,8,9};int(*ptr)[3]=a;

则下列能正确表示数组元素a[l][2]的表达式是_____o

AN*((*ptr+l)[2])

B、a[2][3]

C、(*ptr+l)+2

D、*(*(a+l)+2)

6、设a为整型变量,不能正确表达数学关系10

A、10

B、a=ll||a==12||a=13||a==14

C、a>10&&a<15

D、!(a<=10)&&!(a>=15)

7、下面程序段的运行结果是o

char*format="%s,a=%d,b=%d\n〃;

inta=ll,b=10;

a+=b;

printf(format,〃a+=b〃,a,b);

A、for,“a+二b〃,ab

B、format,"a+=b〃

C^a+=b,a=21,b=10

D、以上结果都不对

8、在标准ascii码表中,若英文字母i的十进制码值是105,则小写字母f的十

进制码值为o

A、102

B、101

C、103

D、100

9、下列选项中c语言中不合法的字符串常量的是o

A、

B、'y'

C、〃\n\n〃

D、〃ABCD\x6d\

10、有如下程序段int*p,a=5,b=l;p=&a;a=*p+b;执行该程序段后,a的值为

A、5

B、6

C、7

D、编译出错

11、阅读以下函数fun(char*sl,char*s2)

(

inti=0;

while(sl[i]==s2[i]&as2[i]!=,\0')i++;

return(si[i]==\0*&&s2[i]==\0*);

)

此函数的功能是O

A、将s2所指字符串赋给si

B、比较si和s2所指字符串的大小,若si比s2的大,函数值为1,否则函数

值为0

C、比较si和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D、比较si和s2所指字符串的长度,若si比s2的长,函数值为1,否则函数

值为0

12、在标准ascii编码表中,数字码、小写英文字母和大写英文字母的前后次序

是O

A、数字、小写英文字母、大写英文亨母

B、小写英文字母、大写英文字母、数字

C、数字、大写英文字母、小写英文字母

D、大写英文字母、小写英文字母、数字

13、对于函数声明voidfun(inta[l],int*b);以下叙述中正确的是

_______O

A、函数参数A,b都是指针变量

B、有语法错误,数组a的大小不能为1

C、调用该函数后,实参变量所指向的内存单元的值肯定不会受影响

D、调用该函数时,a的值是从对应实参复制过来的,b的值是对应实参变量

的地址

14>已有定义int(*p)();指针p可以。

A、代表函数的返回值

B、指向函数的入口地址

C、表示函数的类型

D、表示函数返回值的类型

15、有以下程序

ttinclude<stdio.h>

intfun(intx,inty)

if(x==y)return(x);

elsereturn((x+y)/2);

)

main()

(

inta=4,b=5,c=6;

printf(*%d\n*»fun(2*a,fun(b,c)));

)

程序运行后输出的结果是0

A、3

B、6

C、8

D、12

16、下列c语言程序段中关于while循环体正确的说法是

inti=l;

while(5)

(

i++;

if(i>3)break;

)

A、三次循环

B、四次循环

C、五次循环

D、六次循环

17、一个int型变量,在程序中多次频繁使用,最好定义它为—

A^auto

B、register

C、static

D^extern

18、有如下程序

main()

(

inta[3][3]={{1,2,3),[3,4,5},{5,6,7}},i,j,s=0;

for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j]];

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

)

该程序的输出结果是o

A、18

B、19

C、36

D、26

19、下列哪个语句是声明一个含有10个string对象的数组()

A、charstr[];

B、charstr[][];

C^Stringstr[]=newString[10];

D、Stringstr[10];

20、以下对结构变量stul中成员age的非法引用是

structstudent

(

intage;

intnum;

}stul,*p;

p=&stul;

A、stul.age

B、student,age

C、p->age

D、(*p).age

21、下列关于标识符的说法中错误的是o

A、合法的标识符是由字母、数字和下划线组成

B、C语言的标识符中,大写字母和小写字母被认为是两个不同的字符

C、C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符

D、用户标识符与关键字不同时,程序在执行时将给出出错信息

22、串是任意有限个(46)o

A、符号构成的集合

B、字符构成的序列

C、字符构成的集合

D、符号构成的序列

23、在c语言中,调用函数除函数名外,还必须有________。

A、函数预说明

B、实际参数

C、()

D、函数返回值

24、下面不属于算法的控制结构的是_____。

A、顺序结构

B、归纳结构

C、循环结构

D、选择结构

25>若有函数char*func(char*p)…returnp;则该函数的返回值是

A、无确切的值

B、形参p中存放的地址

C、一个临时存储单元的地址

D、形参p自身的地址

26、以下错误的定义语句是o

A、intx[][3]={{0},{1},{1,2,3}};

B、intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C、intx[4][]={{1,2,3),{1,2,3),{1,2,3},{1,2,3});

D、intx[][3]={1,2,3,4};

27>设有如下定义:char*aa[2]=〃abcd〃,"abed”,则以下说法中正确的是

A、aa数组中元素的值分别是〃abcd〃,〃ABCD〃;

B、aa是指针变量,它指向含有两个数组元素的字符型一维数组

C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D、aa数组的两个元素中各自存放了字符匕'和'A'的地址

28、若变量均已正确定义并赋值,以下合法的c语言赋值语句是o

A、x=n/2.5;

B、x-5;

C、x+n=I;

D、5=x=4+l;

29、字符串指针变量中存入的是o

A、字符串

B、字符串的首地址

C、第一个字符

D、字符串变量

30、标准库函数fgets(str,n,fp)的功能是。

A、从fp所指的文件中读取长度不超过n-1字符串存入指针str所指的

内存

B、从fp所指的文件中读取长度为n的字符串存入指针str所指的内存

C、从fp所指的文件中读取n个字符串存入指针str所指的内存

D、从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内

31、下面程序的输出结果是。

#include<stdio.h>intx=l;

voidmain()

intx=2;

printf("%d,〃,x);

if(x==l)

intx=4;

printf(〃%d,",x++);

)

printf(〃%d〃,x++);

)

A、2,2

B、1,1,2

C、2,4,3

D、2,3

32、表达式‘5'-T'的值是_______o

A、整数4

B、字符4

C、表达式不合法

D、字符6

33、下列关于c语言的说法错误的是o

A、C程序的工作过程是编辑、编译、连接、运行

B、C语言不区分大小写。

C、C程序的三种基本结构是顺序、选择、循环

D、C程序从main函数开始执行

34、在下列程序段中,枚举变量cl,c2的值依次是—

enumcolor

(

red,

yellow,

blue=4,

green,

white

)

cl,c2;

cl二yellow;

c2=white;

printf("机1,%d\n〃,cl,c2);

A、1,6

B、2,5

C、1,4

D、2,6

35、有以下程序:

main()

(

intx=4,y;

do

(

y二x;

if(!y)printfCx,z);

elseprintf(〃y");x—;

)

while(x);

)

程序的输出结果是O

A、xyyx

B、yyyy

C、yyxx

D、yxyx

36、设有声明语句:inta=l,b=0;

则执行以下语句后输出()

switch(a)

(

case1:switch(b)

(

case0:printf(〃〃**0**〃〃);

break;

case1:;

break;

}

case2:printf(〃〃**2**"〃);

break;

)

A、**0**

B、**0****2**

C、**0****l****2**

D、有语法错误

37、设intx:,则经过后,语句*px=0;可将x值置为0。

A、int*px;

B、intconst*px=&x;

C、int*constpx=&x:

D、constint*px=&x;

38、有以下程序

ttinclude<stdio.h>

main()

(

inta=1,b=0;

if(-a)

b++;

elseif(a==0)

b+=2;

else

b+=3;

printf("%d\n',b);

)

程序运行后的输出结果是O

A、0

B、1

C、2

D、3

39、以下能正确定义一维数组的选项是—

A、intnum[];

B、^defineN100

intnum[N];

C、intnum[0..100];

D、intN=100;

intnum[N];

40、以下scanf函数调用语句中不正确的是—。

structpupil

(

charname[20];

intage;

intsex;

}

pup[5],*p=pup;

A、scanf(绘s〃,pup[0].name);

B、scanf(/z%dz/,&pup[O].age);

C、scanfp->age);

D、scanf(*%d*,&(p->sex));

41、若已有定义语句:inta,b,c;且变量已正确赋初值,则以下选项中正确的赋

值语句是o

A、a=(b=c)+8;

B、(a=b)=c=9;

Csa=(b-c)='A';

D、a+b=c+1;

42、设以下变量均为int类型,表达式的值不为7的是o

A、(x=y=6,x+y,x+1)

B、(x=y=6,x+y,y+1)

C、(x=6,x+1,y=6,x+y)

D、(y=6,y+1,x=y,x+1)

43>switch语句中表达式(expression)的值不允许用的类型是。

A、byte

B、int

C、boolean

D、char

44、下列不是循环语句的是。

A、while语句

B、do…while语句

C^for语句

D、if…else语句

45、下列关于指针运算的描述中,错误的是o

A、在一定条件下,两个指针可以相加

B、在一定条件下,两个指针可以进行逻辑判断

C、在一定条件下,指针可以为空值

D、在一定条件下,两个指针可以相互赋值

46、设i是int型变量,f是float型变量,用下面的语句给这2个变量输入

值。为了将,100和765.12分别赋给i和f,则正确的输入为o

scanfCi=%d,&i,&f);

A、100V空格>765.12V回车》

B、i=100,f=765.12V回车〉

C、100V回车:>765.12V回车,

D、x=100V回车>y=765.12V回车〉

47、在c语言中对一维整型数组的正确定义为。

A、inta(10);

B、intn=10,a[n];

C、intn;a[n];

D、^defineN10inta[N];

48、以下叙述中正确的是o

A、在C程序中,语句之间必须要用分号(。分隔

B、在C程序中/include夕亍和#define行不是C语句

C、程序中的注释部分可有可无,通常可以省略

D、当输入数值数据时,对于整型变量只能输入整型值:对于实型变量只能

输入实型值

49、下面不正确的字符串常量是o

A、'abc'

B、〃12'12〃

C、〃0〃

D、〃〃

50、c语言中,系统的标准输入文件是指

A、键盘

B、显示器

C、软盘

D、硬盘

参考答案

一、单项选择题

1、C

【解析】本题考查实型常数的指数表示法,可以肯定的是指数不能为小数即必

须为整数。由于符号E前面必须有数字。D在指数符号后面没有数字,是错误

的。

2、B

【解析】解析:算术运算符“%”是取余数,a%b是求a除以b所得的余数。

10%3的余数

是1。

3、C

4、A

【解析】循环执行3次,使a为0,循环结束,最终abc分别为0143,所

以选择Ao

5、D

【解析】指针变量ptr是指向长度为3的整型一维数组,当ptr指向二维数组

a时,ptr每移动一个单位将指向数组的下一行,*(*(a+l)+2)表示数组元素

a[l][2],*(*(ptr+l)+2)也可以。

6、A

7、C

【解析】字符串常量是由双引号括起来的一串字符,每一个字符串常量都分别

占用内存中一串连续的存储空间,这些连续的存储空间实际上就是字符型一维

数组。

8、A

【解析】i的码值105,f排列在i前面三位,故最后结果是102。

9、B

【解析】字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。

由此可知,选项A)、C)、D)都是合法的字符串常量,而选B)是一个字符常量。

10、B

11、C

12、C

【解析】在标准ASCH码表中,数字码、小写英文字母和大写英文字母的前后

次序是:数字、大写英文字母、小写英文字母。

13、A

【解析】根据函数声明:voidfun(inta[],intb)形参为数组类型,数组类型

作为形参时,退化为指针。本题答案为A选项。

14、B

15、B

16、A

17、B

【解析】寄存器类型变量常用于循环变量、数组下标等频繁使用的变量。将变

量放入寄存器内,可以加快程序的运行速度。

18、D

19、C

20、B

21、D

【解析】考查对于标识符的掌握情况。

[解题要点]用户标识符与关键字相同时,程序在编译过程中将给出出错信息。

[错解分析]选项D)应该改为用户标识符与关键字相同,程序在编译时将给出

出错信息。

[考点链接]合法的标识符第一个字符必须为字母或下划线。

22、B

【解析】本题考查串的定义和特点。

串是由零个或多个字符组成的有限序列。串中的内容可以是字母、数字或其

他字符,串中字符的个数就是串的长度,如果没有字符,则是空串,其长度为

零。

23、C

24>B

【解析】顺序结构、循环结构和选择结构是算法的基本结构。

25、B

26、C

27、C

【解析】aa数组被定义为字符型指针数组,有两个元素,分别存放字符串

〃abcd〃和〃ABCD〃的首地址。

28、A

29、B

30、A

【解析】fgets函数的功能是从fp所指文件中读入nl个字符放入以str为

起始地址的空间内,读取长度不超过nT,读入结束后,自动在最后添加0,选项

A正确,本题答案Ao

31、A

【解析】虽然全局变量的作用域是整个程序,但如果某个函数或语句块中又声

明了同名的局部变量,则全局变量被屏蔽,在该函数或语句块中所用到的该变

量都是那个同名的局部变量。所以,本题程序第二行定义的全局变量int

x=l;可完全忽略,故程序输出结果为2,2,故应该选择A。

32、A

33、B

34、A

35、B

36、B

37、B

【解析】因为*pl=a:所以a必然为指针类型,P2=*b,*b为指针类型,而b

必然是指向指针的指针,a和b的类型分别是int*和int**。

38、C

39、B

40、C

41、A

42、C

【解析】本题考查逗号表达式的用法。C语言中的逗号“,”也是一种运算

符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为

逗号表达式。其一般形式为“表达式1,表达式2”,其求值过程是分别求两个

表达式的值,并以表达式2的值作为整个逗号表达式的值。逗号表达式的一般

形式可以扩展为:表达式1,表达式2,表达式3,…,表达式n,其值为表达

式n的值。

43、C

【解析】switch语句用于多重选择,其参数可以是字节型、整型或字符型;而

布尔型只有两个值(True、False),一般用于if语句。

44、D

【解析】本题很简单,选项D是条件语句,不是循环语句。

45、A

【解析】本题考核指针的赋值和运算。在C语言中,指针可以进行赋值运算、

算术运算、比较运算(逻辑判断)。但是在任何条件下,两个指针都不能允许相

加。因为地址相加后可能会电内存进行不合法的访问。所以选项A的描述是错

误的。

46、B

47、D

48、B

49、A

50、A

【解析】此题考查有关标准设备的知识。在多数C语言版本中,stdio.h文件

至少定义了4种标准设备文件,可以直接引用不必含有打开操作,包括:

标准输入文件指针stdin缺省为键盘;

标准输出文件指针stdout缺省为显示器;

标准错误输出文件指针stderr缺省为显示器;

标准打印输出文件指针stdprn指打印机;

此外,还可能包括如辅助设备等标准文件指针,且多数文件指针可以被重新

定向到其他设备。

计算机c语言专升本模拟考试(二)

(总分100分,考试时长60分钟)

一、单项选择题(每小题2分,共100分)

1、下列关于指针变量的描述,不正确的是_______0

A、在没有对指针变量赋值时,指针变量的值是不确定的

B、同类指针类型可以进行相减操作

C、在使用没有赋值的指针变量时,不会出现任何问题

D、可以通过指针变量来取得它指向的变量值

2、已有定义intk=2;

int*pl,*p2;

且pl,p2均指向变量k,下面不能正确执行的赋值语句是o

A^k-*pl+*p2;

B、p2=k;

C、pl=p2;

D、k=*pl*(*p2);

3、以下叙述中正确的是o

A、对于逻辑表达式:a++||b++,设a的值为1,则求解表达式的值后,b的值

会发生改变

B、对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后,b的值

会发生改变

C^else不是一条独立的语句,它只是if语句的一部分

D、关系运算符的结果有三种:0,1,-1

4、c语言中while和do-while循环的主要区别是。

A、do-while的循环休至少无条件执行一次

B、while的循环控制条件比do-while的循环控制条件严格

C、do-while允许从外部转到循环体内

D、do-while的循环体不能是复合语句

5、以下叙述中不正确的是o

A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送

给实参

B、在C的函数中,最好使用全局变量

C、在C中,形式参数只是局限于所在函数

D、在C中,函数名的存储类别为外部

6、设有定义:doublex;则以下能够正确输入变量x值的语句是_____。

A、scanf("x=%f",&x);

B、scanf(〃x=%lf”,&x);

C、scanf("x=%f",x);

D、scanf(〃x=%LF”,&x);

7、在c语言中,引用数组元素时,其数组下标的数据类型允许是o

A、整型表达式

B、整型常量

C、整型常量或整型表达式

D、任何类型的表达式

8、若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述

是o

A、以下两处的*p含义相同,都说明给指针变量p赋值

B、在"doubler=99,*p二&r;"中,把r的地址赋值给了p所指的

存储单元

C、语句〃*p=r;”把变量r的值赋给指针变量p

D、语句〃*p=r;”取变量r的值放回r中

9、在c语言中,以作为字符串结束标志

A、'\n,

B、,,

C、'O'

D、'\(T

10、表达式0xl3Pxl7的值是o

A、0x04

B、0x13

C、0xE8

D、0x17

11>有以下程序段:charcl,c2,c3;scanf(zz%c%c%c*,&cl,&c2,&c3);若要给

cl、c2、c3分别输入字母abe,则以下对输入形式的描述正确的是o

A、字母ABC之间可以用空格分隔

B、字母ABC之间不能有分隔符

C、字母ABC之间可以用回车符分隔

D、字母ABC之间可以用Tab键分隔

12、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一

关系的是o

A、a<>0

B、!a

C、a=0

D、a

13、有以下程序

main()

(

char*p口={〃3697〃,“2584〃};

inti,j;

longnum=0;

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

(

户0;

while(p[i][j]!='\0z)

(

if((pLi][j]-'O')%2)num=10*num+p[i][j]-'O';

j+=2;

)

)

printf(〃%d\n〃,num);

)

程序执行后的输出结果是O

A、35

B、37

C、39

D、3975

14、有以下程序

main()

(

chars[]=*\nl23\V;

printf(,z%d,%d\n〃,strlen(s),sizeof(s));

)

执行后输出结果是_______o

A、赋初值的字符串有错

B、6,7

C、5,6

D、6,6

15、有以下程序

ttinclude<stdio.h>

voidf(int*p,int*q);

main()

intm=l,n=2,

f(r,&n);

printf(/z%d,%d”,m,n);

)

voidf(int*p,int*q)

(

p=p+1;

*q=*q+1;

}

程序运行后的输出结果是。

A、1,3

B、2,3

C、1,4

D、1,2

16、以下叙述中正确的是o

A、循环发生嵌套时,最多只能两层

B、三种循环for,while,do-while可以互相嵌套

C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误

D>for语句的圆括号中的表达式不能都省略掉

17、以下能正确定义一维数组的选项是0

A、intnum[]

B、intnum[N]

C^intnum[0..100]

D、intN=100;

18、执行下面程序时,若从键盘输入〃2Vcr>〃,则程序的运行结果是

ttinclude<stdio.h>

voidmain()

(

intk;

charcp;

cp=getchar();

if(cp>='0'&&cp<=,9*)k=cp」O';

elseif(cp>='a'&&cpV二'f')k=cp-,a+10;

elsek=cp-'a'+10;

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

}

A、2

B、4

C、1

D、10

19、下列对字符数组进行初始化的语句正确的是o

A^chara□二〃Hello”;

B、chara□□二

C、chara[5]=//Hello,z;

D、chara[2][5]={"Hello","World"};p

20、c语言中,switch后的括号内表达式的值可以是o

A、只能为整型

B、只能为整型,字符型,枚举型

C、只能为整型和字符型

D、任何类型

21、下面程序段的功能是

ttinclude<stdio.h>

main()

(

chars1;

sl=putc(getc(stdin),stdout);

)

A、从键盘输入一个字符给字符变量si

B、从键盘输入一个字符,然后再输出到屏幕

C、从键盘输入一个字符,然后在输出到屏幕的同时赋给变量si

D、在屏幕上输出stdout的值

22、设有条件表达式:(exp)?i++;j—,则以下表达式中与(exp)完全等价的是

________O

A、(EXP=0)

B、(EXP!=0)

C、(EXP=1)

D、(EXP!=1)

23、若调用一个函数,且此函数中没有return语句,则正确的说法是。

A、该函数没有返回值

B、该函数返回若干个系统默认值

C、能返回一个用户所希望的函数值

D、返回一个不确定的值

24、若i、j己定义成int型,则下列程序段中内循环体的总执行次数是

for(i=6;i>0;i-)for(j=0;j<4;j++)

}

A、20

B、24

C、25

D、30

25、在inta=3,*p=&a中,*p的值是________。

A、变量s的地址值

B、无意义

C、变量p的地址

D、3

26、定义单精度实型变量的正确的语句是o

A、longf;

B、doublef=15.3;

C、realf=15.3;

D、floatf=15.3;

27、若有说明语句:inti,x[3][4];则不能将x[l][1]的值赋给变量i的语句

是O

A、i=*(*(x+l)+l)

B、i=x⑴⑴

C、i=*(*(x+l))

D、i=*(x[l]+l)

28、一条计算机指令中,通常应包含o

A、数据和字符

B、操作码和操作数

C、运算符和数据

D、被运算数和结果

29、对下述程序的判断中,正确的是_______o

main()

(

char*p,s[256];

P=s;

while(strcmp(s,^theend"))

(

printf("inputthestring:");

gets(s);

while(*p)putchar(*p++);

)

A、此程序循环接收字符串并输出,直到接收到字符串"theend”为止

B、此程序循环接收字符串,接收到字符串“theend”则输出,否则程序

终止

C、此程序循环接收字符串并输出,直到接收字符串“theend”为止,但

因为代码有错误,程序不能正常工作

D、此程序循环接收字符串并将其连接在一起,直到接收字符串“the

end”为止,输出连接在一起的字符串

30、有以下程序:

^include<stdio.h>

mainO

file*fp;

inti,k=0,n=0;

fp=fopen(z,dl.dat",〃w");

for(i=l;i<4;i++)fprintf(fp,"%d",i);

fclose(fp);

fp=fopen(z,dl.dat〃,〃r");

fscanf(fp,&k,&n);

printf(/z%d%d\n〃,k,n);

fclose(fp);

执行后输出结果是o

A、12

B、1230

C、123

D、00

31、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是

A、地址传递

B、由用户指定传递方式

C、双向值传递

D、单向值传递:实参的值传给形参

32、若有以下定义:chars八092';则该语句—

A、使s的值包含1个字符

B、定义不合法,s的值不确定

C、使s的值包含4个字符

D、使s的值包含3个字符

33、以下叙述中正确的是o

A、字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组

B、charca[3][4]={〃A〃,〃BB〃,〃CCC〃};是不合语法的

C、char=是不合语法的

D、char*ca[3]={〃A〃,〃BB〃,〃CCC〃};是不合语法的

34、有以下程序strucstu

(

charname[10];

intnum;

};

voidfl(structstuc)

(

structstub={"lisiguo”,2042};

c=b;

)

voidf2(structstu*c)

(

structstub={“sundan”,2044};

*c=b;

}

main()

(

structstua={"yangsan”,2041},b={"wangyin”,2043);

fl(a);

f2(&b);

printf(,z%d%d\n〃,a.num,b.num);

)

执行后的输出结果是_______O

A、20412044

B、20412043

C、20422044

D、20422043

35、设x和y均为int型变量,且x=10,y=3,则以下语句的输出结果是

oprintfC%d,%d\n〃,x一,一y);

A、10,3

B、9,3

C、9,2

D、10,2

36、以下程序中,while循环的循环次数是一

mainO

(

inti=0;

while(i<10)

(

if(i<l)continue;

if(i==5)break;

i++;

)

A、1

B、10

C、6

D、死循环

37、设有如下程序段chars[20]="bejing",*p;p=s;则执行p=s;语句后,

以下叙述正确的是O

A、可以用*p表示s[0]

B、s数组中元素的个数和p所指字符串长度相等

C、s和p都是指针变量

D、数组s中的内容和指针变量p中的内容相等

38>有下列程序:fun(intx,inty)

(

staticintm=0,i=2;

i+=++rn;

m=ixy;

returnm;

)

main()

(

intj=l,m=l,k;

k=fun(j,m);

printf("%d,〃,k);

k=fun(j,m);

printf("%d\n',k);

)

执行后的输出结果是0

A、5.5

B、5,11

C、11,11

D、11,5

39、若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)p[i]=&a[i*4];

PP=P

则对数组元素的错误引用是。

A^pp[O][1]

B、a[10]

C、p[3][l]

D、*(*(p+2)+2)

40、下列程序的输出结果是o

structstu

(

charnum[10];

floatscore[3];

)

f

intmain()

(

structstus[3]=

{{"20021。90,95,85},{"20022”,95,80,75},{"20023”,100,95,90}};

structstu*p=s;

inti;

floatsum=0;

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

(

sum=sum+p->score[i];

J

printf(z,%6.2f”,sum);

return0;

}

A、260.00

B、270.00

C、280.00

D、285.00

41、在下列选项中,不正确的表达式是_______o

A、a>b

B、c-,++b,a+=l

C^a=c+b>n-m=k

D、p++

42、设inta=4,b;则执行b二aVVl;语句后,b的结果是—

A、8

B、2

C、16

D、10

43、以下是if语句的基本形式:if(表达式)语句其中〃表达式〃

A、必须是逻辑表达式

B、必须是关系表达式

C、必须是逻辑表达式或关系表达式

D、可以是任意合法的表达式

44、下面程序段执行后输出的结果是—

#include<stdio.h>

main()

(

inti;

for(i=l;i<8;i++)

if(i%3)

(

printf(〃*");

continue;

)

)

printf(〃#〃);

}

printf(〃\n〃);

A、*#**#**#

B、**#**#*

C>*#**#**

D、**#**

45、若有定义语句:chars[10]="1234567\0\0〃;则strlen(s)的值是

________o

A、7

B、8

C、9

D、10

46、在inta[][3]={{1,4},{3,2},{4,5,6},{0}};

中,的值是o

A、5

B、0

C、6

D、2

47、以下定义:int(*p)[4]中,标识符p是_______o

A、一个指向整型变量的指针

B、一个指针数组名

C、一个指针,它指向一个含有4个整型元素的一维数组

D、说明不合法

48、以下关于long、int和short类型数据占用内存大小的叙述中正确的是

A、均占4个字节

B、根据数据的大小来决定所占内存的字节数

C、由用户自己定义

D、由C语言编译系统决定

49、下列字符串中,不可以用作。标识符的是o

A、y_2006

B、_FEST_H

C、Return

D、switch

50、执行以下程序后,test,txt文件的内容是(若文件能正常打开)

#include<stdio.h>

main()

(

file*fp;

char*sl=〃fortran",*s2=〃basic”;

if((fp二fopen("test.txt〃,〃wb〃))==null)

printf("can'topentest.txtfile'n");

exit(1);

)

fwrite(sl,7,1,fp);

/*把从地址si开始的7个字符写到fp所指文件中*/fseek(fp,

01,seek_set);

/*文件位置指针移到文件开头*/fwrite(s2,5,1,fp);

fclose(fp);

)

A、Basican

B、BasicFortran

C、Basic

D、FortranBasic

参考答案

一、单项选择题

1、C

【解析】没有赋值的指针变量,可能指向任何地方,如果指向系统,那么使用

该指针可能导致系统崩溃。

2、B

3、C

【解析】B选项和A选项中,对于逻辑表达式,其中b的值不会因为表达式的

结果发生改变;D选项中,关系运算符的结果有真和假两种。因此C选项正确

4、A

5、B

【解析】本题也是考查C语言中函数的概念及其使用。函数调用时,值可以双

向传递,并没有限制使用全局变量还是局部变量,需要根据程序的谡辑需要讲

行选择。

6、B

7、C

【解析】在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常

量,也可以是整型表达式。

8、D

9、D

10、A

【解析】运算符"”是按位异或运算符,其运算规则是:参与运算的两个二进

制数,若相对应的二进制位上的数相同,则该位的结果为0;否则该位的结果

为1。可得:

0x13^0x17=10011^10111=0x04

11、B

【解析】在使用scanf函数时要注意,在用〃切〃格式输入字符时,分隔符(空格

符、制表符(Tab键)、回车符)和转义字符都将作为有效字符进行输入。题目中

要求以字符形式输入三个数据,空格、回车符、Tab键均会被视为有效字符赋给

对应变量,所以字母ABC之间不能有分隔符,B选项正确。

12、D

【解析】if判断条件的值只能是0或非是if(a)就是if(!0)的意思。

13、C

14、C

【解析】本题在定义字符数组时没有定义数组长度,但是给数组赋了初值,这

时初值的个数即为数组的长度,故数组长度为6(包括'\0')。字符串的长度为

有效字符的个数5。因此printf语句中输出的结果为5,6。

15、A

16、B

【解析】A选项中,循环发生嵌套时,没有规定层数;C选项中,循环嵌套时,书写

代码时没有要求必须缩进;D选项中,for语句的圆括号中的表达式都可以省略

掉。因此B选项正确。

17、B

【解析】本题的考查点是一维数组的定义。数组的常量表达式中可以包括整型

常量和符号常量,不能包括变量。也就是说,C不允许对数组的大小作动态定

义,即数组的大小不依赖于程序运行过程中变量的值,所以选项A不正确。而

选项B事先定义一个字符常量N,所以可以在数组中作常量表达式,选项B正

确。而选项C中不能用区间表示数组大小;在D中N虽然被赋为100,但N仍

然为变量,所以不对。故本题答案为B。

18、A

19、A

【解析】本题考查对字符数组的初始化。A选项中,数组a在定义后紧跟初始

化的情况下可省略数组长度,其最终数组长度由所赋字符串常量的长度给定。A

选项正确。B选项中,a是一个二维数组,二维数组也能在定义时被初始

化.如果对全部元素都赋初值,则定义数组时第一维的大小可以忽略,但第二

维的大小不能省略。故B选项错误。C选项和D选项都忽略了字符串的大小要

比字符串中的字符数多1这一点,造成了数组的越界。

20、D

21、C

22、B

23、D

24、B

25、A

【解析】木P表示指制P指向的内容,而语句水p二&a将a的地址传递给*p。

26、D

27、C

【解析】本题考查对数组元素的相关操作。

题目中给出的是一个二维数组x[3][4],数组名为x,取数组第一行第一列元

素的几种方法分别是*(x[l]+l)、x[l][l]s*(*(x+l)+l)、*(x+l)⑴等。

28、B

【解析】一条指令必须包括操作码和地址码两部分。操作码指出该指令完成操

作的类型,地址码指出数据和操作结果存放的位置,也称操作数。

29、C

30、B

31、D

32、B

33、A

【解析】本题考查字符串数组的相关知识,选项BCD都是合语法的。

34、A

35、D

36、D

37、A

38、B

39、C

【解析】考查指向数组的指针。[解题要点]本题综合考查一维数组和多维数组

指针变量的表示方法。在C语言中,引用数组元素的方法有两种,即:下标法

和指针法。下标法如a[i]形式;指针法如*(a+i)或*(p+l)°其中a是数组名,

P是指向数组的指针变量,其初值p=a0再如*(*(p+2)+2)是a[2][2]的值,注

意语句中指针型数组的书写格式,不能写成”(*数组名)[长度]”,因为这是定

义指向含有“长度”个元素的一维数组的指针变量。例如有定义语句"inta,

b,c,c,*P[3]={&a,&b,&c};",它定义了一个名为p的指针型数组,其3

个元素p[0],P[1],p[2]分别指向B个整型变量a,b,Co[考点链接]数组

元素的引用方法。

40、B

41、C

42>A

【解析】本题主要考查的知识点为位移位运算符。

[要点透析]“VV”为左移运算符,移位时将数据看成二进制数,题中表达式

表示将a左移1位,0100左移一位后所对应的十进制数是8。

43、D

44、B

【解析】#include<stdio.h>

main(){

inti;for(i=l;iV8;i++)/*循环条件为iV8,步进值为1*/{{

if(i%3){

printf("*〃);continue;)}/*如果能被3整除打印输出〃*〃,并跳过后面的

语句直接执行下次徨*/printfW;/*如果不能被3整除打印输出〃#〃*/}

printf("\n〃);}

45、B

【解析】C语言中strlenO函数的功能是返回字符串的长度,其中‘\0'是一个

转义字符,它占存储空间,但不计入串的长度。所以选项B正确。

46、A

47、C

【解析】本题中相当于定义了一个二维数组intp[][4],标识符p是一个指

针,指向一个含有4个元素的一维数组。

48、D

49、D

【解析】在C中,变量标识符必须是以大小写字母、下画线开始,由数字或者

字母下画线等组成的一个字符串,其中C++关键字不能作为标识符,不能包含

-、+、*、/等运算符号。C++变量区分大小写,所以Retrun不是关键字,而是

一个合法变量;swith为关键字,所以不能定义为标示符。

50、A

计算机c语言专升本模拟考试(三)

(总分100分,考试时长60分钟)

一、单项选择题(每小题2分,共100分)

1、以下答案中不是c语言最基本数据类型的是—

A、逻辑型

B、整型

C、字符型

D、指针型

2、下列选项中,合法的c语言关键字是o

A、default

B、get

C^integer

D、VAR

3、分析下列程序:

#include<stdio.h>

main()

(

int*pl,*p2,*p;

inta=6,b=9;

pl=&a;

p2=&b;

if(a<b)

(

p二pl;

pl=p2;

p2=p;

)

printf("%d,%d”,*pl,*p2);

printf("%d,a,b);

}

程序的输出结果为O

A、9,66,9

B、6,99,6

C、6,96,9

D、9,69,6

4、下面程序的运行结果是o

main()

(

intcl=2,c2=0;

while(!c2-)printf(,'%d%d,',cl—,c2);

)

A、陷入死循环

B、不输出任何内容

C、输出2-1

D、输出20

5、设函数fun的定义形式为_______。

voidfun(charch,floatx)

则以下对函数fun的调用语句中,正确的是o

A、fun("abc”,3.0);

t=fun(,D',16.5);

C、funC65\2.8);

D、fun(32,32);

6、doublex;scanf&x);不可以赋值给x变量的常量是

A、123

B、100000

C、A'

D、“abc"

7、具有相同类型的指针变量p与数组a,不能进行的操作是o

A、p=a;

B、*p=a[0];

C、p—[0];

D、p=&a;

8、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是

A、大写字母

B、下划线

C、数字字符

D、连接符

9、以下选项中合法的c语言字符常量是一

A、''t'

B、〃A〃

C、67

D、A

10、设intx=l;a=9,b=6,c=9,d=8;执行语句:if(a>b)if(c>b)if(b>

d)x=2;elsex=6;后x的值是。

A、1

B、2

C、6

D、不确定

11、语句int(*ptr)();

的含义是。

Asptr是指向一维数组的指针变量

B、ptr是指向int型数据的指针变量

C^ptr是指向函数的指针,该函数返回一个int型数据

D、ptr是一个函数名,该函数的返回值是指向int型数据的指针

12、当代计算机之所以能自动地连续进行数据处理,主要是由于

A、采用了开关电路

B、采用了半导体器件

C、具有存储程序的功能

D、采用了二进制数

13、对长度为8的数组进行快速排序,最多需要的比较次数为o

A、8

B、28

C、56

D、64

14、两次运行下面的程序,如果从键盘上分别输入3和2,则输出结果是

_____________________O

#include<stdio.h>

mainO{

intx;

scanf&x);

if(x++>2)printfx);

elseprintf(〃%d\n〃,x-);

)

A、4和3

B、4和2

C、4和1

D、3和2

15、有以下程序:

main()

(

intx=102,y=012;

printf("%2d,%2d\n”,x,y);

)

执行后输出结果是o

A、10,01

B、02,12

C、102,10

D、02,10

16、用在switch语句的关键字没有哪个?

A、continue

B、break

C、default

D、if

17

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论