智慧树知到《程序设计基础(C语言)入门篇》章节测试答案
第一章
1、下列哪一个不是C语言的的主要特点( )。
A:语言简洁、紧凑、方便、灵活
B:运算符丰富
C:数据类型丰富
D:能完成任何功能
答案: 能完成任何功能
2、一个C语言程序总是从( )函数开始。
A:printf
B:scanf
C:main
D:max
答案: 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中的值不变。
答案:
4、在C语言中,要求运算对象必须是整型的运算符是( )。
A:/
B:*
C:-
D:%
答案:
5、下列选项中正确的定义语句是( )。
A:double a ; b;
B:double a=b=7;
C:double a=7,b=7;
D:double , a , b;
答案:
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:b/10
B:n/10
C:n%10
D:a%10
答案:
7、有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
int main()
{
int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%dn”,a=2*b);
return 0;
}
A:0,0
B:1,0
C:3,2
D: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,%dn”,c1,c2);
return 0;
}
A:E,68
B:D,69
C:E,D
D:输出无定值
答案:
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=12
B:a=12,b=14
C:a=26,b=26
D:a=14,b=14
答案:
3、若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是( )。
A:read(a,b,c)
B:scanf(“%D%D%D”,&a,&b,&c);
C:scanf(“%d%d%d”,&a,&b,&c);
D: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,t
scanf(“%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(“%cn”,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:‘r’’e’’d’
C:redn
D:‘r’’e’’d’’n’
答案:
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);
答案:
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>=’A’&& c<=’Z’
B:!(c>=’A’||c<=’Z’)
C:(c+32)>=’a’&&(c+32)<=’z’
D:(c>=65)&&(c<=91)
答案:
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:3
B:2
C:1
D:0
答案:
5、有下列程序,程序运行后的输出结果是( )。
int a=3,b;
if (a>0) b=1;
else b=-1;
b++;
printf(“%d”,b);
A:1
B:2
C:-1
D:0
答案:
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,%dn”,a,b,c);
A:程序段有语法错
B:3,5,3
C:3,5,5
D:3,5,7
答案:
第六章
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
do
{++n;}
while (n<=0);
B:int n=0;
while (1)
n++;
C:int n=10;
while (n);
n–;
D:int n=0,i;
for (n=0,i=1; ;i++)
n+=i;
答案:
4、在C语言中有关for循环,下列正确的说法是( )。
A:for循环只能用于循环次数已经确定的情况。
B:for循环是先执行循环体语句,后判断表达式。
C:在 for循环中,不能用break跳出循环体。
D:for循环的循环体语句中,可以包含多条语句,但必须用花括号写成复合语句。
答案:
5、有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
int main()
{
int i,sum;
for (i=1;i<6;i++) sum+=sum;
printf(“%d”,sum);
return 0;
}
A:不确定
B:15
C:14
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:4
B:5
C:6
D:7
答案:
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
答案:
第七章
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(“%dn”,a[3]);
return 0;
}
A:对
B:错
答案:
6、若有说明:int a[10]; 则对a 数组元素的正确引用是( )。
A:a[10-10]
B:a[3.5]
C:a(5)
D:a[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[2-i]);
A:1 5 9
B:1 4 7
C:3 5 7
D:3 6 9
答案:
8、有下列程序,运行后的输出结果是( )。
#include <stdio.h>
int main()
{
int a[4][4]=1,3,5},{2,4,6},{3,5,7;
printf(“%d%d%d%dn”,a[0][3],a[1][2],a[2][1],a[3][0]);
return 0;
}
A:0650
B:1470
C:5430
D:输出值
答案:
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]++;
for (i=1;i<5;i++)
printf(” %d”,c);
printf(” n”);
return 0;
}
A:1 2 3 4
B:2 3 4 4
C:4 3 3 2
D:1 1 2 3
答案:
10、若有定义:int b[3][4]={0};则下述正确的是( )。
A:b[0][0]的值是0,其他元素值未知
B:没有元素能得初值0
C:数组b中各元素均为0
D:不正确的定义
答案:
第八章
1、有如下函数调用语句:
fun(r1,r2+r3,(r4,r5));
该函数调用语句中,含有的实参个数是3个。
A:对
B:错
答案:
2、函数可以嵌套定义,但不能嵌套调用。
A:对
B:错
答案:
3、mian函数可以自己调用自己。
A:对
B:错
答案:
4、以下正确的函数定义是( )。
A:double fun(int x,int y)
{ z=x+y; return z; }
B:fun(int x,y)
{ int z; return int 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; }
答案:
5、在C语言函数中,下面说法正确的是( )。
A:一个return语句可以返回多个值。
B:一个函数中只能有一个return语句。
C:一个函数中可以有多个return语句,但是最多执行其中一个return语句。
D:一个函数中可以有多个return语句,可能多个return语句全部执行
答案:
6、在C语言函数中,以下说法正确的是( )。
A:定义函数时,形参的类型说明可以放在函数体内。
B:return后边的值不能为表达式
C:如果函数值的类型与return返回值类型不一致,以函数值类型为准
D:如果形参与实参的类型不一致以实参类型为准
答案:
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 7 7
B:7 10 13
C:7 8 9
D:7 9 11
答案:
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(“%dn”,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
答案:
10、有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
int fun (int x,int y);
int main()
{
int a=4,b=5,c=6;
printf(“%dn”,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:3
B:6
C:8
D:12
答案:
第九章
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(“%dn”, *p);
A:对
B:错
答案:
4、若有说明:int a=2,p=&a,q=p;,则以下非法的赋值语句是( )。
A:p=q
B:p=q
C:a=*q
D:q=a
答案:
5、变量的指针是指该变量的( )。
A:值
B:首地址
C:名
D:别名
答案:
6、若已定义int a=5; 下列对(1)、(2)两个语句的正确解释是( )
(1) int p=&a; (2)p=a;
A:语句(1)和语句(2)中的*p含义相同,都表示给指针变量p赋值。
B:语句(1)和语句(2)语句都是把变量a的地址值赋给指针变量p。
C:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给指针变量p。
D:语句(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(“%dn”, findmax(x,5));
return 0;
}
A:p>s
B:p>s
C:a[p]>a[s]
D:p-a>p-s
答案:
8、有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
void fun( int x,inty);
int main()
{
int x=1,y=2;
fun(&y,&x);
printf(“%d %d”,x,y);
return 0;
}
void fun( int x,inty)
{
printf(“%d%d”,x,y);
x=3;y=4;
}
A:214 3
B:121 2
C:123 4
D:211 2
答案:
9、有下列程序段,程序段运行后的输出结果是( )。
int t[]={0,1,2,3,4,5,6,7,8,9}, p;
p=t;
printf(“%dn”, p+9);
A:0
B:1
C:9
D:10
答案:
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:数组y的定义是错的
B:数组x和数组y的长度相同
C:数组x的长度大于数组y 的长度
D:数组x的长度小于数组y的长度
答案:
2、有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
int main()
{
char ch[7]={ “65ab21”};
int i,s=0;
for (i=0;ch>= ‘0’&&ch<=’9′;i+=2)
s=10*s+ch- ‘0’;
printf(“%dn”,s);
return 0;
}
A:6
B:6521
C:12ba56
D:62
答案:
3、设有如下的程序段:
char s[]=”girl”, t; t=s;则下列叙述正确的是( )。
A:t指向s数组首元素
B:数组s中的内容和指针变量t中的内容相等
C:s数组长度和t长度相等
D:t与 &s[0]相等
答案:
4、有下列程序段,程序段运行后的输出结果是( )。
char b1[8]=”abcdefg”, b2[8], *pb=b1+3;
while( –pb>=b1) strcpy(b2, pb);
printf(“%d”, strlen(b2));
A:8
B:3
C:1
D: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:abcaABCDEFdef
C:abc+abc=defdef
D:abcabcdefdef
答案:
6、从存储机制上看,字符串是以“ ”为结束标志的字符串数组。()
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:错
答案:
老友网www.andlaou.com免费为你分享