二级C语言题目_第1页
二级C语言题目_第2页
二级C语言题目_第3页
二级C语言题目_第4页
二级C语言题目_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

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

文档简介

Pppppppppp即PPPPPPPPPPPPPPPPPPPPPP即飘飘

B)sin(2*n*r+30)

二、二级C语言程序设计部分C)sin(2*3.14*r+30)

D)sin(2*3.14*r+30*3.14/360.0)

⑴设有两行定义语句:答案为:A)

intscanf;(6)设有定义:intx=ll,y=12,z=0;,以下表达式值不等于12的是()。

floatcase;A)z=(x==y)

则以下叙述正确的是()。B)(z=x,y)

A)第2行语句不合法C)z=(x,y)

B)两行定义语句都合法D)(z,x,y)

0第1行语句不合法答案为:A)

D)两行定义语句都不合法(7)以下可以将任意一个两位整数n的个位数与十位数对换的表达式为

答案为:A)A)(n-n/10*10)*10+n/10

(2)设有定义:doublex=2.12:,以下不能完整输出变量x值的语句是(B)n-n/10*10+n/10

A)printf("x=%5.Of\n”,x);C)n/10+(n-n/10)

B)printf("x』f\n",x);D)(n-n/10)*10+(n/10)

C)printf("x=%lf\n”,x);答案为:A)

D)printf(z,x=%0.5f\n",x);(8)设有以下程序段

答案为:A)inty;

(3)设有定义:inta,b;floatx,y;,则以下选项中对语句所作的注释叙述错y=rand()%30+1;

误的是则变量y的取值范围是()。

A)scanf("%d%d%f",&a,&b);/*多余的格式符用f完全不起作用*/A)0<yW30

B)scanr("%d%d”,&a,&b,&x);/*多余的输入项不能获得输入数据*/B)0WyW30

0scanf("%d%现d",&a,&b,&x);/*输入项与格式符类型不匹配,变量b和x得0l<y<30

不到正确的输入数据*/D)IVy近30

D)scanf("Input:%d%d”,&a,&b);/*格式串中允许加入格式符以外的字符串*/答案为:A)

答案为:A)(9)以下程序段中,循环次数不超过10的是

(4)结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是()。A)inti=10;do{i=i+l;)while(i<0);

A)三种基本结构不可以嵌套使用B)inti=5;do{i+=l;}while(i>0);

B)顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移C)inti=l:do{i+=2;}while(i!=10);

0选择结构是根据不同的条件执行不同分支中的语句D)inti=6;do{i-=2;}while(i!=1);

D)循环结构是根据条件决定是否重复、重复执行多少次循环体语句答案为:A)

答案为:A)(10)有以卜程序

(5)以下能正确表述算式sin(2”r+30°)的。语言表达式是()。ttinclude<stdio.h>

A)sin(2*3.14*r+3.14*30/180.0)main()

pppppppppp叩PPPPPPPPPPPPPPPPPPPPPPPP飘飘

{chara,b,c,d;B)0,0,0,3

scanf("%c%c”,&a,&b);O1,1,2,0

c=getchar();D)0,1,2,0

d=getchar();答案为:A)

printf("%c%c%c%c\n”,a,b,c,d);(13)有以下程序

}ttinclude<stdio.h>

当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车mainO

也是一个字符){intx=l,y=0,a=0,b=0;

12<CR>switch(x)

34<CR>{case1:

则输出结果是()。switch(y)

A)12{case0:a++;break;

3case1:b++;break;

B)12)

01234case2:a++;b++;break;

D)12case3:a++;b++;

34)

答案为:A)printf("a=%d,b=%d\nz/,a,b);

(11)以下关于逻辑运算符两侧运算对象的叙述中正确的是()。)

A)可以是任意合法的表达式程序的运行结果是()。

B)只能是整数0或非。整数A)a=2,b=l

0可以是结构体类型的数据B)a=2,b=2

D)只能是整数0或1C)a=Lb=l

答案为:A)D)a=l,b=0

(12)有以下程序答案为:A)

#include<stdio.h>(14)以卜.程序段中的变量已正确定义

mainOfor(i=0;i<4;i++,i++)

{inta=0,b=0,c=0,d=0;for(k=l;k<3;k++);printf("*");

if(a=l)b=l;c=2;该程序段的输出结果是()。

elsed=3;A)*

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

)C)**

程序输出()。D)********

A)编译有错答案为:A)

Pppp即pppppppppppppppppppppppppppppp

(15)有以下程序段(17)若有定义intx.y;并已正确给变量赋值,则以下选项中与表达式

ftinclude<stdio.h>(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是(

inti,n;A)(x-y<0||x-y>0)

for(i=0;i<8;i++)B)(x-y<0)

{n=rand()%5;C)(x-y>0)

switch(n)D)(x-y==0)

{case1:答案为:A)

case3:printf("%d\n",n);break;(18)以卜.叙述中正确的是

case2:A)int*pl;int**p2;int*p3;都是合法的定义指针变量的语句

case4:printf(",%d\n”,n);continue;B)指针变量只能通过求地址运算符(&)来获得地址值

case0:exit(0);0语句p=NULL;与p=\0;是等价的语句

}D)语句p=NULL;执行后,指针p指向地址为0的存储单元

printf(飞d\n”,n);答案为:A)

}(19)以下叙述中正确的是().

以下关于程序段执行情况的叙述,正确的是A)如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息

A)当产生的随机数n为0时结束程序运行B)即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以

B)当产生的随机数n为4时结束循环操作不同

0当产生的随机数n为1和2时不做任何操作0设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL;

D)for循环语句固定执行8次D)指针变量之间不能用关系运算符进行比较

答案为:A)答案为:A)

(16)有以下程序(20)以下叙述中正确的是()。

ifinclude<stdio.h>A)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单

main0元

{charcl,c2;B)一条语句只能定义一个数组

cl=A'+'8'4';0数组说明符的一对方括号中只能使用整型常量,而不能使用表达式

c2='A'+'8'5';D)在引用数组元素时,卜标表达式可以使用浮点数

printf("%c,%d\n”,cl,c2);答案为:A)

}(21)以下叙述中正确的是().

已知字母A的ASCII码为65,程序运行后的输出结果是A)charcl,c2,*c3,c4[40];是合法的变量定义语句

A)E,68B)数组卜.标的下限由数组中第一个非零元素的位钟决定

B)D.690数组下标的下限由数组中第一个被赋值元素的位置决定

C)E.DD)数组下标的下限是1

D)输出无定值答案为:A)

答案为:A)(22)以卜叙述中正确的是

Pppp即pppppppppppppppppppppppppppppp飘飘

A)语句inta[8]={0};是合法的则下列叙述中,正确的是()。

B)语句inta[]={0};是不合法的,遗漏了数组的大小A)说明中的a[10]写成a□或*a效果完全一样

0语句chara[2]={"A","B"};是合法的,定义了一个包含两个字符的数组B)形参a对应的实参只能是数组名

D)语句chara[3];a="AB";是合法的,因为数组有三个字符空间的容量,可0func的函数体中不能对a进行移动指针(如a++)的操作

以保存两个字符D)只有指向10个整数内存单元的指针,才能作为实参传给a

答案为:A)答案为:A)

(23)以下叙述中1E确的是()。(28)以下叙述中正确的是

A)调用函数时,函数名必须与被调用的函数名完全一致A)在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵

B)函数调用时,不必区分函数名称的大小写B)语句inta[4][3]={1,2,4,5};是错误的初始化形式

0函数名允许用数字开头0语句inta[][3]={1,2,4,5);是错误的初始化形式

D)在函数体中只能出现一次return语句D)语句inta[4][3]={{1,2},{4,5}};是错误的初始化形式

答案为:A)答案为:A)

(24)以下叙述中正确的是()。(29)有以下程序

A)在对指针进行加、减算术运算时,数字1表示1个存储单元的长度#include<stdio.h>

B)如果p是指针变量,则*p表示变量p的地址值voidfun(intx,inty,int*c,int*d)

C)如果p是指针变量,则&p是不合法的表达式{*c=x+y;*d=x-y;}

D)如果p是指针变量,则*p+1和*(p+l)的效果是一样的mainO

答案为:A){inta=4,b=3,c=0,d=0;

(25)以下叙述中正确的是fun(a,b,&c,&d);

A)设有指针变量为double*p,则p+1将指针p移动8个字节printf(%d\n”,c,d);

B)函数的类型不能是指针类型}

0函数的形参类型不能是指针类型程序的输出结果是

D)基类型不同的指针变量可以相互混用A)71

答案为:A)B)43

(26)如果定义034

floata[10],x;D)00

则以下叙述中正确的是()。答案为:A)

A)语句a=&x;是非法的(30)有以下程序

B)表达式a+1是非法的Sinclude<stdio.h>

0三个表达式a⑴、*(a+D、表示的意思完全不同voidfun(int*p,int*q)

D)表达式*&a[l]是非法的,应该写成*(&(a⑴)){intt;

答案为:A)t=*p;*p=*q;*q=t;

(27)设有某函数的说明为*q=*p:

int*func(inta[10],intn);}

Pppppp即PP叩pppppppppppppppppppppppp

mainO程序的输出结果是()。

{inta=O,b=9;A)357

fun(&a,&b);B)150

printf(/z%d%d\n”,a,b);047

}D)369

程序的输出结果是答案为:A)

A)99(33)有以下程序

B)00ttinclude<stdio.h>

090mainO

D)09

答案为:A)inta[]=(2,4,6,8),*p=a,i;

(31)有以下程序for(:i=0;i<4;i++)

^include<stdio.h>a[i]=*p++;

main()printf(//%d\n,z,a[2]);

{inta[]={2,4,6,8,10),x,*p,y=l;)

P=&a[l];程序的输出结果是

for(x=0;x<3;x++)y+=*(p+x):A)6

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

)04

程序的输出结果是()。D)2

A)19答案为:A)

B)13(34)有以卜.程序

011#include<stdio.h>

D)15charfun(char*c)

答案为:A)

(32)有以下程序if(*c〈='Z'&&*c〉二'A')

#include<stdio.h>*c-=,A,a';

main()return*c;

()

inti,x[3][3]={1,2,3,4,5,6,7,8,9);mainO

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

printf(z/%d”,x[i][2-i]);chars[81],*p=s;

printf(〃\n〃);gets(s);

while(*p)

Pppp即pppppppppppppppppppppppppppppp飘飘

intf(intx)

*p=fun(p);{returnx*x+l;}

putchar(*p);程序运行后输出结果是()。

p++;A)BDT

)B)BCD

printf('\n");C)ABE

}D)BCF

若运行时从键盘上输入OPENTHEDOOR〈回车),程序的输出结果是()。答案为:A)

A)openthedoor(37)设有定义:

B)oPENtHEdOORintx[2][3];

C)OPENTHEDOOR则以下关于二维数组x的叙述错误的是()。

D)OpenTheDoorA)可以用x[0]=0;的形式为数组所有元素赋初值0

答案为:A)B)数组x可以看作是由x[0]和x[l]两个元素组成的一维数组

(35)有以下程序O元素x[0]可看作是由3个整型元素组成的一维数组

#include<stdio.h>D)x[0]和x[l]是数组名,分别代表一个地址常量

main()答案为:A)

{chara=,If;(38)设p是指针变量,语句p=NULL;等价于(),,

a=(a>='A'&&a〈='Z')?(a+32):a;A)p=0;

printf("%c\n",a);B)p=一;

)0p=〃”;

程序运行后的输出结果是()。D)p='0';

A)h答案为:A)

B)H(39)有以下程序

C)A^include<stdio.h>

D)amainO

答案为:A){inta[]={10,20,30,40},*p=a,i;

(36)有以下程序for(i=0;i<=3;i++)(a[i]=*p;p++;}

8include<stdio.h>printf("%d\n",a[2]);

intf(intx);)

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

{inta,b=0;A)30

for(a=0;a<3;a+=1)B)20

{b+=f(a);putchar(*A*+b);}010

D)40

Pppppppppppppppppppppppppppppppppppp飘飘

答案为:A)B)可以取常量的地址赋值给同类型的指针变量

(40)有以下程序O可以取•个指针变量的地址赋给本指针变量,这样就使得指针变量指向自身

#include<stdio.h>D)所有指针变量如果未赋初值,则自动赋空值NULL

#defineN3答案为:A)

voidfun(inta[][N],intb[])(43)有以下程序

{inti,j;#include<stdio.h>

for(i=0;i<N;i++)intk=5;

{b[i]=voidf(int*s)

for(j=l;j<N;j++){*s=k;}

if(b[i]<a[i][j])b[i]=a[i][j];main()

{intm=3,*p=&m;

f(p);

mainOprintf("%d,%d”,m,*p);

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

fun(x,y);程序的运行结果是()。

for(i=0;i<N;i++)printf("%d,〃,y[i]);A)5,5

printfC,z\n,z);B)3,3

)C)3,5

程序运行后的输出结果是()。D)5,3

A)3,6,9,答案为:A)

B)1,3,5,(44)有以下程序

C)2,4,8,#include<stdio.h>

D)3,5,7int*f(int*s,int*t)

答案为:A){if(*s<*t)

(41)若要使用C数学库中的sin函数,需要在源程序的头部加上s=t;

#include<math.h>returns;

关于引用数学库,以下叙述正确的是()。

温馨提示

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

最新文档

评论

0/150

提交评论