程序设计基础-C智慧树知到课后章节答案2023年下四川师范大学_第1页
程序设计基础-C智慧树知到课后章节答案2023年下四川师范大学_第2页
程序设计基础-C智慧树知到课后章节答案2023年下四川师范大学_第3页
程序设计基础-C智慧树知到课后章节答案2023年下四川师范大学_第4页
程序设计基础-C智慧树知到课后章节答案2023年下四川师范大学_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

程序设计基础——C智慧树知到课后章节答案2023年下四川师范大学四川师范大学

第一章测试

第一台通用电子计算机是()。

A:ADVAC计算机B:ENIAC电子数字积分计算器C:ABC计算机D:PASCAL加法器

答案:ENIAC电子数字积分计算器

TC3.0集成开发环境中,C语言源程序文件的扩展名是()。

A:.CPPB:.TXTC:.CD:.DAT

答案:.CPP

以下选项中可用作C语言合法用户标识符的是()。

A:2aB:_123C:-abcD:viod

答案:_123

以下选项中叙述正确的为()。

A:C语言的标识符可分为语句、变量和关键字三类B:C语言的标识符可分为运算符、用户标识符和关键字三类C:C语言的标识符可分为函数名、变量和预定义标识符三类D:C语言的标识符可分为关键字、预定义标识符和用户标识符三类

答案:C语言的标识符可分为关键字、预定义标识符和用户标识符三类

C语言可执行程序的开始执行点是()。

A:程序中的main函数B:程序中第一个函数C:程序中第一条可执行语句D:包含文件的第一个函数

答案:程序中的main函数

C语言程序代码的特点是()。

A:可被机器直接执行B:执行效率高C:表达方式灵活D:书写自由

答案:执行效率高;表达方式灵活;书写自由

要使得一个源程序完成计算任务,必须结果如下过程和步骤:()。

A:执行B:编译C:链接D:编辑

答案:执行;编译;链接;编辑

TC2.0集成环境中,查看程序运行结果的方法有()。

A:<CTRL+R>B:<ALT+R><U>C:<ALT+R><ENTER>D:<ALT+F5>

答案:<ALT+R><U>;<ALT+F5>

C语言不作运行时错误检查。()

A:对B:错

答案:对

程序阅读时,每一程序语句的执行前的状态、执行过程和执行结果都要弄清楚才行。()

A:错B:对

答案:对

第二章测试

对数据类型之间的转换,要遵守的总体法则是()。

A:以内部存储格式为准,进行扩展或截断B:以字节数为准,进行扩展或截断C:以取值范围为准,进行扩展或截断D:以外部表示格式为准,进行扩展或截断

答案:以内部存储格式为准,进行扩展或截断

在单字节存储空间中,235的补码为()。

A:235B:-20C:不能确定D:-21

答案:-21

在表达式运算中,下述表述错误的是()。

A:数据类型向优先级高的运算符看齐B:数据类型向目标实体看齐C:数据类型向高格式看齐D:数据类型先对齐,再进行运算符的运算

答案:数据类型向优先级高的运算符看齐

假设nX=0,nY=0,nZ=0,执行nX++&&++nY||++nZ&&(nY&&++nY)后,nX,nY,nZ的值分别是()。

A:1,1,1B:1,0,1C:1,1,2D:1,1,0

答案:1,0,1

以下程序代码的执行结果是()。

#include<stdio.h>

intmain(void){

intx=010,y=10;

printf(“%d,%d\n”,++x,y--);

retrun0;

}/*Endofmain()*/

A:010,9B:10,9C:11,10D:9,10

答案:9,10

能够表示字符串结束符值的有效方法是()。

A:NULLB:''C:""D:0

答案:NULL;'\0';0

关于问号表达式:<条件表达式>?<表达式1>:<表达式2>,以下陈述正确的是()。

A:其运算结果是<表达式1>和<表达式2>中的数据类型较低的类型B:其运算符优先级与赋值运算符相同C:其运算符的结合方向是自右至左的D:其运算结果是<表达式1>和<表达式2>中的数据类型较高的类型

答案:其运算符的结合方向是自右至左的;其运算结果是<表达式1>和<表达式2>中的数据类型较高的类型

浮点数在计算机内部是近似表示的。()

A:错B:对

答案:对

i++和++i都是将i的值加1,故两者功能是等价的。()

A:错B:对

答案:错

第三章测试

逗号表达式k=(i=1,j=1,++i,--j)的值是()。

A:--j的值B:不能确定C:i=1的值D:k的值

答案:--j的值

对inti,j;scanf(“%d%d”,&i,&j);,输入:1225后,以下说法正确的是()。

A:i和j的值分别为12和25B:编译时会出现语法错误C:i和j的值无法预测D:编译时会出现语法警告

答案:i和j的值分别为12和25

对以下程序代码,其输出结果是()。

#include<stdio.h>

intmain(void){

intx=072;

printf(“%d\n”,x+1);

return0;

}/*Endofmain()*/

A:73B:72C:115D:59

答案:59

对以下程序代码,输出的结果是()。

#include<stdio.h>

intmain(void){

intx=0x10;

printf(“%c\n”,'A'+x);

return0;

}/*Endofmain()*/

A:KB:PC:QD:I

答案:Q

以下程序的运行结果是()。

#include<stdio.h>

voidmain(void){

inti,j,m,n;

i=8;j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

return0;

}/*Endofmain()*/

A:9,10,9,11B:9,11,8,10C:9,11,9,10D:8,10,8,10

答案:9,11,9,10

C语言中的控制型语句是()。

A:if、switchB:break、continue、goto、returnC:while、for、dowhileD:loop

答案:if、switch;break、continue、goto、return;while、for、dowhile

空语句即独立的一个分号语句。()

A:对B:错

答案:对

单精度浮点数的默认格式化输出精度为6位,双精度则为12位。()

A:对B:错

答案:错

scanf()格式控制串中的默认分隔符为'\n'。()

A:对B:错

答案:错

第四章测试

引入N-S图的原因是()。

A:传统流程图绘制起来太自由,流程线不好画B:传统流程图的绘制思想太传统,符号太多C:传统流程图无法表示结构化流程D:传统流程图无法表达一些特殊的控制结构

答案:传统流程图绘制起来太自由,流程线不好画

算法的伪代码表示的主要优点是()。

A:表达、修改和实现起来方便B:可以直接当作源程序代码使用C:使用了人们习惯的自然语言方式表达D:逻辑关系的呈现比流程图直观

答案:表达、修改和实现起来方便

在传统流程图中,用来表示输入输出的图形符号是()。

A:平行四边形B:菱形C:椭圆形D:长方形

答案:平行四边形

一个算法应具有"确定性"等5个特征,下面对另外4个特征的描述中错误的是()。

A:可行性B:有零个或多个输出C:有穷性D:有零个或多个输入

答案:有零个或多个输出

下列叙述中正确的是()。

A:算法设计只需考虑得到计算结果B:算法设计可以忽略算法的运算时间C:程序可以作为算法的一种描述方法D:所谓算法就是计算方法

答案:程序可以作为算法的一种描述方法

描述算法过程的基本控制结构是()。

A:选择B:递归C:顺序D:循环

答案:选择;顺序;循环

算法的基本特征包含()。

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

答案:输入输出;确定性;有穷性;可行性

N-S流程图也称()。

A:盒图B:无流程线图C:框图D:PAD图

答案:盒图;无流程线图;框图

算法要求在执行若干步骤后必须停止或结束。()

A:对B:错

答案:对

算法的伪代码表示法也称为混合表示法。()

A:对B:错

答案:对

第五章测试

在模块化程序中,每个程序模块()。

A:每个模块只能有一个入口,但可以有多个出口B:每个模块可以有多个入口,也可以有多个出口C:每个模块可以有多个入口,但只能有一个出口D:每个模块只能有一个入口和一个出口

答案:每个模块只能有一个入口和一个出口

对if语句的基本形式:if(表达式)语句,其中“表达式”()。

A:必须是逻辑表达式B:可以是任意合法的表达式C:必须是关系表达式D:必须是逻辑表达式或关系表达式

答案:可以是任意合法的表达式

关于break控制语句的功能,下面错误的叙述是()。

A:跳出ifgoto构成的循环控制结构B:跳出dowhile控制结构C:跳出同时控制结构D:跳出for控制结构

答案:跳出ifgoto构成的循环控制结构

以下程序段中,循环次数不超过10的是()。

A:inti=6;do{i-=2;}while(i!=1);B:inti=1;do{i+=2;}while(i!=10);C:inti=5;do{i+=1;}while(i>0);D:inti=10;do{i=i+1;}while(i<0);

答案:inti=10;do{i=i+1;}while(i<0);

选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任意合法表达式,但其值只能被判断为"真"或"假"。下列选项中哪个值是作为逻辑"假"值()。

A:-1B:1C:0D:非零的数

答案:0

以下程序运行的结果是()。

...

inty=1;

while(y--);

printf(“y=%d\n”,y);

...

A:死循环B:y=9C:y=0D:y=-1

答案:y=-1

对for(;;)控制结构,要退出循环控制结构的方法,可以用()。

A:break语句B:exit()语句C:continue语句D:return语句

答案:break语句;exit()语句;return语句

以下正确的声明语句是()。

A:charc[]={'0','2','a','4','5'};B:doubled[5]={2.0,4.0,6.0,8.0,10.0};C:intarr[5]={0,1,3,5,7,9};D:charc2[]={'x10','xa','x8'}

答案:charc[]={'0','2','a','4','5'};;doubled[5]={2.0,4.0,6.0,8.0,10.0};

else总是与距离最近的if匹配。()

A:对B:错

答案:错

do-while循环的while后的分号不可以省略。()

A:对B:错

答案:对

第六章测试

FTTB主要解决的问题是()。

A:如何完成各个复杂问题相关的简单问题的求解B:重构原问题C:将一个复杂问题分解成若干相对简单的小问题D:是自底向上把各个小问题逐步综合一个复杂求解结构

答案:将一个复杂问题分解成若干相对简单的小问题

函数嵌套调用与返回的基本特点是()。

A:void函数不用返回B:后调用后返回C:先调用后返回D:先调用先返回

答案:先调用后返回

静态变量没有给初值时,其值是()。

A:采用上一次使用时的值B:0C:在执行时赋予默认的值D:随机值

答案:0

在以下选项当中,叙述正确的是()。

A:C语言程序可以定义多个不同内容的main()函数B:C语言程序中的所有函数必须保存在同一个源文件中C:全部三种基本结构都包含的才是结构化程序D:复杂任务可以分解成简单子任务

答案:复杂任务可以分解成简单子任务

C语言规定,函数调用时,实参和形参之间的数据传递采取的是()。

A:值传递B:由用户指定传递方式C:由实参传值给形参,并由形参传回值到实参D:地址传递

答案:值传递

模块化程序设计的基本特征是()。

A:处理过程、技巧和步骤B:输入C:实现代码的表示方法D:输出

答案:处理过程、技巧和步骤;输入;输出

变量的可操作属性研究的是()。

A:变量所用的存储空间类别B:变量的存储格式C:变量能参与的运算类型D:变量的取值范围

答案:变量的存储格式;变量能参与的运算类型;变量的取值范围

C语言源程序由函数组成,C语言程序设计中用到的函数可分为()。

A:文件函数B:主函数C:用户自定义函数D:库函数

答案:主函数;用户自定义函数;库函数

函数的使用要遵守先声明、后定义、再调用的准则。()

A:对B:错

答案:对

虚实结合的传值机制一定是单向的。()

A:错B:对

答案:对

第七章测试

宏展开的本质是()。

A:用宏体字符串替换源程序中宏定义位置后的所有宏名的出现B:用宏体字符串替换源程序中宏定义位置后的非字符串内的所有宏名的出现C:用宏体字符串替换源程序中宏定义位置后的所有宏名常量D:用宏体字符串替换源程序中宏定义位置后的所有宏名变量

答案:用宏体字符串替换源程序中宏定义位置后的非字符串内的所有宏名的出现

关于带参宏,以下说法错误的是()。

A:带参宏的形参和实参也分别称为形参字符串和实参字符串B:带参宏也称为函数宏C:带参宏替换的本质是字符串替换D:带参宏功能与带参函数功能是等价的

答案:带参宏功能与带参函数功能是等价的

对如下代码:

#defineSQ(n)n*n

intmain(void){

intm=1,n=3;

printf(“%d\n”,SQ(2*m+n));

return0;

}/*Endofmain*/

那么,程序运行结果为()。

A:9B:11C:语法错误D:25

答案:11

宏的作用范围是()。

A:可以通过extern扩展到整个文件B:整个文件C:从宏定义位置到#undef之间D:从宏定义位置到整个文件的最后

答案:从宏定义位置到#undef之间;从宏定义位置到整个文件的最后

宏的常见应用场景有()。

A:定义程序代码片段B:定制代码书写习惯C:定义公共表达式D:定义常量

答案:定义程序代码片段;定制代码书写习惯;定义公共表达式;定义常量

预处理是将源程序翻译程二进制目标代码前的准备性工作。()

A:错B:对

答案:对

宏替换只是简单的字符串替换,一般不应该对其主观上赋予更多其他意义。()

A:错B:对

答案:对

宏调用是可以嵌套的。()

A:对B:错

答案:对

带参宏的宏名和形参表之间不能有空格分隔符。()

A:错B:对

答案:对

一个#include只能包含一个文件。()

A:错B:对

答案:对

第八章测试

对如下代码,运行结果是:()

inti,nArr[5]={1,2,3,4,5};

for(i=0;i<=5;i++)

printf(“%d,”,nArr[i]);

A:1,2,3,4,5,随机值,B:1,2,3,4,5,C:1,2,3,4,5,6,D:1,2,3,4,5,0,

答案:1,2,3,4,5,随机值,

对有序表{12,23,26,35,55,67,88,90,100},采用折半查找方法查找67,比较的次数是()。

A:5B:3C:4D:6

答案:3

对二维数组intnArr[10][10],以下陈述正确的是()。

A:第36的元素对应的行下标为3,列下标为6B:nArr的最大行数和列数都是10C:第5行,第6列的元素为nArr[4][5]D:nArr[i]表示数组第i行的首地址

答案:第5行,第6列的元素为nArr[4][5]

对str数组的声明和赋值,以下正确的是()。

A:charstr[10]={“abcdefghijkl”};B:charstr[]={“China!”};C:charstr[10];strcpy(str,“abcdefghijkl”);D:charstr[10];str={“China!”};

答案:charstr[]={“China!”};

以下程序段执行后,k的值为()。

intk=3,s[2];

s[0]=k;

k=s[1]*10;

A:不定值B:33C:10D:30

答案:不定值

程序运行后的输出结果是()。

#include<stdio.h>

intmain(void){

inti,array[6]={1,5,0,4};

for(i=0;i<5;i++)

printf(“%d,”,array[i]&&4);

printf(“\n”);

return0;

}/*Endofmain()*/

A:0,4,0,4,0B:1,5,5,4,0,C:1,5,0,4,0,D:1,1,0,1,0,

答案:1,1,0,1,0,

以下能正确声明二维数组的选项是(

)。

A:intnum[0,100];B:#defineN100#defineM50intnum[N][M];C:intN=100,M=50;intnum[N][M];D:intnum[100][];

答案:#defineN100#defineM50intnum[N][M];

在二维数组整体作为函数参数使用时,以下合法的调用是()。

A:s=sumArray(arr[0],m,n);B:s=sumArray(arr[0][0],m,n);C:s=sumArray(arr[][0],m,n);D:s=sumArray(arr,m,n);

答案:s=sumArray(arr[0],m,n);;s=sumArray(arr,m,n);

数组存储空间一定是连续的。()

A:对B:错

答案:对

二维数组的行引用就是,将二维数组按行引用。()

A:对B:错

答案:对

第九章测试

关于指针,以下说法正确的是:()。

A:存储类型为地址的程序实体之首字节地址编码B:程序实体存储空间中最大的字节地址编码C:程序实体存储空间中第一个字节的地址编码D:程序实体地址中存储的编码值

答案:程序实体存储空间中第一个字节的地址编码

在指针运用中,同一地址值,可以指向不同数据类型对象的根本原因是()。

A:地址值所指对象类型不同B:地址值引用的上下文不同C:地址值的基类型不同D:地址值所指对象的地址值不同

答案:地址值的基类型不同

二维数组的二级地址引用特征的本质是指()。

A:二级指针B:行地址和列地址C:指向指针的指针地址D:二级基类型地址

答案:行地址和列地址

对以下代码段,假设ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()。

...intk=2;

int*ptr1,*ptr2;

...

A:ptr1=ptr2B:k=*ptr1+*ptr2C:k=*ptr1*(*ptr2)D:ptr2=k

答案:ptr2=k

以下程序执行时,如果输入字符串"ABC",则输出结果为(

)。#include

<stdio.h>#include

<string.h>int

main(void){chars[10]="12345";gets(s);strcat(s,"6789");printf("%s\n",s);return0;}/*Endofmain()*/

A:ABC6789B:123456ABCC:ABC6D:ABC456789

答案:ABC6789

对一维数组元素的基本引用方式有()。

A:数组名引用法B:指针变量引用法C:多个简单变量法D:下标法

答案:数组名引用法;指针变量引用法;下标法

对intarr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};,访问元素arr[1][2]的有效访问是()。

A:*arr[1]+2B:*(arr[1]+2)C:*(arr+1)+2D:*(&arr[0][0]+1*4+2)

答案:*(arr[1]+2);*(&arr[0][0]+1*4+2)

C语言中,有关指针的两个基本操作即:&和*。()

A:错B:对

答案:对

对charstr[20]=“Thisisacountry”;,其声明初始化机制是字符串复制。()

A:错B:对

答案:对

第十章测试

假设有:structdate{intmonth,day,year;};,对以下结构体变量的赋值,正确的是(

)。

A:structperson{longlPersonNo;charcName[20];charcSex;structdatebirthday;}

studPerson={1001,"ZhangLi",'F',{1974,12,15}};

B:structperson{longlPersonNo;charcName[20];charcSex;structdatebirthday;}

studPerson={1001,"ZhangLi",'F',{12,15,1974}};

C:structperson{longlPersonNo;charcName[20];charcSex;structdatebirthday;}

studPerson;studPerson={1001,"ZhangLi",'F',12,15,1974};D:structperson{longlPersonNo;charcName[20];charcSex;structdatebirthday;}

studPerson;studPerson={1001,"ZhangLi",'F',{12,15,1974}};

答案:structperson{longlPersonNo;charcName[20];charcSex;structdatebirthday;}

studPerson={1001,"ZhangLi",'F',{12,15,1974}};

对以下结构体数据类型的定义,以下叙述正确的是()。

typedefstruct{

charcName[20];

longlNum;

floatfScore;

}STUD_TYPE;

A:定义了一个结构体数据类型STUD_TYPEB:因为没有结构体数据类型名,类型定义是错误的C:声明了一个结构体变量STUD_TYPED:定义了一个结构体数据类型标识符structSTUD_TYPE

答案:定义了一个结构体数据类型STUD_TYPE

对枚举类型定义enumcolor{red=1,yellow,white=5,black,blue};,对yellow的叙述中,正确的是()。

A:yellow就是字符串"yellow"B:yellow==2C:yellow不是整数,也不是字符串,它是符号名D:yellow==3

答案:yellow==2

用共用体结构描述数据对象时,其特点是,在任何给定时刻()。

A:只有一个成员在内存中有效B:部分成员在内存中有效C:所有成员在内存中有效D:所占空间最大的那个成员有效

答案:只有一个成员在内存中有效

对以下结构体数据类型信息结构,成员变量fScore处于结构体存储空间的第()个字节。

typedefstructstudent{

intnStNo;

charcName[20];

charcSex;

intnAge;

floatfScore;

charcAddr[30];

}STUD_TYPE;

A:24B:25C:27D:26

答案:26

对以下结构体数据类型定义,定义的结构体数据类型标识符是()。

struct结构体数据类型名{

类型标识符成员变量名;

类型标识符成员变量名;

}stru;

A:结构体数据类型名B:struct结构体数据类型名C:struD:类型标识符

答案:struct结构体数据类型名

自定义数据类型所包含的类型有()。

A:unionB:TypedefC:enumD:struct

答案:union;Typedef;enum;struct

对以下结构体及其指针变量,引用成员no的有效方法有()。

structproduct_infostru_pen,*penPtr;

penPtr=&stru_pen;

A:stru_pen.noB:(*penPtr).noC:(&stru_pen.no)->noD:penPtr.no

答案:stru_pen.no;(*penPtr).no;(&stru_pen.no)->no

结构体数组元素的存储空间一定是连续的。()

A:对B:错

答案:对

结构体类型定义是可以嵌套的。()

A:对B:错

答案:对

第十一章测试

下列程序的输出结果是()。

#include<stdio.h>

intmain(void){

singedchara=18,b=34;

a<<1;

b=a^b;

printf("a=%o,b=%o\n",a,b);

return0;

}/*Endofmain()*/

A:a=36,b=6B:a=9,b=6C:a=36,b=4D:a=22,b=60

答案:a=22,b=60

下列程序的输出结果是()。

#include<stdio.h>

intmain(void){

singedchara=18,b=34;

a>>=2;

b=a^b;

printf("a=%o,b=%o\n",a,b);

return0;

}/*Endofmain()*/

A:a=4,b=8B:a=4,b=06C:a=4,b=46D:a=11,b=53

答案:a=4,b=46

以下运算符不属于位运算的是()。

A:&B:~C:<<D:||

答案:||

假设intn=100;,则表达式n^=100的值为()。

A:200B:100100C:0D:100

答案:0

设intb;表达式(b>>2)/(b>>1)的值是()。

A:8B:2

温馨提示

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

评论

0/150

提交评论