C语言B卷.docx

上传人:b****9 文档编号:25955467 上传时间:2023-06-16 格式:DOCX 页数:18 大小:26.69KB
下载 相关 举报
C语言B卷.docx_第1页
第1页 / 共18页
C语言B卷.docx_第2页
第2页 / 共18页
C语言B卷.docx_第3页
第3页 / 共18页
C语言B卷.docx_第4页
第4页 / 共18页
C语言B卷.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言B卷.docx

《C语言B卷.docx》由会员分享,可在线阅读,更多相关《C语言B卷.docx(18页珍藏版)》请在冰豆网上搜索。

C语言B卷.docx

C语言B卷

试卷

编号

中南民族大学试卷

—————————————————————————————————

试卷名称:

《C语言程序设计》考试试卷

(B卷共10页)

学号姓名分数

一、选择题(每小题2分,共50分)

下列各题A、B、C、D四个选项中,只有一个选项是正确的。

请将正确选项填在答题纸相应位置上,答在试卷上不得分。

1、设有如下程序段的输出结果是

intx=32767,y;

y=x+1;

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

A)运行时产生出错信息B)-32768C)32768D)32767

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

a=1;b=2;c=2;

while(a

printf("%d,%d,%d",a,b,c);

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

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

#include

voidmain(void)

{inti=0;

while(i<10){

if(i<1)continue;

if(i==5)break;

i++;

}

}

A)1B)6C)死循环,不能确定次数D)10

4、有以下函数定义:

voidfun(intn,doublex){……}

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是

A)fun(inty,doublem);B)fun(x,n);

C)k=fun(10,12.5);D)voidfun(n,x);

5、能正确定义一维数组的选项是

A)intnum[];B)#defineN100intnum[N];

C)intnum[0..100];D)intN=100;intnum[N];

6、有以下程序

main()

{intx=102,y=012;

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

}

执行后输出结果是

A)10,01B002,12C)102,10D)02,10

7、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:

printf("%d",(x,y));

则其输出结果是

A)200B)100C)100200D)输出格式符不够,输出不确定的值

8、定义如下变量和数组:

inti;

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

则下面语句的输出结果是

for(i=0;i<3;i++)printf("%d",x[i][2-1]);

A)159B)147C)258D)369

9、有以下程序

main()

{chark;inti;

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

{scanf(“%c”,&k);

switch(k)

{case‘0’:

printf(“another\n”);

case‘1’:

printf(“number\n”);

}

}

}

程序运行时,从键盘输入:

01<回车>,程序执行后的输出结果是

A)anotherB)anotherC)anotherD)number

numbernumbernumbernumber

anothernumber

10、有以下程序

main()

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

while(z-->0&&++x<5)y=y-1;

printf(“%d,%d,%d\n”,x,y,z);

}程序执行后的输出结果是()

A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5

11、有以下程序

main()

{inti,s=0;

for(i=1;i<10;i+=2)s+=i+1;

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

}

程序执行后的输出结果是

A)自然数1~9的累加和B)自然数1~10的累加和

C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和

12、能正确表示a和b同时为正或同时为负的逻辑表达式是

A)(a>=0‖b>=0)&&(a<0‖b<0)

B)(a>=0&&b>=0)&&(a<0&&b<0)

C)(a+b>0)&&(a+b<=0)

D)a*b>0

13、若程序中定义了以下函数

doublemyadd(doublea,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行申明,以下选项中错误的说明是

A)doublemyadd(doublea,b);B)doublemyadd(double,double);

C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,doubley);

14、下面程序的输出是

main()

{intx=10,y=3;

printf("%d\n",y=x/y);}

A)0B)1C)3D)不确定的值

15、以下不能正确定义二维数组的选项是

A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};

C)inta[2][]={{1,2},{3,4}};D)inta[2][2]={{1},2,3};

16、设a=1,b=2,c=3,d=4,则表达式:

a

a:

c

a:

d的结果为

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

17、以下循环体的执行次数是

main()

{inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);

}

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

18、有以下程序

#definef(x)x*x

main()

{inti;

i=f(4+4)/f(2+2);

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

}

执行后输出结果是

A)28B)22C)16D)4

19、在C语言中,合法的字符常量是

A)’\084’B)’\x43’C)’ah’D”\0”

20、设a为整形变量,不能正确表达数学关系:

10

A)10

C)a>10&&a<15D)!

(a<=10)&&!

(a>=15)

21、下列为合法的用户标识符为

A)_98B)P#dC)a*D)void

22、设inta=12,则执行完语句a+=a-=a*a后,a的值是

A)522B)264C)144D)-264

23、有以下程序

voidf(intv,int w)

{ intt;

  t=v;v=w;w=t;

}

main()

{ intx=1,y=3,z=2;

  if(x>y)      f(x,y);

  elseif(y>z)f(y,z);

      else     f(x,z);

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

}  

执行后输出结果是

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

24、下面有关for循环的正确描述是

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

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

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

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

25、不能正确表示ab除以cd的C语言表达式是

A)a*b/c*dB)a/(c*d)*bC)a*b/c/dD)a*b/(c*d)

二、填空题(每小题3分,共30分)

请将每一个空的正确答案写在答题纸1至10序号的右边,答在试卷上不得分。

1、以下定义了一个共用体变量stu,若在内存中:

一个字符占1个字节,一个整数占2个字节,一个实数占4个字节。

则变量stu在内存中所占的字节数是【1】

union

{

charc;

inti;

floatf;

}stu;

2、定义int(*p)();的含义是【2】

3、有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

执行后输出结果是【3】。

4、有以下程序

main()

{intn=0,m=1,x=2;

if(!

n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

执行后输出结果是【4】。

5、函数fun的功能是计算

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:

m=

+

实现这一计算的函数调用语句为【5】。

6、以下sum函数的功能是计算下列级数之和。

S=1+x+2x/2!

+3x/3!

+........+nx/n!

请给函数中的各变量正确赋初值。

doublesum(doublex,intn)

{inti;doublea,b,s;

a=1.0;b=1.0;

【6】

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

{a=a*x;b=b*i;s=s+a/b;}

returns;

}

7、3|5的结果是【7】

8、有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是【8】

9、标识枚举类型的关键字是【9】

10、下面程序的功能是:

输出100以内能被3整除且个位数为5的所有整数,请填空。

#include

voidmain(void)

{

inti,j;

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

{

j=i*10+5;

if(【10】)continue;

printf("%5d",j);

}

}

三、程序设计题(每题10分共20分)

1、从键盘输入x的值,计算并打印下列分段函数的值。

0(x<60)

1(60<=x<70)

y=2(70<=x<80)

3(80<=x<90)

4(x>=90)

2、编程求n!

并将其结果进行输出(要求n从键盘输入)

 

学号姓名得分

试卷名称:

《C语言程序设计》考试试卷

(A卷共10页)

学号姓名分数

一、选择题(每小题2分,共50分)

下列各题A、B、C、D四个选项中,只有一个选项是正确的。

请将正确选项填在答题纸相应位置上,答在试卷上不得分。

1、请读程序片段:

inti=65536;printf("%d\n",i);

上面程序片段的输出结果是

A)65536B)0C)有语法错误,无输出结果D)-1

2、设inta=12,则执行完语句a+=a-=a*a后,a的值是

A)522B)264C)144D)-264

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

a=1;b=2;c=2;

while(a

printf("%d,%d,%d",a,b,c);

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

4、有以下程序

main()

{intk=4,n;

for(n=0;n

{

if(n%3!

=0)continue;

k--;}

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

}

程序运行后的输出结果是

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

5、以下数组定义中不正确的是

A)inta[2][3];B)intb[][3]={1,2,3};

C)intc[100][100]={0};

D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

6、标识枚举类型的关键字是

A)structB)unionC)enumD)typedef

7、若有如下程序段,其中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;

8、以下程序执行后sum的值是

main()

{inti,sum;

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

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

}

A)15B)14C)不确定D)0

9、以下不能定义为用户标识符的是

A)scanfB)VoidC)_3com_D)int

10、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

A)函数调用可以作为独立的语句存在

B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

11、有以下函数定义:

voidfun(intn,doublex){……}

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是

A)fun(inty,doublem);B)k=fun(10,12.5);

C)fun(x,n);D)voidfun(n,x);

12、以下程序的输出结果是

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printf("%d",a);}

A)31B)0C)29D)无定值

13、已定义c为字符型变量,则下列语句中正确的是

A)c='97';B)c="97";C)c=97;D)c="a";

14、以下叙述中正确的是

A)C程序中注释部分可以出现在程序中任意合适的地方

B)花括号"{"和"}"只能作为函数体的定界符

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名

D)分号是C语句之间的分隔符,不是语句的一部分

15、以下选项中可作为C语言合法整数的是

A)10110BB)0386C)0XffaD)x2a2

16、有以下程序

#defineF(X,Y)(X)*(Y)

main()

{inta=3,b=4;

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

}

程序运行后的输出结果是

A)12B)15C)16D)20

17、有以下程序

fun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

main()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

}

程序运行后的输出结果是

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

18、以下叙述中不正确的是

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

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

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

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

19、有以下程序main()

{ints=0,a=1,n;

scanf("%d",&n);

do{s+=1;a=a-2;}while(a!

=n);

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

}

若要使程序的输出值为2,则应该从键盘给n输入的值是

A)-1B)-3C)-5D)0

20、以下符合C语言语法的实型常量是

A)1.2E0.5B)3.14.159EC).5E-3D)E15

21、有以下程序

main()

{intx=102,y=012;

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

}

执行后输出结果是

A)10,01B002,12C)102,10D)02,10

22、定义如下变量和数组:

inti;

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

则下面语句的输出结果是

for(i=0;i<3;i++)printf("%d",x[i][2-1]);

A)159B)147C)258D)369

23、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是

A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z

24、若有定义intp=30;则表达式p/3>0?

p/10:

p%3的结果是

A)3B)0C)3.0D)0.0

25、若定义intk=7,x=12;则能使值为3的表达式是

A)x%=(k%=5)B)x%=(k-k%5)

C)x%=k-k%5D)(x%=k)-(k%=5)

二、填空题(每小题3分,共30分)

请将每一个空的正确答案写在答题纸1至10序号的右边,答在试卷上不得分。

1、以下定义了一个结构体变量stu,若在内存中:

一个字符占1个字节,一个整数占2个字节,一个实数占4个字节。

则变量stu在内存中所占的字节数是【1】

structstudent

{

charname[20];

charsex;

intage;

floatscore;

}stu;

2、定义int*p();的含义是【2】

3、以下程序运行后的输出结果是【3】

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:

m++;n++;break;

case10:

n++;break;

default:

k++;n++;

}

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

}

4、执行以下程序后,输出'#'号的个数是【4】

#include

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

5、以下程序的功能是调用函数fun计算:

m=1-2+3-4+…+9-10,并输出结果。

请填空。

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;

f=【5】;

}

returnm;

}

main()

{printf("m=%d\n",fun(10));}

6、以下程序运行后的输出结果是【6】

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

7、3&5的结果是【7】

8、运行以下程序,当从键盘输入135后,程序输出结果是【8】

#include

voidmain(void)

{

intnum,c;

printf("请输入一个整数:

");

scanf("%d",&num);

while((num/=10)>0)

{c=num%10;

printf("%d",c);

}

printf("\n");

}

9、该程序的功能是:

输出100以内能被4整除且个位数为6的所有整数,请填空。

#include

voidmain(void)

{

inti,j;

for(i=0;i<100;i++){

j=i*10+6;

if(【9】)continue;

printf("%d",j);}

}

10、有如下函数调用语句fun(f1,f2+f3,(f4,f5));该函数调用语句中,含有的实参个数是【10】

三、程序设计题(每题10分共20分)

1、编写程序输出所有的“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3

2、写一程序,从键盘上输入1年份year(4位十进制数),判断其是否闰年。

闰年的条件是:

能被4整除、但不能被100整除,或者既能被100整除,又能被400整除。

auto:

声明自动变量break:

跳出当前case:

开关语句分char:

声明字符型变量或函数const:

声明只读变量continue:

结束当前循环,开始下一轮循环default:

开关语句中的“其它”分支do:

循环语句的循环体double:

声明双精度变量或函数else:

条件语句否定分支(与if连用)enum:

声明枚举类型extern:

声明变量是在其它文件中声明float:

声明浮点型变量或函数 for:

一种循环语句goto:

无条件跳转语句if:

条件语句int:

声明整型变量或函数long:

声明长整型变量或函数 register:

声明寄存器变量 return:

子程序返回语句(可以带参数,也可不带参数)循环条件short:

声明短整型变量或函数 signed:

声明有符号类型变量或函数sizeof:

计算数据类型长度 static:

声明静态变量 struct:

声明结构体变量或函数switch:

用于开关语句typedef:

用以给数据类型取别名unsigned:

声明无符号类型变量或函数union:

声明共用数据类型void:

声明函数无返回值或无参数,声明无类型指针volatile:

说明变量在程序执行中可被隐含地改变while:

循环语句的循环条件

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

当前位置:首页 > 外语学习 > 其它语言学习

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

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