海南师范大学计算机C语言期末冲刺卷及答案_第1页
海南师范大学计算机C语言期末冲刺卷及答案_第2页
海南师范大学计算机C语言期末冲刺卷及答案_第3页
海南师范大学计算机C语言期末冲刺卷及答案_第4页
海南师范大学计算机C语言期末冲刺卷及答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

2/2计算机C语言期末冲刺卷(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、对于类型相同的两个指针变量之间,不能进行的运算是______。 A、< B、= C、+ D、-2、若有定义语句:intx=10;,则表达式x-=x+x的值为 A、-20 B、-10 C、0 D、103、若x和y是程序中的两个整型变量,则下列if语句中正确的是________。 A、if(x==0)y=1;elsey=2; B、if(x==0)theny=1elsey=2; C、if(x==0)y=1elsey=2; D、ifx==0y=1;elsey=2;4、关于循环体while的说法下列正确的是________。 A、循环体的执行次数总比条件表达式多一次 B、循环体的执行次数总比条件表达式少一次 C、循环体的执行次数与条件表达式无关 D、循环体的执行次数与条件表达式相等5、在c语言中以下正确的叙述是________。 A、函数的定义和函数的调用均可以嵌套 B、函数的定义和函数的调用均不可以嵌套 C、函数的定义可以嵌套,但函数的调用不可以嵌套。 D、函数的定义不可以嵌套,但函数的调用可以嵌套。6、下列引用的定义中,()是错误的。 A、inti;

int&j=i; B、inti;

int&j;

j=i; C、floati;

float&j=i; D、chard;

char&k=d;7、若有定义:intc[4][5],(*cp)[5];和语句cp=c;,则能正确引用c数组元素的是________。 A、cp+1 B、*(cp+3) C、*(cp+1)+3 D、*(*cp+2)8、一个5位的二进制数能够表示的最大值为? A、63 B、64 C、32 D、319、宏定义用于将一个标识符定义为一个 A、常量 B、字符串 C、整数 D、长整数10、下列两条语句"

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

"执行后变量c3的值是________。 A、0 B、0.5 C、1 D、211、有关c语言的主函数描述正确的是________。 A、C程序可以有多个main函数 B、C程序可以没有main函数 C、C程序有且只有一个main函数 D、C程序不一定从main函数开始执行12、若变量a、b、x、i都已正确定义并赋值,则以下符合c语言语法的表达式是________。 A、a+=a-=(b=4)*(a=3) B、x%(-3); C、a=a*3=2 D、v=float(i)13、下面关于数组的初始化正确的是________。 A、charstr[]={'a','b','c'} B、charstr[2]={'a','b','c'} C、charstr[2][3]={{'a','b',},{'c','d'},{'e','f'}} D、charstr()={'a','b','c'}14、设有定义:intx=0,*p;,立刻执行以下语句,正确的语句是________。 A、p=x; B、*p=x; C、p=NULL; D、*p=NULL;15、有以下程序

main()

{

unsignedchara,b,c;

a=0x3;

b=a|0x8;

c=b<<1;

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

}

程序运行后的输出结果是______。 A、-1112 B、-6-13 C、1224 D、112216、下面有关for循环的正确描述是________。 A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判断表达式 C、在for循环中,三个表达式都不能省略 D、for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来17、下列函数的功能是______。intfun1(char*x)

{

char*y=x;

while(*y++);

return(y-x-1);

} A、求字符串的长度 B、比较两个字符串的大小 C、将字符串X复制到字符串Y D、将字符串X连接到字符串Y后面18、以下程序的输出结果是______。

#include<stdio.h>

#include<math.h>

main()

{

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

floatx=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

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

} A、14.000000 B、15.400000 C、13.700000 D、14.90000019、以下叙述中错误的是________。 A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变 C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D、可以通过赋初值的方式确定数组元素的个数20、有以下程序:

#include<stdio.h>

structs

{

inta,b;

}

data[2]={10,100,20,200};

main()

{

structsp=data[1];

printf("%d\n",++(p.a));

}

程序运行后的输出结果是______。 A、10 B、11 C、20 D、2121、"not"属于________。 A、关系运算符 B、逻辑运算符 C、特殊运算符 D、标准运算符22、若有"doublea;",则正确的输入语句是________。 A、scanf("%1f",a); B、scanf("%f",&a); C、seanf("%1f",&a); D、scanf("1e",&a);23、设有如下函数定义:若执行调用语句:n=fun(3);则函数fun总被调用次数为________。 A、2 B、3 C、4 D、524、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++)则以上for循环() A、执行3次 B、执行4次 C、执行无限次 D、执行次数不定25、下列关于形参的说法,正确的是________。 A、函数的形参是必须的 B、函数的形参可以是表达式 C、函数在定义时,形参是不占用存储空间的,只是在被调用时才会占,调用完毕也就被释放了 D、形参的名称、类型、数量、顺序必须与实参都相同,否则实参不会把信息正确地传递给形参26、下列选择中,不能用做标识符的是________。 A、1234 B、_1_2 C、int_2_ D、2_int_27、要定义一个字符串,下列选项中错误的是________。 A、chars[5]="hello"; B、chars[]="hello"; C、char*s="hello"; D、chars[]={"h","e","l","l","o"};28、下面合法的c语言字符常量是____________. A、'\t' B、"A" C、65 D、A29、以下正确的字符串常量是________。 A、“╲╲╲” B、‘abc’ C、Olympic D、**30、下列叙述中正确的是________。 A、每个C程序文件中都必须有一个main()函数 B、在C程序中main()函数的位置是固定的 C、C程序可以由一个或多个函数组成 D、在C程序的函数中不能定义另一个函数31、设函数定义如下:floatf1(floata,floatb)

{

return(a+b);

}

若有floatx=1.1,y=2.2;

,则以下语句中正确的函数调用是________。 A、printf("%f",f1(); B、printf("%f",f1(&x,); C、printf("%f",f1(*x,*); D、printf("%f",f1(x,);32、下列选项不符合良好程序设计风格的是________。 A、源程序要文档化 B、数据说明的次序要规范化 C、避免滥用goto语句 D、模块设计原则是高耦合、高内聚33、下列能正确进行字符串赋值的是________。 A、chars[5]={“ABCDE”); B、chars[5]={'A','B','C','D','E'}; C、char*s;s=”ABCDE”; D、char*s;printf(”%S”,s);34、有以下程序段

typedefstructnode

{

intdata;

structnode*next;

}

*node;

nodep;

以下叙述中正确的是________。 A、p是指向structnode结构变量的指针的指针 B、NODEp;语句出错 C、p是指向structnode结构变量的指针 D、p是structnode结构变量35、有以下程序

voidfun(int*a,inti,intj)

{

intt;

if(i<j)

{

t=a[j];

a[i]=a[j];

a[j]=t;

i++;

j--;

fun(a,i,j);

}

}

main()

{

intx[]={2,6,1,8},i;

fun(x,0,3);

for(i:0;i<4;i++)printf("%2d",x[i]);

}

程序运行后的输出结果是______。 A、1268 B、8621 C、8162 D、861236、下列程序的输出结果是

#include<stdio.h>

main()

{

inti,a=0,b=0;

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

{

if(i%2==0)

{

a++;

continue;

}

b++;

}

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

} A、a=4,b=4 B、a=4,b=5 C、a=5,b=4 D、a=5,b=537、若有定义:char*st="howareyou";下列程序段中正确的是________。 A、chara[11];*p;strcpy(p=a+1,&st[4]); B、chara[11];strcpy(++a,st); C、chara[11];strcpy(a,st); D、chara[],*p;strcpy(p=&a[1],st+2);38、以下语句的输出结果是________。inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d,%d,%d\n",k,a,b); A、1,0,4 B、1,0,3 C、0,0,3 D、0,0,439、下列对字符数组进行初始化的语句正确的是________。 A、chara[]="Hello"; B、chara[][]={'H','e','1','1','o'); C、chara[5]="Hello"; D、chara[2][5]={"Hello","World"};p40、以下叙述中正确的是________。 A、使用typedef定义新类型名后,新类型名与原类型名实际上是等价的 B、结构体类型中的各个成分均不能是数组或指针 C、结构体类型的变量,不能在声明结构体类型组成时一起定义 D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义41、结构化程序由三种基本结构组成,三种基本结构组成的算法 A、可以完成任何复杂的任务 B、只能完成部分复杂的任务 C、只能完成符合结构化的任务 D、只能完成一些简单的任务42、下列变量定义中合法的是()。 A、short_a=1-.1e-1; B、doubleb=1+5e2.5; C、longdo=0xfdaL; D、float2_and=1-e-3;43、以下叙述中正确的是________。 A、在C语言中,逻辑真值和假值分别对应1和0 B、关系运算符两边的运算对象可以是语言中任意合法的表达式 C、对于浮点变量x和y,表达式:x==y是非法的,会出编译错误 D、分支结构是根据算术表达式的结果来判断流程走向的44、在c语言中,while和do…while循环的主要区别是________。 A、do…while的循环体不能是复合语句 B、do…while允许从循环体外转到循环体内 C、whil8的循环体至少被执行一次 D、do…while的循环体至少被执行一次45、有如下定义语句:inta[]={1,2,3,4,5},则对语句int*p=a;正确的描述是________。 A、语句int*p=a;定义不正确 B、语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素 C、语句int*p=a;是把a[0]的值赋给变量p D、语句int*p=a;是把a[1]的值赋给变量p46、若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述是______。 A、以下两处的*p含义相同,都说明给指针变量p赋值 B、在"doubler=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元 C、语句"*p=r;"把变量r的值赋给指针变量p D、语句"*p=r;"取变量r的值放回r中47、设有定义doublea[10],*s=a;,一下能够代表数组元素a[3]的是________。 A、(*s)[3] B、*(s+3) C、*s[3] D、*s+348、设有定义语句:chara='\72';,则变量a________。 A、包含1个字符 B、包含2个字符 C、包含3个字符 D、定义不合法49、若有定义:charstr1[10]="aaaaaaa";

charstr2[10]="bbbbb";

将字符串str2连接到str1,则下列描述中正确的是________。 A、strcat(str1,str2)可以将字符串str2连接到str1中 B、strncat(str1,str2,strlen(str2))可以将字符串str2连接到str1中 C、strncat(str1,str2,2)可以将字符串str2的前两个字符连接到str1中 D、strncat(str1,str2,4)可以将字符串str2的前四个字符连接到str1中50、以下与函数fseek(fp,0l,seek_set)有相同作用的是______。 A、feef(fp) B、tell(fp) C、fgetc(fp) D、rewind(fp)

参考答案一、单项选择题1、C2、B3、A4、B5、D6、B7、D8、D9、B【解析】宏定义用于将一个标识符定义为一个字符串10、A11、C12、A13、A【解析】本题考查的是字符数组的初始化。选项B)中用3个元素初始化大小为2的数组,越界了;选项C)中应该是2行3列的数组,题中使用3行2列初始化;选项D)中数组合后应用方括号。14、C15、D16、D17、A18、C19、C20、D【解析】声明data是结构S数组。初始化data[0].a=10;,data[0].b=100;,data[1].a=20:,data[1].b=200。主函数中p=data[1];,即p.a=data[1].a;,p.b=data[1].b;。执行语句printf("%d\n",++(p.a));打印输出时p.a先增1再打印,即p.a=data[1].a=20,先增1等于21。21、B22、B23、B【解析】首先n=fun(3),3被当作参数传递进去,这就进行了一次调用,3当做参数传进去后,程序会执行这句elsereturnfun(k-1)+1;这就调用了第二次,而参数是3-1也就是2。2被当做参数传进去后,程序会执行这句elsereturnfun(k-1)+1;这就调用了第三次,而参数是2-1也就是1。1被当做参数传进去后,程序会执行这句elseif(k==1)return1;不再递归调用,所以最终结果为3次。24、B【解析】本题重点考查for语句的循环次数,for(x=0,y=0;(y!=99&&x<4);x++),y!=99&&x<4即循环条件当y不等于99以及x<4时,执行循环语句,当有一个条件不成立时,均结束循环,因此循环4次,B选项正确。25、C【解析】函数可以没有形参。表达式是一个值,不是变量,不能接受信息。26、D27、D【解析】定义字符数组,字符元素要用单引号括起来。28、A29、D30、D31、D32、D33、C34、C【解析】在C语言中,typedef用于说明一种新的类型名,本题中的node被定义为一种结构体类型名,NODE被定义为指向这种结构体变量的指针,我们可以用它来定义一个指向该类型结构体变量的指针。35、C36、B【解析】continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。37、A【解析】本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“China”这5个字符放到数组strl中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(strl,“China”)或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

strcpy函数的结构是:strcpy(字符数组1,字符串2)

其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。38、D39、A【解析】本题考查对字

温馨提示

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

评论

0/150

提交评论