高级语言程序设计学习通章节答案期末考试题库2023年_第1页
高级语言程序设计学习通章节答案期末考试题库2023年_第2页
高级语言程序设计学习通章节答案期末考试题库2023年_第3页
高级语言程序设计学习通章节答案期末考试题库2023年_第4页
高级语言程序设计学习通章节答案期末考试题库2023年_第5页
已阅读5页,还剩65页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

高级语言程序设计学习通超星课后章节答案期末考试题库2023年若有inta[3];,则对a数组元素非法引用的是

答案:

a[3]

若有定义语句:intm[]={5,4,3,2,1},i=4;,则下面对m数组元素引用中错误的是

答案:

m[m[0]]

在C语言中,引用数组元素时,其数组下标的数据类型允许是____。

答案:

整型常量或整型表达式

设有float

a=100.25,b=2.5;,则表达式(int)a/b的值是______。

答案:

40.0

已知inta=15;,执行语句a=a<<2;后,变量a的值是_____。

答案:

60

设有inta=1,b=2,c=3,d=4;,则表达式a>d?a+b:c+d值为______。

答案:

7

已知inta[8]={2,5,4,7};,则表达式a[5]-a[2]的值是

答案:

-4

若有inta[]={1,2,3,4,5,6,7};charc1='b',c2='2';,则下列表达式值不等于2的是

答案:

c2-0

以下对二维数组a的正确声明是

答案:

doublea[1][4]

下列表达式中,______满足“当x为偶数时值为真,为奇数时值为假”的要求。

答案:

x%2==0

以下选项中,数学式

的C语言表达式是_____。

答案:

1.0/2*sin(sqrt(a*a+b*b)/fabs(c))

已知:int[3][4],则对数组元素引用正确的是

答案:

a[1+1][0]

在C语言中,二维数组元素在内存中的存放顺序是

答案:

按行存放

在定义了数组a[3][6];后,第10个元素是

答案:

a[3][1]

设有inta[8][6];,则在a[4][5]之前的元素个数为

答案:

29

已知:inta[3][2]={1,2,3,4,5,6};,则a[1][1]的值是

答案:

4

一个C语言程序中要调用sqrt()函数时,应在程序中包含的头文件是_____。

答案:

math.h

合法的数组初始化语句是

答案:

chara[]={0,1,2,3,4,5};

对一维数组初始化正确的语句是

答案:

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

下列选项中,能正确定义数组的语句是

答案:

#defineN2008

设有预处理命令#defined2和定义inta=10;longb=20;charc='a';,则下列语句中错误的是

答案:

d++

设有#defineTap(x)x+1,则2*Tap(2)的值是

答案:

5

若有#defineMUL(x,y)x*y,则语句printf("s=%d",MUL(2,2+3));的输出结果是

答案:

s=7

下列关于编译预处理命令的说法中,正确的是

答案:

一行只能书写一条编译预处理命令

下面程序的输出结果是

#includeintm=5;

intfun(intx,inty)

{

intm=8;

return(x*y-m);

}

intmain()

{inta=7,b=5;

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

return0;}

答案:

5

下面程序的正确运行结果是

。#includeintmain()

{

inta=2,i;

intf(inta);for(i=0;i<3;i++)printf("%4d",f(a));

return0;}

intf(inta)

{

intb=0;

staticintc=3;

b++;c++;

return(a+b+c);}

答案:

7

8

9

凡是函数中未指定存储类别的局部变量,其隐含的存储类别为

答案:

自动(auto)

一个源文件中定义的全局变量的作用域是

答案:

从定义开始到本文件结束

C程序函数中的局部变量是指

答案:

函数体内定义的变量

以下描述中错误的是

答案:

在一个函数内部的复合语句中定义的变量可以在本函数范围内有效

函数的形式参数的作用域是

答案:

本函数的全部范围

若用数组名作为函数调用时的实参,则实际上传递给形参的是

答案:

数组首地址

有以下程序:#includeintf(inta){returna*a;}intmain(){doublex;x=f(2.5);printf("%.2f\n",x);return0;}程序的输出结果是

答案:

4.00

下列的函数调用语句中fun函数的实参个数是

。fun(x,g(x,y),z=x+y,(x,y));

答案:

4

C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是

答案:

单向值传递

若函数调用时的实参为变量时,下列关于函数形参和实参的叙述中正确的是

答案:

函数的形参和实参分别占用不同的存储单元

在下面的函数声明中,存在着语法错误的是

答案:

DC(int,int=5);

以下函数声明语句正确的是

答案:

doublefun(intx,inty);

下列函数值的类型是

。fun(floatx){doubley;y=3*x-1;returny;}

答案:

int

C语言允许函数值类型缺省定义,此时该函数值隐含的类型是

答案:

int型

在C语言中,函数返回值的类型最终取决于

答案:

函数定义时在函数首部中所说明的函数类型

一个数据类型为void的函数中可以没有return语句,那么函数被调用时

答案:

没有返回值

以下叙述中错误的是

答案:

用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

以下关于C语言程序中函数的说法正确的是

答案:

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

以下正确的函数定义形式是

答案:

doublefun(intx,inty)

若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元,则应填入______。int*p;p=__________malloc(sizeof(int));

答案:

(int*)

若有函数:voidfun(doublea[],int*n){…},则以下叙述中正确的是_________。

答案:

形参a和n都是指针变量

对应下列main函数中的fun函数调用语句,以下给出的四个fun函数头中错误的是_____。intmain(){inta[10],n;fun(n,&a[9]);return0;}

答案:

voidfun(intm,intx)

若有声明:voidfun(int*x,intn,int*s);inta[]={1,2,3,4},b,c;,则以下函数调用形式中正确的是_______。

答案:

fun(a,4,&b);

有以下函数:#includeintf(char*s){

char*t=s;

while(*t++);

t--;returnt-s;}下列关于函数f功能的叙述中正确的是_________。

答案:

求字符串的长度

有以下程序:#includevoidf(intm,int*p,int*q){m=1;*p=2;q=p;}intmain(){inta=10,b=20,c=30;f(a,&b,&c);printf("%d,%d,%d\n",a,b,c);

return0;}其运行结果是_________。

答案:

10,2,30

设有说明:char*str[10];,则标识符str的意义是_________。

答案:

str是一个有10个元素的数组,数组元素的数据类型是指向char型的指针型

设有以下说明,请问标识符str的意义是_________。char(*str)[10];

答案:

str是一个指向有10个char型元素的数组的指针

下列不能输出字符串“Hello”的程序段是_________。

答案:

chars[20],*t=s;t="Hello";printf("%s\n",s);

设有定义charc[20]="1234567",*p=&c[3];则strlen(p)的值为_________。

答案:

4

指针s所指的字符串的长度为_________。char*s="\t\018Name\0Address\n"

答案:

7

下面各语句行中,能正确进行字符串操作的语句是_________。

答案:

char*s;s="ABCDE";

若有定义:chars[10]="include",*p=a;,则不能代表字符u的表达式是_________。

答案:

s+4

有以下程序:#includeintmain(){charc[]="uvwxyz",*p;p=c;printf("%c\n",*(p+5));

return0;}其运行结果是_________。

答案:

z

设有如下程序段:chars[20]="China",*p;p=s;则执行p=s;语句后,以下叙述正确的是_________。

答案:

可以用*p表示s[0];

设有charstr[]="Olympiv";,则表达式*(str+4)的值为_________。

答案:

'p'

已知:chars[10],*p=s;,以下选项中错误的语句是_________。

答案:

s=p+5;

有以下程序:#includeintmain(){

inta[]={1,2,3,4},y,*p=&a[3];

--p;

y=*p;printf("y=%d\n",y);return0;}其运行结果是_________。

答案:

y=3

若有定义:intw[3][5];,则下列不能正确表示该数组元素的表达式是_________。

答案:

*(w+1)[4]

若有说明:inta[4][5];,则对数组a的元素的非法引用是_________。

答案:

a[0][5]

若有以下定义,则表达式*++p的值是_________。inta[5]={10,20,30,40,50},*p=&a[1];

答案:

30

已知inta[]={1,2,3,4,5,6},*p=a;,则值不等于2的表达式是_________。

答案:

(*p)++

设有:inta[]={1,3,5,7},*p=a;以下表达式中值为5的是_________。

答案:

*(p+2)

已知inta[5]={1,3,6,10,15},*p1=&a[1],*p2=&a[4];,则*p2-*p1的值是_________。

答案:

12

对于两个类型相同的指针变量,不能进行______运算。

答案:

+

已知有inta[5]={1,3,5,7,9},*p=&a[2];则表达式p[0]的值为_________。

答案:

5

设有inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则p[5]的值是_________。

答案:

6

若有intx[10],*p=x;,则*(p+5)表示_________。

答案:

数组元素a[5]的值

若有定义语句inta[5]={0,1,2,3,4},*p=a;,则不是对a数组元素的正确引用是_________。

答案:

*(*(a+2))

设有定义inta=2,b=1,*p=&a;,则执行语句*p=3;a=a+b;后,变量a的值为_________。

答案:

4

已知:inta,b=7,*p=&a;,则与a=b;等价的语句是_________。

答案:

*p=b;

已知:int*p,a;则语句“p=&a;”中的运算符“&”的含义是_________。

答案:

取变量地址

有定义:floatx;,以下对指针变量p定义且赋初值的语句中正确的是_________。

答案:

float*p=&x;

设有定义inta,*p;,则使指针p指向变量a的语句是_________。

答案:

p=&a;

变量的指针,其含义是指变量的_________。

答案:

地址

设有:typedefstructstud{longNo;intage;charname[21];}STUDENT;,则下列叙述正确的是______。

答案:

STUDENT是一个结构体类型名

以下叙述中错误的是______。

答案:

可以通过typedef增加新的类型

以下对枚举类型名的定义中,正确的是______。

答案:

enuma{a1,a2,a3};

设有如下枚举类型定义:enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Fortran};,枚举量Fortran的值为______。

答案:

102

设有:unionun{inti;charc;floatf;}a;intb;,则下列语句中正确的是______。

答案:

a.c='A';

若有以下定义语句uniondata{inti;charc1;floatf;}n;intj;,则以下语句正确的是______。

答案:

printf("%d\n",n.i);

设有定义:inta[3][3]={{1},{2}},b[3][3]={1,2};,则执行语句printf("%d",a[1][0]+b[1][0]);后,输出的结果是

答案:

2

已知:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是

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

答案:

357

下列对数组s的初始化,其中不正确的是

答案:

chars[5]="abcdef";

下面能正确对字符串s进行初始化操作的是

答案:

chars[]="CHINA";

设有chararray[]="Welcome";,则数组array所占的存储单元是__________。

答案:

8个字节

下列叙述中不正确的是

答案:

可以对实型数组进行整体输入、输出

已知charstr[6]={'a','b','\0','c','d','\0'};,则printf("%s",str)的输出结果是

答案:

ab

已知:charb[20];,若要从键盘输入字符串"HelloWorld",则正确的输入语句是

答案:

gets(b);

设有定义:chars1[]="abc",s2[]="mnop";,则执行语句strcpy(s2,s1);printf("%s",s2);后,输出的结果是

答案:

abc

共用体类型在任何给定时刻,______。

答案:

只有一个成员驻留在内存中

以下对C语言中共用体类型数据的叙述正确的是______。

答案:

一个共用体变量中不能同时存放其所有成员

当说明一个共用体变量时,系统分配给它的内存是______。

答案:

成员中占内存量最大者所需内存量

已知:union{charc;floata;}test;,则sizeof(test)的值是______。

答案:

4

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是______。structnode{chardata;structnode*next;}a,b,*p=&a,*q=&b;

答案:

p.next=&b;

有以下程序段structst{intx;int*y;}*pt;

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

structstc[2]={10,a,20,b};

pt=c;以下选项中表达式的值为11的是______。

答案:

++pt->x

设有以下语句:structst{intn;charname[10];};structsta[3]={5,"li",7,"wang",9,"zhao"},*p;p=a;则以下表达式的值为6的是______。

答案:

++p->n

有如下定义:structdate{intyear,month,day;};structstudent{intmun;charname[20];charsex;structdatebirthday;charaddress[30];}stu1;对stu1的出生年份进行赋值时,正确的语句是______。

答案:

stu1.birthday.year=1994

以下对结构体类型变量td的定义中,错误的是______。

答案:

struct{intn;floatm;}aa;structaatd;

已知:structst{intnum;charsex;floatscore;}stud,*p=&stud;,则对于结构体变量stud的成员num正确的引用是______。

答案:

p->num

以下结构体变量定义中不正确的是______。

答案:

structexam{intx;inty;};stru;

已知:structstudent{intnumber;charname[10];charsex;}s;,则以下叙述中正确的是______。

答案:

s是结构体变量

结构体变量在程序执行期间______。

答案:

所有成员一直驻留在内存中

在说明一个结构体变量时,系统分给它的存储空间是______。

答案:

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

以下程序运行后,文件t1.dat中的内容是________。#includevoidWriteStr(char*fn,char*str){FILE

*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}intmain(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");return0;}

答案:

end

以下叙述中错误的是________。

答案:

语句“FILEfp;”定义了一个名为fp的文件指针

函数调用语句fseek(fp,10L,1)的含义是________。

答案:

将文件位置指针从当前位置向文件尾方向移动10个字节

若要打开C盘上user子目录下名为readme.txt的文本文件进行读、写操作,则正确语句是________。

答案:

fopen("C:\\user\\readme.txt","r+")

判断二进制文件的结束方式是________。

答案:

feof(fp)!=0

下列语句中,不能将文件型指针fp指向的文件内部指针置于文件头的语句是________。(注:假定能正确打开文件)

答案:

feof(fp)

在C语言中,用w+方式打开一个文件后,可以执行的文件操作是________。

答案:

可任意读写

若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是________。

答案:

非零值

C语言中标准输出文件stdout是指________。

答案:

显示器

fgets(s,n,f)函数的功能是________。

答案:

从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

下列描述中,不正确的是

答案:

定义函数时,形参可以是常量、变量或表达式

判断字符串s1是否大于字符串s2,正确的表达式是

答案:

strcmp(s1,s2)>0

下列叙述中正确的是

答案:

在switch语句中,不一定使用break语句

if语句的控制条件是

答案:

可以用任何表达式

为了避免嵌套的if-else语句的二义性,C语言规定else总是与

组成配对关系。

答案:

在其之前未配对的最近的if

运行下面程序,输出结果是

#includeintmain(){intn=0,m=1,x=2;

if(!n)

x-=1;

if(m)

x-=2;

if(x)

x-=3;

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

return0;}

答案:

-4

与语句y=(x>0?1:x<0?-1:0);的功能相同的if语句是

答案:

if(x>0)y=1;

有如下程序:

#includeintmain(){

inta=5,b=4,c=3,d=2;

if(a>b>c)

prinft(“%d\n”,d);

elseif((c-1>=d)==1)

printf(“%d\n”,d+1);

elseprintf(“%d\n”,d+2);

return0;}

答案:

3

有如下程序:#includeintmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);return0;}

答案:

a=2,b=1

下列程序段的输出结果是

。#includeintmain(){

inta=0,b=0,c=0,d=0;

if((a=1)b=1;c=2;

elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);return0;}

答案:

编译有错

在执行以下程序时,为使输出结果为t=4,则给a和b输入的值应满足的条件是

。intmain(){ints,t,a,b;scanf("%d,%d",&a,&b);

s=1;t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

elseif(a==b)t=5;

elset=2*s;printf("t=%d\n",t);return0;}

答案:

0

如果在程序中需要用到strcpy、strcat等库函数时,需要用#include包含

头文件。

答案:

string.h

以下程序的功能是:输出数组s中最大元素的下标,请填空。#includeintmain(){

intk,p;

ints[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])_____________;

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

return0;}

答案:

k=p

以下程序的功能是:将数组x中相邻两个元素的和存放到另一个数组a中,并输出,请填空。#includeintmain(){

intx[10],a[9],i;

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

scanf("%d",____________);

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

a[i-1]=x[i]+_____________;

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

printf("%d",____________);

putchar('\n');

return0;}

答案:

&x[i]###x[i-1]###a[i]

以下程序的功能是:输入10个数存放在一个数组中,输出其中最大值与最小值、10个数的和及它们的平均值,请填空。#includeintmain(){

int_______________;

intmax,min,sum=0;

inti;

floataverage;

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

{

printf("请输入第%d个数:",i+1);

scanf("%d",&array[i]);

}

max=array[0];

min=____________;

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

{

if(max

答案:

array[10]###sum=array[0]###9###max=array[i]###min>array[i]###sum+array[i]

下面叙述正确的是_______。

答案:

不管哪种形式的循环语句,都可以从循环体内转到循环体外

以下程序段中循环体执行的次数为_______。for(m=4;m;m-=2)for(n=1;n<4;n++){……}

答案:

6

执行下面程序段后,变量k的值为_______。for(k=0,m=1;m<4;m++){

for(n=1;n<5;n++)if(m*n%3==0)continue;

k++;}

答案:

3

下面语句中不是死循环的是_______。

答案:

inti=100;

以下程序段的输出结果是_______。for(i=4;i<=10;i++){if(i%3==0)continue;printf(“%d”,i);}

答案:

457810

执行下面的程序后,a的值为_______。intmain(){

inta,b;

for(a=1,b=1;a<=100;a++){

if(b>=20)break;if(b%3==1)

{

b+=3;continue;

}b-=5;}return0;

}

答案:

8

以下程序段的输出结果是_______。intx=3;do{printf(“%3d”,x-=2);}while(!(--x));

答案:

1-2

有程序如下#includeintmain(){inty=5;while(y--);printf("y=%d\n",y);return0;}程序执行后的输出结果是_______。

答案:

y=-1

语句while(!e);中的条件!e等价于_______。lass=MsoNormal>

}

答案:

e==0

设有inty=3;执行下列循环语句后,变量y的值是_______。do++y;while(y++<4);

答案:

5

执行for(i=0;i<10;i++);结束后,i的值是________。

答案:

10

下面程序的输出结果是________。

#includeintmain(){ints,k;for(s=1,k=2;k<5;k++)s+=k;printf("%d\n",s);return0;}

答案:

10

以下叙述正确的是________。

答案:

用do-while语句构成的循环,在while后的表达式为零时结束循环。

有如下程序

#includeintmain(){intx=3;do{printf("%d",x--);}while(!x);return0;}

答案:

3

若x是int型变量,以下程序段的输出结果是________。

for(x=3;x<6;x++)

printf((x%2)?("**%d"):("##%d\n"),x);

答案:

**3##4

以下程序的输出结果是_______。

#include

intmain()

{

inty=10;

for(;y>0;y--)

if(y%3==0){printf("%d",--y);continue;}

return0;

}

答案:

852

若a、b、c1、c2、x、y均是整型变量,以下正确的switch语句是

答案:

switch(a-b)

当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是

答案:

!k%2==1

下列条件语句中,功能与其他语句不同的是

答案:

if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

以下4个选项中,不能看作一条语句的是

答案:

if(b==0)m=1;n=2;

有定义语句:inta=1,b=2,c=3,x;则以下选项中各程序段执行后,x的值不为3的是

答案:

if(a<3)x=3;

下面的程序:

。intmain(){intx=3,y=0,z=0;if(x=y+z)printf("****");elseprintf("####");return0;}

答案:

输出####

假定所有变量均已正确说明,下列程序段运行后x的值是

a=b=c=0;x=35;

if(!a)x--;

elseif(b);

if(c)x=3;

elsex=4;

答案:

4

设有变量a、b、c、d且都已正确定义并赋值。若有下列if语句:if(a

答案:

当a

执行以下程序段后,输出的结果是______。inta=1;

switch(a)

{

case1:printf("你好");

case2:printf("再见");break;

default:printf("晚安");

}

答案:

你好再见

有定义intx=1,y=2,z=3;,执行下列程序段后,输出的结果是_______。if(x>y)z=x;x=y;y=z;printf("%d,%d,%d",x,y,z);

答案:

2,3,3

将变量x和y中的较小值赋值给z的正确语句是______。

答案:

z=x;if(x>y)z=y;

下面不是C语言语句的是

答案:

x=1,y=5

已知:intx=10,y=3,z;则下列语句的输出结果是

。printf(“z=%d”,z=(x%y,x/y));

答案:

z=3

以下四个程序中,完全正确的是

答案:

#include

已知:inta,b;用语句scanf(“%d%d”,&a,&b”);输入a、b的值时,不能作为输入数据分隔符是

答案:

,

以下说法正确的是

答案:

当输入数据时,必须指明变量的地址,如scanf("%f",&f);

若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是

。(□代表一个空格符)

答案:

□2□3

以下语句:temp=x;x=y;y=temp;的功能是

答案:

交换x,y

算法具有五个特性,以下选项中不属于算法特性的是

答案:

简洁性

以下叙述中正确的是

答案:

用C程序实现的算法可以没有输入但必须要有输出

结构化程序设计所规定的三种基本控制结构是

答案:

顺序、选择、循环

以下叙述中错误的是

答案:

空语句出现在任何位置都不会影响程序运行

下列语句中符合C语言语法的赋值语句是

答案:

a=7+b,c=a+7;

设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是

答案:

x=(int)(x*100+0.5)/100.0;

以下程序段的输出结果是

。int

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

答案:

1234

有以下程序intmain(){inta=666,b=888;printf("%d\n",a,b);return0;}

答案:

666

以下不能定义为用户标识符的是______。

答案:

int

以下选项中不合法的C语言标识符是______。A.print

B.FOR

C._00

D.&&a

答案:

&&a

以下选项中,能作为C语言标识符的是______。

答案:

_0_

C语言程序中main()函数可以写在_____。

答案:

以上选项均正确

以下叙述中正确的是______。

答案:

C语言标识符是由字母、数字和下划线组成,且首字符不能是数字

C语言中基本数据类型包括______。

答案:

整型、实型、字符型

以下程序的输出结果是_______。

#includeintmain(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=10)

break;if(b%3==1){b+=3;continue;}}printf("%d\n",a);return0;}

答案:

4

有以下程序段:int

n,t=1,s=0;scanf("%d",&n);

do{

s=s+t;

t=t-2;

}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是_______。

答案:

任意负奇数

以下循环结构的循环次数为_______。inti;for(i=0;i<10;i++)

i++;

答案:

5

以下程序的输出结果是

。charch;ints=0;for(ch=’A’;ch<’Z’;++ch)if(ch%2==0)s++;printf("%d",s);

答案:

12

以下选项中可作为C语言整型常量的是______。

答案:

0xab

C源程序中不能表示的数制是______。

答案:

二进制

若有定义:chara='\42';,则变量a_____。

答案:

包含1个字符

C语言中字符型数据在内存中的存储形式是______。

答案:

ASCII码

设有inta;,执行语句a='A'+1.6;后,则正确的叙述是______。

答案:

a的值是字符'A'的ASCII码值加上1

已知:inta=8,b=5,c;,则执行语句c=a%b+0.3;后,c的值是______。

答案:

3

C语言中,运算对象必须是整型数值的运算符是______。

答案:

%

已知intx=10;floaty=20;doublez=30;,则表达式x+y+z的数据类型是______。

答案:

double

设有定义:inti=3480;,下列选项中,取i的十位上的数字的表达式是______。

答案:

i/10%10

若定义:inti=3,j=4,k=5;,则表达式i*j+j/k-k%i的值是______。

答案:

10

设有intm,n=10;,则执行语句m=n++;后,m、n的值分别为______。

答案:

10,11

已知intx=3,n=5;,则以下与其他三组输出不同的一组语句是______。

答案:

n=x++;printf("%d\n",n);

设有定义int

b=0;,表达式______与其他表达式的值不同。

答案:

b++

设有inta,f=3;,则执行语句a=(f++)%3;后a的值是______。

答案:

0

一个C程序的执行是从______。

答案:

本程序的main函数开始,到main函数结束

设有inta=3;,执行语句a+=a-=a*a;后,变量a的值是______。

答案:

-12

设有inta;,则执行语句a=4+5,a-5;后,a的值是______。

答案:

9

以下选项中,和语句x*=y+2;等价的是_____。

答案:

x=x*(y+2);

下列选项中,运算符的优先级排序正确的是______。

答案:

!、&&、||、+=

在C语言中______表示逻辑真。

答案:

非0的数

表达式:10!=9的值是______。

答案:

1

设有inta;,则不能正确表示数学不等式“10

答案:

10

已知数学关系式x≥y≥z,以下选项中能正确表示该关系式的C语言表达式是_____。

答案:

(x>=y)&&(y>=z)

下列表达式中值为0的是______。

答案:

7/8

设有inta=1,b=0;,则表达式a<2||++b的值是______。

答案:

1

已知:inta=5,b=6,c=7,d=8,m=2,n=2;,则执行语句(m=a>b)&&(n=c>d);后,n的值_____。

答案:

2

以下选项中关于C语言的叙述错误的是______。

答案:

变量不能使用大写字母命名

C程序必须要有一个

函数,而且只能有一个。C语言程序总是从

函数开始执行,并且终止于该函数。

答案:

main();main;主###main();main;主

用高级语言编写的源程序必须通过

程序翻译成二进制程序计算机才能识别,这个二进制程序称为

程序。

答案:

编译###目标

C语言源程序文件的后缀是

,经过编译后,生成文件的后缀是

,经过连接后,生成文件的后缀是

答案:

.c;c###.obj;obj###.exe;exe

为了提高程序的可读性,在编写C程序时通常使用()格式,并给程序添加必要的注释。注释可出现在程序的任何位置,注释对程序的执行

,C程序中一般块注释用

表示,行注释用

表示。

答案:

缩进###没有影响;无影响;不影响###/*…*/;

/*

*/###//

十进制数123,转换为二进制数为

,转换为八进制数为

,转换为十六进制数为

答案:

1111011###0173;173###0x7B;0X7B;7B

在C语言中,要求运算数必须是整型的运算符是(

)。

答案:

%

若有代数式2ab/cd,则下面错误的C语言表达式是(

)。

答案:

2*a*b/c*d

假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

答案:

8

执行语句“x=(a=3,b=a--);”后,x、a、b的值依次为(

)。

答案:

3,2,3

若有以下语句:inta=3,b=6,c;c=a^b<<2;,则变量c的二进制值是()。

答案:

00011011

用函数从终端输出一个字符,可以使用函数()。

答案:

putchar()

要输出长整型的数值,需用格式符()。

答案:

%ld

设a、b为float型变量,则以下不合法的赋值语句是()。

答案:

b=(a%4)/5

表达式“3.5+(int)(8/3*(3.5+6.7)/2)%4”的值为

答案:

5.5

假设x是一个两位正整数,使该数的个位和十位调换的表达式为

。(如78调换后变为87)

答案:

x%10*10+x/10

将下列数学式转换成C语言表达式为:

答案:

sin(sqrt(x*x))/(a*b)

设整型变量

x、y、z均为3,执行“x%=y+z”后,

x=

答案:

3

若有char

x=32

,

y=3

;

则表达式

~x&y的值为

答案:

3

算法通常具有以下5个方面的特性:

、零个或多个输入、一个或多个输出。

答案:

有穷性###确定性###可行性

若有定义“char

c1='a',c2='e';”,已知字符“a”的ASCII码值是97,则执行语句“printf("%d,%c",c1,c2+2);

”后的输出结果是

答案:

97,g

表达式5.7+2/19=

。若定义“inta=4,b;”,则表达式“(b=6*5,a*4),a+16”的值是

答案:

5.7###20

要判断char型变量m是否是数字字符,可以使用表达式(

)。

答案:

m>='0'&&m<='9'

要判断char型变量c是否为大写字母,可以使用表达式(

)。

答案:

c>='A'&&c<='Z'

判断x的值为奇数,以下不能满足要求的表达式是(

)。

答案:

!(x%2)

假设有定义int

a=1,b=2,m=1,n=1。则执行表达式

(m=a>b)&&(n=a!=b)后,m,n的值为(

)。

答案:

0

1

以下选项中不合法的表达式是(

)。

答案:

x+1=x

下列运算符中优先级最高的是(

)。

答案:

!

c=(a&&b)&&(p>'B')

答案:

0

y=c>=b&&b>=a;

答案:

0

1

其中switch括号中表达式的类型(

)。

答案:

可以是整型或字符型

有int

x,y,z;且x=3,y=4,z=5,则表达式!(x+y)+z-1&&y+z/2的值为

答案:

1

用x描述1到100之间的所有偶数的表达式为

答案:

(x>=1&&x<=100)&&(x%2==0);x>=1&&x<=100&&x%2==0;(x%2==0)&&(x>=1&&x<=100);x%2==0&&x>=1&&x<=100;x%2==0&&(x>=1&&x<=100)

当a=3,b=-4,c=5时,表达式(a&&b)==(a||c)的值是

答案:

1

判定闰年year的条件是能被4整除但不能被100整除,或能被400整除的年份,用表达式表示为

答案:

(year%4==0&&year%100!=0)||(year%400==0)

若有定义“int

a=1,b=0;”表达式--a>(b+a)?10:5>b++?'A':

'Z'的值为

答案:

A;'A'

能正确表示x<0或10

答案:

x<0||(x>10&&x<50);

x<0||x>10&&x<50

下述循环体语句的循环次数为(

)。

int

x=-1;

do

{

x=x*x;

}

while(!x);

答案:

1次

在下列选项中,没有构成死循环的程序段是(

)。

答案:

int

k=1000;

do

{

++k;

}

while(k>=10000);

下面程序输出结果是(

)。#includeintmain(void){

intk=0;charc='A';

do

{

switch(c++)

{

case'A':k++;break;

case'B':k--;

case'C':k+=2;break;

case'D':k=k%2;continue;

case'E':k=k*10;break;

default:k=k/3;

}

k++;

}while(c<'G');

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

return0;}

答案:

k=4

程序段“int

num=0;

while(num<=2)

printf("%d,",num++);”的运行结果是(

)。

答案:

0,1,2,

下面程序段的运行结果为(

)。

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

while(a

答案:

1,2,0

该程序段的执行结果为(

)。

答案:

显示1和-2

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

)。

答案:

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

执行下面的程序后,a的值为(

)。

#includeintmain(void){

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20)

break;

if(b%3==1)

{

b+=3;

continue;}

b-=5;

}

return0;}

答案:

8

以下叙述正确的是(

)。

答案:

do-while语句构成的循环,当while语句中的表达式值为零时结束循环

以下叙述正确的是(

)。

答案:

只能在循环体内和switch语句体内使用break语句

当运行以下程序时,从键盘键入right?

,

则下面程序的运行结果是

答案:

sjhiu

下列for循环语句执行的次数是(

)。

for(x=0,y=0;(y=123)&&(x<4);x++);

答案:

4

当从键盘上输入的数据为:2,3,5,则正确的输出结果是(

)。

答案:

不确定值

一个C程序的执行是从(

)。

答案:

本程序的main函数开始,到main函数结束

以下叙述正确的是(

)。

答案:

C语言本身没有输入输出语句

以下叙述不正确的是(

)。

答案:

在C程序中,注释说明只能位于一条语句的后面

在一个C程序中下列说明正确的是(

)。

答案:

main()函数可以在任何地方出现

对C语言的特点,下面描述不正确的是(

)。

答案:

C语言的可移植性较差

下列符号串中,属于C语言合法标识符的是(

)。

答案:

_123

以下选项中合法的C语言字符常量是(

)。

答案:

'\x43'

以下选项中,不合法的C语言常量是(

)。

答案:

'no'

编译程序的功能是(

)。

答案:

将C源程序编译成目标程序

二进制代码程序属于(

)。

答案:

面向机器语言

将二进制数转换为十进制数:(110101)2=(

)10

答案:

53

将十进制浮点数转换为二进制浮点数:(52.625)10=(

)2

答案:

110100.101

C程序是由函数构成的。其中有并且只能有

个主函数。一个函数由两部分组成:函数的首部和

答案:

1;一###函数体

设定义“int

k=1,n=163;”,执行下面程序段后,k的值是

do{

k*=n%10;

n/=10;}while(n);

答案:

18

以下程序的运行结果是

#includeintmain(void)

{

inty=10;

do

{

y--;

}while(--y);

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

答案:

1

以下程序的运行结果是

答案:

s=7

break语句只能用于

语句和

语句中。

答案:

循环;switch###switch;循环

下列程序的功能为:将从键盘输入的一组字符统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大数。#includeintmain(void){

intm=0,n=0;

charc;

while((

)!='\n')

{

if(c>='A'&&c<='Z')m++;

if(c>='a'&&c<='z')n++;

}

printf("%d\n",m

答案:

c=getchar()###n:m

下列程序的功能为:求1~100以内所有能被13整除的数的累加和,当累加和超出100时停止累加。请填空。#include

intmain(void){

inti,sum=0;

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

{

if(

)

sum+=i;

if(sum>100)

;

}

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

return0;}

答案:

i%13==0###break

已定义“inti;charx[10];”,为了给x数组赋值,以下正确的语句是(

)。

答案:

for(i=0;i<6;i++)x[i]=getchar();

若有以下的数组定义:“chara[]="abcd";charb[]={'a','b','c','d','e'};”,则以下正确的描述是()。

答案:

a数组和b数组长度相同

若有定义“inti;intx[3][3]={2,3,4,5,6,7,8,9,10};”,则执行语句“for(i=0;i<3;i++)printf("%4d",x[i][2-i]);”的输出结果是()。

答案:

468

下列对二维数组a进行正确初始化的是(

)。

答案:

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

下列说法正确的是(

)。

答案:

区分数组的各个元素的方法是通过下标

下列程序的运行结果是

答案:

x=1,y=20

若有定义“char

str1[30],str2[30];”,则输出较大字符串的正确语句是(

)。

答案:

if(strcmp(str1,str2)>0)

printf("%s",str1);

elseprintf("%s",str2);

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

答案:

19

下列程序段的输出结果是(

)。

char

str[15]=

"hello!";

printf("%d\n",strlen(str));

答案:

6

有以下程序段,当输入为happy!时,程序运行后输出结果是(

)。

char

str[14]={"I

am

"};

strcat(str,

"sad!");

scanf("%s",str);

printf("%s",str);

答案:

happy!

下列关于数组的描述中错误的是(

)。

答案:

如果在对数组进行初始化时,给定的数据元素个数比数组元素少,多余的数组元素自动初始化为最后一个给定元素的值

有定义语句“int

i=3,x[4]={1,2,3};”,则数组元素x[i]的值是(

答案:

0

若有定义“char

a[]="abcdef";”,则执行语句“printf("%d,%d\n",sizeof(a),strlen(a));”后的输出结果是

答案:

7,6

下列程序段的运行结果是

char

str[20]="This

is

my

book";

str[4]=

'\0';

str[9]=

'\0';

printf

("

%d",strlen

(str));

答案:

4

下列程序段的运行结果是

答案:

Tony

下列程序的运行结果为:

)。

答案:

1

1

1

5

有定义语句“chara[]={"Iamastudent"};”,该字符串的长度是

,a[3]=

答案:

14###m

有二维数组定义“intk[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};”,则其中元素k[2][1]的值是

,k[1][2]的值是

答案:

10###7

若有定义“inta[4][4];”,则a数组中行下标的下限为

,列下标的上限为

答案:

0###3

下列程序运行时输入:203058540,运行结果为:

答案:

max=85###min=5###sum=180###aver=30.00

以下关于函数的说法中正确的是(

)。

答案:

调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

C语言中函数返回值的类型是由以下(

)决定的。

答案:

函数定义时指定的类型

对于声明为void

func(char

ch,

double

x);的函数,以下能调用该函数的语句是(

)。

答案:

func('A',

10.5);

用数组名作为函数调用时的实参,则传递给形参的是(

)。

答案:

数组首地址

以下能够声明函数voidfun(intarr[],intn){}的语句是(

)。

答案:

voidfun(int[],int);

关于函数的递归调用,以下说法错误的是(

)。

答案:

递归函数的效率比功能相同的非递归函数更高

以下说法中不正确的是(

)。

答案:

在函数内的复合语句中定义的变量在整个函数范围内都可访问

已知:#definefun(a,b)a*b,则:fun(1+2,3+4)的值为(

)。

答案:

11

程序执行的入口点、不能被其他函数调用的是

函数。

答案:

main();主

若函数没有返回值语句,则函数的返回值类型说明符为

答案:

void

函数由

和函数体两个部分组成。

答案:

函数首部;函数头

若函数类型缺省没定义,则隐含的函数返回值类型是

答案:

int

已知函数的定义为int

fun(int

a,

double

b){…},则声明函数的语句为

答案:

int

fun(int

a,

double

b);;

int

fun(int,

double);

;fun(int,

double);

;fun(int

a,

double

b);

声明一个局部变量用静态方式存储的关键字是

答案:

static

以下程序的输出结果是

答案:

7,14

以下程序的输出结果是

答案:

a=48

以下程序的输出结果是(

)。

答案:

654321

设已定义“inta,*p;”,下列赋值表达式中正确的是()。

答案:

p=&a

若已定义“inta[]={1,2,3,4},*p=a;”,则下面表达式中值不等于2的是()。

答案:

*(++a)

若已定义“inta[]={1,2,3,4},*p=a+1;”则p[2]的值是()。

答案:

4

设已定义“chars[]="ABCD";”,printf("%s",s+1)的值为()。

答案:

BCD

下面对字符串变量的初始化或赋值操作中,错误的是()。

答案:

chara[10];a="OK";

设已定义char*ps[2]={"abc","1234"};则以下叙述中错误的是()。

答案:

ps为指针变量,它指向一个长度为2的字符串数组

以下程序运行后,输出结果是()。

答案:

字符c的地址

下面程序的输出是()。

答案:

xyabcABC

执行以下程序后,y的值是()。

答案:

19

设已有定义:“char*st="howareyou";”,下列程序段中正确的是()。

答案:

chara[11],*p;strcpy(p=a+1,&st[4]);

若有说明“inti,j=7,*p=&i;”,则与“i=j”;等价的语句是()。

答案:

*p=*&j;

以下程序的输出结果是()。

答案:

ga

执行以下程序的输出结果是()。

答案:

2

下面程序段的输出结果是()。

答案:

6

设有如下函数定义:

答案:

8

若有语句:int

a[4]={1,2,3,4},*p;

p=&a[1];,则printf("%d\n",

*p++);的结果是

答案:

2

若有定义“int

w[10]={23,54,10,33,47,98,72,80,61},

*p=w;”,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是

答案:

*(p+5);

p[5]

执行下面的语句后,程序的输出是

int

m[]={1,2,3,4,5,6,7,8},

*p1=m+7,

*p2=&m[2];

p1-=3;

printf("%d,

%d\n",*p1,*p2);

答案:

5,

3

已知“int

a[5]

=

{

2,

3,

4,

5,

6

};

int

*p

=

a+2;”,表达式

*p*a[3]

的值是

答案:

20

fclose(fp);

答案:

1234,34

需要以写方式打开当前目录下一个名为file1.txt的文本文件,下列打开文件正确的选项是()。

答案:

fopen("file1.txt","w");

若fp是指向某文件的指针,且已指到该文件的末尾,则C语言函数feof()的返回值是()。

答案:

非零值

下面的变量表示文件指针变量的是()。

答案:

FILE*fp

调用fopen()函数,如果打开文件不成功,则函数的返回值是(

)。

答案:

NULL

C语言可以处理的文件类型是(

)。

答案:

文本文件和二进制文件

下列程序运行时若输入:3101wang102huang103liu,则其运行结果为:

#include#includestruct

worker{

int

num;

char

name[20];};int

main(void){

struct

worker

per[10],t;

int

n,i,j;

scanf("%d",&n);

for(i=0;i0)

{

t=per[j];

per[j]=per[j+1];

per[j+1]=t;

}

for(i=0;i

答案:

102,huang###103,liu###101,wang

则以下叙述中不正确的是(

)。

答案:

stutype是用户定义的结构体类型名

当定义一个结构体变量时系统分配给它的内存是(

)。

答案:

各成员所需内存的总和

设变量s中的“生日”是“1984年11月11日”,下列对“生日”的正确赋值方式是(

)。

答案:

s.birth.year=1984;

下列程序的运行结果为

#include

intmain(void)

{FILE*fp;

inti;

chart,str[]="abcd";

fp=fopen("abc.dat","wb+");

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

fwrite(&str[i],1,1,fp);

fseek(fp,-3L,2);

fread(&t,1,1,fp);

fclose(fp);

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

return0;}

答案:

b

printf("%s",str);

答案:

cpro

已知有定义,FILE*fp;charstr[]="Hello!";fp=fopen("file.dat","wb");

将数组str中存放的字符串写到名为file.dat的二进制文件中。需要的语句是(

)。

答案:

fwrite(str,sizeof(char),6,fp);

若已经定义“structstu{inta,b;}student;”,则下列输入语句中正确的

温馨提示

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

评论

0/150

提交评论