第1周 程序设计入门
1 (2012.03全国二级C题)以下叙述中错误的是( )
一个C程序中可以包含多个不同名的函数
一个C程序只能有一个主函数
喵查答案:C程序在书写时,有严格的缩进要求,否则不能编译通过
C程序的主函数必须用main作为函数名
2 程序设计的基本步骤主要包括( )
喵查答案:确定数据结构,算法描述、编写程序以及程序测试
确定程序设计方法,描述数据方式、编写程序以及程序调试
确定程序实现算法、编写程序以及程序测试
数据描述,算法描述、编写程序
3 程序设计语言包括( )
高级语言
喵查答案:机器语言、汇编语言、高级语言
机器语言
汇编语言
4 实现向显示器输出信息的函数是
scanf
printfun
print
喵查答案:printf
5 如下关于C语言基本语句的说法中正确的是?
基本语句必须在一行中
喵查答案:基本语句必须以分号;作为结束标志
基本语句以回车符作为结束标志
#include 属于基本语句
6 C语言源程序中如何实现注释
喵查答案:通过 /* */ 界定的内容为注释内容。例如 /* 测试 */
一行中\\开始的剩余部分为注释内容。例如 int a=10;\\测试
一行中#开始的剩余部分为注释内容。例如 int a=10;#测试
一行中@开始的剩余部分为注释内容。例如 int a=10;@测试
7 用C语言编写的程序( )
可直接被计算机硬件执行
喵查答案:经过编译方式翻译成其机器指令,并链接后可以执行
经过解释方式翻译成其机器指令后可以执行
以上说法都不对
8 一个C语言程序如何执行( )
主过程开始执行
喵查答案:主函数main()开始执行
子程序开始执行
从主程序开始执行
9 C语言中界定函数开始与结束的符号是
喵查答案:{ }
[ ]
( )
10 如下属于C语言的基本语句的是?
#include
x=sin(100)
x=1+2
喵查答案:1+2;
11 C语言程序中主函数的名称是
喵查答案:main
MAIN
Main
WinMain
12 (2007.04全国二级C题)下列叙述中错误的是( )
计算机不能直接执行用C语言编写的源程序
C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
喵查答案:后缀为.obj和.exe的二进制文件都可以直接运行
13 C语言程序由函数构成,且至少包括一个main函数,关于main函数定义的说法正确的是?( )
必须在源程序的开始处定义
必须在源程序的结尾处定义
函数名称可以为Main、MAIN、main
喵查答案:一个C语言程序仅仅有一个main函数
14 以下叙述中正确的是( )
用C程序实现的算法必须要有输入和输出操作
用C程序实现的算法可以没有输出但必须要有输入
喵查答案:用C程序实现的算法可以没有输入但必须要有输出
用C程序实现的算法可以既没有输入也没有输出
15 面向过程的高级语言包括( )
C,JAVA
喵查答案:C,BASIC
C++.NET,Python
C#,LISP
第2周 信息编码与基本运算
1 sizeof(float)是( )
一个双精度型表达式
喵查答案:一个整型表达式
一个函数调用
一个不合法的表达式
2 不合法的c语言标识符是( )
_abc
MD
Int
喵查答案:x.c
3 可以实现绝对值运算的|x|的表达式是?(假设x已经声明float类型)
喵查答案:(x<0?-x:x)
(x>0?-x:x)
(x<0&&x=-x)
(x>0||x=-x)
4 判断char型变量c1是否为大写字母的正确表达式是( )
‘A'<=c1<='Z'
(c1>=’A’)&(c1<='Z')
喵查答案:(c1>=’A’)&&(c1<='Z')
(‘A’=c1)
5 (2010.09全国二级C题)有定义:int a; long b; double x,y; 则以下选项中正确的表达式是( )
喵查答案:a%(int)(x-y)
a=x/10=y;
(a*y)%b
y=x+y=x
6 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()
大写字母
喵查答案:减号、加号、乘号、除号
数字字符
下划线
7 关于如下语句的输出结果为const int a=100;a=a+100;printf(“%d”,a);
100
200
300
喵查答案:程序存在错误无法运行
8 若有char ch=’A;则表达式ch=(ch>=’A’&&ch<='Z')?(ch+32):ch的值是( )
A
喵查答案:a
Z
z
9 (2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()
喵查答案:只有整型数在允许范围内能准确无误的表示,实型数会有误差
只要在允许范围内整型数和实型数都能精确的表示
只有实型数在允许范围内能精确无误的表示,整型数会有误差
只有用八进制表示的数才不会有误差
10 不正确的变量声明是( )
unsigned int ui
short int s
喵查答案:double int a
int I,j,k
11 正确表达式数学不等式 10<x<100的C语言表达式是?(假设x已经声明)()
10<x<100
10>x>100
喵查答案:10<x && x<100
10<x and x<100
12 c语言提供的合法的数据类型关键字是()
Int
喵查答案:long
CHAR
integer
13 已知int a,b,c;经过如下运算后c的值()a=b=c=2;c=a&++b;
0
1
喵查答案:2
3
14 已知int a,b,c;如下运算a=b=c=100;++a>b++||c++;变量c的值是()
喵查答案:100
200
101
201
15 表达式 (x=100,y=200)+!(0<x<20)的值为?(假设x,y已经声明为int类型)
100
喵查答案:200
101
201
16 正确表达式数学不等式 |x|<100 且x不等于0的C语言表达式是?(假设x已经声明)()
喵查答案:-100<x && x<100 && x!=0
-100<x && x<100 && x0
-100<x<0 && 0<x<100
-100<x<0 || 0<x<100
17 以下表达式不等价的一组是( )
a&=b与a=a&b
a|=b与a=a|b
喵查答案:a!=b与a=a!b
a^=b与a=a^b
18 若有int n=6;表达式n%=n+=n-=n*n的值为( )
10
喵查答案:0
12
6
19 以下能正确声明整型变量x,y和z并为其赋初值5的语句是( )
int x=y=z=5;
int x,y,z=5;
喵查答案:int x=5,y=5,z=5;
x=y=z=5;
20 已知char a=’\17’,变量a中( )
喵查答案:存储1个字符
存储2个字符
存储3个字符
错误的变量声明与初始化
21 sizeof(float)是( )
一个双精度型表达式
喵查答案:一个整型表达式
一个函数调用
一个不合法的表达式
22 不合法的c语言标识符是( )
_abc
MD
Int
喵查答案:x.c
23 可以实现绝对值运算的|x|的表达式是?(假设x已经声明float类型)
喵查答案:(x<0?-x:x)
(x>0?-x:x)
(x<0&&x=-x)
(x>0||x=-x)
24 判断char型变量c1是否为大写字母的正确表达式是( )
‘A'<=c1<='Z'
(c1>=’A’)&(c1<='Z')
喵查答案:(c1>=’A’)&&(c1<='Z')
(‘A’=c1)
25 (2010.09全国二级C题)有定义:int a; long b; double x,y; 则以下选项中正确的表达式是( )
喵查答案:a%(int)(x-y)
a=x/10=y;
(a*y)%b
y=x+y=x
26 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()
大写字母
喵查答案:减号、加号、乘号、除号
数字字符
下划线
27 关于如下语句的输出结果为const int a=100;a=a+100;printf(“%d”,a);
100
200
300
喵查答案:程序存在错误无法运行
28 若有char ch=’A;则表达式ch=(ch>=’A’&&ch<='Z')?(ch+32):ch的值是( )
A
喵查答案:a
Z
z
29 (2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()
喵查答案:只有整型数在允许范围内能准确无误的表示,实型数会有误差
只要在允许范围内整型数和实型数都能精确的表示
只有实型数在允许范围内能精确无误的表示,整型数会有误差
只有用八进制表示的数才不会有误差
30 不正确的变量声明是( )
unsigned int ui
short int s
喵查答案:double int a
int I,j,k
31 正确表达式数学不等式 10<x<100的C语言表达式是?(假设x已经声明)()
10<x<100
10>x>100
喵查答案:10<x && x<100
10<x and x<100
32 c语言提供的合法的数据类型关键字是()
Int
喵查答案:long
CHAR
integer
33 已知int a,b,c;经过如下运算后c的值()a=b=c=2;c=a&++b;
0
1
喵查答案:2
3
34 已知int a,b,c;如下运算a=b=c=100;++a>b++||c++;变量c的值是()
喵查答案:100
200
101
201
35 表达式 (x=100,y=200)+!(0<x<20)的值为?(假设x,y已经声明为int类型)
100
喵查答案:200
101
201
36 正确表达式数学不等式 |x|<100 且x不等于0的C语言表达式是?(假设x已经声明)()
喵查答案:-100<x && x<100 && x!=0
-100<x && x<100 && x0
-100<x<0 && 0<x<100
-100<x<0 || 0<x<100
37 以下表达式不等价的一组是( )
a&=b与a=a&b
a|=b与a=a|b
喵查答案:a!=b与a=a!b
a^=b与a=a^b
38 若有int n=6;表达式n%=n+=n-=n*n的值为( )
10
喵查答案:0
12
6
39 以下能正确声明整型变量x,y和z并为其赋初值5的语句是( )
int x=y=z=5;
int x,y,z=5;
喵查答案:int x=5,y=5,z=5;
x=y=z=5;
40 已知char a=’\17’,变量a中( )
喵查答案:存储1个字符
存储2个字符
存储3个字符
错误的变量声明与初始化
41 (2011.09全国二级C题)以下选项中关于C语言常量的叙述错误的是()。
所谓常量,是指在程序运行过程中,其值不能被改变的量
常量分为整型常量、实型常量、字符常量和字符串常量
常量可分为数值型常量和非数值型常量
喵查答案:经常被使用的变量可以定义成常量
42
关于如下语句的输出结果为
double a=12.34;
int c=0;
c=((int)a)++;
printf(“%d”,c);
12.34
12
13
喵查答案:程序存在错误无法运行
43 关于如下语句的输出结果为double a=12.34;int c=0;c=(int)a++;printf(“%d”,c);
12.34
13.34
喵查答案:12
13
44 (2009.09全国二级C题)表达式(int)((double)9/2)-(9)%2的计算结果是( )
0
喵查答案:3
4
5
45 设有定义:int x=2;,以下表达式中,值不为6的是
x*=x+1
x++,2*x
x*=(1+x)
喵查答案:2*x, x+=2
46 以下选项中不属于C语言的基本类型的是( )
signed short int
unsigned long int
unsigned int
喵查答案:long char
第3周 常用函数库与顺序结构
1 假设 float d=12.3456,则表达式printf(” % 10.2f”,(int)d/10.0)的输出结果为
12.00
12.34
1.23
喵查答案:1.20
2 假设 unsigned u=0,从键盘正确读入一个整数给u的语句是
scanf(“%d”,u);
喵查答案:scanf(“%u”,&u);
scanf(“%ud”,u);
scanf(“%ld”,&u);
3
数字字符0的ASCII值为48,若有以下程序
main()
{
char a=’a’,b=’b’;
printf(“%c,”,b++);
printf(“%d\n”,b-a);
}
程序运行后的输出结果是
0,2
c,2
喵查答案:b,2
2,50
4 有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是( )
132
1,3,2
喵查答案:a=1,b=3,c=2
a=1 b=3 c=2
5 若运行以下程序时,从键盘输入25,15,10,则输出结果为( )。 void main() { int a1,a2,a3; scanf(“%d%d%d”,&a1,&a2,&a3);printf(“a1+a2+a3=%d\n”,a1+a2+a3) ;}
a1+a2+a3=50
a+a2+a3=25
a1+a2+a3=10
喵查答案:不确定值
6
(2012.09全国二级C题)若有定义和语句:
int a,b;
scanf(“%d,%d”,&a,&b);
以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。
3,5,
3,5,4
喵查答案:3 5
3,5
7 如下程序段执行的结果为 int a=100,b=200,c; c=!a+(b>>2) % 10; printf(“%d”,c);
喵查答案:0
10
80
101
8
有以下程序
void main(){
int a=6,b=7;
printf(“a=%%d,b=%%d”,a,b);
}
输出结果是( )。
a=b,y=3
喵查答案:a=%d,b=%d
a=%6,b=%7
a=%%6,b=%%d
9 下面语句中正确C语言语句是( )
printf(“%c\n”,”student”);
printf(“%c\n”,”c”);
printf(“%s\n”,&a);
喵查答案:printf(“%s\n”,”hello”);
10
如下程序段执行的结果为
int a=100,b=200,c;
c= a>b&&b+=100;
c=b++;
printf(“%d”,c);
喵查答案:200
201
300
301
11 如下程序段执行的结果为int a=100,b=0,c;c=(b=100)+ (b>0) *a++;printf(“%d”,c);
喵查答案:200
201
202
203
12 假设 float d=12.3456,则表达式printf(” % 10.2f”,d)的输出结果为
喵查答案:12.35
12.34
1.20
12.0
13 若整型变量 int a=1,b=2,c=3,d=4;则条件表达式a<b?a:c<d?c:d的值
喵查答案:1
2
3
4
14 C语言程序设计中,以下叙述中正确的是()。
喵查答案:函数表达式printf(“%d%d”,1,2+100)是正确的表达式
如果a为整型变量,可以通过scanf(“%f”,&a)为a赋值
在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
15 c语言标准输出文件stdout是指( )
键盘
喵查答案:显示器
软盘
硬盘
16 有以下程序main(){ int a,b,d=25; a=d/10%9; b=a&&(-1); printf(“%d,%d\n”,a,b);}程序运行后的输出结果是
6,1
喵查答案:2,1
6,0
2,0
17
阅读程序,指出输出结果是( )。
void main()
{
char c1,c2,c3;
c1=’a’;
c2=’z’;
c3=c2-c1;
printf(“%c,%c,%d “,c1,c2,c3);
}
喵查答案:a ,z ,25
A,Z,25
a,z,\
97,122,25
18 x、y、z被声明为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
INPUT x、y、z;
喵查答案:scanf(“%d%d%d”,&x,&y,&z);
scanf(“%d%d%d”,x,y,z);
read(“%d%d%d”,&x,&y,&z);
19 C语言设计中下列描述中正确的是( )
喵查答案:所有的输入/输出都是通过调用库函数处理的
所有的输入/输出都是通过输入/输出语句实现的
getchar和putchar可以省略#include
在输入/输出格式中的*表示跳过数据的含义
20 c语言中标准输入文件stdin是指( )
喵查答案:键盘
显示器
鼠标
硬盘
21 假设 float d=12.3456,则表达式printf(” % 10.2f”,(int)d/10.0)的输出结果为
12.00
12.34
1.23
喵查答案:1.20
22 假设 unsigned u=0,从键盘正确读入一个整数给u的语句是
scanf(“%d”,u);
喵查答案:scanf(“%u”,&u);
scanf(“%ud”,u);
scanf(“%ld”,&u);
23
数字字符0的ASCII值为48,若有以下程序
main()
{
char a=’a’,b=’b’;
printf(“%c,”,b++);
printf(“%d\n”,b-a);
}
程序运行后的输出结果是
0,2
c,2
喵查答案:b,2
2,50
24 有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是( )
132
1,3,2
喵查答案:a=1,b=3,c=2
a=1 b=3 c=2
25 若运行以下程序时,从键盘输入25,15,10,则输出结果为( )。 void main() { int a1,a2,a3; scanf(“%d%d%d”,&a1,&a2,&a3);printf(“a1+a2+a3=%d\n”,a1+a2+a3) ;}
a1+a2+a3=50
a+a2+a3=25
a1+a2+a3=10
喵查答案:不确定值
26
(2012.09全国二级C题)若有定义和语句:
int a,b;
scanf(“%d,%d”,&a,&b);
以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。
3,5,
3,5,4
喵查答案:3 5
3,5
27 如下程序段执行的结果为 int a=100,b=200,c; c=!a+(b>>2) % 10; printf(“%d”,c);
喵查答案:0
10
80
101
28
有以下程序
void main(){
int a=6,b=7;
printf(“a=%%d,b=%%d”,a,b);
}
输出结果是( )。
a=b,y=3
喵查答案:a=%d,b=%d
a=%6,b=%7
a=%%6,b=%%d
29 下面语句中正确C语言语句是( )
printf(“%c\n”,”student”);
printf(“%c\n”,”c”);
printf(“%s\n”,&a);
喵查答案:printf(“%s\n”,”hello”);
30
如下程序段执行的结果为
int a=100,b=200,c;
c= a>b&&b+=100;
c=b++;
printf(“%d”,c);
喵查答案:200
201
300
301
31 如下程序段执行的结果为int a=100,b=0,c;c=(b=100)+ (b>0) *a++;printf(“%d”,c);
喵查答案:200
201
202
203
32 假设 float d=12.3456,则表达式printf(” % 10.2f”,d)的输出结果为
喵查答案:12.35
12.34
1.20
12.0
33 若整型变量 int a=1,b=2,c=3,d=4;则条件表达式a<b?a:c<d?c:d的值
喵查答案:1
2
3
4
34 C语言程序设计中,以下叙述中正确的是()。
喵查答案:函数表达式printf(“%d%d”,1,2+100)是正确的表达式
如果a为整型变量,可以通过scanf(“%f”,&a)为a赋值
在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
35 c语言标准输出文件stdout是指( )
键盘
喵查答案:显示器
软盘
硬盘
36 有以下程序main(){ int a,b,d=25; a=d/10%9; b=a&&(-1); printf(“%d,%d\n”,a,b);}程序运行后的输出结果是
6,1
喵查答案:2,1
6,0
2,0
37
阅读程序,指出输出结果是( )。
void main()
{
char c1,c2,c3;
c1=’a’;
c2=’z’;
c3=c2-c1;
printf(“%c,%c,%d “,c1,c2,c3);
}
喵查答案:a ,z ,25
A,Z,25
a,z,\
97,122,25
38 x、y、z被声明为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()
INPUT x、y、z;
喵查答案:scanf(“%d%d%d”,&x,&y,&z);
scanf(“%d%d%d”,x,y,z);
read(“%d%d%d”,&x,&y,&z);
39 C语言设计中下列描述中正确的是( )
喵查答案:所有的输入/输出都是通过调用库函数处理的
所有的输入/输出都是通过输入/输出语句实现的
getchar和putchar可以省略#include
在输入/输出格式中的*表示跳过数据的含义
40 c语言中标准输入文件stdin是指( )
喵查答案:键盘
显示器
鼠标
硬盘
41 (2011.09全国二级C题)以下不能输出字符A的语句是()。(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
printf(“%c\n”,’a’-32);
喵查答案:printf(“%d\n”,’A’);
printf(“%c\n”,65);
printf(“%c\n”,’B’-1);
42
以下程序段 :
int a=1234;
printf(“%2d\n”,a);
输出结果是( )
12
23
喵查答案:1234
提示出错,无结果
43
(2010.03全国二级C题)有以下程序:
void main()
{
char a,b,c,d;
scanf(“%c%c”,&a,&b);
c=getchar(); d=getchar();
printf(“%c%c%c%c\n”,a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)
12
34
则输出结果是()。
1234
12
喵查答案:12 3
1234
44 有以下程序main(){ int a,b,p; scanf(“m=%dn=%dp=%d”,&a,&b,&p); printf(“%d%d%d\n”,a,b,p);}若想从键盘上输入数据,使变量a中的值为12,b中的值为56,p中的值为89,则正确的输入是
喵查答案:m=12n=56p=89
m=12 n=56 p=89
a=12b=56p=89
12 56 89
第4周 逻辑判断与选择结构
1
以下程序
#include
main()
{
int a=2,b=3,c=0;
if(a=b)
c=a;
else
c=b;
printf(“%d”,c);
}
程序的运行结果是
喵查答案:3
0
2
1
2
有以下程序
#include
main()
{
int y=9;
switch(y++)
{
case 9:y/=2;
case 8:–y;
}
printf(“%d”,y);
}
程序的运行结果是
喵查答案:4
5
3
9
3
有以下程序
#include
main()
{
int y=9;
if(y>0,y–)
if(y%3==0) printf(“%d”,–y);
printf(“%d”,y);
}
程序的运行结果是
喵查答案:8
88
99
9
4
(201203二级c)若下面程序运行时从键盘输入9,则输出结果是()。
#include
void main()
{
int a;
scanf(“%d”, &a);
if(a++ < 9)
printf(“%d\n”, a);
else
printf(“%d\n”, a–);
}
喵查答案:10
11
9
8
5 下列条件语句中,功能与其他语句不同的是( )
喵查答案:
if(a==0) printf(“%d\n”,x);
else printf(“%d\n”,y);
if(a) printf(“%d\n”,x); else printf(“%d\n”,y);
if(a==0) printf(“%d\n”,y);
else printf(“%d\n”,x);
if (a!=0) printf(“%d\n”,x);
else printf(“%d\n”,y);
6
阅读程序,分析输出结果是( )。
void main( )
{
int x=0,a=1,b=1;
switch(x)
{
case 0: a++;
case 1: b++;break;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
喵查答案:a=2,b=2
a=3,b=3
a=1,b=1
没有正确结果
7
若执行下面的程序时从键盘输入10,则输出是( )。
void main( )
{
int a;
scanf(“%d”,&a);
if(++a<10)
printf(“%d\n”,a++);
else
printf(“%d\n”,++a);
}
喵查答案:12
11
10
9
8
阅读程序,分析输出结果是( )。
#include
void main( )
{
int a=2,b=-1,c=2;
if(a)
if(b<0) c=0;
else c++;
printf(“%d\n”,c);
}
喵查答案:0
1
2
3
9
阅读程序,分析输出结果是( )。
#include
void main()
{
int a=6,b=10,t;
if((a=b)>0)
t=a+b;
printf(“%d\n”,t);
}
喵查答案:20
16
12
无输出
10
阅读程序,分析输出结果是( )。
#include
void main()
{
int x=10,y=5;
switch(x)
{ case 1:x++;
default: x+=y;
case 2:y–;
case 3:x–;
}
printf(“x=%d,y=%d”,x,y);
}
喵查答案:x=14,y=4
x=15,y=5
x=10,y=5
x=15,y=4
11
下面程序执行后输出结果是______。
void main()
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d\n”,x);
}
喵查答案:-4
2
-6
-1
12
假设变量i为整型量,比较下面两条if语句,选出正确答案______。
if(i!=0);
if(i);
喵查答案:
两者作用等价
两者作用不同
两者作用相反
if(i)语法错
13 下述语句中,______中的if 语法有错误
喵查答案:
if(x!=y)
scanf(“%d”,x)
else
scanf(“%d”,y);
if(x==y);
if(x==y)
x+y;
if(x==y)
{x++;y++;}
14
执行下面语句段后的输出结果为______。
int i=-1;
if (i<=0)
printf(“****\n”);
i=2;
else
printf(“%%%%\n”);
喵查答案:有语法错误
****
%%
%%%%c
15
执行下面程序的结果为______。
void main()
{
int a=3,b=4,t=1;
if(a>b)
{t=a;a=b;b=t;}
printf(“%d”,a);
}
喵查答案:3
4
1
0
16
对下面的程序说法正确的是______。
void main()
{
int x=3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
喵查答案:输出为####
有语法错误,不能通过编译
输出为****
通过编译,但是不能运行
17
如下程序的运行结果是()
int main()
{
int a=3,b=1,c=0;
if(a>b?a:b){
switch(b%10)
{
case 1:
c=a;
case 0:
c=b;break;
default:
c=0;
}
}
printf(“%d”,c);
return 0;
}
喵查答案:1
0
2
3
18
如下程序的运行结果是()
int main()
{
int a=0,b=0,c=0;
if(a=1,a>=b){
switch(b++)
{
case 1:
c=a;
case 0:
c=b;break;
default:
c=0;
}
}
printf(“%d”,c);
return 0;
}
喵查答案:1
0
2
3
19
如下程序的运行结果是()
int main()
{
int a=2,b=1,c=0;
if(a>=b){
switch(a++,b++)
{
case 1:
c=a;
case 0:
c=b;break;
default:
c=0;
}
}
printf(“%d”,c);
return 0;
}
喵查答案:2
0
1
3
20
以下程序
#include
main()
{
int a=2,b=1,c=0;
if(a||b)
c=a;
else
c=b;
printf(“%d”,c);
}
程序的运行结果是
喵查答案:2
0
3
1
21
以下程序
#include
main()
{
int a=2,b=3,c=0;
if(a=b)
c=a;
else
c=b;
printf(“%d”,c);
}
程序的运行结果是
喵查答案:3
0
2
1
22
有以下程序
#include
main()
{
int y=9;
switch(y++)
{
case 9:y/=2;
case 8:–y;
}
printf(“%d”,y);
}
程序的运行结果是
喵查答案:4
5
3
9
23
有以下程序
#include
main()
{
int y=9;
if(y>0,y–)
if(y%3==0) printf(“%d”,–y);
printf(“%d”,y);
}
程序的运行结果是
喵查答案:8
88
99
9
24
(201203二级c)若下面程序运行时从键盘输入9,则输出结果是()。
#include
void main()
{
int a;
scanf(“%d”, &a);
if(a++ < 9)
printf(“%d\n”, a);
else
printf(“%d\n”, a–);
}
喵查答案:10
11
9
8
25 下列条件语句中,功能与其他语句不同的是( )
喵查答案:
if(a==0) printf(“%d\n”,x);
else printf(“%d\n”,y);
if(a) printf(“%d\n”,x); else printf(“%d\n”,y);
if(a==0) printf(“%d\n”,y);
else printf(“%d\n”,x);
if (a!=0) printf(“%d\n”,x);
else printf(“%d\n”,y);
26
阅读程序,分析输出结果是( )。
void main( )
{
int x=0,a=1,b=1;
switch(x)
{
case 0: a++;
case 1: b++;break;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
喵查答案:a=2,b=2
a=3,b=3
a=1,b=1
没有正确结果
27
若执行下面的程序时从键盘输入10,则输出是( )。
void main( )
{
int a;
scanf(“%d”,&a);
if(++a<10)
printf(“%d\n”,a++);
else
printf(“%d\n”,++a);
}
喵查答案:12
11
10
9
28
阅读程序,分析输出结果是( )。
#include
void main( )
{
int a=2,b=-1,c=2;
if(a)
if(b<0) c=0;
else c++;
printf(“%d\n”,c);
}
喵查答案:0
1
2
3
29
阅读程序,分析输出结果是( )。
#include
void main()
{
int a=6,b=10,t;
if((a=b)>0)
t=a+b;
printf(“%d\n”,t);
}
喵查答案:20
16
12
无输出
30
阅读程序,分析输出结果是( )。
#include
void main()
{
int x=10,y=5;
switch(x)
{ case 1:x++;
default: x+=y;
case 2:y–;
case 3:x–;
}
printf(“x=%d,y=%d”,x,y);
}
喵查答案:x=14,y=4
x=15,y=5
x=10,y=5
x=15,y=4
31
下面程序执行后输出结果是______。
void main()
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d\n”,x);
}
喵查答案:-4
2
-6
-1
32
假设变量i为整型量,比较下面两条if语句,选出正确答案______。
if(i!=0);
if(i);
喵查答案:
两者作用等价
两者作用不同
两者作用相反
if(i)语法错
33 下述语句中,______中的if 语法有错误
喵查答案:
if(x!=y)
scanf(“%d”,x)
else
scanf(“%d”,y);
if(x==y);
if(x==y)
x+y;
if(x==y)
{x++;y++;}
34
执行下面语句段后的输出结果为______。
int i=-1;
if (i<=0)
printf(“****\n”);
i=2;
else
printf(“%%%%\n”);
喵查答案:有语法错误
****
%%
%%%%c
35
执行下面程序的结果为______。
void main()
{
int a=3,b=4,t=1;
if(a>b)
{t=a;a=b;b=t;}
printf(“%d”,a);
}
喵查答案:3
4
1
0
36
对下面的程序说法正确的是______。
void main()
{
int x=3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
喵查答案:输出为####
有语法错误,不能通过编译
输出为****
通过编译,但是不能运行
37
如下程序的运行结果是()
int main()
{
int a=3,b=1,c=0;
if(a>b?a:b){
switch(b%10)
{
case 1:
c=a;
case 0:
c=b;break;
default:
c=0;
}
}
printf(“%d”,c);
return 0;
}
喵查答案:1
0
2
3
38
如下程序的运行结果是()
int main()
{
int a=0,b=0,c=0;
if(a=1,a>=b){
switch(b++)
{
case 1:
c=a;
case 0:
c=b;break;
default:
c=0;
}
}
printf(“%d”,c);
return 0;
}
喵查答案:1
0
2
3
39
如下程序的运行结果是()
int main()
{
int a=2,b=1,c=0;
if(a>=b){
switch(a++,b++)
{
case 1:
c=a;
case 0:
c=b;break;
default:
c=0;
}
}
printf(“%d”,c);
return 0;
}
喵查答案:2
0
1
3
40
以下程序
#include
main()
{
int a=2,b=1,c=0;
if(a||b)
c=a;
else
c=b;
printf(“%d”,c);
}
程序的运行结果是
喵查答案:2
0
3
1
41
有以下程序
#include
main()
{
int a=2,b=1,c=0;
if(a&b)
c=a;
else
c=b;
printf(“%d”,c);
}
程序的运行结果是
喵查答案:1
0
2
3
第5周 迭代计算与循环结构
1 以下程序中,for循环体执行的次数是()。#define N 2#define M 1+ N#define K M+1*M/2void main(){ int i; for( i= 1;i < K; i++) { …….. } …….}
喵查答案:4
5
3
6
2 设已声明int型变量i和k,则下面for循环语句()。 for(i=0;k= -1,k=1; i++,k++) printf(“****\n”);
判断循环结束的条件不合法
喵查答案:是无限循环
循环依次也不执行
循环只执行一次
3 以下程序段执行后的输出结果( )。int i; for(i=1; ; i++) printf(“%d”,i++);
1
2
3
喵查答案:死循环
4 已知int t=0; while(t=1) {…} 则以下叙述正确的是()
循环控制表达式的值为0
喵查答案:循环控制表达式的值为1
循环控制表达式不合法
以上说法都不对
5 若有语句while((ch=getchar())==’e’) printf(“*”);当输入字符串abcde时,while循环体执行()次。
1次
死循环
喵查答案:0次
5次
6 下面程序的运行结果是( )#include int main(){ int c1=2, c2=0; while(!c2–) printf(“%d, %d”, c1–, c2); return 0;}
陷入死循环
不输出任何内容
喵查答案:输出2, -1
输出2, 0
7 对于循环语句while(1); 描述正确的是( )。
喵查答案:死循环
循环一次
不执行循环体
编译有错
8 使用穷举法求解如下(1)(2)构成的方程组 (1)x+y=100; (2)2*x+y/3=100;如下程序中正确的是?
int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y==100&& 2*x+y/3==100){ printf("x=%d,y=%d\n",x,y); } } }
喵查答案: int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y==100&& 6*x+y==300){ printf("x=%d,y=%d\n",x,y); } } }
int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y=100&& 2*x+y/3=100){ printf("x=%d,y=%d\n",x,y); } }
int x,y; for(x=1;x<100;x++){ for(y=1;y2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是?
喵查答案:m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;continue; }
m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;continue; }
10 如下程序中实现sum=1+2+3+…+n的程序是
int sum=0,i;for(i=0;i<n;i++)sum+=i;
int sum=0,i;for(i=0;i<n;i++); sum+=i;
int sum=0,i;for(i=1;i<=n;i++); sum+=i;
喵查答案:int sum=0,i;for(i=1;i<=n;i++) sum+=i;
11 设j为int型变量,则下面for循环语句的执行结果是 for( j=9;j>3;j–); { j-=2; } printf(“%d\n”,j);
3
2
喵查答案:1
死循环
12 请读程序片段: int a,b; for(a=1,b=1; a<=80; a++,b++) { if(b<20) continue; if(b%2==1) { b+=2; break; } } printf("%d\n",a);上面程序的输出结果是
80
20
喵查答案:21
23
13 请读程序片段: int a,b; for(a=1,b=1; a=20) break; if(b%2==1) { b+=2; continue; } b-=6; } printf(“%d\n”,a);上面程序的输出结果是
8
9
10
喵查答案:11
14 设j为int型变量,则下面for循环语句的执行结果是 for( j=9;j>3;j–) { if(j%3)break; –j; –j; } printf(“%d”,j);
9
6
喵查答案:3
0
15 设x和y均为int型变量,则执行下的循环后,y值为 for(y=1,x=1;y<=50;y++) { if(x>=8)break; if (x%2==1) { x+=5; continue;} x-=3; }
2
喵查答案:4
6
8
16 分析程序执行过程,x的值为( )。 void main() { int x,y; for(x=1,y=1;x=15) break; if(y%5==1) { y+=5; continue; } y-=2; } printf(“%d\n”,x); }
3
6
喵查答案:4
5
17 如下程序计算10名同学,每位同学4门课程的总分,并输出void main(){ int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
喵查答案:sum=0.0;
sum+=score;
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);
18 (201203二级C)下面程序运行后的输出结果是()。 #include void main() { int s = 0, n; for(n = 0; n < 3; n++) { switch(s) { case 0: case 1:s += 1; case 2:s += 2; break; case 3:s += 3; default: s += 4; } printf("%d", s); } }
124
136
喵查答案:31014
3610
19 以下正确的描述是()
continue语句的作用是结束整个循环的执行
喵查答案:只能在循环体内和switch语句体内使用break语句
在循环体内使用break语句或continue语句的作用相同
从多层循环嵌套中退出时, 只能使用goto语句
20 下面程序执行后的输出结果是()。#include void main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf("n=%d\n",n); }
n=5
n=2
n=3
喵查答案:n=4
21 以下程序中,for循环体执行的次数是()。#define N 2#define M 1+ N#define K M+1*M/2void main(){ int i; for( i= 1;i < K; i++) { …….. } …….}
喵查答案:4
5
3
6
22 设已声明int型变量i和k,则下面for循环语句()。 for(i=0;k= -1,k=1; i++,k++) printf(“****\n”);
判断循环结束的条件不合法
喵查答案:是无限循环
循环依次也不执行
循环只执行一次
23 以下程序段执行后的输出结果( )。int i; for(i=1; ; i++) printf(“%d”,i++);
1
2
3
喵查答案:死循环
24 已知int t=0; while(t=1) {…} 则以下叙述正确的是()
循环控制表达式的值为0
喵查答案:循环控制表达式的值为1
循环控制表达式不合法
以上说法都不对
25 若有语句while((ch=getchar())==’e’) printf(“*”);当输入字符串abcde时,while循环体执行()次。
1次
死循环
喵查答案:0次
5次
26 下面程序的运行结果是( )#include int main(){ int c1=2, c2=0; while(!c2–) printf(“%d, %d”, c1–, c2); return 0;}
陷入死循环
不输出任何内容
喵查答案:输出2, -1
输出2, 0
27 对于循环语句while(1); 描述正确的是( )。
喵查答案:死循环
循环一次
不执行循环体
编译有错
28 使用穷举法求解如下(1)(2)构成的方程组 (1)x+y=100; (2)2*x+y/3=100;如下程序中正确的是?
int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y==100&& 2*x+y/3==100){ printf("x=%d,y=%d\n",x,y); } } }
喵查答案: int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y==100&& 6*x+y==300){ printf("x=%d,y=%d\n",x,y); } } }
int x,y; for(x=1;x<100;x++){ for(y=1;y<100;y++){ if(x+y=100&& 2*x+y/3=100){ printf("x=%d,y=%d\n",x,y); } }
int x,y; for(x=1;x<100;x++){ for(y=1;y2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是?
喵查答案:m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;break; }
m=0;for(i=2;i<n;i++) if(n%i==0){ m=n;continue; }
m=n;for(i=2;i<n;i++) if(n%i==0){ m=0;continue; }
30 如下程序中实现sum=1+2+3+…+n的程序是
int sum=0,i;for(i=0;i<n;i++)sum+=i;
int sum=0,i;for(i=0;i<n;i++); sum+=i;
int sum=0,i;for(i=1;i<=n;i++); sum+=i;
喵查答案:int sum=0,i;for(i=1;i<=n;i++) sum+=i;
31 设j为int型变量,则下面for循环语句的执行结果是 for( j=9;j>3;j–); { j-=2; } printf(“%d\n”,j);
3
2
喵查答案:1
死循环
32 请读程序片段: int a,b; for(a=1,b=1; a<=80; a++,b++) { if(b<20) continue; if(b%2==1) { b+=2; break; } } printf("%d\n",a);上面程序的输出结果是
80
20
喵查答案:21
23
33 请读程序片段: int a,b; for(a=1,b=1; a=20) break; if(b%2==1) { b+=2; continue; } b-=6; } printf(“%d\n”,a);上面程序的输出结果是
8
9
10
喵查答案:11
34 设j为int型变量,则下面for循环语句的执行结果是 for( j=9;j>3;j–) { if(j%3)break; –j; –j; } printf(“%d”,j);
9
6
喵查答案:3
0
35 设x和y均为int型变量,则执行下的循环后,y值为 for(y=1,x=1;y<=50;y++) { if(x>=8)break; if (x%2==1) { x+=5; continue;} x-=3; }
2
喵查答案:4
6
8
36 分析程序执行过程,x的值为( )。 void main() { int x,y; for(x=1,y=1;x=15) break; if(y%5==1) { y+=5; continue; } y-=2; } printf(“%d\n”,x); }
3
6
喵查答案:4
5
37 如下程序计算10名同学,每位同学4门课程的总分,并输出void main(){ int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
喵查答案:sum=0.0;
sum+=score;
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);
38 (201203二级C)下面程序运行后的输出结果是()。 #include void main() { int s = 0, n; for(n = 0; n < 3; n++) { switch(s) { case 0: case 1:s += 1; case 2:s += 2; break; case 3:s += 3; default: s += 4; } printf("%d", s); } }
124
136
喵查答案:31014
3610
39 以下正确的描述是()
continue语句的作用是结束整个循环的执行
喵查答案:只能在循环体内和switch语句体内使用break语句
在循环体内使用break语句或continue语句的作用相同
从多层循环嵌套中退出时, 只能使用goto语句
40 下面程序执行后的输出结果是()。#include void main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf("n=%d\n",n); }
n=5
n=2
n=3
喵查答案:n=4
41 在下列选项中,没有构成死循环的程序段是____
int i=100;while (1){ i=i%100+1; if (i>100) break;}
for( ; ; );
喵查答案:int s=26; while (s) –s;
int k=1000;do {++k;} while (k>=1000);
42 以下关于循环的描述中,错误的是( )。
可以用for语句实现的循环一定可以用while语句实现
可以用while语句实现的循环一定可以用for语句实现
可以用do…while语句实现的循环一定可以用while语句实现
喵查答案:do…while语句与while语句的区别仅仅是关键字while的位置不同
43 与语句while(!x)等价的语句是( )。
喵查答案:while(x==0)
while(x!=0)
while(x!=1)
while(~x)
第6周 集合数据及其处理
1 下列程序执行后的输出结果是int a[10]={1,2,3,4,5,6,7,8,9,10};putchar(a[1]+’a’);
喵查答案:c
67
‘a’
68
2 下列程序执行后的输出结果是int a[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d \n”,a[1][2]);
2
3
5
喵查答案:6
3 执行下面的程序段后,变量a中的值为int a=3, s[5]={1,2};s[0]=a; a=s[2]*10;
喵查答案:0
30
20
10
4 执行下面的程序段后,变量a中的值为int a=3, s[5]={1};s[0]=a; a=s[2]*10;
喵查答案:0
33
30
10
5 要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入________.#include void main( ){ int a[4][4]={ ________ }; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%4d",a[i][j]); printf(“\n”); }
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}
6
以下程序段给数组所有的元素的输入数据,请选择正确的答案
#include
main()
{
float x[5],m=0;
while(m<5)
scanf(“%.2f”,______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]
7 定义如下的变量和数组int i;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果for(i=0;i<2;i++)printf("%d ",y[1-i][i+1]);
10 4
8 12
6 10
喵查答案:10 6
8 下面程序的运行结果是________int main(){ int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf(“%2d”,a[i]); } return 0;}
-4 0 4 0 4
喵查答案:
-4 0 4 4 3
-4 0 4 0 3
-4 0 4 4 0
9
定义如下变量和数组:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是________。
for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
3 6 9
1 5 9
1 4 7
喵查答案:
3 5 7
10 若有说明语句:int a[][3]={1,2,3,4,5,6,7,8};则a数组的行数是
无确定值
喵查答案:3
2
1
11 若二维数组a有m列,则在a[i][j]前的元素个数为________。
j*m+i
i*m+j+1
i*m+j-1
喵查答案:i*m+j
12 以下能对二维数组a进行正确初始化的语句是________。
int a[][3]={{1,0,1},{},{1,1}};
int a[2][]={{1,0,1},{5,2,3}};
int a[][2]={{1,2,3},{4,5,6}};
喵查答案:int a[][4]={{1,2,3},{4,5},{6}};
13 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]
14 定义了一维int型数组a[10]后,下面错误的引用是_____
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;
15 引用数组元素时,数组下标可以是____
实型常量
实型变量
整型常量
喵查答案:值在[0,n-1]之间的整型表达式,其中n为数组长度
16 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
无确定值
4
17 如下程序的输出结果是int main(){ int a[3][4]={{1,2,3},{4,5,6},{7,8,9}}; int i; for(i=0;i<3;i++) { int j=0; for(j=0;j<3;j++){ a[i][3]+=a[i][j]; } } for(i=0;i<3;i++) printf("%5d",a[i][3]); return 0;}
喵查答案:6 15 24
0 0 0
6 18 17
6 16 19
18 如下程序的输出结果是int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<3;i++) { int j=0; for(j=0;ja[i][j]) a[i][3]=a[i][j]; } } for(i=0;i<3;i++) printf("%2d",a[i][3]); return 0;}
3 6 9
1 4 7
4 8 0
喵查答案:1 5 0
19 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ int j=10-1; while(j>i){ a[j+1]=a[j]; j–; } } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0;}
程序存在错误
喵查答案:1 2 2 3 3 3 4 4 5 6 7 8
1 2 2 3 3 0 4 4 5 6 7 8
1 2 2 3 3 4 4 4 5 6 7 8
20 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ int j; for(j=i;j<10-1;j++) a[j]=a[j+1]; i–; } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0;}
死循环
1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
喵查答案:1 2 2 4 5 6 7 8 8 8
21 下列程序执行后的输出结果是int a[10]={1,2,3,4,5,6,7,8,9,10};putchar(a[1]+’a’);
喵查答案:c
67
‘a’
68
22 下列程序执行后的输出结果是int a[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d \n”,a[1][2]);
2
3
5
喵查答案:6
23 执行下面的程序段后,变量a中的值为int a=3, s[5]={1,2};s[0]=a; a=s[2]*10;
喵查答案:0
30
20
10
24 执行下面的程序段后,变量a中的值为int a=3, s[5]={1};s[0]=a; a=s[2]*10;
喵查答案:0
33
30
10
25 要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入________.#include void main( ){ int a[4][4]={ ________ }; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%4d",a[i][j]); printf(“\n”); }
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}
26
以下程序段给数组所有的元素的输入数据,请选择正确的答案
#include
main()
{
float x[5],m=0;
while(m<5)
scanf(“%.2f”,______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]
27 定义如下的变量和数组int i;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果for(i=0;i<2;i++)printf("%d ",y[1-i][i+1]);
10 4
8 12
6 10
喵查答案:10 6
28 下面程序的运行结果是________int main(){ int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf(“%2d”,a[i]); } return 0;}
-4 0 4 0 4
喵查答案:
-4 0 4 4 3
-4 0 4 0 3
-4 0 4 4 0
29
定义如下变量和数组:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是________。
for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
3 6 9
1 5 9
1 4 7
喵查答案:
3 5 7
30 若有说明语句:int a[][3]={1,2,3,4,5,6,7,8};则a数组的行数是
无确定值
喵查答案:3
2
1
31 若二维数组a有m列,则在a[i][j]前的元素个数为________。
j*m+i
i*m+j+1
i*m+j-1
喵查答案:i*m+j
32 以下能对二维数组a进行正确初始化的语句是________。
int a[][3]={{1,0,1},{},{1,1}};
int a[2][]={{1,0,1},{5,2,3}};
int a[][2]={{1,2,3},{4,5,6}};
喵查答案:int a[][4]={{1,2,3},{4,5},{6}};
33 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]
34 定义了一维int型数组a[10]后,下面错误的引用是_____
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;
35 引用数组元素时,数组下标可以是____
实型常量
实型变量
整型常量
喵查答案:值在[0,n-1]之间的整型表达式,其中n为数组长度
36 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
无确定值
4
37 如下程序的输出结果是int main(){ int a[3][4]={{1,2,3},{4,5,6},{7,8,9}}; int i; for(i=0;i<3;i++) { int j=0; for(j=0;j<3;j++){ a[i][3]+=a[i][j]; } } for(i=0;i<3;i++) printf("%5d",a[i][3]); return 0;}
喵查答案:6 15 24
0 0 0
6 18 17
6 16 19
38 如下程序的输出结果是int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<3;i++) { int j=0; for(j=0;ja[i][j]) a[i][3]=a[i][j]; } } for(i=0;i<3;i++) printf("%2d",a[i][3]); return 0;}
3 6 9
1 4 7
4 8 0
喵查答案:1 5 0
39 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ int j=10-1; while(j>i){ a[j+1]=a[j]; j–; } } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0;}
程序存在错误
喵查答案:1 2 2 3 3 3 4 4 5 6 7 8
1 2 2 3 3 0 4 4 5 6 7 8
1 2 2 3 3 4 4 4 5 6 7 8
40 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ int j; for(j=i;j<10-1;j++) a[j]=a[j+1]; i–; } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0;}
死循环
1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
喵查答案:1 2 2 4 5 6 7 8 8 8
41 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ a[i]=a[i+1]; i–; } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0;}
喵查答案:死循环
1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
1 2 2 4 5 6 7 8 8 8
42 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7,8},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ a[i]=a[i+1]; } } for(i=0;i<10;i++) printf("%2d",a[i]); return 0;}
1 2 2 3 3 4 5 6 7 8
喵查答案:1 2 2 3 4 4 5 6 7 8
1 2 2 4 5 6 7 8 0 0
1 2 2 4 5 6 7 8 8 8
43 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7},i; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ printf(“%3d”,i); } } return 0;}
1 2
喵查答案:3 4
3
4
44 以下定义一维数组语句中错误的是
int a[8]={0,1,2,3,4,5};
double a[]={0,1,2,3,4,5};
int a[]={‘A’,’B’,’C’};
喵查答案:int a[5]=”012345″;
45 以下不正确的语句是________。
double x[3]={2.0,4.0,6,0,8.0,10.0};
char c1[]={‘1′,’2′,’3′,’4′,’5’};
char c2[]={‘\x10′,’\xa’,’\x8′};
喵查答案:int y[]={0,1,3,5,7,9};
第7周 字符数据处理
1 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]
2 定义了一维int型数组a[10]后,下面错误的引用是_____。
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;
3 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是
a数组长度小于b数组长度
喵查答案:a数组长度大于b数组长度
数组a和b的长度相同
上述说法都不对
4 若有以下说明:int x[9]={1,2,3,4,5,6,7,8,9}; char c=’a’,d,f;则数值为3的表达式是( )
x[f-c]
x[‘c’-‘d’]
喵查答案:x[‘c’-c]
x[3]
5 引用数组元素时,数组下标可以是_____
整型常量
整型变量
整型表达式
喵查答案:可以为整型常量、整型变量、整型表达式,且要求大于等于0,小于等于数组长度减一
6 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
4
无确定值
7 下面错误的初始化语句是_____
char str[]=”hello”;
喵查答案:char str[]={‘hello’};
char str[100]=”hello”;
char str[]={‘h’,’e’,’l’,’l’,’o’};
8 以下不正确的语句是________。
double x[5]={2.0,10.0};
char c1[]={‘1′,’2′,’3′,’4′,’5’};
char c2[]={‘\x10′,’\xa’,’\x8′};
喵查答案:int y[5]={0,1,3,5,7,9};
9 有以下程序int main(){ char a[]={1,2,3}, b[]={“123”};printf(“%s %s\n”, a, b);return 0;}
数组a和数组b均存储了字符串”123″
数组a和数组b存储的字符串长度相等
喵查答案:数组a长度小于数组b的长度
程序存在语法错误,不能运行。
10 执行下面的程序段后,输出结果为多少char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d,%d\n”, sizeof(a), sizeof(b));
3,3
4,10
喵查答案:3,10
4,4
11 有以下程序int main(){ char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d %d\n”, strlen(a), strlen(b));return 0;}以下叙述中正确的是
喵查答案:在给a和b数组置初值时,对于没给初值的元素,自动赋值为0,故输出的长度都为3
由于a数组中没有字符串结束符,长度不能确定;但b数组中字符串长度为3
由于b数组中没有字符串结束符,长度不能确定;但a数组中字符串长度为3
由于a和b数组中都没有字符串结束符,故长度都不能确定
12 要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入________.#include void main( ){ int a[4][4]={ ________ }; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%4d",a[i][j]); printf("\n"); }
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}
13 #includemain() {int A[2][3]={1,3,5}; printf(“%d\n”,A[1][1]);}上述程序的输出结果为__________。
3
1
5
喵查答案:0
14 下面程序段的运行结果是char x[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,x);
‘a”b’
abc
ab c
喵查答案:ab
15 下面程序的运行结果是________。 #include “stdio.h” #include “string.h” main() { char a[80]=”AB”,b[80]=”LMNP”; int i=0; strcat(a,b); while(a[i++]!=’\0′) b[i]=a[i]; puts(b);}
LB
ABLMNP
喵查答案:LBLMNP
AB
16 定义如下变量和数组int m;int a[2][2]={1,2,3,4};则下面语句的输出结果是for(m=0;m<2;m++;)printf("%d,",a[m][1-m]);
1,4
3,4
喵查答案:2,3
1,2
17 以下程序段给数组所有的元素的输入数据,请选择正确的答案#includemain(){float x[5];int m=0;while(m<5)scanf("%f",______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]
18 定义如下的变量和数组int I;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果for(I=0;I<2;I++)printf("%d,",y[1-I][I+1]);
10,4
8,12
6,10
喵查答案:10,6
19 下面程序的运行结果是________。 main() { int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) { for(j=1;j<6;j++) printf("%2d",a[i][j]); printf("\n");}}
喵查答案: 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
1 0 0 0 10 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
20 下面程序的运行结果是________。 main() { int a[6],i; for(i=1;i3))%5; printf(“%2d”,a[i]); }}
-4 0 4 0 4
喵查答案:-4 0 4 4 3
-4 0 4 0 3
-4 0 4 4 0
21 若有说明:int a[3][4];则对a数组元素的非法引用是________
a[0][2*1]
喵查答案:a[0][4]
a[1][3]
a[4-2][0]
22 定义了一维int型数组a[10]后,下面错误的引用是_____。
喵查答案:a[10]=2;
a[1]=a[2]*a[0];
a[0]=1;
a[0]=5*2;
23 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是
a数组长度小于b数组长度
喵查答案:a数组长度大于b数组长度
数组a和b的长度相同
上述说法都不对
24 若有以下说明:int x[9]={1,2,3,4,5,6,7,8,9}; char c=’a’,d,f;则数值为3的表达式是( )
x[f-c]
x[‘c’-‘d’]
喵查答案:x[‘c’-c]
x[3]
25 引用数组元素时,数组下标可以是_____
整型常量
整型变量
整型表达式
喵查答案:可以为整型常量、整型变量、整型表达式,且要求大于等于0,小于等于数组长度减一
26 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是________。
喵查答案:3
2
4
无确定值
27 下面错误的初始化语句是_____
char str[]=”hello”;
喵查答案:char str[]={‘hello’};
char str[100]=”hello”;
char str[]={‘h’,’e’,’l’,’l’,’o’};
28 以下不正确的语句是________。
double x[5]={2.0,10.0};
char c1[]={‘1′,’2′,’3′,’4′,’5’};
char c2[]={‘\x10′,’\xa’,’\x8′};
喵查答案:int y[5]={0,1,3,5,7,9};
29 有以下程序int main(){ char a[]={1,2,3}, b[]={“123”};printf(“%s %s\n”, a, b);return 0;}
数组a和数组b均存储了字符串”123″
数组a和数组b存储的字符串长度相等
喵查答案:数组a长度小于数组b的长度
程序存在语法错误,不能运行。
30 执行下面的程序段后,输出结果为多少char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d,%d\n”, sizeof(a), sizeof(b));
3,3
4,10
喵查答案:3,10
4,4
31 有以下程序int main(){ char a[]={‘1’, ‘2’, ‘3’}, b[10]={‘1’, ‘2’, ‘3’};printf(“%d %d\n”, strlen(a), strlen(b));return 0;}以下叙述中正确的是
喵查答案:在给a和b数组置初值时,对于没给初值的元素,自动赋值为0,故输出的长度都为3
由于a数组中没有字符串结束符,长度不能确定;但b数组中字符串长度为3
由于b数组中没有字符串结束符,长度不能确定;但a数组中字符串长度为3
由于a和b数组中都没有字符串结束符,故长度都不能确定
32 要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入________.#include void main( ){ int a[4][4]={ ________ }; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%4d",a[i][j]); printf("\n"); }
{1,5,2,3},{2,4,7,8},{5,1,3,2}
喵查答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
{5,1,3,2},{2,4,7,8},{1,5,2,3}
{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}
33 #includemain() {int A[2][3]={1,3,5}; printf(“%d\n”,A[1][1]);}上述程序的输出结果为__________。
3
1
5
喵查答案:0
34 下面程序段的运行结果是char x[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,x);
‘a”b’
abc
ab c
喵查答案:ab
35 下面程序的运行结果是________。 #include “stdio.h” #include “string.h” main() { char a[80]=”AB”,b[80]=”LMNP”; int i=0; strcat(a,b); while(a[i++]!=’\0′) b[i]=a[i]; puts(b);}
LB
ABLMNP
喵查答案:LBLMNP
AB
36 定义如下变量和数组int m;int a[2][2]={1,2,3,4};则下面语句的输出结果是for(m=0;m<2;m++;)printf("%d,",a[m][1-m]);
1,4
3,4
喵查答案:2,3
1,2
37 以下程序段给数组所有的元素的输入数据,请选择正确的答案#includemain(){float x[5];int m=0;while(m<5)scanf("%f",______);}
x+m
&x[m+1]
&x[++m]
喵查答案:&x[m++]
38 定义如下的变量和数组int I;int y[2][3]={2,4,6,8,10,12}则下面语句输出结果for(I=0;I<2;I++)printf("%d,",y[1-I][I+1]);
10,4
8,12
6,10
喵查答案:10,6
39 下面程序的运行结果是________。 main() { int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) { for(j=1;j<6;j++) printf("%2d",a[i][j]); printf("\n");}}
喵查答案: 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
1 0 0 0 10 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
40 下面程序的运行结果是________。 main() { int a[6],i; for(i=1;i3))%5; printf(“%2d”,a[i]); }}
-4 0 4 0 4
喵查答案:-4 0 4 4 3
-4 0 4 0 3
-4 0 4 4 0
41 定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是________。for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
3 6 9
1 5 9
1 4 7
喵查答案:3 5 7
42 若有语句:int a[][3]={{1,2},{3,4,5},{6},{7,8}};则a数组的行数是
喵查答案:4
3
2
1
43 若二维数组a有m列,则在a[i][j]前的元素个数为________。
j*m+i
i*m+j+1
i*m+j-1
喵查答案:i*m+j
44 以下能对二维数组a进行正确初始化的语句是________。
int a[2][3]={{1,0,1},{1},{1,1}};
int a[2][]={{1,0,1},{5,2,3}};
int a[][2]={{1,2,3},{4,5,6}};
喵查答案:int a[][4]={{1,2,3},{4,5},{6}};
45 如下程序的输出结果是int main(){ char books[][20]={“English”,”Math”,”Physical”}; int i,j; for(i=0;i<3;i++) { for(j=0;books[i][j]!=0;j++){ if(books[i][0]<books[i][j]) books[i][0]= books[i][j]; } } printf(“%c”,books[0][0]); return 0;}
E
喵查答案:s
n
h
46 如下程序的输出结果是int main(){ char books[][20]={“English”,”Math”,”Physical”}; int i,j; for(i=0;i<3;i++) { strcat(books[i],”book”); } printf(“%s”,&books[i-1][3]); return 0;}
Physicalbook
sical
Physical
喵查答案:sicalbook
47 如下程序的输出结果是int main(){ int a[10]={1,2,3,3,4,5,6,7,8},i,j; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ for(j=i;j<9;j++) a[j+1]=a[j]; } } printf(“%d”,a[5]);}
喵查答案:3
4
5
6
48 如下程序的输出结果是int main(){ int a[10]={1,2,2,3,3,4,5,6,7},i,j; int k=3; for(i=0;i<10;i++) { if(a[i]==k){ for(j=i;j<9;j++) a[j]=a[j+1]; } } printf(“%d”,a[5]); return 0;}
4
喵查答案:5
6
7
49 以下程序int main(){ char words[][30]={“Hi”,”NEU”,”C”,”Programming”}; int i=0; for(i=1;i<=3;i++){ printf("%s",words[i]); }return 0;}
HiNEUC
NEUC
喵查答案:NEUCProgramming
HiNEUCProgramming
50 有以下程序int main(){ char a[100]=”Hi”,char b[]=”NEU”;strcat(a,b);printf(“%d”,strlen(a));return 0;}输出结果为
3
4
喵查答案:5
6
第8周 函数实现代码分解和重用
1 有以下程序#include void fun(int p){ int d=2; p=d++; printf(“%d”,p);}void main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是
32
12
喵查答案:21
22
2 以下关于return语句的叙述中正确的是
一个自定义函数中必须有一条return语句
喵查答案:一个自定义函数中可以根据不同情况设置多条return语句
定义成void类型的函数中可以有带返回值的return语句
没有return语句的自定义函数在执行结束时不能返回到调用处
3 有以下程序 int f(int a){ return a%2; }main(){ int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf(“%d\n”,d);}程序运行后的输出结果是
喵查答案:9
11
19
21
4 如下程序的运行结果是()int f1(int x){ x=x+10; return x;}void main(){ int a=1,k; for(k=0;k<3;k++) { f1(k); printf("%4d",k); }}
7 9 11
6 6 6
喵查答案:0 1 2
1 2 3
5 以下程序段结果是int f1(int x){int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++) printf(“%4d”,f1(k));}
7 9 11
6 6 6
喵查答案:5 6 7
6 8 10
6 以下程序段结果是int f1(int x){int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++) printf(“%4d”,f1(a));}
7 9 11
喵查答案:6 6 6
7 8 9
6 8 10
7 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
float
double
喵查答案:int
long
8 以下正确的函数定义是
double fun1(int x,int y){z=x+y;return z;}
funl(int x,y){int z;returnz;}
喵查答案:double funl(int x,int y){double z;z=x+y;return z;}
funl(x,y){int x,y;double z;z=x+y;return z;}
9 有以下程序void f(int v , int w){ int t; t=v;v=w;w=t;}main( ){ int x=1,y=2,z=3; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
2,3,1
3,1,2
喵查答案:1,2,3
1,33,1
10 有以下程序int fun(int x , int y){ if(x<y) return x; return y;}void main( ){ int a= 9,b=8,c=7; printf(“%d\n”, fun(a,b) );}程序的执行结果是
9
喵查答案:8
函数调用出错
7
11 若程序中定义了以下函数double myadd(double a,double b) { return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的声明语句是
double myadd(double x,double y);
double myadd(double,double);
double myadd(double b,double a) ;
喵查答案:double myadd(double a,b) ;
12 设函数fun的定义形式为:fun(char ch,float x){//略}则以下对函数fun的调用语句中正确的是______。
喵查答案:t=fun(‘D’,5)
fun(’78’,1)
fun(“abc”,3)
fun(‘ab’,3)
13 一个c程序的执行是从________
本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序文件的第一个函数开始,到本程序main函数结束
喵查答案:本程序的main函数开始,到main函数结束
14 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。void main(){ printf(“The sum=%d\n”,sum (10));}int sum(int n){ int s=0,i; for(i=0;i<=n;i++) ____________}
return s;
return s+=i;
喵查答案:s=s+i;return s;
s=s+n;return s;
15 如果定义了如下函数,int isprime(int n){ //略}此函数的不正确的声明语句是?
int isprime(int n);
isprime(int n);
喵查答案:isprime(int n){};
int isprime(int);
16 6 下面关于函数声明正确的说法
喵查答案:方便编译,避免编译错误
方便链接,避免链接错误
函数声明必须在函数体内部声明
没有什么用途
17 如下合法的函数定义
喵查答案:int mfun(int a,int b){return a+b;}
void mfun(int a,b){return a+b}
void mfun(void a,void b){return a+b;}
void mfun(int a,int b){return a+b;}
18 下面说法不属于说明函数的作用是
任务分解
代码重用
喵查答案:提高程序效率
提高程序质量
19 有以下程序int swap(int a,int b){ int t=a; a=b; b=t; return t;}void main(){ int t=0; t=swap(swap(3,5),6); printf(“%d\n”,t);}程序运行后的输出结果是
0
喵查答案:3
5
6
20 有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
fun(int y,double m);
喵查答案:fun(10,12.5);
fun(x,fun(1,2));
void fun(n,x);
第9周 递归及函数结构
1 下面关于局部变量的描述中,错误的是_____。
函数的局部变量的有效范围只能在本函数
局部变量的名称不能和函数同名称
喵查答案:不同的函数中不能定义相同名称的局部变量
函数的形式参数也是局部变量
2 如果一个函数被定义为static类型,那么_____。
任何文件的函数都可以调用该函数
该函数只能被main函数调用
喵查答案:该函数能被当前源文件的函数调用,但不能被其他文件的函数调用
该函数不能被当前源文件的函数调用,可以被其他文件的函数调用
3 有以下程序 int fun(int a){ return a%2; }main(){ int a[8]={1,3,2,4},i,d=0; for (i=0;fun(a[i]);i++) d+=a[i]; printf(“%d\n”,d);}程序运行后的输出结果是
6
喵查答案:4
1
10
4 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
float
double
喵查答案:int
long
5 以下正确的函数定义是
double fun1(int x,int y){z=x+y;return z;}
funl(int x,y){int z;returnz;}
喵查答案:double funl(int x,int y){double z;z=x+y;return z;}
funl(x,y){int x,y;double z;z=x+y;return z;}
6 以下正确的函数声明语句是_______。
int fun(int a,b);
喵查答案:double fun();
float fun(inta,intb);
int fun(char a[][]);
7 以下叙述中正确的是
static类型全局变量,可以被其他文件中语句访问。
任何存储类的变量在未赋初值时,其值都是不确定的。
同一函数内的static类型局部变量比auto类型的局部变量的作用域大。
喵查答案:同一函数内的static类型局部变量比auto类型的局部变量的生存期长。
8 下面关于全局变量的描述中,错误的是_____
所有在函数体外定义的变量都是全局变量
全局变量直到程序结束时才被释放
全局变量可以和局部变量同名称
喵查答案:全局变量第一次被引用时,系统为其分配内存
9 设函数fun的定义形式为int fun(int a[],int n){ int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s;}void main(){int a[10]={1,2,3,4,5};printf("%d", fun(&a[1],2));}则程序的运行结果为
喵查答案:5
9
6
3
10 有以下程序void f(int v , int w){ int t; t=v;v=w;w=t;}main( ){ int x=1,y=2,z=3; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
2,3,1
3,1,2
喵查答案:1,2,3
1,33,1
11 、有以下程序int fun(int x , int y){ if(x<y) return x; return y;}void main( ){ int a= 9,b=8,c=7; printf("%d\n", fun(a,b));}程序的执行结果是
9
喵查答案:8
函数调用出错
7
12 若程序中定义了以下函数double myadd(double a,double b) { return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的函数声明是
double myadd(double x,double y);
double myadd(double,double);
double myadd(double b,double a) ;
喵查答案:double myadd(double a,b) ;
13 设函数fun的定义形式为:fun(char ch,float x){…}则以下对函数fun的调用语句中正确的是______。
喵查答案:t=fun(‘D’,5)
fun(’78’,1)
fun(“abc”,3)
fun(‘ab’,3)
14 一个c程序的执行是从________
本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序文件的第一个函数开始,到本程序main函数结束
喵查答案:本程序的main函数开始,到main函数结束
15 以下不正确的说法为
形式参数是局部变量
在不同函数中可以使用相同名字的变量
在函数内定义的变量只在本函数范围内有效
喵查答案:在函数内的复合语句中定义的变量在本函数范围内有效
16 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为
寄存器
喵查答案:自动
外部
静态
17 下面的描述错误的是_____。
函数可以被其他函数调用
喵查答案:函数内可以嵌套定义函数
函数可以没有返回值
函数可以有多个形式参数
18 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。int sum(int n){ int s=0,i; for(i=0;i<=n;i++) ____________}void main(){ printf("The sum=%d\n",sum (10));}从备选答案中选择一答案,补全程序。
return s;
return s+=i;
喵查答案:s=s+i;return s;
s=s+n;return s;
19 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i++]); for(;i<10;i++) a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是
English—math
喵查答案:English
math
EnglishMath
20 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i])i++; for(;i<10;i++) a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是
喵查答案:English—math
English
math
EnglishMath
21 下面关于局部变量的描述中,错误的是_____。
函数的局部变量的有效范围只能在本函数
局部变量的名称不能和函数同名称
喵查答案:不同的函数中不能定义相同名称的局部变量
函数的形式参数也是局部变量
22 如果一个函数被定义为static类型,那么_____。
任何文件的函数都可以调用该函数
该函数只能被main函数调用
喵查答案:该函数能被当前源文件的函数调用,但不能被其他文件的函数调用
该函数不能被当前源文件的函数调用,可以被其他文件的函数调用
23 有以下程序 int fun(int a){ return a%2; }main(){ int a[8]={1,3,2,4},i,d=0; for (i=0;fun(a[i]);i++) d+=a[i]; printf(“%d\n”,d);}程序运行后的输出结果是
6
喵查答案:4
1
10
24 C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是
float
double
喵查答案:int
long
25 以下正确的函数定义是
double fun1(int x,int y){z=x+y;return z;}
funl(int x,y){int z;returnz;}
喵查答案:double funl(int x,int y){double z;z=x+y;return z;}
funl(x,y){int x,y;double z;z=x+y;return z;}
26 以下正确的函数声明语句是_______。
int fun(int a,b);
喵查答案:double fun();
float fun(inta,intb);
int fun(char a[][]);
27 以下叙述中正确的是
static类型全局变量,可以被其他文件中语句访问。
任何存储类的变量在未赋初值时,其值都是不确定的。
同一函数内的static类型局部变量比auto类型的局部变量的作用域大。
喵查答案:同一函数内的static类型局部变量比auto类型的局部变量的生存期长。
28 下面关于全局变量的描述中,错误的是_____
所有在函数体外定义的变量都是全局变量
全局变量直到程序结束时才被释放
全局变量可以和局部变量同名称
喵查答案:全局变量第一次被引用时,系统为其分配内存
29 设函数fun的定义形式为int fun(int a[],int n){ int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s;}void main(){int a[10]={1,2,3,4,5};printf("%d", fun(&a[1],2));}则程序的运行结果为
喵查答案:5
9
6
3
30 有以下程序void f(int v , int w){ int t; t=v;v=w;w=t;}main( ){ int x=1,y=2,z=3; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
2,3,1
3,1,2
喵查答案:1,2,3
1,33,1
31 、有以下程序int fun(int x , int y){ if(x<y) return x; return y;}void main( ){ int a= 9,b=8,c=7; printf("%d\n", fun(a,b));}程序的执行结果是
9
喵查答案:8
函数调用出错
7
32 若程序中定义了以下函数double myadd(double a,double b) { return (a+b) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的函数声明是
double myadd(double x,double y);
double myadd(double,double);
double myadd(double b,double a) ;
喵查答案:double myadd(double a,b) ;
33 设函数fun的定义形式为:fun(char ch,float x){…}则以下对函数fun的调用语句中正确的是______。
喵查答案:t=fun(‘D’,5)
fun(’78’,1)
fun(“abc”,3)
fun(‘ab’,3)
34 一个c程序的执行是从________
本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
本程序的main函数开始,到本程序文件的最后一个函数结束
本程序文件的第一个函数开始,到本程序main函数结束
喵查答案:本程序的main函数开始,到main函数结束
35 以下不正确的说法为
形式参数是局部变量
在不同函数中可以使用相同名字的变量
在函数内定义的变量只在本函数范围内有效
喵查答案:在函数内的复合语句中定义的变量在本函数范围内有效
36 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为
寄存器
喵查答案:自动
外部
静态
37 下面的描述错误的是_____。
函数可以被其他函数调用
喵查答案:函数内可以嵌套定义函数
函数可以没有返回值
函数可以有多个形式参数
38 函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。int sum(int n){ int s=0,i; for(i=0;i<=n;i++) ____________}void main(){ printf("The sum=%d\n",sum (10));}从备选答案中选择一答案,补全程序。
return s;
return s+=i;
喵查答案:s=s+i;return s;
s=s+n;return s;
39 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i++]); for(;i<10;i++) a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是
English—math
喵查答案:English
math
EnglishMath
40 有以下程序 int fun(char a[]){ int i=0,j=0; while(a[i])i++; for(;i<10;i++) a[i]='-';}main(){ char s[][10]={“English”,”math”,”physical”,”Chinese”}; fun(s[0]); printf(“%s”,s[0]);}程序运行后的输出结果是
喵查答案:English—math
English
math
EnglishMath
41 有以下程序 int fun(char a[],char b[]){ int i=0,j=0; while(a[i++]=b[j++]);}main(){ char s[][100]={“English”,”math”,”physical”,”Chinese”}; fun(s[1],s[2]); printf(“%s”,s[1]);}程序运行后的输出结果是
English
math
喵查答案:physical
Chinese
42 有以下程序 int fun(char a[],char b[]){ int i=0,j=0; while(a[i++]); while(a[i++]=b[j++]);}main(){ char s[100]=”book”,t[20]=”English”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是
bookEnglish
无输出
喵查答案:book
English
43 有以下程序 int fun(char a[],char b[]){ int i=0; while(a[i]=b[i++])i++; return i;}main(){ char s[100]=”book”,t[20]=”English”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是
English
喵查答案:Eogki
book
nlih
44 有以下程序 int fun(char a[],char b[]){ int i=0; while(a[i]=b[i])i++; return i;}main(){ char s[100]=”English”,t[20]=”Hi”; fun(s,t); printf(“%c”,s[3]);}程序运行后的输出结果是
h
0
无输出
喵查答案:l
45 有以下程序 int fun(char a[],char b[]){ int i=0; while(a[i]=b[i])i++; return i;}main(){ char s[100]=”Hello”,t[20]=”Hi”; fun(s,t); printf(“%s”,s);}程序运行后的输出结果是
Hello
喵查答案:Hi
HelloHi
Hillo
46 以下程序段结果是f1(int x){static int z=3,y=0;y++;z++;return(x+y+z);}void main(){int a=1,k;for(k=0;k<3;k++)printf("%4d",f1(a));}
7 9 11
6 6 6
7 8 9
喵查答案:6 8 10
第10周 内存地址及其指针
1 设有如下一段程序:int *p,a,b;a=10;p=&a;p=&b;a=*p+10;执行上面的程序后,a的值为
20
10
110
喵查答案:不确定
2
设有如下一段程序:
int *p,a,b;
a=10;
p=&b;
p=&a;
a=*p+10;
执行上面的程序后,a的值为
喵查答案:20
10
110
不确定
3 若在定义语句:int a,b,*p=&b;之后,接着执行以下选项中的语句,则能正确执行的语句是
scanf(“%d”,b);
scanf(“%d%d”,a,b);
喵查答案:scanf(“%d”,p);
scanf(“%d”,&p);
4
设有如下一段程序:
int *var,ab;
ab=100
var=&ab;
ab=*var+10;
执行上面的程序后,ab的值为
120
喵查答案:110
100
90
5 若有以下定义和语句:int b[10]={1,2,3,4,5,6,7,8,9,10},*p=b;则不能表示b数组元素的表达式是
*p
喵查答案:b[10]
*b
b[p-b]
6 下面程序输出数组中的最大值,由s指针指向该元素.void main(){ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s; for(p=a, s=a; p-a<10; p++) if(_______)s=p; printf(“Max=%d”,*s):}则在if语句中的判断表达式应该是
p>s
喵查答案:*p>*s
a[p]>a[s]
p-a>p-s
7
设有定义语句
int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
for(i=0;i<6;i++) printf("%2d",*(p++));
for(i=0;i<6;i++) printf("%2d",*(x+i));
喵查答案:for(i=0;i<6;i++) printf("%2d",*x++);
for(i=0;i<6;i++) printf("%2d",*p++);
8 设有定义语句int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是
for(i=0;i<6;i++) printf("%2d",*(p++));
for(i=0;i<6;i++) printf("%2d",*(p+i));
for(i=0;i<6;i++) printf("%2d",*p++);
喵查答案:for(i=0;i<6;i++) printf("%2d",(*p)++);
9 设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int *p=a[2];则下列能够正确表示数组元素a[1][2]的表达式是
喵查答案:*(p-1)
*(*(p-1))
*(p+1)
*(*(p+1)+2)
10
设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是
喵查答案:*(p+5)
*(*(p+5))
(*p+1)+2
*(*(p+1)+2)
11 执行以下程序后,y的值是void main ( ){ int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x++) y + = *(p + x);printf("%d\n",y); }
17
喵查答案:18
19
20
12 下列程序的输出结果是void main( ){ int a[5]={2,4,6,8,10},*p;p=a; printf(“%d”,*(++a)); }
4
2
6
喵查答案:程序出错
13 下列程序的输出结果是void main( ){ int a[5]={2,4,6,8,10},*p;p=a; printf(“%d”,*(p++)); }
4
喵查答案:2
4
6
14 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是
喵查答案:pb=&x
pb=x
*pb=&x
*pb=*x
15 如下指针变量声明语句正确的是?
int *pa=&a,*pb=&b,a=10,b=20;
喵查答案:int a=10,b=20,*pa=&a,*pb=&b;
int a=10,b=20;int *pa,pb=&b;
int a=10,b=20;int *pa,*pb=b;
16 设有如下一段程序:int *pa,*pb,a=10,b=20;pa=&a;*pa=a;a=b;b=*pa;执行上面的程序后,a的值为
喵查答案:20
30
10
程序出错
17
设有如下一段程序:
int *pa,*pb,a=10,b=20;
pb=&b;
*pa=a;
a=b;
b=*pa;
执行上面的程序后,a的值为
20
30
10
喵查答案:程序出错
18
设有如下一段程序:
int *pa,*pb,a=10,b=20;
pa=&a,pb=&b;
*pa=*pb;
a=*pa+10;
执行上面的程序后,a的值为
20
喵查答案:30
40
不确定
19 设有如下一段程序:int *pa,*pb,a=10,b=20;pa=&a,pb=&b;*pb=*pa;a=*pa+10;执行上面的程序后,a的值为
喵查答案:20
10
110
不确定
第11周 指针的应用
1 以下程序段 char *alp[]={“ABC”,”DEF”,”GHI”}; int j; puts(alp[1]);的输出结果是()。
ABC
喵查答案:DEF
GHI
ABCDEF
2 下列程序的输出结果是main( ){ char *p2,str[50]=”NEU”;char p1[10]=”abcd”;p2=”ABCD”;strcpy(str+2,strcat(p1+2,p2+1));printf(“%s”,str);}
NEabcd
喵查答案:NEcdBCD
NEUbcd
NEUabcd
3 设有如下定义: char *aa[2]={“abcd”,”ABCD”}; 则以下就法中正确的是
aa数组成元素的值分别是”abcd”和ABCD”
aa是指针变量,它指向含有两个数组元素的字符型一维数组
喵查答案:aa数组的两个元素分别存放字符串常量的首地址
aa数组的两个元素中各自存放了字符’a’和’A’的地址
4 设有如下函数定义:int f(char *s){ char *p=s;while(*p!=’\0′) p++;return(p-s); }如果在主程序中用下面的语句调用上述函数,则输出结果为printf(“%d\n”,f(“\ngoodbey!”));
8
喵查答案:9
10
11
5 有以下程序#includemain(){ int a[]= {1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf(“%d %d\n”,*p,*q);}程序运行后的输出结果是
喵查答案:运行后报错
6 6
6 11
5 10
6 请选出以下程序的输出结果#includesub(int x,int y,int *z){ *z=y-x; }main(){ int a, b, c;sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);printf(“%d,%d,%d\n”, a,b,c);}
5,2,3
喵查答案: -5,-12,-7
-5,-12,-17
5,-2,-7
7 设有如下程序:#includevoid main(){ int **k, *j, i=100;j=&i; k=&j;printf(“%d\n”, **k);}上面程序的输出结果是
运行错误
喵查答案:100
i的地址
j的地址
8 设有如下的程序段:char str[ ]=”Hello”;char *ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为
‘o’
喵查答案:‘\0’
不确定的值
‘o’的地址
9 有以下程序void fun(char *c){ while(*c) { if(*c>=’a’&&*c<='z') *c=*c-('a'-'A');c++; }}main(){char s[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入Hi Neu,则程序的输出结果是
hi neu
Hi Neu
喵查答案:HI NEU
hI nEU
10 有以下程序void fun(int *s){ while(*s) { if(*s%2) printf(“%d”,*s); s++; }}main(){ int a[8]={7,6,5,4,3}; fun(a); printf(“\n”);}程序运行后的输出结果是
76
65
64
喵查答案:753
11 设有定义:double x[100],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
scanf(“%lf”,&x[5]);
scanf(“%lf”,*(x+6));
喵查答案:scanf(“%lf”,p+6);
scanf(“%lf”,p[6]);
12 下面程序 char * fun2(char *t,char *s){ while(*t++); while(*t++=*s++); return *t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; char *t= fun2(a,b); printf(“%s”,a);}执行结果为
HelloNEU
喵查答案:Hello
NEU
输出为空
13 下面程序 char * fun1(char *t,char *s){ while(*t++=*s++); return *t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; fun1(a,b); printf(“%s”,b);}执行结果为
HelloNEU
Hello
喵查答案:NEU
输出为空
14 下面程序 char * fun2(char *t,char *s){ while(*t=*s){s++,t++;} return t;}int main(){ char a[100]=”Hello”; char b[10]=”NEU”; fun2(a,b); printf(“%s”,a);}
HelloNEU
Hello
喵查答案:NEU
输出为空
15 下面程序 char * fun1(char *t,char *s){ while(*t=*s){s++,t++;} return t;}int main(){ char a[100]=”Hello”; char b[20]=”NEU”; char *t=NULL; t=fun1(a,b); printf(“%s”,t);}执行结果为
HelloNEU
Hello
NEU
喵查答案:输出为空
16 以下程序的输出结果是main(){ int a[] = {2, 4, 6, 8, 10}, y = 1, x, *p; p = &a[1]; for(x = 0; x < 3; x++) y += *(p + x); printf(“%d\n”, y);}
20
18
17
喵查答案:19
17 以下程序的输出结果是 void fun(float *a, float *b){ float w; *a = *a + *a; w = *a; *a = *b; *b = w;}main(){ float x = 2.0,y = 3.0; float *px = &x, *py = &y; fun(px, py); printf(“%2.0f,%2.0f\n”, x, y);}
2, 3
喵查答案:3, 4
3, 2
4, 3
18 若已定义:int a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (*prt )[3] = a, *p = a[0];则能够正确表示数组元素a[1][2]的表达式是
*((*prt + 1)[2])
喵查答案: *(*(a + 1) + 2)
*(*(p + 5))
(*prt + 1) + 2
第12周 复杂对象描述与结构体
1 如下程序段 enum direction{left=10,right,up,down}; typedef enum direction Direction; Direction d=up; printf(“%d”,d++);输出结果为
11
喵查答案:12
1
0
2 如下程序段 enum direction{left=10,right,up,down}; enum direction a=left; int d = left+right; printf(“%d”,d);输出结果为
1
20
喵查答案:21
0
3 如下程序段 enum direction{left=10,right,up,down}; enum direction a=left; printf(“%d”,a);输出结果为
left
喵查答案:10
1
0
4 如下程序段 enum direction{left,right,up,down}; enum direction a=left; printf(“%d”,a);输出结果为
left
1
喵查答案:0
存在语法错误
5 下面程序 struct point{ float x,y,z;};int main(){ struct point points[5]={{1,0,0}}; printf(“%f”,points->x);}执行结果为
喵查答案:1.000000
0.000000
值不确定
无结果
6 下面程序 struct point{ float x,y,z;};int main(){ struct point points[5]={{1,0,0}}; printf(“%f”,points[1].x);}执行结果为
1.000000
喵查答案:0.000000
值不确定
无结果
7 下面程序 struct student{ int id; char name[32]; union { char c; int g; float f; } grade;}s1={100,”zhao”,{‘A’}};int main(){ struct student s1={20200001,”Joe”,’A’},s2={20200001,”Li”,65}; struct student p; p=s1; printf(“%s”,p.name);}执行结果为
喵查答案:Joe
Li
20200001
无结果
8 下面程序 struct point{ float x,y,z;};void swap(struct point* p1,struct point* p2) { struct point *m; m=p1,p1=p2,p2=m; }int main(){ struct point p1={1,2,3},p2={0,0,0}; swap(&p1,&p2); printf(“%f”,p2.x);}执行结果为
1.000000
喵查答案:0.000000
0.500000
无结果
9 下面程序 struct point{ float x,y,z;};void swap(struct point p1,struct point p2) { struct point m; m=p1,p1=p2,p2=m;}int main(){ struct point p1={1,2,3},p2={0,0,0}; swap(p1,p2); printf(“%f”,p2.x);}
1.000000
喵查答案:0.000000
0.500000
无结果
10 下面程序 struct point{ float x,y,z;};struct point mid(struct point p1,struct point p2) { struct point m; m.x=(p1.x+p2.x)/2; m.y=(p1.y+p2.y)/2; m.z=(p1.z+p2.z)/2; return m;}int main(){ struct point p1={1,2,3},p2,p3={0,0,0};; p2=p1; p3=mid(p1,p2); printf(“%f”,p3.x);}执行结果为
喵查答案:1.000000
0.000000
0.500000
存在语法错误,无结果
11 对于如下语句struct point { float x,y,z; }p1={1,2,3},p2,p3; p2=p1;如下说法正确的是
喵查答案:printf(“%f”,p2.x)的输出结果为1.000000
p3=p1+p2是合法的表达式
p2=p1+1是合法的表达式
存在语法错误
12 对于如下结构体定义struct student{ int id; char name[32]; union { char c; int g; float f; } grade;}s1={100,”zhao”,{‘A’}}如下说法不正确的是
strlen(s1.name)的值为4
喵查答案:s1.grade.g的值为0
s1.grade.c的值为’A’
s1.id的值为100
13 对于如下结构体定义struct student{ int id; char name[32]; union { char c; int g; float f; } grade;}s1={100,”zhao”,{‘A’}}如下说法正确的是
存在语法错误
喵查答案:表达式sizeof(s1.grade)的值为4
表达式sizeof(s1.grade)的值为9
s1.grade.g的值未知
14 对于如下结构体定义struct student{ int id; char name[32]; struct { unsigned int y; unsigned int m; unsigned int d; } birthday;}s1={100,”zhao”,{1999,10,1}};如下说法正确的是
在语法错误
表达式sizeof(s1.birthday)的值为4
喵查答案:表达式sizeof(s1.birthday)的值为12
s1.birthday.m的值为1
15 对于如下结构体定义struct student{ int id; char name[32];}s1={100,”zhao”};如下说法正确的是
存在语法错误
表达式sizeof(s1.name)的值为4
喵查答案:表达式sizeof(s1)的值为36
表达式strlen(s1.name)的值为32
16 对于如下结构体定义struct student{ int id; char name[32];}s1,*p;若令p=&s1,则如下说法不正确的是
*p和s1的值相同,p指向s1
s1.id=100与p->id=100的功能相同,都是为s1的id成员赋值100
scanf(“%s”,p->name)实现给name成员赋值
喵查答案:scanf(“%s”,p.name)实现给name成员赋值
17 对于如下结构体定义struct student{ int id; char name[32];}s1;如下说法不正确的是
sizeof(s1)与sizeof(struct student)的值相等
s1.id=100实现给id成员变量赋值
scanf(“%s”,s1.name)实现给name成员赋值
喵查答案:scanf(“%s”,&s1.name)实现给name成员赋值
18 对于如下结构体定义typedef struct student{ int id; char name[32];}Student;如下说法正确的是
typedef struct student为数据类型
student为数据类型
喵查答案:Student为数据类型
Student为结构体变量名称
19 对于如下结构体定义struct student{ int id; char name[32];}s1;如下说法正确的是
喵查答案:struct student 为数据类型
student为数据类型
s1为数据类型
struct s1 为数据类型
20 关于结构体说法不正确的是
结构体为一种用户自定义数据类型
结构体要先定义,之后才能用于声明变量
喵查答案:结构体必须在函数外部定义
结构体可以嵌套定义,即在一个结构体中再定义新的结构体
第13周 链表及其处理
1 对于如下结构体定义struct node{ int id; struct node *next;}*list,*p;有如下函数定义void fun(struct node* p){ while(p->next!=NULL) { printf(“%d”,p->id); p=p->next; }}若将单向链表首地址传给fun,如下说法正确的是
喵查答案: fun函数可以实现输出链表中所有节点的id信息
fun函数为死循环,不能正常结束
fun函数需要补充链表首地址参数,才能实现输出链表中所有节点的id信息
fun函数存在语法错误
2 对于如下结构体定义struct node{ int id; struct node *next;};假设list存储链表首地址,p当前的链表的某节点,q为p前一个节点,也就是说q->next = p如下说法正确的是
喵查答案:表达式 q->next=p->next,free(p)实现删除节点p
表达式 q->next=p->next 实现删除节点p
表达式 p->next=q->next 实现删除节点p
表达式 p->next=q->next,free(p) 实现删除节点p
3 对于如下语句struct node{ int id; struct node *next;}*p;p=(struct node*)malloc(sizeof(struct node)*10);如下说法正确的是
p.id=10实现给首节点的id成员赋值
*p.id=10实现给首节点的id成员赋值
喵查答案:(*p).id=10实现给首节点的id成员赋值
p=>id=10实现给首节点的id成员赋值
4 对于如下结构体定义struct node{ int id; struct node *next;}a;若声明如下变量struct node *p;在32位系统中,不能实现创建链表节点的操作是
p=(struct node*)malloc(sizeof(struct node));
喵查答案: p=(node*)malloc(sizeof(node));
p=(struct node*)malloc(sizeof(a));
p=(struct node*)malloc(8);
5 关于如下语句,说法不正确的是struct node{ int id; struct node *next;}* list,n;
list为结构体指针变量,可以用于存储链表首地址
喵查答案:n 为结构体指针变量,可以存储节点地址
sizeof(struct node)的值为8(在32位系统中)
list->next 可以获得下一节点地址
6 关于如下语句,说法不正确的是union node{ int id; union node *next;};
node为标识符
union node为数据类型名称
喵查答案:union node可以用于定义链表
sizeof(union node)的值为4(在32位系统中)
7 关于如下结构体struct node{ int id; struct node *next;};说法不正确的是
struct node为数据类型
struct node可以用于定义链表
喵查答案: 结构体标识符node可以省略
next 指向下一个结构体变量
8 关于如下结构体说法正确的是struct node{ int id; struct node next;};
node为数据类型
next 指向下一个结构体变量
喵查答案:此结构体定义存在错误
struct 可以省略
9 结构体struct node{ int id; struct node *next;};定义了链表list假设p为其中一个节点;如果在p后插入节点w,如下操作正确的是
p->next =w,w->next=p->next;
喵查答案:w->next=p->next,p->next=w;
t=w,w=p,p=t;
t=p->next;p->next=w;
10 如下共用体union var{ char c; int d; float f; double e; char str[128];};声明如下变量union var x;如下说法正确的是?
喵查答案:可以存储char、int、float、double类型数据或不超过127个ASCII字符的字符串
表达式(x.c=’A’,x.d=97)执行完后,putchar(x.c)的结果为’A’
sizeof(union var)的值145
var为数据类型名称
11 对于如下结构体struct point{float x,y;};如下语句执行后输出结果为struct point p1={1,2},p2={3,4},*t,*q;t=(struct point*)malloc(sizeof(struct point));memcpy(t,&p1,sizeof(struct point)); //memcpy从源内存地址&p1的起始位置开始拷贝若干个字节到目标内存地址t中printf(“%.0f”,t->x);
0
喵查答案:1
2
存在语法错误
12 对于如下结构体struct point{float x,y;};声明如下变量struct point p1={1,2},p2={3,4},s,*p;如下说法正确的是?
表达式s=p1+p2的结果为{4,6}
表达式(p=@p1,s=*p)结果为{1,2}
表达式s=p2+1结果为{4,5}
喵查答案:表达式(p=&p1,*p=p2)结果为{3,4}
13 设有如下定义: struct sk{int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是
(*p).data.a
喵查答案:(*p).a
p->data.a
p.data.a
14 对于如下语句typedef struct mytype{ int n; char ch[8];}* MYTYPE;如下说法正确的是
喵查答案:MYTYPE是 struct mytype*类型别名
MYTYPE结构体变量名
MYTYPE结构体指针变量名
MYTYPE是 struct mytype类型别名
15 设有以下语句typedef struct { int n; char ch[8];}MYTYPE;则下面叙述中正确的是
MYTYPE 是结构体变量名
喵查答案:MYTYPE是结构体类型名
typedef struct 是结构体类型
struct 是结构体类型名
第14周 预编译处理
1 如下说法正确的是?
带参数的宏与函数的实现机制相同,例如都支持参数传递
带参数的宏与函数类似,可以实现递归调用
喵查答案:宏可以带参数
宏可以有返回值
2 如下说法不正确的是?
使用宏比调用函数的运行效率高
使用宏会增加代码的规模
喵查答案:宏支持参数,其参数传递机制与函数的参数传递机制一致,均遵循值拷贝机制
宏被预处理为C语言语句后,再参与编译。
3 对于如下程序int main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(ab)t=b;#endifprintf(“%d”,t);}输出结果为
0
喵查答案:3
4
存在语法错误
4 对于如下程序#define MAXint main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a<b)t=b;#endifprintf("%d",t);}输出结果为
0
3
喵查答案:4
存在语法错误
5 对于如下程序int main(){int a=3,b=4,t=0;#ifdef MAXt=a;if(a>b)t=a;#endifprintf(“%d”,t);}输出结果为
喵查答案:0
3
4
存在语法错误
6 对于如下程序#define ADD(a,b) a=a+bint main(){int a=3,b=4,t=0;t=ADD(a,b)*ADD(a,b);printf(“%d”,t);return 0;}输出结果为
49
19
16
喵查答案:存在语法错误
7 对于如下程序#define ADD(a,b) a=a+bint main(){int a=3,b=4,t=0;t=ADD(a,b);printf(“%d”,t);return 0;}
3
4
喵查答案:7
存在语法错误
8 对于如下程序#define SWAP(a,b) {int t;t=a;a=b;b=t;}int main(){int a=3,b=4,t;t=SWAP(a,b);printf(“%d”,a);return 0;}输出结果为
3
4
0
喵查答案:存在语法错误
9 对于如下程序#define SWAP(a,b) {int t;t=a;a=b;b=t;}int main(){int a=3,b=4;SWAP(a,b);printf(“%d”,a);return 0;}输出结果为
3
喵查答案:4
0
存在语法错误
10 对于如下程序#define MAX(a,b) a>b?a:bint main(){int a=3,b=4,t=0;t=MAX(a,b);printf(“%d”,t);return 0;}输出结果为
3
喵查答案:4
0
存在语法错误
11 对于如下程序#define IF if(a<b)t=a;int main(){int a=3,b=4,t=0;IF { a=b; b=t;}printf("%d",a);return 0;}输出结果为
3
喵查答案:4
0
存在语法错误
12 对于如下程序#define SUM for(i=0;i<=10;i++)s=s+i;int main(){int i=0,s=0;SUMprintf("%d",s);return 0;}输出结果为
0
1
喵查答案:55
存在语法错误
13 对于如下程序#define CT 3>4#define CE CT?3:4int main(){printf(“%d”,CE);return 0;}输出结果为
0
1
3
喵查答案:4
14 对于如下程序#define CT 3>4int main(){printf(“%d”,CT);return 0;}输出结果为
喵查答案:0
1
3
4
15 对于如下程序#define CT (2-1)int main(){printf(“%d”,CT*CT);return 0;}输出结果为
喵查答案:1
-1
-3
存在语法错误
16 对于如下程序#define CT 2-1int main(){printf(“%d”,CT*CT);return 0;}输出结果为
1
喵查答案:-1
-3
存在语法错误
17 对于如下程序#define CT “1+2″int main(){printf(“%s”,CT);return 0;}输出结果为
喵查答案:1+2
3
1
2
18 对于如下程序#define CT 1+2int main(){printf(“%d”,CT);return 0;}输出结果为
1+2
喵查答案:3
1
2
第15周 文件与数据永久存储
1 对于如下程序void main(){ FILE *fp; char names[100]=”Helloworld”; char text[100]=””; fp=fopen(“g:\\test.dat”,”wb+”); fwrite(names,sizeof(char),strlen(names),fp); rewind(fp); fwrite(“Hi123”,sizeof(char),5,fp); fread(text,sizeof(char),5,fp); puts(text); fclose(fp);}输出结果为
Helloworld
喵查答案:world
Hello
输出结果不确定
2 对于如下程序void main(){ FILE *fp; char names[100]=”Helloworld”; char text[100]=””; fp=fopen(“g:\\test.dat”,”wb+”); fwrite(names,sizeof(char),strlen(names),fp); rewind(fp); fread(text,sizeof(char),5,fp); puts(text); fclose(fp);}输出结果为
Helloworld
world
喵查答案:Hello
输出结果不确定
3 对于如下程序void main(){ FILE *fp; char names[100]=”Helloworld”; char text[100]=””; fp=fopen(“g:\\test.dat”,”wb”); fwrite(names,sizeof(char),strlen(names),fp); fclose(fp); fp=fopen(“g:\\test.dat”,”rb”); fseek(fp,5,SEEK_CUR); fread(text,sizeof(char),5,fp); puts(text); fclose(fp);}
Helloworld
喵查答案:world
Hello
输出结果不确定
4 对于如下程序void main(){ FILE *fp; int a[10]={0,1,2,3,4,5,6}; fp=fopen(“g:\\test.dat”,”wb”); fwrite(&a,sizeof(int),5,fp); fclose(fp);}如下说法不正确的是?
实现将数组a中的前5个元素的值到文件test.dat中
fwrite的第一个参数错误,应该为a,不是&a,但是程序可以运行
喵查答案:实现将数组a中的后5个元素的值写入到文件test.dat中
test.dat文件大小为20字节
5 对于如下程序void main(){ FILE *fp; int a=10; fp=fopen(“g:\\test.dat”,”wb”); fwrite(&a,sizeof(int),1,fp); fclose(fp);}关于test.dat文件大小如下说法正确的是
喵查答案:4个字节
5个字节
6个字节
8个字节
6 文本文件中的test.txt内容如下1,2,3,5执行如下程序后,输出结果为void main(){ FILE *fp; int a,b,c; char m; fp=fopen(“g:\\test.txt”,”r”); fscanf(fp,”%d%d%d%c”,&a,&b,&c,&m); printf(“a=%d,b=%d,c=%d,m=%c”,a,b,c,m); fclose(fp);}输出结果为
a=1,b=2,c=3,m=5
a=1,b=2,c=3,m=,
a=1,b=,,c=2,m=,
喵查答案:格式串错误。只有a成功读取值1,其他变量的值均没有读取成功
7 对于如下程序#include void main(){ FILE *fp; fp=fopen(“test.txt”,”w”); fprintf(fp,”%5.2f”,0.12345678); fclose(fp);}文件中的test.txt内容是
喵查答案: 0.12
0.12345
0.12
00.12
8 关于fclose函数的说法,如下描述正确的是
喵查答案:fclose与fopen对应,打开的文件,完成读写操作后,必须通过fclose关闭
fclose不是必须调用,系统会自动关闭通过fopen打开的文件
采用读模式打开的文件,完成读操作后,可以不调用 fclose
采用写模式打开的文件,完成写操作后,可以不调用 fclose
9 如下语句中不能实现向屏幕输出文本“hello”的是
fprintf(stdout,”%s”,”hello”);
喵查答案:printf(stdout,”%s”,”hello”);
printf(“%s”,”hello”);
puts(“hello”);
10 如下标准设备中,属于键盘的是
喵查答案:stdin
stdout
stderr
stdkeyborad
11 如果二进制文件”d:\data.dat”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.dat”,”wb”);如下描述正确的是
喵查答案:文件”d:\data.dat”的内容被清空
打开文件后,可以执行读操作
打开文件后,可以调用fprintf函数实现写操作
此语句函数fopen调用错误
12 如果二进制文件”d:\data.dat”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.dat”,”a”);如下描述正确的是
文件”d:\data.dat”的内容被清空
打开文件”d:\data.dat”后,从文件头开始执行写操作
文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写
喵查答案:此语句函数fopen调用错误
13 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”a”);如下描述正确的是
文件”d:\data.txt”的内容被清空
文件”d:\data.txt”的内容不动,之后的读操作,将从文件末尾开始读
喵查答案:文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写
此语句函数fopen调用错误
14 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”r”);如下描述正确的是
文件”d:\data.txt”的内容被清空
喵查答案:文件打开成功,后面可以执行读操作
fp的值为NULL
此语句函数fopen调用错误
15 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”w”);如下描述正确的是
喵查答案:文件”d:\data.txt”的内容被清空
文件”d:\data.txt”的内容不动,之后的写操作,将从文件末尾开始写,实现追加操作
fp的值为NULL
此语句函数fopen调用错误
16 如下打开文件”data.dat”操作中,实现以读模式二进制文件的语句是
fp=fopen(“data.dat”,”r”);
fp=fopen(“data.dat”,”wb”);
喵查答案:fp=fopen(“data.dat”,”rb”);
fp=fopen(“data.dat”,”a”);
17 如下打开文件”data.txt”操作中,实现以读模式打开文本文件的语句是
喵查答案:fp=fopen(“data.txt”,”r”);
fp=fopen(“data.txt”,’r’);
fp=fopen(“data.txt”,”rb”);
fp=fopen(“data.txt”,”a”);
期末考试
1 如下函数计划通过函数返回值统计函数被调用次数,则e1对应声明语句为int fun(int x){ e1 ++n; return n;}
static int n=1;
int n=0;
int n=1;
喵查答案:static int n=0;
2 如下调用strcpy实现将s指向的字符串拷贝到t中,则e1对应声明语句为int main(){ char *s=”Hello”; e1 strcpy(t,s); puts(t); return 0;}
char t[];
char t[0];
喵查答案:char t[1024];
char *t;
3 如下函数实现字符串拷贝(从s指向数组拷贝到t指向数组)int mstrcpy(char *t,char *s){ char *p=t; while( e1 ); return p-t-1;}则e1对应的表达式是?
(*p)++=(*s)++
p++=s++
喵查答案:*p++=*s++
++(*p)=++(*s)
4 如下函数实现字符串长度计算int mstrlen(char *s){ char *p=s; while(*p++); return e1 ;}则e1对应的表达式是?
p-s
s-p
喵查答案:p-s-1
p-s+1
5 如下程序实现素数(大于等于2,且除了1和自身之外没有因子自然数)的判定int main(){ int n=0; scanf(“%d”,&n); int i=0; for(i=2; i<n; i++) { if(n%i==0){ break; } } if( e1 ) { printf(“%5d 是素数”,n); } return 0;}则e1对应的表达式是?
n>i
i<n
喵查答案:i>=n
i>n
6 如下程序实现完数(除自身之外因子之后等于自身的数)的判定int main(){ int n=0; scanf(“%d”,&n); int i=0,s=0; for(i=1; i<n; i++) { if( e1 ) { s+=i; } } if(s==n) { printf(“%5d is the number”,n); } return 0;}则e1对应的表达式是?
n/i
n%i
喵查答案:n%i==0
i%n==0
7 有以下程序int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;printf(“%d\n”, *p + *q);return 0;}程序运行后的输出结果是
喵查答案:10
16
8
6
8 若有语句:char *name[5];以下叙述中正确的是
喵查答案:name是一个数组,每个数组元素是一个char*类型的指针变量
name是一个指针变量,该变量可以指向一个长度为5的字符型数组
name是一个指针数组,语句中的*号称为间址运算符
name是一个指向字符型函数的指针
9 有以下程序片段int a[ ]={1,2,3,4},y,*p=&a[2];p++;y=*p;printf(“y=%d\n”,y);程序的运行结果是
喵查答案:y=4
y=1
y=2
y=3A
10 设有如下程序段char s[20]=”Bejing”,*p=s;下叙述正确的是
喵查答案:可以用*p表示s[0]
s数组中元素的个数和p所指字符串长度相等
s和p都是指针变量
数组s中的内容和指针变量p中的内容相等
11 假设fp为FILE* 指针变量,如下代码执行后, char *s1=”China”,*s2=”Beijing”; FILE *fp=NULL; fp=fopen(“abc.dat”,”wb”); fwrite(s2,7,1,fp); rewind(fp); fwrite(s1,5,1,fp); fclose(fp);文件abc.dat的内容是
喵查答案:Chinang
China
ChinaBeijing
BeijingChina
12 下面结构体的定义如下:struct student{ char name[32]; struct date{ int day; int month; int year; }birthday;};错误的初始化语句是:
喵查答案:struct student s1={‘Li’,1,1,2000};
struct student s1={“Li”,{1,1,2000}};
struct student s1={“Li”,1,1,2000};
struct student s1={“Li”,1,1};
13 下面结构体的定义语句中,错误的是
喵查答案:struct point {int x;int y;int z;} struct point a;
struct point {int x;int y;int z;}; struct point a;
struct point {int x,y,z;} a;
struct {int x;int y;int z;} a;
14 如下语句中实现数组指针声明的是?
喵查答案:char (*s)[10];
char *s[0];
char *s[10];
(char *)s[10];
15 打开文件,将读写位置指向文件尾部的操作是
fseek(fp,0L,SEEK_SET);
喵查答案:fseek(fp,0L,SEEK_END);
fseek(fp,0L,SEEK_CUR);
fseek(fp,0L,SEEK_BEGIN);
16 对于如下程序void main(){ FILE *fp; int a[]={10,11,12}; fp=fopen(“d:\\test.dat”,”wb”); fwrite(&a,sizeof(int),2,fp); fclose(fp);}关于test.dat文件大小如下说法正确的是
2个字节
4个字节
喵查答案:8个字节
12个字节
17 如下函数定义int fun(int *p,int n){ int *t=p+n-1; int x; while(p<t){ x=*p,*p=*t,*t=x,p++,t–; }}则如下语句的输出结果为 int A[10]={1,2,3,4,5,6,7,8,9,10}; fun(A,10); printf("%d",A[6]);
喵查答案:4
5
6
7
18 如下语句的执行结果为 int A[3][3]={{1,11,111},{2,22,222},{3,33,333}}; int (*p)[3]=A; printf(“%d”,*(*(p+1)+1));
11
喵查答案:22
33
不确定的值
19 如下语句的执行结果为 int A[3][3]={{1,11,111},{2,22,222},{3,33,333}}; int *p[3]; *p=A[0]; printf(“%d”,*(*(p+1)+1));
11
22
2
喵查答案:不确定的值
20 有如下枚举类型定义enum direction{right,left=100,forward=200,backward=300};则如下语句 int a=100; switch(a){ case right: a++; case left: a+=left; break; } printf(“%d”,a);的输出结果为
100
喵查答案:200
300
101
21 如下函数计划通过函数返回值统计函数被调用次数,则e1对应声明语句为int fun(int x){ e1 ++n; return n;}
static int n=1;
int n=0;
int n=1;
喵查答案:static int n=0;
22 如下调用strcpy实现将s指向的字符串拷贝到t中,则e1对应声明语句为int main(){ char *s=”Hello”; e1 strcpy(t,s); puts(t); return 0;}
char t[];
char t[0];
喵查答案:char t[1024];
char *t;
23 如下函数实现字符串拷贝(从s指向数组拷贝到t指向数组)int mstrcpy(char *t,char *s){ char *p=t; while( e1 ); return p-t-1;}则e1对应的表达式是?
(*p)++=(*s)++
p++=s++
喵查答案:*p++=*s++
++(*p)=++(*s)
24 如下函数实现字符串长度计算int mstrlen(char *s){ char *p=s; while(*p++); return e1 ;}则e1对应的表达式是?
p-s
s-p
喵查答案:p-s-1
p-s+1
25 如下程序实现素数(大于等于2,且除了1和自身之外没有因子自然数)的判定int main(){ int n=0; scanf(“%d”,&n); int i=0; for(i=2; i<n; i++) { if(n%i==0){ break; } } if( e1 ) { printf(“%5d 是素数”,n); } return 0;}则e1对应的表达式是?
n>i
i<n
喵查答案:i>=n
i>n
26 如下程序实现完数(除自身之外因子之后等于自身的数)的判定int main(){ int n=0; scanf(“%d”,&n); int i=0,s=0; for(i=1; i<n; i++) { if( e1 ) { s+=i; } } if(s==n) { printf(“%5d is the number”,n); } return 0;}则e1对应的表达式是?
n/i
n%i
喵查答案:n%i==0
i%n==0
27 有以下程序int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;printf(“%d\n”, *p + *q);return 0;}程序运行后的输出结果是
喵查答案:10
16
8
6
28 若有语句:char *name[5];以下叙述中正确的是
喵查答案:name是一个数组,每个数组元素是一个char*类型的指针变量
name是一个指针变量,该变量可以指向一个长度为5的字符型数组
name是一个指针数组,语句中的*号称为间址运算符
name是一个指向字符型函数的指针
29 有以下程序片段int a[ ]={1,2,3,4},y,*p=&a[2];p++;y=*p;printf(“y=%d\n”,y);程序的运行结果是
喵查答案:y=4
y=1
y=2
y=3A
30 设有如下程序段char s[20]=”Bejing”,*p=s;下叙述正确的是
喵查答案:可以用*p表示s[0]
s数组中元素的个数和p所指字符串长度相等
s和p都是指针变量
数组s中的内容和指针变量p中的内容相等
31 假设fp为FILE* 指针变量,如下代码执行后, char *s1=”China”,*s2=”Beijing”; FILE *fp=NULL; fp=fopen(“abc.dat”,”wb”); fwrite(s2,7,1,fp); rewind(fp); fwrite(s1,5,1,fp); fclose(fp);文件abc.dat的内容是
喵查答案:Chinang
China
ChinaBeijing
BeijingChina
32 下面结构体的定义如下:struct student{ char name[32]; struct date{ int day; int month; int year; }birthday;};错误的初始化语句是:
喵查答案:struct student s1={‘Li’,1,1,2000};
struct student s1={“Li”,{1,1,2000}};
struct student s1={“Li”,1,1,2000};
struct student s1={“Li”,1,1};
33 下面结构体的定义语句中,错误的是
喵查答案:struct point {int x;int y;int z;} struct point a;
struct point {int x;int y;int z;}; struct point a;
struct point {int x,y,z;} a;
struct {int x;int y;int z;} a;
34 如下语句中实现数组指针声明的是?
喵查答案:char (*s)[10];
char *s[0];
char *s[10];
(char *)s[10];
35 打开文件,将读写位置指向文件尾部的操作是
fseek(fp,0L,SEEK_SET);
喵查答案:fseek(fp,0L,SEEK_END);
fseek(fp,0L,SEEK_CUR);
fseek(fp,0L,SEEK_BEGIN);
36 对于如下程序void main(){ FILE *fp; int a[]={10,11,12}; fp=fopen(“d:\\test.dat”,”wb”); fwrite(&a,sizeof(int),2,fp); fclose(fp);}关于test.dat文件大小如下说法正确的是
2个字节
4个字节
喵查答案:8个字节
12个字节
37 如下函数定义int fun(int *p,int n){ int *t=p+n-1; int x; while(p<t){ x=*p,*p=*t,*t=x,p++,t–; }}则如下语句的输出结果为 int A[10]={1,2,3,4,5,6,7,8,9,10}; fun(A,10); printf("%d",A[6]);
喵查答案:4
5
6
7
38 如下语句的执行结果为 int A[3][3]={{1,11,111},{2,22,222},{3,33,333}}; int (*p)[3]=A; printf(“%d”,*(*(p+1)+1));
11
喵查答案:22
33
不确定的值
39 如下语句的执行结果为 int A[3][3]={{1,11,111},{2,22,222},{3,33,333}}; int *p[3]; *p=A[0]; printf(“%d”,*(*(p+1)+1));
11
22
2
喵查答案:不确定的值
40 有如下枚举类型定义enum direction{right,left=100,forward=200,backward=300};则如下语句 int a=100; switch(a){ case right: a++; case left: a+=left; break; } printf(“%d”,a);的输出结果为
100
喵查答案:200
300
101
41 有如下枚举类型定义enum direction{right,left=100,forward,backward};则如下语句 enum direction a=right; switch(a){ case right: a++; case left: a+=left; break; } printf(“%d”,a);的输出结果为
0
1
100
喵查答案:101
42 已定义共用体union var{ char s[32]; int n; float f; double e;};则如下说法正确的是
sizeof(union var)的值为48
喵查答案:sizeof(union var)的值为32
sizeof(union var)的值为4
sizeof(union var)的值为8
43 已定义函数int fun(int x){ static int i=0; int s=0; while(i<x){ s=s+i; i++; } return s;}则如下语句的执行结果为 int n=1; int s=0; while(n<5) { s=s+fun(n++); } printf("%d",s);
10
15
20
喵查答案:6
44 定义函数int fun(char*t,char *s){ static int i=0; while(*(s+i)){ *t=*(s+i); t++; s++; i++; } return i;}则如下语句的执行结果为 char s[]=”HelloNEU”; char t[100]=”MyCProgramming”; fun(t,s); puts(t);
HelloNEU
HloE
喵查答案:HloErogramming
ello
45 已定义数组char s[]=”HelloNEU”,执行如下语句后, char *p=s; int i=0; while(p[i]){ putchar(p[i]); i++; p++; }输出结果为
HelloNEU
喵查答案:HloE
HNEU
ello
46 使用如下语句FILE* fp=fopen(“abc.dat”,”w+”);打开文件abc.dat后,如下描述中不正确的是?
如果abc.dat已经存在,则其内容会被清空
对abc.dat可以进行写操作,也可以进行读操作
喵查答案:对abc.dat可以进行追加操作,也可以进行写操作
如果abc.dat不存在,将自动创建此文件
47 相对于使用一维数组存储有序的集合,使用单向链表可获得那些好处,如下描述正确的是
更加节省存储空间
遍历集合的速度更快
喵查答案:删除元素速度更快
追加元素的速度更快
48 有如下结构体数组定义struct point{ float x,y,z;}s[3]={{1,2,3}};则如下语句的 struct point *p=s+1; printf(“%d”,++p->x);输出结果为
喵查答案:1
2
3
4
49 有如下结构体数组定义struct student{ char name[16]; int math; float programming;}s[3]={{“LiMing”,80,90.5},{“Joe”,80,90.5},{“John”,80,90.5}};则puts((s+1)->name+1))的输出
LiMing
Joe
喵查答案:oe
80
50 设有定义:struct{ char name[16]; int math; float programming;}x1,x2; 若变量均已正确赋初值,则以下语句中错误的是
x1=x2;
喵查答案:x1.name = x2.name;
x1.math = x2.math;
x1.programming = x2.programming;
51 有如下宏定义#define A(x) 2*x+10#define T(x) A(x)*x则表达式T(2+1)的值为
喵查答案:26
36
48
27
52 下程序的功能是int fun(int x){ if(x==0||x==1)return x; else return x+fun(x-1);}
计算x的阶乘
喵查答案:计算1+2+…+x的和
计算x的幂
不确定
53 若函数fun定义如下int fun(char a[],char b[]){ int i=0,j=0; while(a[i]=b[i])i++;}如下程序代码执行结果为char s[10][100]={“English”,”math”,”physical”,”Chinese”};int i=0;for(i=0;i<3;i++){ if(s[i][0]>s[i+1][0]) { fun(s[5],s[i]); fun(s[i],s[i+1]); fun(s[i+1],s[5]); }}printf(“%s”,s[3]); 程序运行后的输出结果是
English
math
喵查答案:physical
Chinese
54 有以下函数int fun(char *t,char *s){ char *p=t; char *q=s,*m=t; while(*t){ q=s; p=t; while(*q){ if(*q!=*p) break; p++,q++; } if(*q==0){ p=t; break; } t++; } return p-m;}执行以下程序片段 char s[]=”English Boook”; printf(“%d”,fun(s,”ng”));程序运行后的输出结果是
0
喵查答案:1
2
3
55 有以下函数int fun(char *s){ char *p=s; while(*s++); return s-p;}执行以下程序片段 char s[]=”x\0123yz”; printf(“%d %d”,fun(s),sizeof(s));程序运行后的输出结果是
5 6
喵查答案:6 6
6 5
7 4
56 有如下函数int fun(char *s){ int i=0; int t=0; while(*s!=’\0′){ if(*s>=’0’&&*s<='9'){ t=t*10+*s-'0'; } s++; } return t;}执行以下程序片段 char text[]="abc123t4x"; printf("%d",fun(text));程序运行后的输出结果是
0
123
喵查答案:1234
程序运行出错
57 有如下函数void fun(char s[],char *t){ int i=0; while(s[i]!=’\0′){ if(s[i]>=’0’&&s[i]<='9'){ *t=s[i]; t++; } i++; } *t=0;}执行以下程序片段 char text[]="abc123",t[64]=""; fun(text,t); puts(t);程序运行后的输出结果是
abc
喵查答案:123
abc123
程序运行出错
58 有以下函数void fun(int *p,int *q){ int *t; t=p; p=q; q=t;}执行以下程序片段{ int A[5]={1,2,3,4,5}; int i; for(i=0;i<4;i++){ fun(A[i],A[i+1]); } printf("%d",A[4]); return 0;}程序运行后的输出结果是
1
3
4
喵查答案:5
59 执行以下程序片段 int m=1,n=2,*p=&m,*q=&n,*r; *r=*p;*p=*q;*q=*r; printf(“%d,%d,%d,%d\n”,m,n,*p,*q);程序运行后的输出结果是
1,2,2,1
1,2,1,2
2,1,2,1
喵查答案:程序运行错误
60 有以下函数int fun(char a[],char b[]){ int i=0; while(a[i]==b[i])i++; return i;}执行以下程序片段 char s[100]=”MyEnglish”,t[20]=”Ling”; printf(“%d”,fun(s+3,t+2));程序运行后的输出结果是
0
1
喵查答案:2
死循环
61 有如下函数int fun(int n){ int i=2; while(i<n){ if(n%i==0) return n; i++; } return 0;}执行如下程序片段 int a[3][4]= {1,2,3,4,5,6,7,8,9}; int s=0,i=0; for(i=0; i<3; i++) s=s+fun(a[1][i]); printf("%d",s);程序运行后的输出结果是
5
喵查答案:6
7
12
62 有以下函数void fun(int a[3][4],int n){ int i=0,j=0; for(i=0; i<n; i++) { a[i][3]=0; for(j=0; j<3; j++) { a[i][3]+=a[i][j]; } }}执行如下程序片段 int a[3][4]= {1,2,3,4,5,6,7,8,9}; int i; fun(a,3); for(i=0; i<3; i++) printf(“%3d”,a[i][3]);程序运行后的输出结果是
6 15 24
喵查答案:6 18 9
0 0 0
11 15 19
63 有以下程序片段 int a[3][3]= {1,2,3,4,5,6,7,8,9}; int i=0,j=0; for(i=0; i<3; i++) for(j=0; j<3; j++) { if((i+j)%2==0) a[i][j]=1; } for(i=0; i<3; i++) printf("%d",a[i][i]);程序运行后的输出结果是
喵查答案:111
159
359
222
64 有以下函数int T(char t[],char s[]){ int i=0; while(s[i]!=0&&i/2!=0) t[i]=s[i++]; t[i]=0; return i;}执行如下代码片段后 char s[]=”ABCD”; char t[100]=”Hi”; T(t,s); printf(“%s”,t);程序运行后的输出结果是
喵查答案:无输出,或者说输出空串
AB
Hi
HA
65 有以下函数int fun(char t[]){ int i=0,s=0; while(t[i]){ s=s+t[i]-‘0’; i++; } return s;}执行如下代码片段后 char s[]=”12345″; printf(“%d”,fun(s));程序运行后的输出结果是
6
10
喵查答案:15
20
66 有以下函数int fun(char t[],char s[]){ int i=0; while((t[i]=s[i])!=0)i++; return i;}执行如下代码片段后 char s[]=”NEU C\0 Programming”; char t[100]; fun(t,s); printf(“%d”,strlen(t));程序运行后的输出结果是
3
4
喵查答案:5
6
67 有以下程序#define X 1+2int main(){ int a=2,b=0; b=X*X/a; printf(“%d\n”,b); return 0;}程序运行后的输出结果是
6
喵查答案:4
12
8
68 有以下程序片段, char s[]=”123″; int i=0,d=0; while(s[i]){ d=d+s[i]-‘0’; i++; } printf(“%d”,i);程序运行后的输出结果是
6
123
喵查答案:3
4
69 如下语句中不能实现向屏幕输出文本“NEU”的是
fprintf(stdout,”%s”,”NEU”);
喵查答案:sprintf(stdout,”%s”,”NEU”);
printf(“%s”,”NEU”);
puts(“NEU”);
70 如下标准设备文件中,代表键盘的是?
喵查答案:stdin
stdout
stderr
stdkeyborad
71 如果文本文件”d:\data.txt”已经存在,如果执行如下操作(fp已经声明)fp=fopen(“d:\\data.txt”,”r”);如下描述正确的是
文件”d:\data.txt”的内容被清空
喵查答案:文件打开成功,后面可以执行读操作
fp的值为NULL
此语句函数fopen调用错误
72 对于如下程序#define MAX(x,y) x>y?x:yint main(){printf(“%d”,MAX(10,20));return 0;}输出结果为
10
喵查答案:20
0
存在语法错误
73 对于如下结构体定义struct node{ int id; struct node *next;}a;若声明如下变量struct node *p;在32位系统中,不可以实现创建链表节点的操作是
p=(struct node*)malloc(sizeof(struct node));
喵查答案:p=(node*)malloc(sizeof(node));
p=(struct node*)malloc(sizeof(a));
p=(struct node*)malloc(8);
74 关于如下结构体struct node{ int id; struct node next;};如下说法正确的是
node为数据类型
sizeof(struct node)的值为8
喵查答案:此结构体定义存在错误
struct 可以省略
75 关于如下结构体说法正确的是struct node{ int id; struct node* next;};
node为数据类型
喵查答案:next 指向下一个结构体变量的地址
此结构体定义存在错误
struct 可以省略
76 下面程序 struct point{ float array[3];};int main(){ struct point points[5]={1,2,3,4,5,6,7}; printf(“%.0f”,points[1].array[0]);}执行结果为
1
2
3
喵查答案:4
77 对于如下结构体定义struct point{ float x,y,z;} p1={1,2,3},p2={4,5,6},p3;如下语法正确的表达式
p3=p2+p1
p3=p2+1
scanf(“%v”,&p3);
喵查答案:p2=p1
78 下面程序 struct point{ float x,y,z;};struct point mid(struct point p1,struct point p2) { struct point m; m.x=(p1.x+p2.x)/2; m.y=(p1.y+p2.y)/2; m.z=(p1.z+p2.z)/2; return m;}int main(){ struct point p1={1,2,3},p2,p3={0,0,0};; p2=p1; p3=mid(p1,p2); printf(“%.2f”,p3.x);}执行结果为
喵查答案:1.00
0.00
0.50
无结果
79 对于如下结构体定义struct grade{ char name[32]; union { char c; int g; } v;}s1={“zhao”,{‘A’}},s2={“Li”,{80}};如下语法不正确的表达式
s2.v.c=s1.v.c
scanf(“%d”,&s1.v.g)
s2.v.c=s1.v.g
喵查答案:s1.name = s2.name
80 对于如下结构体定义struct student{ int id; char name[32]; struct { unsigned int year; unsigned int month; unsigned int day; } birthday;}s1={100,”zhao”,{1999,10,1}};如下说法正确的是
存在语法错误
表达式sizeof(s1.birthday)的值为4
喵查答案:表达式sizeof(s1.birthday)的值为12
s1.birthday.month的值为1
81 对于如下结构体定义struct student{ int id; char name[32];}s1={20001,”LiMing”},s2;如下表达式不正确的是
s2=s1
2.id=s1.id
喵查答案:s2.name=s1.name
scanf(“%d”,&s2.name)
82 对于如下结构体定义struct Point{ int id;}point;如下说法不正确的是
struct Point为数据类型
喵查答案:Point 为数据类型
sizeof(point)的值为4
point 为结构体变量
83 若函数fun定义如下int fun(char a[],char b[]){ int i=0,j=0; while(a[i]=b[i])i++;}如下程序代码执行结果为 char *text=”ThisisaCprogrammingcourse”; char *p=fun(text,’C’); if(p!=NULL) printf(“%d”,p-text); else printf(“%d”,-1);执行结果为
-1
C
喵查答案:7
6
84 若有以下的定义:int a[]={1,2,3,4,5,6,7,8,9,10}, *p=a+3;则p[2]的值是
4
5
喵查答案:6
7
85 下结构体已经定义如下struct T{ int id; union X { int id; char name[100]; }name;};则如下代码 struct T *p; printf(“%d %d”,sizeof(struct T),sizeof(p));在64位操作系统下编译执行后,输出结果为
108 108
104 104
108 8
喵查答案:104 8
86 如下函数fun定义如下int* fun(int **p){ static int a=100; return *p=&a;}则如下代码 int a=1,b=2; int *p=&a; a++; p=fun(&p);执行后,*p的值为多少
1
2
喵查答案:100
101
87 已知如下宏定义#define FUN(x,y) x+y*2则如下代码 int a=1,b=2; int c=FUN(a,b*2);执行后,c的值为
喵查答案:9
8
7
存在语法错误
88 如下函数fun定义如下int fun(int A[][2],int n){ int a=0,b=n*2-1; int *p=A[0]; while(a<b){ *p=*p*2; p++; a++; } return a;}则如下代码 int A[][2]={1,2,3,4,5,6}; fun(A,3);执行后,A[2][1]的值为多少
2
4
喵查答案:6
8
89 如下函数fun定义如下int fun(int A[],int n){ int a=0,b=n-1; int t; while(a<b){ t=A[a]; A[a]=A[b]; A[b]=t; a++,b–; } return a;}则如下代码 int A[]={1,2,3,4,5,6}; fun(A,5);执行后,A[2]的值为多少
2
喵查答案:3
4
5
90 如下程序中sum函数的定义为int sum(int n){ int s=0,i=0; while(n)s=s+n–; return s;}则如下代码 int s=5; if(s)s=sum(s);执行后,s的值为多少
0
10
喵查答案:15
16
91 如下程序中sum函数的定义为sum(int n){ int s=0,i=0; for(i=0;i<n;i++) s=s+i; return s;}则如下代码 int s=0; if(s)s=sum(5);执行后,s的值为多少
sum函数定义错误
10
11
喵查答案:0
92 如下程序中,a已经声明,则如下程序的输出结果为 static int a; while(a++<10); printf("%d",a);
a未初始化,输出结果不确定
10
喵查答案:11
0
93 有以下程序片段, int a,b,c=2; if(a=1,b=2,a+=2){ int c=1; b=c>2?5:c++; } printf(“%d,%d”,b,c);程序运行后的输出结果是
2,3
2,2
喵查答案:1,2
存在语法错误
94 有以下程序片段, int c=0,k=5; switch (k++) { default: c+=k; break; case 2: c++; case 3: ++c; case 4: c+=2;break; }程序运行后c的值是?
3
4
5
喵查答案:6
95 以下程序片段 int a=1,b=2,d=25; { int a=0; a=d/10||9; } b=a||(a>b); printf(“%d,%d\n”,a,b);程序运行后的输出结果是
2,1
1,0
喵查答案:1,1
存在语法错误
96 有以下程序片段,执行完后输出结果为int a=2,b=4;b=a<<4-2;printf("%d",b);
14
喵查答案:8
0
-2
97 若有声明语句:char a=20,b=128则表达式(a>b?a++:b++)的值为
128
129
-128
喵查答案:1
98 若a为int类型变量,初始值为0,则表达式a=(char)(255/2+1)的值是
127
128
0
喵查答案:-128
99 若a为int类型变量,初始值为0,则表达式(int)(a=13,(double)a/3-1,++a)%3的值是
0
1
喵查答案:2
存在语法错误
100 阅读以下程序 #include int main() { int a=2,b; float c=a+2.0F,d=b+3F; printf(“%f%f\n”,c,d); return 0; }该程序存在的错误,如下说法正确的是:
声明语句 float d=b+3F存在错误,3F为非法常量
声明语句int a=2,b出错,变量b未赋初值
printf(“%f%f\n”,c,d) 应该改为printf(“%d%d\n”,c,d)
喵查答案:声明语句 float d=b+3F存在错误,变量b未赋初值
101 阅读以下程序 #include int main() { char a=’2′,b; float c=1.0F; scanf(“%d%f%d”,&a,&b,&c); printf(“%d%f%d\n”,a,b,c); return 0; }该程序存在的错误,如下说法正确的是:
声明语句float c=1.0F; 语句错误,1.0F为非法常量
声明语句出错,变量b未赋初值
喵查答案:scanf(“%d%f%d”,&a,&b,&c) 应该改为scanf(“%c%c%f”,&a,&b,&c),printf(“%d%f%d\n”,a,b,c)应改为printf(“%c%c%f\n”,a,b,c)
scanf(“%d%f%d”,&a,&b,&c) 应该改为scanf(“%d%d%f”,a,b,c),printf(“%d%f%d\n”,a,b,c)应改为printf(“%d%d%f\n”,a,b,c)
102 如下关于C语言源程序的观点中不正确的是?
C语言源程序为文本文件,不能直接运行
构成一个可执行程序的C语言源程序文件可以有多个
喵查答案:构成一个可执行程序的C语言源程序文件中主函数可以main或Main
构成一个可执行程序的C语言源程序文件中只能有一个main函数
103 以下选项中,合法的标识符的是
“Hello”
喵查答案:Double
a-b
456_an
104 以下选项中,能用作C语言用户自定义标识符的是
bool
喵查答案:Auto
register
static
105 有以下函数int f(int a){ static int i=2; return a%i++;}main(){ int s[]={1,2,0,1,3,6,7,8},i,d=0; for (i=0;f(s[i]);i++) d+=s[i]; printf(“%d\n”,d);}程序运行后的输出结果是
1
2
喵查答案:3
无限循环
106 如下程序段 enum direction{left,right,up,down}; enum direction a=left; printf(“%d”,a);输出结果为
left
1
喵查答案:0
存在语法错误
107 有以下函数int fun(int n){ register int i=0,s=0; for(;i<=n;i++) s=s+i; return s;}执行如下代码片段后 int a=2; while(a<=5) a=fun(a); printf("%d\n",a);程序运行后的输出结果是
3
4
喵查答案:6
无限循环
108 有以下函数int add(int p){ int d=1; d+=p; return d;}执行如下代码片段后 int a=1; add(add(++a)); printf(“%d\n”,a);程序运行后的输出结果是
1
喵查答案:2
3
4
109 有以下函数int swap(int a,int b){ int t; t=a,a=b,b=t; return t;}执行如下代码片段后 int a=100,b=200; b=swap(a,b); printf(“%d\n”,b);程序运行后的输出结果是
喵查答案:100
200
0
存在语法错误
110 执行下面的程序段后,输出结果为多少char a[]=”NEU”, b[10]=”NEU”;printf(“%d,%d\n”, sizeof(a), sizeof(b));
3,3
喵查答案:4,10
3,10
4,4
111 有以下程序片段, char s[]=”1230456″; int i=0; while(s[i]!=’0′){ i++; } s[i]=0; puts(s);程序运行后的输出结果是
1230456
喵查答案:123
1230
死循环
112 执行下面的程序段后,变量a中的值为int a=3, s[5]={‘1′,’2’,3};s[0]=a; a=s[2]*10;
0
喵查答案:30
20
存在语法错误
113 设a,s为int型变量,则下面循环语句执行后s的值? a=12345; while(a) { s=s+a % 10; a/=10; } printf(“%d\n”,s);
10
喵查答案:15
20
死循环
114 下面循环语句执行后sum的值? char c=’0′; int sum=0; do{ sum+=c-‘0’; c++; }while(c<'5');
喵查答案:10
15
20
死循环
115 设j为int型变量,则下面循环语句的执行结果是 j=8; while(j–>2); { j-=2; } printf(“%d\n”,j);
-2
喵查答案:-1
0
死循环
116 设x和y均为int型变量,则执行下的循环后,x值为 for(y=1,x=1; y=6)break; if (x%2) { x+=5; continue; } x-=3; }
2
4
喵查答案:6
8
117 如下语句中,可以实现输出”Hi,NEU”是?
喵查答案:char a[]=”Hi,NEU”;printf(“%s”,a);
char a[5]=”Hi,NEU”;printf(“%s”,a);
char a[]=’Hi,NEU’;printf(“%s”,a);
char a=”Hi,NEU”;printf(“%s”,a);
118 有以下程序片段, int a,b; for(a=0,b=3;b–;a+=b); printf(“%d,%d”,b,a);程序运行后的输出结果是
喵查答案:-1,3
0,6
-1,6
-1,4
119 已知’0’的ASCII码值为48,有以下程序片段 char a=’1′,b=’3′,c=’0′; if(a=b) c=a++; else c=b; printf(“%d”,c);程序的运行结果是
2
50
3
喵查答案:51
120 有以下程序片段,int a=0,b=1;while(b) a+=b–;程序运行后变量a的值是
0
喵查答案:1
3
死循环,无法计算结果
/pay