C语言程序设计(仲恺农业工程学院)智慧树知到答案2024年仲恺农业工程学院_第1页
C语言程序设计(仲恺农业工程学院)智慧树知到答案2024年仲恺农业工程学院_第2页
C语言程序设计(仲恺农业工程学院)智慧树知到答案2024年仲恺农业工程学院_第3页
C语言程序设计(仲恺农业工程学院)智慧树知到答案2024年仲恺农业工程学院_第4页
C语言程序设计(仲恺农业工程学院)智慧树知到答案2024年仲恺农业工程学院_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计(仲恺农业工程学院)仲恺农业工程学院智慧树知到答案2024年第一章测试

当代电子计算机能够自动地处理指定的问题是因为:()

A:事先存储了解决该问题的程序

B:有解决该问题的计算机程序

C:计算机是电动的

答案:A以下叙述中最准确的是:()

A:计算机程序是处理某一问题所有指令的集合

B:计算机程序是处理某一问题的所有指令及其数据的有序集合

C:计算机程序是处理某一问题的所有指令及其数据的集合

D:计算机程序是处理某一问题所用到的所有数据的集合

答案:C关于计算机程序设计,以下描述最准确的是:()

A:程序设计就是用计算机能识别的语言来编写程序

B:程序设计就是用语言来编写程序

C:程序设计就是用计算机语言来编写程序

D:程序设计就是用计算机程序设计语言来编写程序

答案:D目前编写计算机程序一般采用的是:()

A:高级语言B:英语

C:汇编语言D:机器语言

答案:A设计一个计算机程序最基本的工作是:()

A:制定正确的算法B:选择合理的数据结构

C:制定正确的算法和选择合理的数据结构

答案:C算法具有五个特性,以下选项中不属于算法特性的是:()

A:可行性B:有穷性C:简洁性D:确定性

答案:C下述哪一个不是结构化程序基本结构:()

A:顺序B:循环C:嵌套

D:选择

答案:CC语言是一种:()

A:高级语言

B:汇编语言C:机器语言

答案:A有人曾提出:计算机程序=算法+数据结构。()

A:错B:对

答案:B在程序设计中提到的算法就是“解决问题的方法和步骤”。()

A:对B:错

答案:A

第二章测试

C语言源程序的扩展名为:()

A:.cB:.exeC:.objD:.cpp

答案:AC程序编译后产生的文件的扩展名为()

A:.cB:.exeC:.cpp

D:.obj

答案:D下列各项中,不是C语言的特点是:()

A:有较强的网络操作功能

B:语言简洁、紧凑,使用方便

C:能实现汇编语言的大多数功能

D:程序执行效率高,可移植性好

答案:A构成C语言源程序的基本单位是:()

A:文本B:子程序C:函数

D:过程

答案:C下列叙述正确的是:()

A:C语言源程序可以直接在DOS环境中运行

B:C语言源程序可以直接在VC++环境中运行

C:编译C语言源程序得到的目标文件可以直接在DOS环境中运行

D:C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行

答案:D某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()

A:总是从main()函数开始执行

B:总是从max()函数开始执行

C:写在前面的函数先开始执行

D:写在后面的函数先开始执行

答案:A以下叙述不正确的是:()

A:分号是C语句的必要组成部分

B:主函数的名字不一定用mian表示

C:函数是C程序的基本单位

D:C程序的注释可以写在语句的后面

答案:B一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()

A:任意

B:第一个函数必须是主函数,其他函数任意

C:其他函数可以任意,主函数必须在最后

D:必须完全按照执行的顺序排列

答案:A下列四个叙述中,正确的是:()

A:C语言中的所有关键字必须小写

B:C程序中的关键字必须小写,其他标示符不区分大小写

C:C程序中的所有字母都不区分大小写

D:C程序中的所有字母都必须小写

答案:A下列四个叙述中,错误的是:()

A:C源程序的基本结构是函数

B:一个C源程序可以有多个函数

C:一个C源程序必须有且只能有一个主函数

D:在C源程序中注释说明必须位于语句之后

答案:D

第三章测试

在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()

A:char=int<longint<=float<double

B:char<int<=longint<=float<double

C:char<int<longint=float=double

D:char=int=<longint<=float<double

答案:B在C语言中(VC环境),一定是长整型常数的是:()

A:0L

B:4962710

C:0412765

D:0xa34b7fe

答案:A以下为C语句的是:()

A:a++;B:if(a>8)C:a=8D:#include<stdio.h>

答案:A以下不是C语句的是:()

A:if(a>8);B:for(i=1;i<5;i++)

C:a=8;D:a++;

答案:A以下所列语句中,合法的语句是:()

A:++a;B:y=int(a);

C:a=1,b=2D:a=a+1=5

答案:AC程序中的复合语句指的是:()

A:写在同一行中的多个C语句

B:并列的多个C语句C:就是函数体中的语句

D:用一对大括号对括的多个C语句

答案:D当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:()

A:立即按回车键换行

B:在任意一个空格处按回车键换行

C:输入一个分号后并按回车键换行换行

D:由系统自动换行

答案:DC语言中允许的基本数据类型包括:()

A:整型、实型、逻辑型、字符型

B:整型、实型、字符型

C:整型、字符型、逻辑型D:整型、实型、逻辑型

答案:AC语言中能用八进制表示的数据类型为:()

A:字符型、整型、实型、双精度型

B:字符型、整型C:字符型、实型、双精度型D:整形、实型

答案:B下列属于C语言合法的字符常数是:()

A:’\t’B:”\0”

C:’\97’D:”A”

答案:A

第四章测试

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

A:y=x||z/3

B:x<y?1:0

C:x%2&&y==z

D:!x

答案:C在嵌套使用if语句时,C语言规定else总是()。

A:和之前与其最近的if配对

B:和之前与其最近的且不带else的if配对

C:和之前的第一个if配对

D:和之前与其具有相同缩进位置的if配对

答案:Ba=b=c=0;x=35;

if(!a)x--;

elseif(b);

if(c)x=3;

elsex=4;

假定所有变量均已正确说明,下列程序段运行后x的值是()。

A:4

B:3

C:35

D:34

答案:A若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的结果为()

A:3

B:4

C:2

D:1

答案:Dmain()

{intx=5,a=0,b=0;

if(x=a+b)printf("****\n");

elseprintf("####\n");

}

分析以下程序,下列说法正确的是()。

A:输出####

B:通过编译,但不能连接

C:输出****

D:有语法错,不能通过编译

答案:Amain()

{intx=5,a=0,b=3;

if(x=a+b)printf("****\n");

elseprintf("####\n");

}

分析以下程序,下列说法正确的是()。

A:通过编译,但不能连接

B:输出####

C:有语法错,不能通过编译

D:输出****

答案:D

第五章测试

for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);

设i和x都是int类型,则for循环语句()。

A:是无限循环

B:最多执行10次

C:最多执行9次

D:循环体一次也不执行

答案:Binti,k;

for(i=0,k=-1;k=1;i++,k++)printf("****");

下述for循环语句()。

A:一次也不循环

B:判断循环结束的条件非法

C:是无限循环

D:只循环一次

答案:Cintk=-20;

while(k=0)k=k+1;

程序段如下:则以下说法中正确的是()。

A:while循环执行20次

B:循环体语句执行一次

C:循环体语句一次也不执行

D:循环是无限循环

答案:C#include<stdio.h>

main()

{

intk=2,;

while(k<7)

{

if(k%2){k=k+3;printf(“k=%d\n”,k);continue;}

k=k+1;

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

}

}

程序段如下:则以下说法中不正确的是()。

A:k=k+1;执行2次

B:k=k+3;执行一次

C:3执行后k值为7

D:循环体只执行一次

答案:D#include"stdio.h"

main()

{inta=1,b=10;

do

{b-=a;a++;}

while(b--<0);

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

}

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

A:a=1,b=-1

B:a=4,b=9

C:a=3,b=11

D:a=2,b=8

答案:Dfor(x=0,y=0;(y=123)&&(x<4);x++);

以下for循环的执行次数是()。

A:4次

B:0次

C:无限次

D:3次

答案:A以下是死循环的程序段的是()。

A:for(i=1;;)

if(++i<10)continue;

B:for(i=1;;)

{if(++i%2==0)continue;

if(++i%3==0)break;}

C:i=1

while(i--);

D:i=32767;

do{if(i<0)break;}while(++i);

答案:Ax=-1;

do{x=x*x;}

while(!x);

以上程序段()。

A:循环执行二次

B:是死循环

C:有语法错误

D:循环执行一次

答案:Bfor(t=1;t<=100,t++)

{scanf("%d",&x);

if(x<0)continue;

printf("%3d",t);

}

下面的程序段()。

A:最多允许输出100个非负整数

B:当x<0时整个循环结束

C:printf函数永远也不执行

D:当x>=0时什么也不输出

答案:A

第六章测试

下列一维数组初始化语句中,正确且与语句floata[]={0,3,8,0,9};等价的是()。

A:floata[6]={0,3,8,0,9};

B:floata[5]={0,3,8,0,9};

C:floata[7]={0,3,8,0,9};

D:floata[4]={0,3,8,0,9};

答案:B如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};,则数组a的大小是()。

A:8

B:不定

C:11

D:10

答案:D下面是对s的初始化,其中不正确的是()。

A:chars[5]=””;

B:chars[5]={’a’,’b’,’c’};

C:chars[5]=”abcdef”;

D:chars[5]={”abc”};

答案:C以下能对二维数组a进行正确初始化的语句是()。

A:inta[][3]={{1,2,3},{4,5,6}};

B:inta[2][4]={1,2,3},{4,5}{6}};

C:inta[2][]={{1,0,1},{5,2,3}};

D:inta[][3]={{1,0,1}{},{1,1}};

答案:A数组名表示该数组在内存中的首地址。()

A:对B:错

答案:A若有a[10]={1,2,3},请问a[8]的值是多少()。

A:3

B:0

C:2

D:1

答案:Bvoidmain()

{chars[10];s=“abcd”;printf(%s\n”,s);}

若有如下语句,则显示结果为,以下□表示空格()

A:编译错误通不过

B:abcd□□□□□□

C:a

D:abcd

答案:A已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是()。

A:数组a和b的长度相同

B:a数组长度大于b数组长度

C:a数组长度小于b数组长度

答案:B若二维数组a有m列,则在a[i][j]前面的元素个数为()。

A:i*m+j

B:i*m+j-1

C:i*m+j+1

D:j*m+i

答案:A在定义inta[5][4];之后,对a的引用正确的是()。

A:a[5][0]

B:a[2][4]

C:a[1,3]

D:a[4][3]

答案:D

第七章测试

当调用函数时,实参是一个数组名,则向函数传送的是()。

A:数组的首地址

B:数组每一个元素的地址

C:数组的长度

D:数组每个元素中的值

答案:A凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。

A:静态(static)

B:外部(extern)

C:自动(auto)

D:寄存器(register)

答案:C在C语言中,以下正确的说法是()。

A:值传递时实参和与其对应的形参各占用独立的存储单元

B:形参是虚拟的,不占用存储单元

C:实参和与其对应的形参共占用一个存储单元

D:只有当实参和与其对应的形参同名时才共占用存储单元

答案:AC语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()

A:由形参向实参单向传递数值的方式B:是变量地址之间的传递C:由实参传给形参,再由形参传回给实参D:由实参向形参单向传递数值的方式

答案:D以下正确的函数定义形式是()。

A:doublefun(intx,inty);

B:doublefun(intx,y);

C:doublefun(intx;inty);

D:doublefun(intx,inty);

答案:D在一个源文件中定义的全局变量的作用域为()。

A:本文件的全部范围

B:从定义该变量开始至本文件结束

C:本函数的全部范围

D:本程序的全部范围

答案:B如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量()。

A:为全局变量,在本程序文件范围内有效

B:为局部变量,只在该复合语句中有效

C:定义无效,为非法变量

D:为局部变量,只在该函数内有效

答案:B以下叙述中,不正确的是()。

A:形参是局部变量,函数调用完成即失去意义

B:在main函数体内定义的变量是全局变量

C:在同一C程序文件中,不同函数中可以使用同名变量

D:若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用

答案:B对于C语言的函数,下列叙述中正确的是()。

A:函数的定义可以嵌套,但函数调用不能嵌套

B:函数的定义不能嵌套,但函数调用可以嵌套

C:函数的定义和调用都可以嵌套

D:函数的定义和调用都不能嵌套

答案:B

第八章测试

以下关于宏替换的叙述不正确的是()。

A:宏替换只是字符替换

B:宏名无类型

C:宏替换不占用运行时间

D:宏替换不占用编译时间

答案:D关于预处理命令的描述正确的是()。

A:预处理是指完成宏替换和文件包含中指定文件的调用

B:一个包含文件中不可以再包含其他的文件

C:在C源程序中,凡是行首以#标识的控制行都是预处理命令

D:预处理指令也是C语句

答案:C在宏定义#definePI3.14159中,用宏名PI代替一个()。

A:字符串

B:单精度数

C:常量

D:双精度数

答案:A在"文件包含"预处理语句的使用形式中,当#include后面的文件名用""(双引号)括起时,寻找被包含文件的方式是()。

A:仅仅搜索源程序所在目录

B:仅仅搜索当前目录

C:直接按系统设定的标准方式搜索目录

D:先在源程序所在目录搜索,再按系统设定的标准方式搜索

答案:D在"文件包含"预处理语句的使用形式中,当#include后面的文件名用<>(尖括号)括起时,寻找被包含文件的方式是()。

A:仅仅搜索当前目录

B:直接按系统设定的标准方式搜索目录

C:仅仅搜索源程序所在目录

D:先在源程序所在目录搜索,再按系统设定的标准方式搜索

答案:B若有宏定义如下:

#defineM(x,y)(x*y)

inta;

a=M(1+2,3);

则执行下列语句后,a的值为()。

A:9

B:7

C:5

答案:B若有宏定义如下:

#defineX5

#defineYX+1

#defineZY*X/2

inta;

a=Y;

printf("%d\n”,Z);

printf("%d\n”,--a);

则执行以下printf语句后,输出结果是()。

A:12;6

B:7;5

C:7;6

D:12;5

答案:BC语言提供的预处理功能包括条件编译,其基本形式为:

#XXX标识符

程序段1

#else

程序段2

#endif

这里XXX可以是()。

A:ifdef或ifndef或define

B:ifdef或ifndef或if

C:define或include

D:ifdef或include

答案:BC语言中,宏定义的有效范围从定义开始处到源文件结束处,但可以用()来提前解除宏定义的作用。

A:undef

B:#indefine

C:#ifdef

D:endif

答案:A以下在任何情况下计算平方数时都不会引起二义性的宏定义是()。

A:#definePOWER(x)x*x

B:#definePOWER(x)(x*x)

C:#definePOWER(x)(x)*(x)

D:definePOWER(x)((x)*(x))

答案:D

第九章测试

变量的指针,其含义是指该变量的()。

A:地址

B:值

C:一个标志

D:名·

答案:A假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是()。

A:p2=*&p1

B:p2=**p1

C:p2=&*p1

D:p2=*p1

答案:C若有说明:int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。

A:p1=&.m;p2=p1;

Ð.p1=&m;*p2=*p1;

B:p1=&m;p2=&n;*p1=*p2;

C:p1=&.m;p2=&p1;

答案:Amain()

{…

inta[50],n;

fun(n,&a[9]);

}

若有以下调用语句,则不正确的fun函数的首部是()。

A:voidfun(intm,intx[])

B:voidfun(intp,int*s)

C:voidfun(ints,inth[41])

D:voidfun(intn,inta)

答案:Dinta[10],*p=a;

若有以下定义,则*(p+5)表示()。

A:元素a[6]值

B:元素a[5]地址

C:元素a[6]地址

D:元素a[5]值

答案:D若有定义:int(*p)[4];则标识符p()。

A:是一个指向整型变量的指针

B:是一个指针数组名

C:说明不合法

D:是一个指针,它指向一个含有四个整型元素的一维数组

答案:D若有以下定义和语句:

ints[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是()。

A:ps+1

B:*(ps+1)+3

C:ps[0][2]

D:*(ps+3)

答案:C设char*s="\ta\017bc”;则指针变量s指向的字符串所占的字节数是()。

A:6

B:9

C:7

D:5

答案:Aintfunl(char*x)

{

char*y=x;

while(*y++);

return(y-x-1);

}

下面函数的功能是()。

A:求字符串的长度

B:比较两个字符串的大小

C:将字符串x连接到字符串y后面

D:将字符串x复制到字符串y

答案:A若有定义:int*p[3];,则以下叙述中正确的是()。

A:定义了一个名为*p的整型数组,该数组含有三个int类型元素

B:定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

C:定义了一个基类型为int的指针变量p,该变量具有三个指针

D:定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

答案:D

第十章测试

设有结构体定义"struct{inti;intj;}d[2]={{1,3},{2,7}};",则printf("%d\n",d[0].j/d[0].i*d[1].i);的执行结果是()。

A:0

B:3

C:1

D:6

答案:D设有枚举定义"enumtern{my,your=4,his,her=his+10};",则printf("%d,%d,%d,%d",my,your,his,her);的输出是()。

A:0,4,5,15

B:0,1,2,3

C:1,4,5,15

D:0,4,0,10

答案:Atypedefunion

{longx[2];inty[4];charz[8];}MYTYPE;

MYTYPEthem;

在32位CPU下的VisualC++6.0的环境中,若有如下定义,则printf("%d\n",sizeof(them));的输出值是()。

A:24

B:32

C:8

D:16

答案:DstructStudent

{longno[2];ints[4];charstr[8];}your;

在32位CPU下的VisualC++6.0的环境中,若有如下定义,则printf("%d\n",sizeof(your));的输出值是()。

A:24

B:32

C:8

D:16

答案:Bstructstudent{intno,charname[9];intage;};

structstudentstuds[6]={1001,"Yan",19,1002,"Wang",20,1003,"Shen",19,1004,"Li",20};

根据下面的定义,能打印出数字20语句是()。

A:printf("%d\n",studs[4].age+1);

B:printf("%d\n",studs[0].no);

C:printf("%d\n",studs[1].age);

D:printf("%d\n",studs[3].name);

答案:Cstructsk{inta;floatb;}data,*p=&data;

设有如下定义,则对data中成员a引用正确的是()。

A:(*p).a

B:p.data.a

C:p->data.a

D:(*p).data.a

答案:A下面关于结构体类型的描述错误的是()。

A:不能将结构体变量作为一个整体进行输入和输出

B:可引用结构体变量的地址,也可引用结构体变量成员的地址

C:结构体成员的类型可以是一个已经定义的结构体类型

D:结构体成员名不能与程序中的变量名相同

答案:D关于在程序运行期间C语言的结构体变量的描述是正确的()。

A:在内存中仅仅开辟一个存放结构体变量地址的单元

B:所有的成员一直驻留在内存中

C:部分成员驻留在内存中

D:只有最开始的成员驻留在内存中

答案:B若有以下语句

structex

{intx,floaty,charz;}example;

则下面的叙述中不正确的是()。

A:struct是结构体类型的关键字

B:x,y,z都是结构体成员名

C:structex是结构体类型名

D:example是结构体类型名

答案:Dstructnode

{floatx;

structnode*next;

};

voidconnect(structnode*t1,structnode*t2)

{

if(t1->next==NULL)

t1->next=t2;

else

connect(,t2);

}

下面函数的功能是将指针t2所指向的线性链表链接到t1所指向的链表的末端(假定t1所指向的链表非空)

要实现此功能则应该补全connect代码,填入的选项是()。

A:++t1->next

B:++t1.next

C:t1.next

D:t1->next

答案:D

第十一章测试

逻辑运算符有3个,位运算符总计也是3个。()

A:对B:错

答案:B位运算的操作数必须为整数。()

A:对B:错

答案:A位段数据类型中成员数据类型都必须为整型。()

A:对B:错

答案:B位段数据类型中位成员不能跨字节定义。()

A:错B:对

答案:B位运算符>>的高位总是补0的。()

A:错B:对

答案:Aintnum=5;num<<=2;执行后num的值为20。()

A:对B:错

答案:Aintnum=15;num=num>>3;执行后num的值为5。()

A:对B:错

答案:Bintnum1=12,num2=9;num1=num1&num2;执行后num的值为8。()

A:错B:对

答案:B下列()是C语言的位运算符。

A:&&

B:&

C:!

D:||

答案:C下列()不是C语言的位运算符。

A:<<

B:>>

C:||

D:^

答案:C

第十二章测试

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

A:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

B:文本文件由ASCII码字符序列组成,C语言只能读写文本文件

C:二进制文件由二进制数据序列组成,C语言只能读写二进制文件

D:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

答案:A以下叙述错误的是()。

A:getchar函数用于从磁盘文件读入字符

B:fwrite函数用于以二进制形式输出数据到文件

C:gets函数用于从终端读入字符串

D:fputs函数用于把字符串输出到文件

答案:A函数fseek(pf,0L,SEEK_END)中的SEEK_END代表的起始点是()。

A:文件当前位置

B:文件末尾

C:文件开始

答案:B#include<stdio.h>

intmain(void)

{

FI

温馨提示

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

评论

0/150

提交评论