2024知到答案 程序设计基础(20春夏) 最新智慧树满分章节测试答案
第一章 单元测试
1、 问题:
若有定义int a[10];则数组元素的下标的下限和上限分别是( )。
选项:
A:1和10
B:0和9
C:1和9
D:0和1
答案: 【0和9】
2、 问题:
定义如下变量和数组,则下列程序段的输出结果是( )。
int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
if(i%2!=1)printf("%d",x[i][i]);
选项:
A:19
B:17
C:39
D:37
答案: 【19
】
3、 问题:
下面一段程序是有关字符串操作的,该段程序的输出结果是( )。
#include <stdio.h>
#include <string.h>
main()
{
char p1[10]="abc",p2[]="ABC";
strcat(p1,p2);
printf("%s",p1);
}
选项:
A:abc
B:ABC
C:abcabc
D:abcABC
答案: 【abcABC
】
4、 问题:
下列四个选项中能正确定义一维数组的语句是( )。
选项:
A:int num[0…2017];
B:int num[ ];
C:#define N 2017
int num[N];
D:int N=2017; int num[N];
答案: 【#define N 2017
int num[N];
】
5、 问题:
若有以下说明,则数值为4的表达式是( )。
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
选项:
A:a[4]
B:a['d'-c]
C:a[g-c]
D:a['d'-'c']
答案: 【a['d'-c]
】
6、 问题:
以下是有关二维数组定义和初始化的语句,其中错误的是( )。
选项:
A:int x[2][3]={1,2,3,4,5,6};
B:int x[ ][3]={0};
C:int x[2][3]={{1,2},{3,4},{5,6}};
D:int x[ ][3]={{1,2,3},{4,5,6}};
答案: 【int x[2][3]={{1,2},{3,4},{5,6}};】
7、 问题:
以下关于C语言字符数组的描述中错误的是( )。
选项:
A:字符数组中的内容不一定是字符串
B:字符数组只能存放字符串
C:可以用输入语句把字符串整体输入给字符数组
D:不可以用赋值语句给字符数组名赋字符串
答案: 【字符数组只能存放字符串】
8、 问题:
设有char array[ ]=“China”;
则数组array所占的空间字节数是( )。
选项:
A:5
B:7
C:6
D:4
答案: 【6】
9、 问题:
如下程序段是对字符串的操作,运行后的结果为( )。
char a[3],b[ ] =“China” ;
a = b ;
printf(“%s”,a);
选项:
A:编译出错
B:运行后将输出China
C:运行后将输出Chi
D:运行后将输出ch
答案: 【编译出错】
10、 问题:
有以下有关字符串操作的程序,程序运行后的输出的结果是( )。
main( )
{
char s[ ]=“012xy8s34f4w2”;
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=‘0’ && s[i]<=‘9’)
n++;
printf(“%d”,n);
}
选项:
A:3
B:0
C:7
D:8
答案: 【8】
第二章 单元测试
1、 问题:
C 语言程序中可以有多个函数 , 但只能有一个主函数。
选项:
A:错
B:对
答案: 【对】
2、 问题:
函数的实参可以是常量,变量或表达式。
选项:
A:对
B:错
答案: 【对】
3、 问题:
递归调用算法与相同功能的非递归算法相比,主要问题在于重复计算太多,而且调用本身需要分配额外的空间、传递数据和控制,所以时间和空间开销通常都比较大。
选项:
A:对
B:错
答案: 【对】
4、 问题:
在一个被调用函数中,关于 return 语句使用的描述,错误的是( )。
选项:
A:被调用函数中可以不用 return 语句
B:被调用函数中,一个 return 语句可以返回多个值给调用函数
C:被调用函数中,如果有返回值,就一定要有 return 语句
D:被调用函数中可以使用多个 return 语句
答案: 【被调用函数中,一个 return 语句可以返回多个值给调用函数】
5、 问题:
C语言中函数返回值的类型是由( )决定的。
选项:
A:调用函数时临时决定
B:定义函数时所指定的函数类型
C:return语句中的表达式类型
D:调用该函数的主调函数的类型
答案: 【定义函数时所指定的函数类型】
6、 问题:
有如下函数调用语句: func(rec1, rec2+rec3, (rec4, rec5)); 则该函数调用语句中,含有的实参个数是( )。
选项:
A:4
B:有语法错
C:5
D:3
答案: 【3】
7、 问题:
以下程序的输出结果是( )。
#include <stdio.h>
int func(int a,int b)
{
return(a+b);
}
int main()
{
int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d",r);
return 0;
}
选项:
A:15
B:14
C:13
D:12
答案: 【15】
8、 问题:
C语言规定,程序中各函数之间( )。
选项:
A:不允许直接递归调用也不允许间接递归调用
B:不允许直接递归调用允许间接递归调用
C:既允许直接递归调用也允许间接递归调用
D:允许直接递归调用不允许间接递归调用
答案: 【既允许直接递归调用也允许间接递归调用】
9、 问题:
若有以下调用语句,则不正确的 fun( )函数的首部是( )。
main( )
{
…
int a[50], n;
…
fun(n, &a[9]);
…
}
选项:
A:void fun(int p, int *s)
B:void fun(int n, int a)
C:void fun(int m, int x[ ])
D:void fun(int s, int h[ 41])
答案: 【void fun(int n, int a)】
10、 问题:
函数的实参传递到形参有两种方式:值传递和地址传递。
选项:
A:错
B:对
答案: 【对】