首页 › 答案 › 题库 › 知到智慧树 › 未分类

智慧树知到《C编程之初体验(山东联盟)》章节测试答案

智慧树知到《C编程之初体验(山东联盟)》章节测试答案
第一章单元测试
1、C语言可以应用到硬件编程中。
A.正确
B.错误
正确答案:正确
2、C语言的编译软件只有一种。
A.正确
B.错误
正确答案:错误
3、2011年,ISO正式公布C语言新的国际标准,称为()标准。
A.C89
B.C90
C.C99
D.C11
正确答案:C11
4、C语言源文件的扩展名为()。
A..c
B..exe
C..obj
D..cpp
正确答案:.c
5、C语言之父是()?
A.丹尼斯.里奇
B.肯.汤普逊
C.比尔盖茨
D.马云
正确答案:丹尼斯.里奇
6、一个 C 程序可以包含若干函数,但必须有主函数。
A.正确
B.错误
正确答案:正确
7、C程序中可以自定义函数。
A.正确
B.错误
正确答案:正确
8、C语言的源文件的扩展名为.c。
A.正确
B.错误
正确答案:正确
9、一个C程序可以有多个主函数。
A.正确
B.错误
正确答案:错误
10、一个C程序可以没有主函数。
A.正确
B.错误
正确答案:错误
11、在标准C中,语句必须以“;”结束。
A.正确
B.错误
正确答案:正确
12、C程序的一行只能写一条语句。
A.正确
B.错误
正确答案:错误
13、#include
int main()
{printf(“Hello,World!”); return 0;}
以上C语言程序的功能是()。
A.输出字符串:Hello
B.输出字符串:World!
C.输出字符串:Hello,World!
D.输入字符串
正确答案:输出字符串:Hello,World!
14、C语言语句以()结束。
A.;
B.:
C.,
D..
正确答案:A
15、包含头文件stdio.h正确的表示是()。
A.include
B.#include
C.include《stdio.h》
D.#include《stdio.h》
正确答案:#include
16、#include的功能是()。
A.输出字符串:stdio.h
B.包含头文件stdio.h
C.定义stdio.h是头文件
D.定义变量stdio.h
正确答案:包含头文件stdio.h
17、C语言主函数名必须是main。
A.正确
B.错误
正确答案:正确
18、以下哪个不是C语言的编译软件?
A.Visual C++6.0
B.Visual C++2010 express
C.DEV C++
D.MS Office2010
正确答案:MS Office2010
19、只有计算机专业的学生才用学习C语言,其他专业学C语言一定没用。
A.正确
B.错误
正确答案:错误
20、printf(";***\n***\n***";);语句的功能是()。
A.输出一行,包含三个*
B.输出一行,包含九个*
C.输出三行,每行包含三个*
D.输出九行,每行包含一个*
正确答案:输出三行,每行包含三个*
第二章单元测试
1、已知字母A的ASCII码是65,以下程序段的输出的结果是()。
char c1=';A';,c2=';Y';printf(";%d,%d";,c1,c2)。
A.A,Y
B.65,65
C.65,90
D.65,89
正确答案:65,89
2、有以下程序段:
;char c1,c2; c1=';A';+';8';-';4'; c2=';A';+';8';-';5'; printf(";%c,%d";,c1,c2);已知字母A的ASCII码为65,程序运行后的输出结果是()。
A.E,68
B.D,69
C.E,D
D.输出无定值
正确答案:E,68
3、以下选项中可用作C程序合法实数的是()。
A.3.0e0.2
B..1e0
C.E9
D.9.12E
正确答案:.1e0
4、有以下定义语句,编译时会出现编译错误的是()。
A.char a=';a'
B.char a=';aa'
C.char a=';'
D.char a=';-'
正确答案:char a=';aa'
5、float和double都是定义浮点类型的关键字。
A.正确
B.错误
正确答案:正确
6、可在C程序中用作用户标识符的一组标识符是()。
A.and ()2007
B.Date ;y-m-d
C.Hi ;Dr.Tom
D.case ;Big1
正确答案:and ()2007
7、以下选项中表示一个合法的常量是()。
A.2/3
B.0Xab
C.123E0.2
D.2.7e
正确答案:0Xab
8、已知:int a=5; 那么逗号表达式:a+3,a=a/2,a+4的值为8。
A.正确
B.错误
正确答案:错误
9、若有定义语句:int x=12,y=8,z; ,在其后执行语句z=0.9+x/y;,则z的值为()。
A.1.9
B.1
C.2
D.2.4
正确答案:1
10、若有定义语句:int a=10;double b=3.14; ,则表达式 ';A';+a+b 值的类型是()。
A.char
B.int
C.double
D.float
正确答案:double
11、设有定义:int x=2; ,以下表达式中,值不为6的是()。
A.x*=x+1
B.x++,2*x
C.x=x*(1+x)
D.2*x,x+=2
正确答案:2*x,x+=2
12、若有定义语句:int x=10; ,则表达式x - = x + x的值为()。
A.-20
B.-10
C.0
D.10
正确答案:-10
13、以下程序段的输出结果是()。
int a=10,b=10; printf(";%d,%d";,a--,--b)。
A.10,10
B.9,9
C.10,9
D.9,10
正确答案:10,9
14、若变量已正确定义并赋值,符合C语言语法的表达式是()。
A.a=a+7
B.a=7+b+c,a++:b*c
C.int(12.3/5)
D.a=a+1=c+b
正确答案:a=a+7
15、若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y=5
B.x=n%2.5
C.x+n=i
D.x=5=4+1
正确答案:x=y=5
16、若有定义:double a=22;int i=0,k=18; ,则不符合C语言规定的赋值语句是()。
A.a=a++,i++
B.i=(a+k)<;=(i+k)
C.i=a%11
D.i=!a
正确答案:i=a%11
17、int a=3; 那么a++的值为4。
A.正确
B.错误
正确答案:错误
18、int a=3,b=4;那么(a+b)++的值为7。
A.正确
B.错误
正确答案:错误
19、b*=a+3等价于b=b*(a+3)。
A.正确
B.错误
正确答案:正确
20、定义符号常量N为3.14可以用语句:#define N=3.14
A.正确
B.错误
正确答案:错误
第三章单元测试
1、有以下程序,若输入d,则输出结果为()。(注:字母a的ASCII码是97)
#include
int main()
{ char c,d; c=getchar(); d=c-33; printf(";%d,%c";,c,d); return 0;}
A.100,D
B.100,c
C.99,C
D.100,C
正确答案:100,C
2、以下不能输出字符a的语句是()。
A.printf(';%c';,';A';+32)
B.printf(';%d';,';a';)
C.printf(';%c';,97)
D.printf(';%c';,';a';-1)
正确答案:printf(';%d';,';a';)
3、命令putchar(97)的执行结果为:97。
A.正确
B.错误
正确答案:错误
4、命令putchar(';98';)的执行结果为:98。
A.正确
B.错误
正确答案:错误
5、若变量已正确定义为int型,要通过语句scanf(";%d,%d,%d";,&;a,&;b,&;c);给a赋值1,给b赋值2, 给c赋值3, 以下输入形式中错误的是()。(注:下列选项中□表示一个空格。)
A.□□□1,2,3<;回车>;
B.1□2□3<;回车>;
C.1,□□□2, □□□3<;回车>;
D.1,2,3<;回车>;
正确答案:1□2□3<;回车>;
6、有以下程序
#include
int main()
{ int a1,a2;char c1,c2; scanf(";%d%c%d%c";,&;a1,&;c1,&;a2,&;c2); printf(";%d,%c,%d,%c";,a1,c1,a2,c2); return 0;}
若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是()(注:□表示一个空格)
A.12a34b
B.12□a□34□b
C.12,a,34,b
D.12□a34□b
正确答案:12a34b
7、根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为()。
#include
int main()
{ ;char ch1,ch2,ch3; 输入语句
;printf(';%c%c%c';,ch1,ch2,ch3); return 0;}
输入形式:;A□B□C
输出形式:;A□B
(注:□表示一个空格)
A.scanf(';%c%c%c';,&;ch1,&;ch2,&;ch3)
B.scanf(';%c,%c,%c';, &;ch1,&;ch2, &;ch3)
C.scanf(';%c□%c□%c';,&;ch1,&;ch2,&;ch3)
D.scanf(';%c%c';,&;ch1,&;ch2,&;ch3)
正确答案:scanf(';%c%c%c';,&;ch1,&;ch2,&;ch3)
8、#include
int main()
{ ;int a=1,b; scanf(';%2d%2d';,&;a,&;b); printf(';%d*%d';,a,b); return 0;}
以上程序段,如果输入是12345 ;6,则输出是()。
A.123*345
B.12*45
C.12345*6
D.12*6
正确答案:12*45
9、对于scanf(';%3d%f';,&;a,&;b);若输入123456.789,则a=123,b=456.789
A.正确
B.错误
正确答案:正确
10、已知字母A的ASCII码是65,以下程序的执行结果是()。
#include
int main()
{ ;char c1=';A'; printf(';%d';,c1+3); return 0;}
A.65
B.66
C.67
D.68
正确答案:68
11、阅读以下程序,当输入数据的形式为:25,13,10 ,正确的输出为()。
#include
int main()
{ ;int x,y,z; scanf(';%d,%d,%d';,&;x,&;y,&;z); printf(';x+y+z=%d';,x+y+z); return 0;}
A.x+y+z=48
B.x+y+z=35
C.x+z=35
D.不确定值
正确答案:x+y+z=48
12、已知字母A的ASCII码是65,以下程序的执行结果是()。
#include
int main()
{ ;char c1=';A';,c2=';Y'; printf(';%d,%d';,c1,c2); return 0;}
A.A,Y
B.65,65
C.65,90
D.65,89
正确答案:65,89
13、下列程序的输出结果是()。
int main()
{ double d=3.2; int x,y; x=1.2;
y=(x+3.8)/5.0; printf(';%d';,d*y); return 0;}
A.3
B.3.2
C.0
D.3.07
正确答案:0
14、下列语句输出结果是()。
int a=1,b=1,c=1;
a=a+b+c;
printf(';%d';,a)。
A.3
B.4
C.5
D.6
正确答案:3
15、有以下程序
#include
int main()
{ char c1,c2; c1=';A';+';8';-';4'; c2=';A';+';8';-';5'; printf(';%c,%d';,c1,c2); return 0;}
已知字母A的ASCII码为65,程序运行后的输出结果是()。
A.
A.E,68
B.D,69
C.E,D
D.输出无定值
正确答案:A.E,68
16、有以下程序, 程序运行后的输出结果是()。
#include
void main()
{ ; int a=1,b=0; printf(';%d,';,b=a+b); printf(';%d';,a=2*b);}
A.0,0
B.1,0
C.3,2
D.1,2
正确答案:1,2
17、有以下程序:
#include
void main()
{ int x=10,y=3; printf(';%d';,y=x/y);}
执行后的输出结果是()。
A.3.333333
B.3
C.4
D.0
正确答案:3
18、以下不能输出字符A的语句是()。(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
A.printf(';%c';,';a';-32)
B.printf(';%d';,';A';)
C.printf(';%c';,65)
D.printf(';%c';,';B';-1)
正确答案:printf(';%d';,';A';)
19、有以下程序段
char ch;
int k;ch=';a';k=12;printf(';%c,%d,';,ch,ch);printf(';k=%d';,k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是()。
A.a,a,12
B.97,97,k=12
C.a,97,12
D.a,97,k=12
正确答案:a,97,k=12
20、复合语句用{}括起来。
A.正确
B.错误
正确答案:正确
第四章单元测试
1、void main()
{ int a,b,min; scanf(“%d,%d”,&;a,&;b); if(a>;b)(); else(); printf(“%d”,min); }
该程序的功能是输入两个整数赋值给变量a和b,求较小的数并输出,程序中的两处下划线处应该分别填写()。
A.min=a 和 min=b
B.min=b 和 min=a
C.a=b 和 min=b
D.b=a 和 min=a
正确答案:min=b 和 min=a
2、运行以下程序后,输出()。
void main()
{ int k=-3; if(k<;0) printf(';**** ';)
else ;printf(';&;&;&;&; ';);
}
A.****
B.&;&;&;&
C.####&;&;&;&
D.有语法错误,else上面一行缺少分号
正确答案:有语法错误,else上面一行缺少分号
3、void main()
{ int a,b,t; scanf(“%d,%d”,&;a,&;b); if(a>;b){t=a();b=t;}
printf(“%d”,min); }
该程序的功能是输入两个整数赋值给变量a和b,按由小到大顺序输出,下划线处应该填入()。
A.a=t
B.b=t
C.a=b
D.t=b
正确答案:a=b
4、下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是()
#include
void main()
{ int ;k; printf(';Enter a int number :';); scanf(';%d';, &;k); if ();printf(';YES';); else ;printf(';NO';); }
A.((k%3==0) || (k%7==0) )
B.(k/3==0) || (k/7==0)
C.((k%3=0) || (k%7=0))
D.((k%3==0)&;&;(k%7==0) )
正确答案:((k%3==0) || (k%7==0) )
5、以下程序段的输出结果为()
int a=0,b=0,c=0; if(a==b+c) printf(“*** ”); else printf(“$$$ ”)。
A.有语法错误,不能通过编译
B.可以通过编译但不能通过连接
C.输出***
D.输出$$$
正确答案:输出***
6、if语句中可以有else也可以没有else。
A.正确
B.错误
正确答案:正确
7、else语句必须和if语句配合使用,不能单独使用。
A.正确
B.错误
正确答案:正确
8、一个if语句可以与多个else语句配对。
A.正确
B.错误
正确答案:错误
9、有以下程序段,输出结果为()。
int x=6,y;switch(x):
{ case 1:y=x; break; case 2:y=2*x;break; case 3:y=3*x;break; defualt:y=-x;break;}
printf(“%d”,y)。
A.6
B.12
C.18
D.-6
正确答案:-6
10、有以下程序段,输出结果为()。
int x=3,y;switch(x):
{case 1:y=x;break; case 2:y=2*x;break; case 3:y=3*x;break; defualt:y=-x;break;}
printf(“%d”,y)。
A.3
B.6
C.9
D.-3
正确答案:9
11、以下关于switch语句正确的是()。
A.switch语句是多分支选择结构语句
B.switch语句是循环结构语句
C.switch中可以使用else
D.switch中多个case后的值可以相等
正确答案:switch语句是多分支选择结构语句
12、有以下程序段,输出结果为()。
int x=1,y;switch(x):
{ case 1:y=x++; case 2:y=x++; case 3:y=x++;}
printf(“%d ”,y)。
A.1
B.2
C.3
D.4
正确答案:4
13、int x=8,y;switch(x):
{case 1:y=x; break; case 2:y=2*x;break; case 3:y=3*x;break; defualt:y=-x;break;}
printf(“%d ”,y);以上程序段,输出结果为()。
A.6
B.12
C.18
D.-8
正确答案:-8
14、switch语句中必须要有break语句。
A.正确
B.错误
正确答案:错误
15、switch语句中,case后可的各常量表达式的值不能相同,否则会出现矛盾。
A.正确
B.错误
正确答案:正确
16、max=a>;b?a:b; 的功能是()。
A.max等于a、b中较大的
B.max等于a、b中较小的
C.max等于a
D.max等于b
正确答案:max等于a、b中较大的
17、若整型变量a、b、c、d中的值依次为 :1、4、3、2。则条件表达式 a<;b?a:c<;d?c:d 的值是()。
A.1
B.2
C.3
D.4
正确答案:1
18、“逻辑与”的运算符是()。
A.&;&
B.||
C.&
D.|
正确答案:&;&
19、“逻辑或”的运算符是()。
A.&;&
B.||
C.&
D.|
正确答案:||
20、if(x%2=0)可以判断x是否为偶数。
A.正确
B.错误
正确答案:错误
第五章单元测试
1、有以下C语言程序段:
int x;scanf(“%d”,&;x);while(x>;0)
{x=x-1; printf(“%d”,x);}
当x输入为0时,输出结果为()。
A.43210
B.0
C.5
D.无
正确答案:无
2、while与do-while语句的区别是()。
A.while与do-while的功能完全一样
B.while语句比do-while语句执行循环体的次数多一次
C.do-while语句比while语句执行循环体的次数多一次
D.如果开始时循环语句不成立,那么while语句的循环一次都不执行,do-while语句的循环至少执行一次
正确答案:如果开始时循环语句不成立,那么while语句的循环一次都不执行,do-while语句的循环至少执行一次
3、已定义i和sum都为整数,以下C语言程序段的功能为()。
sum=0;i=1;while(i<;=100)
{ ;sum=sum+i; i++;}
printf(“%d”,sum)。
A.求1到100内所有整数的和
B.求1到100内所有整数的积
C.求1到100内所有偶数的和
D.求1到100内所有奇数的和
正确答案:求1到100内所有整数的和
4、有以下C语言程序段:
int x;scanf(“%d”,&;x);while(x>;0);x=x-1;printf(“%d”,x);当x输入为5时,输出结果为()。
A.43210
B.0
C.5
D.54321
正确答案:0
5、有以下程序段:
int k=5;while(--k) printf(';%d';,k -= 3);执行后的输出结果是()。
A.1
B.2
C.3
D.0
正确答案:1
6、do-while语句的循环体至少执行1次,while和for循环的循环体可能一次也执行不到。
A.正确
B.错误
正确答案:正确
7、已定义整型变量sum和i,及实型变量ave,以下程序段的功能是:用do-while语句实现,输入若干学生的整数成绩(以-1结束输入),求这些成绩的平均值ave。请在下划线处填写正确的语句()。
i=0;do
{scanf(“%d”,&;x); sum=sum+x; i++;//i为输入整数成绩的个数
}while(());sum=sum+1;//总分去掉多加的-1
ave=1.0*sum/i。
A.i<;=10
B.i>;=10
C.x==-1
D.x!=-1
正确答案:x!=-1
8、有以下C语言程序段:
int x;scanf(“%d”,&;x);do
{x=x-1; printf(“%d”,x);} while(x>;0);当x输入为5时,输出结果为()。
A.54321
B.43210
C.0
D.-1
正确答案:43210
9、do-while循环中while()后的分号可以省略。
A.正确
B.错误
正确答案:错误
10、以下程序段,可以实现 sum=1-1/(2*2)+1/(3*3)-1/(4*4)+…+1/(n*n),请在下划线处写入正确的语句()。
int i,f=1; //f表示每个加项的正负号
flaotsum=0;for(i=1;i<;=n;i++)
{sum=sum+(); f=-f;}
A.1/i*i
B.1/(i*i)
C.1.0/(i*i)
D.f*1.0/(i*i)
正确答案:f*1.0/(i*i)
11、已定义整型变量i和sum,与以下程序段功能一样的程序有()。
sum=0;for(i=1;i<;=100;i++)sum+=i。
A.sum=0;i=1;for( i<;=100;i++) sum+=i
B.sum=0;for(i=1;i<;=100;){i++;sum+=i;}
C.sum=0;for(i=1;i<;=100;) ;sum+=i;i++
D.sum=0;for(i=1;i++ )
正确答案:sum=0;i=1;for( i<;=100;i++) sum+=i
12、for语句后的()内,有几个表达式()?
A.1
B.2
C.3
D.4
正确答案:3
13、已定义整型变量s、n和i,以下程序段中,能够实现s=n!,即s为n的阶层。请在下划线处写入正确的语句()。
scanf(“%d”,&;n);s=1;for(i=1;i<;=n;i++)
()
A.s+=i
B.s*=i
C.s=s+n
D.s=s*n
正确答案:s*=i
14、以下关于break说法正确的是()。
A.break可以终止所有的循环。
B.break可以终止本层循环。
C.break只能用在循环语句中。
D.break只能用在switch语句中。
正确答案:break可以终止本层循环。
15、在C语言的循环语句for、while、do-while中,用于结束本次循环,继续执行下一次循环的语句是()。
A.switch
B.break
C.continue
D.if
正确答案:continue
16、有以下程序段的功能是()。
;int i, s=0; for(i=1;i<;=100;i++)
; { s=s+i; if(i>;10) break;}
; }
A.1+2+……+100
B.1+2+……+10
C.1+2+……+11
D.1+2+……+9
正确答案:1+2+……+11
17、程序的功能是输出以下图形,请在下划线处写入正确的语句。()
*
**
***
****
*****
for(i=1;i<;=5;i++)
{for(j=1();j++)
; putchar(‘*’); putchar(‘’);}
A.j<;=3
B.j<;=5
C.j<;=i
D.j<;i
正确答案:j<;=i
18、以下程序段,循环体可以循环几次()。
for(i=1;i<;=3;i++)
;for(j=1;j<;=4;j++)
; {循环体}。
A.3
B.4
C.7
D.12
正确答案:12
19、while、do-while、for语句可以互相嵌套,但是不能自身嵌套。
A.正确
B.错误
正确答案:错误
20、若一个循环体中包含另一个完整的循环结构则称为循环的嵌套。
A.正确
B.错误
正确答案:正确
第六章单元测试
1、下面正确的数组定义语句是()。
A.int y[1][4]={1,2,3,4,5}
B.float x[3][]={{1},{2},{3}}
C.int s[2][3]={{1},{1,2}}
D.double t[][3]={0}
正确答案:int s[2][3]={{1},{1,2}}
2、二维数组元素的存储规律是()。
A.按行从左到右存储
B.按列从左到右存储
C.按行从右到左存储
D.按行S路线存储
正确答案:按行从左到右存储
3、在定义int a[5][4];之后,对a的引用正确的是()。
A.a[2][4]
B.a[5][0]
C.a[0][0]
D.a[0,0]
正确答案:a[0][0]
4、有说明:int a[3][2]={0},则数组中各元素都可以得到初值,但其值不一定为0。
A.正确
B.错误
正确答案:错误
5、int f[3][]={{0,9,8},{7,7,7},{8,6,0}};定义正确。
A.正确
B.错误
正确答案:错误
6、char a[10]={“abcd”}; 那么数组a占用的字节数是10。
A.正确
B.错误
正确答案:正确
7、字符串必须以‘\0’结束,但字符数组可以不包括‘\0’。
A.正确
B.错误
正确答案:正确
8、字符串';This';大于字符串';that';。
A.正确
B.错误
正确答案:错误
9、已有定义:char a[]=';xyz';,b[]={';x';,';y';,';z';};则数组a和b所占字节数相同。
A.正确
B.错误
正确答案:错误
10、下面程序段的运行结果是()。
;int a[]={2,4,6,8,10}; int y=0,x; for(x=0;x<;4;x++)y+=a[x];printf(';%d\n';,y)。
A.17
B.18
C.19
D.20
正确答案:20
11、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型常量
B.整型表达式
C.整型常量或者整型表达式
D.任何类型的表达式
正确答案:整型常量或者整型表达式
12、有如下程序
void main()
{ ;int a[5]={0,0,0},i,k=3; for(i=0;i<;5;i++)a[i]=i+1;printf(“%d\n”,a[k]);}
该程序的输出结果是()
A.不确定的值
B.4
C.2
D.0
正确答案:4
13、执行下面的程序段后,数组元素s[1]中的值为0。
int k=3,s[2];s[0]=k。
A.正确
B.错误
正确答案:错误
14、int a[3]={1,2,3,4}; 是正确的。
A.正确
B.错误
正确答案:错误
15、已知程序段{char a[10];scanf(';%s';,a);printf(';%s';,a);}输入:ab cd<;回车>;,输出结果是:ab
A.正确
B.错误
正确答案:错误
16、声明语句为“char a[10];”,执行下列语句后的输出结果为()。
printf(';%d ';,strlen(strcpy(a,';Windows';)))。
A.6
B.7
C.8
D.9
正确答案:7
17、设有数组定义:char array[]=“China”;则strlen(array)的值为()。
A.4
B.5
C.6
D.7
正确答案:5
18、有定义语句:char s[10];,若要从终端给s 输入5 个字符,错误的输入语句是()。
A.gets(&;s[0])
B.scanf(';%s';,s)
C.gets(s)
D.scanf(';%s';,s[1])
正确答案:scanf(';%s';,s[1])
19、执行完int a[10]; gets(a);后,可以为数组a赋值。
A.正确
B.错误
正确答案:错误
20、char a[10]={“abcd”}; 那么strlen(a)的值是4。
A.正确
B.错误
正确答案:正确
第七章单元测试
1、以下所列的各函数首部中,正确的是()。
A.void play(var a:Integer,var b:Integer)
B.void play(int a,b)
C.void play(int a,int b)
D.void play(a as integer,b as integer)
正确答案:void play(int a,int b)
2、以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
正确答案:C语言程序总是从main()函数开始执行
3、函数的返回值是通过函数体中的()语句获得。
A.printf函数
B.scanf函数
C.return语句
D.goto语句
正确答案:return语句
4、自定义函数max的功能是()。
int max(int x,int y)
{int z; z=x>;y?x:y; return z; }
A.返回x、y中较大的数
B.返回x、y中较小的数
C.返回x的值
D.返回y的值
正确答案:返回x、y中较大的数
5、以下函数fun的函数的返回类型是()。
;int fun(float ;x)
;{ int y; y=(int) x; return ;y;}
A.int
B.float
C.void
D.不确定
正确答案:int
6、main 函数必须写在一个 C 程序的最前面。
A.正确
B.错误
正确答案:错误
7、自定义函数中用return返回值。
A.正确
B.错误
正确答案:正确
8、自定义函数的函数类型如果被省略,则默认是void类型。
A.正确
B.错误
正确答案:错误
9、函数不可以自己调用自己。
A.正确
B.错误
正确答案:错误
10、以下程序的输出结果是
void fun(int x,int y,int z)
;{ z=x*x+y*y;}
;main()
;{ int a=31; fun(5,2,a); printf(';%d';,a);}
A.0
B.29
C.31
D.30
正确答案:31
11、有如下程序
;int func(int a,int b)
;{ return(a+b); }
;int main()
;{ int x=2,y=5,z=8,r; r=func((x-y),z); printf(';%d ';,r); return 0;}
;该程序的输出结果是()。
A.10
B.13
C.5
D.15
正确答案:5
12、以下函数fun形参的类型是()。
;float fun(float ;x)
;{ float ;y; y=3*x-4; return ;y;}
A.int
B.不确定
C.void
D.float
正确答案:float
13、有如下程序
;int func(int a,int b)
;{ return(a+b); }
;main()
;{ int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(';%d';,r);}
;该程序的输出结果是()。
A.12
B.13
C.14
D.15
正确答案:15
14、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
正确答案:单向值传递
15、以下程序的输出结果是
void fun(int x,int y,int z)
;{ z=x*x+y*y;}
int main()
;{ int a=31; fun(5,2,a); printf(';%d';,a); return 0;}
A.0
B.29
C.31
D.33
正确答案:31
16、#include
void fun(int b[ ])
{ ;int i; for(i=2;i<;10;i++)
b[i]=i+10;}
void main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10},i; fun(a); for(i=0;i<;10;i++)
printf(';%d ;';,a[i]);}
输出的数据是()。
A.1 2 12 13 14 15 16 17 18 19
B.2 12 13 14 15 16 17 18 19
C.1 2 3 4 5 6 7 8 9 10
D.11 12 13 14 15 16 17 18 19 20
正确答案:1 2 12 13 14 15 16 17 18 19
17、函数定义时,可以不用定义形式参数。此时,定义的函数称为无参函数。
A.正确
B.错误
正确答案:正确
18、在调用函数时,如果实参是数组名,它与对应形参之间的数据传递方式是()。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
正确答案:地址传递
19、以下函数的功能是()。
double aver(double a[5 ])
{ ; double sum=0,average; int i; for(i=0;i<;5;i++)
sum+=a[i]; average=sum/5; return average;}
A.求a数组中5个元素的和
B.求a数组中5个元素的最小值
C.求a数组中5个元素的平均值
D.求数组a中5个元素中的最大值
正确答案:求a数组中5个元素的平均值
20、数组名字作为函数参数,传递的数组的首地址。
A.正确
B.错误
正确答案:正确