C语言程序设计智慧树知到答案2024年新疆理工学院_第1页
C语言程序设计智慧树知到答案2024年新疆理工学院_第2页
C语言程序设计智慧树知到答案2024年新疆理工学院_第3页
C语言程序设计智慧树知到答案2024年新疆理工学院_第4页
C语言程序设计智慧树知到答案2024年新疆理工学院_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计新疆理工学院智慧树知到答案2024年第一章测试

用计算机解决问题的步骤一般为()

①编写程序②设计算法③分析问题④调试程序

A:③②①④B:①②③④C:②③①④D:③④①②

答案:AC语言的基本构成单位是()。

A:函数和过程B:函数C:子程序D:超文本过程

答案:BC语言规定,必须用()作为主函数名。

A:程序书写格式严格限制,一行内必须写一个语句,并要有行号B:C程序书写格式自由,一个语句可以分写在多行上C:C程序书写格式严格限制,一行内必须写一个语句D:在执行C程序时不是从main函数开始的

答案:A编译程序可以将源程序翻译成()

A:目标程序B:可执行程序C:连接程序D:编辑程序

答案:A下面关于算法的说法正确的是()

A:算法就是程序B:算法必须在有限的步骤结束C:算法必须有输出D:算法不一定有输入

答案:BCD算法应该具有那些重要的特征()

A:可行性B:有穷性C:输入、输出D:确定性

答案:BCD计算机是人造的,所以,它和人脑解决问题没有什么区别。()

A:对B:错

答案:B算法的每一个步骤都必须要有确切的定义,不能有二义性。()

A:对B:错

答案:A在C程序中,注释说明只能位于一条语句的后面。()

A:错B:对

答案:A在C程序中,每行只能写一条语句。()

A:错B:对

答案:A

第二章测试

判断char类型的变量c是否为大写字母的正确表达式为()。

A:'A'<=c<='Z'B:('A'<=c)AND('Z'>=c)C:(c>='A')&(c<='Z')D:(c>='A')&&(c<='Z')

答案:D若有语句inta=1,b=2,c=3;则以下值为0的表达式是()。

A:'a'&&'b'B:(a>b)||(b<c)C:a<=bD:(!(a+b)==c&&a)

答案:D在C语言中,要求参加运算的数必须是整数的运算符是()。

A:%B:/C:=D:*

答案:A使用语句scanf("x=%f,y=%f",&x,&y);

输入变量x、y的值(□代表空格),正确的输入是()。

A:x=1.25□y=2.4B:1.25□2.4C:1.25,2.4D:x=1.25,y=2.4

答案:D已知inta=3;执行a+=a-=a*a后,变量a的值()。

A:0B:-12C:9D:6

答案:BC语言提供的合法的数据类型关键字是()。

A:floatB:integerC:CharD:int

答案:ACD表达式i++与++i在任何场合功能完全相同。()

A:对B:错

答案:Bscanf和printf都是C系统提供的标准输入输出函数。()

A:错B:对

答案:B在scanf("%d,%d",&a,&b)函数中,可以使用一个或多个空格作为两个输入数之间的间隔。()

A:对B:错

答案:BC语言中可以把一个字符串赋给一个字符变量。()

A:对B:错

答案:B

第三章测试

C语言中,逻辑“真”等价于()。

A:大于零的整数B:非零的整数C:大于零的数D:非零的数

答案:D若x=0,y=3,z=3,以下表达式值为0的是()。

A:!xB:x<y?1:0C:x%2&y==zD:y=x||z/3。

答案:C为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A:缩排位置相同的ifB:同一行上的ifC:在其之前未配对的ifD:在其之前未配对的最近的if

答案:D以下关于运算符优先顺序的描述中正确的是()。

A:逻辑与运算符<关系运算符<算术运算符<赋值运算符B:算术运算符<关系运算符<赋值运算符<逻辑与运算符C:赋值运算符<逻辑与运算符<关系运算符<算术运算符D:关系运算符<算术运算符<赋值运算符<逻辑与运算符

答案:C选择出合法的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++;

答案:D当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:3C:2D:4

答案:C执行以下程序段后,变量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=1,z=0C:x=0,y=0,z=0D:x=-1,y=-1,z=1

答案:D若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:2B:1C:4D:3

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

#include“stdio.h”

main()

{

inta=5,b=4,c=6,d;

printf(”%d\n”,d=a>b?a>c?a:c:b);

}

A:4B:不确定C:6D:5

答案:C若a、b、c1、c2、x、y均为整型变量,正确的switch语句是()。

A:switch(a*a+b*b)

{

case3:

case1:y=a+b;

break;

case3:y=b-a;

break;

}B:switch(a+b);{

case1:y=a+b;

break;case0:y=a-b;

break;}C:switch(a-b){

default:y=a*b;break;

case3:x=a+b;break;case10:case11:y=a-b;break;}D:switcha{

casec1:y=a-b;

break;casec2:x=a*d;

break;

default:x=a+b;}

答案:C

第四章测试

以下语句有语法错误的是()。

A:intx=1;y=2;z=3;B:for(x=10;x>0;x--);C:for(;;);D:while(1);

答案:A代码while(1)printf(“hello”)中,while循环的循环次数是()。

A:无法确定B:1C:无数次D:0

答案:C有语句for(i=2,j=8;i!=j;i++,j--),循环执行完成后i的值是()。

A:2B:5C:8D:4

答案:Bfor语句可以代替下列哪个语句()。

A:都可以B:都不可以C:do...whileD:while

答案:D当循环条件不满足,需要跳出整个循环时,可以使用下列哪个语句()。

A:breakB:gotoC:continueD:都可以

答案:A循环体中的语句无论有几条,都需要用括号括起来。()

A:对B:错

答案:B循环体中应有使得循环趋于结束的语句。()

A:错B:对

答案:Bbreak语句和continue语句都能改变循环的执行状态。()

A:错B:对

答案:B执行循环语句for(s=0,i=1;i<=10;i=i+3)s+=i;后,i的值为是,{13}。()

A:错B:对

答案: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:对

答案:B

第五章测试

下列正确的数组定义与初始化语句是()。

A:inta[1][2]={{1},{3}};B:intd[][2]={{1,2},{3,4}};C:intN=5,b[N][N];D:intc[2][]={{1,2},{3,4}};

答案:B以下能对一维数组a进行初始化的语句是()。

A:inta(5)={};B:inta{5}={10*1};C:inta[3]={0,1,2};D:inta[5]=(0,1,2,3,4);

答案:C下列关于数组inta[5]的引用正确的是()。

A:a[5];B:a(0);C:a(5);D:a[0];

答案:D设有数组inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};i=10;则a[a[i]]元素数值是()。

A:10B:5C:6D:9

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

A:2B:无法确定C:3D:4

答案:C定义数组时,可以不用指定其长度。()

A:错B:对

答案:A引用数组元素时,下标可以从0或1开始。()

A:错B:对

答案:AC语言中的字符串是以字符数组的形式处理的。()

A:对B:错

答案:A若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是{6}。()

A:错B:对

答案:B在C语言中,以{‘\0’}作为字符串结束标志。()

A:对B:错

答案:A

第六章测试

以下程序有语法错误,有关错误原因的正确的说法是()。intmain(){

intG=5,k;

voidprt_char();

…..

k=prt_char(G);

…..}

A:函数说明和函数调用语句之间有矛盾B:函数名不能使用下划线C:变量名不能用大写字母D:语句voidprt_char();有错,它是函数调用语句,不能用void说明

答案:A若有以下调用语句,则正确的fun函数首部是()。intmain(){

inta;

floatx;

fun(x,a);

}

A:voidfun(intn,floaty[])B:voidfun(floaty,intnC:voidfun(intn,floatyD:voidfun(intx,floata)

答案:B函数f定义如下,执行语句”m=f(3);”后,m的值应为()。

intf(intk)

{if(k==0||k==1)return1;

elsereturnk+f(k-1);

}

A:8B:6C:13D:5

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

inta,b;

voidfun()

{a=100;b=200;}

intmain()

{inta=5,b=7;

fun();

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

return0;

}

A:200100B:100200C:75D:57

答案:D以下程序的输出结果是(B)。

intfun(intp)

{staticintd=5;

d+=p;

return();

}

intmain()

{printf(""%d"",fun(1));

printf(""%d"",fun(2));

return0;

}

A:67B:69C:66D:68

答案:A若程序中定义了以下函数doublemyadd(doublea,doubleB){return(a+B);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。

A:doublemyadd(doubleb,doubleA);B:doublemyadd(double,double);C:doublemyadd(doublex,doubley);D:doublemyadd(doublea,B);

答案:D函数中可以没有return语句,也可以有多条return语句。()

A:对B:错

答案:A函数必须有返回值。()

A:对B:错

答案:B函数f可以用f(f(x))形式调用,这种调用形式是递归调用。()

A:错B:对

答案:A如果在函数中定义一个变量,则该变量只在该函数中有效。()

A:对B:错

答案:A

第七章测试

若有定义“inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;”,则值为6的表达式()。

A:P+5B:*(p+6)C:*p+=5D:*p+6

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

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:8B:10C:6D:16

答案:B设inti,*p=&i;以下正确的语句是()。

A:i=pB:i+=pC:*p=10D:p=2*p+1

答案:C设chars[10],*p=s;以下不正确的语句是()。

A:p=s+5B:s=p+sC:s[2]=p[4]D:*p=s[0]

答案:B以下程序的执行结果是()。

#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,4B:3,6C:1,6D:1,3

答案:B以下fnStrcomp()函数的功能是按词典顺序比较两个字符串s和t的大小。如果s大于t,则返回正值,等于则返回0,小于则返回负值,横线处正确的选项是()。

intfnStrcomp(char*s,char*t)

{

for(_______;*s==*t;______)

if(*s=='\0')return(0);

return(*s-*t);

}

A:t++B:s++,t++C:t++;s++D:s++

答案:B以下程序的执行结果为以下内容。

#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:错

答案:A以下程序的执行结果为以下内容。

#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:错

答案:A以下程序是将"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:对

答案: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:对

答案:B

第八章测试

有如下的结构体定义语句:structstudent{intnum};则能正确定义结构体变量的语句是()。

A:structstudents1;B:students1;C:structstudent;D:structs1;

答案:A有如下的结构体定义语句:structstudent{intnum};则能正确定义结构体数组的语句是()。

A:structstudent(5);B:structstudents[5];C:structs[5]student;D:structstudents[];

答案:B如下程序的输出是()。

#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:LiliC:LisaD:John

答案:A设有如下定义,则能输出'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[1].name[1]);C:printf("%c\n",class[2].name);D:printf("%c\n",class[2].name[1]);

答案:A已知如下语句:

structdate{inty,m,d;};

structstudent

{intnum;

charname[9];

structdatebir;

}stu,*p=&stu;

则错误的表达式是()。

A:p->bir.yB:stu.bir.yC:D:p->bir->y

答案:D以下程序的输出是()。

#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:zhang,20B:li,21C:wang,19D:li,20

答案:C当定义一个结构体变量时,系统为它分配的内存空间是结构中各成员所需内存容量之和。()

A:对B:错

答案:A有如下的结构变量定义语句:structstudent{intnum}stu;则结构类型名为stu。()

A:对B:错

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

A:错B:对

答案:Ap为指向结构体的指针,则(*p).成员名与p->成员名是等价的。()

A:错B:对

答案:B

第九章测试

下列关于C语言数据文件的叙述中正确的是()。

A:文件由ASCII码字符序列组成,C语言只能读写文本文件B:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件C:文件由二进制数据序列组成,C语言只能读写二进制文件D:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

答案:B在C语言中,读写操作时会进行自动转换的文件是()。

A:二进制文件B:二进制文件和文本文件都不需要转换C:二进制文件和文本文件都需要转换D:文本文件

答案:D在C语言中,下面关于文件操作正确的叙述是()。

A:对文件操作时需要先打开文件B:对文件操作时打开和关闭文件的顺序没有要求C:对文件操作时,必须先检查文件是否存在,然后再打开文件D:对文件操作时需要先关闭文件

答案:A在C语言中,下面关于文件的存取方式正确的叙述是()。

A:不可以顺序存取,但可以随机存取B:可以顺序存取,但不可以随机存取C:可以顺序存取,也可以

温馨提示

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

评论

0/150

提交评论