浙江中医药大学C语言期末及答案_第1页
浙江中医药大学C语言期末及答案_第2页
浙江中医药大学C语言期末及答案_第3页
浙江中医药大学C语言期末及答案_第4页
浙江中医药大学C语言期末及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

2/2C语言期末一、单项选择题(每小题2分,共100分)1、以下不正确的说法是____ A、在不同的函数中可以使用相同名字的变量 B、形式参数是局部变量 C、在函数内定义的变量只在本函数范围内有效 D、在函数内的复合语句中定义的变量在本函数范围内有效2、把十六进制数baf转换成二进制数________。 A、101110101111 B、110110101111 C、101110111111 D、1110110111113、能正确表示a≥10或a≤0的关系表达式是________。 A、a>=10ora<=0 B、a>=10||a<=0 C、a>=10|a<=0 D、a>=10&&a<=04、假定等级和分数有以下对应关系:等级:a分数:85~100等级:b分数:60~84等级:c分数:60以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是__________. A、switch(grade)

{

case'A':printf("85--100\n");

case'B':printf("60--84\n");

case'C':printf("60以下\n");

default:printf("等级错误!\n");

} B、switch(grade)

{

case'A':printf("85--100\n");break;

case'B':printf("60--84\n");

case'C':printf("60以下\n");

default:printf("等级错误!\n");

} C、switch(grade)

{

case'A':printf("85--100\n");break;

case'B':printf("60--84\n");break;

case'C':printf("60以下\n");

default:printf("等级错误!\n");

} D、switch(grade)

{

case'A':printf("85--100\n");break;

case'B':printf("60--84\n");break;

case'C':printf("60以下\n");break;

default:printf("等级错误!\n");}5、假定int类型变量占用4个字节,若有定义:intx[10]={0,2,4}则数组x在内存中所占字节数是______。 A、4 B、12 C、20 D、406、若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句是________。 A、a=a+b;b=a-b;a=a-b; B、t=a;a=b;b=t; C、a=t;t=b;b=a; D、t=b;b=a;a=t;7、以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。

voidreverse(inta[],intn)

{

inti,t;

for(i=0;i<n/2;i++)

{

t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;

}

}

main()

{

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

inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

程序运行后的输出结果是______。 A、22 B、10 C、34 D、308、c语言的程序一行写不下时,可以。 A、用逗号换行 B、用分号换行 C、在任意一空格处换行 D、用回车符换行9、下列字符串中,正确的c标识符是________。 A、foo-1 B、2b C、new D、25610、chara1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是________。 A、strcat(a2,a1); B、strcpy(a2,a1); C、strcat(a1,a2); D、strcpy(a1,a2);11、C语言函数内定义的局部变量的隐含存储类别是 A、static B、auto C、register D、extern12、下面程序段的功能是

#include<stdio.h>

main()

{

chars1;

s1=putc(getc(stdin),stdout);

} A、从键盘输入一个字符给字符变量s1 B、从键盘输入一个字符,然后再输出到屏幕 C、从键盘输入一个字符,然后在输出到屏幕的同时赋给变量s1 D、在屏幕上输出stdout的值13、以下正确的叙述是______。 A、C语言允许main函数带形数,且形参个数和形参名均可由用户指定 B、C语言允许main函数带形参,形参名只能是argc和argv C、当main函数带有形参时,传给形参的值只能从命令行中得到 D、有说明:main(intargc,char*argv),则形参argc的值必须大于114、有定义:char**p1,*p2;

则下列表达式中正确合理的是________。 A、p1/=5 B、p1*=p2 C、p1=&p2 D、p1+=515、运行下面程序段的输出结果是__________.chars1[10]={'s','e','t','\0','u','p','\0'};printf("%s",s1); A、Set B、Setup C、Setup D、'S''e''t'16、设j为int型变量,则下面for循环语句的执行结果是________。for(j=10;j>3;j--)

{

if(j%3)j--;

--j;

--j;

printf("%d",j);

} A、63 B、74 C、62 D、7317、若函数调用时用数组名作为函数参数,以下叙述中,不正确的是__________. A、实参与其对应的形参共占用同一段存储空间 B、实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递 C、实参与其对应的形参分别占用不同的存储空间 D、在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组18、若有以下定义和语句,则输出结果是______。

int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp); A、10,20 B、10,10 C、20,10 D、20,2019、设有如下定义:charaa[2][20]={"abcd","abcd"};则以下说法中错误的是__________. A、aa是个二维数组,可以存放2个19个字符以下的字符串 B、aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD" C、aa[0]可以看作是一维数组名 D、aa[0][0]可以看作是一维数组名20、设有如下定义:

structsk

{

inta;

floatb;

}

data,*p;

若有p=&data;

则对data中成员a的引用正确的是________。 A、(*p).data.a B、(*p).a C、p->data.a D、p.data.a21、c语言中运算对象必须是整型的运算符是________。 A、%= B、/ C、= D、〈=22、在c语言程序中可用做用户标识符的是________。 A、void

123

BBN B、aa

_abc

cas C、as+b3

-123

If D、6f

Do

SIG23、设int*p[4];则标识符p是________。 A、整型数组名 B、指针数组名 C、指针函数名 D、指向整型变量的指针24、若有以下程序段,w和k都是整型变量:

w=k;

LB:if(w==0)

gotoLE;

w--;

printf("*")gotoLB;

LE;

则不能与上面程序段等价的循环语句是________。 A、for(w=k;w!—0;w--)printf(”*”); B、for(w=k;W;--w)printf(”*”); C、w=k;

while(w--!=O)printf(”*”); D、w=k:

W++;do

{

w--;printf(”*”);)while(w!=O);25、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(ц代表一个空格符) A、ЦЦЦ1,2,3<回车> B、1Ц2Ц3<回车> C、1,ЦЦЦ2,ЦЦЦ3<回车> D、1,2,3<回车>26、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是________。 A、if((a>b)&&(b>c))k=1;

elsek=0; B、if((a>b)||(b>c))k=1;

elsek=0; C、if(a<=b)k=0;

elseif(b<=c)k=1; D、if(a>b)k=1;

elseif(b>c)k=1;

elsek=0;27、设charstr[100];inti=5;则引用数组元素的错误形式的是________。 A、str[I+10] B、*(srr+ C、(str+I-1) D、*(&(str++)+28、下列选项中不是字符常量的是________。 A、'\V' B、'\x2a' C、'a' D、"\0"29、下面正确的字符串常量是________。 A、'a' B、'376' C、"\n" D、37630、标准库函数fgets(str,n,fp)的功能是________。 A、从fp所指的文件中读取长度不超过n-1字符串存入指针str所指的内存 B、从fp所指的文件中读取长度为n的字符串存入指针str所指的内存 C、从fp所指的文件中读取n个字符串存入指针str所指的内存 D、从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存31、已定义以下函数fun(char*p2,char*p1)

{

while((*p2=*p1)!='\0')

{

p1++;

p2++;

}

}

函数的功能是________。 A、将p1所指字符串复制到p2所指内存空间 B、将p1所指字符串的地址赋给指针p2 C、对p1和p2两个指针所指字符串进行比较 D、检查p1和p2两个指针所指字符串中是否有'\0'32、在16位编译器环境下,double类型占多少字节? A、2 B、4 C、1 D、833、以下叙述中错误的是________。 A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变 C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D、可以通过赋初值的方式确定数组元素的个数34、有以下定义和语句:

structstudents{

intnum;

charname[20];

charc;

struct{

intgrade1;

intgrade2;

}s;

};

structstudentsw,*pw;

*pw=w;

下列赋值语句不正确的是________。 A、num=1002; B、w.grade1=85; C、pw->num=1002; D、w.s.grade2=85;35、若有定义和语句:int**pp,*p,a=20,b=10;

pp=8p;

p=&a;

p=&b;

printf("%d,%d\n",*p,**pp);

则输出结果是________。 A、20,10 B、20,20 C、10,20 D、10,1036、执行下面程序片段的结果是______。intx=23;

do

{

printf("%2d",x--);

}

while(!x); A、打印出321 B、打印出23 C、不打印任何内容 D、陷入死循环37、以下叙述中正确的是________。 A、构成C程序的基本单位是函数 B、可以在一个函数中定义另一个函数 C、main()函数必须放在其他函数之前 D、所有被调用的函数一定要在调用之前进行定义38、有以下程序

main()

{

intx[8]={8,7,6,5,0,0},*s;

s=x+3;

printf("%d\n",s[2]);

}

执行后输出结果是________。 A、随机值 B、0 C、5 D、639、若有定义:intc[4][5],(*cp)[5];和语句cp=c;,则能正确引用c数组元素的是________。 A、cp+1 B、*(cp+3) C、*(cp+1)+3 D、*(*cp+2)40、以下scanf函数调用语句中不正确的是__。

structpupil

{

charname[20];

intage;

intsex;

}

pup[5],*p=pup; A、scanf("%s",pup[0].name); B、scanf("%d",&pup[0].age); C、scanf("%d",p->age); D、scanf("%d",&(p->sex));41、c语言中的标识符第一个字符。 A、必须为字母 B、必须为下划线 C、必须为字母或下划线 D、可以是字母,数字和下划线中任一种字符42、已知year为整型变量,不能使表达式(year%4==0&&year%100!=o)||year%400==0的值为"真"的数据是______。 A、1990 B、1992 C、1996 D、200043、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:if(a<b)if(c==d)y=0;elsey=1;该语句所表示的含义是________。 A、y=0,a

y=1,a≥b B、y=0,a

y=1,a≥b且c≠d C、y=0,a

y=1,a<B且C≠D D、y=0,a

y=1,c≠d44、有以下程序段:

intx=3;

do

{

printf(”%3d”,x-=2);

}

while(!(--x));

程序段的输出结果是________。 A、1 B、30 C、1-2 D、死循环45、设有下面的程序段:chars[]="china";char*p=s;则下列叙述正确的是____。 A、数组s中的内容和指针变量p中的内容相等 B、s和p完全相同 C、s数组长度和p所指向的字符串长度相等 D、*p与s[0]相等46、经过以下语句定义后,表达式z+=x>y?++x:++y的值为________。

intx=1,y=2,z=3; A、2 B、3 C、6 D、547、以下函数按每行8个输出数组中的数据

voidfun(int*w,intn)

{

inti;

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

{

________printf("%d",w[i]);

}

printf("\n");

}

下列划线处应填入的语句是________。 A、if(i/8==0)printf(“\n”); B、if(i/8==0)continue; C、if(i%8==0)printf(“\n”); D、if(i%8==0)continue;48、调试程序是指对程序进行 A、编辑 B、编译 C、查错和排错 D、连接49、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。 A、charst[4][5]={"ABCDE"}; B、chars[5]={'A','B','C','D','E'}; C、char*s="ABCDE"; D、char*s;scanf("%s",*s);50、下列叙述中正确的是______。 A、C语言编译时不检查语法 B、C语言的子程序有过程和函数两种 C、C语言的函数可以嵌套定义 D、C语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数

参考答案及解析一、单项选择题1、D2、A【解析】(BAF)16=(101110101111)23、B4、D5、D6、C7、A8、C9、D【解析】此题考查的是C语言中标识符的定义。标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线:标识符中大小写字母是不同的;用户定义标识符时,不允许采用系统的关键字。10、A11、B12、C13、C14、C15、A16、B17、C18、D19、D20、B【解析】p是指向结构体

温馨提示

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

评论

0/150

提交评论