版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计知到智慧树章节测试课后答案2024年秋新疆理工学院第一章单元测试
用计算机解决问题的步骤一般为()
①编写程序②设计算法③分析问题④调试程序
A:③②①④B:③④①②C:①②③④D:②③①④
答案:③②①④C语言的基本构成单位是()。
A:子程序B:函数C:超文本过程D:函数和过程
答案:函数C语言规定,必须用()作为主函数名。
A:在执行C程序时不是从main函数开始的B:程序书写格式严格限制,一行内必须写一个语句,并要有行号C:C程序书写格式严格限制,一行内必须写一个语句D:C程序书写格式自由,一个语句可以分写在多行上
答案:程序书写格式严格限制,一行内必须写一个语句,并要有行号编译程序可以将源程序翻译成()
A:可执行程序B:连接程序C:目标程序D:编辑程序
答案:目标程序下面关于算法的说法正确的是()
A:算法不一定有输入B:算法就是程序C:算法必须在有限的步骤结束D:算法必须有输出
答案:算法不一定有输入;算法必须在有限的步骤结束;算法必须有输出算法应该具有那些重要的特征()
A:可行性B:输入、输出C:确定性D:有穷性
答案:输入、输出;确定性;有穷性计算机是人造的,所以,它和人脑解决问题没有什么区别。()
A:错B:对
答案:错算法的每一个步骤都必须要有确切的定义,不能有二义性。()
A:对B:错
答案:对在C程序中,注释说明只能位于一条语句的后面。()
A:错B:对
答案:错在C程序中,每行只能写一条语句。()
A:错B:对
答案:错
第二章单元测试
判断char类型的变量c是否为大写字母的正确表达式为()。
A:(c>='A')&(c<='Z')B:'A'<=c<='Z'C:(c>='A')&&(c<='Z')D:('A'<=c)AND('Z'>=c)
答案:(c>='A')&&(c<='Z')若有语句inta=1,b=2,c=3;则以下值为0的表达式是()。
A:(a>b)||(b<c)B:(!(a+b)==c&&a)C:'a'&&'b'D:a<=b
答案:(!(a+b)==c&&a)在C语言中,要求参加运算的数必须是整数的运算符是()。
A:=B:/C:%D:*
答案:%使用语句scanf("x=%f,y=%f",&x,&y);
输入变量x、y的值(□代表空格),正确的输入是()。
A:1.25,2.4B:x=1.25,y=2.4C:1.25□2.4D:x=1.25□y=2.4
答案:x=1.25,y=2.4已知inta=3;执行a+=a-=a*a后,变量a的值()。
A:9B:0C:-12D:6
答案:-12C语言提供的合法的数据类型关键字是()。
A:integerB:intC:floatD:Char
答案:int;float;Char表达式i++与++i在任何场合功能完全相同。()
A:错B:对
答案:错scanf和printf都是C系统提供的标准输入输出函数。()
A:对B:错
答案:对在scanf("%d,%d",&a,&b)函数中,可以使用一个或多个空格作为两个输入数之间的间隔。()
A:错B:对
答案:错C语言中可以把一个字符串赋给一个字符变量。()
A:对B:错
答案:错
第三章单元测试
C语言中,逻辑“真”等价于()。
A:大于零的数B:非零的数C:非零的整数D:大于零的整数
答案:非零的数若x=0,y=3,z=3,以下表达式值为0的是()。
A:x<y?1:0B:y=x||z/3。C:!xD:x%2&y==z
答案:x%2&y==z为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A:在其之前未配对的最近的ifB:同一行上的ifC:缩排位置相同的ifD:在其之前未配对的if
答案:在其之前未配对的最近的if以下关于运算符优先顺序的描述中正确的是()。
A:关系运算符<算术运算符<赋值运算符<逻辑与运算符B:赋值运算符<逻辑与运算符<关系运算符<算术运算符C:算术运算符<关系运算符<赋值运算符<逻辑与运算符D:逻辑与运算符<关系运算符<算术运算符<赋值运算符
答案:赋值运算符<逻辑与运算符<关系运算符<算术运算符选择出合法的if语句(设intx,a,b,c;)()。
A:if(a<>b)c++;B:if(a=>b)c++;C:if(a=b)c++;D:if(a=<b)c++;
答案:if(a=b)c++;当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。
if(a<b)
if(c<d)x=1;
else
if(a<c)
if(b<d)x=2;
elsex=3;
elsex=4;
elsex=5;
A:1B:2C:3D:4
答案:2执行以下程序段后,变量x,y,z的值分别为()。
inta=1,b=0,x,y,z;
x=(--a==b++)?–a:++b;
y=a++;
z=b;
A:x=-1,y=2,z=1B:x=0,y=0,z=0C:x=0,y=1,z=0D:x=-1,y=-1,z=1
答案:x=-1,y=-1,z=1若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。
a=1;b=2;c=3;d=4;
w=(a<b)?a:b;
w=(w<c)?w:c;
w=(w<d)?w:d;
A:1B:2C:4D:3
答案:1以下程序的输出结果是()。
#include“stdio.h”
main()
{
inta=5,b=4,c=6,d;
printf(”%d\n”,d=a>b?a>c?a:c:b);
}
A:不确定B:5C:4D:6
答案:6若a、b、c1、c2、x、y均为整型变量,正确的switch语句是()。
A:switch(a-b){
default:y=a*b;break;
case3:x=a+b;break;case10:case11:y=a-b;break;}B:switch(a*a+b*b)
{
case3:
case1:y=a+b;
break;
case3:y=b-a;
break;
}C:switch(a+b);{
case1:y=a+b;
break;case0:y=a-b;
break;}D:switcha{
casec1:y=a-b;
break;casec2:x=a*d;
break;
default:x=a+b;}
答案:switch(a-b){
default:y=a*b;break;
case3:x=a+b;break;case10:case11:y=a-b;break;}
第四章单元测试
以下语句有语法错误的是()。
A:while(1);B:for(x=10;x>0;x--);C:for(;;);D:intx=1;y=2;z=3;
答案:intx=1;y=2;z=3;代码while(1)printf(“hello”)中,while循环的循环次数是()。
A:1B:0C:无数次D:无法确定
答案:无数次有语句for(i=2,j=8;i!=j;i++,j--),循环执行完成后i的值是()。
A:4B:2C:8D:5
答案:5for语句可以代替下列哪个语句()。
A:whileB:都可以C:do...whileD:都不可以
答案:while当循环条件不满足,需要跳出整个循环时,可以使用下列哪个语句()。
A:breakB:continueC:gotoD:都可以
答案:break循环体中的语句无论有几条,都需要用括号括起来。()
A:对B:错
答案:错循环体中应有使得循环趋于结束的语句。()
A:错B:对
答案:对break语句和continue语句都能改变循环的执行状态。()
A:错B:对
答案:对执行循环语句for(s=0,i=1;i<=10;i=i+3)s+=i;后,i的值为是,{13}。()
A:错B:对
答案:对#include<stdio.h>
intmain()
{intsum=10,n=1;
while(n<3){sum=sum-n;n++;}
printf(“%d,%d”,n,sum);
}
该程序的输出结果为{3,7}。()
A:对B:错
答案:对
第五章单元测试
下列正确的数组定义与初始化语句是()。
A:intd[][2]={{1,2},{3,4}};B:intN=5,b[N][N];C:inta[1][2]={{1},{3}};D:intc[2][]={{1,2},{3,4}};
答案:intd[][2]={{1,2},{3,4}};以下能对一维数组a进行初始化的语句是()。
A:inta(5)={};B:inta[3]={0,1,2};C:inta[5]=(0,1,2,3,4);D:inta{5}={10*1};
答案:inta[3]={0,1,2};下列关于数组inta[5]的引用正确的是()。
A:a(0);B:a[5];C:a(5);D:a[0];
答案:a[0];设有数组inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};i=10;则a[a[i]]元素数值是()。
A:10B:5C:9D:6
答案:6若有说明:inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为()。
A:无法确定B:2C:4D:3
答案:3定义数组时,可以不用指定其长度。()
A:对B:错
答案:错引用数组元素时,下标可以从0或1开始。()
A:对B:错
答案:错C语言中的字符串是以字符数组的形式处理的。()
A:对B:错
答案:对若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是{6}。()
A:对B:错
答案:对在C语言中,以{‘\0’}作为字符串结束标志。()
A:错B:对
答案:对
第六章单元测试
以下程序有语法错误,有关错误原因的正确的说法是()。intmain(){
intG=5,k;
voidprt_char();
…..
k=prt_char(G);
…..}
A:函数名不能使用下划线B:语句voidprt_char();有错,它是函数调用语句,不能用void说明C:函数说明和函数调用语句之间有矛盾D:变量名不能用大写字母
答案:函数说明和函数调用语句之间有矛盾若有以下调用语句,则正确的fun函数首部是()。intmain(){
inta;
floatx;
fun(x,a);
…
}
A:voidfun(intx,floata)B:voidfun(intn,floaty[])C:voidfun(floaty,intnD:voidfun(intn,floaty
答案:voidfun(floaty,intn函数f定义如下,执行语句”m=f(3);”后,m的值应为()。
intf(intk)
{if(k==0||k==1)return1;
elsereturnk+f(k-1);
}
A:5B:8C:13D:6
答案:6以下程序的输出结果是()。
inta,b;
voidfun()
{a=100;b=200;}
intmain()
{inta=5,b=7;
fun();
printf(""%d%d\n"",a,b);
return0;
}
A:100200B:57C:200100D:75
答案:57以下程序的输出结果是(B)。
intfun(intp)
{staticintd=5;
d+=p;
return();
}
intmain()
{printf(""%d"",fun(1));
printf(""%d"",fun(2));
return0;
}
A:66B:67C:68D:69
答案:67若程序中定义了以下函数doublemyadd(doublea,doubleB){return(a+B);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
A:doublemyadd(doubleb,doubleA);B:doublemyadd(doublex,doubley);C:doublemyadd(doublea,B);D:doublemyadd(double,double);
答案:doublemyadd(doublea,B);函数中可以没有return语句,也可以有多条return语句。()
A:对B:错
答案:对函数必须有返回值。()
A:错B:对
答案:错函数f可以用f(f(x))形式调用,这种调用形式是递归调用。()
A:错B:对
答案:错如果在函数中定义一个变量,则该变量只在该函数中有效。()
A:错B:对
答案:对
第七章单元测试
若有定义“inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;”,则值为6的表达式()。
A:*(p+6)B:*p+6C:P+5D:*p+=5
答案:*p+=5以下程序的输出结果是()。
Intmain(void)
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
print(“%d\n”,*p+*q);
return0;}
A:16B:8C:6D:10
答案:10设inti,*p=&i;以下正确的语句是()。
A:p=2*p+1B:i+=pC:i=pD:*p=10
答案:*p=10设chars[10],*p=s;以下不正确的语句是()。
A:p=s+5B:*p=s[0]C:s=p+sD:s[2]=p[4]
答案:s=p+s以下程序的执行结果是()。
#include"stdio.h"
voidmain()
{
inta[]={1,2,3,4,5,6};
int*p;
p=a;
*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
}
A:1,6B:1,4C:1,3D:3,6
答案:3,6以下fnStrcomp()函数的功能是按词典顺序比较两个字符串s和t的大小。如果s大于t,则返回正值,等于则返回0,小于则返回负值,横线处正确的选项是()。
intfnStrcomp(char*s,char*t)
{
for(_______;*s==*t;______)
if(*s=='\0')return(0);
return(*s-*t);
}
A:s++B:s++,t++C:t++;s++D:t++
答案:s++,t++以下程序的执行结果为以下内容。
#include<stdio.h>
voidmain()
{
int*p;
inta[2]={1};
p=&a[0];
*p=2;
p++;
printf("%d,",*p);
p--;
printf("%d\n",*p);
}
,{0,2}
()
A:错B:对
答案:对以下程序的执行结果为以下内容。
#include<stdio.h>
structstru
{
intx;
charc;
};
voidfun(structstru*k);
voidmain()
{
structstrua={10,'x'},*p=&a;
fun(p);
printf("%d,%c\n",a.x,a.c);
}
voidfun(structstru*b)
{
b->x=20;
b->c='y';
}
,{20,y}
()
A:错B:对
答案:对以下程序是将"Hello"逆向显示出来。填空的结果为以下内容。
#include<stdio.h>
voidfnPrintStr(char*p);
voidmain()
{
fnPrintStr("Hello");
}
voidfnPrintDtr(char*string)
{
inti=0;
char*str=string;
while(str[i])i++;
i--;
while(i>=0)
{
printf("%c",str[i]);
_________________;
}
},{i--}
()
A:错B:对
答案:对下列程序的输出结果为以下内容。
#include<stdio.h>
voidmain()
{
inta[]={1,2,3,4,5,6};
int*p;
p=a;
printf("%d%d%d%d\n",*p,*(++p),*++p,*(p--));
printf("%d%d\n",*p,*(a+2));
},{3321},{23}
()
A:错B:对
答案:对
第八章单元测试
有如下的结构体定义语句:structstudent{intnum};则能正确定义结构体变量的语句是()。
A:structs1;B:structstudents1;C:structstudent;D:students1;
答案:structstudents1;有如下的结构体定义语句:structstudent{intnum};则能正确定义结构体数组的语句是()。
A:structstudents[5];B:structs[5]student;C:structstudent(5);D:structstudents[];
答案:structstudents[5];如下程序的输出是()。
#include<stdio.h>
#include<string.h>
structstud{charname[10];intscore[2];};
intmain()
{inti=0;
structstudt[4]={{"Lisa",98,87},{"Tom",89,86},{"John",68,79},{"Lili",94,90}};
printf("%s\n",t[1].name);
return0;
}
A:TomB:LisaC:JohnD:Lili
答案:Tom设有如下定义,则能输出'Z'的语句是()。
structperson{charname[9];intage;};
structpersonclass[10]={"Wang",17,"Zhang",19,"Ming",18,"Liu",20};
A:printf("%c\n",class[1].name[0]);B:printf("%c\n",class[2].name[1]);C:printf("%c\n",class[2].name);D:printf("%c\n",class[1].name[1]);
答案:printf("%c\n",class[1].name[0]);已知如下语句:
structdate{inty,m,d;};
structstudent
{intnum;
charname[9];
structdatebir;
}stu,*p=&stu;
则错误的表达式是()。
A:p->bir.yB:p->bir->yC:stu.bir.yD:
答案:p->bir->y以下程序的输出是()。
#include<stdio.h>
structst
{intnum;
charname[10];
intage;
}x[3]={{1,”zhang”,19},{2,”li”,20},{3,”wang”,21}},*p=x;
intmain()
{printf(“%s,%d\n”,(p+2)->name,(*p).age);
return0;
}
A:li,21B:zhang,20C:wang,19D:li,20
答案:wang,19当定义一个结构体变量时,系统为它分配的内存空间是结构中各成员所需内存容量之和。()
A:对B:错
答案:对有如下的结构变量定义语句:structstudent{intnum}stu;则结构类型名为stu。()
A:错B:对
答案:错结构体成员的类型必须是基本数据类型。()
A:对B:错
答案:错p为指向结构体的指针,则(*p).成员名与p->成员名是等价的。()
A:对B:错
答案:对
第九章单元测试
下列关于C语言数据文件的叙述中正确的是()。
A:文件由二进制数据序列组成,C语言只能读写二进制文件B:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件C:文件由ASCII码字符序列组成,C语言只能读写文本文件D:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
答案:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件在C语言中,读写操作时会进行自动转换的文件是()。
A:二进制文件和文本文件都需要转换B:文本文件C:二进制文件D:二进制文件和文本文件都不需要转换
答案:文本文件在C语言中,下面关于文件操作正确的叙述是()。
A:对文件操作时打开和关闭文件的顺序没有要求B:对文件操作时需要先关闭文件C:对文件操作时需要先打开文件D:对文件操作时,必须先检查文件是否存在,然后再打开文件
答案:对文件操作时需要先打开文件在C语言中,下面关于文件的存取方式正确的叙述是()。
A:可以顺序存取,但不可以随机存取B:不可以顺序存取,但可以随机存取C:只能从文件的开头存取D:可以顺序存取,也可以随机存取
答案:可以顺序存取,也可以随机存取下列语句可以向文本文件read
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏经销商协议
- 建筑绿化净化施工合同
- 桥梁照明系统安装合同
- 预付款合同管理要点
- 建筑工程技术建造师聘用合同
- 云计算行业试用期合同签订策略
- 生物医药工厂劳动合同模板
- 儿童医院护士录用合同模板
- 电子产品租赁合同协议书
- 儿童科学馆装修协议
- 特发性肺间质纤维化(IPF)治疗新药-尼达尼布课件
- 沪科版八年级数学上册全套试卷
- 苏科版初中初一数学下册《幂的运算》说课稿
- 报价单报价单
- 面试评估表及评分标准及面试评估表及评估标准
- 消防安全重点单位规范化管理手册
- 【拓展阅读】类文阅读《王羲之吃墨》
- 热电厂机组A级检修策划书
- 浙教版数学八年级下册全册优质课件
- 第三讲:苏联模式兴衰
- GB/T 5623-2008产品电耗定额制定和管理导则
评论
0/150
提交评论