补充函数部分答案.docx

上传人:b****8 文档编号:29869054 上传时间:2023-08-03 格式:DOCX 页数:30 大小:26.55KB
下载 相关 举报
补充函数部分答案.docx_第1页
第1页 / 共30页
补充函数部分答案.docx_第2页
第2页 / 共30页
补充函数部分答案.docx_第3页
第3页 / 共30页
补充函数部分答案.docx_第4页
第4页 / 共30页
补充函数部分答案.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

补充函数部分答案.docx

《补充函数部分答案.docx》由会员分享,可在线阅读,更多相关《补充函数部分答案.docx(30页珍藏版)》请在冰豆网上搜索。

补充函数部分答案.docx

补充函数部分答案

补充函数部分答案

C程序设计题库

一、单项选择题

1.基础知识

1、以下说法中正确的是()

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

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

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

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

答案:

C

2、下列字符序列中,可用作C标识符的一组字符序列是()。

A)S.b,sum,average,_aboveB)class,day,lotus_1,2day

C)#md,&12x,month,student_n!

D)D56,r_1_2,name,_st_1

答案:

D

3、以下标识符中,不能作为合法的C用户定义标识符的是()。

A)a3_b3B)voidC)_123D)IF

答案:

B

4、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)

A、6.500000B、6C、5.500000D、6.000000

5、以下的选择中,正确的赋值语句是()。

A)a=1,b=2B)j++C)a=b=5;D)y=int(x)

答案:

C

6、在C语言中,能代表逻辑值“真”的是()。

A)TrueB)大于0的数C)非0整数D)非0的数

答案:

D

7、下列程序的输出结果是()。

main()

{charc1=97,c2=98;

printf("%d%c",c1,c2);

}

A)9798B)97bC)a98D)ab

答案:

B

8、执行下列语句后变量x和y的值是()。

y=10;x=y++;

A)x=10,y=10B)x=11,y=11C)x=10,y=11D)x=11,y=10

答案:

C

9、设a=12,且a定义为整型变量。

执行语句a+=a-=a*=a;后a的值为()。

A)12B)144C)0D)132

答案:

C

10、已知year为整型变量,不能使表达式(year%4==0&&year%100!

=0)||year%400==0的值为“真”的数据是()。

A)1990B)1992C)1996D)2000

答案:

A

11、下列程序的输出结果是()。

main()

{inta=7,b=5;

printf("%d\n",b=b/a);

}

A)0B)5C)1D)不确定值

答案:

A

12.以下关于运算符优先顺序的描述中正确的是()。

A)关系运算符<算术运算符<赋值运算符<逻辑运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑运算符

答案:

C

13、已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()

A、scanf("%2d%2d%2d",&i,&j,&k);

B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);

D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);

答案:

C

14有以下程序

#include

main()

{charc1,c2;

c1=’A’+’8’-‘4’;

c2=’A’+’8’-‘5’;

printf(“%c,%d\n”,c1,c2);

}

已知字母A的ASCII码为65,程序运行后的输出结果是()

(A)E,68(B)D,69(C)E,D(D)输出无定值

答案:

A

15、若有以下类型说明语句:

charw;intx;floaty;doublez;则表达式w*x+z-y的结果类型是()

A、floatB、charC、intD、double

答案:

D

16、关于局部变量,下列说法正确的是()。

A、定义该变量的程序文件中的函数都可以访问。

B、定义该变量的函数中的定义处以下的任何语句都可以访问。

C、定义该变量的复合语句的定义处以下的任何语句都可以访问。

D、局部变量可用于函数之间传递数据。

答案:

D

17.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

()

A)10<回车>B)10.0,22.0,33.0<回车>

22<回车>

33<回车>

C)10.0<回车>D)1022<回车>

22.033.0<回车>33<回车>

答案:

B

2.三大结构

(1)下列程序的运行结果是()

#include

voidmain()

{

charc1='6',c2='0';

printf("%c,%c,%d\n",c1,c2,c1-c2);

}

A.因程序格式不合法,提示出错信息B.6,0,6

C.6,0,7D.6,0,5

(2)下列程序的运行结果是()

#include

voidmain()

{

doublex=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);

}

A.0.000000B.0.250000C.0.500000D.1.000000

(3)下列程序的运行结果是()

#include

voidmain()

{

inta=2,b=-1,c=2;

if(b<0)c=0;

elsec=c+1;

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

}

A.0B.1C.2D.有语法错误

(4)下列程序的运行结果是()

#include

voidmain()

{

inta=100;

if(a>0)printf("%d\n",a>100);

elseprintf("%d\n",a<=100);

}

A.0B.1C.100D.-1

(5)下列程序的运行结果是()

#include

voidmain()

{

intx=1,a=0,b=0;

switch(x)

{

case0:

b=b+1;

case1:

a=a+1;

case2:

a=a+1;b=b+1;

}

printf("a=%d,b=%d\n",a,b);

}

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

3.函数

1.以下正确的函数定义形式是()。

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(intx,inty);

D.doublefun(intx,y)

答案:

A

2.C语言中,简单变量作为实参时,它和对应形参之间的数据传递方式是()。

A.地址传递B.单向值传递

C.由实参传递给形参,再由形参传递给实参D.由用户指定传递方式

答案:

B

3.在C语言程序中以下正确的描述是()。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

答案:

B

4.若数组名作为函数调用的参数,则传递给形参的是()。

A.数组的首地址B.数组第一个元素的值

C.数组中全部元素的值D.数组元素的个数

答案:

A

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

A.没有返回值B.返回若干个系统默认值

C.能返回一个用户所希望的函数值D.返回一个不确定的值

答案:

D

6.在C语言中,以下说法正确的是()。

A.实参和与其对应的形参各占用独立的存储单元

B.实参和与其对应的形参共占用一个存储单元

C.只有当实参与其对应的形参同名时才共占用存储单元

D.形参是虚拟的,不占用存储单元

答案:

A

7.以下正确的说法是()。

A.用户若需要调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义

C.系统不允许用户重新定义标准库函数

D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

答案:

B

8.以下不正确的说法是()。

A.实参可以是常量,变量或表达式

B.形参可以是常量,变量或表达式

C.实参可以为任意类型

D.如果形参和实参的类型不一致,以形参类型为准

答案:

B

9.C语言规定,函数返回值的类型是由()决定的。

A.return语句中的表达式类型

B.调用该函数时的主调函数类型

C.调用该函数时由系统临时

D.在定义函数时所指定的函数类型

答案:

D

10.以下正确的函数定义是()。

A.doublefun(intx,inty)B.doublefun(intx,y)

{z=x+y;returnz;}{intz;returnz}

C.fun(x,y)D.doublefun(intx,inty)

{intx,y;doublez;{doublez;

z=x+yreturnz}z=x+y;returnz}

答案:

D

4.数组

1.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)

A整型常量B整型表达式

C整型常量或整型表达式D任何类型的表达式

2.对以下说明语句的正确理解是(B)

inta[10]={6,7,8,9,10};

A将5个初值依次赋给a[1]至a[5]

B将5个初值依次赋给a[0]至a[4]

C将5个初值依次赋给a[6]至a[10]

D因为数组长度与数组个数不相同,所以此语句不正确

3.若有说明:

inta[3][4];则对a数组元素的非法引用是(D)

Aa[0][2*1]Ba[1][3]Ca[4-2][0]Da[0][4]

4.若:

inta[3][4]={0};则下面正确的叙述是(D)

A只有元素a[0][0]可得到初值0

B此说明语句不正确

C数组a中各元素都可得到初值,但其值不一定为0

D数组a中每个元素均可得到初值0

5.已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是(C)

A.数组a和b的长度相同 

B.a数组长度小于b数组长度

C.a数组长度大于b数组长度

D.上述说法都不对

6.若有定义语句:

chars[10]="1234567\0\0";,则strlen(s)的值是(A)。

A.7B.8C.9D.10

7.如下代码:

intk,a[3][3]={1,2,3,4,5,6,7,8,9};

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

printf(“%d”,a[k][2-k]);

输出结果为(A)

A357B369C159D147

8.判断字符串a和b是否相等,应当使用(D)

Aif(a==b)Bif(a=b)Cif(strcpy(a,b))Dif(strcmp(a,b)==0)

9.有两个字符数组a、b,则以下正确的输入语句是(B)

Agets(a,b)Bscanf(“%s%s”,a,b);

Cscanf(“%s%s”,&a,&b);Dgets(“a”),gets(“b”);

10.下述描述中错误的是(C)

A字符数组可以存放字符串

B字符数组的字符串可以整体输入、输出

C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D不可以用关系运算符对字符数组中的字符串进行比较

5.结构体

1.在说明一个结构体变量时系统分配给它的存储空间是(D)

A)该结构体中第一个成员所需存储空间

B)该结构体中最后一个成员所需存储空间

C)该结构体中占用最大存储空间的成员所需存储空间

D)该结构体中所有成员所需存储空间的总和

2.以下对结构体类型变量的定义中不正确的是(D)

A)#defineSTUstructstudentB)structstudent

STU{intnum;

{intnum;floatage;

floatage;}std1;};std1;

C)structD)struct

{intnum;{intnum;

floatage;floatage;}student;

}std1;structstudentstd1;

3.设有以下说明语句

structstu

{inta;floatb;}stutype;

则下面的叙述不正确的是(C)。

A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名

4.定义以下结构体数组

structc

{intx;

inty;

}s[2]={1,3,2,7};

语句printf("%d",s[0].x*s[1].x)的输出结果为(C)

A)14B)6C)2D)21

5.根据下面的定义,能输出Mary的语句是(B)

structperson

{

charname[9];

intage;

};

structpersonclass[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A)printf("%s\n",class[1].name);

B)printf("%s\n",class[2].name);

C)printf("%s\n",class[3].name);

D)printf("%s\n",class[0].name);

6.定义以下结构体数组

struct

{

intnum;

charname[10];

}x[3]={1,"china",2,"USA",3,"England"};

语句printf("\n%d,%s",x[1].num,x[2].name)的输出结果为(D)

A)2,USA

B)3,England

C)1,china

D)2,England

7.执行下面的程序后,输出的结果是(B)

structabc{inta,b,c;};

voidmain()

{structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

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

}

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

6.指针

1.有以下程序

#include

main()

{intm=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf(“%d,%d,%d,%d\n”,m,n,*p,*q);

}

程序运行后的输出结果是(B)

A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2

2.以下选项中正确的语句组是(d)

A)chars[];s=”BOOK!

”;B)char*s;s={”BOOK!

”};

C)chars[10];s=”BOOK!

”;D)char*s;s=”BOOK!

”;

3.以下选项中正确的语句组是

若有以下定义

intx[10],*pt=x;

则对x数组元素的正确应用是(C)

A)*&x[10]B)*(x+10)C)*(pt+3)D)pt+3

4.若有定义语句:

doublex,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是(C)

A)scanf(“%f%f”,x,y);B)scanf(“%f%f”,&x,&y);

C)scanf(“%lf%le”,px,py);D)scanf(“%lf%lf”,x,y);

7.文件

(1)下列关于C语言数据文件的叙述中正确的是(D)

   A)文件由ASCII码字符序列组成,C语言只能读写文本文件

   B)文件由二进制数据序列组成,C语言只能读写二进制文件

   C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

   D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

(2)有如下程序

  #include

  main()

  {FILE *fp1;

    fp1=fopen("f1.txt","w");

    fprintf(fp1,"abc");

    fclose(fp1);

  }

若文本文件f1.txt中原有内容为:

good,则运行以上程序后文件f1.txt中的内容为(C)   A)goodabc     B)abcd      C)abc      D)abcgood

(3)以下叙述中错误的是(D)

   A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以

   B)在程序结束时,应当用fclose函数关闭已打开的文件

   C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

   D)不可以用FILE定义指向二进制文件的文件指针

(4)若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是(B)

   A)fopen("A:

\user\abc.txt","r")      B)fopen("A:

\\user\\abc.txt","r+")

   C)fopen("A:

\user\abc.txt","rb")     C)fopen("A:

\\user\\abc.txt","w")

(5)

二、读程序写结果

2.三大结构

3.函数

1.下列程序的执行结果为()。

floatf1(floatx)

{

intk=2;

k=k*x;

returnk;

}

voidmain()

{

floatb=4.3;

printf("%.1f",f1(b));

}

答案:

8.6

2.下面程序的输出是()。

#include

voidmain()

{

charss[10]="12345";

strcat(ss,"6789");

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

}

答案:

123456789

3.程序执行时,若输入10,程序的输出结果是()。

intfun(intn)

{

if(n==1)

return1;

else

return(n+fun(n-1));

}

main()

{

intx,y;

scanf("%d",&x);

y=fun(x);

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

}

答案:

55

4.下面程序的输出是()。

#include

voidfun(int*s,intm,intn)

{

intt;

while(m

{

t=s[m];

s[m]=s[n];

s[n]=t;

m++;

n--;

}

}

voidmain()

{

inta[5]={1,2,3,4,5},k;

fun(a,0,4);

for(k=0;k<5;k++)

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

}

答案:

54321

5.运行程序时,若从键盘输入asdafaaz67(回车),分析以下程序的输出结果()。

#include

intfun(char*str)

{

inti,j=0;

for(i=0;str[i]!

=’\0’;i++)

if(str[i]!

=’’)

str[j++]=str[i];

str[j]=’\0’;

}

voidmain()

{

charstr[81];

intn;

printf("Inputastring:

");

gets(str);

fun(str);

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

}

答案:

asdafaaz67

6.程序运行后的输出结果是(64)。

#include

intfun()

{

staticintx=1;

x*=2;

returnx;

}

voidmain()

{

inti,s=1;

for(i=1;i<=3;i++)s*=fun();

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

}

7.以下程序的输出结果是(4)

#include

intm=13;

intfun(intx,inty)

{

intm=2;

return(x*y-m);

}

main()

{

inta=7,b=6;

printf("%d",fun(a,b)/m);

}

8.以下程序输出结果为(6)

#include

fun(intx)

{

staticinta=3;

a+=x;

return(a);

}

main()

{

intk=2,m=1,n;

n=fun(k);

n=fun(m);

printf("%d",n);

}

 

4.数组

1.下面程序的运行结果是_____________

voidmain()

{

inta[6][6],i,j;

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

for(j=

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

当前位置:首页 > 小学教育 > 其它课程

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

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