



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算思维与程序设计C智慧树知到期末考试答案2024年计算思维与程序设计C十进制数7.125的二进制表示是()。
A:0111.100B:1101.001C:1011.111D:0111.001答案:0111.001执行以下代码段后变量i的值为是(
)。inta[4]={2,3,4},i;i=a[0]*a[1]+a[2]*a[3];
A:4B:10C:不确定D:6答案:6假定int类型变量占用两个字节,如有定义“intx[8]={0,1,2};”,则数组x在内存中所占字节数是()。
A:3B:8C:16D:6答案:16已知“intx=40;floatpay,pay1=0,pay2=0;”,则执行以下语句后pay,pay1,pay2的值分别是()。if(x<=50)pay=x*0.35;elsepay1=50*0.35;pay2=(x-50)*0.5;pay=pay1+pay2;
A:14,0,0B:9,14,-5C:-5,0,-5D:-5,0,14答案:-5,0,-5下列程序段执行后s值为()。inti=5,s=0;do{if(i%2==0)s+=i;}while(--i);printf("%d\n",s);
A:都不是B:15C:9D:6答案:6若变量均已正确赋初值,则以下语句中错误的是(
)。structstudent{charmark[12];intnum1;doublenum2;}t1,t2;
A:t1=t2;B:t2.mark=t1.mark;C:t2.num1=t1.num2;D:t2.num1=t1.num1;答案:t2.mark=t1.mark;将变量fp定义为文件型指针,下列语句中正确的是()。
A:FILE*fp;B:FILEfp;C:filefp;D:file*fp;答案:FILE*fp;如有定义charc[]={"NBU"};则数组c包含的元素个数()。
A:不确定B:3C:4D:5答案:4若有x=1,y=2,z=3,则表达式(xA:1B:3C:0D:2答案:0假设arr是一个有10个元素的整型数组,则下列写法中正确的是(
)。
A:arr[-1]=0;B:arr=0;C:arr[20]=0;D:arr[0]=-1;答案:arr[0]=-1设“int*ptr,x,array[5]={5,4,3,2,1};ptr=array;“,
则能使x的值为3的语句是(
)。
A:x=array[3];B:x=*(array+3);C:x=*(ptr+2);D:array+=2;x=*array;答案:x=*(ptr+2)若有定义“inta=1,b=1;”,则运行语句“b=a++;”后,a和b的值分别等于()。
A:2.2B:1,2C:1,1D:2,1答案:2,1已知“charc;intcount=0;”,则从键盘上输入一串字符"CdeAbCM"回车后执行以下语句,变量count的结果为()。while((c=getchar())!='A')count++;
A:8B:4C:7D:3答案:3以下程序短的输出结果是()。
char
ch[][10]={"Ningbo","Hangzhou","Shanghai"};
char*p=ch[1];
printf("%s\n",p+2);
A:ngboB:ngzhouC:NingboD:Hangzhou答案:ngzhou下列程序段的运行结果是()。intx=2,y=-1,z=2;if(y<0)z=0;elsez+=1;printf("%d\n",z);
A:3B:1C:0D:2答案:0以下程序段执行以后z的输出结果是()。intx,y,z;x=1;y=2;z=1.0/y*x;printf("%d\n",z);
A:2B:1C:0D:0.5答案:0下面结构体的语句中,错误的是()。
A:struct{intx;inty;intz;}a;B:struct{intx;inty;intz;}pointa;C:structpoint{intx;inty;intz;};structpointa;D:struntpoint{intx;inty;intz;}a;答案:struct#include#defineM(x,y,z)x/y+zintmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));return0;}上面程序的输出为()。
A:4B:8C:5D:9答案:9关于链表,下面说法正确的是()。
A:链表支持随机存取B:链表属于动态数据结构C:链表中各元素的物理地址连续D:链表不能在表头插入元素或者删除元素答案:链表属于动态数据结构已知:intx[]={1,2,3,4,5},y[]={6,7,8,9,10},*p1=x,*p2=y;则以下值等于7的语句是()
A:*(p1--)+*(p2--);B:x[1]+y[1];C:*(--p1)+*(--p2);D:x+y;答案:*(p1--)+*(p2--)在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。
A:(E>0||E<0)B:(!E==0)C:(E==0)D:(E!=0)答案:(E==0)在C语言函数的定义和引用中,以下描述正确的是()。
A:数组名不能作为形式参数B:可以有也可以没有形式参数C:不同函数中,不能使用重名的形式参数D:函数的定义和调用可以嵌套答案:可以有也可以没有形式参数八位二进制数最大能表示的十进制整数是()。
A:511B:256C:512D:255答案:255以下定义语句中,错误的是()。
A:chars[10]={"test"};B:chara[]={"test"};C:intn=5,a[n];D:inta[]={1,2};
答案:D对于C语言,函数返回值的类型是由()决定的。
A:定义该函数时所指定的函数类型B:return语句中的表达式类型C:调用该函数时系统临时决定D:函数形式参数的数据类型答案:函数类型假设有如下定义,则以下说法正确的是(
)。char*s[2]={"Ilove","china"};
A:s是一个指针变量,它指向含有两个数组元素的字符型一维数组B:s数组元素的值分别是"Ilove"和"china"C:s数组的两个元素分别存放的是两个字符串的首地址D:s数组的两个元素分别存放了字符'I'和'c'答案:s数组的两个元素分别存放的是两个字符串的首地址已经定义数组intarray[3][4],假设array[0][0]位于数组第一个位置上,则此数组的第十个元素是(
)。
A:array[2][2]B:array[2][1]C:array[1][3]D:array[2][0]答案:array[2][1]下面程序片段执行后i的值应为()。inti=3;if(i>3)if(i<4)i=1;elsei=2;printf("%d\n",i);
A:3.5B:1C:3D:2答案:3执行fopen函数打开文件,若执行不成功,则函数的返回值是()。
A:不确定B:-1C:NULLD:1答案:NULL当接受用户输入的含有空格的字符串时,应使用()函数。
A:scanf()B:gets()C:getchar()D:printf()答案:gets()类型是变量的共性,不占用存储单元,不能用来存放数据。()
A:对B:错答案:对在进行字符操作时,不会将换行符、空格符当做一个字符。()
A:对B:错答案:错在定义一维数组时可以只给一部分元素赋初值。()
A:对B:错答案:对charc;
scanf("%c",&c);
switch(c)
{case'A':printf(">=100");
case'B':
case'C':printf(">=80");break;
case'D':printf("<80");break;
default:printf("error\n");
}
如果输入大写字母B,则以上程序段的输出结果是()。
A:<80B:>=80C:>=100D:error答案:"AI参考:答案是B:>=80。程序中使用了switch语句,根据输入的字符c进行不同的处理。当输入大写字母B时,caseB和caseC都会被匹配到,因为它们之间没有break语句,所以会执行后面的case语句,即printf(>=80);。因此,输出结果为>=80。"在以下描述中正确的是()。
A:在循环体内使用break语句和continue语句的作用相同B:break语句可以跳出多重循环C:continue语句的作用是结束整个循环的执行D:只能在循环体内和switch语句体内使用break语句答案:AI参考:在以下描述中正确的是B:break语句可以跳出多重循环。\n\nA选项中,break语句和continue语句在循环体内的作用不同。break语句用于跳出当前循环,而continue语句用于结束本次循环,进入下一次循环。因此,它们的用法是不同的。\n\nC选项中,continue语句的作用是结束本次循环,而不是结束整个循环的执行。它只影响本次循环,不会影响下一次循环。\n\nD选项中,break语句可以在循环体外使用,例如在switch语句体内。而continue语句只能在循环体内使用。\n\n因此,正确答案是B:break语句可以跳出多重循环。'已知有以下语句,若要实现下图的存储结构,则正确的赋值语句是()。
inta=10,b=20,*p1,*p2;
p1=&a;
p2=&b;
A:*p1=*p2;B:p1=*p2;C:p1=p2;D:*p1=p2;答案:AI参考:正确选项是【D】:*p1=p2;。\n\n题目要求将二维数组a,b作为一维数组进行存储,使用指针变量p1和p2指向a和b。要实现这种存储结构,正确的赋值语句应该是让p1指向b,并将b的值赋值给p1指向的内存地址。选项D:*p1=p2;符合这种赋值方式,因此是正确的选项。选项A、B、C中没有直接指向p2所指向的内存地址,所以不正确。'假设有二维数组的定义“inta[3][4];”,则以下叙述正确的是(
)。
A:数组a可以看做是由a[0],a[1],a[2],a[3]四个元素组成的一维数组B:a[0]、a[1]和a[2]都是数组名,分别代表一个地址常量C:a[0]可以看成是由3个整型元素组成的一维数组D:可以用“a[0]=0;”来初始化数组a中所有元素为0答案:AI参考:正确选项是D:可以用“a[0]=0;”来初始化数组a中所有元素为0。\n\n二维数组a可以看做是由3个一维数组组成,每个一维数组有4个元素。因此,选项A和C都错误。选项B中,a[0]、a[1]和a[2]都是数组名,它们代表的是二维数组中每个位置的地址,而不是地址常量。因此,选项B也错误。而选项D中,“a[0]=0;”这一语句将数组a的第一个元素初始化为0,这个操作是正确的。'假设指针p、q、r分别指定链表中连续的3个结点,现要将q和r所指结点交换前后位置,同时要保持链表的结构,则下列语句不能完成此操作的是()。
structnode
{
doubledata;
structnode*next;
}*p,*q,*r;
A:q->next=r->next;p->next=r;r->next=q;B:p->next=r;q->next=r->next;r->next=q;C:q->next=r->next;r->next=q;p->next=r;D:r->next=q;p->next=r;q->next=r->next;答案:AI参考:单选题\n\n正确的答案是:D:r->next=q;p->next=r;q->next=r->next;\n\n我们需要将q和r所指结点交换前后位置,同时要保持链表的结构。根据题目给出的代码,我们需要确保交换后的节点顺序是正确的。选项D中,r->next=q;会导致r指向q的下一个节点,而q->next=r->next;会导致q指向r的下一个节点,这不符合题目要求。因此,选项D不能完成此操作。其他选项均可以正确交换节点位置,并保持链表的结构。因此,正确答案是D。'关于结构体,以下叙述正确的是()。
A:在定义结构体类型时,编译程序就为它分配了内存空间B:一个结构体类型是由多个成员组成的构造数据类型C:结构体中各个成员的数据类型必须是一致的D:结构体中,成员的数据类型只能是C语言中预先已经定义好的基本数据类型答案:AI参考:关于结构体,以下叙述正确的是(B:一个结构体类型是由多个成员组成的构造数据类型)。\n\n选项A、C、D都存在错误。\n\n选项A:结构体类型的声明只是在程序中定义了一个名字,编译程序并不会为它分配内存空间,而是等到使用该结构体类型的变量时,才会为其分配内存空间。\n\n选项C:结构体中的成员可以有不同的数据类型,只要这些类型能够满足题目中的特定要求即可。\n\n选项D:结构体中的成员可以是任何数据类型,不仅仅是C语言中预先定义好的基本数据类型。例如,也可以是用户自定义的数据类型。\n\n因此,只有选项B是正确的,它描述了结构体的基本概念,即一个结构体类型是由多个成员组成的构造数据类型。'下列关于一维数组的说法正确的是()。
A:任何一个一维数组的元素在引用时,其下标可以是任何常量B:上面的说法都错C:如果要引用数组中的每个元素,则直接使用该数组名称既可D:一维数组的元素实质上就是一个变量,代表内存中的一个存储单元答案:AI参考:正确选项是【D:一维数组的元素实质上就是一个变量,代表内存中的一个存储单元】。\n\n解释:\n\nA选项错误,因为在一维数组中,下标只能是整数常量或变量。\nB选项错误,因为题目中明确说明说法正确,而B选项的表述与题目相悖。\nC选项也不完全正确,因为直接使用数组名称只能访问数组的首元素,如果要访问数组中的每个元素,还需要加上步长(即下标的变化量)和起始下标。\nD选项是正确的,因为数组本质上是一个连续的内存空间,其中的元素实质上就是一个变量,代表内存中的一个存储单元。因此,可以通过下标来访问和操作数组中的元素。'若x是double型变量,k是int型变量,以下正确的输入语句是()。
A:scanf("%d%f",&x,&k);B:scanf("%lf%d",x,k);C:scanf("%f%d",&x,&k);D:scanf("%lf%d",&x,&k);答案:AI参考:正确选项是D:scanf("%lf%d",&x,&k);\n\n因为在输入语句中,%d用于读取整数,而%f用于读取浮点数(即双精度浮点数),因此需要将k设置为double类型才能使用%d,将x设置为double类型才能使用%f和%lf。此外,"%lf"表示读取一个双精度浮点数,而不是普通的浮点数,因为双精度浮点数通常需要更多的位数来表示小数部分。因此,选项D是正确的输入语句。'下面的链表中,要删除q指向的结点,正确的操作是()。
structnode
{intdata;
struct*next;
}*p1,*q,*p2;
A:p1->next=p2,p2->next=q;B:p1->netx=p2->next;C:p1->next=q->next;D:p1->next=q;q->next=p2;答案:AI参考:从链表中删除某个节点的操作通常需要将目标节点与链表中的下一个节点链接,即更新指向下一个节点的指针。选项A和D中,p2->next=q;q->next=p2;这样的操作实际上是将q指向的节点与p2指向的节点进行了链接,而不是删除q指向的节点。选项C中,p1->next=q->next;这样的操作是将p1指向的节点与q指向的节点之间的链接断开,从而实现了删除q指向的节点的目的。因此,选项C是正确的操作。所以,正确答案是C:p1->next=q->next;。'在C语言中表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理学(第5版)课件 第六章 辨证
- 制度完善方案
- 安全文明施工措施费规定
- 区块链金融交易系统安全性评估报告
- 安全施工措施及安全保障体系
- 项目可行性研究报告书范文
- 零售快消品行业库存管理优化方案
- 电商物流配送无人机项目可行性报告
- 三农村林业资源保护与管理方案
- 县域农村污水治理可行性研究报告
- GCP原则及相关法律法规课件
- 厚朴种苗质量分级DB50-T 1259-2022
- 我的家乡新疆-我爱你课件
- 液化天然气(LNG)相关的知识培训
- 施工升降机安全管理培训课件
- 2017华东六省一市优质课课件连乘问题11月29日
- 部编版(统编)一年级语文下册每课练习题(全册全套)
- DB62∕T 4134-2020 高速公路服务区设计规范
- 《影视鉴赏(第二版)》课件2-0故事片引子
- 青岛版科学一年级下册《塑料》教学设计
- 专利文件撰写殷红梅课件
评论
0/150
提交评论