版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计基础知到智慧树章节测试课后答案2024年秋琼台师范学院第一章单元测试
以下不属于高级语言的是()。
A:javaB:符号语言C:PythonD:C
答案:符号语言对C语言源程序执行过程描述正确的是()。
A:从main()函数开始执行,到main()函数结束B:从程序的第一个函数开始执行,到最后一个函数结束C:从第一个函数开始执行,到main函数结束。D:从main函数开始执行,到源程序的最后一个函数结束
答案:从main()函数开始执行,到main()函数结束在C程序中,不管是数据声明还是语句,都必须有一个结束符,该符号是()。
A:逗号B:句号C:双引号D:分号
答案:分号要将高级语言编写的源程序转换为目标程序,需要使用()。
A:编译程序B:驱动程序C:诊断程序D:编辑程序
答案:编译程序以下方法中不属于常用的表示算法的方法是()。
A:用表格表示B:用自然语言表示C:用伪代码表示D:用流程图表示
答案:用表格表示以下叙述正确的是()。
A:C语言源程序中要求每行只能书写一条语句B:C语言源程序中,注释可以出现在任何位置C:一个C程序必须包含一个main()函数D:一个C程序可由一个或多个函数组成
答案:C语言源程序中,注释可以出现在任何位置;一个C程序必须包含一个main()函数;一个C程序可由一个或多个函数组成以下()属于算法应该具有的性质。
A:有效性B:有穷性C:输入输出性D:确定性
答案:有效性;有穷性;输入输出性;确定性C语言是一种具有某些低级语言特征的高级语言。()
A:错B:对
答案:对在对一个C源程序进行编译的过程中,可发现注释中的编辑错误。()
A:错B:对
答案:错C语言规定必须用main函数作为主函数名,程序将从此开始执行。()
A:错B:对
答案:对
第二章单元测试
C语言允许在同一表达式中可以使用多个运算符,那么在运算时应该()。
A:先考虑结合性,然后考虑优先级B:只需要考虑结合性C:只需要考虑优先级D:先考虑优先级,然后考虑结合性
答案:先考虑优先级,然后考虑结合性已知intx,y=1;执行语句x=y++后,x的值是()。
A:2B:-1C:1D:-2
答案:1在C语言程序中,表达式7%2的结果是()
A:2B:1C:3D:3.5
答案:1在C语言程序中,表达式5%(-3)的结果是()
A:3B:-1C:2D:1
答案:2若intx=5,y=4,z=3则表达式x<z?y:z的结果是().
A:0B:2C:4D:3
答案:3C语言中,关系表达式和逻辑表达式的值是0或者1。()
A:错B:对
答案:对数据的自动类型转换是按数据长度加的方向进行。()
A:对B:错
答案:对使用putchar函数既能输出字符,也能输出整数。()
A:错B:对
答案:错x+y=8是错误的表达式。()
A:错B:对
答案:对C语言中,int、char和short种类型数据在内存中所占用的字节数是固定的,不因所使用机器的机器字长而改变。()
A:错B:对
答案:错
第三章单元测试
C语言中,逻辑真值表示为()。
A:TRUEB:1C:'y'或'Y'D:非零值
答案:1C语言对嵌套if语句的规定是:else总是与()。
A:第一个if配对B:缩进位置相同的if配对C:其之前最近的if配对D:其之前最近的且尚未配对的if配对
答案:其之前最近的且尚未配对的if配对下列程序的运行结果为()。
intmain()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec+=1;
printf("%d\n",c);
return0;
}
A:3B:0C:1D:2
答案:2能正确表示“当x的取值在[1,10]或[200,210]范围内为真,否则为假”的表达式是()。
A:(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B:(x>=1)&&(x<=10)||(x>=200)&&(x<=210)C:(x>=1)||(x<=10)&&(x>=200)||(x<=210)D:(x>=1)||(x<=10)||(x>=200)||(x<=210)
答案:(x>=1)&&(x<=10)||(x>=200)&&(x<=210)设:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()。
A:4B:3C:2D:1
答案:2以下语法不正确的if语句是()。
A:if(x=10)x++;B:if(1){x++;y++};C:if(x>=60&&x<=100);D:if(x>=0);
答案:if(1){x++;y++};程序在运行时,输入变量a的值为1,变量b的值为2,则运行结果是()。
#include<stdio.h>
intmain()
{inta,b,t=0;
scanf("%d%d",&a,&b);
if(a=2)t=a,a=b,b=t;
printf("%d,%d\n",a,b);
return0;
}
A:2,2B:2,0C:1,2D:2,1
答案:2,2条件表达式不能取代一般if的语句。()
A:错B:对
答案:错C语言中,switch语句可以用if语句完全代替。()
A:对B:错
答案:对C语言中,switch语句中的case表达式必须是常量表达式。()
A:对B:错
答案:对
第四章单元测试
有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是()
A:一次也不执行B:无限次C:有语法错,不能执行D:执行1次
答案:无限次t为int类型,进入下面的循环之前,t的值为0
while(t=1)
{……}
则以下叙述中正确的是()
A:循环控制表达式的值为0B:其余说法都不对C:循环控制表达式的值为1D:循环控制表达式不合法
答案:循环控制表达式的值为1有以下程序,程序运行后的输出结果是().
main()
{inti=1,sum=0;
while(i<=4)
{
sum=sum+i;
i=i+1;
}
printf(“%d\n”,sum);}
A:10B:4C:循环D:5
答案:10有以下,程序运行后的输出结果是().
main()
{inti=1,sum=0;
while(i<=4)
sum=sum+i;
i=i+1;
printf(“%d\n”,sum);
}
A:4B:5C:死循环D:10
答案:死循环有如下程序
main(){
intn=9;
while(n>6){n-—;printf(“%d",n);}
}
该程序段的输出结果是()
A:987B:8765C:9876D:876
答案:876设有整型变量x,下述语句()会出现死循环。
A:for(;(x=getchar())!='\n';)B:for(x=10;;x--);C:while(1){x++;}D:for(;;x+=1);
答案:for(x=10;;x--);;while(1){x++;};for(;;x+=1);下面有关break语句的描述中,正确的是()。
A:break语句可在一个循环体内可使用多次B:break语句可用于循环体内,它将结束该循环C:break语句可用于开关(switch)语句,它结束该开关语句D:break语句可用于if语句的内嵌套语句中,它结束该if语句
答案:break语句可在一个循环体内可使用多次;break语句可用于循环体内,它将结束该循环;break语句可用于开关(switch)语句,它结束该开关语句以下叙述中正确的是()。
A:只能用continue语句来终止本次循环B:只能在循环体内和switch语句体内使用break语句C:从多层循环嵌套中退出时,只能使用goto语句D:continue语句的作用是结束整个循环的执行
答案:只能用continue语句来终止本次循环;只能在循环体内和switch语句体内使用break语句下述关于循环语句的描述中,正确的是()。
A:循环体内必须同时出现break语句和continue语句B:循环体可以是空语句C:循环体内可以出现选择语句D:循环体内可以包含有循环语句
答案:循环体可以是空语句;循环体内可以出现选择语句;循环体内可以包含有循环语句下面有关for循环的叙述中,错误的是()。
A:for循环只能用于循环次数已经确定的情况B:for循环是先执行循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:for循环只能用于循环次数已经确定的情况;for循环是先执行循环体语句,后判断表达式;在for循环中,不能用break语句跳出循环体
第五章单元测试
以下程序的输出结果是()。
main()
{
charstr[12]={'s','t','r','i','n','g'};
printf("%d,%d\n",strlen(str),sizeof(str));
}
A:7,12B:6,6C:7,12D:6,12
答案:6,12下面程序的运行结果是()。
#defineN5
main()
{
inta[N]={1,2,3,4,5},i,temp;
for(i=0;i<N/2;i++)
{temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}
printf("\n");
for(i=0;i<N;i++)printf("%d",a[i]);
}
A:都不对B:54321C:12345D:54321
答案:54321以下程序运行后,输出结果是()。
main()
{
inti,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);
}
A:23B:22C:21D:20
答案:21下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是()。
main()
{
inti,a[10],x,flag=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
for(i=0;i<10;i++)if_()______{flag=i+1;break;}
printf("%d\n",flag);
}
A:x-a[i]B:x!=a[i]C:!x-a[i]D:!(x-a[i])
答案:!(x-a[i])若有以下数组定义,其中不正确的是()。
A:inta[2][3];B:intc[100][100]={0};C:intb[][3]={0,1,2,3};D:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
答案:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是()。
floatx[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};
A:4.0B:0.0C:6.0D:5.0
答案:0.0若定义如下变量和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是()。
for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A:357B:147C:369D:159
答案:357运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是()。
main()
{
chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
A:1,456,789B:1,23,456,789C:1,23,456D:123,456,789
答案:1,23,456运行下面的程序,如果从键盘上输入:ABC时,输出的结果是()。
#include<string.h>
main()
{
charss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A:ABC9B:ABC456789C:ABCD:123456ABC
答案:ABC以下程序运行后,输出结果是()。
main()
{
chararr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s\n",arr);
}
A:meB:youC:errD:you&me
答案:you&me
第六章单元测试
以下关于建立函数的目的的说法正确的是()。
A:减少程序文件所占内存B:提高程序的可读性C:提高程序的执行效率D:减少程序的篇幅
答案:提高程序的可读性以下正确的说法是()。
A:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调B:系统根本不允许用户重新定义标准库函数C:用户若需调用标准库函数,调用前必须重新定义D:用户可以重新定义标准库函数,若如此,该函数将失去原有含义
答案:用户可以重新定义标准库函数,若如此,该函数将失去原有含义以下正确的函数定义形式是()。
A:doublefun(intx,y);B:doublefun(intx,inty);C:doublefun(intint);D:doublefun(intx;inty);
答案:doublefun(intx,inty);#include"stdio.h"
intabc(intu,intv);
main()
{
inta=24,b=16,c;
c=abc(a,b);
printf("%d\n",c);
}
intabc(intu,intv)
{
intw;
while(v)
{
w=u%v;u=v;v=w
}
returnu;
}
输出结果是()。
A:9B:8C:7D:6
答案:8以下正确的描述是()。
在C语言程序中
A:函数的定义和函数的调用均可以嵌套B:函数的定义和函数的调用均不可以嵌套C:函数的定义可以嵌套,但函数的调用不可以嵌套D:函数的定义不可以嵌套,但函数的调用可以嵌套
答案:函数的定义不可以嵌套,但函数的调用可以嵌套以下正确的说法是()。
A:如果形参与实参的类型不一致,以实参类型为准B:定义函数时,形参的类型说明可以放在函数体内C:return后边的值不能为表达式D:如果函数值的类型与返回值类型不一致,以函数值类型为准
答案:如果函数值的类型与返回值类型不一致,以函数值类型为准折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键m进行查找,若找到,返回其下标值;反之,返回一1。正确的选项为()
binary(inta[10],intm)
{intlow=O,high=9,mid;
while(low<=high)
{mid=(low+high)/2;
if(m<a[mid])【1】
elseif(m>a[mid])【2】
elsereturn(mid);
}
return(-1);
}
A:【1】high=mid-1【2】low=mid+1B:【1】high=mid+1【2】low=mid-1C:【1】low=mid-1【2】high=mid+1D:【1】high=mid【2】low=mid
答案:【1】high=mid-1【2】low=mid+1有如下程序
longfib(intn)
{
if(n>2)return(fib(n-1)+fib(n-2));
elsereturn(2);
}
main()
{
printf("%d\n",fib(3));
}
该程序的输出结果是()。
A:6B:8C:2D:4
答案:4以下程序的输出结果是(
)。#include<stdio.h>inti=5;main(){inti=3;{inti=10;i++;}f1();i+=1;printf("%d\n",i);}intf1(){i=i+1;return(i);}
A:7
B:4
C:6
D:12
答案:4
以下正确的函数形式是()。
A:doublefun(intx,inty)
{doublez;
z=x+y;returnz;}
B:fun(intx,y)
{intz;
returnz;}
C:doublefun(intx,inty)
{z=x+y;returnz;}
D:fun(x,y)
{intx,y;doublez;
z=x+y;returnz;}
答案:doublefun(intx,inty)
{doublez;
z=x+y;returnz;}
第七章单元测试
下面叙述中正确的是()
A:使用#include命令包含的头文件必须以“.h”为后缀B:带参数的宏定义中参数是没有类型的C:宏定义命令是C语言中的一种特殊语句D:宏展开将占用程序的运行时间
答案:带参数的宏定义中参数是没有类型的下面叙述中正确的是()。
A:在进行宏定义时,宏定义不能层层嵌套B:可以使用#undef命令来终止宏定义的作用域C:宏定义是C语句,所以要在行末加分号D:对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换
答案:可以使用#undef命令来终止宏定义的作用域在“文件包含”预处理语句中,当#include后面的文件名用双引号括起时,寻找被包含文件的方式为()。
A:先在源程序所在目录搜索,若找不到,再按系统设定的标准方式搜索B:仅仅搜索当前目录C:仅仅搜索源程序所在目录D:直接按系统设定的标准方式搜索目录
答案:先在源程序所在目录搜索,若找不到,再按系统设定的标准方式搜索下面叙述中不正确的是()。
A:函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递B:对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏没有类型C:调用函数只可得到一个返回值,而用宏可以设法得到几个结果D:函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的字符替换
答案:函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递下面叙述中不正确的是()。
A:宏替换占用编译时间B:函数调用占用编译时间C:函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时不分配内存单元,不进行值传递D:使用宏的次数较多时,宏展开后源程序长度增长。而函数调用不会使源程序变长
答案:函数调用占用编译时间下面叙述中正确的是()。
A:可以把if定义为用户标识符,但不能把define定义为用户标识符B:可以把define定义为用户标识符,但不能把if定义为用户标识符C:可以把define和if定义为用户标识符D:define和if都不能定义为用户标识符
答案:可以把define定义为用户标识符,但不能把if定义为用户标识符下面叙述中正确的是()。
A:#define和printf都是C语句B:#define是C语句,而printf不是C:#define和printf都不是C语句D:printf是C语句,但#define不是
答案:#define和printf都不是C语句以下叙述中正确的是()。
A:用#include包含的头文件的后缀不可以是“.a”B:若一些源程序中包含某个头文件;当该头文件有错时,只需对该头文件进行修改,包含此头文件所有源程序不必重新进行编译C:C编译中的预处理是在编译之前进行的D:宏命令行可以看作是一行C语句
答案:C编译中的预处理是在编译之前进行的下列程序运行结果为()。
#defineR3.0
#definePI3.1415926
#defineL2*PI*R
#defineSPI*R*R
main()
{
printf("L=%fS=%f\n",L,S);
}
A:L=18.849556S=28.274333B:18.849556=18.849556S=28.274333C:L=18.84955628.274333=28.274333D:18.849556=18.84955628.274333=28.274333
答案:L=18.849556S=28.274333以下程序执行的输出结果是(
)。
#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}
A:15
B:150
C:10
D:100
答案:15
第八章单元测试
在C语言中,一个变量的指针就是()。
A:变量的类型B:变量的地址C:变量的名称D:变量的值
答案:变量的地址下面程序段的运行结果是()。
char*s="abcde";s+=2;printf("%s",s);
A:字符’c’B:字符’c’的地址C:不确定D:cde
答案:cde若有定义:inta[5],*p=a;则对a数组元素的正确引用是()。
A:a+2B:*&a[5]C:*(a+2)D:*(p+5)
答案:*(a+2)若有以下说明和语句,则p2-p1的值为()。
inta[10],*p1,*p2;p1=a;p2=&a[5];
A:5B:10C:6D:不确定
答案:5下列程序的执行结果是()。
#include<stdio.h>
intmain()
{inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;
for(k=0;k<4;k++)
q[k]=&a[k*3];
printf("%d\n",q[2][1]);
return0;
}
A:8B:不确定C:14D:16
答案:16下列程序的执行结果是(A)。
#include<stdio.h>
intf(char*s)
{
char*p=s;
while(*p)p++;
returnp-s;
}
intmain()
{char*a="qiongtai";
printf("%d\n",f());
return0;
}
A:8B:iC:97D:7
答案:8如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。()
A:错B:对
答案:对指针变量可以存放指针(地址)、数值和字符。()
A:对B:错
答案:错若有inta[3][4];*(*(a+1)+2)表示a[1][2]元素的值。()
A:错B:对
答案:对若有语句:int*p,a=4;和p=&a;以下选项中均代表地址的是()。
A:*&p,*p,&aB:&a,&*p,pC:&*a,&a,*p
D:a,p,*&a
答案:&a,&*p,p
第九章单元测试
有以下语句
typedefstructdate
{intyear;intmonth;intday;}DATE;
以下叙述中正确的是()。
A:可用date定义结构体变量B:DATE是structdate类型的变量C:date是struct类型的变量D:可用DATE定义结构体变量
答案:可用DATE定义结构体变量若有以下说明和语句:
structperson
{intid;charname[10];}teacher,*p=&teacher;
则以下引用方式不正确的是()。
A:(*p).idB:p->nameC:teacher->nameD:teacher.id
答案:teacher->name有以下程序:
structperson{charname[9];intage;};
structpersonclass[10]={"John",17,"Mary",18,"Adam",16,};
printf("%s\n",&class[1]);
程序的输出结果是()。
A:程序运行出错B:JohnC:AdamD:Mary
答案:John有如下定义:
unionmessage{inttoken;chardata[16];}msg;
下列语句正确的是()
A:scanf("%d",&msg.token);B:msg=1;C:scanf("%d,%s",&msg.token,msg.data);D:msg="WAIT";
答案:scanf("%d",&msg.token);设有如下枚举类型定义:
enumlanguage{English=6,French,Chinese=1,Japanese,Italian};
则枚举量Italian的值为()。
A:10B:4C:3D:5
答案:3结构体变量初始化时,可以只对部分成员进行初始化。()
A:对B:错
答案:对定义结构体变量并初始化时会分配存储空间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版旧车买卖合同包含车辆过户手续办理3篇
- 2025版智能小区监控平台建设与运营维护合同3篇
- 2025年度船舶港口清洁与消毒服务合同3篇
- 2025年度居民用水行业发展规划合同示范3篇
- 2024全新电力系统保护用机电产品买卖协议3篇
- 2024年版权许可使用合同中的权利义务规定
- 2025版钢筋混凝土排水管系统集成与智能化升级合同3篇
- 2024年牧场草地修复与购买合同
- 2025版驾校经营权创新发展承包合同
- 2025版城市公交客车租赁协议书3篇
- 初二年级劳动课教案6篇
- 箱变迁移工程施工方案
- 北师大版九年级数学下册《圆的对称性》评课稿
- 住宅室内装饰装修管理办法课件
- 呼吸系统疾病诊疗规范
- 《遥感原理与应用》期末考试试卷附答案
- 2023年全国乙卷笔试部分讲解课件 【高效课堂+精研精讲】 高考英语复习
- GB/T 9452-2023热处理炉有效加热区测定方法
- 肺炎支原体肺炎诊治专家共识
- 酒店业轻资产运营模式案例研究
- 建筑师《建筑工程经济》习题(E)
评论
0/150
提交评论