C语言程序设计山东联盟-青岛大学智慧树知到期末考试答案章节答案2024年青岛大学_第1页
C语言程序设计山东联盟-青岛大学智慧树知到期末考试答案章节答案2024年青岛大学_第2页
C语言程序设计山东联盟-青岛大学智慧树知到期末考试答案章节答案2024年青岛大学_第3页
C语言程序设计山东联盟-青岛大学智慧树知到期末考试答案章节答案2024年青岛大学_第4页
C语言程序设计山东联盟-青岛大学智慧树知到期末考试答案章节答案2024年青岛大学_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计(山东联盟-青岛大学)智慧树知到期末考试答案+章节答案2024年青岛大学以下程序的输出结果是().#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}

答案:36在C语言中,引用数组元素时,其数组下标的数据类型允许是()。

答案:整型常量或整型表达式对于inti;charc,s[20];从输入序列123ab45efg中将123读入i;'b'读入c;"45efg"读入s,则scanf语句应写为:

答案:scanf("%d%*c%c%s",&i,&c,s);定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为().

答案:25下列语句定义x为指向int类型变量a的指针,正确的是()

答案:inta,*x=&a;若有定义void*p;int*q;float*r,下面操作不对的是()

答案:q=r;已知int类型变量占用4个字节内存,定义为“inta[3]={0,1};”,则数组a在内存中分配的字节数是()

答案:12下列语句定义p为指向int类型变量a的指针,正确的是()

答案:inta,*p=&a;如果有定义:intm,n=5,*p=&m;与m=n等价的语句是()。

答案:*p=*&n;以下对C语言字符数组的描述中,错误的是()。

答案:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值设floatx=2.5,y=4.7;,inta=7;printf(“%.1f”,x+a%3*(int)(x+y)%2/4)的结果为()

答案:2.5语句while(!E)中的表达式!E等价于()

答案:E==0以下数组定义中不正确的是()。

答案:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};inti=-1;下面不构成死循环的是()

答案:for(;i++;)printf(“*”);设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是()

答案:PER是结构体类型名假定int类型变量占用两个字节,定义为“inta[5]={0,1,2};”,则数组a在内存中所占字节数是()

答案:10有语句#defineN10,intM=20;下面C语句正确的是()

答案:M=N;以下不正确的说法是()

答案:全局变量,静态变量的初值是在编译时指定的若变量c为char类型,能正确判断出c为小写字母的表达式是()

答案:(c>='a')&&(c<='z')若用数组名作为函数调用的实参,则传递给形参的是()。

答案:数组的首地址以下选项中错误的常量是()

答案:2e-2.3在主函数中有inta,b,c;c=f(a,&b);则下面那个可能是f函数的正确声明(

)。

答案:int

f(inta,int*b){…}已知:charstr[10],*p=str;下面的语句中正确的是().

答案:p="ABC";当a的值为5,b的值为4时,逻辑表达式a<=6&&a+b>8的值为()。

答案:非0整型值设以下变量均为int类型,表达式的值不为9的是()

答案:(x=y=8,x+y,y+1)C语言编绎系统在判断一个量是否为“真”时,以()代表“假”。

答案:0有声明chara;下面语句组,都是输入7按回车,则输出显示不为7的是()

答案:scanf(“%c”,&a);printf(“%d”,a);为了检查以下if-else语句的两个分支是否正确,至少需要设计2组测试用例,即x的取值至少有两组(不等于0的数和0)。()if(x!=0){y=1/x;}else{y=0;}

答案:对不允许把一个数值或字符赋予指针变量。

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

答案:对只要将多个指针作为函数的参数,函数就一定会返回多个值。

答案:错字符串常量在内存中的存放位置由系统自动安排。

答案:对

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

答案:错假设k是整型变量,计算表达式1.0/k后结果的数据类型是浮点型。()

答案:对两个任意类型的指针可以使用关系运算符比较大小。

答案:错C程序是从main函数开始执行的。()

答案:对do-while循环至少要执行一次循环语句。

答案:对若变量定义为intfahr;,则表达式5*(fahr-32)/9和表达式5/9*(fahr-32)是等价的。()

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

答案:对执行以下程序段,sum的值是1.5。()inti,sum;sum=0;for(i=1;i<=2;i++){sum=sum+1.0/i;}

答案:错以下程序的输出结果是().fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

答案:31x大于等于-1且小于等于1正确的C语言表达式是()。

答案:x>=-1&&x<=1以下哪项可以作为变量名()

答案:Case下面声明那个是合格的字符串(提示:’A’的ASCII是65)()

答案:chara[3]={65,66,0};执行下面程序段的结果是_____main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d",a,b);}

答案:a=2,b=1staticstruct{

intx,y[3];

}a[3]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*p;

p=a;

则*((int*)(p+1)+2)=?

答案:7有以下程序voidf(intv,intw){intt;t=v;v=w;w=t;}main(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是()

答案:1,2,3以下程序的运行结果是(

)。#includevoidsub(intx,inty,int*z){

*z=y-x;}intmain(void){

inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);return0;

}

答案:-5,-12,-7执行以下程序后,输出的结果是()。voidmain(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

答案:0对于"xy\n\102\\\'"字符串的长度是()

答案:6判断char型变量ch是否为大写字母的正确表达式是()。

答案:(ch>=‘A’)&&(ch<=‘Z’)若i、j定义为int型变量,则以下程序段中内循环体的总执行次数是()for(i=5;i;i--)for(j=0;j<4;j++){......}

答案:20已有定义intk=2;int

*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()。

答案:ptr2=k;下列说法中错误的是()。

答案:程序可以从任何非主函数开始执行能正确表示逻辑关系“0≤a≤10”的C语言表达式是()

答案:a>=0&&a<=10对于下面的for循环语句,可以断定它____。for(x=0,y=0;(y!=123)&&(x<4);x++)printf(“--------“);

答案:共执行4次循环下列程序的输出结果是()。#includeintmain(void){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+3;printf("%d",p[2]);return0;}(1分)

答案:5有inta,b;下列表达式中,正确的是()

答案:a+=~b;若有以下定义,则对a数组元素的正确引用是()inta[5],*p=a;

答案:*(a+2)inta=2;floatb=3;下面表达式有语法错误的是()

答案:a%b;下面关于全局变量的描述中,错误的是().

答案:全局变量第一次被引用时,系统为其分配内存程序段:intx=12;doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是()

答案:123.141593以下说法中正确的是()。

答案:C语言程序总是从main()函数开始执行

答案:5有如下程序voidmain(){intx=1,a=0,b=0;switch(x){case0:a++;case1:b++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()

答案:a=1,b=2下面程序的输出结果是()main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}

答案:10C语言中while和do-while循环的主要区别是()

答案:do-while的循环体至少无条件执行一次已知字符'a'的ASCII码为97,执行语句printf("%d,%c",'b','b'+1);的输出是____。

答案:98,c执行以下程序段后,y的值是()。inta[]={1,3,5,7,9}intx=0,y=1,*ptr;ptr=&a[1];while(!x){y+=*(ptr+x);x++;}

答案:4chara[]=“ABCD”;下列表达式值最大的是()

答案:a[3]inta=30;以下表达式值最大的是()

答案:0xa0下面定义结构变量的语句中错误的是()

答案:structstudent{intnum;charname[20];};students;以下选项中,对基本类型相同的指针变量不能进行运算的运算符是()。

答案:+不同类型的指针变量是可以直接相互赋值的。

答案:错一个数组可以存放许多不同类型的数值。

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

答案:错C语言中可以使用汉字作为变量名。()

答案:错char*s="CLanguage";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。

答案:对函数的实参只能是变量。

答案:错chara=0x12345678;表达式a==0x12345678表达式值为1。()

答案:错C语言中的全局变量如果没有指定初值,则其初值自动设置为0。

答案:对共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。

答案:对在程序中插入适当的注释,用来说明程序的功能,可以使程序容易被人理解。()

答案:对若变量定义为intn;,当n的绝对值大于1时,则表达式1/n的值恒为0。()

答案:对枚举类型中的元素都具有一个整型值。

答案:对随机操作只适用于文本文件。

答案:错内存中的每个存储单元都有一个惟一的地址。

答案:对下列能正确定义字符串的语句是:()

答案:chara[]=“\0”;下面表达式值为肯定为1的是()

答案:-5若有下列语句,则引用方式不合法的是(

)。struct

student{

int

num;

int

age;};

struct

student

stu[3]={{101,20},

{102,19},

{103,20}},

*p=stu;

答案:p=&stu.ageinti,a[10]={0,1,2,3,4,5,6,7,8,9};能正确输出数组全部10个元素值的语句组是()

答案:for(i=0;i<10;){printf("%d,",a[i]);i++;}如下程序段:

intc[]={1,7,12};

int*k;

k=c;

printf('nextkis%d',*++k);

其输出应为:

答案:nextkis7下列程序的输出结果是()。voidf(int*p){*p=5;}intmain(void){intx=10,*px=&x;f(px);printf("%d#",(*px)++);printf("%d\n",x);return0;}

答案:5#6设有数组定义为“chararray[]=”Chinese”;则数组array所占空间为()个字节。

答案:8执行程序段intm=1,∗p=&m,*q;q=p;*q=2;后,*p的值为()。

答案:2有以下程序main(){chara[]=”abcdefg”,b[10]=”abcdefg”;

printf(“%d%d”,sizeof(a),sizeof(b));}执行后输出结果是(

答案:810以下程序的输出结果是()。#includeintmain(void){chara[]="programming",b[]="language";char*p1=a,*p2=b;inti;for(i=0;i<7;i++){if(*(p1+i)==*(p2+i)){printf("%c",*(p1+i));}}return0;}

答案:ga变量的指针,其含义是指该变量的()

答案:地址if(a==5)b=1elseb=2;等效的switch语句正确的是()

答案:switch(a){case5:b=1;break;default:b=2;}下面程序段的运行结果是()。chars[]="language",*p=s;while(*p++!='u'){printf("%c",*p–'a'+'A');}

答案:ANGU对于结构定义struct

{

int

len;

char

*str;

}

*p;

则(*p)->str++中的++加在(

)。

答案:语法错误有以下程序intfun(intx,inty){if(x答案:8有语句inta=2,*p;则后面直接执行那条语句编译执行都不会导致错误()

答案:p=&a;C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是()。

答案:值传递下列程序的运行结果是()voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}

答案:36若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是().intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

答案:t[l][2]以下能正确定义数组并正确赋初值的语句是()

答案:intd[3][2]={{1,2},{3,4}};如果inti=16,j=23;执行printf("%x--%o",i,j)后输出为:

答案:10--27下面程序段的运行结果是()。

char

a[]=”language”,

*p;p

=

a;while(

*p

!=

'u')

{

printf("%c",

*p

-

32);

p++;

}

答案:LANG执行下列程序:#defineMA(x,y)((x)*(y))i=5;i=MA(i,i+1)-7;后变量i的值应为:

答案:23对于inta,要使((1<<2>>1)|a)==a;

则a可以是:

答案:2,6,10均可表达式8>6>3值是()。

答案:0下面程序的输出结果是(

)。

#includevoidfun(int*x,inty){printf("%d%d",*x,y);*x=3;

y=4;}intmain(void){intx=1,y=2;

fun(&y,x);

printf("%d%d",x,y);return0;}

答案:2113C语言中结构类型变量在程序执行期间(

)。

答案:所有成员一直驻留在内存中若有以下程序段:for(m=1;m<=100;m++){scanf("%d",&y);if(y<0)continue;printf("%3d",m);}正确的描述是()。

答案:最多允许输出100个非负整数对于以下结构定义:struct{intlen;

char*str;}*p;

*p->str++中的++加在

答案:指针str上以下那条语句在编译时会出错()

答案:if(a>0)b=0;c=0;elseb=1;inta,b,k;则语句if(a>b)k=0;elsek=1;等价于:

答案:k=a<=b;对于下面语句描述不正确的为().structStudent{unsignedlongid;charname[30];charclass[30];}oStu1;

答案:Student为用户自定义类型当定义一个结构变量时,系统分配给它的内存空间大小是(

)。

答案:各成员所需内存量的总和设有定义:inta=1,*p=&a;floatb=2.0;charc='A';,以下不合法的运算是()

答案:b++;下面的描述错误的是().

答案:函数内可以嵌套定义函数有如下程序voidmain(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}运行该程序的输出结果是()

答案:33设有定义"struct{intx;inty;}d[2]={{1,3},{2,7}};",则printf("%d\n",d[0].y/d[0].x*d[1].x);的输出是()

答案:6定义结构类型时,下列叙述正确的是(

答案:系统不会分配空间C语言具有简洁明了的特点。

答案:对数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。

答案:对在C语言的数据类型中,float的含义是单精度浮点型,double的含义是双精度浮点型。()

答案:对语句int*p;*p=50;执行时,不会有任何错误。()

答案:错任何一个程序都必须有而且只能有一个main函数。()

答案:对C语言的书写格式不会影响程序的可读性。

答案:错执行语句int*p;后,指针变量p只能指向int类型的变量。

答案:对C语言函数返回类型的默认定义类型是void。

答案:错for语句的一般形式如下,若表达式2的值为“真”,则先执行循环体语句,再计算表达式3,然后继续循环。()for(表达式1;表达式2;表达式3)循环体语句

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

答案:错函数的实参传递到形参有两种方式值传递和地址传递

答案:对预处理命令的前面必须加一个"#"号。

答案:对case语句后如没有break,顺序向下执行。

答案:对在C程序运行过程中,其值不能被改变的量称为常量,其值可以改变的量称为变量。()

答案:对在一个函数内部调用另一个函数的调用方式称为嵌套调用。

答案:对inta=2,b=3;执行b*=a+2;则b的值为8。()

答案:错printf(“%d”,36.8);输出结果为36。()

答案:错以下程序段符合C语言语法。()k=1;intk;

答案:错在多层循环中,一个break语句只向外跳一层。

答案:对如果有typedefstructstudent

{

ints;

chart;

}T;则下面的描述正确的是()

答案:T是结构体类型的别名每一个枚举元素都有一个确定的整型数值。

答案:对structteacher

{intnum;

intage;

}tea_1;structteacher*p=tea_1;下面语句中引用非法的是(

答案:p=&tea_1.age若structstudent

{

intnum;

intage;

}stu[3]={{1001,18},{1002,19},{1003,20}};则下面语句中引用非法的是(

答案:stu[3].num若有以下结构体定义,则用(

)赋值是正确的。

structs

{

charx;

inty;

}t;

答案:t.x=10共同体变量每次只能使用其中一个分量。

答案:对可以对共同体变量的所有成员进行初始化。

答案:错以下程序的输出结果是()voidfun(int*x,int*y){

printf(“%d%d”,*x,*y);

*x=3;

*y=4;}intmain(void){

intx=1,y=2;

fun(&y,&x);

printf(“%d%d”,x,y);}

答案:2143以下对指针定义合法的语句是(

答案:charch[12]=″HelloWorld″,*c=ch;若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是(

答案:p=2*(int*)malloc(sizeof(int));若有定义inta[10],*p=a;,则p+5表示(

答案:元素a[5]的地址有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];

b中的值是()

答案:9若有定义:inta[3][4],则对数组a元素的正确引用是(

答案:a[2][3]在C语言中,一维数组的定义方式为:类型说明符数组名(

)。

答案:[整型常量表达式或整型常量]在C语言中,数组名的命名规则与其它变量名相同。数组名后只能用圆括号括起来的常量表达式。

答案:错若有说明:inta[3][4]={1};则下面正确的叙述是(

)。

答案:只有元素a[0][0]可得到初值1在二维数组a[2][3]中,a[1][1]是第5个元素。

答案:对若有说明:intb[4][5];则数组b各元素(

答案:不能得到确定的初值C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是(

)。

答案:同名的局部变量若调用一个函数,且此函数中没有return语句,则正确的说法是(

答案:该函数没有返回值在C程序中,下面描述正确的是(

答案:函数的定义不可以嵌套,但函数的调用可以嵌套C语言中实参和形参之间的数据传递是单向的“值传递”,只能由实参传给形参,反之不行。

答案:对以下关于函数调用时参数的叙述中,错误的是(

)。

答案:形参可以是常量、变量或表达式break语句可以中断循环,执行循环的下一条语句。

答案:对在C语言中,在do-while循环结构的条件控制语句while(表达式)中的表达式为(

)时,循环可以反复执行。

答案:1假设i和x都是int类型,则以下for循环的循环体执行次数是(

)for(i=0,x=0;i<=9&&x!=876;i++)scanf(“%d”,&x);

答案:最多执行10次以下程序段的执行结果是(

).

inti,j,m=0;

for(i=1;i<=15;i+=4)

{

for(j=3;j<=19;j+=4)

m++;

}printf("%d",m);

答案:20do-while语句中的循环体一般不能是复合语句。

温馨提示

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

评论

0/150

提交评论