C语言程序设计(西安工程大学)智慧树知到期末考试答案章节答案2024年西安工程大学_第1页
C语言程序设计(西安工程大学)智慧树知到期末考试答案章节答案2024年西安工程大学_第2页
C语言程序设计(西安工程大学)智慧树知到期末考试答案章节答案2024年西安工程大学_第3页
C语言程序设计(西安工程大学)智慧树知到期末考试答案章节答案2024年西安工程大学_第4页
C语言程序设计(西安工程大学)智慧树知到期末考试答案章节答案2024年西安工程大学_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计(西安工程大学)智慧树知到期末考试答案+章节答案2024年西安工程大学有如下程序段:

inti=0;

while(i<=2)i++;

printf("%d",i);

则正确的执行结果是:4

答案:错若有说明:inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为2

答案:错若inta[10]={1,2,3,4,5};则a[5]的值是0。

答案:对若有定义:charstr[]="Beijing\0China";则数组str的长度为15。

答案:错一个函数返回值的类型是由调用该函数的函数的类型决定的。

答案:错以下叙述中,正确的是(

答案:若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用;形参是局部变量,函数调用完成即失去意义;在同一C程序文件中,不同函数中可以使用同名变量如果在一个函数中的复合语句中定义了一个变量,则以下不正确的说法是()。

答案:该变量在本程序范围内均有效;该变量在该函数中有效;该变量为非法变量以下不能正确读入字符串的程序段是(

答案:charstr[10];scanf("%s",&str);char*p;scanf("%s",p);;charstr[10],*p=str;scanf("%s",p[1]);以下用户标识符中,不合法的是(

答案:int;a+b;123设整型变量a=2,则执行下列语句后,浮点型变量b的值是0.5的是()。

答案:b=1/(a*1.0);b=1/(float)a;b=1.0/a下述对C语言字符数组的描述中正确的是(

答案:不可以用关系运算符对字符数组中的字符串进行比较;字符数组可以存放字符串;字符数组中的字符串可以整体输入、输出以下可以对二维数组a进行正确初始化的语句是()

答案:inta[][3]={{1,2},{0}};;inta[][3]={1,2,3,4,5,6};;inta[2][3]={0};下划线是标识符中的合法字符。()

答案:对结构体名在定义结构体时不可省略。()

答案:错在C语言中,逗号既可以作为运算符,也可以作为分隔符。()

答案:对一个变量的地址称为该变量的指针。()

答案:对随机操作只适用于二进制文件。()

答案:错在if语句中,如果要想在满足条件时执行一组(多个)语句,则必须把这-组语句用{括起来组成-一个复合语句。()

答案:对C语言程序中可以有多个函数,但只能有一个主函数。()

答案:对C语言程序只能有一个文件。()

答案:错continue只能用于循环体中。()

答案:对double型变量在内存中占的字节数比int型变量在内存中占的字节数多。()

答案:对如果函数定义出现在函数调用之前,可以不必加函数原型声明。()

答案:对for循环的三个表达式可以任意省略,while,do-while也是如此。()

答案:错指针变量,只能作为函数的形参,不可以作函数的实参。()

答案:错假定w、x、y、z、m均为int型变量;有如下程序段:w=1;x=2;y=3;z=4;m=(w答案:1以下程序的输出结果是()

voidmain(){

int

x=4,y=8;

x+=y;y+=x;

printf(“%d

%d\n”,x,y);

}

答案:12

20已知a=12,则表达式a+=a-=a*=a的结果是()

答案:0执行以下程序后的输出结果是()voidmain(){inta=10;

a=(3*5,a+4);

printf(“a=%d\n”,a);}

答案:a=14在C语言中,要求运算数必须是整型的运算符是()

答案:%有以下程序#includevoidmain(){

intx;

scanf(“%d”,&x);

if(x<=3);else

if(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果()。

答案:大于3且不等于10的整数以下程序的输出结果是(

#include"stdio.h"

voidmain()

{

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);}

答案:4表达式:(int)((double)9/2)-9%2的值是()

答案:3有程序:#include"string.h"#include

"stdio.h"voidmain(){

charp[]={'a','b','c'},q[10]={'a','b','c'};

printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是(

)

答案:由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3若要打开:A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。

答案:fopen("A:\\user\\abc.txt","r+")由系统分配和控制的标准输出文件为()。

答案:显示器若有定义:inta,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是()。

答案:3;5设有以下程序段struct

MP3{charname[20];

charcolor;

float

price;}std,*ptr;ptr=&std;若要引用结构体变量std中的color成员,写法错误的是()

答案:std->color执行下列程序#include"stdio.h"inta=3,b=4;voidfun(intx1,intx2){

printf("%d,%d\n",x1+x2,b);}voidmain(){inta=5,b=6;fun(a,b);}后输出的结果是()

答案:11,4运行下面程序时,若从键盘输入数据为"123",则输出结果是()

#include"stdio.h"

voidmain()

{intnum,i,j,k,place;

scanf("%d",&num);

if(num>99)

place=3;

elseif(num>9)

place=2;

else

place=1;

i=num/100;

j=(num-i*100)/10;

k=(num-i*100-j*10);

switch(place)

{case3:printf("%d%d%d\n",k,j,i);

break;

case2:printf("%d%d\n",k,j);

break;

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

}

}

答案:321以下程序段输出的结果是(

)

inta=1234;printf(“%2d\n”,a);

答案:1234下面结构体定义语句中,错误的是()

答案:structord{intx;inty;intz;}structorda;一个C语言的执行是从(

答案:本程序的主函数开始,到本程序的主函数结束有以下程序

#includevoidmain(){inta=1,b=0;

if(--a)

b++;

else

if(a==0)b+=2;

elseb+=3;

printf("%d",b);}

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

)。

答案:1设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是(

)。

答案:交换x和y中的值有以下程序#include"stdio.h"main(){

char*s="12134";intk=0,a=0;

while(s[k+1]!='')

{

k++;

if(k%2==0){a=a+(s[k]-'0'+1);continue;}

a=a+(s[k]-'0');

}

printf("k=%da=%d",k,a);}程序运行后的输出结果是()

答案:k=4a=12有定义char

*s=”\t\‟Name\\Address\n”;,则指针s的指字符串的长度为(

答案:15若定义inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则不能表示a数组元素的表达式是()

答案:a[10]对以下程序,正确的说法是(

)sub(charx,chary){intz;z=x%y;return

z;}voidmain(){intg=5,h=3,k;

k=sub(g,h);

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

}

答案:程序中没有错误,可以正常运行有如下程序#includevoidmain(){charch[80]="123abcdEFG*&";

intj;longs=0;

puts(ch);

for(j=0;ch[j]>'\0';j++)

if(ch[j]>='A'&&ch[j]<='Z')ch[j]=ch[j]+'e'-'E';

puts(ch);

}该程序的功能是(

)

答案:将字符数组ch中的大写字母转换成小写若有说明:inti=7,j,*p=&i;,则与j=i;等价的语句是()

答案:j=*p;有以下程序

#includevoidfun(intp){intd=2;

p=d++;printf("%d",p);}voidmain(){intp=1;

fun(p);printf("%d\n",p);}

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

答案:21若有说明:inta[10],*p=a;不能正确表示a[2]地址的是()

答案:p[2]以下语句或语句组中,能正确进行字符串赋值的是()

答案:char*sp="right!";下面判断正确的是()。

答案:char*s="girl";

等价于char*s;s="girl";若要求从键盘读入含有空格字符的字符串,应使用函数gets()

答案:对假定int类型变量占用四个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中占的字节是20。

答案:对下列一组初始化语句中,不正确的是(

)

答案:inta[7]=7*6;;inta[5]={9,5,7,4,0,2};;inta[9]={0,7,0,4,8};以下定义语句中,正确的是(

答案:char*a[3];;inta[]={1,2};;chars[10]="test";下列合法的字符常量是()

答案:‘’;‘A’;‘2’以下数组定义中正确的是(

)

答案:intx[2][3]={1,2,3,4,5,6};;intx[][3]={{1,2,3},{4,5,6}};;intx[][3]={0};若有定义inta[2][3];则对a数组元素的错误引用有(

)

答案:a(1)(2);a[1,2];a[1][3]用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志“0'。()

答案:对C语言标准输入操作中,gets()函数一次只可读取一个字符。()

答案:错在C语言程序中,凡是没有出现存储类别说明符的变量都是自动类的。()

答案:对逻辑表达式的值只能为1或0。()

答案:对C语言规定:定义符号常量时必须用大写字母。()

答案:错C语言是一种具有某些低级语言特征的高级语言。()

答案:对在C语言中能逐个地使用下标变量,也能一次引用整个数组。()

答案:错以“a”方式打开一个文件时,文件位置标记指向文件首。()

答案:错任何表达式语句都是表达式加分号组成的。()

答案:对一个C语言程序是从()开始执行的。

答案:名为main的函数以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)的c语言表达式是()。

答案:x/y*z以下程序执行时输入Language

Programming,输出结果是(

)#include

voidmain(){char

str[30];

gets(str);

printf("str=%s\n",str);

}

答案:str=Language

Programming用fopen()函数打开一个新的二进制文件,该文件可以读也可以写,则文件的入打开方式是()

答案:"wb+"下面程序的输出是()#includevoidmain(){intx=023;

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

答案:18若有以下类型说明语句:char

w;int

x;float

y;double

z;则表达式w*x+z-y的结果为(

)类型。

答案:double在C语言程序中,表达式5%2的结果是(

)。

答案:1当已存在一个abc.txt文件时,执行函数fopen("abc.txt","r+")的功能是()

答案:打开abc.txt文件,可以读取和写入新的内容设有以下说明语句:structex{intx;floaty;charz;}example;则下面的叙述中不正确的是()。

答案:example是结构体类型名执行下面程序中的输出语句后,输出结果是()#includevoidmain(){inta;

printf("%d\n",(a=3*5,a*4,a+5));}

答案:65有以下程序#includevoidmain(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);

}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()

答案:m=123n=456p=789假定建立了以下链表结构,指针p和q分别指向如图所示的结点,则以下可以将q所从链表中删除并释放该结点的语句组是(

答案:(*p).next=(*q).next;free(q);#include

#includetypedefstruct{charname[9];charsex;floatscore[2];}STU;

voidf(STUa){STUb={"Zhao",'m',85.0,90.0};

inti;

strcpy(,);

a.sex=b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

}main(){

STUc={"Qian",'f',95.0,92.0};

f(c);

printf("%s,%c,%2.0f,%2.0f",,c.sex,c.score[0],c.score[1]);

}

程序的运行结果是()

答案:Qian,f,95,92C语言可以处理的文件类型是()

答案:文本文件和二进制文件若有说明:char*pc[]={"aaa","bbb","ccc","ddd"};,则以下叙述正确的是()

答案:pc[0]代表的是字符串"aaa"的首地址若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是(

答案:3执行inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;语句后,表达式*(p[0]+1)+**(q+2)的值为()。

答案:5若有定义:int

k=0,m=0;以下程序段执行后m的值是()

while(k==5)

{m++;k++;}

答案:0设有如下定义:

structst

{

inta;

floatb;}st1,*pst;若有pst=&st1;则下面引用不正确的是()。

答案:pst.b有如下程序

#include

intfunc(inta,intb){

return

(a+b);}

voidmain()

{

int

x=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出结果是(

答案:15下面的程序执行后,文件test.t中的内容是()

#include

voidfun(char*fname,char*st)

{

FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i答案:hello,若有定义语句:char

s[10]="1234567\0\0";,则strlen(s)的值是7。

答案:对以下定义语句中,正确的是(

)

答案:inta[]={1,2};;chars[10]={"test"};;inta[]={'a','b','c'};以下选项中,正确的C语言字符型常量是()。

答案:"a";'a';'\x41'以下关于字符串处理的叙述错误的是()。

答案:两个字符串连接时,对存储空问的大小没有要求;两个字符串进行比较时,短的一个必定比长的一个小;计算一个字符串的长度时,应包含串尾的结束标志do-while循环至少要执行一次循环体。()

答案:对函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。()

答案:对标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。()

答案:对结构体成员必须是不同数据类型的变量。()

答案:错函数的实参可以是常量,变量或表达式。()

答案:对可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。()

答案:对阅读下面的程序#includevoidmain()

{

inti,j,m,n;

i=8;j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是(

答案:9,11,9,10使用fgetc()函数,则文件的打开方式必须是()。

答案:读或读写有以下函数#includestructstu{intmun;

char

name[10];

intage;};voidfun(structstu*p){printf(“%s”,p->name);}voidmain(){structstux[3]={{01,”zhang”,20},{02,”wang”,19},{03,”zhao”,18}};fun(x+2);}程序运行输出结果是(

)

答案:zhao设ch是char型变量,值为'A',则表达式ch=(ch>='A'&&ch<='Z')?ch+32:ch的值是(

答案:a已知字母A的ASCII码为十进制的65,下面程序的输出是()#includevoidmain(){charch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c",ch1,ch2);

}

答案:67,D以下结构体类型说明和变量定义中正确的是()

答案:typedefstruct{intn;charc;}REC;

REC

t1,t2

;设有如下函数定义:

intf(chars[])

{inti=0;

while(s[i++]!='\0');

return(i-1);

}如果在主程序中用下面的语句调用上述函数,则输出结果为(

)printf("%d\n",f("goodbye!"));

答案:8在C程序中,可以将整型数以二进制形式存放到文件中的函数是()

答案:fwrite()已知:charstr[10],*p=str;下面的语句中正确的是()

答案:p="ABC";以下程序的输出结果是()

inta,b;

void

fun()

{

a=100;b=200;}

void

main()

{

inta=5,b=7;

fun();

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

}

答案:57设有以下定义和语句

charstr[20]=”Program”,*p;

p=str;

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

答案:*p与str[0]中的值相等下列对字符串的定义中,错误的是()

答案:charstr[7]="FORTRAN";以下程序的运行情况是()

#include

void

main()

{

inti=1,sum=0;

while(i<10)

sum=sum+1;

i++;

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

}

答案:运行出现错误以下程序的运行结果为()。#includevoidmain()

{

intn;

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

{if(n%3==0)continue;printf(“%d”,n);}}

答案:12457810若有定义:int

a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是3

答案:对若k是int类型变量,且有以下for语句For(k=-1;k<0;k++)printf(****\n”);下面关于语句执行情况的叙述中错误的是()

答案:构成无限循环;循环体一次也不执行;循环体执行两次continue不是结束本次循环,而是终止整个循环的执行。()

答案:错有指针变量p和数组a,指针变量和数组名都可以实现本身的值的改变,如p++和a++。()

答案:错在switch语句中,多个case可以共用一组执行语句。()

答案:对以“r”方式打开一个文件时,文件指针指向文件首。()

答案:错如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。()

答案:对若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()

答案:1.5.已知charstr1,str2[10];正确的输入语句是()

答案:scanf("%c%s",&str1,str2);若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为()。

答案:32已知有声明"inta[10]={1,2,3,4,5,6,7,8},*p=&a[5];",则*(p-3)的值是()

答案:3如果inta=3,b=4;则条件表达式"a答案:3语句y=5;p=&y;x=(*p)++;执行后的结果是()。

答案:x=5,y=6有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;以下叙述中正确的是(

)。

答案:OLD是一个结构体类型若有定义:chars[]=”TurboC++”;则数组s的长度是9。

答案:错有如下程序

#include

voidmain()

{intx=1,a=0,b=0;

switch(x)

{

case0:b++;

case1:a++;

case2:a++;b++;

}

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

}该程序的输出结果是a=2,b=1

答案:对C语言源程序的某文件中定义的全局变量的作用域为本函数的全部范围。

答案:错有int

a=2;while(a=0)

a--;该循环共执行了0次。

答案:对二维数组a有m行n列,则在a[i][j]之前的元素个数为i*n+j。

答案:对对字符数组进行初始化,以下哪种形式是正确的()

答案:char

c4[

]="123";;char

c1[

]={'1',

'2',

'3'};;char

c3[

]={

'1',

'2',

'3',

'\0'};以下对二维数组a进行不正确初始化的是(

)

答案:int

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

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

a[2][3]={{1,2},{3,4},{5,6}};设有程序段intk=8;while(k=0)

k-=1;则下列叙述中错误的是

(

)

答案:循环体语句执行一次;循环是无限循环;while循环执行8次以下不正确的描述是(

答案:在循环体内使用break语句或continue语句的作用相同;break语句可以用于退出多层循环;continue语句的作用是结束整个循环的执行以下叙述正确的是()

答案:一个C程序只能有一个主函数;一个C程序可以包含多个不同名的函数;C程序的主函数必须用main作为函数名下列程序段中,功能都相同的是()。

答案:i=1;p=1;while(i<=5){p*=i;i++;};for(i=1,p=1;i<=5;i++)

p*=i;;i=1;p=1;do{p*=i;i++;}while(i<=5);以下对C语言函数的有关描述中,正确的是(

)

答案:C函数既可以嵌套定义又可以递归调用;C程序中有调用关系的所有函数必须放在同一个源程序文件中;函数必须有返回值,否则不能使用函数以下叙述中不正确的是(

)

答案:全局变量的作用域一定比局部变量的作用域范围大;未在定义语句中赋初值的auto变量和static变量的初值都是随机值;函数的形参都属于全局变量如有说明:chars1[5],s2[7];,要给数组s1和s2整体赋值,下列语句中不正确的是(

)

答案:s1=getchar();

s2=getchar();;gets(s1,s2);;scanf("%c%c",s1,s2);下面标识符中,不合法的用户标识符为()。

答案:12a;char;P#AdC语言的三种循环语句不可以互相嵌套。()

答案:错循环体如果包括一条以上的语句,则必须用{括起来,组成复合语句。()

答案:对在switch语句中,每一个的case常量表达式的值可以相同。()

答案:错在多层循环中,执行break语句跳出最外一层循环。()

答案:错结构体成员的类型必须是基本数据类型。()

答案:错表达式语句和表达式没有什么区别。()

答案:错函数返回值的类型是由在定义函数时所指定的函数类型决定。()

答案:对文件指针和位置标记都是随着文件的读写操作在不断改变。()

答案:错指针变量可以存放指针(地址)、数值和字符。()

答案:错结构体数组中可以包含不同结构体类型的结构体变量。()

答案:错结构体变量可以作数组元素。()

答案:对一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。()

答案:错在对数组全部元素赋初值时,不可以省略行数,但能省略列数。()

答案:错凡在函数中未指定存储类别的局部变量,其默认的存储类别为static。()

答案:错局部变量如果没有指定初值,则其初值为0。()

答案:错int(*p)[4]表示p是一个指针数组,它包含4个指针变量元素。()

答案:错break只可用于循环体中。()

答案:错C语言标准输出操作中,putchar()函数可以输出显示一个字符串。()

答案:错局部变量如果没有指定初值,则其初值不确定。()

答案:对do-while语句先执行循环体中的语句,然后再判断条件表达式是否为真,如果为真则继续循环;如果为假,则终止循环。()

答案:对使用“scanf(”x=%f,y=%f“,&x,&y)”,要使

x,y均为1.25,正确的输入是(

答案:x=1.25,y=1.25有以下函数fun(char*a,char*b){

while((*a!='')&&(*b!='')&&(*a==*b)){a++;b++;}return(*a-*b);}

该函数的功能是()

答案:比较a和b所指字符串的大小有以下程序#includevoidmain(){

intx=102,y=012;printf("%2d,%2d\n",x,y);}执行后输出结果是(

)。

答案:102,104.若有说明语句:charc='\72';则变量c(

)

答案:包含1个字符有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向此链表中三个连续结点。

structnode

{

intdata;

structnode*next;

}*p,*q,*r;现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是()。

答案:p=q->next;若“intn;floatf=13.8;”,则执行“n=(int)f%3”后,n的值是()

答案:1下面程序的输出是(

)#includeintm=13;intfun2(intx,inty){intm=3;

return(x*y-m);

}voidmain(){inta=7,b=5;

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

答案:2以下程序段的运行结果为()。

int

num[]={1,2,3,4,5,6,7,8,9},*pnum=&num[2];

pnum++;

++pnum;

printf("%d",*pnum);

答案:6有程序#includevoidmain(){

chara[7]="a0\0a0\0";

inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d\n",i,j);}程序运行后的输出结果是()

答案:72有以下结构体说明、变量定义和赋值语句structSTD

{

charname[10];

intage;

charsex;

}s[5],*ps;

ps=&s[0];则以下scanf函数调用语句中错误引用结构体变量成员的是()。

答案:scanf(“%d”,ps.age);下列四组选项中,正确的C语言标识符是(

)。

答案:a123已知double

x

,

y;

,则表达式

x=1,y=x+3/2

的值是()。

答案:2.0设x、y、z和k都是int型变量,则执行下列表达式后,变量x的值为(

)x=(y=4,z=16,k=32);

答案:32以下各选项欲说明一种新的类型名,其中正确的是()。

答案:typedefintv3;已知structstudent{char﹡name;

intstudent_n;

chargrade;};

structstudenttemp,*p=&temp;=”chou”;

则下面说法不正确的是()。

答案:(*p)->name+2的值为‘h’以下选项中合法的标识符是()

答案:J_c_t执行下面程序时,若从键盘输入"2",则程序的运行结果是(

#include

voidmain()

{intk;charcp;

cp=getchar();

if(cp>='0'&&cp<='9')

k=cp-'0';

elseif(cp>='a'&&cp<='f')

k=cp-'a'+10;

else

k=cp-'A'+10;

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

}

答案:2以下程序的输出结果是(

)。

#include

#include

voidmain(){

charst[20]="hello\0\t\?\\";

printf("%d%d\n",strlen(st),sizeof(st));

}

答案:520设有如下定义:strucksk{inta;floatb;}data;int*p;若要使p指向data中的a域,正确的赋值语句是()。

答案:p=&data.a;己知函数的调用形式:fread(buffer,size,count,fp);,其中的buffer代表的是()

答案:一个指针,指向要存放读入数据的地址以下程序输出的结果是(

)#includevoidmain(){char

str[]="1a2b3c";

int

i;

for(i=0;str[i]!='\0';i++)

if(str[i]>='0'&&str[i]<='9')

printf("%c",str[i]);

printf("\n");}

答案:123一个C语言的源程序中,()。

答案:必须有一个主函数下面()表达式的值为4.

答案:(int)(11.0/3+0.5)若有定义:inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为()。

答案:1下列数据中,为字符串常量的是(

)。

答案:”house”以下函数值的类型是(

fun(floatx)

{floaty;

y=3*x-4;

returny;}

答案:int现有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向一个链表中连续的三个结点。

structnode

{

chardata;

structnode*next;

}*p,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是()

答案:r->next=q;p-next=r;q-next=r->next;以下程序运行结果是(

)。

voidsub(intx,inty,int*z){*z=y-x;}

voidmain()

{inta,b,c;

sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);

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

答案:-4,-9,-5语句y+=i;的执行次数是(

)。

int

y,i;

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

{if(i%2==0)

continue;

y+=i;}

答案:10以下程序段执行后m的值是(

)int

k=2,m=3;

do{m+=k;}while(k<2);

答案:5有以下程序,执行后输出结果是(

)

#includevoidmain(){

int

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

i,k=2;

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

printf(“%d

”,m[k][i]);

}

答案:3

6

9设有以下函数:#includeintf(inta){intb=0;

static

c=3;

b++;

c++;

return(a+b+c);

}如果在下面的程序中调用该函数,则输出结果是(

)voidmain(){inta=2,i;

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

printf("%d\n",f(a));

}

答案:789下面程序的运行结果是(

)

#include

voidmain()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

答案:3若有定义“int*p[5];”,则以下叙述中正确的是()

答案:定义了一个指针数组p,该数组含有5个元素,每个元素都是基类型为int的指针变量若inta=0,x=4;则执行语句if(a=0)x++;elsex--;后x值是(

答案:3若有以下说明:chars1[]={"tree"},s2[]={"flower"};,则以下对数组元素或数组的输出语句中,正确的是(

)

答案:puts(s1);puts(s2);若已建立如下图所示的单向链表结构在该链表中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是(

)。

答案:p=p->next;s->next=p;p->next=s;运行下面程序时,从键盘输入"2.0",则输出结果是()

#include

voidmain()

{floata,b;

scanf("%f",&a);

if(a<0.0)b=0.0;

elseif((a<0.5)&&(a!=2.0))

b=1.0/(a+2.0);

elseif(a<10.0)b=1.0/2;

elseb=10.0;

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

}

答案:0.500000有如下程序#includevoidmain(){

inta=3;do{

printf("%d",a--);}while(!a);}程序的运行结果是()

答案:3以下程序的输出结果是()

structHAR

{

intx,y;

structHAR*p;

}h[2];

main()

{

h[0].x=1;

h[0].y=2;

h[1].x=3;

h[1].y=4;

h[0].p=&h[1];

h[1].p=h;

printf("%d%d",(h[0].p)->x,(h[1].p)->y);

}

答案:32下列关于C语言数据文件的叙述正确的是(

答案:二进制文件把数据按其在内存中的存储形式原样输出到磁盘上存放若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件打开方式应该是(

答案:“wb+”若fp是指向某文件的指针,且已读到文件末尾,则feof(fp)的返回值是(

答案:1系统标准输入文件是指(

答案:键盘利用fread(buffer,size,count,fp)函数可实现的操作是(

答案:从fp指向的文件中,将size*count个字节的数据读到由buffer指出的数据区中C语言中,能识别和处理的文件是(

答案:文本文件和二进制文件函数调用语句fseek(fp,-20L,2)的含义是(

答案:将文件位置指针从文件末尾处后退20个字节若执行fopen函数打开文件不成功时,则函数的返回值是(

答案:0若调用fputc函数输出字符成功,则其返回值是(

答案:输出的字符fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式可以是(

答案:读或者定义以下结构体数组

structdate

{intyear;

intmonth;

intday;};

structs

{structdatebirthday;

charname[20];

}x[4]={{2008,10,1,"guangzhou"},{2009,12,25,"Tianjin"}};语句printf("%s,%d,%d,%d",x[0].name,x[1].birthday.year);的输出结果为()。

答案:guangzhou,2009结构体变量做函数参数,是参传递给形参的是()

答案:结构体变量所有成员的值如果有下面的定义和赋值,则使用()不可以输出n中data的值。struct

SNode{

unsignedid;

intdata;}n,*p;p=&n;

答案:p.data下面程序的运行结果是()。struct

KeyWord{

charKey[20];

intID;}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};main(){

printf("%c,%d\n",kw[3].Key[0],kw[3].ID);}

答案:f,4C语言定义类型名的关键字是()

答案:typedef定义以下结构体数组

structc

{intx;

inty;

}s[2]={1,3,2,7};语句printf("%d",s[0].x*s[1].x)的输出结果为(

)。

答案:2当定义一个结构体变量时,系统为它分配的内存空间是(

)。

答案:结构中各成员所需内存容量之和关于链表,以下说法错误的是()

答案:malloc函数是链表专用的处理函数,不能用在其他地方根据下面的定义,能输出Mary的语句是()。

structperson

{

charname[9];

intage;

};structpersonclass[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};

答案:printf("%s\n",class[2].name);定义以下结构体类型struct

s{

char

b;

float

f;};则语句printf("%d",sizeof(struct

s))的输出结果为()。

答案:5若有以下说明语句:char*language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};char**q;q=language+2;则语句printf(“%s\n”,*q)输出的是()

答案:字符串PASCAL若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用形式是()。

答案:ps[0][2]voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}voidmain(){charstr[100]="abeddfefdbd",c='d';ss(str,c);printf("%s\n",str);}程序送行后的輸出結果是()。

答案:abeDDfefDbD有以下函数:;char*fun(char*s){...returns;}该函数的返回值是()。

答案:形参s中存放的地址值有以下程序

#include"stdio.h"#include"string.h"

voidmain(intargc,

char*argv[])

{

intm,length=0;

for(m=1;m,则运行结果是()。

答案:13下列程序段的输出結果是(

)。#include"stdio.h"voidfun(int*x,int*y){printf("%d%d",*x,*y);*x=3;*y=4;}voidmain(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}

答案:2143已有定义inta=2,*p1=&a,*p2=&a;,下面不能正确执行的赋值语句是()

答案:p1=a;下列程序的输出结果是()。#include"stdio.h"voidmain(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

答案:5有以下程序

#include

main(){

intm=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是()

答案:1,2,2,1下面程序的输出是(

)intfun3(intx){staticinta=3;

a+=x;

return(a);

}voidmain(){intk=2,m=1,n;

n=fun3(k);

n=fun3(m);

printf("%d",n);

}

答案:6以下叙述中,不正确的是(

答案:使用floatb定义的外部变量存放在内存中的动态存储区执行下列程序inta=3,b=4;

voidfun(intx1,intx2){printf(″%d,%d″,x1+x2,b);}voidmain(){inta=5,b=6;fun(a,b);}后输出的结果是(

答案:11,4C语言中函数返回值的类型是由(

)决定的。

答案:函数定义时指定的类型C语言源程序的某文件中定义的全局变量的作用域为(

)。

答案:从定义该变量的位置开始到本文件结束如果一个函数位于C程序文件的上部,在该函数体内声明部分后的复合语句中定义了一个变量,则该变量(

)

答案:为局部变量,只在该复合语句中有效#includef(intb[],intn){inti,r=0;

for(i=0;i<=n;i++)r=r+b[i];returnr;

}voidmain(){

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

x=f(a,3);

printf("%d",x);

}上面程序的输出结果是(

答案:14以下程序的主函数中调用了在其前面定义的fun函数#includevoidmain(){

doublea[15],k;k=fun(a);}则以下选项中错误的fun函数首部是(

)

答案:doublefun(doublea)下面函数的功能是(

)sss(chars[],t[]){

inti=0;while((s[i])&&(t[i])&&(t[i]==s[i]))

i++;return

(s[i]-t[i]);}

答案:比较两个字符串的大小若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是(

)。

答案:a[1][3]已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是()。

答案:a数组长度大于b数组长度以下程序的输出结果是()。

答案:3,5,7若要求从键盘读入含有空格字符的字符串,应使用函数(

)。

答案:gets()以下叙述中错误的是()。

答案:当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信有定义语句:intb;charc[10];,则正确的输入语句是(

)。

答案:scanf(

温馨提示

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

评论

0/150

提交评论