智慧树知到《程序设计基础(C语言)入门篇》章节测试答案
智慧树知到《程序设计基础(C语言)入门篇》章节测试答案
第一章单元测试
1、下列哪一个不是C语言的的主要特点()。
A.运算符丰富
B.能完成任何功能
C.语言简洁、紧凑、方便、灵活
D.数据类型丰富
正确答案:能完成任何功能
2、一个C语言程序总是从()函数开始。
A.main
B.max
C.printf
D.scanf
正确答案:main
3、计算机高级语言程序的运行方法有编译执行和解释执行两种,下列叙述中正确的是()。
A.C语言程序仅可以解释执行
B.C语言程序既可以编译执行又可以解释执行
C.C语言程序仅可以编译执行
正确答案:C语言程序仅可以编译执行
4、下列叙述中正确的是()。
A.每个C语句必须以分号结束
B.C语言程序中每一行只能写一条语句
C.C语句必须在一行内写完
D.C语言程序的只有一个函数
正确答案:每个C语句必须以分号结束
5、程序是一组计算机能识别和执行的指令集合。
A.正确
B.错误
正确答案:正确
6、计算机语言是一种只有计算机才能识别的语言。
A.正确
B.错误
正确答案:错误
7、一个C语言程序是由一个或多个函数组成的,其中必须包含一个函数,函数名是main。
A.正确
B.错误
正确答案:正确
8、C语句是以()表示结束
A.分号
B.句号
C.回车
D.逗号
正确答案:分号
9、C语言区分大小写。
A.正确
B.错误
正确答案:正确
10、C语言只有一个标准。
A.正确
B.错误
正确答案:正确
第二章单元测试
1、算法的特点不包括()。
A.可行性
B.确定性
C.多个输入
D.有穷性
正确答案:多个输入
2、算法的有穷性是指()。
A.算法的程序所处理的数据量是有限的
B.算法的程序运行时间是有限的
C.算法只能被有限的用户使用
D.算法包含的操作步骤是有限的
正确答案:算法包含的操作步骤是有限的
3、在计算机中,算法是指()。
A.加工方法
B.解答方案的准确而完整的描述
C.查询方法
D.排序方法
正确答案:解答方案的准确而完整的描述
4、算法的特点包括穷性、确定性、可行性、有一个或多个输入和有一个或多个输出。
A.正确
B.错误
正确答案:错误
5、在程序设计中,符合结构化原则的三种基本控制结构是顺序结构、选择结构、循环结构。
A.正确
B.错误
正确答案:正确
6、传统的流程图只有一个入口,多个出口。
A.正确
B.错误
正确答案:错误
7、所谓算法的有穷性是指算法要在合理有限的时间内结束。
A.正确
B.错误
正确答案:正确
8、算法是程序的具体实现。
A.正确
B.错误
正确答案:错误
9、算法分为数值算法和非数值算法两大类。
A.正确
B.错误
正确答案:正确
10、算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。
A.正确
B.错误
正确答案:正确
第三章单元测试
1、表达式25/3%3的值为2.。
A.正确
B.错误
正确答案:正确
2、若有定义:int y=2; 则计算表达式y+=y后的y值是2()。
A.正确
B.错误
正确答案:错误
3、下列不正确的叙述是()。
A.在C语言程序中,%运算符的优先级高于/ 运算符。
B.在C语言程序中,SUM和sum是两个不同的变量。
C.在C语言程序中,进行赋值运算时,先将右侧表达式的值转化左侧变量的类型再赋给变量。
D.若a和b类型相同,在计算了赋值表达式a=b后b中的值将复制到a中,而b中的值不变。
正确答案:在C语言程序中,%运算符的优先级高于/ 运算符。
4、在C语言中,要求运算对象必须是整型的运算符是()。
A.%
B.-
C.*
D./
正确答案:%
5、下列选项中正确的定义语句是()。
A.double;a ; b
B.double;a=7,b=7
C.double;, a , b
D.double;a=b=7
正确答案:double;a=7,b=7
6、输入一个3位正整数n,分别输出n的个位a、十位b、百位c。下面程序的语句填空应为:()#include <;stdio.h>;int main(){; int n,a,b,c;scanf(";%d";,&;n);a=();b=n/10%10;c=n/100;printf(";a=%d; b=%d; c=%d";,a,b,c); return 0;}
A.n/10
B.a%10
C.b/10
D.n%10
正确答案:n%10
7、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int main(){int a=1,b=0; printf(";%d,";,b=a+b);printf(";%d\n";,a=2*b);return 0;}
A.1,2
B.3,2
C.0,0
D.1,0
正确答案:1,2
8、数据在计算机中是以二进制的形式存储的。()
A.正确
B.错误
正确答案:正确
9、变量定义后,如果没有赋值,那变量多表示的存储单元是空的。
A.正确
B.错误
正确答案:错误
10、定义符号常量的名字用命令#define。
A.正确
B.错误
正确答案:正确
第四章单元测试
1、有下列程序,已知字母A的ASCII码为65,程序运行后的输出结果是()。#include <;stdio.h>;int main(){char c1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(";%c,%d\n";,c1,c2);return 0;}。
A.D,69
B.输出无定值
C.E,D
D.E,68
正确答案:E,68
2、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int; main(){; int a=14,b=12;a=a+b;b=a-b;a=a-b;printf(";a=%d,b=%d";,a,b); return 0;}
A.a=14,b=14
B.a=12,b=14
C.a=26,b=26
D.a=14,b=12
正确答案:a=12,b=14
3、若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。
A.scanf(";%d%d%d";,a,b,c)
B.scanf(";%d%d%d";,&;a,&;b,&;c)
C.scanf(";%D%D%D";,&;a,&;b,&;c)
D.read(a,b,c)
正确答案:scanf(";%d%d%d";,&;a,&;b,&;c)
4、编写程序,输入3个整数a、b、c,输出时:a的值是b,b的值是c,c的值是a。下面程序可以正确实现题目要求:#include <;stdio.h>;int main(){int a,b,c,tscanf(";%d%d%d";,&;a,&;b,&;c);t=a;a=b;b=c;c=t; // 顺序交换a、b、c; printf(";a=%d,b=%d,c=%d";,a,b,c); return 0;}。
A.正确
B.错误
正确答案:正确
5、已知银行一年定期存款利率r是2.25%,若存款本金是c元,编程计算一年期满是本金之和d(保留两位小数)。下面程序可以正确实现题目要求:#include <;stdio.h>;int main(){; double; r=0.0255,c,d;scanf(";%f";,&;c);d=c+c*r;printf(";x=%.2lf";,d); return 0;}。
A.正确
B.错误
正确答案:错误
6、用getchar()从键盘上输入一个字符,用putchar()打印出来!参考程序1与参考程序2都可以实现题目要求。#include <;stdio.h>;int main(){; char a; a=getchar(); putchar(a);return 0;};参考程序2:#include <;stdio.h>;int main(){; char ch;scanf(“%c”,&;ch);printf(“%c\n”,ch);return 0;}。
A.正确
B.错误
正确答案:正确
7、下列程序运行结果为:#include<;stdio.h>;int; main(){; char a,b,c; a = ';r'; b = ';e';c = ';d'; putchar(a);putchar(b);putchar(c);putchar(';\n';); return 0。
A.red
B.red\n
C.‘r’’e’’d’
D.‘r’’e’’d’’\n’
正确答案:red
8、如果要求按照12:31:12格式输入数据,那么下面哪个输入语句是正确的:()
A.scanf(";%
D.%
D.%d";, &;num1, &;num2,&;num3)
B.scanf(";%d%d%d";, &;num1, &;num2,&;num3)
C.scanf(";%d,%d,%d";, &;num1, &;num2,&;num3)
正确答案:scanf(";%
D.%
D.%d";, &;num1, &;num2,&;num3)
9、在格式化输入scanf函数中,如何%后面跟有*,表示抑制符,输入的数据不会赋值给相应的变量。()
A.正确
B.错误
正确答案:正确
10、putchar()函数属于无参函数。()
A.正确
B.错误
正确答案:错误
第五章单元测试
1、在C语言中,逻辑运算符“&;&;”比“||”的优先级高()。
A.正确
B.错误
正确答案:正确
2、将数学式:a=b或a<;c ,写为C语言的表达式为a=b||a<;c()。
A.正确
B.错误
正确答案:错误
3、已知字母’A’的ASCll码值为 65,若变量c为char 型,下列不能正确判断出c为大写字母的表达式是()。
A.(c+32)>;=’a’&;&;(c+32)<;=’z’
B.!(c>;=’A’||c<;=’Z’)
C.c>;=’A’&;&; c<;=’Z’
D.(c>;=65)&;&;(c<;=91)
正确答案:!(c>;=’A’||c<;=’Z’)
4、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int main(){int x=1,y=0; if (!x) y++; else if (x==0); if (x) y+=2; else y+=3; printf(";%d";,y); return 0;}
A.2
B.0
C.1
D.3
正确答案:0
5、有下列程序,程序运行后的输出结果是()。int a=3,b;if (a>;0) b=1;else b=-1;b++;printf(";%d";,b)。
A.1
B.-1
C.2
D.0
正确答案:2
6、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int main(){int x=0,y=2, z=3;switch(x){; case 0:switch(y==2); {; case 1:printf(";*";); break; case 2:printf(";%";); break; }; case 1:switch(z); {; case 1:printf(";$";); case 2:printf(";*";); break; default:printf(";#";); }}}
A.*$
B.*#
C.**
D.*%
正确答案:*#
7、C语言中条件表达式结果为0表示假,为1表示真。
A.正确
B.错误
正确答案:错误
8、除了最后一个分支,switch语句要求每一个分支后加上一个break语句。
A.正确
B.错误
正确答案:正确
9、C可保证复杂的逻辑表达式是从左至右计算的。
A.正确
B.错误
正确答案:正确
10、有下列程序,程序运行后的输出结果是()。int; a=3,b=5,c=7; if (a>;b) a=b; c=a; if (c!=a) c=b;printf(";%d,%d,%d\n";,a,b,c)。
A.程序段有语法错
B.3,5,3
C.3,5,7
D.3,5,5
正确答案:3,5,3
第六章单元测试
1、有下列程序段,程序段运行后的输出结果##2##3##4##5()。int k;for (k=2;k<;6;k++,k++)printf(";##%d";,k)。
A.正确
B.错误
正确答案:错误
2、在循环结构中break是终止循环,跳出循环体。
A.正确
B.错误
正确答案:正确
3、以下不构成无限循环的语句组是()。
A.int n=0;
while (1)
n++
B.int n=0,i;
for (n=0,i=1;i++)
n+=i
C.int n=0
do
{++n;}
while (n<;=0)
D.int n=10;
while (n)
n--
正确答案:int n=0
do
{++n;}
while (n<;=0)
4、在C语言中有关for循环,下列正确的说法是()。
A.for循环的循环体语句中,可以包含多条语句,但必须用花括号写成复合语句。
B.for循环只能用于循环次数已经确定的情况。
C.for循环是先执行循环体语句,后判断表达式。
D.在 for循环中,不能用break跳出循环体。
正确答案:for循环的循环体语句中,可以包含多条语句,但必须用花括号写成复合语句。
5、有下列程序,程序运行后的输出结果是()。#include; <;stdio.h>;int main();{;int; i,sum; for (i=1;i<;6;i++) sum+=sum; printf(";%d";,sum); return 0;}。
A.14
B.15
C.不确定
D.0
正确答案:不确定
6、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int main(){int i,j,a=0;for (i=0;i<;2;i++){for (j=0;j<;4;j++){; if (j%2) break;a++;}a++;}printf(";%d";,a);return 0;}
A.6
B.7
C.5
D.4
正确答案:4
7、while与do-while在任何时候都可以互换。
A.正确
B.错误
正确答案:错误
8、下面程序可以正确求出1+2+3+。+n的和。()#include <;stdio.h>;int main(){;int i = 1,sum = 0,n;scanf(“%d”,&;n);while (i <;= n);sum = sum + i;++i;printf(";sum=%d";,sum);return 0; }。
A.正确
B.错误
正确答案:错误
9、以下程序中的变量已正确定义,程序段的输出结果是()。for(i=0;i<;4;i++,i++)for(k=1;k<;3;k++); printf(";*";)。
A.**
B.********
C.*
D.****
正确答案:*
10、有下列程序,程序运行后的输出结果是()。#include;<;stdio.h>;int main(){int;i,j; for (i=3;i>;=1;i--); {;for (j=1;j<;=2;j++);printf("; %d";,i+j); printf(";\n";); }; return 0;}
A.2 3 4
3 4 5
B.4 3 2;
5 4 3
C.2 3
3 4
4 5
D.4 5
3 4
2 3
正确答案:4 5
3 4
2 3
第七章单元测试
1、在C语言中,数组元素的最小下标是1()。
A.正确
B.错误
正确答案:正确
2、在C语言中,数组名代表首地址。
A.正确
B.错误
正确答案:正确
3、在C语言中,数组一般针对批量数据的处理,这些数据必须具有相同的类型()。
A.正确
B.错误
正确答案:正确
4、假设有一定义语句int a[][3]={1,2,3,4,5,6};那么数组的行数是不确定的。
A.正确
B.错误
正确答案:错误
5、有下列程序,程序运行后的输出结果是0()。 #include <;stdio.h>;int main(){;int a[5]={1,2,3};printf(";%d\n";,a[3]); return 0;}。
A.正确
B.错误
正确答案:正确
6、若有说明:int a[10]; 则对a 数组元素的正确引用是()。
A.a[3.5]
B.a[10-10]
C.a(5)
D.a[10]
正确答案:a[10-10]
7、有下列程序段,运行后的输出结果是()。int i;int x[3][3]={1,2,3,4,5,6,7,8,9};for (i=0;i<;3;i++)printf(";%d ";,x[i][2-i])。
A.1; 4; 7
B.3; 5; 7
C.3; 6; 9
D.1; 5; 9
正确答案:1; 4; 7
8、有下列程序,运行后的输出结果是()。#include;<;stdio.h>;int main(){;int; a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(";%d%d%d%d\n";,a[0][3],a[1][2],a[2][1],a[3][0]); return 0;}
A.0650
B.5430
C.输出值
D.1470
正确答案:0650
9、有下列程序,运行后的输出结果是()。#include; <;stdio.h>;int main();{;int; s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for (i=0;i<;12;i++); c[s[i]]++; for (i=1;i<;5;i++);printf(";%d";,c[i]); printf("; \n";); return 0;}()。
A.4 3 3 2
B.1 1 2 3
C.2 3 4 4
D.1 2 3 4
正确答案:4 3 3 2
10、若有定义:int b[3][4]={0};则下述正确的是()。
A.不正确的定义
B.数组b中各元素均为0
C.没有元素能得初值0
D.b[0][0]的值是0,其他元素值未知
正确答案:数组b中各元素均为0
第八章单元测试
1、有如下函数调用语句:fun(r1,r2+r3,(r4,r5));该函数调用语句中,含有的实参个数是3个。
A.正确
B.错误
正确答案:正确
2、函数可以嵌套定义,但不能嵌套调用。
A.正确
B.错误
正确答案:正确
3、mian函数可以自己调用自己。
A.正确
B.错误
正确答案:正确
4、以下正确的函数定义是()。
A.fun(int x,y)
; { int z; return int z; }
B.double fun(int x,int y)
{ z=x+y; return z; }
C.fun(x,y);
{int x,y; z=x+y; retun z;}
D.double fun(int x,int y)
{ double z;z=x+y;return z; }
正确答案:double fun(int x,int y)
{ double z;z=x+y;return z; }
5、在C语言函数中,下面说法正确的是()。
A.一个函数中可以有多个return语句,但是最多执行其中一个return语句。
B.一个函数中可以有多个return语句,可能多个return语句全部执行
C.一个return语句可以返回多个值。
D.一个函数中只能有一个return语句。
正确答案:一个函数中可以有多个return语句,但是最多执行其中一个return语句。
6、在C语言函数中,以下说法正确的是()。
A.如果函数值的类型与return返回值类型不一致,以函数值类型为准
B.定义函数时,形参的类型说明可以放在函数体内。
C.如果形参与实参的类型不一致以实参类型为准
D.return后边的值不能为表达式
正确答案:如果函数值的类型与return返回值类型不一致,以函数值类型为准
7、在C语言程序中,以下正确的描述是()。
A.函数的定义和调用均可以嵌套
B.函数的定义不可嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义可以嵌套,但函数的调用不可以嵌套
正确答案:函数的定义不可嵌套,但函数的调用可以嵌套
8、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int f(int a){int b=0,c=3; b++;c++; return(a+b+c);}int main(){int a=2,i; for (i=0;i<;3;i++)printf(";%4d";,f(a)); return 0;}
A.7 8 9
B.7 10 13
C.7 7 7
D.7 9 11
正确答案:7 7 7
9、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int func(int a,int b);int main(){;int k=4,m=1,p;p=func(k,m);printf(";%d ";,p);p=func(k,m);printf(";%d\n";,p);return 0;}int func(int a,int b){; int m=0,i=2; i+=m+1; m=i+a+b;return(m);}{;int m=0,i=2;i+=m+1;m=i+a+b;return(m);}
A.8 17
B.8 16
C.8 20
D.8; 8
正确答案:8; 8
10、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;int fun (int x,int y);int main(){int a=4,b=5,c=6;printf(";%d\n";,fun(2*a,fun(b,c)));return 0;}int fun (int x,int y){if; (x!=y) return ((x+y)/2); else return (x);}
A.8
B.6
C.3
D.12
正确答案:6
第九章单元测试
1、若有下列语句:int a[4]={1,2,3,4},*p;p=&;a[2];则*p的值是3。
A.正确
B.错误
正确答案:正确
2、int *p;此时*是一个运算符号,表示间接访问p所指向的变量。
A.正确
B.错误
正确答案:错误
3、有下列程序段,程序段运行后的输出结果是10()。 int *p,n; n=10; p=&;n; n=*p+10; printf(";%d\n";, *p)。
A.正确
B.错误
正确答案:错误
4、若有说明:int a=2,*p=&;a,*q=p;,则以下非法的赋值语句是()。
A.q=a
B.*p=*q
C.p=q
D.a=*q
正确答案:q=a
5、变量的指针是指该变量的()。
A.别名
B.名
C.首地址
D.值
正确答案:首地址
6、若已定义int a=5; 下列对(1)、(2)两个语句的正确解释是()(1) int *p=&;a; (2) *p=a。
A.语句(1)和语句(2)语句都是把变量a的地址值赋给指针变量p。
B.语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。
C.语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给指针变量p。
D.语句(1)和语句(2)中的*p含义相同,都表示给指针变量p赋值。
正确答案:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。
7、下列程序中,主函数调用findmax函数返回数组中的最大值。在下划线处应填入的是()。#include <;stdio.h>;findmax(int *a, int n){; int *p, *s; for (p=a, s=a; p-a<;n; p++);if() s=p; return (*s);}int main(){; int x[5]={12,21,13,6,18};printf(";%d\n";, findmax(x,5)); return 0;}
A.a[p]>;a[s]
B.p-a>;p-s
C.p>;s
D.*p>;*s
正确答案:*p>;*s
8、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;void fun(int *x,int *y);int main(){; int x=1,y=2;fun(&;y,&;x); printf(";%d ;%d";,x,y); return 0;}void fun(int *x,int *y){; printf(";%d%d";,*x,*y); *x=3;*y=4;}
A.123; 4
B.121; 2
C.214; 3
D.211; 2
正确答案:214; 3
9、有下列程序段,程序段运行后的输出结果是()。int t[]={0,1,2,3,4,5,6,7,8,9}, *p;p=t;printf(";%d\n";, *p+9)。
A.10
B.0
C.9
D.1
正确答案:9
10、若有下列语句:int a[4]={1,2,3,4},*p;p=a;则*p的值是3。
A.正确
B.错误
正确答案:错误
第十章单元测试
1、若给出下列定义:char x[]=";abcdefg";char y[]={';a';,';b';,';c';,';d';,';e';,';f';,';g';};则正确的叙述为()。
A.数组x的长度小于数组y的长度
B.数组x和数组y的长度相同
C.数组y的定义是错的
D.数组x的长度大于数组y 的长度
正确答案:数组x的长度大于数组y 的长度
2、有下列程序,程序运行后的输出结果是()。#include;<;stdio.h>;int main(){; char; ch[7]={ ";65ab21";}; int; i,s=0; for (i=0;ch[i]>;= ';0';&;&;ch[i]<;=';9';i+=2); s=10*s+ch[i]- ';0'; printf(";%d\n";,s); return 0;}。
A.6
B.62
C.6521
D.12ba56
正确答案:6
3、设有如下的程序段:char s[]=";girl";, *t; t=s;则下列叙述正确的是()。
A.t指向s数组首元素
B.*t与 &;s[0]相等
C.数组s中的内容和指针变量t中的内容相等
D.s数组长度和t长度相等
正确答案:t指向s数组首元素
4、有下列程序段,程序段运行后的输出结果是()。char b1[8]=";abcdefg";, b2[8], *pb=b1+3;while(--pb>;=b1) strcpy(b2, pb);printf(";%d";, strlen(b2))。
A.3
B.8
C.1
D.7
正确答案:7
5、有下列程序,程序运行后的输出结果是()。#include <;stdio.h>;char cchar(char ch){ ;if (ch>;=';A'; &;&; ch<;';Z';); ch=ch-';A';+';a'; return; ch;}int main(){char s[]=";ABC+abc=defDEF";, *p=s;while (*p){ *p=cchar(*p);p++; }puts(s); return 0;}
A.abc+ABC=DEFdef
B.abcabcdefdef
C.abc+abc=defdef
D.abcaABCDEFdef
正确答案:abc+abc=defdef
6、从存储机制上看,字符串是以“\0”为结束标志的字符串数组。()
A.正确
B.错误
正确答案:正确
7、语句printf(“This is a string!”)会把双引号输出。
A.正确
B.错误
正确答案:错误
8、下面程序的运行结果是:We,s()。#include <;stdio.h>;int main(){; printf (“%s, %c \n”, ";We";, *";students";); return 0;}。
A.正确
B.错误
正确答案:正确
9、下面程序段是正确的。()char; str[20];str=“I love China!”。
A.正确
B.错误
正确答案:错误
10、可以用函数strcat将两个字符串连接,也可以用+将两个字符串连接。
A.正确
B.错误
正确答案:错误