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

智慧树知到《程序设计基础(C语言)(山东联盟)》章节测试答案

智慧树知到《程序设计基础(C语言)(山东联盟)》章节测试答案
第一章单元测试
1、以下叙述中正确的是()。
A.用C程序实现的算法可以没有输出但必须要有输入
B.用C程序实现的算法可以没有输入但必须要有输出
C.用C程序实现的算法必须要有输入和输出操作
D.用C程序实现的算法可以既没有输入也没有输出
正确答案:用C程序实现的算法可以没有输入但必须要有输出
2、以下不能定义为用户标识符的是()。
A.Main
B.()10
C.()scanf
D.printf
正确答案:printf
3、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A.连接符
B.小写字母
C.数字字符
D.下划线
正确答案:连接符
4、以下C语言用户标识符中,不合法的是()。
A.()1
B.a()b
C.AaBc
D.a--b
正确答案:a--b
5、结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A.只能完成一些简单的任务
B.只能完成部分复杂的任务
C.只能完成符合结构化的任务
D.可以完成任何复杂的任务
正确答案:可以完成任何复杂的任务
6、以下叙述中正确的是()。
A.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
B.C语言程序将从源程序中第一个函数开始执行
C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D.main可作为用户标识符,用以命名任意一个函数作为主函数
正确答案:C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
7、C语言源程序名的后缀是()。
A..cpp
B..c
C..exe
D..obj
正确答案:.c
8、以下叙述中错误的是()。
A.一个C程序中可以包含多个不同名的函数
B.C程序在书写时,有严格的缩进要求,否则不能编译通过
C.一个C程序只能有一个主函数
D.C程序的主函数必须用main作为函数名
正确答案:C程序在书写时,有严格的缩进要求,否则不能编译通过
9、下列关于C语言用户标识符的叙述中正确的是()。
A.用户标识符中不可以出现中划线,但可以出现下划线
B.用户标识符中可以出现下划线,但不能放在用户标识符的开头
C.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
D.用户标识符中可以出现下划线和中划线(减号)
正确答案:用户标识符中不可以出现中划线,但可以出现下划线
10、下列4个选项中,()是合法的用户自定义标识符。
A.float
B.()isw
C.b-b
D.2a
正确答案:()isw
第二章单元测试
1、下列选项中,()可以将x、y定义成double类型变量,并赋同一初值3.14。
A.double x=y=3.14
B.double x, y=3.14
C.double x=3.14, y=3.14
D.double x, y=2*3.14
正确答案:double x=3.14, y=3.14
2、若变量已正确定义并赋值,表达式()不符合C语言语法。
A.3.14%2
B.a*b/c
C.2, b
D.a/b/c
正确答案:3.14%2
3、下列表达式中值为0的是()。
A.3/5
B.3/5.0
C.3.0/5
D.3%5
正确答案:3/5
4、以下选项中,()是不正确的字符常量。
A.";a"
B.';5;'
C.';\103'
D.';A'
正确答案:";a"
5、以下选项中不正确的整型常量是()。
A.82L
B.1,900
C.253U
D.-100
正确答案:1,900
6、以下正确的字符串常量是()。
A.';123456 '
B.q1234ty
C.HELLO
D.";5111"
正确答案:";5111"
7、假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式

;的表达式是()。
A.1/(a*b*c)
B.1/a*b*c
C.1.0/a/b/c
D.1/a/b/(float)c
正确答案:1.0/a/b/c
8、以下能正确定义且赋初值的语句是()。
A.int n1=n2=10
B.float f=f+1.1
C.char ch=';A'
D.double x=12.3E2.5
正确答案:char ch=';A'
9、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,32+z)后,x的值为()。
A.32
B.16
C.4
D.48
正确答案:48
10、C语言中,运算对象必须是整型数的运算符是()。
A.%
B./
C.*
D.%;和/
正确答案:%
11、有以下程序main(){;char a1=';M';,a2=';m';;printf(";%c";,(a1,a2));}以下叙述中正确的是()。
A.格式说明符不足,编译出错
B.程序运行时产生出错信息
C.程序输出小写字母m
D.程序输出大写字母M
正确答案:程序输出小写字母m
12、在C语言中,下列属于构造类型的是()。
A.字符型
B.整型
C.实型
D.数组类型
正确答案:数组类型
13、设d为字符型变量,下列表达式不正确的是()。
A.d=’a’
B.d=’3’
C.d=99
D.d=”a”
正确答案:d=”a”
14、若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结果为()。
A.输出符号不够,输出不正确值
B.5.800000
C.3.600000,5.800000
D.3.600000
正确答案:5.800000
15、表达式(double)(20/3)的值为()。
A.6
B.2
C.3
D.6.0
正确答案:6.0
16、表达式3.6-5/2+1.2+5%2的值是()。
A.4.3
B.4.8
C.3.8
D.3.3
正确答案:3.8
17、表达式sizeof(";hello";)的值为()。
A.4
B.7
C.5
D.6
正确答案:6
18、设整型变量a值为9,则下列表达式中使b的值不为4的表达式()。
A.b=a/2
B.b=a-5
C.b=8-(3,a-5)
D.b=a%2
正确答案:b=a%2
19、已知ch是字符型变量,下面不正确的赋值语句是()。
A.ch=7+9
B.ch=';m'
C.ch=‘a+b’
D.ch=‘7’+‘9’
正确答案:ch=‘a+b’
20、有以下定义语句,编译时会出现编译错误的是()。
A.char a=';-'
B.char a=';a'
C.char a=';aa'
D.char a=';0'
正确答案:char a=';aa'
第三章单元测试
1、若变量已正确定义并赋值,下面符合C语言语法的表达式是()。
A.a=a+7=c+b
B.int 18.5%3
C.
A.=b+1
D.a=b=c+2
正确答案:a=b=c+2
2、设变量已正确定义并赋值,表达式()不符合C语言语法。
A.a=b=5
B.a=4,3
C.++a
D.int(3.14)
正确答案:int(3.14)
3、下列关于自增运算符++和自减运算符--的叙述中正确的是()。
A.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是任何类型的变量和常量
D.它们的运算对象可以是char型变量、int型变量和float型变量
正确答案:它们的运算对象可以是char型变量、int型变量和float型变量
4、若变量a、i已正确定义,且i已正确赋值,则合法的语句是()。
A.++i
B.a+2=1
C.a=int(i)
D.a=a++=5
正确答案:++i
5、设x为int型变量,则执行以下语句后,x的值为()。x=10;x+=x-=x+x。
A.-20
B.10
C.0
D.20
正确答案:-20
6、以下叙述中正确的是()。
A.使用putchar函数时,必须在之前包含头文件stdio.h
B.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
C.调用printf函数时,必须要有输出项
D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
正确答案:使用putchar函数时,必须在之前包含头文件stdio.h
7、以下程序的输出结果是()。#include ";stdio.h";main(){;int a=10;a=(3*5,a+4);printf(";a=%d";, a);}
A.a=18
B.a=19
C.a=14
D.a=15
正确答案:a=14
8、以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)()。
A.printf(";%c";, ';B';-1)
B.printf(";%d";, ';A';)
C.printf(";%c";,';a';-32)
D.printf(";%c";, 65)
正确答案:printf(";%d";, ';A';)
9、若有以下定义和语句:char c1=';c';,c2=';g';printf(";%d,%c";,c2-c1,c2-';a';+';A';);则输出结果是()。
A.4,G
B.输出项与对应的格式控制不一致,输出结果不确定
C.5,G
D.3,G
正确答案:4,G
10、以下程序段的输出结果是()。float m=34.567;printf(";%3.2f";,m)。
A.提示出错、无结果
B.34.57
C.34.5
D.34.567
正确答案:34.57
11、以下程序的输出结果是()。#include ";stdio.h";main();{;char c=';z';printf(";%c";,c-25);}
A.a
B.Z
C.y
D.z-25
正确答案:a
12、以下程序的输出结果是()。#include ";stdio.h";main();{; int ;k=27;printf(";%d,%o,%x";,k,k,k);}
A.27,0x1b,033
B.27,33,1b
C.27,033,0x1b
D.27,27,27
正确答案:27,33,1b
13、以下程序的输出结果是()。#include ";stdio.h";main();{; double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(";%d ";, d*y);}
A.3.07
B.3
C.0
D.3.2
正确答案:0
14、下列程序执行后的输出结果是(小数点后只写1位)()。#include ";stdio.h";main();{; double d; float f; long k; int i; i=f=k=d=20.0/3; printf(";%d %ld %.1f %.1f ";, i,k,f,d);}
A.6 6 6.7 6.7
B.6 6 6.0 6.0
C.6 6 6.7 6.0
D.6 6 6.0 6.7
正确答案:6 6 6.0 6.7
15、x、y、z被定义为double型变量,若从键盘上给x、y、z输入数据,则正确的输入语句是()。
A.scanf(";%lf%lf%lf";,&;x,&;y,&;z)
B.scanf(";%d%d%d";,&;x,&;y,&;z)
C.scanf(";%.2lf%.2lf%.2lf";,&;x,&;y,&;z)
D.scanf(";%f%f%f";,&;x,&;y,&;z)
正确答案:scanf(";%lf%lf%lf";,&;x,&;y,&;z)
16、设i是int型变量,f是float型变量,若要通过语句“scanf(";i=%d,f=%f";,&;i,&;f);”给i赋值100,f赋值765.12,则正确的输入为()。
A.100 765.12
B.i=100f=765.12
C.100,765.12
D.i=100,f=765.12
正确答案:i=100,f=765.12
17、设有以下定义int a=0;double b=1.25; char c=';A'; #define d 2 则下面语句中错误的是()。
A.a++
B.c++
C.b++
D.d++
正确答案:d++
18、有以下程序;#include ";stdio.h";main();{ int a,b,d=25; a=d/10%9; b=a-1; printf(";%d,%d";,a,b);};程序运行后的输出结果是()。
A.2,0
B.6,1
C.2,1
D.6,0
正确答案:2,1
19、有以下程序;#include ";stdio.h";main();{ char c1=';1';,c2=';2'; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);};当运行时输入:ab<;回车>;后,以下叙述正确的是()。
A.程序将等待用户输入第2个字符
B.变量c1被赋予字符a,c2被赋予字符b
C.变量c1被赋予字符a,c2中将无确定值
D.变量c1被赋予字符a,c2中仍是原有字符2
正确答案:变量c1被赋予字符a,c2被赋予字符b
20、下列程序的输出结果是16.00,请在程序中填空。;#include ";stdio.h";main();{; int a=9,b=2;float x=(), y=1.1,z;z=a/2+b*x/y+1/2;printf(";%5.2f";, z );}
A.7.7
B.5.5
C.6.05
D.6.6
正确答案:6.6
第四章单元测试
1、若x=3,y=z=4,则下列表达式的值分别为()。;(1)z>;=y>;=x?1:0;(2)z>;=y&;&; y>;=x
A.1 ;1
B.0 ;0
C.1 ;0
D.0 ;1
正确答案:0 ;1
2、在嵌套使用if语句时,C语言规定else总是()。
A.和之前与其最近的且不带else的if配对
B.和之前与其具有相同缩进位置的if配对
C.和之前与其最近的if配对
D.和之前的第一个if配对
正确答案:和之前与其最近的且不带else的if配对
3、判断字符型变量ch为大写字母的表达式是()。
A.(ch>;=’A’)&;&;(ch<;=’Z’)
B.(ch>;=’A’)||(ch<;=’Z’)
C.(ch>;=’A’)AND(ch<;=’Z’)
D.’A’<;=ch<;=’Z’
正确答案:(ch>;=’A’)&;&;(ch<;=’Z’)
4、逻辑运算符的运算对象的数据类型()。
A.只能是.T.或.F.
B.只能是0或1
C.只能是整型或字符型
D.任何类型的数据
正确答案:任何类型的数据
5、以下是if语句的基本形式:if(表达式) 语句 ;其中“表达式”()。
A.可以是任意合法的表达式
B.必须是逻辑表达式
C.必须是关系表达式
D.必须是逻辑表达式或关系表达式
正确答案:可以是任意合法的表达式
6、下列条件语句中,功能与其他语句不同的是()。
A.if(a==0) printf(";%d";,y); else printf(";%d";,x)
B.if(a==0) printf(";%d";,x);else printf(";%d";,y)
C.if(a) printf(";%d";,x); else printf(";%d";,y)
D.if (a!=0) printf(";%d";,x); else printf(";%d";,y)
正确答案:if(a==0) printf(";%d";,x);else printf(";%d";,y)
7、以下程序段中与语句“k=a>;b?(b>;c?1:0):0;”功能等价的是()。
A.if((a>;b)&;&;(b>;c))
;k=1
else
;k=0
B.f((a>;b)||(b>;c))
; k=1
;else
;k=0
C.if(a>;b) ;k=1;
; else if(b>;c) ;k=1
;else k=0
D.if(a<;=b);
;k=0
else
;if(b<;=c) ;k=1
正确答案:if((a>;b)&;&;(b>;c))
;k=1
else
;k=0
8、下面程序的输出结果是()。#include ";stdio.h";main(){;int x=40,y=4,z=4;;x=y==z;;printf(";%d ";,x);;x=x==(y-z);;printf(";%d ";,x);}
A.1 ;0
B.4 ;0
C.4 ;1
D.1 ;1
正确答案:1 ;0
9、下列各语句序列中,能够将变量u和s中的较大值赋值到变量t中的是()。
A.t=s ; if(u>;s)t=u
B.t=u ; if(u>;s)t=s
C.if(u>;s)t=u ; t=s
D.if(u>;s)t=s ; else t=u
正确答案:t=s ; if(u>;s)t=u
10、以下程序执行后的输出结果是()。#include ";stdio.h";main(){int a=5,b=4,c=3,d=2;if(a>;b>;c);printf(";%d";,d);else if ((c-1>;=d)==1);printf(";%d";,d+1);else;printf(";%d";,d+2); }
A.2
B.编译时有错误,无结果
C.4
D.3
正确答案:3
11、以下程序执行后的输出结果是()。#include ";stdio.h";main(){;char x=';d'; x=(x>;=';a';&;&;x<;=';z';)?(x-32):x; printf(";%c";, x);}。
A.d
B.D
C.a
D.z
正确答案:D
12、若有定义:float x=1.5; int a=1, b=3, c=2;,则正确的switch语句是()。
A.switch((int)x);
{
; case 1:printf(";*";)
; case 2:printf(";**";)
}
B.switch(a+b){
; case 1:printf(";*";)
; case 1+2:printf(";**";)
}
C.switch(x) ;
{
;case 1.0:printf(";*";)
;case 2.0:printf(";**";)
}
D.switch(a+b){
; case 1:printf(";*";)
; case
C.printf(";**";)
}
正确答案:switch(a+b){
; case 1:printf(";*";)
; case 1+2:printf(";**";)
}
13、以下程序的输出结果是()。#include ";stdio.h";main(){;int a=2,b=2,c;c=a>;=b;printf(";c=%d";,c);}
A.c=2
B.c=0
C.c=1
D.不确定
正确答案:c=1
14、下列程序执行后的输出结果是()。#include ";stdio.h";main(){ ;int n=0,m=1,x=2;if(!n) x-=1;if(m) x-=2;if(x) x-=3;printf(";%d";,x);}
A.-1
B.-3
C.-4
D.1
正确答案:-4
15、以下程序执行后的输出结果是()。#include ";stdio.h";main(){ ; int p,a=5; if(p=a!=0); printf(";%d";,p); else;printf(";%d";,p+2);}
A.1
B.3
C.5
D.0
正确答案:1
16、以下程序的运行结果是()。#include ";stdio.h";main(){; int a=2,b=3,c ;; c=a;; if(a>;b) c=1;; else if(a==b);c=0;;else ;;c=-1;; printf(";%d";,c);}。
A.0
B.-1
C.2
D.1
正确答案:-1
17、有以下程序#include ";stdio.h";main(){int x;scanf(";%d";,&;x);if(x>;15) printf(";%d ;";,x-5);if(x>;10) printf(";%d ;";,x);if(x>;5) printf(";%d\n";,x+5);} 若程序运行时从键盘输入12<;回车>;,则输出结果为()。
A.17
B.12
C.7
D.12 ; 17
正确答案:12 ; 17
18、若有表达式(p)?(--x):(++y),则其中与w等价的表达式是()。
A.p!=1
B.p==0
C.p!=0
D.p==1
正确答案:p!=0
19、有以下程序#include ";stdio.h";main(){;int a, b, c;;a=10; b=50; c=30;;if (a>;b) a=b, b=c; c=a;;printf(";a=%d b=%d c=%d";, a,b,c); } 程序的输出结果是()。
A.a=50 b=30 c=50
B.a=10 b=30 c=10
C.a=10 b=50 c=30
D.a=10 b=50 c=10
正确答案:a=10 b=50 c=10
20、有以下程序#include ";stdio.h";main(){;int x=1, y=2, z=3;;if(x>;y); if(y<;z) ;printf(";%2d";, z+1);;else ; printf(";%2d";, y+1);;printf(";%2d";, x+1);} ;程序的运行结果是()。
A.1
B.4 ;2
C.3 ;2
D.2
正确答案:2
第五章单元测试
1、以下叙述中正确的是()。
A.do-while语句构成的循环只能用break语句退出。
B.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
C.do-while语句构成的循环不能用其他语句构成的循环来代替。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环。
正确答案:用do-while语句构成的循环,在while后的表达式为零时结束循环。
2、以下程序执行后的输出结果是()。#include ";stdio.h";main(){;int x=0,y=5,z=3;;while(z>;0&;&;x<;5);{y=y-1;z--; x++;};printf(";%d,%d,%d";,x,y,z);;}。
A.5,2,5
B.3,2,0
C.3,2,-1
D.4,3,-1
正确答案:3,2,0
3、以下程序执行后的输出结果是()。#include ";stdio.h";main(){int i;;for (i=0;i<;3;i++);switch(i);{ ;case 1:printf(";%d ";,i);; case 2:printf(";%d ";,i);break;;default:printf(";%d ";,i);; }}
A.0 1 1
B.0 1 2
C.1 2 0
D.0 1 1 2
正确答案:0 1 1 2
4、以下程序执行后的输出结果是()。#include ";stdio.h";main(){int i=0,s=0;;do {;if(i%2) {i++;continue;};i=i+2;;s+=i;;}while(i<;7);;printf(";%d";,s);}
A.28
B.12
C.21
D.20
正确答案:20
5、下面的程序运行后,输出的结果是()。#include ";stdio.h";main(){; int x=3; do; {;printf (";%d";, x-=2); } ; while (!(--x));}
A.1和-2
B.3和0
C.1
D.死循环
正确答案:1和-2
6、下面的程序运行后,输出的结果是()。#include ";stdio.h";main(){;int n=5,s=0;while(n);{;s+=n;n--; };printf(";%d";,s);}
A.0
B.5
C.15
D.10
正确答案:15
7、以下程序执行后的输出结果是()。#include ";stdio.h";main(){ int i,s=0;;for(i=1;i<;10;i+=2) s+=i+1;;printf(";%d";,s);}
A.自然数1~10中的偶数之和
B.自然数1~9的累加和
C.自然数1~10的累加和
D.自然数1~9中的奇数之和
正确答案:自然数1~10中的偶数之和
8、以下程序执行后的输出结果是()。#include ";stdio.h";main(){ int i,n=0;;for(i=2;i<;5;i++);{ do ;;{ if(i%3) continue;;n++;;} while(!i);;n++;;};printf(";n=%d";,n);;}
A.n=3
B.n=2
C.n=4
D.n=5
正确答案:n=4
9、下面程序的功能是输出以下形式的图案,应在下划线处填入的是()。****
************#include ";stdio.h";main(){ int i,j;;for(i=1;i<;=4;i++);{;;for(j=1;j<;=;j++) ;printf(";*";);;printf(";";);;};}
A.i+2
B.i
C.2*i-1
D.2*i+1
正确答案:2*i-1
10、以下程序运行后的输出结果是()。#include ";stdio.h";main(){;int i=0,s=0;;for(); { if(i==3||i==5) continue;if (i==6) break;i++;s+=i; };printf(";%d";,s); }
A.程序进入死循环
B.21
C.10
D.13
正确答案:程序进入死循环
11、以下程序的输出结果是()。#include ";stdio.h";main();{ ;; int i;; for(i=';A';i<;';I';i++,i++) ;printf(";%c";,i+32);; printf("; ";);;}()。
A.abcdefgh
B.aceg
C.acegi
D.编译不通过,无输出
正确答案:aceg
12、运行以下程序后,如果从键盘上输入“65 ,14<;Enter>;”,则输出结果为()。#include ";stdio.h";main(){ ;int m, n;;printf(";Enter m,n;";);;scanf(";%d,%d";,&;m,&;n);;while (m!=n);{ while (m>;n)m-=n;;while (n>;m)n-=m;;};printf(";m=%d";,m);}
A.m=1
B.m=2
C.m=3
D.m=0
正确答案:m=1
13、若变量已正确定义,要求程序段完成求6!的计算,不能完成此操作的程序段是()。
A.i=1;p=1;do{p*=i; i++; }while(i<;=6)
B.for(i=1,p=1;i<;=6;i++) p*=i
C.for(i=1;i<;=6;i++){ p=1; p*=i;}
D.i=1;p=1;while(i<;=6){p*=i; i++;}
正确答案:for(i=1;i<;=6;i++){ p=1; p*=i;}
14、设x和y均为int型变量,则执行以下的循环后,y值为()。for(y=1,x=1;y<;=50;y++){ if(x==10) ;break; if(x%2==1);{ x+=5; continue;};x-=3;}
A.5
B.6
C.4
D.7
正确答案:6
15、设j为int型变量,则下面for循环语句的执行结果是()。;for(j=10;j>;3;j--);{ ;if(j%3) j--;; --j;--j;; printf(";%d ;";,j);;}
A.6 ;2
B.7 ;3
C.6 ;3
D.7 ;4
正确答案:7 ;4
16、有以下程序#include ";stdio.h";main(){ ;;int a=1,b; for(b=1;b<;=3; b++) ;{ ;;if(a%2==1){a+=3;continue; } ;a-=2; } ;; printf(";%d";,a); }程序运行后的输出结果是()。
A.3
B.0
C.4
D.2
正确答案:0
17、有以下程序段;int;n,t=0,s=0; scanf(";%d";,&;n); do;{s=s+t;t=t-2;};while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是()。
A.任意负奇数
B.任意正偶数
C.任意负偶数
D.任意正奇数
正确答案:任意负偶数
18、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。
A.while((ch=getchar())==′N′) printf(";%c";,ch)
B.while((ch=getchar())!=′N′) printf(";%c";,ch)
C.while(ch=getchar()==′N′) printf(";%c";,ch)
D.while(ch=getchar()!=′N′) printf(";%c";,ch)
正确答案:while((ch=getchar())!=′N′) printf(";%c";,ch)
19、有以下程序#include <;stdio.h>;main(){ int i, j, n=0;for(i=3; i>;=1; i--)for(j=1; j<;=2; j++) n++;printf(";%d";, n);} ;程序的运行结果是()。
A.6
B.3
C.0
D.2
正确答案:6
20、有以下程序#include <;stdio.h>;main(){ ;int i=5;;do;{ ;if (i%3==1);if (i%5==2);{ printf(";*%d";, i); break;};i++;;} ;while(i!=0);;printf(";";);} ;程序的运行结果是()。
A.*3*5
B.*2*6
C.*5
D.*7
正确答案:*7
第六章单元测试
1、若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};;char c=';a';,d,g;则数值为4的表达式是()。
A.a[';d';-c]
B.a[';d';-';c';]
C.a[4]
D.a[g-c]
正确答案:a[';d';-c]
2、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是()。
A.m[--i]
B.m[m[i]]
C.m[2*2]
D.m[m[0]]
正确答案:m[m[0]]
3、以下对一维整型数组a的正确说明是()。
A.int n=10,a[n]
B.int;a[ ]
C.int n; scanf(";%d";, &;n); int a[n]
D.#define SIZE 10;
int a[SIZE]
正确答案:#define SIZE 10;
int a[SIZE]
4、若要定义一个具有5个元素的整型数组,以下错误的定义语句是()。
A.int;c[2+3]
B.int;i=5, d[i]
C.int;b[]={0,0,0,0,0}
D.int;a[5]={0}
正确答案:int;i=5, d[i]
5、给出以下定义:char x[]=";abcdefg";char y[]={';a';, ';b';, ';c';, ';d';, ';e';, ';f';, ';g';};则正确的叙述为()。
A.数组X的长度大于数组Y的长度
B.数组x和数组Y的长度相同
C.数组X和数组Y等价
D.数组X的长度小于数组Y的长度
正确答案:数组X的长度大于数组Y的长度
6、下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是()。
A.char a[]={';C';, '; ';, ';p';, ';r';, ';o';, ';g';, ';r';, ';a';, ';m'; , ';\0';}
B.char a[10]; strcpy(a, ";C program";)
C.char a[10]; a= ";C program"
D.char a[10]={";C program";}
正确答案:char a[10]; a= ";C program"
7、下面程序段的运行结果是()。char c[5]={ ';a';, ';b';, ';\0';, ';c';, ';\0';}; printf(";%s";, c)。
A.ab c
B.';a'; ';b'
C.ab\0c\0
D.ab
正确答案:ab
8、若有如下定义和语句:char s[12]= ";a book!";;printf(";%d";, strlen(s) );则输出结果是()。
A.7
B.9
C.8
D.12
正确答案:7
9、以下定义数组的语句中错误的是()。
A.int num[][4]={1, 2, 3, 4, 5, 6}
B.int num[][3]={{1, 2}, 3, 4, 5, 6}
C.int num[]={1, 2, 3, 4, 5, 6}
D.int num[2][4]={{1, 2}, {3, 4}, {5, 6}}
正确答案:int num[2][4]={{1, 2}, {3, 4}, {5, 6}}
10、执行下面的程序段后,变量k中的值为()。int k=3, b[10]={1};b[0]=k; k=b[1]*10;
A.0
B.30
C.10
D.不定值
正确答案:0
11、以下程序的输出结果是()。#include ";stdio.h";main(){;int ;n[5]={0},i,k=3;for(i=0;i<;k;i++) ;n[i]=n[i]+1;printf(";%d\n ";,n[k]);}
A.不确定的值
B.1
C.2
D.0
正确答案:0
12、以下程序的输出结果是()。#include ";stdio.h";main(){ ;int ;a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<;3;i++);for(j=0;j<;=i;j++) s+=a[i][j];;printf(";%d";,s);}
A.20
B.21
C.19
D.18
正确答案:18
13、以下程序执行后的输出结果是()。#include ";stdio.h";main(){ char a[]=";abcdefg";, b[10]=";abcdefg";;printf(";%d %d";, sizeof(a) , sizeof(b));}
A.8 8
B.10 10
C.7 7
D.8 10
正确答案:8 10
14、当执行下面的程序且输入ABC时,输出的结果是()。#include <;stdio.h>;#include <;string.h>;main(){ ;char ss[10]=";123456789";;gets(ss);printf(";%s";,ss);}
A.ABC456789
B.ABC9
C.123456ABC
D.ABC
正确答案:ABC
15、以下程序执行后的输出结果是()。#include ";stdio.h";main();{ char ;ch[20]={";7856ab21";};;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);;}
A.7856
B.752
C.75
D.785
正确答案:75
16、以下程序运行的输出结果是()。#include ";stdio.h";main();{ char ch[2][5]={";789";,";256";};; int i,j,s=0;; for(i=0;i<;2;i++); for(j=0;j<;2;j++); s=10*s+ch[i][j]-';0';; printf(";%d\n";,s);;}。
A.7825
B.789
C.7889256
D.72
正确答案:7825
17、以下程序的输出结果是()。#include<;stdio.h>;main(){ int i,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.20
B.21
C.22
D.23
正确答案:21
18、有以下程序#include<;stdio.h>;main(){ int i, t[][3]={9,8,7,6,5,4,3,2,1};;for(i=0; i<;3; i++) printf(";%d ";, t[2-i][i]);}程序执行后的输出结果是()。
A.3 5 7
B.7 5 3
C.3 6 9
D.7 5 1
正确答案:3 5 7
19、设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。
A.不确定
B.1
C.2
D.0
正确答案:0
20、有以下程序#include<;stdio.h>;#include<;string.h>;main(){ char s[]=";12345";;printf(";%d,%d";, strlen(s),sizeof(s));}执行后输出结果是()。
A.6,6
B.赋初值的字符串有错
C.6,7
D.5,6
正确答案:5,6
第七章单元测试
1、 下列各函数首部中,正确的是()。
A.void play(var :Integer, var
B.Integer)
B.void play(int a, b)
C.void play(int a, int b)
D.Sub play(a as integer, b as integer)
正确答案:void play(int a, int b)
2、在C语言中,函数值类型的定义可以是默认类型,此时函数值的默认类型是()。
A.float
B.void
C.double
D.int
正确答案:int
3、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。
A.地址传递
B.传递方式由用户指定
C.由实参传给形参,再由形参传回实参
D.单向值传递
正确答案:单向值传递
4、在C语言程序中,有关函数的叙述正确的有()。
A.函数的定义和调用均可以嵌套
B.函数的定义可以嵌套,但函数的调用不可以嵌套
C.函数的定义不可以嵌套,但函数的调用可以嵌套
D.函数的定义和调用均不可以嵌套
正确答案:函数的定义不可以嵌套,但函数的调用可以嵌套
5、以下叙述中不正确的是()。
A.函数中的形式参数是局部变量
B.在不同的函数中可以使用相同名字的变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
正确答案:在一个函数内的复合语句中定义的变量在本函数范围内有效
6、有如下函数调用语句:func(recl, rec2+rec3, (rec4,rec5)); 该函数调用语句中,含有的实参个数是()。
A.4
B.有语法错误
C.5
D.3
正确答案:3
7、以下叙述中正确的是()。
A.函数的形参都属于全局变量
B.全局变量的作用域一定比局部变量的作用域范围大
C.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
D.静态(static)类别变量的生存期贯穿于整个程序的运行期间
正确答案:静态(static)类别变量的生存期贯穿于整个程序的运行期间
8、以下程序的运行结果是()。#include ";stdio.h";main()
{;int a=24,b=16,c;c=abc(a,b);printf(";%d";,c);}int abc(int u,int v){; int w;while(v);{ w=u%v;u=v;v=w; };return u;}
A.9
B.8
C.6
D.7
正确答案:8
9、以下程序的运行结果是()。#include ";stdio.h";int f1(int x,int y){ ;return x>;y? x :y; }int f2(int x,int y){ ;return x>;y? y :x ; }main(){ ; int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e;printf(";%d,%d,%d";,d,f,e);}
A.5,3,4
B.3,5,4
C.3,4,5
D.5,4,3
正确答案:5,4,3
10、以下程序的运行结果是()。#include ";stdio.h";void f(int x,int y){ int t;if(x<;y){ t=x; x=y; y=t; }}main(){ int a=5,b=6,c=7; f(a,b); f(a,c); f(b,c);printf(";%d,%d,%d";,a,b,c);}
A.7,5,6
B.5,6,7
C.7,6,5
D.5,7,6
正确答案:5,6,7
11、以下程序的运行结果是()。#include ";stdio.h";int f(){; static int i=0;int s=1;s+=i; i++;; return s;}main(){;int i,a=0;for(i=0;i<;5;i++) a+=f();printf(";%d";,a);}
A.15
B.24
C.20
D.25
正确答案:15
12、以下程序的运行结果是()。#include ";stdio.h";int func(int a,int b){return(a+b);}main(){; int x=2,y=5,z=7,r; r=func(func(x,y),z); printf(";%d";,r);}
A.13
B.12
C.14
D.15
正确答案:14
13、以下程序的运行结果是()。#include ";stdio.h";f(int a){;int b=0;static int c = 3;b++; c++;return(a+b+c);}main(){;int a=2,i;for(i=0;i<;3;i++) printf(";%4d";,f(a));}
A.7; 7; 7
B.7; 8; 9
C.7; 10; 13
D.7; 9; 11
正确答案:7; 8; 9
14、以下程序的运行结果是()。#include ";stdio.h";int a, b;void fun(){ a=100; b=200; }main(){; int a=5, b=7; fun(); printf(";%d %d ";, a,b);}
A.200 100
B.100 200
C.7; 5
D.5; 7
正确答案:5; 7
15、以下程序的运行结果是()。#include ";stdio.h";int x=3;main(){ int i;void nore();for(i=1;i<;x;i++) nore();}void nore(){ static int x=1;x*=x+1;printf(";%d ";,x);}。
A.2 2
B.2 6
C.3 3
D.2 5
正确答案:2 6
16、以下程序执行后的输出结果是()。#include ";stdio.h";void swap (int c0,int c1){ int t;t=c0;c0=c1;c1=t;}main(){ int b[2]={7,8};swap(b[0],b[1]);printf(";%d; %d";,b[0],b[1]);}
A.8; 7
B.7; 7
C.7; 8
D.8; 8
正确答案:7; 8
17、以下程序执行后的输出结果是()。#include ";stdio.h";void func1(int i);void func2(int i);char st[]=";hello,friend!";void func1(int i){;printf(";%c";,st[i]);if(i<;3){i+=2;func2(i);}}void func2(int i){ ; printf(";%c";,st[i]);if(i<;3){i+=2;func1(i);}}main(){;int i=0;func1(i);printf(";";);}
A.hello
B.hel
C.Hlm
D.hlo
正确答案:hlo
18、以下函数值的类型是()。fun(double x){;;double y;;y=3*x-4;;return y;}
A.void
B.double
C.int
D.不确定
正确答案:int
19、下面程序的输出结果是()。#include ";stdio.h";int m=6;int fun(int x, int y){;int m=3;return(x*y-m);}
main(){;int a=9, b=8;printf(";%d";, fun(a, b)/m);}
A.11
B.24
C.12
D.32
正确答案:11
20、若有以下程序,执行后输出结果是()。#include ";stdio.h";int f(int x, int y){return ((y-x)*x);}main(){ int a=3, b=4, c=5, d;d=f(f(3, 4), f(3, 5));printf(";%d";, d);}
A.11
B.8
C.10
D.9
正确答案:9