高级语言程序设计C语音.docx

上传人:b****3 文档编号:2125801 上传时间:2022-10-27 格式:DOCX 页数:14 大小:22.51KB
下载 相关 举报
高级语言程序设计C语音.docx_第1页
第1页 / 共14页
高级语言程序设计C语音.docx_第2页
第2页 / 共14页
高级语言程序设计C语音.docx_第3页
第3页 / 共14页
高级语言程序设计C语音.docx_第4页
第4页 / 共14页
高级语言程序设计C语音.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

高级语言程序设计C语音.docx

《高级语言程序设计C语音.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计C语音.docx(14页珍藏版)》请在冰豆网上搜索。

高级语言程序设计C语音.docx

高级语言程序设计C语音

C语言程序设计模拟试题三

一、选择题(本题共20道小题,每题2分,共40分。

1.若有说明,double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是

A)*p=&a;scanf("%lf",p);

B)p=(double*)malloc(8);scanf("%f",p);

C)p=&a;scanf("%lf",a);

D)p=&a;scanf("%le",p);

答案:

D

解析:

选项A:

此项中*p是指针指向单元的值引用,&a是a单元的地址,故此项错误。

选项B:

scanf中的格式控制符对双精度变量而言是"%lf",而非选"%f",此项错误。

选项c:

scanf函数的地址表列中不能写成a,此项错误。

选项D:

指针p首先指向a单元,再通过键盘以科学计数格式赋值浮点数,此项正确。

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

intmain()

{intx;

scanf("%d",&x);

if(x++>5)printf("%d",x);

elseprintf("%d\n",x--);}

A)7和5B)6和3C)7和4D)6和4

答案:

A

解析:

当输入为6时,即x=6,∵++在x后,∴先取x=6与5比较,再取x=6+1=7,6>5成立,输出x=7;同理,当输入为4时,输出x=5。

本题考察++,--的优先级与结合性。

3.下面程序的输出是

A)xyzabcABCB)zabcABCC)yzabcABCD)xyabcABC

#include

#include

intmain()

{

char*p1="abc",*p2="ABC",str[50]="xyz";

strcpy(str+2,strcat(p1,p2));

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

}

答案:

D

解析:

strcat将p2字符串连在p1字符串尾,产生新字符串:

abcABC,在讲连接后的值赋在str[2]处,即a将z覆盖,产生新的字符组元素:

xyabcABC。

本题考察字符串函数应用.

4.若有以下说明:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

charc='a',d,g;

则数值为4的表达式是

A)a[g-c]B)a[4]

C)a['d'-'c']D)a['d'-c]

答案:

D

解析:

数值为4的元素的位置在数组内下标为3,∵c=a,d的减去a的得3.

5.以下叙述中不正确的是

A)在不同的函数中可以使用相同名字的变量

B)函数中的形式参数是局部变量

C)在一个函数内定义的变量只在本函数范围内有效

D)在一个函数内的复合语句中定义的变量

答案:

D

解析:

c语言在函数中说明的变量为局部变量,只在函数内起作用,不会影响到其他函数。

在不同函数中使用相同的变量名不代表是同一变量,A)正确;在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确;在一个函数中定义的变量是这个函数的局部变量,所以只在函数内部起作用,C)正确;复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)错误。

可参考《c语言程序设计新视角》函数变量的有效范围问题.

6.请选出以下程序段的输出结果

#include

#defineMIN(x,y)(x)<(y)?

(x):

(y)

intmain()

{

inti,j,k;

i=10;j=15;

k=10*MIN(i,j);

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

return0;

}

A)15B)100C)10D)150

答案:

A

解析:

执行MIN(i,j),∵i=10

7.在C语言中,用于实现打开文件的库函数是()。

A)fclose()    B)fopen()    C)fseek()    D)rewind()

答案:

B

解析:

本题考查c语言文件操作函数,答案为B

8.设有以下语句:

structst{intn;structst*next;};

staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;

p=&a[0];

则表达式_____的值是6。

A)p++->nB)p->n++C)(*p).n++D)++p->n

答案:

D

解析:

a是先取a[0]的值5然后p自增指向a[1]的n值为7

b是直接取a[0]的5,未经过++运算

c也是直接取a[0]的5,未经过++运算

d是先取a[0]的5再自增为6 

9.C语言中形参的缺省存储类别是

A)自动(auto)B)静态(static)

C)寄存器(register)D)外部(extern)

答案:

A

解析:

在函数体内声明的变量,在默认情况都是auto型。

参考查询《c语言程序设计新视角》变量存储类别。

10.执行下面的程序段后,变量k中的值为

intk=3,s[2];

s[0]=k;k=s[1]*10;

A)不定值B)33C)30D)10

答案:

A

解析:

如题,s[0]=k=3,而s[1]并未初始化,则其内存储的是系统随机给的整数值,通常是负数,因而k也为不定值。

11.已知字母A的ASCII码为十进制的65,下面程序的输出是

intmain()

{

charch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

return0;

}

A)67,DB)B,C

C)C,DD)不确定的值

答案:

A

解析:

ch1的ASCⅡ值为65+2对应到字母C,输出格式中ch1以整数形式输出67;ch2的ASCⅡ值为65+3对应到字母D,输出格式中ch2以字符形式输出D.可以参考《c语言程序设计新视角》输出格式说明符。

12.语句:

printf("%d\n",12&012);的输出结果是

A)12B)8C)6D)012

答案:

B

解析:

012表示八进制,,二进制表示001010,所以12&012=1100&001010(二进制)=1000(二进制)=8.

13.以下说法中正确的是

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用的函数必须在intmain()函数中定义

C)C语言程序总是从intmain()函数开始执行

D)C语言程序中的intmain()函数必须放在程序的开始部分

答案:

C

解析:

c语言程序总是main()函数开始执行,其他子函数通过主函数调用而执行。

可以参考《c语言程序设计新视角》中函数部分章节。

14.以下程序运行后,输出结果是

intmain()

{

char*s="abcde";

s+=2;

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

return0;

}

A)cdeB)字符c的ASCII码值C)字符c的地址D)出错

答案:

C

解析:

s为指针变量,其值为地址,为”abcde”字符串的首地址即a的地址,s+=2等价于s=s+2,即s的值为字符串中a向后移两位对应元素c的地址。

15.设x和y均为int型变量,则执行下的循环后,y值为

for(y=1,x=1;y<=50;y++)

{

if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

}

A)2B)4C)6D)8

答案:

C

解析:

①x=1不满足x>=10,∴继续向下执行,x%2=1,满足第二个if,∴x=x+5=6,y=2进行第二次循环;

②x=6不满足x>=10,∴继续向下执行,x%2=0,不满足第二个if,继续执行x=3,y=3进行第三次循环;

当进行到第六次循环时,x=11满足x>=10跳出循环,此时y=6。

16.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为

if(a

if(c

elseif(a

if(b

elsex=3;

elsex=6;

elsex=7;

A)1B)2C)3D)6

答案:

B

解析:

如果if-else语句掌握熟练可直接分析程序做题目。

否则,先将if和else配对(题目上红色数字即为配对情况)

如果a

17.若b是int型变量,则表达式b=25/3%3的值为

A)7B)8C)6D)2

答案:

D

解析:

运算级/与%自左向右,25/3=8,8%3=2,可以参考《c语言程序设计新视角》运算符相关知识。

18.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为:

A)0-255

B)1-32767

C)0-65535

D)0-2147483647

答案:

C

解析:

c语言中int取值范围为-32768到32767之间,unsignedint为无符号整型,取值无赋值,因而为0到32767.

19.下面的程序

intmain()

{

intx=3,y=0,z=0;

if(x=y+z)printf("****");

elseprintf("####");

return0;

}

A)有语法错误不能通过编译

B)输出****。

C)可以通过编译,但是不能通过连接,因而不能运行。

D)输出####。

答案:

D

解析:

由题,x=3不等于y+z=0所以执行else语句,输出####。

20.若有以下函数调用语句:

fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是

A)3B)4C)5D)6

答案:

A

解析:

本题考查子函数中形参个数,因为fun()函数默认返回一个数,所以在最外层的fun()函数中有三个形式参数。

本题需注意函数的套用,相关知识点可以参考《c语言程序设计新视角》中函数部分。

二、填空题(本大题共7小题,每题2分,共14分。

1.若有定义:

doublex[3][5],则x数组中行下标的下限为_________,列下标的下限为__________。

答案:

2,4

解析:

数组下标从0开使,因而下限为数组长度-1.

2.设有说明语句"inta[3][4]={{1,2},{3,4,5},{6,7,8}};"则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。

答案:

0,8

解析:

a[0]={1,2},a[0][2]初始化但未赋值为0,a[2]={6,7,8},a[2][2]=8,注意数组下标是从0开始的。

3.表达式7/2的结果是____________。

表达式7%2的结果是____________。

答案;3,1

解析:

/为除后取整符号,%为除后取余符号。

4.若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是____________。

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

当前位置:首页 > 解决方案 > 商业计划

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

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