版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算思维与程序设计基础A(2021)学习通超星期末考试章节答案2024年现有如下程序运行后,输出结果是
#include"stdio.h"
voidfun(intx)
{
printf("x=%d\n",++x);
}
intmain()
{
fun(12+5);
return0;
}
答案:x=18在C语言中,函数的数据类型是指(
)
答案:函数返回值的数据类型对两个数组a和b进行如下初始化:
chara[]=“ABCDEF”;charb[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};则a与b长度相同。
答案:错使用字符串处理函数strcmp需要包含头文件string.h。
答案:对C语言中,字符串以'\0'为结束标志。
答案:对若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[2][2]得到的初值是(
)。
答案:8若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为()。(设a[0][0]是数组的第一个元素)
答案:i*m+j+1以下不能对二维数组a进行正确初始化的语句是()。
答案:inta[2][3]={{1,2},{3,4},{5,6}};若有定义inta[4][5],则元素a[2][3]是数组中第()个元素。
答案:14下面对二维数组a的说明正确的是()。
答案:doublea[3][4];设array是一个一维整形数组,有10个元素:(1)数组前6个元素的初值是9,4,7,49,32,–5,请写出正确的说明语句。
(2)该数组下标的取值范围是从
到
(从小到大)。(3)如何用scanf函数输入数组的第二个元素。
(4)如何用赋值语句把39存入第一个元素。
(5)如何表示把第六个和第四个元素之和存入第一个元素。
答案:intarray[10]={9,4,7,49,32,–5};;0;9;scanf("%d",&array[1];array[0]=39;;array[0]=array[5]+array[3];选项中和inta[5]={0,1,2}等价的数组是______。
答案:inta[5]={0,1,2,0,0}inta[5]={0,1,2,3,4};定义的一维整型数组a中,元素a[1]~a[3]的初值依次为_____。
答案:1,2,3以下程序运行后,输出结果是()。
voidmain(){inty=18,i=0,j,a[8];
do{a[i]=y%2;i++;y=y/2;
}while(y>=1);
for(j=i-1;j>0;j--)
printf(“%d”,a[j]);
printf("\n");
}
答案:1001若已定义数组:floata[8];则下列对数组元素引用正确的是()。
答案:a[0]=1;break语句只能用于switch语句体中。
答案:错intn=0;while(n++<=2);printf("%d",n);该程序段的输出结果是()。
答案:4x=2;do{printf("*");x--;}while(!x==0);该程序段的运行结果是()。
答案:**do-while语句是先执行后判断,因此至少要执行()次循环体。
答案:1当执行以下程序段时 x=-1; do { x=x*x;} while( !x);
答案:循环体将执行一次for循环中,能省略的表达式有( )。
答案:3个都可以从循环体内某一层跳出,继续执行循环外的语句是:( )。
答案:break语句下边程序段输出结果是( )。int i , a= 0; for ( i = 0; i < 10; i++ )
a++, i++; printf("%d", a);
答案:5对下边for循环,循环体执行次数是( )。 for ( i = 5; i > 1; i -- ) ;
答案:4C语言的switch语句中,case后为()或()
答案:常量;常量表达式设inta=5,b=4,c=3,a>b>c的值为
答案:0若c为char类型变量,能正确判断出c为小写字母的表达式是
答案:c<='z'&&c>='a'&&和||是逻辑运算符,运算优先次序为()
答案:从左到右设a=3,b=4,c=5.求逻辑表达式!(a>b)&&!c||1的值为()
答案:1表达式 !x||a==b等效于
答案: !(x||(a==b) 有如下程序:
#include “stdio.h"void main() { int x=1,a=0,b=0; switch(x)
{ case 0:b++;
case 1:a++;
case 2:a++;b++; }
printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是
答案:a=2,b=1设int x=2,y=1;,则表达式 (!x || y--) 的值是
答案:1若w=1,x=2,y=3,z=4,则条件表达式(w答案:1若运行时给变量X输入12,以下程序运行结果是
main()
{intx,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d\n”,y);
}
答案:0输入项可以为一个实型常量,如scan("%f",3.5);。
答案:错表达式加上分号“;”就能组成表达式语句。
答案:对C语言程序的执行总是从程序的第一行开始。
答案:错编译时可以发现注释中的错误。
答案:错double型变量在内存中占的字节数与int型变量在内存中占的字节数一样多。
答案:错浮点型常量的指数表示中,e是可以省略的。
答案:错字符数据在内存以ASCII码存储,占2个字节。
答案:错字符数据与整型数据可互相赋值。
答案:对在程序运行过程中,其值不随程序的运行而改变的量称为____,其值可以改变的量称为____。
答案:常量;变量在C语言中,变量必须先____后使用。
答案:声明若有说明语句:charc=‘\72’;则变量c()。
答案:包含1个字符下面关于C语言用户标识符描述,正确的是
答案:用户标识符可以作为变量名计算学科的计算研究的是()。
答案:面向机器可自动执行的求解一般问题的计算规则我们要学习的计算思维是()。
答案:蕴含在计算学科知识背后的具有贯通性和联想性的内容计算机中所有信息都是用()来表示。
答案:二进制代码()是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列的思维活动。
答案:计算思维简述冯.诺依曼原理。
答案:冯.诺依曼原理的核心是“存储程序控制”,具体内容如下:(1)采用二进制形式表示数据和指令。(2)将程序(数据和指令序列)预先存放在主存储器中,使计算机在工作时能够自动高速地从存储器中取出指令,并加以执行。(3)由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成计算机系统,并规定了这五大部件的基本功能。}什么是思维?科学思维是如何分类的?
答案:思维是人脑对客观事物的一种概括的、间接的反映,是人们运用存储在大脑的知识经验,对外界输入的信息进行分析与综合、比较与分类、抽象和概括等一系列复杂操作的实现过程。科学思维包括理论思维、实验思维和计算思维。简述计算工具的发展历程。
答案:计算工具经历了4代发展:①早期手工计算工具,包括算筹、算盘、计算尺等;②机械式计算工具,包括帕斯卡加法器、莱布尼茨四则运算器、巴贝奇差分机与分析机等;③机电式计算工具,包括霍勒瑞斯制表机和自动顺序控制计算机Mark系列等;④电子计算机,包括电子管计算机、晶体管计算机、大规模和超大规模集成电路计算机等。什么是C语言?为什么要学习C语言?
答案:C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,也可以作为应用程序设计语言。C语言是一种结构化语言,它层次清晰,便于按模块化方式组织程序,易于调试和维护。有一篇文章这样讲:你必须懂得C,因为出于所有现实的理由,这个世界上你过去、现在和将来会用到的每一台计算机都是一台冯·诺依曼机器,而C是一种轻量级的、很有表达力的语法、能很好地展现冯·诺依曼机器能力的计算机语言。你还有一个必须知道C的另一个原因是:Unix是用C写的,Windows也是用C写的,基本上所有其他操作系统都是用C写的,因为这些操作系统都是冯·诺依曼及的操作系统,可以说C是最靠近计算机是如何工作的语言模型。基于计算思维求解问题的核心技术是什么?
答案:许多实际问题的求解都依赖于有效算法的设计与实现。算法是解决某特定问题的方法或步骤,或者说,算法是为解决一类特定问题而设计的确定的、有限的操作步骤。这些操作步骤构成了一系列的有序指令集合,这就是求解问题的计算机程序。由此可见,算法是程序设计的关键,找不到算法,就无法编写计算机程序,也就无法用计算机来解决问题。C语言中,0x123是10进制常量。
答案:错冯•诺依曼计算机工作原理的设计思想是存储程序
答案:对计算机能够直接识别和执行的语言是汇编语言
答案:错CPU包括____和____,是计算机的核心部分。
答案:运算器;控制器现在国际上广泛采用的字符编码是____。
答案:ASCII码用8个二进制位能表示的最大的整数等于十进制整数()。
答案:255自动计算需要解决的基本问题是()。
答案:数据和计算规则的表示、自动存储和计算规则的自动执行如何学习计算思维()。
答案:以上所有C语言中变量有哪三个要素?各代表什么含义?
答案:变量有三要素:变量名、变量类型和变量的值。变量名:指存储单元的符号地址;变量的值:指存储单元中的数据;变量类型:描述存储单元的大小。C语言中标识符命名规定是什么?
答案:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或者下划线。在c语言中,运算符+、-、*、/具有相同的优先级。
答案:错在C程序中,APH和aph是两个不同的变量。
答案:对程序中的“=”是赋值号,与数学中等号的功能相同。
答案:错逗号表达式的值是第一个表达式的值。
答案:错在内存中占16位的无符号整型变量的范围是0到(
)。
答案:65535设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为(
)。
答案:1.0以下正确的浮点数是
答案:62下面四组选项中,均不是C语言关键字的选项是()。
答案:definaIFtype若有charc='\95';则变量c包含多少个字符。
答案:1在C语言中,要求运算量必须是整型或字符型的运算符是
答案:%设有intx=10;x+=3+x%(-3),则x的值是
答案:14若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值是
答案:0C语言中非空的基本数据类型包括
答案:整型,实型,字符型如定义:intx=10,y=3,z;z=x/y;则z的值是
答案:3表达式(a=3*5,a*4,a+5)的值是
答案:20下面合法的C语言字符常量是
答案:'\t'在下列选项中,不正确的赋值语句是
答案:a=b+c=1;while和for循环的循环体可能一次也执行不到。
答案:对break结束整个循环过程,不再判断执行循环的条件是否成立。
答案:对do-while语句构成的循环不能用其他语句构成的循环来代替。
答案:错while(1)是无限循环。
答案:对在循环结构中,跳出本层循环,转去执行后续语句的是()语句。
答案:breakC语言的for语句中的表达式可以部分或全部省略,但两个()不可省略。
答案:分号;;有以下程序段,此处do-while循环的结束条件是:( ) int n=0,p; do {scanf(“%d”,&p);
n++;}while(p!=12345&&n<3);
答案: p的值等于12345或者n的值大于等于3以下程序的输出结果是 main( ) { int a,b; for(a=1,b=1;a<=100;a++)
{ if (b>=10) break; if (b%5==1) { b+=5; continue; }
} printf("%d\n",a); }
答案:3C语言中while 和do-while 循环的主要区别是( )。
答案:do-while的循环体至少无条件执行一次语句while(!e);中的条件 !e 等价于( )。
答案:e==0有以下程序段 int k=0; while (k=1) k++; while循环执行的次数是
答案:无限次do-while语句的循环体( )。
答案:至少要执行一次int i=1; while(--i); 循环次数是( )。
答案:0写出以下程序的输出结果 #include"stdio.h"void main() { inti;
for(i=4;i<=10;i++)
{ if(i%3==0)continue;
printf("%d",i); } }
答案:457810被调用函数定义出现在主调函数之前时,可不作函数声明。
答案:对函数定义与函数声明相同。
答案:错实参即“实际参数”,出现在函数调用中。当发生函数调用时,调用函数把实参的值复制1份,传送给被调用函数的形参,从而实现实参向形参的数据传送。
答案:对函数调用的一般形式为:函数名([实参表])。其中实参的个数、类型和顺序,必须与被调用函数所要求的参数个数、类型和顺序一致,才能正确地进行数据传递。
答案:对用户自定义函数是由程序员自己定义和设计的函数。需要程序员自己来编写函数功能实现代码。
答案:对函数是具有某种功能的独立程序段。
答案:对库函数是由编译系统提供的已设计好的函数,用户只需调用而无需去实现它。
答案:对模块化程序设计将一个大的程序按功能分割成一些小模块。
答案:对变量按作用域:分为全局变量和()。
答案:局部变量从用户使用的角度看,函数有两种:①标准函数(库函数);②(
)。
答案:用户自定义函数;自定义函数函数的参数分为(
)和()两种,作用是实现数据传送。
答案:形参;形式参数;实参;实际参数以下程序的输出结果是(
)
intfun(inta,intb)
{
if(a>b)returna;
elsereturnb;
}
voidmain(
)
{
int
x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%d\n",r);
}
答案:12在一个源文件中定义的外部变量的作用域为(
)。
答案:从定义该变量的位置开始至本文件结束下列程序执行后输出的结果是
intd=1;
fun(intq)
{
intd=5;
d+=q++;
printf("%d",d);
}
voidmain()
{
inta=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
答案:8
4以下错误的描述是(
)
答案:函数的调用可以为一个函数的形参以下程序运行后,输出结果是
int
d=1;
fun(intp)
{
int
d=5;
d=d+p++;
printf("%d",d);
}
voidmain()
{
int
a=3;
fun(a);
d=d+a++;
printf("%d\n",d);
}
答案:84以下程序运行后,输出结果是
func(inta,intb)
{static
int
m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main(){intk=4,m=1,p;
p=func(k,m);printf("%d\n",p);
p=func(k,m);printf("%d\n",p);
}
答案:8,17求下列程序的运行结果:#include"stdio.h"int
abc(intu,intv);
void
main()
{inta=24,b=16,c;
c=abc(a,b);
printf("%d\n",c);
}
intabc(intu,intv)
{int
w;
while(v)
{w=u%v;
u=v;
v=w;}
returnu;
}
答案:8以下程序的输出结果是
()int
d=1;
fun(int
p)
{
d=d+p;
printf("%d",d);
return(d);
}
voidmain(
)
{
int
a=3;
printf("%d\n",fun(a+fun(d)));}
答案:27
7以下程序的输出结果是(
)longfib(int
n)
{
if(n>2)return(fib(n-1)+fib(n-2));
elsereturn(2);
}
voidmain()
{
printf(“%d\n”,fib(6));}
答案:16在C语言中,函数的隐含存储类别是(
)
答案:externC语言允许函数值类型缺省定义,此时该函数值隐含的类型是(
)
答案:int型在函数的调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则(
)
答案:称为函数的间接递归调用C语言是由(
)构成的
答案:主函数和若干子函数C程序由函数和过程组成。
答案:错表达式(int)2.1416的值为2.1。
答案:错C程序中的注释只能出现在程序的开始位置和语句的后面。
答案:错执行y=(a=3,6*5),a+5;后y的值是31
答案:错C语言程序中用到的变量可以在使用后再补充说明定义。
答案:错若x为int型变量,则执行以下语句后x的值是
。x=7;x+=x-=x+x;
答案:-14给出k的值:k=(a=2,b=3,a+b);。
答案:5下面程序段,如果准备赋值x为12,y为34,应该如何输入()。intx,y;scanf("%d,%d",&x,&y);
答案:12,34回车已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为()。
#include"stdio.h"
main(){
charx,y;
x='0';y='9';
printf("%d,%d\n",x,y);}
答案:48,57下列叙述中错误的是()。
答案:后缀为.obj和.exe的二进制文件都可以直接运行C语言规定:在一个源程序中,main函数的位置()。
答案:可以在任意位置if(表达式)语句1 else 语句2 结构中,如表达式为a>10,则else的条件隐含为a<10。
答案:错else总是与它上面最近的且尚未配对的if配对。
答案:对所有关系运算符的运算优先级相同。
答案:错可以用swicth结构实现的程序都可以使用if语句来实现。
答案:对设x、y、t均为int型变量,则执行语句x=y=2;t=++x||++y;后,y的值为
答案:2已知intx=10,y=20,z=30;执行语句if(x>y)z=x;x=y;y=z;后x,y,z的值是
答案:x=20,y=30,z=30若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是
答案:!(A%2)执行程序段inta,b;
a=15;b=-1;a=a+b&&a;a值为
答案:1仅仅对存放字符串的数组才可以一次引用整个数组,其余均不能一次引用整个数组。
答案:对数组名代表该数组的首地址。
答案:对C语言中,gets()函数的返回值是用于存放输入字符串的字符数组首地址。
答案:对C语言中,用格式符"%s"输入字符数组时,数组名前不能加&。
答案:对在数组定义后,可以使用语句如Sum[]={1,2,3};给数组初始化。
答案:错二维及多维数组在定义的同时给数组赋初值时,可以省略数组的各维长度。
答案:错C语言中,数组元素在内存中是顺序存放的,它们的地址是连续的。
答案:对若有说明语句:inta[][3]={1,2,3,4,5,6,7,8};,则a数组的行数为()。
答案:3若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是()。
答案:0若有定义:doublex[3][5];,则x数组中行下标的上限为(
)。
答案:2有以下程序:
#include"stdio.h"void
main(){chars[]='abcde';
s+=2;
printf("%d\n",s[0]);
}
程序的运行结果是()。
答案:程序出错下列定义数组的语句中正确的是()。
答案:defineN2008
intnum[N];以下程序运行结果为_____。voidmain(){inta[][3]={1,2,3,4,5,6,7,8,9},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)s=s+a[i][j];
printf("\nS=%3d",s);}
答案:S=15以下数组定义中错误的是______。
答案:intx[2][3]={{1,2},{3,4},{5,6}};intarray[10];定义了一个名为array的数组,array[0]~array[9],可用于存储_____个int型数据。
答案:10以下程序的输出结果是______。#include"stdio.h"voidmain(){chars[]={"012xy"};
inti,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='a'&&s[i]<='z')n++;
printf("%d\n",n);
}
答案:2若要求从键盘读入含有空格字符的字符串,应该使用函数()。
答案:gets()执行下面的程序段后,变量k中的值为_____。
intk=3,s[2];s[0]=k;
k=s[1]*10;
答案:不定值若有定义和语句:则结果是(以下u代表空格)_____。chars[10];s="abcd";printf("%s\n",s);
答案:编译不通过有程序段如下:运行该程序的结果是()。
chara[3],b[]=”China”;
a=b;
printf(“%s”,a);
答案:编译出错C语言中,在对全部数组元素赋初值时,必须指定数组的长度。
答案:错C语言中,二维数组中元素排列顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。
答案:对下面程序可求出矩阵a的两条对角线上的元素之和。请填空。voidmain()
{staticinta[3][3]={1,3,6,7,9,11,14,15,17};
intsum1=0,sum2=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum1+=a[i][j];
for(i=0;i<3;i++)
for((
);j>=0;j--)
if(i+j==2)sum2+=a[i][j];
printf("sum1=%d,sum2=%d\n",sum1,sum2);
}
答案:j=2;j=3下面程序段将输出computer,请填空。
charc[]=“It'sacomputer”;
for(i=0;i<8;.i++)
{(
);
printf(“%c”,c[i]);}
答案:c[i]=c[i+7]若有说明:chars[20];,如果想从键盘上把字符串:Thisisabook.输入到数组s中,应当使用的函数调用语句的形式是(
)。
答案:gets(s以下程序运行结果为______
voidmain()
{inti=1,n=3,j,k=3;
inta[5]={1,4,5};
while(i<=n&&k>a[i])
i++;
for(j=n-1;j>=i;j--)
a[j+1]=a[j];
a[i]=k;
for(i=0;i<=n;i++)
printf(“%5d”,a[i]);}
答案:1345递归调用必须引入一个循环条件控制递归结束,否则进入死循环。
答案:错由于实参向形参传值是单向的,也就是说,形参的改变不会影响到实参。
答案:对形参即“形式参数”,出现在函数定义中。当发生函数调用时,接受传递过来的值。
答案:对模块化程序设计避免程序开发的重复劳动。
答案:对模块化程序设计控制不了程序设计的复杂性。
答案:错当标识符在该条件编译结构前(),程序段被编译。否则,程序段不被编译。
答案:已定义过时下列程序执行后的输出结果是
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3)
{i+=2;
func2(i);
}
}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3)
{i+=2;func1(i);}
}
voidmain()
{
inti=0;
func1(i);}
答案:hlo请读程序:
#include"stdio.h"f(intb[],intn)
{inti,r;
r=1;
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\n",x);
}
上面程序输出结果是(
)
答案:120请读程序:
#include"stdio.h"voidfun(ints[])
{staticintj=0;
do
{
s[j]+=s[j+1];}
while(++j<2);
}
voidmain()
{int
k,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
上面程序输出结果是(
).
答案:35745以下程序运行后,如果从键盘上输入ABCDE,则输出结果为
#include"stdio.h"
#include"string.h"
func(charstr1[])
{int
num=0,i=0;
while((str1[i])!='\0')
{num++,i++;}
return(num);
}
main()
{char
str[10];
gets(str);
printf("%d\n",func(str));
}
答案:5下列程序执行后输出的结果是
#include〈stdio.h〉
fun3(intx)
{staticinta=3;
a+=x;
return(a);}
voidmain()
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}
答案:6下列程序执行后输出的结果是()
#include〈stdio.h〉
f(inta)
{
intb=0;
intc=3;
a=c++,b++;
return(a);
}
voidmain()
{
inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
答案:3inta[]={0};能对一维数组a进行正确的初始化;
答案:对case语句后如没有break,顺序向下执行。
答案:对switch…case结构中case后的表达式必须为常量表达式。
答案:对在C语言中,下列类型属于基本类型的是整型、实型、字符型。
答案:对在C程序中,%是只能用于整数运算的运算符。
答案:对C语言中,程序执行的入口是main()函数,所以main函数必须放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论